diff --git a/gfx/angle/checkout/include/EGL/eglext_angle.h b/gfx/angle/checkout/include/EGL/eglext_angle.h --- a/gfx/angle/checkout/include/EGL/eglext_angle.h +++ b/gfx/angle/checkout/include/EGL/eglext_angle.h @@ -113,14 +113,14 @@ #ifndef EGL_ANGLE_platform_angle_device_type_egl_angle #define EGL_ANGLE_platform_angle_device_type_egl_angle #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE 0x348E #endif /* EGL_ANGLE_platform_angle_device_type_egl_angle */ -#ifndef EGL_ANGLE_platform_angle_context_virtualization -#define EGL_ANGLE_platform_angle_context_virtualization 1 -#define EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE 0x3481 -#endif /* EGL_ANGLE_platform_angle_context_virtualization */ +#ifndef EGL_ANGLE_context_virtualization +#define EGL_ANGLE_context_virtualization 1 +#define EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE 0x3481 +#endif /* EGL_ANGLE_context_virtualization */ #ifndef EGL_ANGLE_platform_angle_device_context_volatile_eagl #define EGL_ANGLE_platform_angle_device_context_volatile_eagl 1 #define EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE 0x34A2 #endif /* EGL_ANGLE_platform_angle_device_context_volatile_eagl */ @@ -133,15 +133,10 @@ #ifndef EGL_ANGLE_x11_visual #define EGL_ANGLE_x11_visual #define EGL_X11_VISUAL_ID_ANGLE 0x33A3 #endif /* EGL_ANGLE_x11_visual */ -#ifndef EGL_ANGLE_flexible_surface_compatibility -#define EGL_ANGLE_flexible_surface_compatibility 1 -#define EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6 -#endif /* EGL_ANGLE_flexible_surface_compatibility */ - #ifndef EGL_ANGLE_surface_orientation #define EGL_ANGLE_surface_orientation #define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7 #define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8 #define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001 @@ -353,8 +348,22 @@ #define EGL_EXTERNAL_CONTEXT_ANGLE 0x348E #define EGL_EXTERNAL_SURFACE_ANGLE 0x348F #define EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE 0x3490 #endif /* EGL_ANGLE_external_context_and_surface */ +#ifndef EGL_ANGLE_create_surface_swap_interval +#define EGL_ANGLE_create_surface_swap_interval 1 +#define EGL_SWAP_INTERVAL_ANGLE 0x322F +#endif /* EGL_ANGLE_create_surface_swap_interval */ + +#ifndef EGL_ANGLE_device_vulkan +#define EGL_ANGLE_device_vulkan 1 +#define EGL_VULKAN_DEVICE_ANGLE 0x34A8 +#define EGL_VULKAN_EXTENSIONS_ANGLE 0x34A9 +#define EGL_VULKAN_PHYSICAL_DEVICE_ANGLE 0x34AA +#define EGL_VULKAN_QUEUE_ANGLE 0x34AB +#define EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE 0x34AC +#endif /* EGL_ANGLE_device_vulkan */ + // clang-format on #endif // INCLUDE_EGL_EGLEXT_ANGLE_ diff --git a/gfx/angle/checkout/include/GLES/glext.h b/gfx/angle/checkout/include/GLES/glext.h --- a/gfx/angle/checkout/include/GLES/glext.h +++ b/gfx/angle/checkout/include/GLES/glext.h @@ -953,13 +953,10 @@ #ifndef GL_QCOM_writeonly_rendering #define GL_QCOM_writeonly_rendering 1 #define GL_WRITEONLY_RENDERING_QCOM 0x8823 #endif /* GL_QCOM_writeonly_rendering */ -/* ANGLE GLES1 extensions */ -#include "glext_angle.h" - #ifdef __cplusplus } #endif #endif diff --git a/gfx/angle/checkout/include/GLES/glext_angle.h b/gfx/angle/checkout/include/GLES/glext_angle.h deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES/glext_angle.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright 2018 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. -// -// glext_angle.h: ANGLE modifications to the glext.h header file. -// Currently we don't include this file directly, we patch glext.h -// to include it implicitly so it is visible throughout our code. - -#ifndef INCLUDE_GLES_GLEXT_ANGLE_H_ -#define INCLUDE_GLES_GLEXT_ANGLE_H_ - -// clang-format off - -#ifndef GL_ANGLE_explicit_context_gles1 -#define GL_ANGLE_explicit_context_gles1 -typedef void *GLeglContext; -#include "glext_explicit_context_autogen.inc" -#endif /* GL_ANGLE_explicit_context_gles1 */ - -// clang-format on - -#endif // INCLUDE_GLES_GLEXT_ANGLE_H_ diff --git a/gfx/angle/checkout/include/GLES/glext_explicit_context_autogen.inc b/gfx/angle/checkout/include/GLES/glext_explicit_context_autogen.inc deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES/glext_explicit_context_autogen.inc +++ /dev/null @@ -1,258 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by generate_entry_points.py using data from gl.xml and gl_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. -// -// glext_explicit_context_autogen.inc: -// Function declarations for the EGL_ANGLE_explicit_context extension - -typedef void (GL_APIENTRYP PFNGLALPHAFUNCCONTEXTANGLEPROC)(GLeglContext ctx, GLenum func, GLfloat ref); -typedef void (GL_APIENTRYP PFNGLALPHAFUNCXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum func, GLfixed ref); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed depth); -typedef void (GL_APIENTRYP PFNGLCLIENTACTIVETEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLenum texture); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum p, const GLfloat *eqn); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum plane, const GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLCOLOR4FCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCOLOR4UBCONTEXTANGLEPROC)(GLeglContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -typedef void (GL_APIENTRYP PFNGLCOLOR4XCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLCOLORPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLDISABLECLIENTSTATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum array); -typedef void (GL_APIENTRYP PFNGLENABLECLIENTSTATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum array); -typedef void (GL_APIENTRYP PFNGLFOGFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLFOGFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLFOGXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLFOGXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLFRUSTUMFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLFRUSTUMXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum plane, GLfloat *equation); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum plane, GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLGETFIXEDVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETLIGHTFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETLIGHTXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETMATERIALFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETMATERIALXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLLIGHTFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLLIGHTFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLLIGHTXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum light, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed width); -typedef void (GL_APIENTRYP PFNGLLOADIDENTITYCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLLOADMATRIXFCONTEXTANGLEPROC)(GLeglContext ctx, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLLOADMATRIXXCONTEXTANGLEPROC)(GLeglContext ctx, const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLLOGICOPCONTEXTANGLEPROC)(GLeglContext ctx, GLenum opcode); -typedef void (GL_APIENTRYP PFNGLMATERIALFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLMATERIALFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLMATERIALXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLMATERIALXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLMATRIXMODECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLMULTMATRIXFCONTEXTANGLEPROC)(GLeglContext ctx, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMULTMATRIXXCONTEXTANGLEPROC)(GLeglContext ctx, const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4FCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XCONTEXTANGLEPROC)(GLeglContext ctx, GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (GL_APIENTRYP PFNGLNORMAL3FCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (GL_APIENTRYP PFNGLNORMAL3XCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (GL_APIENTRYP PFNGLNORMALPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLORTHOFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLORTHOXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLPOINTSIZECONTEXTANGLEPROC)(GLeglContext ctx, GLfloat size); -typedef void (GL_APIENTRYP PFNGLPOINTSIZEXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed size); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed factor, GLfixed units); -typedef void (GL_APIENTRYP PFNGLPOPMATRIXCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLPUSHMATRIXCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLROTATEFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLROTATEXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXCONTEXTANGLEPROC)(GLeglContext ctx, GLclampx value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCALEFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLSCALEXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLSHADEMODELCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLTEXCOORDPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLTEXENVFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXENVFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXENVICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXENVIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXENVXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXENVXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTRANSLATEFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLTRANSLATEXCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLVERTEXPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint renderbuffer); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint matrixpaletteindex); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESCONTEXTANGLEPROC)(GLeglContext ctx, const GLfloat *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLint z, GLint width, GLint height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESCONTEXTANGLEPROC)(GLeglContext ctx, const GLint *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESCONTEXTANGLEPROC)(GLeglContext ctx, const GLshort *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESCONTEXTANGLEPROC)(GLeglContext ctx, const GLfixed *coords); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLfixed *params); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLPOINTSIZEPOINTEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLsizei stride, const void *pointer); -typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLfixed *mantissa, GLint *exponent); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXGENFOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXGENFVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXGENIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXGENIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXGENXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXGENXVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum coord, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glAlphaFuncContextANGLE(GLeglContext ctx, GLenum func, GLfloat ref); -GL_API void GL_APIENTRY glAlphaFuncxContextANGLE(GLeglContext ctx, GLenum func, GLfixed ref); -GL_API void GL_APIENTRY glClearColorxContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glClearDepthxContextANGLE(GLeglContext ctx, GLfixed depth); -GL_API void GL_APIENTRY glClientActiveTextureContextANGLE(GLeglContext ctx, GLenum texture); -GL_API void GL_APIENTRY glClipPlanefContextANGLE(GLeglContext ctx, GLenum p, const GLfloat *eqn); -GL_API void GL_APIENTRY glClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, const GLfixed *equation); -GL_API void GL_APIENTRY glColor4fContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_API void GL_APIENTRY glColor4ubContextANGLE(GLeglContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GL_API void GL_APIENTRY glColor4xContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glColorPointerContextANGLE(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glDepthRangexContextANGLE(GLeglContext ctx, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glDisableClientStateContextANGLE(GLeglContext ctx, GLenum array); -GL_API void GL_APIENTRY glEnableClientStateContextANGLE(GLeglContext ctx, GLenum array); -GL_API void GL_APIENTRY glFogfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glFogfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glFogxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glFogxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glFrustumfContextANGLE(GLeglContext ctx, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glFrustumxContextANGLE(GLeglContext ctx, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glGetClipPlanefContextANGLE(GLeglContext ctx, GLenum plane, GLfloat *equation); -GL_API void GL_APIENTRY glGetClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, GLfixed *equation); -GL_API void GL_APIENTRY glGetFixedvContextANGLE(GLeglContext ctx, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetLightfvContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetLightxvContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetMaterialfvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetMaterialxvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetTexEnvfvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetTexEnvivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetTexEnvxvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetTexParameterxvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glLightModelfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glLightModelfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glLightModelxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightModelxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glLightfContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glLightfvContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glLightxContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightxvContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glLineWidthxContextANGLE(GLeglContext ctx, GLfixed width); -GL_API void GL_APIENTRY glLoadIdentityContextANGLE(GLeglContext ctx); -GL_API void GL_APIENTRY glLoadMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m); -GL_API void GL_APIENTRY glLoadMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m); -GL_API void GL_APIENTRY glLogicOpContextANGLE(GLeglContext ctx, GLenum opcode); -GL_API void GL_APIENTRY glMaterialfContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glMaterialfvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glMaterialxContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glMaterialxvContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glMatrixModeContextANGLE(GLeglContext ctx, GLenum mode); -GL_API void GL_APIENTRY glMultMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m); -GL_API void GL_APIENTRY glMultMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m); -GL_API void GL_APIENTRY glMultiTexCoord4fContextANGLE(GLeglContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GL_API void GL_APIENTRY glMultiTexCoord4xContextANGLE(GLeglContext ctx, GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GL_API void GL_APIENTRY glNormal3fContextANGLE(GLeglContext ctx, GLfloat nx, GLfloat ny, GLfloat nz); -GL_API void GL_APIENTRY glNormal3xContextANGLE(GLeglContext ctx, GLfixed nx, GLfixed ny, GLfixed nz); -GL_API void GL_APIENTRY glNormalPointerContextANGLE(GLeglContext ctx, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glOrthofContextANGLE(GLeglContext ctx, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glOrthoxContextANGLE(GLeglContext ctx, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glPointParameterfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glPointParameterfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glPointParameterxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glPointParameterxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glPointSizeContextANGLE(GLeglContext ctx, GLfloat size); -GL_API void GL_APIENTRY glPointSizexContextANGLE(GLeglContext ctx, GLfixed size); -GL_API void GL_APIENTRY glPolygonOffsetxContextANGLE(GLeglContext ctx, GLfixed factor, GLfixed units); -GL_API void GL_APIENTRY glPopMatrixContextANGLE(GLeglContext ctx); -GL_API void GL_APIENTRY glPushMatrixContextANGLE(GLeglContext ctx); -GL_API void GL_APIENTRY glRotatefContextANGLE(GLeglContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glRotatexContextANGLE(GLeglContext ctx, GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glSampleCoveragexContextANGLE(GLeglContext ctx, GLclampx value, GLboolean invert); -GL_API void GL_APIENTRY glScalefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glScalexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glShadeModelContextANGLE(GLeglContext ctx, GLenum mode); -GL_API void GL_APIENTRY glTexCoordPointerContextANGLE(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glTexEnvfContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glTexEnvfvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glTexEnviContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -GL_API void GL_APIENTRY glTexEnvivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -GL_API void GL_APIENTRY glTexEnvxContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexEnvxvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTexParameterxContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexParameterxvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTranslatefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glTranslatexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glVertexPointerContextANGLE(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glBindFramebufferOESContextANGLE(GLeglContext ctx, GLenum target, GLuint framebuffer); -GL_API void GL_APIENTRY glBindRenderbufferOESContextANGLE(GLeglContext ctx, GLenum target, GLuint renderbuffer); -GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOESContextANGLE(GLeglContext ctx, GLenum target); -GL_API void GL_APIENTRY glCurrentPaletteMatrixOESContextANGLE(GLeglContext ctx, GLuint matrixpaletteindex); -GL_API void GL_APIENTRY glDeleteFramebuffersOESContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *framebuffers); -GL_API void GL_APIENTRY glDeleteRenderbuffersOESContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *renderbuffers); -GL_API void GL_APIENTRY glDrawTexfOESContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -GL_API void GL_APIENTRY glDrawTexfvOESContextANGLE(GLeglContext ctx, const GLfloat *coords); -GL_API void GL_APIENTRY glDrawTexiOESContextANGLE(GLeglContext ctx, GLint x, GLint y, GLint z, GLint width, GLint height); -GL_API void GL_APIENTRY glDrawTexivOESContextANGLE(GLeglContext ctx, const GLint *coords); -GL_API void GL_APIENTRY glDrawTexsOESContextANGLE(GLeglContext ctx, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); -GL_API void GL_APIENTRY glDrawTexsvOESContextANGLE(GLeglContext ctx, const GLshort *coords); -GL_API void GL_APIENTRY glDrawTexxOESContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); -GL_API void GL_APIENTRY glDrawTexxvOESContextANGLE(GLeglContext ctx, const GLfixed *coords); -GL_API void GL_APIENTRY glFramebufferRenderbufferOESContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_API void GL_APIENTRY glFramebufferTexture2DOESContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_API void GL_APIENTRY glGenFramebuffersOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *framebuffers); -GL_API void GL_APIENTRY glGenRenderbuffersOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *renderbuffers); -GL_API void GL_APIENTRY glGenerateMipmapOESContextANGLE(GLeglContext ctx, GLenum target); -GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetRenderbufferParameterivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetTexGenfvOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetTexGenivOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetTexGenxvOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLfixed *params); -GL_API GLboolean GL_APIENTRY glIsFramebufferOESContextANGLE(GLeglContext ctx, GLuint framebuffer); -GL_API GLboolean GL_APIENTRY glIsRenderbufferOESContextANGLE(GLeglContext ctx, GLuint renderbuffer); -GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOESContextANGLE(GLeglContext ctx); -GL_API void GL_APIENTRY glMatrixIndexPointerOESContextANGLE(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glPointSizePointerOESContextANGLE(GLeglContext ctx, GLenum type, GLsizei stride, const void *pointer); -GL_API GLbitfield GL_APIENTRY glQueryMatrixxOESContextANGLE(GLeglContext ctx, GLfixed *mantissa, GLint *exponent); -GL_API void GL_APIENTRY glRenderbufferStorageOESContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glTexGenfOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glTexGenfvOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glTexGeniOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLint param); -GL_API void GL_APIENTRY glTexGenivOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, const GLint *params); -GL_API void GL_APIENTRY glTexGenxOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexGenxvOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glWeightPointerOESContextANGLE(GLeglContext ctx, GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif diff --git a/gfx/angle/checkout/include/GLES2/gl2ext_angle.h b/gfx/angle/checkout/include/GLES2/gl2ext_angle.h --- a/gfx/angle/checkout/include/GLES2/gl2ext_angle.h +++ b/gfx/angle/checkout/include/GLES2/gl2ext_angle.h @@ -409,20 +409,10 @@ GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvANGLE(GLenum target, GLint level, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetTexLevelParameterivANGLE(GLenum target, GLint level, GLenum pname, GLint *params); #endif #endif /* GL_ANGLE_get_tex_level_parameter */ -#ifndef GL_ANGLE_explicit_context -#define GL_ANGLE_explicit_context -typedef void *GLeglContext; -#include "gl2ext_explicit_context_autogen.inc" -#include "../GLES3/gl3ext_explicit_context_autogen.inc" -#include "../GLES3/gl31ext_explicit_context_autogen.inc" -#include "../GLES3/gl32.h" -#include "../GLES3/gl32ext_explicit_context_autogen.inc" -#endif /* GL_ANGLE_explicit_context */ - #ifndef GL_ANGLE_multi_draw #define GL_ANGLE_multi_draw 1 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSANGLEPROC) (GLenum mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSANGLEPROC) (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, GLsizei drawcount); @@ -478,16 +468,18 @@ #endif /* GL_ANGLE_texture_external_update */ #ifndef GL_ANGLE_get_image #define GL_ANGLE_get_image typedef void (GL_APIENTRYP PFNGLGETTEXIMAGEANGLEPROC) (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (GL_APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEANGLEPROC) (GLenum target, GLint level, void *pixels); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERIMAGEANGLEPROC) (GLenum target, GLenum format, GLenum type, void *pixels); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetTexImageANGLE (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GL_APICALL void GL_APIENTRY glGetCompressedTexImageANGLE (GLenum target, GLint level, void *pixels); GL_APICALL void GL_APIENTRY glGetRenderbufferImageANGLE (GLenum target, GLenum format, GLenum type, void *pixels); #endif -#endif /* GL_ANGLE_texture_external_update */ +#endif /* GL_ANGLE_get_image */ #ifndef GL_WEBGL_video_texture #define GL_WEBGL_video_texture 1 #define GL_TEXTURE_VIDEO_IMAGE_WEBGL 0x9248 #define GL_SAMPLER_VIDEO_IMAGE_WEBGL 0x9249 @@ -573,8 +565,35 @@ #ifndef GL_ANGLE_get_serialized_context_string #define GL_ANGLE_get_serialized_context_string #define GL_SERIALIZED_CONTEXT_STRING_ANGLE 0x96B0 #endif /* GL_ANGLE_get_serialized_context_string */ +#ifndef GL_ANGLE_robust_fragment_shader_output +#define GL_ANGLE_robust_fragment_shader_output +#define GL_ROBUST_FRAGMENT_SHADER_OUTPUT_ANGLE 0x96B9 +#endif /* GL_ANGLE_robust_fragment_shader_output */ + // clang-format on +#ifndef GL_ANGLE_yuv_internal_format +#define GL_ANGLE_yuv_internal_format + +// YUV formats introduced by GL_ANGLE_yuv_internal_format +// 8-bit YUV formats +#define GL_G8_B8R8_2PLANE_420_UNORM_ANGLE 0x96B1 +#define GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE 0x96B2 + +// 10-bit YUV formats +#define GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B3 +#define GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B4 + +// 12-bit YUV formats +#define GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B5 +#define GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B6 + +// 16-bit YUV formats +#define GL_G16_B16R16_2PLANE_420_UNORM_ANGLE 0x96B7 +#define GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE 0x96B8 + +#endif /* GL_ANGLE_yuv_internal_format */ + #endif // INCLUDE_GLES2_GL2EXT_ANGLE_H_ diff --git a/gfx/angle/checkout/include/GLES2/gl2ext_explicit_context_autogen.inc b/gfx/angle/checkout/include/GLES2/gl2ext_explicit_context_autogen.inc deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES2/gl2ext_explicit_context_autogen.inc +++ /dev/null @@ -1,896 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by generate_entry_points.py using data from gl.xml and gl_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. -// -// gl2ext_explicit_context_autogen.inc: -// Function declarations for the EGL_ANGLE_explicit_context extension - -typedef void (GL_APIENTRYP PFNGLACTIVETEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCCONTEXTANGLEPROC)(GLeglContext ctx, GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATACONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATACONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARCONTEXTANGLEPROC)(GLeglContext ctx, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILCONTEXTANGLEPROC)(GLeglContext ctx, GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKCONTEXTANGLEPROC)(GLeglContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCCONTEXTANGLEPROC)(GLeglContext ctx, GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKCONTEXTANGLEPROC)(GLeglContext ctx, GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLFLUSHCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLGETFLOATVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATCONTEXTANGLEPROC)(GLeglContext ctx, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCECONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLenum pname, GLint *params); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGCONTEXTANGLEPROC)(GLeglContext ctx, GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLHINTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDCONTEXTANGLEPROC)(GLeglContext ctx, GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREICONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGECONTEXTANGLEPROC)(GLeglContext ctx, GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCECONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCCONTEXTANGLEPROC)(GLeglContext ctx, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKCONTEXTANGLEPROC)(GLeglContext ctx, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPCONTEXTANGLEPROC)(GLeglContext ctx, GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATECONTEXTANGLEPROC)(GLeglContext ctx, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1ICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2ICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3ICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4ICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLuint program); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint color, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint array); -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVCONTEXTANGLEPROC)(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum origin, GLenum depth); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *memoryObjects); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLsizei count, const GLchar **strings); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLDEBUGPROCKHR callback, const void *userParam); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *memoryObjects); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLDISABLEIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLENABLEIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLENABLEIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLENDQUERYEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint fence); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, void **params); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint fence, GLenum pname, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, const GLchar *name); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint memoryObject, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLenum pname, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYFDEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLenum handleType, GLint fd); -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei length, const GLchar *marker); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLISMEMORYOBJECTEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint memoryObject); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id); -typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint array); -typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum access); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLuint count); -typedef void (GL_APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint memoryObject, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat value); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum binaryFormat, const void *binary, GLint length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum target); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLenum pname, const GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLSETFENCENVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint fence, GLenum condition); -typedef void (GL_APIENTRYP PFNGLSIGNALSEMAPHOREEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint fence); -typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLWAITSEMAPHOREEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -typedef void (GL_APIENTRYP PFNGLBINDUNIFORMLOCATIONCHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, const GLchar* name); -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONCHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLenum components); -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint internalFormat, GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -typedef void (GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint x, GLint y, GLint width, GLint height, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDCOPYTEXTURECHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLuint destId); -typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLECONTEXTANGLEPROC)(GLeglContext ctx, const GLchar * name); -typedef void (GL_APIENTRYP PFNGLDISABLEEXTENSIONANGLECONTEXTANGLEPROC)(GLeglContext ctx, const GLchar * name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLboolean * params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETFLOATVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint shader, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, void ** pointer); -typedef void (GL_APIENTRYP PFNGLREADPIXELSROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei * length, GLsizei * columns, GLsizei * rows, void * pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLfloat * params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLint * params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLsizei xoffset, GLsizei yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, void ** params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLint * data); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * data); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLint64 * data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLuint pname, GLsizei bufSize, const GLint * param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat * param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLboolean * data); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLuint index, GLsizei bufSize, GLsizei * length, GLfloat * val); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVROBUSTANGLEROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, void ** params); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei * length, GLsizei * columns, GLsizei * rows, void * data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLint * params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLuint * params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLint * param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint * param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VROBUSTANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint64 * params); -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURE3DANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint internalFormat, GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -typedef void (GL_APIENTRYP PFNGLCOPYSUBTEXTURE3DANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLint z, GLint width, GLint height, GLint depth, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLfloat * params); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei*instanceCounts, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLuint index, GLfloat * val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLPROVOKINGVERTEXANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode); -typedef void (GL_APIENTRYP PFNGLLOSECONTEXTCHROMIUMCONTEXTANGLEPROC)(GLeglContext ctx, GLenum current, GLenum other); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DEXTERNALANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type); -typedef void (GL_APIENTRYP PFNGLINVALIDATETEXTUREANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETTEXIMAGEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERIMAGEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS2DANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS2DMULTISAMPLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS3DANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS3DMULTISAMPLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYZIRCONHANDLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint memory, GLuint64 size, GLenum handleType, GLuint handle); -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREZIRCONHANDLEANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLuint semaphore, GLenum handleType, GLuint handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTextureContextANGLE(GLeglContext ctx, GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocationContextANGLE(GLeglContext ctx, GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBufferContextANGLE(GLeglContext ctx, GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebufferContextANGLE(GLeglContext ctx, GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbufferContextANGLE(GLeglContext ctx, GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTextureContextANGLE(GLeglContext ctx, GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquationContextANGLE(GLeglContext ctx, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateContextANGLE(GLeglContext ctx, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFuncContextANGLE(GLeglContext ctx, GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateContextANGLE(GLeglContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferDataContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubDataContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatusContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glClearContextANGLE(GLeglContext ctx, GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthfContextANGLE(GLeglContext ctx, GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencilContextANGLE(GLeglContext ctx, GLint s); -GL_APICALL void GL_APIENTRY glColorMaskContextANGLE(GLeglContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShaderContextANGLE(GLeglContext ctx, GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgramContextANGLE(GLeglContext ctx); -GL_APICALL GLuint GL_APIENTRY glCreateShaderContextANGLE(GLeglContext ctx, GLenum type); -GL_APICALL void GL_APIENTRY glCullFaceContextANGLE(GLeglContext ctx, GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgramContextANGLE(GLeglContext ctx, GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShaderContextANGLE(GLeglContext ctx, GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTexturesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFuncContextANGLE(GLeglContext ctx, GLenum func); -GL_APICALL void GL_APIENTRY glDepthMaskContextANGLE(GLeglContext ctx, GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangefContextANGLE(GLeglContext ctx, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisableContextANGLE(GLeglContext ctx, GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index); -GL_APICALL void GL_APIENTRY glDrawArraysContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElementsContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnableContextANGLE(GLeglContext ctx, GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index); -GL_APICALL void GL_APIENTRY glFinishContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glFlushContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glFramebufferRenderbufferContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFaceContextANGLE(GLeglContext ctx, GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenFramebuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTexturesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGenerateMipmapContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glGetActiveAttribContextANGLE(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniformContextANGLE(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShadersContextANGLE(GLeglContext ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocationContextANGLE(GLeglContext ctx, GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanvContextANGLE(GLeglContext ctx, GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetErrorContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glGetFloatvContextANGLE(GLeglContext ctx, GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegervContextANGLE(GLeglContext ctx, GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramInfoLogContextANGLE(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramivContextANGLE(GLeglContext ctx, GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLogContextANGLE(GLeglContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormatContextANGLE(GLeglContext ctx, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSourceContextANGLE(GLeglContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL void GL_APIENTRY glGetShaderivContextANGLE(GLeglContext ctx, GLuint shader, GLenum pname, GLint *params); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringContextANGLE(GLeglContext ctx, GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocationContextANGLE(GLeglContext ctx, GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetUniformfvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointervContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribfvContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribivContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glHintContextANGLE(GLeglContext ctx, GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBufferContextANGLE(GLeglContext ctx, GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabledContextANGLE(GLeglContext ctx, GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebufferContextANGLE(GLeglContext ctx, GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgramContextANGLE(GLeglContext ctx, GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbufferContextANGLE(GLeglContext ctx, GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShaderContextANGLE(GLeglContext ctx, GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTextureContextANGLE(GLeglContext ctx, GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidthContextANGLE(GLeglContext ctx, GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgramContextANGLE(GLeglContext ctx, GLuint program); -GL_APICALL void GL_APIENTRY glPixelStoreiContextANGLE(GLeglContext ctx, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffsetContextANGLE(GLeglContext ctx, GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixelsContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompilerContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glRenderbufferStorageContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverageContextANGLE(GLeglContext ctx, GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissorContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinaryContextANGLE(GLeglContext ctx, GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSourceContextANGLE(GLeglContext ctx, GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFuncContextANGLE(GLeglContext ctx, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparateContextANGLE(GLeglContext ctx, GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskContextANGLE(GLeglContext ctx, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparateContextANGLE(GLeglContext ctx, GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOpContextANGLE(GLeglContext ctx, GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparateContextANGLE(GLeglContext ctx, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterfContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfvContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteriContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1iContextANGLE(GLeglContext ctx, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1ivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2ivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3ivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4ivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgramContextANGLE(GLeglContext ctx, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramContextANGLE(GLeglContext ctx, GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointerContextANGLE(GLeglContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewportContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glActiveShaderProgramEXTContextANGLE(GLeglContext ctx, GLuint pipeline, GLuint program); -GL_APICALL void GL_APIENTRY glBeginQueryEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glBindFragDataLocationEXTContextANGLE(GLeglContext ctx, GLuint program, GLuint color, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXTContextANGLE(GLeglContext ctx, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL void GL_APIENTRY glBindVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array); -GL_APICALL void GL_APIENTRY glBlendBarrierKHRContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendEquationiEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationiOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFunciOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlitFramebufferANGLEContextANGLE(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glBlitFramebufferNVContextANGLE(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glBufferStorageEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -GL_APICALL void GL_APIENTRY glBufferStorageExternalEXTContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -GL_APICALL void GL_APIENTRY glBufferStorageMemEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glClipControlEXTContextANGLE(GLeglContext ctx, GLenum origin, GLenum depth); -GL_APICALL void GL_APIENTRY glColorMaskiEXTContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL void GL_APIENTRY glColorMaskiOESContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DOESContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOESContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyImageSubDataEXTContextANGLE(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glCopyImageSubDataOESContextANGLE(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOESContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCreateMemoryObjectsEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *memoryObjects); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXTContextANGLE(GLeglContext ctx, GLenum type, GLsizei count, const GLchar **strings); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHRContextANGLE(GLeglContext ctx, GLDEBUGPROCKHR callback, const void *userParam); -GL_APICALL void GL_APIENTRY glDebugMessageControlKHRContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertKHRContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDeleteFencesNVContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *fences); -GL_APICALL void GL_APIENTRY glDeleteMemoryObjectsEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *memoryObjects); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glDeleteQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteSemaphoresEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *semaphores); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysOESContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glDisableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDiscardFramebufferEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXTContextANGLE(GLeglContext ctx, GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawBuffersEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOESContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXTContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOESContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXTContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXTContextANGLE(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOESContextANGLE(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOESContextANGLE(GLeglContext ctx, GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOESContextANGLE(GLeglContext ctx, GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEnableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glEnableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glEndQueryEXTContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glFinishFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXTContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXTContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -GL_APICALL void GL_APIENTRY glFramebufferTexture3DOESContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GL_APICALL void GL_APIENTRY glFramebufferTextureEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVRContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -GL_APICALL void GL_APIENTRY glGenFencesNVContextANGLE(GLeglContext ctx, GLsizei n, GLuint *fences); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glGenSemaphoresEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *semaphores); -GL_APICALL void GL_APIENTRY glGenVertexArraysOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays); -GL_APICALL void GL_APIENTRY glGetBufferPointervOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, void **params); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHRContextANGLE(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glGetFenceivNVContextANGLE(GLeglContext ctx, GLuint fence, GLenum pname, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXTContextANGLE(GLeglContext ctx, GLuint program, const GLchar *name); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXTContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glGetInteger64vEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, GLuint memoryObject, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetObjectLabelEXTContextANGLE(GLeglContext ctx, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelKHRContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHRContextANGLE(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervKHRContextANGLE(GLeglContext ctx, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glGetProgramBinaryOESContextANGLE(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXTContextANGLE(GLeglContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXTContextANGLE(GLeglContext ctx, GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXTContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryivEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXTContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOESContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOESContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, GLuint semaphore, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLEContextANGLE(GLeglContext ctx, GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); -GL_APICALL void GL_APIENTRY glGetUnsignedBytevEXTContextANGLE(GLeglContext ctx, GLenum pname, GLubyte *data); -GL_APICALL void GL_APIENTRY glGetUnsignedBytei_vEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLubyte *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glImportMemoryFdEXTContextANGLE(GLeglContext ctx, GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -GL_APICALL void GL_APIENTRY glImportSemaphoreFdEXTContextANGLE(GLeglContext ctx, GLuint semaphore, GLenum handleType, GLint fd); -GL_APICALL void GL_APIENTRY glInsertEventMarkerEXTContextANGLE(GLeglContext ctx, GLsizei length, const GLchar *marker); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL GLboolean GL_APIENTRY glIsFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -GL_APICALL GLboolean GL_APIENTRY glIsMemoryObjectEXTContextANGLE(GLeglContext ctx, GLuint memoryObject); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL GLboolean GL_APIENTRY glIsQueryEXTContextANGLE(GLeglContext ctx, GLuint id); -GL_APICALL GLboolean GL_APIENTRY glIsSemaphoreEXTContextANGLE(GLeglContext ctx, GLuint semaphore); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array); -GL_APICALL void GL_APIENTRY glLabelObjectEXTContextANGLE(GLeglContext ctx, GLenum type, GLuint object, GLsizei length, const GLchar *label); -GL_APICALL void *GL_APIENTRY glMapBufferOESContextANGLE(GLeglContext ctx, GLenum target, GLenum access); -GL_APICALL void *GL_APIENTRY glMapBufferRangeEXTContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHRContextANGLE(GLeglContext ctx, GLuint count); -GL_APICALL void GL_APIENTRY glMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, GLuint memoryObject, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glMinSampleShadingOESContextANGLE(GLeglContext ctx, GLfloat value); -GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex); -GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXTContextANGLE(GLeglContext ctx, GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -GL_APICALL void GL_APIENTRY glObjectLabelKHRContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelKHRContextANGLE(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glPatchParameteriEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPopDebugGroupKHRContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glPopGroupMarkerEXTContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXTContextANGLE(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL void GL_APIENTRY glProgramBinaryOESContextANGLE(GLeglContext ctx, GLuint program, GLenum binaryFormat, const void *binary, GLint length); -GL_APICALL void GL_APIENTRY glProgramParameteriEXTContextANGLE(GLeglContext ctx, GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glProgramUniform1fEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform1fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform1iEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1ivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1uivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform2fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2ivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2uivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform3fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3ivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3uivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform4fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4ivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4uivEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXTContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glPushDebugGroupKHRContextANGLE(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPushGroupMarkerEXTContextANGLE(GLeglContext ctx, GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glQueryCounterEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum target); -GL_APICALL void GL_APIENTRY glReadnPixelsEXTContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSamplerParameterIivEXTContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIivOESContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivOESContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, GLuint semaphore, GLenum pname, const GLuint64 *params); -GL_APICALL void GL_APIENTRY glSetFenceNVContextANGLE(GLeglContext ctx, GLuint fence, GLenum condition); -GL_APICALL void GL_APIENTRY glSignalSemaphoreEXTContextANGLE(GLeglContext ctx, GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -GL_APICALL GLboolean GL_APIENTRY glTestFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -GL_APICALL void GL_APIENTRY glTexBufferEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferOESContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexBufferRangeOESContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexImage3DOESContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterIivEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivEXTContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivOESContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glTexStorage1DEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTexStorage2DEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOESContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glTexStorageMem2DEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem2DMultisampleEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DMultisampleEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexSubImage3DOESContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOESContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glUseProgramStagesEXTContextANGLE(GLeglContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLEContextANGLE(GLeglContext ctx, GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXTContextANGLE(GLeglContext ctx, GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glWaitSemaphoreEXTContextANGLE(GLeglContext ctx, GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUMContextANGLE(GLeglContext ctx, GLuint program, GLint location, const GLchar* name); -GL_APICALL void GL_APIENTRY glCoverageModulationCHROMIUMContextANGLE(GLeglContext ctx, GLenum components); -GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint internalFormat, GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCopySubTextureCHROMIUMContextANGLE(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint x, GLint y, GLint width, GLint height, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCompressedCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, GLuint sourceId, GLuint destId); -GL_APICALL void GL_APIENTRY glRequestExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar * name); -GL_APICALL void GL_APIENTRY glDisableExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar * name); -GL_APICALL void GL_APIENTRY glGetBooleanvRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLboolean * params); -GL_APICALL void GL_APIENTRY glGetBufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetFloatvRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetIntegervRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * data); -GL_APICALL void GL_APIENTRY glGetProgramivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetShaderivRobustANGLEContextANGLE(GLeglContext ctx, GLuint shader, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetUniformfvRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetUniformivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetVertexAttribfvRobustANGLEContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetVertexAttribivRobustANGLEContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointervRobustANGLEContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, void ** pointer); -GL_APICALL void GL_APIENTRY glReadPixelsRobustANGLEContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei * length, GLsizei * columns, GLsizei * rows, void * pixels); -GL_APICALL void GL_APIENTRY glTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -GL_APICALL void GL_APIENTRY glTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLfloat * params); -GL_APICALL void GL_APIENTRY glTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLint * params); -GL_APICALL void GL_APIENTRY glTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -GL_APICALL void GL_APIENTRY glTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void * pixels); -GL_APICALL void GL_APIENTRY glCompressedTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLsizei xoffset, GLsizei yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid * data); -GL_APICALL void GL_APIENTRY glGetQueryivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glGetBufferPointervRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, void ** params); -GL_APICALL void GL_APIENTRY glGetIntegeri_vRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLint * data); -GL_APICALL void GL_APIENTRY glGetInternalformativRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIivRobustANGLEContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glGetUniformuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetInteger64vRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * data); -GL_APICALL void GL_APIENTRY glGetInteger64i_vRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLint64 * data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64vRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * params); -GL_APICALL void GL_APIENTRY glSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLuint pname, GLsizei bufSize, const GLint * param); -GL_APICALL void GL_APIENTRY glSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat * param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetBooleani_vRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLsizei bufSize, GLsizei * length, GLboolean * data); -GL_APICALL void GL_APIENTRY glGetMultisamplefvRobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLuint index, GLsizei bufSize, GLsizei * length, GLfloat * val); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetPointervRobustANGLERobustANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLsizei bufSize, GLsizei * length, void ** params); -GL_APICALL void GL_APIENTRY glReadnPixelsRobustANGLEContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei * length, GLsizei * columns, GLsizei * rows, void * data); -GL_APICALL void GL_APIENTRY glGetnUniformfvRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLfloat * params); -GL_APICALL void GL_APIENTRY glGetnUniformivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetnUniformuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLint * params); -GL_APICALL void GL_APIENTRY glTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, const GLuint * params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLint * param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint * param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint * params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivRobustANGLEContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vRobustANGLEContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLint64 * params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vRobustANGLEContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLsizei bufSize, GLsizei * length, GLuint64 * params); -GL_APICALL void GL_APIENTRY glCopyTexture3DANGLEContextANGLE(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint internalFormat, GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCopySubTexture3DANGLEContextANGLE(GLeglContext ctx, GLuint sourceId, GLint sourceLevel, GLenum destTarget, GLuint destId, GLint destLevel, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLint z, GLint width, GLint height, GLint depth, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisampleANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLfloat * params); -GL_APICALL void GL_APIENTRY glMultiDrawArraysANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei*instanceCounts, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); -GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, GLenum mode, const GLsizei *counts, GLenum type, const GLvoid *const*indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glGetMultisamplefvANGLEContextANGLE(GLeglContext ctx, GLenum pname, GLuint index, GLfloat * val); -GL_APICALL void GL_APIENTRY glSampleMaskiANGLEContextANGLE(GLeglContext ctx, GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glProvokingVertexANGLEContextANGLE(GLeglContext ctx, GLenum mode); -GL_APICALL void GL_APIENTRY glLoseContextCHROMIUMContextANGLE(GLeglContext ctx, GLenum current, GLenum other); -GL_APICALL void GL_APIENTRY glTexImage2DExternalANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type); -GL_APICALL void GL_APIENTRY glInvalidateTextureANGLEContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glGetTexImageANGLEContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glGetRenderbufferImageANGLEContextANGLE(GLeglContext ctx, GLenum target, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags2DANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags2DMultisampleANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags3DANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags3DMultisampleANGLEContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); -GL_APICALL void GL_APIENTRY glImportMemoryZirconHandleANGLEContextANGLE(GLeglContext ctx, GLuint memory, GLuint64 size, GLenum handleType, GLuint handle); -GL_APICALL void GL_APIENTRY glImportSemaphoreZirconHandleANGLEContextANGLE(GLeglContext ctx, GLuint semaphore, GLenum handleType, GLuint handle); -#endif diff --git a/gfx/angle/checkout/include/GLES3/gl31ext_explicit_context_autogen.inc b/gfx/angle/checkout/include/GLES3/gl31ext_explicit_context_autogen.inc deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES3/gl31ext_explicit_context_autogen.inc +++ /dev/null @@ -1,148 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by generate_entry_points.py using data from gl.xml and gl_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. -// -// gl31ext_explicit_context_autogen.inc: -// Function declarations for the EGL_ANGLE_explicit_context extension - -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLuint program); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINECONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTECONTEXTANGLEPROC)(GLeglContext ctx, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTCONTEXTANGLEPROC)(GLeglContext ctx, GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINECONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERCONTEXTANGLEPROC)(GLeglContext ctx, GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONCONTEXTANGLEPROC)(GLeglContext ctx, GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1ICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2ICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3ICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4ICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKICONTEXTANGLEPROC)(GLeglContext ctx, GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINECONTEXTANGLEPROC)(GLeglContext ctx, GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATCONTEXTANGLEPROC)(GLeglContext ctx, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATCONTEXTANGLEPROC)(GLeglContext ctx, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORCONTEXTANGLEPROC)(GLeglContext ctx, GLuint bindingindex, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveShaderProgramContextANGLE(GLeglContext ctx, GLuint pipeline, GLuint program); -GL_APICALL void GL_APIENTRY glBindImageTextureContextANGLE(GLeglContext ctx, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glBindProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL void GL_APIENTRY glBindVertexBufferContextANGLE(GLeglContext ctx, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvContextANGLE(GLeglContext ctx, GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glDispatchComputeContextANGLE(GLeglContext ctx, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirectContextANGLE(GLeglContext ctx, GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirectContextANGLE(GLeglContext ctx, GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirectContextANGLE(GLeglContext ctx, GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteriContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGetBooleani_vContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetMultisamplefvContextANGLE(GLeglContext ctx, GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceivContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogContextANGLE(GLeglContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivContextANGLE(GLeglContext ctx, GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndexContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceNameContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceivContextANGLE(GLeglContext ctx, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL void GL_APIENTRY glMemoryBarrierContextANGLE(GLeglContext ctx, GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegionContextANGLE(GLeglContext ctx, GLbitfield barriers); -GL_APICALL void GL_APIENTRY glProgramUniform1fContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform1fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform1iContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1ivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1uivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform2fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2ivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2uivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform3fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3ivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3uivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform4fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4ivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4uivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glSampleMaskiContextANGLE(GLeglContext ctx, GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisampleContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glUseProgramStagesContextANGLE(GLeglContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline); -GL_APICALL void GL_APIENTRY glVertexAttribBindingContextANGLE(GLeglContext ctx, GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexAttribFormatContextANGLE(GLeglContext ctx, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormatContextANGLE(GLeglContext ctx, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexBindingDivisorContextANGLE(GLeglContext ctx, GLuint bindingindex, GLuint divisor); -#endif diff --git a/gfx/angle/checkout/include/GLES3/gl32ext_explicit_context_autogen.inc b/gfx/angle/checkout/include/GLES3/gl32ext_explicit_context_autogen.inc deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES3/gl32ext_explicit_context_autogen.inc +++ /dev/null @@ -1,100 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by generate_entry_points.py using data from gl.xml and gl_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. -// -// gl32ext_explicit_context_autogen.inc: -// Function declarations for the EGL_ANGLE_explicit_context extension - -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCICONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLCOLORMASKICONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATACONTEXTANGLEPROC)(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKCONTEXTANGLEPROC)(GLeglContext ctx, GLDEBUGPROC callback, const void *userParam); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDISABLEICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLENABLEICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDICONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat value); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELCONTEXTANGLEPROC)(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELCONTEXTANGLEPROC)(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXCONTEXTANGLEPROC)(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPCONTEXTANGLEPROC)(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSCONTEXTANGLEPROC)(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrierContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiContextANGLE(GLeglContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendEquationiContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiContextANGLE(GLeglContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glColorMaskiContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL void GL_APIENTRY glCopyImageSubDataContextANGLE(GLeglContext ctx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackContextANGLE(GLeglContext ctx, GLDEBUGPROC callback, const void *userParam); -GL_APICALL void GL_APIENTRY glDebugMessageControlContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertContextANGLE(GLeglContext ctx, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDisableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexContextANGLE(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glEnableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glFramebufferTextureContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogContextANGLE(GLeglContext ctx, GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glGetObjectLabelContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelContextANGLE(GLeglContext ctx, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervContextANGLE(GLeglContext ctx, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetnUniformfvContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glMinSampleShadingContextANGLE(GLeglContext ctx, GLfloat value); -GL_APICALL void GL_APIENTRY glObjectLabelContextANGLE(GLeglContext ctx, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelContextANGLE(GLeglContext ctx, const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glPatchParameteriContextANGLE(GLeglContext ctx, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPopDebugGroupContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxContextANGLE(GLeglContext ctx, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL void GL_APIENTRY glPushDebugGroupContextANGLE(GLeglContext ctx, GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glReadnPixelsContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glSamplerParameterIivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glTexBufferContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexParameterIivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif diff --git a/gfx/angle/checkout/include/GLES3/gl3ext_explicit_context_autogen.inc b/gfx/angle/checkout/include/GLES3/gl3ext_explicit_context_autogen.inc deleted file mode 100644 --- a/gfx/angle/checkout/include/GLES3/gl3ext_explicit_context_autogen.inc +++ /dev/null @@ -1,220 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by generate_entry_points.py using data from gl.xml and gl_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. -// -// gl3ext_explicit_context_autogen.inc: -// Function declarations for the EGL_ANGLE_explicit_context extension - -typedef void (GL_APIENTRYP PFNGLBEGINQUERYCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx, GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint array); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFICONTEXTANGLEPROC)(GLeglContext ctx, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCCONTEXTANGLEPROC)(GLeglContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATACONTEXTANGLEPROC)(GLeglContext ctx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei count, const GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESYNCCONTEXTANGLEPROC)(GLeglContext ctx, GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSCONTEXTANGLEPROC)(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENDQUERYCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCCONTEXTANGLEPROC)(GLeglContext ctx, GLenum condition, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GL_APIENTRYP PFNGLGENQUERIESCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSCONTEXTANGLEPROC)(GLeglContext ctx, GLsizei n, GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMECONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, void **params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VCONTEXTANGLEPROC)(GLeglContext ctx, GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGICONTEXTANGLEPROC)(GLeglContext ctx, GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVCONTEXTANGLEPROC)(GLeglContext ctx, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLint location, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCCONTEXTANGLEPROC)(GLeglContext ctx, GLsync sync); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx, GLuint id); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint array); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLREADBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum src); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKCONTEXTANGLEPROC)(GLeglContext ctx); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERICONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UICONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGCONTEXTANGLEPROC)(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVCONTEXTANGLEPROC)(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4ICONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UICONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLWAITSYNCCONTEXTANGLEPROC)(GLeglContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginQueryContextANGLE(GLeglContext ctx, GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glBeginTransformFeedbackContextANGLE(GLeglContext ctx, GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glBindBufferBaseContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindBufferRangeContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindSamplerContextANGLE(GLeglContext ctx, GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glBindTransformFeedbackContextANGLE(GLeglContext ctx, GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glBindVertexArrayContextANGLE(GLeglContext ctx, GLuint array); -GL_APICALL void GL_APIENTRY glBlitFramebufferContextANGLE(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glClearBufferfiContextANGLE(GLeglContext ctx, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL void GL_APIENTRY glClearBufferfvContextANGLE(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferivContextANGLE(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuivContextANGLE(GLeglContext ctx, GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL GLenum GL_APIENTRY glClientWaitSyncContextANGLE(GLeglContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyBufferSubDataContextANGLE(GLeglContext ctx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glDeleteQueriesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteSamplersContextANGLE(GLeglContext ctx, GLsizei count, const GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSyncContextANGLE(GLeglContext ctx, GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacksContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glDrawArraysInstancedContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedContextANGLE(GLeglContext ctx, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawRangeElementsContextANGLE(GLeglContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEndQueryContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glEndTransformFeedbackContextANGLE(GLeglContext ctx); -GL_APICALL GLsync GL_APIENTRY glFenceSyncContextANGLE(GLeglContext ctx, GLenum condition, GLbitfield flags); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayerContextANGLE(GLeglContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void GL_APIENTRY glGenQueriesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glGenSamplersContextANGLE(GLeglContext ctx, GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacksContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glGenVertexArraysContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockNameContextANGLE(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockivContextANGLE(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformsivContextANGLE(GLeglContext ctx, GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64vContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetBufferPointervContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, void **params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocationContextANGLE(GLeglContext ctx, GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetInteger64i_vContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetInteger64vContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetIntegeri_vContextANGLE(GLeglContext ctx, GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glGetInternalformativContextANGLE(GLeglContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramBinaryContextANGLE(GLeglContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivContextANGLE(GLeglContext ctx, GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryivContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfvContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint *params); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringiContextANGLE(GLeglContext ctx, GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glGetSyncivContextANGLE(GLeglContext ctx, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVaryingContextANGLE(GLeglContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndexContextANGLE(GLeglContext ctx, GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetUniformIndicesContextANGLE(GLeglContext ctx, GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetUniformuivContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLuint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIivContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuivContextANGLE(GLeglContext ctx, GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glInvalidateFramebufferContextANGLE(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebufferContextANGLE(GLeglContext ctx, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLboolean GL_APIENTRY glIsQueryContextANGLE(GLeglContext ctx, GLuint id); -GL_APICALL GLboolean GL_APIENTRY glIsSamplerContextANGLE(GLeglContext ctx, GLuint sampler); -GL_APICALL GLboolean GL_APIENTRY glIsSyncContextANGLE(GLeglContext ctx, GLsync sync); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedbackContextANGLE(GLeglContext ctx, GLuint id); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayContextANGLE(GLeglContext ctx, GLuint array); -GL_APICALL void *GL_APIENTRY glMapBufferRangeContextANGLE(GLeglContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glPauseTransformFeedbackContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glProgramBinaryContextANGLE(GLeglContext ctx, GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteriContextANGLE(GLeglContext ctx, GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glReadBufferContextANGLE(GLeglContext ctx, GLenum src); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleContextANGLE(GLeglContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glResumeTransformFeedbackContextANGLE(GLeglContext ctx); -GL_APICALL void GL_APIENTRY glSamplerParameterfContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfvContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glSamplerParameteriContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameterivContextANGLE(GLeglContext ctx, GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glTexImage3DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexStorage2DContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DContextANGLE(GLeglContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTexSubImage3DContextANGLE(GLeglContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryingsContextANGLE(GLeglContext ctx, GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glUniform1uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform1uivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform2uivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform3uivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform4uivContextANGLE(GLeglContext ctx, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniformBlockBindingContextANGLE(GLeglContext ctx, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvContextANGLE(GLeglContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferContextANGLE(GLeglContext ctx, GLenum target); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorContextANGLE(GLeglContext ctx, GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glVertexAttribI4iContextANGLE(GLeglContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ivContextANGLE(GLeglContext ctx, GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiContextANGLE(GLeglContext ctx, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4uivContextANGLE(GLeglContext ctx, GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glVertexAttribIPointerContextANGLE(GLeglContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glWaitSyncContextANGLE(GLeglContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); -#endif diff --git a/gfx/angle/checkout/include/GLSLANG/ShaderLang.h b/gfx/angle/checkout/include/GLSLANG/ShaderLang.h --- a/gfx/angle/checkout/include/GLSLANG/ShaderLang.h +++ b/gfx/angle/checkout/include/GLSLANG/ShaderLang.h @@ -24,11 +24,11 @@ // Note: make sure to increment ANGLE_SH_VERSION when changing ShaderVars.h #include "ShaderVars.h" // Version number for shader translation API. // It is incremented every time the API changes. -#define ANGLE_SH_VERSION 257 +#define ANGLE_SH_VERSION 267 enum ShShaderSpec { SH_GLES2_SPEC, SH_WEBGL_SPEC, @@ -72,17 +72,31 @@ // Output SPIR-V for the Vulkan backend. SH_SPIRV_VULKAN_OUTPUT = 0x8B4B, // Output SPIR-V to be cross compiled to Metal. SH_SPIRV_METAL_OUTPUT = 0x8B4C, + + // Output for MSL + SH_MSL_METAL_OUTPUT = 0x8B4D, }; // Compile options. // The Compile options type is defined in ShaderVars.h, to allow ANGLE to import the ShaderVars // header without needing the ShaderLang header. This avoids some conflicts with glslang. - -const ShCompileOptions SH_VALIDATE = 0; +// SH_VALIDATE_LOOP_INDEXING: Validates loop and indexing in the shader to +// ensure that they do not exceed the minimum +// functionality mandated in GLSL 1.0 spec, +// Appendix A, Section 4 and 5. +// There is no need to specify this parameter when +// compiling for WebGL - it is implied. +// SH_OBJECT_CODE: Translates intermediate tree to glsl or hlsl shader, or SPIR-V binary. +// Can be queried by calling sh::GetObjectCode(). +// SH_VARIABLES: Extracts attributes, uniforms, and varyings. +// Can be queried by calling ShGetVariableInfo(). +// SH_LINE_DIRECTIVES: Emits #line directives in HLSL. +// SH_SOURCE_PATH: Tracks the source path for shaders. +// Can be queried with getSourcePath(). const ShCompileOptions SH_VALIDATE_LOOP_INDEXING = UINT64_C(1) << 0; const ShCompileOptions SH_INTERMEDIATE_TREE = UINT64_C(1) << 1; const ShCompileOptions SH_OBJECT_CODE = UINT64_C(1) << 2; const ShCompileOptions SH_VARIABLES = UINT64_C(1) << 3; const ShCompileOptions SH_LINE_DIRECTIVES = UINT64_C(1) << 4; @@ -118,14 +132,11 @@ const ShCompileOptions SH_ENFORCE_PACKING_RESTRICTIONS = UINT64_C(1) << 9; // This flag ensures all indirect (expression-based) array indexing // is clamped to the bounds of the array. This ensures, for example, // that you cannot read off the end of a uniform, whether an array -// vec234, or mat234 type. The ShArrayIndexClampingStrategy enum, -// specified in the ShBuiltInResources when constructing the -// compiler, selects the strategy for the clamping implementation. -// TODO(http://anglebug.com/4361): fix for compute shaders. +// vec234, or mat234 type. const ShCompileOptions SH_CLAMP_INDIRECT_ARRAY_BOUNDS = UINT64_C(1) << 10; // This flag limits the complexity of an expression. const ShCompileOptions SH_LIMIT_EXPRESSION_COMPLEXITY = UINT64_C(1) << 11; @@ -234,17 +245,11 @@ // If the flag is enabled, gl_PointSize is clamped to the maximum point size specified in // ShBuiltInResources in vertex shaders. const ShCompileOptions SH_CLAMP_POINT_SIZE = UINT64_C(1) << 32; -// Turn some arithmetic operations that operate on a float vector-scalar pair into vector-vector -// operations. This is done recursively. Some scalar binary operations inside vector constructors -// are also turned into vector operations. -// -// This is targeted to work around a bug in NVIDIA OpenGL drivers that was reproducible on NVIDIA -// driver version 387.92. It works around the most common occurrences of the bug. -const ShCompileOptions SH_REWRITE_VECTOR_SCALAR_ARITHMETIC = UINT64_C(1) << 33; +// Bit 33 is available. // Don't use loops to initialize uninitialized variables. Only has an effect if some kind of // variable initialization is turned on. const ShCompileOptions SH_DONT_USE_LOOPS_TO_INITIALIZE_VARIABLES = UINT64_C(1) << 34; @@ -335,19 +340,16 @@ // This flag initializes fragment shader's output variables to zero at the beginning of the fragment // shader's main(). It is intended as a workaround for drivers which get context lost if // gl_FragColor is not written. const ShCompileOptions SH_INIT_FRAGMENT_OUTPUT_VARIABLES = UINT64_C(1) << 57; -// Defines alternate strategies for implementing array index clamping. -enum ShArrayIndexClampingStrategy -{ - // Use the clamp intrinsic for array index clamping. - SH_CLAMP_WITH_CLAMP_INTRINSIC = 1, +// Transitory flag to select between producing SPIR-V directly vs using glslang. Ignored in +// non-assert-enabled builds to avoid increasing ANGLE's binary size. +const ShCompileOptions SH_GENERATE_SPIRV_THROUGH_GLSLANG = UINT64_C(1) << 58; - // Use a user-defined function for array index clamping. - SH_CLAMP_WITH_USER_DEFINED_INT_CLAMP_FUNCTION -}; +// Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel driver +const ShCompileOptions SH_ADD_EXPLICIT_BOOL_CASTS = UINT64_C(1) << 59; // The 64 bits hash function. The first parameter is the input string; the // second parameter is the string length. using ShHashFunction64 = khronos_uint64_t (*)(const char *, size_t); @@ -376,11 +378,10 @@ int ARB_texture_rectangle; int EXT_blend_func_extended; int EXT_draw_buffers; int EXT_frag_depth; int EXT_shader_texture_lod; - int WEBGL_debug_shader_precision; int EXT_shader_framebuffer_fetch; int EXT_shader_framebuffer_fetch_non_coherent; int NV_shader_framebuffer_fetch; int NV_shader_noperspective_interpolation; int ARM_shader_framebuffer_fetch; @@ -388,10 +389,11 @@ int OVR_multiview2; int EXT_multisampled_render_to_texture; int EXT_multisampled_render_to_texture2; int EXT_YUV_target; int EXT_geometry_shader; + int OES_geometry_shader; int OES_shader_io_blocks; int EXT_shader_io_blocks; int EXT_gpu_shader5; int EXT_shader_non_constant_global_initializers; int OES_texture_storage_multisample_2d_array; @@ -409,10 +411,11 @@ int EXT_tessellation_shader; int OES_texture_buffer; int EXT_texture_buffer; int OES_sample_variables; int EXT_clip_cull_distance; + int EXT_primitive_bounding_box; // Set to 1 to enable replacing GL_EXT_draw_buffers #extension directives // with GL_NV_draw_buffers in ESSL output. This flag can be used to emulate // EXT_draw_buffers by using it in combination with GLES3.0 glDrawBuffers // function. This applies to Tegra K1 devices. @@ -443,14 +446,10 @@ // Name Hashing. // Set a 64 bit hash function to enable user-defined name hashing. // Default is NULL. ShHashFunction64 HashFunction; - // Selects a strategy to use when implementing array index clamping. - // Default is SH_CLAMP_WITH_CLAMP_INTRINSIC. - ShArrayIndexClampingStrategy ArrayIndexClampingStrategy; - // The maximum complexity an expression can be when SH_LIMIT_EXPRESSION_COMPLEXITY is turned on. int MaxExpressionComplexity; // The maximum depth a call stack can be. int MaxCallStackDepth; @@ -581,10 +580,19 @@ // APPLE_clip_distance/EXT_clip_cull_distance constant int MaxClipDistances; int MaxCullDistances; int MaxCombinedClipAndCullDistances; + + // Direct-to-metal backend constants: + + // Binding index for driver uniforms: + int DriverUniformsBindingIndex; + // Binding index for default uniforms: + int DefaultUniformsBindingIndex; + // Binding index for UBO's argument buffer + int UBOArgumentBufferBindingIndex; }; // // ShHandle held by but opaque to the driver. It is allocated, // managed, and de-allocated by the compiler. Its contents @@ -646,26 +654,11 @@ // Parameters: // handle: Specifies the handle of compiler to be used. // shaderStrings: Specifies an array of pointers to null-terminated strings containing the shader // source code. // numStrings: Specifies the number of elements in shaderStrings array. -// compileOptions: A mask containing the following parameters: -// SH_VALIDATE: Validates shader to ensure that it conforms to the spec -// specified during compiler construction. -// SH_VALIDATE_LOOP_INDEXING: Validates loop and indexing in the shader to -// ensure that they do not exceed the minimum -// functionality mandated in GLSL 1.0 spec, -// Appendix A, Section 4 and 5. -// There is no need to specify this parameter when -// compiling for WebGL - it is implied. -// SH_INTERMEDIATE_TREE: Writes intermediate tree to info log. -// Can be queried by calling sh::GetInfoLog(). -// SH_OBJECT_CODE: Translates intermediate tree to glsl or hlsl shader, or SPIR-V binary. -// Can be queried by calling sh::GetObjectCode(). -// SH_VARIABLES: Extracts attributes, uniforms, and varyings. -// Can be queried by calling ShGetVariableInfo(). -// +// compileOptions: A mask of compile options defined above. bool Compile(const ShHandle handle, const char *const shaderStrings[], size_t numStrings, ShCompileOptions compileOptions); diff --git a/gfx/angle/checkout/include/GLSLANG/ShaderVars.h b/gfx/angle/checkout/include/GLSLANG/ShaderVars.h --- a/gfx/angle/checkout/include/GLSLANG/ShaderVars.h +++ b/gfx/angle/checkout/include/GLSLANG/ShaderVars.h @@ -31,10 +31,12 @@ INTERPOLATION_SAMPLE, INTERPOLATION_FLAT, INTERPOLATION_NOPERSPECTIVE }; +const char *InterpolationTypeToString(InterpolationType type); + // Validate link & SSO consistency of interpolation qualifiers bool InterpolationTypesMatch(InterpolationType a, InterpolationType b); // Uniform block layout qualifier, see section 4.3.8.3 of the ESSL 3.00.4 spec enum BlockLayoutType @@ -44,17 +46,21 @@ BLOCKLAYOUT_STD430, // Shader storage block layout qualifier BLOCKLAYOUT_PACKED, BLOCKLAYOUT_SHARED }; +const char *BlockLayoutTypeToString(BlockLayoutType type); + // Interface Blocks, see section 4.3.9 of the ESSL 3.10 spec enum class BlockType { BLOCK_UNIFORM, BLOCK_BUFFER, }; +const char *BlockTypeToString(BlockType type); + // Base class for all variables defined in shaders, including Varyings, Uniforms, etc // Note: we must override the copy constructor and assignment operator so we can // work around excessive GCC binary bloating: // See https://code.google.com/p/angleproject/issues/detail?id=697 struct ShaderVariable diff --git a/gfx/angle/checkout/include/platform/Feature.h b/gfx/angle/checkout/include/platform/Feature.h --- a/gfx/angle/checkout/include/platform/Feature.h +++ b/gfx/angle/checkout/include/platform/Feature.h @@ -31,20 +31,22 @@ D3DWorkarounds, D3DCompilerWorkarounds, VulkanWorkarounds, VulkanFeatures, MetalFeatures, + MetalWorkarounds, }; constexpr char kFeatureCategoryFrontendWorkarounds[] = "Frontend workarounds"; constexpr char kFeatureCategoryFrontendFeatures[] = "Frontend features"; constexpr char kFeatureCategoryOpenGLWorkarounds[] = "OpenGL workarounds"; constexpr char kFeatureCategoryD3DWorkarounds[] = "D3D workarounds"; constexpr char kFeatureCategoryD3DCompilerWorkarounds[] = "D3D compiler workarounds"; constexpr char kFeatureCategoryVulkanWorkarounds[] = "Vulkan workarounds"; constexpr char kFeatureCategoryVulkanFeatures[] = "Vulkan features"; constexpr char kFeatureCategoryMetalFeatures[] = "Metal features"; +constexpr char kFeatureCategoryMetalWorkarounds[] = "Metal workarounds"; constexpr char kFeatureCategoryUnknown[] = "Unknown"; inline const char *FeatureCategoryToString(const FeatureCategory &fc) { switch (fc) @@ -79,10 +81,14 @@ case FeatureCategory::MetalFeatures: return kFeatureCategoryMetalFeatures; break; + case FeatureCategory::MetalWorkarounds: + return kFeatureCategoryMetalWorkarounds; + break; + default: return kFeatureCategoryUnknown; break; } } diff --git a/gfx/angle/checkout/include/platform/FeaturesD3D.h b/gfx/angle/checkout/include/platform/FeaturesD3D.h --- a/gfx/angle/checkout/include/platform/FeaturesD3D.h +++ b/gfx/angle/checkout/include/platform/FeaturesD3D.h @@ -41,14 +41,10 @@ Feature setDataFasterThanImageUpload = {"set_data_faster_than_image_upload", FeatureCategory::D3DWorkarounds, "Set data faster than image upload", &members}; - Feature setDataFasterThanImageUploadOn128bitFormats = { - "set_data_faster_than_image_upload_on_128bit_formats", FeatureCategory::D3DWorkarounds, - "Set data faster than image upload on 128bit formats", &members}; - // Some renderers can't disable mipmaps on a mipmapped texture (i.e. solely sample from level // zero, and ignore the other levels). D3D11 Feature Level 10+ does this by setting MaxLOD to // 0.0f in the Sampler state. D3D9 sets D3DSAMP_MIPFILTER to D3DTEXF_NONE. There is no // equivalent to this in D3D11 Feature Level 9_3. This causes problems when (for example) an // application creates a mipmapped texture2D, but sets GL_TEXTURE_MIN_FILTER to GL_NEAREST @@ -150,18 +146,10 @@ // Tracking bug: https://crbug.com/655534 Feature callClearTwice = {"call_clear_twice", FeatureCategory::D3DWorkarounds, "Using clear() may not take effect", &members, "https://crbug.com/655534"}; - // On Sandybridge, calling ClearView after using dual source blending causes the hardware to - // hang. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1633628 - Feature emulateClearViewAfterDualSourceBlending = { - "emulate_clear_view_after_dual_source_blending", FeatureCategory::D3DWorkarounds, - "On Sandybridge, calling ClearView after using dual source blending causes " - "the hardware to hang", - &members, "https://bugzilla.mozilla.org/show_bug.cgi?id=1633628"}; - // On some Intel drivers, copying from staging storage to constant buffer storage does not // seem to work. Work around this by keeping system memory storage as a canonical reference // for buffer data. // D3D11-only workaround. See http://crbug.com/593024. Feature useSystemMemoryForConstantBuffers = {"use_system_memory_for_constant_buffers", diff --git a/gfx/angle/checkout/include/platform/FeaturesGL.h b/gfx/angle/checkout/include/platform/FeaturesGL.h --- a/gfx/angle/checkout/include/platform/FeaturesGL.h +++ b/gfx/angle/checkout/include/platform/FeaturesGL.h @@ -203,19 +203,10 @@ Feature clampPointSize = { "clamp_point_size", FeatureCategory::OpenGLWorkarounds, "The point size range reported from the API is inconsistent with the actual behavior", &members}; - // On some NVIDIA drivers certain types of GLSL arithmetic ops mixing vectors and scalars may be - // executed incorrectly. Change them in the shader translator. Tracking bug: - // http://crbug.com/772651 - Feature rewriteVectorScalarArithmetic = {"rewrite_vector_scalar_arithmetic", - FeatureCategory::OpenGLWorkarounds, - "Certain types of GLSL arithmetic ops mixing vectors " - "and scalars may be executed incorrectly", - &members, "http://crbug.com/772651"}; - // On some Android devices for loops used to initialize variables hit native GLSL compiler bugs. Feature dontUseLoopsToInitializeVariables = { "dont_use_loops_to_initialize_variables", FeatureCategory::OpenGLWorkarounds, "For loops used to initialize variables hit native GLSL compiler bugs", &members, "http://crbug.com/809422"}; @@ -341,16 +332,10 @@ Feature clipSrcRegionBlitFramebuffer = { "clip_src_region_for_blitframebuffer", FeatureCategory::OpenGLWorkarounds, "Issues with blitFramebuffer when the parameters don't match the framebuffer size.", &members, "http://crbug.com/830046"}; - // Calling glTexImage2D with zero size generates GL errors - Feature resettingTexturesGeneratesErrors = { - "reset_texture_generates_errors", FeatureCategory::OpenGLWorkarounds, - "Calling glTexImage2D with zero size generates errors.", &members, - "http://anglebug.com/3859"}; - // Mac Intel samples transparent black from GL_COMPRESSED_RGB_S3TC_DXT1_EXT Feature rgbDXT1TexturesSampleZeroAlpha = { "rgb_dxt1_textures_sample_zero_alpha", FeatureCategory::OpenGLWorkarounds, "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.", &members, "http://anglebug.com/3729"}; @@ -553,10 +538,30 @@ Feature flushOnFramebufferChange = {"flush_on_framebuffer_change", FeatureCategory::OpenGLWorkarounds, "Switching framebuffers without a flush can lead to " "crashes on Intel 9th Generation GPU Macs.", &members, "http://crbug.com/1181068"}; + + Feature disableMultisampledRenderToTexture = { + "disable_mutlisampled_render_to_texture", FeatureCategory::OpenGLWorkarounds, + "Many drivers have bugs when using GL_EXT_multisampled_render_to_texture", &members, + "http://anglebug.com/2894"}; + + // Mac OpenGL drivers often hang when calling glTexSubImage with >120kb of data. Instead, upload + // the data in <120kb chunks. + static constexpr const size_t kUploadTextureDataInChunksUploadSize = (120 * 1024) - 1; + Feature uploadTextureDataInChunks = { + "chunked_texture_upload", FeatureCategory::OpenGLWorkarounds, + "Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.", + &members, "http://crbug.com/1181068"}; + + // Qualcomm drivers may sometimes reject immutable ASTC sliced 3D texture + // allocation. Instead, use non-immutable allocation internally. + Feature emulateImmutableCompressedTexture3D = { + "emulate_immutable_compressed_texture_3d", FeatureCategory::OpenGLWorkarounds, + "Use non-immutable texture allocation to work around a driver bug.", &members, + "https://crbug.com/1060012"}; }; inline FeaturesGL::FeaturesGL() = default; inline FeaturesGL::~FeaturesGL() = default; diff --git a/gfx/angle/checkout/include/platform/FeaturesMtl.h b/gfx/angle/checkout/include/platform/FeaturesMtl.h --- a/gfx/angle/checkout/include/platform/FeaturesMtl.h +++ b/gfx/angle/checkout/include/platform/FeaturesMtl.h @@ -57,34 +57,84 @@ "The renderer supports MSAA stencil auto resolve at the end of render pass", &members}; Feature hasEvents = {"has_mtl_events", FeatureCategory::MetalFeatures, "The renderer supports MTL(Shared)Event", &members}; + Feature allowInlineConstVertexData = { + "allow_inline_const_vertex_data", FeatureCategory::MetalFeatures, + "The renderer supports using inline constant data for small client vertex data", &members}; + // On macos, separate depth & stencil buffers are not supproted. However, on iOS devices, // they are supproted: Feature allowSeparatedDepthStencilBuffers = { "allow_separate_depth_stencil_buffers", FeatureCategory::MetalFeatures, "Some Apple platforms such as iOS allows separate depth & stencil buffers, " "whereas others such as macOS don't", &members}; + Feature allowRuntimeSamplerCompareMode = { + "allow_runtime_sampler_compare_mode", FeatureCategory::MetalFeatures, + "The renderer supports changing sampler's compare mode outside shaders", &members}; + + Feature allowSamplerCompareGradient = { + "allow_sampler_compare_gradient", FeatureCategory::MetalFeatures, + "The renderer supports sample_compare with gradients", &members}; + + Feature allowSamplerCompareLod = {"allow_sampler_compare_lod", FeatureCategory::MetalFeatures, + "The renderer supports sample_compare with lod", &members}; + + Feature allowBufferReadWrite = {"allow_buffer_read_write", FeatureCategory::MetalFeatures, + "The renderer supports buffer read & write in the same shader", + &members}; + Feature allowMultisampleStoreAndResolve = { "allow_msaa_store_and_resolve", FeatureCategory::MetalFeatures, "The renderer supports MSAA store and resolve in the same pass", &members}; Feature allowGenMultipleMipsPerPass = { "gen_multiple_mips_per_pass", FeatureCategory::MetalFeatures, "The renderer supports generating multiple mipmaps per pass", &members}; + Feature forceD24S8AsUnsupported = {"force_d24s8_as_unsupported", FeatureCategory::MetalFeatures, + "Force Depth24Stencil8 format as unsupported.", &members}; + Feature forceBufferGPUStorage = { - "force_buffer_gpu_storage_mtl", FeatureCategory::MetalFeatures, - "On systems that support both buffer's memory allocation on GPU and shared memory (such as " - "macOS), force using GPU memory allocation for buffers.", + "force_buffer_gpu_storage", FeatureCategory::MetalFeatures, + "On systems that support both buffer' memory allocation on GPU and shared memory (such as " + "macOS), force using GPU memory allocation for buffers everytime or not.", &members}; - Feature forceD24S8AsUnsupported = {"force_d24s8_as_unsupported", FeatureCategory::MetalFeatures, - "Force Depth24Stencil8 format as unsupported.", &members}; + // Generate Metal directly instead of generating SPIR-V and then using SPIR-V Cross. Transitory + // feature until the work is complete. + Feature directMetalGeneration = {"directMetalGeneration", FeatureCategory::MetalFeatures, + "Direct translation to Metal.", &members, + "http://anglebug.com/5505"}; + + Feature forceNonCSBaseMipmapGeneration = { + "force_non_cs_mipmap_gen", FeatureCategory::MetalFeatures, + "Turn this feature on to disallow Compute Shader based mipmap generation. Compute Shader " + "based mipmap generation might cause GPU hang on some older iOS devices.", + &members}; + + Feature emulateTransformFeedback = { + "emulate_transform_feedback", FeatureCategory::MetalFeatures, + "Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3.", &members}; + + // Rewrite row-major matrices as column-major + Feature rewriteRowMajorMatrices = {"rewrite_row_major_matrices", FeatureCategory::MetalFeatures, + "Rewrite row major matrices in shaders as column major.", + &members}; + + Feature intelExplicitBoolCastWorkaround = { + "intel_explicit_bool_cast_workaround", FeatureCategory::MetalWorkarounds, + "Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel " + "driver", + &members}; + + Feature intelDisableFastMath = { + "intel_disable_fast_math", FeatureCategory::MetalWorkarounds, + "Disable fast math in atan and invariance cases when running below macOS 12.0", &members}; }; } // namespace angle #endif // ANGLE_PLATFORM_FEATURESMTL_H_ diff --git a/gfx/angle/checkout/include/platform/FeaturesVk.h b/gfx/angle/checkout/include/platform/FeaturesVk.h --- a/gfx/angle/checkout/include/platform/FeaturesVk.h +++ b/gfx/angle/checkout/include/platform/FeaturesVk.h @@ -41,17 +41,10 @@ // the provoking vertex mode Feature provokingVertex = {"provokingVertex", FeatureCategory::VulkanFeatures, "Enable provoking vertex mode via VK_EXT_provoking_vertex extension", &members}; - // Add an extra copy region when using vkCmdCopyBuffer as the Windows Intel driver seems - // to have a bug where the last region is ignored. - Feature extraCopyBufferRegion = { - "extraCopyBufferRegion", FeatureCategory::VulkanWorkarounds, - "Some drivers seem to have a bug where the last copy region in vkCmdCopyBuffer is ignored", - &members}; - // This flag is added for the sole purpose of end2end tests, to test the correctness // of various algorithms when a fallback format is used, such as using a packed format to // emulate a depth- or stencil-only format. Feature forceFallbackFormat = {"forceFallbackFormat", FeatureCategory::VulkanWorkarounds, "Force a fallback format for angle_end2end_tests", &members}; @@ -88,18 +81,10 @@ // EGL_KHR_swap_buffers_with_damage extension can be layered. Feature supportsIncrementalPresent = { "supportsIncrementalPresent", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_KHR_incremental_present extension", &members}; - // Whether texture copies on cube map targets should be done on GPU. This is a workaround for - // Intel drivers on windows that have an issue with creating single-layer views on cube map - // textures. - Feature forceCPUPathForCubeMapCopy = { - "forceCPUPathForCubeMapCopy", FeatureCategory::VulkanWorkarounds, - "Some drivers have an issue with creating single-layer views on cube map textures", - &members}; - // Whether the VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer // extension, on which the EGL_ANDROID_image_native_buffer extension can be layered. Feature supportsAndroidHardwareBuffer = { "supportsAndroidHardwareBuffer", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension", @@ -159,15 +144,21 @@ Feature supportsAndroidNativeFenceSync = { "supportsAndroidNativeFenceSync", FeatureCategory::VulkanFeatures, "VkDevice supports the EGL_ANDROID_native_fence_sync extension", &members, "http://anglebug.com/2517"}; - // Whether the VkDevice can support imageCubeArray feature properly. + // Whether the VkDevice can support the imageCubeArray feature properly. Feature supportsImageCubeArray = {"supportsImageCubeArray", FeatureCategory::VulkanFeatures, "VkDevice supports the imageCubeArray feature properly", &members, "http://anglebug.com/3584"}; + // Whether the VkDevice supports the pipelineStatisticsQuery feature. + Feature supportsPipelineStatisticsQuery = { + "supportsPipelineStatisticsQuery", FeatureCategory::VulkanFeatures, + "VkDevice supports the pipelineStatisticsQuery feature", &members, + "http://anglebug.com/5430"}; + // Whether the VkDevice supports the VK_EXT_shader_stencil_export extension, which is used to // perform multisampled resolve of stencil buffer. A multi-step workaround is used instead if // this extension is not available. Feature supportsShaderStencilExport = { "supportsShaderStencilExport", FeatureCategory::VulkanFeatures, @@ -191,16 +182,28 @@ Feature supportsTransformFeedbackExtension = { "supportsTransformFeedbackExtension", FeatureCategory::VulkanFeatures, "Transform feedback uses the VK_EXT_transform_feedback extension.", &members, "http://anglebug.com/3206"}; + Feature supportsGeometryStreamsCapability = { + "supportsGeometryStreamsCapability", FeatureCategory::VulkanFeatures, + "Implementation supports the GeometryStreams SPIR-V capability.", &members, + "http://anglebug.com/3206"}; + // Whether the VkDevice supports the VK_EXT_index_type_uint8 extension // http://anglebug.com/4405 Feature supportsIndexTypeUint8 = {"supportsIndexTypeUint8", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_EXT_index_type_uint8 extension", &members, "http://anglebug.com/4405"}; + // Whether the VkDevice supports the VK_EXT_custom_border_color extension + // http://anglebug.com/3577 + Feature supportsCustomBorderColorEXT = { + "supports_custom_border_color", FeatureCategory::VulkanFeatures, + "VkDevice supports the VK_EXT_custom_border_color extension", &members, + "http://anglebug.com/3577"}; + // Whether the VkDevice supports the VK_KHR_depth_stencil_resolve extension with the // independentResolveNone feature. // http://anglebug.com/4836 Feature supportsDepthStencilResolve = {"supportsDepthStencilResolve", FeatureCategory::VulkanFeatures, @@ -213,10 +216,15 @@ Feature supportsMultisampledRenderToSingleSampled = { "supportsMultisampledRenderToSingleSampled", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension", &members, "http://anglebug.com/4836"}; + // Whether the VkDevice supports the VK_KHR_multiview extension. http://anglebug.com/6048 + Feature supportsMultiview = {"supportsMultiview", FeatureCategory::VulkanFeatures, + "VkDevice supports the VK_KHR_multiview extension", &members, + "http://anglebug.com/6048"}; + // VK_PRESENT_MODE_FIFO_KHR causes random timeouts on Linux Intel. http://anglebug.com/3153 Feature disableFifoPresentMode = {"disableFifoPresentMode", FeatureCategory::VulkanWorkarounds, "VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members, "http://anglebug.com/3153"}; @@ -284,10 +292,19 @@ Feature supportsSwapchainColorspace = { "supportsSwapchainColorspace", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_EXT_swapchain_colorspace extension", &members, "http://anglebug.com/2514"}; + // Whether the VkDevice supports the VK_EXT_external_memory_dma_buf and + // VK_EXT_image_drm_format_modifier extensions. These extensions are always used together to + // implement EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers. + Feature supportsExternalMemoryDmaBufAndModifiers = { + "supportsExternalMemoryDmaBufAndModifiers", FeatureCategory::VulkanFeatures, + "VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier " + "extensions", + &members, "http://anglebug.com/6248"}; + // Whether the VkDevice supports the VK_EXT_external_memory_host extension, on which the // ANGLE_iosurface_client_buffer extension can be layered. Feature supportsExternalMemoryHost = { "supportsExternalMemoryHost", FeatureCategory::VulkanFeatures, "VkDevice supports the VK_EXT_external_memory_host extension", &members}; @@ -316,10 +333,19 @@ Feature shadowBuffers = { "shadowBuffers", FeatureCategory::VulkanFeatures, "Allocate a shadow buffer for GL buffer objects to reduce glMap* latency.", &members, "http://anglebug.com/4339"}; + // When we update buffer data we usually face a choice to either clone a buffer and copy the + // data or stage a buffer update and use the GPU to do the copy. For some GPUs, a performance + // penalty to use the GPU to do copies. Setting this flag to true will always try to create a + // new buffer and use the CPU to copy data when possible. + Feature preferCPUForBufferSubData = { + "preferCPUForBufferSubData", FeatureCategory::VulkanFeatures, + "Prefer use CPU to do bufferSubData instead of staged update.", &members, + "http://issuetracker.google.com/200067929"}; + // Persistently map buffer memory until destroy, saves on map/unmap IOCTL overhead // for buffers that are updated frequently. Feature persistentlyMappedBuffers = { "persistentlyMappedBuffers", FeatureCategory::VulkanFeatures, "Persistently map buffer memory to reduce map/unmap IOCTL overhead.", &members, @@ -373,10 +399,17 @@ Feature supportsRenderPassStoreOpNoneQCOM = { "supportsRenderPassStoreOpNoneQCOM", FeatureCategory::VulkanFeatures, "VkDevice supports VK_QCOM_render_pass_store_ops extension.", &members, "http://anglebug.com/5055"}; + // Whether the VkDevice supports the VK_EXT_load_store_op_none extension + // http://anglebug.com/5371 + Feature supportsRenderPassLoadStoreOpNone = { + "supportsRenderPassLoadStoreOpNone", FeatureCategory::VulkanFeatures, + "VkDevice supports VK_EXT_load_store_op_none extension.", &members, + "http://anglebug.com/5371"}; + // Force maxUniformBufferSize to 16K on Qualcomm's Adreno 540. Pixel2's Adreno540 reports // maxUniformBufferSize 64k but various tests failed with that size. For that specific // device, we set to 16k for now which is known to pass all tests. // https://issuetracker.google.com/161903006 Feature forceMaxUniformBufferSize16KB = { @@ -480,10 +513,16 @@ // Whether prerotation is being emulated for testing. 270 degree rotation. Feature emulatedPrerotation270 = {"emulatedPrerotation270", FeatureCategory::VulkanFeatures, "Emulate 270-degree prerotation.", &members, "http://anglebug.com/4901"}; + // Whether SPIR-V should be generated through glslang. Transitory feature while confidence is + // built on the SPIR-V generation code. + Feature generateSPIRVThroughGlslang = { + "generateSPIRVThroughGlslang", FeatureCategory::VulkanFeatures, + "Translate SPIR-V through glslang.", &members, "http://anglebug.com/4889"}; + // Whether we should use driver uniforms over specialization constants for some shader // modifications like yflip and rotation. Feature forceDriverUniformOverSpecConst = { "forceDriverUniformOverSpecConst", FeatureCategory::VulkanWorkarounds, "Forces using driver uniforms instead of specialization constants.", &members, @@ -519,10 +558,38 @@ // Whether we should submit at each FBO boundary. Feature preferSubmitAtFBOBoundary = { "preferSubmitAtFBOBoundary", FeatureCategory::VulkanWorkarounds, "Submit commands to driver at each FBO boundary for performance improvements.", &members, "https://issuetracker.google.com/187425444"}; + + // Workaround for gap in Vulkan spec related to querying descriptor count for immutable samplers + // tied to an external format. + Feature useMultipleDescriptorsForExternalFormats = { + "useMultipleDescriptorsForExternalFormats", FeatureCategory::VulkanWorkarounds, + "Return a default descriptor count for external formats.", &members, + "http://anglebug.com/6141"}; + + // Whether the VkDevice can support Protected Memory. + Feature supportsProtectedMemory = {"supports_protected_memory", FeatureCategory::VulkanFeatures, + "VkDevice supports protected memory", &members, + "http://anglebug.com/3965"}; + + // Whether the VkInstance supports the VK_KHR_get_surface_capabilities2 extension. + Feature supportsSurfaceCapabilities2Extension = { + "supportsSurfaceCapabilities2Extension", FeatureCategory::VulkanFeatures, + "VkInstance supports the VK_KHR_get_surface_capabilities2 extension", &members}; + + // Whether the VkInstance supports the VK_KHR_surface_protected_capabilities extension. + Feature supportsSurfaceProtectedCapabilitiesExtension = { + "supportsSurfaceProtectedCapabilitiesExtension", FeatureCategory::VulkanFeatures, + "VkInstance supports the VK_KHR_surface_protected_capabilities extension", &members}; + + // Whether the VkSurface supports protected swapchains from + // supportsSurfaceProtectedCapabilitiesExtension. + Feature supportsSurfaceProtectedSwapchains = { + "supportsSurfaceProtectedSwapchains", FeatureCategory::VulkanFeatures, + "VkSurface supportsProtected for protected swapchains", &members}; }; inline FeaturesVk::FeaturesVk() = default; inline FeaturesVk::~FeaturesVk() = default; diff --git a/gfx/angle/checkout/include/platform/FrontendFeatures.h b/gfx/angle/checkout/include/platform/FrontendFeatures.h --- a/gfx/angle/checkout/include/platform/FrontendFeatures.h +++ b/gfx/angle/checkout/include/platform/FrontendFeatures.h @@ -34,19 +34,10 @@ angle::Feature disableProgramCachingForTransformFeedback = { "disable_program_caching_for_transform_feedback", angle::FeatureCategory::FrontendWorkarounds, "On some GPUs, program binaries don't contain transform feedback varyings", &members}; - // On Windows Intel OpenGL drivers TexImage sometimes seems to interact with the Framebuffer. - // Flaky crashes can occur unless we sync the Framebuffer bindings. The workaround is to add - // Framebuffer binding dirty bits to TexImage updates. See http://anglebug.com/2906 - angle::Feature syncFramebufferBindingsOnTexImage = { - "sync_framebuffer_bindings_on_tex_image", angle::FeatureCategory::FrontendWorkarounds, - "On some drivers TexImage sometimes seems to interact " - "with the Framebuffer", - &members}; - angle::Feature scalarizeVecAndMatConstructorArgs = { "scalarize_vec_and_mat_constructor_args", angle::FeatureCategory::FrontendWorkarounds, "Always rewrite vec/mat constructors to be consistent", &members, "http://crbug.com/1165751"}; @@ -74,10 +65,26 @@ // Whether we should compress pipeline cache in thread pool before it's stored in blob cache. // http://anglebug.com/4722 angle::Feature enableCompressingPipelineCacheInThreadPool = { "enableCompressingPipelineCacheInThreadPool", angle::FeatureCategory::FrontendWorkarounds, "Enable compressing pipeline cache in thread pool.", &members, "http://anglebug.com/4722"}; + + // Forces on robust resource init. Useful for some tests to avoid undefined values. + angle::Feature forceRobustResourceInit = { + "forceRobustResourceInit", angle::FeatureCategory::FrontendFeatures, + "Force-enable robust resource init", &members, "http://anglebug.com/6041"}; + + // Forces on shader variable init to avoid undefined values in tests. This feature is enabled + // for WebGL and frame capture, which both require deterministic results. + angle::Feature forceInitShaderVariables = { + "forceInitShaderVariables", angle::FeatureCategory::FrontendFeatures, + "Force-enable shader variable initialization", &members}; + + angle::Feature enableProgramBinaryForCapture = { + "enableProgramBinaryForCapture", angle::FeatureCategory::FrontendFeatures, + "Even if FrameCapture is enabled, enable GL_OES_get_program_binary", &members, + "http://anglebug.com/5658"}; }; inline FrontendFeatures::FrontendFeatures() = default; inline FrontendFeatures::~FrontendFeatures() = default; diff --git a/gfx/angle/checkout/include/platform/PlatformMethods.h b/gfx/angle/checkout/include/platform/PlatformMethods.h --- a/gfx/angle/checkout/include/platform/PlatformMethods.h +++ b/gfx/angle/checkout/include/platform/PlatformMethods.h @@ -11,11 +11,11 @@ #include #include #include -#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482 +#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x6AFB #if !defined(ANGLE_PLATFORM_EXPORT) # if defined(_WIN32) # if !defined(LIBANGLE_IMPLEMENTATION) # define ANGLE_PLATFORM_EXPORT __declspec(dllimport) diff --git a/gfx/angle/checkout/include/vulkan/vulkan_fuchsia_ext.h b/gfx/angle/checkout/include/vulkan/vulkan_fuchsia_ext.h --- a/gfx/angle/checkout/include/vulkan/vulkan_fuchsia_ext.h +++ b/gfx/angle/checkout/include/vulkan/vulkan_fuchsia_ext.h @@ -2,12 +2,12 @@ // Copyright 2019 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. // // vulkan_fuchsia_ext: -// Defines Fuchsia-specific Vulkan extensions that haven't been -// upstreamed to the official Vulkan headers. +// Defines Fuchsia-specific Vulkan extensions when compiling on other +// platforms. // #ifndef COMMON_VULKAN_FUCHSIA_EXT_H_ #define COMMON_VULKAN_FUCHSIA_EXT_H_ @@ -15,135 +15,17 @@ # define VK_NO_PROTOTYPES #endif #include -#if defined(ANGLE_PLATFORM_FUCHSIA) -# include -#else +// If this is not Fuchsia then define Fuchsia-specific types explicitly and include +// vulkan_fuchsia.h to make it possible to compile the code on other platforms. +// +// TODO(https://anglebug.com/6040): Update all code to avoid dependencies on +// Fuchsia-specific types when compiling on other platforms. Then remove this header. +#if !defined(ANGLE_PLATFORM_FUCHSIA) typedef uint32_t zx_handle_t; # define ZX_HANDLE_INVALID ((zx_handle_t)0) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -const VkStructureType VK_STRUCTURE_TYPE_TEMP_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = - static_cast(1001005000); -const VkStructureType VK_STRUCTURE_TYPE_TEMP_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = - static_cast(1001005001); -const VkStructureType VK_STRUCTURE_TYPE_TEMP_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = - static_cast(1001005002); -const VkStructureType VK_STRUCTURE_TYPE_TEMP_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = - static_cast(1001006000); -const VkStructureType VK_STRUCTURE_TYPE_TEMP_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = - static_cast(1001006001); - -const VkExternalMemoryHandleTypeFlagBits - VK_EXTERNAL_MEMORY_HANDLE_TYPE_TEMP_ZIRCON_VMO_BIT_FUCHSIA = - static_cast(0x00100000); - -const VkExternalSemaphoreHandleTypeFlagBits - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA = - static_cast(0x00100000); - -#ifndef VK_FUCHSIA_external_memory -# define VK_FUCHSIA_external_memory 1 -# define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 -# define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" - -typedef struct VkImportMemoryZirconHandleInfoFUCHSIA -{ - VkStructureType sType; - const void *pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - zx_handle_t handle; -} VkImportMemoryZirconHandleInfoFUCHSIA; - -typedef struct VkMemoryZirconHandlePropertiesFUCHSIA -{ - VkStructureType sType; - void *pNext; - zx_handle_t memoryTypeBits; -} VkMemoryZirconHandlePropertiesFUCHSIA; - -typedef struct VkMemoryGetZirconHandleInfoFUCHSIA -{ - VkStructureType sType; - const void *pNext; - VkDeviceMemory memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetZirconHandleInfoFUCHSIA; - -typedef VkResult(VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)( - VkDevice device, - const VkMemoryGetZirconHandleInfoFUCHSIA *pGetZirconHandleInfo, - zx_handle_t *pZirconHandle); -typedef VkResult(VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)( - VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - zx_handle_t ZirconHandle, - VkMemoryZirconHandlePropertiesFUCHSIA *pMemoryZirconHandleProperties); - -# ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL -vkGetMemoryZirconHandleFUCHSIA(VkDevice device, - const VkMemoryGetZirconHandleInfoFUCHSIA *pGetZirconHandleInfo, - zx_handle_t *pZirconHandle); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( - VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - zx_handle_t ZirconHandle, - VkMemoryZirconHandlePropertiesFUCHSIA *pMemoryZirconHandleProperties); -# endif -#endif - -#ifndef VK_FUCHSIA_external_semaphore -# define VK_FUCHSIA_external_semaphore 1 -# define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 -# define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" - -typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA -{ - VkStructureType sType; - const void *pNext; - VkSemaphore semaphore; - VkSemaphoreImportFlags flags; - VkExternalSemaphoreHandleTypeFlagBits handleType; - zx_handle_t zirconHandle; -} VkImportSemaphoreZirconHandleInfoFUCHSIA; - -typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA -{ - VkStructureType sType; - const void *pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkSemaphoreGetZirconHandleInfoFUCHSIA; - -typedef VkResult(VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)( - VkDevice device, - const VkImportSemaphoreZirconHandleInfoFUCHSIA *pImportSemaphoreZirconHandleInfo); -typedef VkResult(VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)( - VkDevice device, - const VkSemaphoreGetZirconHandleInfoFUCHSIA *pGetZirconHandleInfo, - zx_handle_t *pZirconHandle); - -# ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( - VkDevice device, - const VkImportSemaphoreZirconHandleInfoFUCHSIA *pImportSemaphoreZirconHandleInfo); - -VKAPI_ATTR VkResult VKAPI_CALL -vkGetSemaphoreZirconHandleFUCHSIA(VkDevice device, - const VkSemaphoreGetZirconHandleInfoFUCHSIA *pGetZirconHandleInfo, - zx_handle_t *pZirconHandle); -# endif -#endif - -#ifdef __cplusplus -} +# include #endif #endif // COMMON_VULKAN_FUCHSIA_EXT_H_ diff --git a/gfx/angle/checkout/out/gen/angle/angle_commit.h b/gfx/angle/checkout/out/gen/angle/angle_commit.h --- a/gfx/angle/checkout/out/gen/angle/angle_commit.h +++ b/gfx/angle/checkout/out/gen/angle/angle_commit.h @@ -1,4 +1,4 @@ -#define ANGLE_COMMIT_HASH "23851a53779d" +#define ANGLE_COMMIT_HASH "f4933235fb2c" #define ANGLE_COMMIT_HASH_SIZE 12 -#define ANGLE_COMMIT_DATE "2021-09-14 18:27:26 -0700" -#define ANGLE_COMMIT_POSITION 15727 +#define ANGLE_COMMIT_DATE "2021-11-16 17:13:23 +0000" +#define ANGLE_COMMIT_POSITION 17193 diff --git a/gfx/angle/checkout/src/common/CircularBuffer.h b/gfx/angle/checkout/src/common/CircularBuffer.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/CircularBuffer.h @@ -0,0 +1,175 @@ +// +// Copyright 2021 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. +// +// CircularBuffer.h: +// An array class with an index that loops through the elements. +// + +#ifndef COMMON_CIRCULARBUFFER_H_ +#define COMMON_CIRCULARBUFFER_H_ + +#include "common/debug.h" + +#include +#include + +namespace angle +{ +template > +class CircularBuffer final +{ + public: + using value_type = typename Storage::value_type; + using size_type = typename Storage::size_type; + using reference = typename Storage::reference; + using const_reference = typename Storage::const_reference; + using pointer = typename Storage::pointer; + using const_pointer = typename Storage::const_pointer; + using iterator = typename Storage::iterator; + using const_iterator = typename Storage::const_iterator; + + CircularBuffer(); + CircularBuffer(const value_type &value); + + CircularBuffer(const CircularBuffer &other); + CircularBuffer(CircularBuffer &&other); + + CircularBuffer &operator=(const CircularBuffer &other); + CircularBuffer &operator=(CircularBuffer &&other); + + ~CircularBuffer(); + + // begin() and end() are used to iterate over all elements regardless of the current position of + // the front of the buffer. Useful for initialization and clean up, as otherwise only the front + // element is expected to be accessed. + iterator begin(); + const_iterator begin() const; + + iterator end(); + const_iterator end() const; + + size_type size() const; + + reference front(); + const_reference front() const; + + void swap(CircularBuffer &other); + + // Move the front forward to the next index, looping back to the beginning if the end of the + // array is reached. + void next(); + + private: + Storage mData; + size_type mFrontIndex; +}; + +template +CircularBuffer::CircularBuffer() : mFrontIndex(0) +{} + +template +CircularBuffer::CircularBuffer(const value_type &value) : CircularBuffer() +{ + std::fill(begin(), end(), value); +} + +template +CircularBuffer::CircularBuffer(const CircularBuffer &other) +{ + *this = other; +} + +template +CircularBuffer::CircularBuffer(CircularBuffer &&other) + : CircularBuffer() +{ + swap(other); +} + +template +CircularBuffer &CircularBuffer::operator=( + const CircularBuffer &other) +{ + std::copy(other.begin(), other.end(), begin()); + mFrontIndex = other.mFrontIndex; + return *this; +} + +template +CircularBuffer &CircularBuffer::operator=( + CircularBuffer &&other) +{ + swap(other); + return *this; +} + +template +CircularBuffer::~CircularBuffer() = default; + +template +ANGLE_INLINE typename CircularBuffer::iterator CircularBuffer::begin() +{ + return mData.begin(); +} + +template +ANGLE_INLINE typename CircularBuffer::const_iterator +CircularBuffer::begin() const +{ + return mData.begin(); +} + +template +ANGLE_INLINE typename CircularBuffer::iterator CircularBuffer::end() +{ + return mData.end(); +} + +template +ANGLE_INLINE typename CircularBuffer::const_iterator +CircularBuffer::end() const +{ + return mData.end(); +} + +template +ANGLE_INLINE typename CircularBuffer::size_type CircularBuffer::size() + const +{ + return N; +} + +template +ANGLE_INLINE typename CircularBuffer::reference +CircularBuffer::front() +{ + ASSERT(mFrontIndex < size()); + return mData[mFrontIndex]; +} + +template +ANGLE_INLINE typename CircularBuffer::const_reference +CircularBuffer::front() const +{ + ASSERT(mFrontIndex < size()); + return mData[mFrontIndex]; +} + +template +void CircularBuffer::swap(CircularBuffer &other) +{ + std::swap(mData, other.mData); + std::swap(mFrontIndex, other.mFrontIndex); +} + +template +void CircularBuffer::next() +{ + mFrontIndex = (mFrontIndex + 1) % size(); +} +} // namespace angle + +#endif // COMMON_CIRCULARBUFFER_H_ diff --git a/gfx/angle/checkout/src/common/FastVector.h b/gfx/angle/checkout/src/common/FastVector.h --- a/gfx/angle/checkout/src/common/FastVector.h +++ b/gfx/angle/checkout/src/common/FastVector.h @@ -39,10 +39,13 @@ FastVector(const FastVector &other); FastVector(FastVector &&other); FastVector(std::initializer_list init); + template ::value, bool> = true> + FastVector(InputIt first, InputIt last); + FastVector &operator=(const FastVector &other); FastVector &operator=(FastVector &&other); FastVector &operator=(std::initializer_list init); ~FastVector(); @@ -137,15 +140,12 @@ mSize = count; } template FastVector::FastVector(const FastVector &other) -{ - ensure_capacity(other.mSize); - mSize = other.mSize; - std::copy(other.begin(), other.end(), begin()); -} + : FastVector(other.begin(), other.end()) +{} template FastVector::FastVector(FastVector &&other) : FastVector() { swap(other); @@ -156,10 +156,20 @@ { assign_from_initializer_list(init); } template +template ::value, bool>> +FastVector::FastVector(InputIt first, InputIt last) +{ + size_t newSize = last - first; + ensure_capacity(newSize); + mSize = newSize; + std::copy(first, last, begin()); +} + +template FastVector &FastVector::operator=( const FastVector &other) { ensure_capacity(other.mSize); mSize = other.mSize; @@ -168,11 +178,11 @@ } template FastVector &FastVector::operator=(FastVector &&other) { - swap(*this, other); + swap(other); return *this; } template FastVector &FastVector::operator=( diff --git a/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.h b/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.h --- a/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.h +++ b/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.h @@ -22,10 +22,24 @@ { template Enum FromEGLenum(EGLenum from); +enum class ColorSpace : uint8_t +{ + sRGB = 0, + Linear = 1, + + InvalidEnum = 2, + EnumCount = 2, +}; + +template <> +ColorSpace FromEGLenum(EGLenum from); +EGLenum ToEGLenum(ColorSpace from); +std::ostream &operator<<(std::ostream &os, ColorSpace value); + enum class CompositorTiming : uint8_t { CompositeDeadline = 0, CompositInterval = 1, CompositToPresentLatency = 2, diff --git a/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.cpp b/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.cpp --- a/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.cpp +++ b/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.cpp @@ -14,10 +14,55 @@ namespace egl { template <> +ColorSpace FromEGLenum(EGLenum from) +{ + switch (from) + { + case EGL_COLORSPACE_sRGB: + return ColorSpace::sRGB; + case EGL_COLORSPACE_LINEAR: + return ColorSpace::Linear; + default: + return ColorSpace::InvalidEnum; + } +} + +EGLenum ToEGLenum(ColorSpace from) +{ + switch (from) + { + case ColorSpace::sRGB: + return EGL_COLORSPACE_sRGB; + case ColorSpace::Linear: + return EGL_COLORSPACE_LINEAR; + default: + UNREACHABLE(); + return 0; + } +} + +std::ostream &operator<<(std::ostream &os, ColorSpace value) +{ + switch (value) + { + case ColorSpace::sRGB: + os << "EGL_COLORSPACE_sRGB"; + break; + case ColorSpace::Linear: + os << "EGL_COLORSPACE_LINEAR"; + break; + default: + os << "GL_INVALID_ENUM"; + break; + } + return os; +} + +template <> CompositorTiming FromEGLenum(EGLenum from) { switch (from) { case EGL_COMPOSITE_DEADLINE_ANDROID: diff --git a/gfx/angle/checkout/src/common/PoolAlloc.h b/gfx/angle/checkout/src/common/PoolAlloc.h --- a/gfx/angle/checkout/src/common/PoolAlloc.h +++ b/gfx/angle/checkout/src/common/PoolAlloc.h @@ -2,12 +2,11 @@ // Copyright 2019 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. // // PoolAlloc.h: -// Defines the class interface for PoolAllocator and the Allocation -// class that it uses internally. +// Defines the class interface for PoolAllocator. // #ifndef COMMON_POOLALLOC_H_ #define COMMON_POOLALLOC_H_ @@ -30,83 +29,17 @@ // // Individual classes can use this allocator by supplying their own // new and delete methods. // -#include -#include -#include -#include - #include "angleutils.h" #include "common/debug.h" namespace angle { -// If we are using guard blocks, we must track each individual -// allocation. If we aren't using guard blocks, these -// never get instantiated, so won't have any impact. -// - -class Allocation -{ - public: - Allocation(size_t size, unsigned char *mem, Allocation *prev = 0) - : mSize(size), mMem(mem), mPrevAlloc(prev) - { -// Allocations are bracketed: -// [allocationHeader][initialGuardBlock][userData][finalGuardBlock] -// This would be cleaner with if (kGuardBlockSize)..., but that -// makes the compiler print warnings about 0 length memsets, -// even with the if() protecting them. -#if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - memset(preGuard(), kGuardBlockBeginVal, kGuardBlockSize); - memset(data(), kUserDataFill, mSize); - memset(postGuard(), kGuardBlockEndVal, kGuardBlockSize); -#endif - } - - void check() const - { - checkGuardBlock(preGuard(), kGuardBlockBeginVal, "before"); - checkGuardBlock(postGuard(), kGuardBlockEndVal, "after"); - } - - void checkAllocList() const; - - // Return total size needed to accommodate user buffer of 'size', - // plus our tracking data. - static size_t AllocationSize(size_t size) { return size + 2 * kGuardBlockSize + HeaderSize(); } - - // Offset from surrounding buffer to get to user data buffer. - static unsigned char *OffsetAllocation(unsigned char *m) - { - return m + kGuardBlockSize + HeaderSize(); - } - - private: - void checkGuardBlock(unsigned char *blockMem, unsigned char val, const char *locText) const; - - // Find offsets to pre and post guard blocks, and user data buffer - unsigned char *preGuard() const { return mMem + HeaderSize(); } - unsigned char *data() const { return preGuard() + kGuardBlockSize; } - unsigned char *postGuard() const { return data() + mSize; } - size_t mSize; // size of the user data area - unsigned char *mMem; // beginning of our allocation (pts to header) - Allocation *mPrevAlloc; // prior allocation in the chain - - static constexpr unsigned char kGuardBlockBeginVal = 0xfb; - static constexpr unsigned char kGuardBlockEndVal = 0xfe; - static constexpr unsigned char kUserDataFill = 0xcd; -#if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - static constexpr size_t kGuardBlockSize = 16; - static constexpr size_t HeaderSize() { return sizeof(Allocation); } -#else - static constexpr size_t kGuardBlockSize = 0; - static constexpr size_t HeaderSize() { return 0; } -#endif -}; +class Allocation; +class PageHeader; // // There are several stacks. One is to track the pushing and popping // of the user, and not yet implemented. The others are simply a // repositories of free pages or used pages. @@ -121,11 +54,11 @@ // pages is likely most optimal. // class PoolAllocator : angle::NonCopyable { public: - static const int kDefaultAlignment = 16; + static const int kDefaultAlignment = sizeof(void *); // // Create PoolAllocator. If alignment is set to 1 byte then fastAllocate() // function can be used to make allocations with less overhead. // PoolAllocator(int growthIncrement = 8 * 1024, int allocationAlignment = kDefaultAlignment); @@ -171,11 +104,11 @@ #if defined(ANGLE_DISABLE_POOL_ALLOC) return reinterpret_cast(allocate(numBytes)); #else ASSERT(mAlignment == 1); // No multi-page allocations - ASSERT(numBytes <= (mPageSize - mHeaderSkip)); + ASSERT(numBytes <= (mPageSize - mPageHeaderSkip)); // // Do the allocation, most likely case inline first, for efficiency. // if (numBytes <= mPageSize - mCurrentPageOffset) { @@ -184,89 +117,56 @@ // uint8_t *memory = reinterpret_cast(mInUseList) + mCurrentPageOffset; mCurrentPageOffset += numBytes; return memory; } - return reinterpret_cast(allocateNewPage(numBytes, numBytes)); + return allocateNewPage(numBytes); #endif } - // - // There is no deallocate. The point of this class is that - // deallocation can be skipped by the user of it, as the model - // of use is to simultaneously deallocate everything at once - // by calling pop(), and to not have to solve memory leak problems. - // + // There is no deallocate. The point of this class is that deallocation can be skipped by the + // user of it, as the model of use is to simultaneously deallocate everything at once by calling + // pop(), and to not have to solve memory leak problems. // Catch unwanted allocations. // TODO(jmadill): Remove this when we remove the global allocator. void lock(); void unlock(); private: size_t mAlignment; // all returned allocations will be aligned at // this granularity, which will be a power of 2 - size_t mAlignmentMask; #if !defined(ANGLE_DISABLE_POOL_ALLOC) - friend struct Header; - - struct Header - { - Header(Header *nextPage, size_t pageCount) - : nextPage(nextPage), - pageCount(pageCount) -# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - , - lastAllocation(0) -# endif - {} - - ~Header() - { -# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - if (lastAllocation) - lastAllocation->checkAllocList(); -# endif - } - - Header *nextPage; - size_t pageCount; -# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - Allocation *lastAllocation; -# endif - }; - struct AllocState { size_t offset; - Header *page; + PageHeader *page; }; using AllocStack = std::vector; // Slow path of allocation when we have to get a new page. - void *allocateNewPage(size_t numBytes, size_t allocationSize); + uint8_t *allocateNewPage(size_t numBytes); // Track allocations if and only if we're using guard blocks - void *initializeAllocation(Header *block, unsigned char *memory, size_t numBytes) - { -# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - new (memory) Allocation(numBytes + mAlignment, memory, block->lastAllocation); - block->lastAllocation = reinterpret_cast(memory); -# endif - // The OffsetAllocation() call is optimized away if !defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) - void *unalignedPtr = Allocation::OffsetAllocation(memory); - size_t alignedBytes = numBytes + mAlignment; - return std::align(mAlignment, numBytes, unalignedPtr, alignedBytes); - } + void *initializeAllocation(uint8_t *memory, size_t numBytes); - size_t mPageSize; // granularity of allocation from the OS - size_t mHeaderSkip; // amount of memory to skip to make room for the - // header (basically, size of header, rounded - // up to make it aligned - size_t mCurrentPageOffset; // next offset in top of inUseList to allocate from - Header *mFreeList; // list of popped memory - Header *mInUseList; // list of all memory currently being used - AllocStack mStack; // stack of where to allocate from, to partition pool + // Granularity of allocation from the OS + size_t mPageSize; + // Amount of memory to skip to make room for the page header (which is the size of the page + // header, or PageHeader in PoolAlloc.cpp) + size_t mPageHeaderSkip; + // Next offset in top of inUseList to allocate from. This offset is not necessarily aligned to + // anything. When an allocation is made, the data is aligned to mAlignment, and the header (if + // any) will align to pointer size by extension (since mAlignment is made aligned to at least + // pointer size). + size_t mCurrentPageOffset; + // List of popped memory + PageHeader *mFreeList; + // List of all memory currently being used. The head of this list is where allocations are + // currently being made from. + PageHeader *mInUseList; + // Stack of where to allocate from, to partition pool + AllocStack mStack; int mNumCalls; // just an interesting statistic size_t mTotalBytes; // just an interesting statistic #else // !defined(ANGLE_DISABLE_POOL_ALLOC) diff --git a/gfx/angle/checkout/src/common/PoolAlloc.cpp b/gfx/angle/checkout/src/common/PoolAlloc.cpp --- a/gfx/angle/checkout/src/common/PoolAlloc.cpp +++ b/gfx/angle/checkout/src/common/PoolAlloc.cpp @@ -19,21 +19,150 @@ #include "common/platform.h" #include "common/tls.h" namespace angle { +// If we are using guard blocks, we must track each individual allocation. If we aren't using guard +// blocks, these never get instantiated, so won't have any impact. + +class Allocation +{ + public: + Allocation(size_t size, unsigned char *mem, Allocation *prev = 0) + : mSize(size), mMem(mem), mPrevAlloc(prev) + { + // Allocations are bracketed: + // + // [allocationHeader][initialGuardBlock][userData][finalGuardBlock] + // + // This would be cleaner with if (kGuardBlockSize)..., but that makes the compiler print + // warnings about 0 length memsets, even with the if() protecting them. +#if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + memset(preGuard(), kGuardBlockBeginVal, kGuardBlockSize); + memset(data(), kUserDataFill, mSize); + memset(postGuard(), kGuardBlockEndVal, kGuardBlockSize); +#endif + } + + void checkAllocList() const; + + static size_t AlignedHeaderSize(uint8_t *allocationBasePtr, size_t alignment) + { + // Make sure that the data offset after the header is aligned to the given alignment. + size_t base = reinterpret_cast(allocationBasePtr); + return rx::roundUpPow2(base + kGuardBlockSize + HeaderSize(), alignment) - base; + } + + // Return total size needed to accommodate user buffer of 'size', + // plus our tracking data and any necessary alignments. + static size_t AllocationSize(uint8_t *allocationBasePtr, + size_t size, + size_t alignment, + size_t *preAllocationPaddingOut) + { + // The allocation will be laid out as such: + // + // Aligned to |alignment| + // ^ + // preAllocationPaddingOut | + // ___^___ | + // / \ | + // [header][guard][data][guard] + // \___________ __________/ + // V + // dataOffset + // + // Note that alignment is at least as much as a pointer alignment, so the pointers in the + // header are also necessarily aligned appropriately. + // + size_t dataOffset = AlignedHeaderSize(allocationBasePtr, alignment); + *preAllocationPaddingOut = dataOffset - HeaderSize() - kGuardBlockSize; + + return dataOffset + size + kGuardBlockSize; + } + + // Given memory pointing to |header|, returns |data|. + static uint8_t *GetDataPointer(uint8_t *memory, size_t alignment) + { + uint8_t *alignedPtr = memory + kGuardBlockSize + HeaderSize(); + + // |memory| must be aligned already such that user data is aligned to |alignment|. + ASSERT((reinterpret_cast(alignedPtr) & (alignment - 1)) == 0); + + return alignedPtr; + } + + private: + void checkGuardBlock(unsigned char *blockMem, unsigned char val, const char *locText) const; + + void checkAlloc() const + { + checkGuardBlock(preGuard(), kGuardBlockBeginVal, "before"); + checkGuardBlock(postGuard(), kGuardBlockEndVal, "after"); + } + + // Find offsets to pre and post guard blocks, and user data buffer + unsigned char *preGuard() const { return mMem + HeaderSize(); } + unsigned char *data() const { return preGuard() + kGuardBlockSize; } + unsigned char *postGuard() const { return data() + mSize; } + size_t mSize; // size of the user data area + unsigned char *mMem; // beginning of our allocation (points to header) + Allocation *mPrevAlloc; // prior allocation in the chain + + static constexpr unsigned char kGuardBlockBeginVal = 0xfb; + static constexpr unsigned char kGuardBlockEndVal = 0xfe; + static constexpr unsigned char kUserDataFill = 0xcd; +#if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + static constexpr size_t kGuardBlockSize = 16; + static constexpr size_t HeaderSize() { return sizeof(Allocation); } +#else + static constexpr size_t kGuardBlockSize = 0; + static constexpr size_t HeaderSize() { return 0; } +#endif +}; + +#if !defined(ANGLE_DISABLE_POOL_ALLOC) +class PageHeader +{ + public: + PageHeader(PageHeader *nextPage, size_t pageCount) + : nextPage(nextPage), + pageCount(pageCount) +# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + , + lastAllocation(nullptr) +# endif + {} + + ~PageHeader() + { +# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + if (lastAllocation) + { + lastAllocation->checkAllocList(); + } +# endif + } + + PageHeader *nextPage; + size_t pageCount; +# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + Allocation *lastAllocation; +# endif +}; +#endif // // Implement the functionality of the PoolAllocator class, which // is documented in PoolAlloc.h. // PoolAllocator::PoolAllocator(int growthIncrement, int allocationAlignment) : mAlignment(allocationAlignment), #if !defined(ANGLE_DISABLE_POOL_ALLOC) mPageSize(growthIncrement), - mFreeList(0), - mInUseList(0), + mFreeList(nullptr), + mInUseList(nullptr), mNumCalls(0), mTotalBytes(0), #endif mLocked(false) { @@ -42,47 +171,37 @@ void PoolAllocator::initialize(int pageSize, int alignment) { mAlignment = alignment; #if !defined(ANGLE_DISABLE_POOL_ALLOC) - mPageSize = pageSize; - if (mAlignment == 1) - { - // This is a special fast-path where fastAllocation() is enabled - mAlignmentMask = 0; - mHeaderSkip = sizeof(Header); - } - else + mPageSize = pageSize; + mPageHeaderSkip = sizeof(PageHeader); + + // Alignment == 1 is a special fast-path where fastAllocate() is enabled + if (mAlignment != 1) { #endif - // // Adjust mAlignment to be at least pointer aligned and // power of 2. // size_t minAlign = sizeof(void *); - mAlignment &= ~(minAlign - 1); if (mAlignment < minAlign) + { mAlignment = minAlign; - mAlignment = gl::ceilPow2(static_cast(mAlignment)); - mAlignmentMask = mAlignment - 1; - + } + mAlignment = gl::ceilPow2(static_cast(mAlignment)); #if !defined(ANGLE_DISABLE_POOL_ALLOC) - // - // Align header skip - // - mHeaderSkip = minAlign; - if (mHeaderSkip < sizeof(Header)) - { - mHeaderSkip = rx::roundUpPow2(sizeof(Header), mAlignment); - } } // // Don't allow page sizes we know are smaller than all common // OS page sizes. // if (mPageSize < 4 * 1024) + { mPageSize = 4 * 1024; + } + // // A large mCurrentPageOffset indicates a new page needs to // be obtained to allocate memory. // mCurrentPageOffset = mPageSize; @@ -94,22 +213,22 @@ PoolAllocator::~PoolAllocator() { #if !defined(ANGLE_DISABLE_POOL_ALLOC) while (mInUseList) { - Header *next = mInUseList->nextPage; - mInUseList->~Header(); + PageHeader *next = mInUseList->nextPage; + mInUseList->~PageHeader(); delete[] reinterpret_cast(mInUseList); mInUseList = next; } // We should not check the guard blocks // here, because we did it already when the block was // placed into the free list. // while (mFreeList) { - Header *next = mFreeList->nextPage; + PageHeader *next = mFreeList->nextPage; delete[] reinterpret_cast(mFreeList); mFreeList = next; } #else // !defined(ANGLE_DISABLE_POOL_ALLOC) for (auto &allocs : mStack) @@ -159,34 +278,35 @@ #else // !defined(ANGLE_DISABLE_POOL_ALLOC) mStack.push_back({}); #endif } -// -// Do a mass-deallocation of all the individual allocations -// that have occurred since the last push(), or since the -// last pop(), or since the object's creation. +// Do a mass-deallocation of all the individual allocations that have occurred since the last +// push(), or since the last pop(), or since the object's creation. // // The deallocated pages are saved for future allocations. -// void PoolAllocator::pop() { if (mStack.size() < 1) + { return; + } #if !defined(ANGLE_DISABLE_POOL_ALLOC) - Header *page = mStack.back().page; + PageHeader *page = mStack.back().page; mCurrentPageOffset = mStack.back().offset; while (mInUseList != page) { // invoke destructor to free allocation list - mInUseList->~Header(); + mInUseList->~PageHeader(); - Header *nextInUse = mInUseList->nextPage; + PageHeader *nextInUse = mInUseList->nextPage; if (mInUseList->pageCount > 1) + { delete[] reinterpret_cast(mInUseList); + } else { mInUseList->nextPage = mFreeList; mFreeList = mInUseList; } @@ -222,100 +342,123 @@ // Just keep some interesting statistics. // ++mNumCalls; mTotalBytes += numBytes; - // If we are using guard blocks, all allocations are bracketed by - // them: [guardblock][allocation][guardblock]. numBytes is how - // much memory the caller asked for. allocationSize is the total - // size including guard blocks. In release build, - // kGuardBlockSize=0 and this all gets optimized away. - size_t allocationSize = Allocation::AllocationSize(numBytes) + mAlignment; - // Detect integer overflow. - if (allocationSize < numBytes) - return 0; + uint8_t *currentPagePtr = reinterpret_cast(mInUseList) + mCurrentPageOffset; - // + size_t preAllocationPadding = 0; + size_t allocationSize = + Allocation::AllocationSize(currentPagePtr, numBytes, mAlignment, &preAllocationPadding); + + // Integer overflow is unexpected. + ASSERT(allocationSize >= numBytes); + // Do the allocation, most likely case first, for efficiency. - // This step could be moved to be inline sometime. - // if (allocationSize <= mPageSize - mCurrentPageOffset) { - // - // Safe to allocate from mCurrentPageOffset. - // - unsigned char *memory = reinterpret_cast(mInUseList) + mCurrentPageOffset; + // There is enough room to allocate from the current page at mCurrentPageOffset. + uint8_t *memory = currentPagePtr + preAllocationPadding; mCurrentPageOffset += allocationSize; - mCurrentPageOffset = (mCurrentPageOffset + mAlignmentMask) & ~mAlignmentMask; - return initializeAllocation(mInUseList, memory, numBytes); + return initializeAllocation(memory, numBytes); } - if (allocationSize > mPageSize - mHeaderSkip) + if (allocationSize > mPageSize - mPageHeaderSkip) { - // - // Do a multi-page allocation. Don't mix these with the others. - // The OS is efficient in allocating and freeing multiple pages. - // - size_t numBytesToAlloc = allocationSize + mHeaderSkip; - // Detect integer overflow. - if (numBytesToAlloc < allocationSize) - return 0; + // If the allocation is larger than a whole page, do a multi-page allocation. These are not + // mixed with the others. The OS is efficient in allocating and freeing multiple pages. + + // We don't know what the alignment of the new allocated memory will be, so conservatively + // allocate enough memory for up to alignment extra bytes being needed. + allocationSize = Allocation::AllocationSize(reinterpret_cast(mPageHeaderSkip), + numBytes, mAlignment, &preAllocationPadding); - Header *memory = reinterpret_cast
(::new char[numBytesToAlloc]); - if (memory == 0) - return 0; + size_t numBytesToAlloc = allocationSize + mPageHeaderSkip + mAlignment; + + // Integer overflow is unexpected. + ASSERT(numBytesToAlloc >= allocationSize); + + PageHeader *memory = reinterpret_cast(::new char[numBytesToAlloc]); + if (memory == nullptr) + { + return nullptr; + } // Use placement-new to initialize header - new (memory) Header(mInUseList, (numBytesToAlloc + mPageSize - 1) / mPageSize); + new (memory) PageHeader(mInUseList, (numBytesToAlloc + mPageSize - 1) / mPageSize); mInUseList = memory; - mCurrentPageOffset = mPageSize; // make next allocation come from a new page + // Make next allocation come from a new page + mCurrentPageOffset = mPageSize; + + // Now that we actually have the pointer, make sure the data pointer will be aligned. + currentPagePtr = reinterpret_cast(memory) + mPageHeaderSkip; + Allocation::AllocationSize(currentPagePtr, numBytes, mAlignment, &preAllocationPadding); - // No guard blocks for multi-page allocations (yet) - void *unalignedPtr = - reinterpret_cast(reinterpret_cast(memory) + mHeaderSkip); - return std::align(mAlignment, numBytes, unalignedPtr, allocationSize); + return initializeAllocation(currentPagePtr + preAllocationPadding, numBytes); } - unsigned char *newPageAddr = - static_cast(allocateNewPage(numBytes, allocationSize)); - return initializeAllocation(mInUseList, newPageAddr, numBytes); + + uint8_t *newPageAddr = allocateNewPage(numBytes); + return initializeAllocation(newPageAddr, numBytes); + #else // !defined(ANGLE_DISABLE_POOL_ALLOC) - void *alloc = malloc(numBytes + mAlignmentMask); + + void *alloc = malloc(numBytes + mAlignment - 1); mStack.back().push_back(alloc); intptr_t intAlloc = reinterpret_cast(alloc); - intAlloc = (intAlloc + mAlignmentMask) & ~mAlignmentMask; + intAlloc = rx::roundUpPow2(intAlloc, mAlignment); return reinterpret_cast(intAlloc); #endif } #if !defined(ANGLE_DISABLE_POOL_ALLOC) -void *PoolAllocator::allocateNewPage(size_t numBytes, size_t allocationSize) +uint8_t *PoolAllocator::allocateNewPage(size_t numBytes) { - // - // Need a simple page to allocate from. - // - Header *memory; + // Need a simple page to allocate from. Pick a page from the free list, if any. Otherwise need + // to make the allocation. + PageHeader *memory; if (mFreeList) { memory = mFreeList; mFreeList = mFreeList->nextPage; } else { - memory = reinterpret_cast
(::new char[mPageSize]); - if (memory == 0) - return 0; + memory = reinterpret_cast(::new char[mPageSize]); + if (memory == nullptr) + { + return nullptr; + } } // Use placement-new to initialize header - new (memory) Header(mInUseList, 1); + new (memory) PageHeader(mInUseList, 1); mInUseList = memory; - unsigned char *ret = reinterpret_cast(mInUseList) + mHeaderSkip; - mCurrentPageOffset = (mHeaderSkip + allocationSize + mAlignmentMask) & ~mAlignmentMask; - return ret; + // Leave room for the page header. + mCurrentPageOffset = mPageHeaderSkip; + uint8_t *currentPagePtr = reinterpret_cast(mInUseList) + mCurrentPageOffset; + + size_t preAllocationPadding = 0; + size_t allocationSize = + Allocation::AllocationSize(currentPagePtr, numBytes, mAlignment, &preAllocationPadding); + + mCurrentPageOffset += allocationSize; + + // The new allocation is made after the page header and any alignment required before it. + return reinterpret_cast(mInUseList) + mPageHeaderSkip + preAllocationPadding; +} + +void *PoolAllocator::initializeAllocation(uint8_t *memory, size_t numBytes) +{ +# if defined(ANGLE_POOL_ALLOC_GUARD_BLOCKS) + new (memory) Allocation(numBytes, memory, mInUseList->lastAllocation); + mInUseList->lastAllocation = reinterpret_cast(memory); +# endif + + return Allocation::GetDataPointer(memory, mAlignment); } #endif void PoolAllocator::lock() { @@ -332,10 +475,12 @@ // // Check all allocations in a list for damage by calling check on each. // void Allocation::checkAllocList() const { - for (const Allocation *alloc = this; alloc != 0; alloc = alloc->mPrevAlloc) - alloc->check(); + for (const Allocation *alloc = this; alloc != nullptr; alloc = alloc->mPrevAlloc) + { + alloc->checkAlloc(); + } } } // namespace angle diff --git a/gfx/angle/checkout/src/common/Spinlock.h b/gfx/angle/checkout/src/common/Spinlock.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/Spinlock.h @@ -0,0 +1,71 @@ +// +// Copyright 2021 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. +// +// Spinlock.h: +// Spinlock is a lock that loops actively until it gets the resource. +// Only use it when the lock will be granted in reasonably short time. + +#ifndef COMMON_SPINLOCK_H_ +#define COMMON_SPINLOCK_H_ + +#include + +// TODO(jplate) Add pause for ARM, http://anglebug.com:6067 +#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) +extern "C" void _mm_pause(); +# pragma intrinsic(_mm_pause) +# define ANGLE_SMT_PAUSE() _mm_pause() +#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +# define ANGLE_SMT_PAUSE() __asm__ __volatile__("pause;") +#else +# define ANGLE_SMT_PAUSE() static_cast(0) +#endif + +namespace angle +{ + +class Spinlock +{ + public: + Spinlock() noexcept; + + bool try_lock() noexcept; + void lock() noexcept; + void unlock() noexcept; + + private: + std::atomic_bool mLock; +}; + +inline Spinlock::Spinlock() noexcept : mLock(false) {} + +inline bool Spinlock::try_lock() noexcept +{ + // Relaxed check first to prevent unnecessary cache misses. + return !mLock.load(std::memory_order_relaxed) && + !mLock.exchange(true, std::memory_order_acquire); +} + +inline void Spinlock::lock() noexcept +{ + while (mLock.exchange(true, std::memory_order_acquire)) + { + // Relaxed wait to prevent unnecessary cache misses. + while (mLock.load(std::memory_order_relaxed)) + { + // Optimization for simultaneous multithreading. + ANGLE_SMT_PAUSE(); + } + } +} + +inline void Spinlock::unlock() noexcept +{ + mLock.store(false, std::memory_order_release); +} + +} // namespace angle + +#endif // COMMON_SPINLOCK_H_ diff --git a/gfx/angle/checkout/src/common/SynchronizedValue.h b/gfx/angle/checkout/src/common/SynchronizedValue.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/SynchronizedValue.h @@ -0,0 +1,540 @@ +// +// Copyright 2021 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. +// +// SynchronizedValue.h: +// A class that ensures that the correct mutex is locked when the encapsulated data is accessed. +// Based on boost::synchronized_value, which probably becomes part of the next C++ standard. +// https://www.boost.org/doc/libs/1_76_0/doc/html/thread/sds.html#thread.sds.synchronized_valuesxxx + +#ifndef COMMON_SYNCHRONIZEDVALUE_H_ +#define COMMON_SYNCHRONIZEDVALUE_H_ + +#include "common/debug.h" + +#include +#include + +namespace angle +{ + +template +class ConstStrictLockPtr +{ + public: + using value_type = T; + using mutex_type = Lockable; + + ConstStrictLockPtr(const T &value, Lockable &mutex) : mLock(mutex), mValue(value) {} + ConstStrictLockPtr(const T &value, Lockable &mutex, std::adopt_lock_t) noexcept + : mLock(mutex, std::adopt_lock), mValue(value) + {} + + ConstStrictLockPtr(ConstStrictLockPtr &&other) noexcept + : mLock(std::move(other.mLock)), mValue(other.mValue) + {} + + ConstStrictLockPtr(const ConstStrictLockPtr &) = delete; + ConstStrictLockPtr &operator=(const ConstStrictLockPtr &) = delete; + + ~ConstStrictLockPtr() = default; + + const T *operator->() const { return &mValue; } + const T &operator*() const { return mValue; } + + protected: + std::unique_lock mLock; + T const &mValue; +}; + +template +class StrictLockPtr : public ConstStrictLockPtr +{ + private: + using BaseType = ConstStrictLockPtr; + + public: + StrictLockPtr(T &value, Lockable &mutex) : BaseType(value, mutex) {} + StrictLockPtr(T &value, Lockable &mutex, std::adopt_lock_t) noexcept + : BaseType(value, mutex, std::adopt_lock) + {} + + StrictLockPtr(StrictLockPtr &&other) noexcept + : BaseType(std::move(static_cast(other))) + {} + + StrictLockPtr(const StrictLockPtr &) = delete; + StrictLockPtr &operator=(const StrictLockPtr &) = delete; + + ~StrictLockPtr() = default; + + T *operator->() { return const_cast(&this->mValue); } + T &operator*() { return const_cast(this->mValue); } +}; + +template +struct SynchronizedValueStrictLockPtr +{ + using type = StrictLockPtr; +}; + +template +struct SynchronizedValueStrictLockPtr +{ + using type = ConstStrictLockPtr; +}; + +template +class ConstUniqueLockPtr : public std::unique_lock +{ + private: + using BaseType = std::unique_lock; + + public: + using value_type = T; + using mutex_type = Lockable; + + ConstUniqueLockPtr(const T &value, Lockable &mutex) : BaseType(mutex), mValue(value) {} + ConstUniqueLockPtr(const T &value, Lockable &mutex, std::adopt_lock_t) noexcept + : BaseType(mutex, std::adopt_lock), mValue(value) + {} + ConstUniqueLockPtr(const T &value, Lockable &mutex, std::defer_lock_t) noexcept + : BaseType(mutex, std::defer_lock), mValue(value) + {} + ConstUniqueLockPtr(const T &value, Lockable &mutex, std::try_to_lock_t) noexcept + : BaseType(mutex, std::try_to_lock), mValue(value) + {} + + ConstUniqueLockPtr(ConstUniqueLockPtr &&other) noexcept + : BaseType(std::move(static_cast(other))), mValue(other.mValue) + {} + + ConstUniqueLockPtr(const ConstUniqueLockPtr &) = delete; + ConstUniqueLockPtr &operator=(const ConstUniqueLockPtr &) = delete; + + ~ConstUniqueLockPtr() = default; + + const T *operator->() const + { + ASSERT(this->owns_lock()); + return &mValue; + } + const T &operator*() const + { + ASSERT(this->owns_lock()); + return mValue; + } + + protected: + T const &mValue; +}; + +template +class UniqueLockPtr : public ConstUniqueLockPtr +{ + private: + using BaseType = ConstUniqueLockPtr; + + public: + UniqueLockPtr(T &value, Lockable &mutex) : BaseType(value, mutex) {} + UniqueLockPtr(T &value, Lockable &mutex, std::adopt_lock_t) noexcept + : BaseType(value, mutex, std::adopt_lock) + {} + UniqueLockPtr(T &value, Lockable &mutex, std::defer_lock_t) noexcept + : BaseType(value, mutex, std::defer_lock) + {} + UniqueLockPtr(T &value, Lockable &mutex, std::try_to_lock_t) noexcept + : BaseType(value, mutex, std::try_to_lock) + {} + + UniqueLockPtr(UniqueLockPtr &&other) noexcept + : BaseType(std::move(static_cast(other))) + {} + + UniqueLockPtr(const UniqueLockPtr &) = delete; + UniqueLockPtr &operator=(const UniqueLockPtr &) = delete; + + ~UniqueLockPtr() = default; + + T *operator->() + { + ASSERT(this->owns_lock()); + return const_cast(&this->mValue); + } + T &operator*() + { + ASSERT(this->owns_lock()); + return const_cast(this->mValue); + } +}; + +template +struct SynchronizedValueUniqueLockPtr +{ + using type = UniqueLockPtr; +}; + +template +struct SynchronizedValueUniqueLockPtr +{ + using type = ConstUniqueLockPtr; +}; + +template +class SynchronizedValue +{ + public: + using value_type = T; + using mutex_type = Lockable; + + SynchronizedValue() noexcept(std::is_nothrow_default_constructible::value) : mValue() {} + + SynchronizedValue(const T &other) noexcept(std::is_nothrow_copy_constructible::value) + : mValue(other) + {} + + SynchronizedValue(T &&other) noexcept(std::is_nothrow_move_constructible::value) + : mValue(std::move(other)) + {} + + template + SynchronizedValue(Args &&... args) noexcept(noexcept(T(std::forward(args)...))) + : mValue(std::forward(args)...) + {} + + SynchronizedValue(const SynchronizedValue &other) + { + std::lock_guard lock(other.mMutex); + mValue = other.mValue; + } + + SynchronizedValue(SynchronizedValue &&other) + { + std::lock_guard lock(other.mMutex); + mValue = std::move(other.mValue); + } + + SynchronizedValue &operator=(const SynchronizedValue &other) + { + if (&other != this) + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + mValue = other.mValue; + } + return *this; + } + + SynchronizedValue &operator=(SynchronizedValue &&other) + { + if (&other != this) + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + mValue = std::move(other.mValue); + } + return *this; + } + + SynchronizedValue &operator=(const T &value) + { + { + std::lock_guard lock(mMutex); + mValue = value; + } + return *this; + } + + SynchronizedValue &operator=(T &&value) + { + { + std::lock_guard lock(mMutex); + mValue = std::move(value); + } + return *this; + } + + T get() const + { + std::lock_guard lock(mMutex); + return mValue; + } + + explicit operator T() const { return get(); } + + void swap(SynchronizedValue &other) + { + if (this == &other) + { + return; + } + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + std::swap(mValue, other.mValue); + } + + void swap(T &other) + { + std::lock_guard lock(mMutex); + std::swap(mValue, other); + } + + StrictLockPtr operator->() { return StrictLockPtr(mValue, mMutex); } + ConstStrictLockPtr operator->() const + { + return ConstStrictLockPtr(mValue, mMutex); + } + + StrictLockPtr synchronize() { return StrictLockPtr(mValue, mMutex); } + ConstStrictLockPtr synchronize() const + { + return ConstStrictLockPtr(mValue, mMutex); + } + + UniqueLockPtr unique_synchronize() + { + return UniqueLockPtr(mValue, mMutex); + } + ConstUniqueLockPtr unique_synchronize() const + { + return ConstUniqueLockPtr(mValue, mMutex); + } + + UniqueLockPtr defer_synchronize() noexcept + { + return UniqueLockPtr(mValue, mMutex, std::defer_lock); + } + ConstUniqueLockPtr defer_synchronize() const noexcept + { + return ConstUniqueLockPtr(mValue, mMutex, std::defer_lock); + } + + UniqueLockPtr try_to_synchronize() noexcept + { + return UniqueLockPtr(mValue, mMutex, std::try_to_lock); + } + ConstUniqueLockPtr try_to_synchronize() const noexcept + { + return ConstUniqueLockPtr(mValue, mMutex, std::try_to_lock); + } + + UniqueLockPtr adopt_synchronize() noexcept + { + return UniqueLockPtr(mValue, mMutex, std::adopt_lock); + } + ConstUniqueLockPtr adopt_synchronize() const noexcept + { + return ConstUniqueLockPtr(mValue, mMutex, std::adopt_lock); + } + + class DerefValue + { + public: + DerefValue(DerefValue &&other) : mLock(std::move(other.mLock)), mValue(other.mValue) {} + + DerefValue(const DerefValue &) = delete; + DerefValue &operator=(const DerefValue &) = delete; + + operator T &() { return mValue; } + + DerefValue &operator=(const T &other) + { + mValue = other; + return *this; + } + + private: + explicit DerefValue(SynchronizedValue &outer) : mLock(outer.mMutex), mValue(outer.mValue) {} + + std::unique_lock mLock; + T &mValue; + + friend class SynchronizedValue; + }; + + class ConstDerefValue + { + public: + ConstDerefValue(ConstDerefValue &&other) + : mLock(std::move(other.mLock)), mValue(other.mValue) + {} + + ConstDerefValue(const ConstDerefValue &) = delete; + ConstDerefValue &operator=(const ConstDerefValue &) = delete; + + operator const T &() { return mValue; } + + private: + explicit ConstDerefValue(const SynchronizedValue &outer) + : mLock(outer.mMutex), mValue(outer.mValue) + {} + + std::unique_lock mLock; + const T &mValue; + + friend class SynchronizedValue; + }; + + DerefValue operator*() { return DerefValue(*this); } + ConstDerefValue operator*() const { return ConstDerefValue(*this); } + + template + void save(OStream &os) const + { + std::lock_guard lock(mMutex); + os << mValue; + } + + template + void load(IStream &is) + { + std::lock_guard lock(mMutex); + is >> mValue; + } + + bool operator==(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue == other.mValue; + } + + bool operator!=(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue != other.mValue; + } + + bool operator<(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue < other.mValue; + } + + bool operator>(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue > other.mValue; + } + + bool operator<=(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue <= other.mValue; + } + + bool operator>=(const SynchronizedValue &other) const + { + std::unique_lock lock1(mMutex, std::defer_lock); + std::unique_lock lock2(other.mMutex, std::defer_lock); + std::lock(lock1, lock2); + return mValue >= other.mValue; + } + + bool operator==(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue == other; + } + + bool operator!=(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue != other; + } + + bool operator<(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue < other; + } + + bool operator>(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue > other; + } + + bool operator<=(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue <= other; + } + + bool operator>=(const T &other) const + { + std::lock_guard lock(mMutex); + return mValue >= other; + } + + private: + T mValue; + mutable Lockable mMutex; +}; + +template +inline OStream &operator<<(OStream &os, SynchronizedValue const &sv) +{ + sv.save(os); + return os; +} + +template +inline IStream &operator>>(IStream &is, SynchronizedValue &sv) +{ + sv.load(is); + return is; +} + +template +bool operator==(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs == lhs; +} + +template +bool operator!=(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs != lhs; +} + +template +bool operator<(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs < lhs; +} + +template +bool operator>(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs > lhs; +} + +template +bool operator<=(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs <= lhs; +} + +template +bool operator>=(const T &lhs, const SynchronizedValue &rhs) +{ + return rhs >= lhs; +} + +} // namespace angle + +#endif // COMMON_SYNCHRONIZEDVALUE_H_ diff --git a/gfx/angle/checkout/src/common/android_util.h b/gfx/angle/checkout/src/common/android_util.h --- a/gfx/angle/checkout/src/common/android_util.h +++ b/gfx/angle/checkout/src/common/android_util.h @@ -40,11 +40,12 @@ void GetANativeWindowBufferProperties(const ANativeWindowBuffer *buffer, int *width, int *height, int *depth, - int *pixelFormat); + int *pixelFormat, + uint64_t *usage); GLenum NativePixelFormatToGLInternalFormat(int pixelFormat); int GLInternalFormatToNativePixelFormat(GLenum internalFormat); bool NativePixelFormatIsYUV(int pixelFormat); diff --git a/gfx/angle/checkout/src/common/android_util.cpp b/gfx/angle/checkout/src/common/android_util.cpp --- a/gfx/angle/checkout/src/common/android_util.cpp +++ b/gfx/angle/checkout/src/common/android_util.cpp @@ -324,25 +324,28 @@ { return nullptr; } return AHardwareBufferToClientBuffer(aHardwareBuffer); +#else + return nullptr; #endif // ANGLE_AHARDWARE_BUFFER_SUPPORT - return nullptr; } void GetANativeWindowBufferProperties(const ANativeWindowBuffer *buffer, int *width, int *height, int *depth, - int *pixelFormat) + int *pixelFormat, + uint64_t *usage) { *width = buffer->width; *height = buffer->height; *depth = static_cast(buffer->layerCount); *height = buffer->height; *pixelFormat = buffer->format; + *usage = buffer->usage; } GLenum NativePixelFormatToGLInternalFormat(int pixelFormat) { bool isYuv = false; diff --git a/gfx/angle/checkout/src/common/angle_version_info.h b/gfx/angle/checkout/src/common/angle_version_info.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/angle_version_info.h @@ -0,0 +1,19 @@ +// +// Copyright 2021 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. +// +// angle_version_info.h: ANGLE version queries. + +#ifndef COMMON_VERSION_H_ +#define COMMON_VERSION_H_ + +namespace angle +{ +int GetANGLERevision(); +const char *GetANGLEVersionString(); +const char *GetANGLECommitHash(); +int GetANGLECommitHashSize(); +} // namespace angle + +#endif // COMMON_VERSION_H_ diff --git a/gfx/angle/checkout/src/common/angle_version_info.cpp b/gfx/angle/checkout/src/common/angle_version_info.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/angle_version_info.cpp @@ -0,0 +1,31 @@ +// +// Copyright 2021 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. +// +// angle_version_info.cpp: ANGLE version queries. + +#include "common/angle_version.h" + +namespace angle +{ +int GetANGLERevision() +{ + return ANGLE_REVISION; +} + +const char *GetANGLEVersionString() +{ + return ANGLE_VERSION_STRING; +} + +const char *GetANGLECommitHash() +{ + return ANGLE_COMMIT_HASH; +} + +int GetANGLECommitHashSize() +{ + return ANGLE_COMMIT_HASH_SIZE; +} +} // namespace angle diff --git a/gfx/angle/checkout/src/common/angleutils.h b/gfx/angle/checkout/src/common/angleutils.h --- a/gfx/angle/checkout/src/common/angleutils.h +++ b/gfx/angle/checkout/src/common/angleutils.h @@ -11,23 +11,26 @@ #include "common/platform.h" #if defined(ANGLE_USE_ABSEIL) # include "absl/container/flat_hash_map.h" +# include "absl/container/flat_hash_set.h" #endif // defined(ANGLE_USE_ABSEIL) #if defined(ANGLE_WITH_LSAN) # include #endif // defined(ANGLE_WITH_LSAN) #include #include #include +#include #include #include #include #include +#include #include // A helper class to disallow copy and assignment operators namespace angle { @@ -35,15 +38,19 @@ #if defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_D3D11) using Microsoft::WRL::ComPtr; #endif // defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_D3D11) #if defined(ANGLE_USE_ABSEIL) -template -using HashMap = absl::flat_hash_map; +template > +using HashMap = absl::flat_hash_map; +template > +using HashSet = absl::flat_hash_set; #else -template -using HashMap = std::unordered_map; +template > +using HashMap = std::unordered_map; +template > +using HashSet = std::unordered_set; #endif // defined(ANGLE_USE_ABSEIL) class NonCopyable { protected: @@ -55,10 +62,34 @@ void operator=(const NonCopyable &) = delete; }; extern const uintptr_t DirtyPointer; +struct SaveFileHelper +{ + public: + // We always use ios::binary to avoid inconsistent line endings when captured on Linux vs Win. + SaveFileHelper(const std::string &filePathIn); + ~SaveFileHelper(); + + template + SaveFileHelper &operator<<(const T &value) + { + mOfs << value; + checkError(); + return *this; + } + + void write(const uint8_t *data, size_t size); + + private: + void checkError(); + + std::ofstream mOfs; + std::string mFilePath; +}; + } // namespace angle template constexpr inline size_t ArraySize(T (&)[N]) { @@ -212,10 +243,11 @@ # define snprintf _snprintf #endif #define GL_A1RGB5_ANGLEX 0x6AC5 #define GL_BGRX8_ANGLEX 0x6ABA +#define GL_RGBX8_ANGLEX 0x6AFA #define GL_BGR565_ANGLEX 0x6ABB #define GL_BGRA4_ANGLEX 0x6ABC #define GL_BGR5_A1_ANGLEX 0x6ABD #define GL_INT_64_ANGLEX 0x6ABE #define GL_UINT_64_ANGLEX 0x6ABF @@ -288,14 +320,10 @@ #define GL_X2_RGB10_USCALED_ANGLEX 0x6AF5 #define GL_X2_RGB10_SSCALED_ANGLEX 0x6AF6 #define GL_X2_RGB10_UNORM_ANGLEX 0x6AF7 #define GL_X2_RGB10_SNORM_ANGLEX 0x6AF8 -// YUV formats -#define GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX 0x6B00 -#define GL_G8_B8R8_2PLANE_420_UNORM_ANGLEX 0x6B01 - #define ANGLE_CHECK_GL_ALLOC(context, result) \ ANGLE_CHECK(context, result, "Failed to allocate host memory", GL_OUT_OF_MEMORY) #define ANGLE_CHECK_GL_MATH(context, result) \ ANGLE_CHECK(context, result, "Integer overflow.", GL_INVALID_OPERATION) @@ -308,10 +336,26 @@ # define ANGLE_SCOPED_DISABLE_LSAN() __lsan::ScopedDisabler lsanDisabler #else # define ANGLE_SCOPED_DISABLE_LSAN() #endif +// The ANGLE_NO_SANITIZE_MEMORY macro suppresses MemorySanitizer checks for +// use-of-uninitialized-data. It can be used to decorate functions with known +// false positives. +#ifdef __clang__ +# define ANGLE_NO_SANITIZE_MEMORY __attribute__((no_sanitize_memory)) +#else +# define ANGLE_NO_SANITIZE_MEMORY +#endif + +// Similar to the above, but for thread sanitization. +#ifdef __clang__ +# define ANGLE_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread)) +#else +# define ANGLE_NO_SANITIZE_THREAD +#endif + // The below inlining code lifted from V8. #if defined(__clang__) || (defined(__GNUC__) && defined(__has_attribute)) # define ANGLE_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline)) # define ANGLE_HAS___FORCEINLINE 0 #elif defined(_MSC_VER) @@ -384,6 +428,12 @@ # define ANGLE_REQUIRE_CONSTANT_INIT [[require_constant_initialization]] #else # define ANGLE_REQUIRE_CONSTANT_INIT #endif // __has_cpp_attribute(require_constant_initialization) +#if __has_cpp_attribute(clang::fallthrough) +# define ANGLE_FALLTHROUGH [[clang::fallthrough]] +#else +# define ANGLE_FALLTHROUGH +#endif + #endif // COMMON_ANGLEUTILS_H_ diff --git a/gfx/angle/checkout/src/common/angleutils.cpp b/gfx/angle/checkout/src/common/angleutils.cpp --- a/gfx/angle/checkout/src/common/angleutils.cpp +++ b/gfx/angle/checkout/src/common/angleutils.cpp @@ -15,10 +15,38 @@ namespace angle { // dirtyPointer is a special value that will make the comparison with any valid pointer fail and // force the renderer to re-apply the state. const uintptr_t DirtyPointer = std::numeric_limits::max(); + +SaveFileHelper::SaveFileHelper(const std::string &filePathIn) + : mOfs(filePathIn, std::ios::binary | std::ios::out), mFilePath(filePathIn) +{ + if (!mOfs.is_open()) + { + FATAL() << "Could not open " << filePathIn; + } +} + +SaveFileHelper::~SaveFileHelper() +{ + printf("Saved '%s'.\n", mFilePath.c_str()); +} + +void SaveFileHelper::checkError() +{ + if (mOfs.bad()) + { + FATAL() << "Error writing to " << mFilePath; + } +} + +void SaveFileHelper::write(const uint8_t *data, size_t size) +{ + mOfs.write(reinterpret_cast(data), size); +} + } // namespace angle std::string ArrayString(unsigned int i) { // We assume that UINT_MAX and GL_INVALID_INDEX are equal. diff --git a/gfx/angle/checkout/src/common/apple_platform_utils.h b/gfx/angle/checkout/src/common/apple_platform_utils.h --- a/gfx/angle/checkout/src/common/apple_platform_utils.h +++ b/gfx/angle/checkout/src/common/apple_platform_utils.h @@ -13,26 +13,34 @@ // These are macros for substitution of Apple specific directive @available: // TARGET_OS_MACCATALYST only available in MacSDK 10.15 +#if TARGET_OS_MACCATALYST // ANGLE_APPLE_AVAILABLE_XCI: check if either of the 3 platforms (OSX/Catalyst/iOS) min verions is // available: -#if TARGET_OS_MACCATALYST # define ANGLE_APPLE_AVAILABLE_XCI(macVer, macCatalystVer, iOSVer) \ @available(macOS macVer, macCatalyst macCatalystVer, iOS iOSVer, *) // ANGLE_APPLE_AVAILABLE_XC: check if either of the 2 platforms (OSX/Catalyst) min verions is // available: # define ANGLE_APPLE_AVAILABLE_XC(macVer, macCatalystVer) \ @available(macOS macVer, macCatalyst macCatalystVer, *) +// ANGLE_APPLE_AVAILABLE_CI: check if either of the 2 platforms (Catalyst/iOS) min verions is +// available: +# define ANGLE_APPLE_AVAILABLE_CI(macCatalystVer, iOSVer) \ + @available(macCatalyst macCatalystVer, iOS iOSVer, *) #else # define ANGLE_APPLE_AVAILABLE_XCI(macVer, macCatalystVer, iOSVer) \ ANGLE_APPLE_AVAILABLE_XI(macVer, iOSVer) -// ANGLE_APPLE_AVAILABLE_XC: check if either of the 2 platforms (OSX/Catalyst) min verions is -// available: + # define ANGLE_APPLE_AVAILABLE_XC(macVer, macCatalystVer) @available(macOS macVer, *) +# define ANGLE_APPLE_AVAILABLE_CI(macCatalystVer, iOSVer) @available(iOS iOSVer, tvOS iOSVer, *) #endif // ANGLE_APPLE_AVAILABLE_XI: check if either of the 2 platforms (OSX/iOS) min verions is available: -#define ANGLE_APPLE_AVAILABLE_XI(macVer, iOSVer) @available(macOS macVer, iOS iOSVer, *) +#define ANGLE_APPLE_AVAILABLE_XI(macVer, iOSVer) \ + @available(macOS macVer, iOS iOSVer, tvOS iOSVer, *) + +// ANGLE_APPLE_AVAILABLE_I: check if a particular iOS version is available +#define ANGLE_APPLE_AVAILABLE_I(iOSVer) @available(iOS iOSVer, tvOS iOSVer, *) #endif diff --git a/gfx/angle/checkout/src/common/bitset_utils.h b/gfx/angle/checkout/src/common/bitset_utils.h --- a/gfx/angle/checkout/src/common/bitset_utils.h +++ b/gfx/angle/checkout/src/common/bitset_utils.h @@ -19,19 +19,31 @@ #include "common/mathutil.h" #include "common/platform.h" namespace angle { +// Given x, create 1 << x. template -constexpr static BitsT Bit(ParamT x) +constexpr BitsT Bit(ParamT x) { // It's undefined behavior if the shift size is equal to or larger than the width of the type. ASSERT(static_cast(x) < sizeof(BitsT) * 8); return (static_cast(1) << static_cast(x)); } +// Given x, create (1 << x) - 1, i.e. a mask with x bits set. +template +constexpr BitsT BitMask(ParamT x) +{ + if (static_cast(x) == 0) + { + return 0; + } + return ((Bit(static_cast(static_cast(x) - 1)) - 1) << 1) | 1; +} + template class BitSetT final { public: class Reference final @@ -149,14 +161,11 @@ constexpr ParamT first() const; constexpr ParamT last() const; // Produces a mask of ones up to the "x"th bit. - constexpr static BitsT Mask(std::size_t x) - { - return ((Bit(static_cast(x - 1)) - 1) << 1) + 1; - } + constexpr static BitsT Mask(std::size_t x) { return BitMask(static_cast(x)); } private: BitsT mBits; }; diff --git a/gfx/angle/checkout/src/common/debug.h b/gfx/angle/checkout/src/common/debug.h --- a/gfx/angle/checkout/src/common/debug.h +++ b/gfx/angle/checkout/src/common/debug.h @@ -21,10 +21,16 @@ #include "common/angleutils.h" #include "common/entry_points_enum_autogen.h" #include "common/platform.h" +#if defined(ANGLE_PLATFORM_WINDOWS) +# include +typedef unsigned long DWORD; +typedef _Return_type_success_(return >= 0) long HRESULT; +#endif + #if !defined(TRACE_OUTPUT_FILE) # define TRACE_OUTPUT_FILE "angle_debug.txt" #endif namespace gl @@ -42,10 +48,11 @@ private: gl::Context *mContext; const angle::EntryPoint mEntryPoint; const char *mFunctionName; + bool mCalledBeginEvent; }; using LogSeverity = int; // Note: the log severities are used to index into the array of names, // see g_logSeverityNames. @@ -242,11 +249,11 @@ #if defined(ANGLE_ENABLE_DEBUG_TRACE) || defined(ANGLE_ENABLE_DEBUG_ANNOTATIONS) # define ANGLE_TRACE_ENABLED #endif -#if !defined(NDEBUG) || defined(ANGLE_ENABLE_RELEASE_ASSERTS) +#if !defined(NDEBUG) || defined(ANGLE_ASSERT_ALWAYS_ON) # define ANGLE_ENABLE_ASSERTS #endif #define INFO() ANGLE_LOG(INFO) #define WARN() ANGLE_LOG(WARN) @@ -439,20 +446,10 @@ # define ANGLE_DISABLE_DESTRUCTOR_OVERRIDE_WARNING # define ANGLE_REENABLE_DESTRUCTOR_OVERRIDE_WARNING #endif #if defined(__clang__) -# define ANGLE_DISABLE_WEAK_TEMPLATE_VTABLES_WARNING \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wweak-template-vtables\"") -# define ANGLE_REENABLE_WEAK_TEMPLATE_VTABLES_WARNING _Pragma("clang diagnostic pop") -#else -# define ANGLE_DISABLE_WEAK_TEMPLATE_VTABLES_WARNING -# define ANGLE_REENABLE_WEAK_TEMPLATE_VTABLES_WARNING -#endif - -#if defined(__clang__) # define ANGLE_DISABLE_UNUSED_FUNCTION_WARNING \ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunused-function\"") # define ANGLE_REENABLE_UNUSED_FUNCTION_WARNING _Pragma("clang diagnostic pop") #else # define ANGLE_DISABLE_UNUSED_FUNCTION_WARNING diff --git a/gfx/angle/checkout/src/common/debug.cpp b/gfx/angle/checkout/src/common/debug.cpp --- a/gfx/angle/checkout/src/common/debug.cpp +++ b/gfx/angle/checkout/src/common/debug.cpp @@ -23,10 +23,14 @@ #if defined(ANGLE_PLATFORM_APPLE) # include #endif +#if defined(ANGLE_PLATFORM_WINDOWS) +# include +#endif + #include "anglebase/no_destructor.h" #include "common/Optional.h" #include "common/angleutils.h" #include "common/entry_points_enum_autogen.h" #include "common/system_utils.h" @@ -128,17 +132,19 @@ ASSERT(g_debugMutex); return *g_debugMutex; } ScopedPerfEventHelper::ScopedPerfEventHelper(gl::Context *context, angle::EntryPoint entryPoint) - : mContext(context), mEntryPoint(entryPoint), mFunctionName(nullptr) + : mContext(context), mEntryPoint(entryPoint), mFunctionName(nullptr), mCalledBeginEvent(false) {} ScopedPerfEventHelper::~ScopedPerfEventHelper() { - // EGL_Terminate() can set g_debugAnnotator to nullptr; must call DebugAnnotationsActive() here - if (mFunctionName && DebugAnnotationsActive()) + // EGL_Initialize() and EGL_Terminate() can change g_debugAnnotator. Must check the value of + // g_debugAnnotator and whether ScopedPerfEventHelper::begin() initiated a begine that must be + // ended now. + if (DebugAnnotationsInitialized() && mCalledBeginEvent) { g_debugAnnotator->endEvent(mContext, mFunctionName, mEntryPoint); } } @@ -154,10 +160,11 @@ va_end(vararg); ANGLE_LOG(EVENT) << std::string(&buffer[0], len); if (DebugAnnotationsInitialized()) { + mCalledBeginEvent = true; g_debugAnnotator->beginEvent(mContext, mEntryPoint, mFunctionName, buffer.data()); } } LogMessage::LogMessage(const char *file, const char *function, int line, LogSeverity severity) diff --git a/gfx/angle/checkout/src/common/entry_points_enum_autogen.h b/gfx/angle/checkout/src/common/entry_points_enum_autogen.h --- a/gfx/angle/checkout/src/common/entry_points_enum_autogen.h +++ b/gfx/angle/checkout/src/common/entry_points_enum_autogen.h @@ -521,11 +521,13 @@ GLDrawTransformFeedback, GLDrawTransformFeedbackInstanced, GLDrawTransformFeedbackStream, GLDrawTransformFeedbackStreamInstanced, GLEGLImageTargetRenderbufferStorageOES, + GLEGLImageTargetTexStorageEXT, GLEGLImageTargetTexture2DOES, + GLEGLImageTargetTextureStorageEXT, GLEdgeFlag, GLEdgeFlagPointer, GLEdgeFlagv, GLEnable, GLEnableClientState, @@ -584,10 +586,11 @@ GLFramebufferTexture3D, GLFramebufferTexture3DOES, GLFramebufferTextureEXT, GLFramebufferTextureLayer, GLFramebufferTextureMultiviewOVR, + GLFramebufferTextureOES, GLFrontFace, GLFrustum, GLFrustumf, GLFrustumx, GLGenBuffers, @@ -637,10 +640,11 @@ GLGetBufferSubData, GLGetClipPlane, GLGetClipPlanef, GLGetClipPlanex, GLGetCompressedTexImage, + GLGetCompressedTexImageANGLE, GLGetCompressedTextureImage, GLGetCompressedTextureSubImage, GLGetDebugMessageLog, GLGetDebugMessageLogKHR, GLGetDoublei_v, diff --git a/gfx/angle/checkout/src/common/entry_points_enum_autogen.cpp b/gfx/angle/checkout/src/common/entry_points_enum_autogen.cpp --- a/gfx/angle/checkout/src/common/entry_points_enum_autogen.cpp +++ b/gfx/angle/checkout/src/common/entry_points_enum_autogen.cpp @@ -1032,12 +1032,16 @@ return "glDrawTransformFeedbackStream"; case EntryPoint::GLDrawTransformFeedbackStreamInstanced: return "glDrawTransformFeedbackStreamInstanced"; case EntryPoint::GLEGLImageTargetRenderbufferStorageOES: return "glEGLImageTargetRenderbufferStorageOES"; + case EntryPoint::GLEGLImageTargetTexStorageEXT: + return "glEGLImageTargetTexStorageEXT"; case EntryPoint::GLEGLImageTargetTexture2DOES: return "glEGLImageTargetTexture2DOES"; + case EntryPoint::GLEGLImageTargetTextureStorageEXT: + return "glEGLImageTargetTextureStorageEXT"; case EntryPoint::GLEdgeFlag: return "glEdgeFlag"; case EntryPoint::GLEdgeFlagPointer: return "glEdgeFlagPointer"; case EntryPoint::GLEdgeFlagv: @@ -1158,10 +1162,12 @@ return "glFramebufferTextureEXT"; case EntryPoint::GLFramebufferTextureLayer: return "glFramebufferTextureLayer"; case EntryPoint::GLFramebufferTextureMultiviewOVR: return "glFramebufferTextureMultiviewOVR"; + case EntryPoint::GLFramebufferTextureOES: + return "glFramebufferTextureOES"; case EntryPoint::GLFrontFace: return "glFrontFace"; case EntryPoint::GLFrustum: return "glFrustum"; case EntryPoint::GLFrustumf: @@ -1264,10 +1270,12 @@ return "glGetClipPlanef"; case EntryPoint::GLGetClipPlanex: return "glGetClipPlanex"; case EntryPoint::GLGetCompressedTexImage: return "glGetCompressedTexImage"; + case EntryPoint::GLGetCompressedTexImageANGLE: + return "glGetCompressedTexImageANGLE"; case EntryPoint::GLGetCompressedTextureImage: return "glGetCompressedTextureImage"; case EntryPoint::GLGetCompressedTextureSubImage: return "glGetCompressedTextureSubImage"; case EntryPoint::GLGetDebugMessageLog: diff --git a/gfx/angle/checkout/src/common/mathutil.h b/gfx/angle/checkout/src/common/mathutil.h --- a/gfx/angle/checkout/src/common/mathutil.h +++ b/gfx/angle/checkout/src/common/mathutil.h @@ -297,10 +297,11 @@ { // The number is too small to be represented as a normalized float11 // Convert it to a denormalized value. const unsigned int shift = (float32ExponentBias - float11ExponentBias) - (float32Val >> float32ExponentFirstBit); + ASSERT(shift < 32); float32Val = ((1 << float32ExponentFirstBit) | (float32Val & float32MantissaMask)) >> shift; } else { @@ -376,10 +377,11 @@ { // The number is too small to be represented as a normalized float10 // Convert it to a denormalized value. const unsigned int shift = (float32ExponentBias - float10ExponentBias) - (float32Val >> float32ExponentFirstBit); + ASSERT(shift < 32); float32Val = ((1 << float32ExponentFirstBit) | (float32Val & float32MantissaMask)) >> shift; } else { @@ -465,13 +467,12 @@ return bitCast(((exponent + 112) << 23) | (mantissa << 18)); } } -// Convers to and from float and 16.16 fixed point format. - -inline float ConvertFixedToFloat(uint32_t fixedInput) +// Converts to and from float and 16.16 fixed point format. +inline float ConvertFixedToFloat(int32_t fixedInput) { return static_cast(fixedInput) / 65536.0f; } inline uint32_t ConvertFloatToFixed(float floatInput) diff --git a/gfx/angle/checkout/src/common/platform.h b/gfx/angle/checkout/src/common/platform.h --- a/gfx/angle/checkout/src/common/platform.h +++ b/gfx/angle/checkout/src/common/platform.h @@ -44,11 +44,10 @@ # ifndef NOMINMAX # define NOMINMAX 1 # endif # include -# include # if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) # define ANGLE_ENABLE_WINDOWS_UWP 1 # endif @@ -138,15 +137,20 @@ # // This might be useful globally. At the moment it is used # // to differentiate MacCatalyst on Intel and Apple Silicon. # if defined(__arm64__) || defined(__aarch64__) # define ANGLE_CPU_ARM64 1 # endif -// EAGL should be enabled on iOS, but not Mac Catalyst unless it is running on Apple Silicon. +# // EAGL should be enabled on iOS, but not Mac Catalyst unless it is running on Apple Silicon. # if (defined(ANGLE_PLATFORM_IOS) && !defined(ANGLE_PLATFORM_MACCATALYST)) || \ (defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64)) # define ANGLE_ENABLE_EAGL # endif +# // Identify Metal API >= what shipped on macOS Catalina. +# if (defined(ANGLE_PLATFORM_MACOS) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500) || \ + (defined(ANGLE_PLATFORM_IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000) +# define ANGLE_WITH_MODERN_METAL_API 1 +# endif #endif // Define ANGLE_WITH_ASAN macro. #if defined(__has_feature) # if __has_feature(address_sanitizer) diff --git a/gfx/angle/checkout/src/common/spirv/spirv_types.h b/gfx/angle/checkout/src/common/spirv/spirv_types.h --- a/gfx/angle/checkout/src/common/spirv/spirv_types.h +++ b/gfx/angle/checkout/src/common/spirv/spirv_types.h @@ -108,10 +108,22 @@ constexpr uint32_t kMinValidId = 1; // The SPIR-V blob is a sequence of uint32_t's using Blob = std::vector; +// Format of the SPIR-V header. +// SPIR-V 1.0 Table 1: First Words of Physical Layout +enum HeaderIndex +{ + kHeaderIndexMagic = 0, + kHeaderIndexVersion = 1, + kHeaderIndexGenerator = 2, + kHeaderIndexIndexBound = 3, + kHeaderIndexSchema = 4, + kHeaderIndexInstructions = 5, +}; + // Returns whether SPIR-V is valid. Useful for ASSERTs. Automatically generates a warning if // SPIR-V is not valid. bool Validate(const Blob &blob); } // namespace spirv diff --git a/gfx/angle/checkout/src/common/string_utils.h b/gfx/angle/checkout/src/common/string_utils.h --- a/gfx/angle/checkout/src/common/string_utils.h +++ b/gfx/angle/checkout/src/common/string_utils.h @@ -80,10 +80,15 @@ // Check if the string str ends with the given suffix. // str and suffix may not be NULL and need to be NULL terminated. // The comparison is case sensitive. bool EndsWith(const char *str, const char *suffix); +// Check if the given token string contains the given token. +// The tokens are separated by the given delimiter. +// The comparison is case sensitive. +bool ContainsToken(const std::string &tokenStr, char delimiter, const std::string &token); + // Convert to lower-case. void ToLower(std::string *str); // Convert to upper-case. void ToUpper(std::string *str); @@ -91,10 +96,15 @@ // Replaces the substring 'substring' in 'str' with 'replacement'. Returns true if successful. bool ReplaceSubstring(std::string *str, const std::string &substring, const std::string &replacement); +// Replaces all substrings 'substring' in 'str' with 'replacement'. Returns count of replacements. +int ReplaceAllSubstrings(std::string *str, + const std::string &substring, + const std::string &replacement); + // Split up a string parsed from an environment variable. std::vector GetStringsFromEnvironmentVarOrAndroidProperty(const char *varName, const char *propertyName, const char *separator); diff --git a/gfx/angle/checkout/src/common/string_utils.cpp b/gfx/angle/checkout/src/common/string_utils.cpp --- a/gfx/angle/checkout/src/common/string_utils.cpp +++ b/gfx/angle/checkout/src/common/string_utils.cpp @@ -204,10 +204,35 @@ bool EndsWith(const char *str, const char *suffix) { return EndsWithSuffix(str, strlen(str), suffix, strlen(suffix)); } +bool ContainsToken(const std::string &tokenStr, char delimiter, const std::string &token) +{ + if (token.empty()) + { + return false; + } + // Compare token with all sub-strings terminated by delimiter or end of string + std::string::size_type start = 0u; + do + { + std::string::size_type end = tokenStr.find(delimiter, start); + if (end == std::string::npos) + { + end = tokenStr.length(); + } + const std::string::size_type length = end - start; + if (length == token.length() && tokenStr.compare(start, length, token) == 0) + { + return true; + } + start = end + 1u; + } while (start < tokenStr.size()); + return false; +} + void ToLower(std::string *str) { for (char &ch : *str) { ch = static_cast(::tolower(ch)); @@ -233,10 +258,22 @@ } str->replace(replacePos, substring.size(), replacement); return true; } +int ReplaceAllSubstrings(std::string *str, + const std::string &substring, + const std::string &replacement) +{ + int count = 0; + while (ReplaceSubstring(str, substring, replacement)) + { + count++; + } + return count; +} + std::vector GetStringsFromEnvironmentVarOrAndroidProperty(const char *varName, const char *propertyName, const char *separator) { std::string environment = GetEnvironmentVarOrAndroidProperty(varName, propertyName); diff --git a/gfx/angle/checkout/src/common/system_utils.h b/gfx/angle/checkout/src/common/system_utils.h --- a/gfx/angle/checkout/src/common/system_utils.h +++ b/gfx/angle/checkout/src/common/system_utils.h @@ -17,28 +17,32 @@ namespace angle { std::string GetExecutableName(); std::string GetExecutablePath(); std::string GetExecutableDirectory(); -std::string GetHelperExecutableDir(); +std::string GetModuleDirectory(); const char *GetSharedLibraryExtension(); const char *GetExecutableExtension(); char GetPathSeparator(); Optional GetCWD(); bool SetCWD(const char *dirName); bool SetEnvironmentVar(const char *variableName, const char *value); bool UnsetEnvironmentVar(const char *variableName); +bool GetBoolEnvironmentVar(const char *variableName); std::string GetEnvironmentVar(const char *variableName); std::string GetEnvironmentVarOrUnCachedAndroidProperty(const char *variableName, const char *propertyName); std::string GetEnvironmentVarOrAndroidProperty(const char *variableName, const char *propertyName); const char *GetPathSeparatorForEnvironmentVar(); bool PrependPathToEnvironmentVar(const char *variableName, const char *path); bool IsDirectory(const char *filename); +bool IsFullPath(std::string dirName); +std::string GetRootDirectory(); +std::string ConcatenatePath(std::string first, std::string second); // Get absolute time in seconds. Use this function to get an absolute time with an unknown origin. -double GetCurrentTime(); +double GetCurrentSystemTime(); // Run an application and get the output. Gets a nullptr-terminated set of args to execute the // application with, and returns the stdout and stderr outputs as well as the exit code. // // Pass nullptr for stdoutOut/stderrOut if you don't need to capture. exitCodeOut is required. @@ -53,10 +57,11 @@ { public: virtual ~Library() {} virtual void *getSymbol(const char *symbolName) = 0; virtual void *getNative() const = 0; + virtual std::string getPath() const = 0; template void getAs(const char *symbolName, FuncT *funcOut) { *funcOut = reinterpret_cast(getSymbol(symbolName)); @@ -65,16 +70,20 @@ // Use SYSTEM_DIR to bypass loading ANGLE libraries with the same name as system DLLS // (e.g. opengl32.dll) enum class SearchType { - ApplicationDir, - SystemDir + // Try to find the library in the same directory as the current module + ModuleDir, + // Load the library from the system directories + SystemDir, + // Get a reference to an already loaded shared library. + AlreadyLoaded, }; Library *OpenSharedLibrary(const char *libraryName, SearchType searchType); -Library *OpenSharedLibraryWithExtension(const char *libraryName); +Library *OpenSharedLibraryWithExtension(const char *libraryName, SearchType searchType); // Returns true if the process is currently being debugged. bool IsDebuggerAttached(); // Calls system APIs to break into the debugger. diff --git a/gfx/angle/checkout/src/common/system_utils.cpp b/gfx/angle/checkout/src/common/system_utils.cpp --- a/gfx/angle/checkout/src/common/system_utils.cpp +++ b/gfx/angle/checkout/src/common/system_utils.cpp @@ -68,13 +68,20 @@ } // Set the environment variable with the value. SetEnvironmentVar(variableName, propertyValue.c_str()); return propertyValue; -#endif // ANGLE_PLATFORM_ANDROID +#else // Return the environment variable's value. return GetEnvironmentVar(variableName); +#endif // ANGLE_PLATFORM_ANDROID +} + +bool GetBoolEnvironmentVar(const char *variableName) +{ + std::string envVarString = GetEnvironmentVar(variableName); + return (!envVarString.empty() && envVarString == "1"); } bool PrependPathToEnvironmentVar(const char *variableName, const char *path) { std::string oldValue = GetEnvironmentVar(variableName); @@ -91,6 +98,42 @@ buf += oldValue; newValue = buf.c_str(); } return SetEnvironmentVar(variableName, newValue); } + +bool IsFullPath(std::string dirName) +{ + if (dirName.find(GetRootDirectory()) == 0) + { + return true; + } + return false; +} + +std::string ConcatenatePath(std::string first, std::string second) +{ + if (first.empty()) + { + return second; + } + if (second.empty()) + { + return first; + } + if (IsFullPath(second)) + { + return first; + } + bool firstRedundantPathSeparator = first.find_last_of(GetPathSeparator()) == first.length() - 1; + bool secondRedundantPathSeparator = second.find(GetPathSeparator()) == 0; + if (firstRedundantPathSeparator && secondRedundantPathSeparator) + { + return first + second.substr(1); + } + else if (firstRedundantPathSeparator || secondRedundantPathSeparator) + { + return first + second; + } + return first + GetPathSeparator() + second; +} } // namespace angle diff --git a/gfx/angle/checkout/src/common/system_utils_apple.cpp b/gfx/angle/checkout/src/common/system_utils_apple.cpp --- a/gfx/angle/checkout/src/common/system_utils_apple.cpp +++ b/gfx/angle/checkout/src/common/system_utils_apple.cpp @@ -46,11 +46,11 @@ std::string executablePath = GetExecutablePath(); size_t lastPathSepLoc = executablePath.find_last_of("/"); return (lastPathSepLoc != std::string::npos) ? executablePath.substr(0, lastPathSepLoc) : ""; } -double GetCurrentTime() +double GetCurrentSystemTime() { mach_timebase_info_data_t timebaseInfo; mach_timebase_info(&timebaseInfo); double secondCoeff = timebaseInfo.numer * 1e-9 / timebaseInfo.denom; diff --git a/gfx/angle/checkout/src/common/system_utils_linux.cpp b/gfx/angle/checkout/src/common/system_utils_linux.cpp --- a/gfx/angle/checkout/src/common/system_utils_linux.cpp +++ b/gfx/angle/checkout/src/common/system_utils_linux.cpp @@ -43,11 +43,11 @@ const char *GetSharedLibraryExtension() { return "so"; } -double GetCurrentTime() +double GetCurrentSystemTime() { struct timespec currentTime; clock_gettime(CLOCK_MONOTONIC, ¤tTime); return currentTime.tv_sec + currentTime.tv_nsec * 1e-9; } diff --git a/gfx/angle/checkout/src/common/system_utils_posix.cpp b/gfx/angle/checkout/src/common/system_utils_posix.cpp --- a/gfx/angle/checkout/src/common/system_utils_posix.cpp +++ b/gfx/angle/checkout/src/common/system_utils_posix.cpp @@ -17,10 +17,25 @@ #include #include namespace angle { + +namespace +{ +std::string GetModulePath(void *moduleOrSymbol) +{ + Dl_info dlInfo; + if (dladdr(moduleOrSymbol, &dlInfo) == 0) + { + return ""; + } + + return dlInfo.dli_fname; +} +} // namespace + Optional GetCWD() { std::array pathBuf; char *result = getcwd(pathBuf.data(), pathBuf.size()); if (result == nullptr) @@ -54,27 +69,35 @@ const char *GetPathSeparatorForEnvironmentVar() { return ":"; } -std::string GetHelperExecutableDir() +std::string GetModuleDirectory() { std::string directory; static int placeholderSymbol = 0; - Dl_info dlInfo; - if (dladdr(&placeholderSymbol, &dlInfo) != 0) + std::string moduleName = GetModulePath(&placeholderSymbol); + if (!moduleName.empty()) { - std::string moduleName = dlInfo.dli_fname; - directory = moduleName.substr(0, moduleName.find_last_of('/') + 1); + directory = moduleName.substr(0, moduleName.find_last_of('/') + 1); + } + + // Ensure we return the full path to the module, not the relative path + Optional cwd = GetCWD(); + if (cwd.valid() && !IsFullPath(directory)) + { + directory = ConcatenatePath(cwd.value(), directory); } return directory; } class PosixLibrary : public Library { public: - PosixLibrary(const std::string &fullPath) : mModule(dlopen(fullPath.c_str(), RTLD_NOW)) {} + PosixLibrary(const std::string &fullPath, int extraFlags) + : mModule(dlopen(fullPath.c_str(), RTLD_NOW | extraFlags)) + {} ~PosixLibrary() override { if (mModule) { @@ -92,38 +115,55 @@ return dlsym(mModule, symbolName); } void *getNative() const override { return mModule; } + std::string getPath() const override + { + if (!mModule) + { + return ""; + } + + return GetModulePath(mModule); + } + private: void *mModule = nullptr; }; Library *OpenSharedLibrary(const char *libraryName, SearchType searchType) { + std::string libraryWithExtension = std::string(libraryName) + "." + GetSharedLibraryExtension(); + return OpenSharedLibraryWithExtension(libraryWithExtension.c_str(), searchType); +} + +Library *OpenSharedLibraryWithExtension(const char *libraryName, SearchType searchType) +{ std::string directory; - if (searchType == SearchType::ApplicationDir) + if (searchType == SearchType::ModuleDir) { #if ANGLE_PLATFORM_IOS // On iOS, shared libraries must be loaded from within the app bundle. directory = GetExecutableDirectory() + "/Frameworks/"; #else - directory = GetHelperExecutableDir(); + directory = GetModuleDirectory(); #endif } - std::string fullPath = directory + libraryName + "." + GetSharedLibraryExtension(); + int extraFlags = 0; + if (searchType == SearchType::AlreadyLoaded) + { + extraFlags = RTLD_NOLOAD; + } + + std::string fullPath = directory + libraryName; #if ANGLE_PLATFORM_IOS // On iOS, dlopen needs a suffix on the framework name to work. fullPath = fullPath + "/" + libraryName; #endif - return new PosixLibrary(fullPath); -} - -Library *OpenSharedLibraryWithExtension(const char *libraryName) -{ - return new PosixLibrary(libraryName); + return new PosixLibrary(fullPath, extraFlags); } bool IsDirectory(const char *filename) { struct stat st; @@ -152,6 +192,11 @@ char GetPathSeparator() { return '/'; } + +std::string GetRootDirectory() +{ + return "/"; +} } // namespace angle diff --git a/gfx/angle/checkout/src/common/system_utils_win.cpp b/gfx/angle/checkout/src/common/system_utils_win.cpp --- a/gfx/angle/checkout/src/common/system_utils_win.cpp +++ b/gfx/angle/checkout/src/common/system_utils_win.cpp @@ -13,23 +13,39 @@ #include #include namespace angle { -std::string GetExecutablePath() + +namespace +{ + +std::string GetPath(HMODULE module) { std::array executableFileBuf; - DWORD executablePathLen = GetModuleFileNameA(nullptr, executableFileBuf.data(), + DWORD executablePathLen = GetModuleFileNameA(module, executableFileBuf.data(), static_cast(executableFileBuf.size())); return (executablePathLen > 0 ? std::string(executableFileBuf.data()) : ""); } +std::string GetDirectory(HMODULE module) +{ + std::string executablePath = GetPath(module); + size_t lastPathSepLoc = executablePath.find_last_of("\\/"); + return (lastPathSepLoc != std::string::npos) ? executablePath.substr(0, lastPathSepLoc) : ""; +} + +} // anonymous namespace + +std::string GetExecutablePath() +{ + return GetPath(nullptr); +} + std::string GetExecutableDirectory() { - std::string executablePath = GetExecutablePath(); - size_t lastPathSepLoc = executablePath.find_last_of("\\/"); - return (lastPathSepLoc != std::string::npos) ? executablePath.substr(0, lastPathSepLoc) : ""; + return GetDirectory(nullptr); } const char *GetSharedLibraryExtension() { return "dll"; @@ -54,11 +70,11 @@ const char *GetPathSeparatorForEnvironmentVar() { return ";"; } -double GetCurrentTime() +double GetCurrentSystemTime() { LARGE_INTEGER frequency = {}; QueryPerformanceFrequency(&frequency); LARGE_INTEGER curTime; @@ -99,10 +115,27 @@ char GetPathSeparator() { return '\\'; } -std::string GetHelperExecutableDir() +std::string GetModuleDirectory() { - return ""; +// GetModuleHandleEx is unavailable on UWP +#if !defined(ANGLE_IS_WINUWP) + static int placeholderSymbol = 0; + HMODULE module = nullptr; + if (GetModuleHandleExA( + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast(&placeholderSymbol), &module)) + { + return GetDirectory(module); + } +#endif + return GetDirectory(nullptr); } + +std::string GetRootDirectory() +{ + return "C:\\"; +} + } // namespace angle diff --git a/gfx/angle/checkout/src/common/system_utils_win32.cpp b/gfx/angle/checkout/src/common/system_utils_win32.cpp --- a/gfx/angle/checkout/src/common/system_utils_win32.cpp +++ b/gfx/angle/checkout/src/common/system_utils_win32.cpp @@ -3,10 +3,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // system_utils_win32.cpp: Implementation of OS-specific functions for Windows. +#include "common/FastVector.h" #include "system_utils.h" #include #include @@ -22,36 +23,50 @@ return (SetEnvironmentVariableA(variableName, value) == TRUE); } std::string GetEnvironmentVar(const char *variableName) { - std::array oldValue; - DWORD result = - GetEnvironmentVariableA(variableName, oldValue.data(), static_cast(oldValue.size())); + FastVector value; + + DWORD result; + + // First get the length of the variable, including the null terminator + result = GetEnvironmentVariableA(variableName, nullptr, 0); + + // Zero means the variable was not found, so return now. if (result == 0) { return std::string(); } - else - { - return std::string(oldValue.data()); - } + + // Now size the vector to fit the data, and read the environment variable. + value.resize(result, 0); + result = GetEnvironmentVariableA(variableName, value.data(), result); + + return std::string(value.data()); } class Win32Library : public Library { public: Win32Library(const char *libraryName, SearchType searchType) { switch (searchType) { - case SearchType::ApplicationDir: - mModule = LoadLibraryA(libraryName); + case SearchType::ModuleDir: + { + std::string moduleRelativePath = ConcatenatePath(GetModuleDirectory(), libraryName); + mModule = LoadLibraryA(moduleRelativePath.c_str()); break; + } + case SearchType::SystemDir: mModule = LoadLibraryExA(libraryName, nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32); break; + case SearchType::AlreadyLoaded: + mModule = GetModuleHandleA(libraryName); + break; } } ~Win32Library() override { @@ -72,10 +87,26 @@ return reinterpret_cast(GetProcAddress(mModule, symbolName)); } void *getNative() const override { return reinterpret_cast(mModule); } + std::string getPath() const override + { + if (!mModule) + { + return ""; + } + + std::array buffer; + if (GetModuleFileNameA(mModule, buffer.data(), buffer.size()) == 0) + { + return ""; + } + + return std::string(buffer.data()); + } + private: HMODULE mModule = nullptr; }; Library *OpenSharedLibrary(const char *libraryName, SearchType searchType) @@ -91,10 +122,10 @@ fprintf(stderr, "Error loading shared library: 0x%x", ret); return nullptr; } } -Library *OpenSharedLibraryWithExtension(const char *libraryName) +Library *OpenSharedLibraryWithExtension(const char *libraryName, SearchType searchType) { - return new Win32Library(libraryName, SearchType::SystemDir); + return new Win32Library(libraryName, searchType); } } // namespace angle diff --git a/gfx/angle/checkout/src/common/third_party/base/anglebase/numerics/safe_math_impl.h b/gfx/angle/checkout/src/common/third_party/base/anglebase/numerics/safe_math_impl.h --- a/gfx/angle/checkout/src/common/third_party/base/anglebase/numerics/safe_math_impl.h +++ b/gfx/angle/checkout/src/common/third_party/base/anglebase/numerics/safe_math_impl.h @@ -367,11 +367,11 @@ #define ANGLEBASE_FLOAT_ARITHMETIC_STUBS(NAME) \ template \ typename std::enable_if::is_iec559, T>::type Checked##NAME( \ T, T, RangeConstraint *) \ { \ - NOTREACHED(); \ + UNREACHABLE(); \ return static_cast(0); \ } ANGLEBASE_FLOAT_ARITHMETIC_STUBS(Add) ANGLEBASE_FLOAT_ARITHMETIC_STUBS(Sub) @@ -494,11 +494,11 @@ case RANGE_INVALID: value_ = std::numeric_limits::quiet_NaN(); break; default: - NOTREACHED(); + UNREACHABLE(); } } template explicit CheckedNumericState( diff --git a/gfx/angle/checkout/src/common/tls.h b/gfx/angle/checkout/src/common/tls.h --- a/gfx/angle/checkout/src/common/tls.h +++ b/gfx/angle/checkout/src/common/tls.h @@ -10,10 +10,14 @@ #define COMMON_TLS_H_ #include "common/angleutils.h" #include "common/platform.h" +#ifdef ANGLE_PLATFORM_WINDOWS +# include +#endif + namespace gl { class Context; } diff --git a/gfx/angle/checkout/src/common/utilities.h b/gfx/angle/checkout/src/common/utilities.h --- a/gfx/angle/checkout/src/common/utilities.h +++ b/gfx/angle/checkout/src/common/utilities.h @@ -113,10 +113,15 @@ bool IsIntegerFormat(GLenum unsizedFormat); // Returns the product of the sizes in the vector, or 1 if the vector is empty. Doesn't currently // perform overflow checks. unsigned int ArraySizeProduct(const std::vector &arraySizes); +// Returns the product of the sizes in the vector except for the outermost dimension, or 1 if the +// vector is empty. +unsigned int InnerArraySizeProduct(const std::vector &arraySizes); +// Returns the outermost array dimension, or 1 if the vector is empty. +unsigned int OutermostArraySize(const std::vector &arraySizes); // Return the array index at the end of name, and write the length of name before the final array // index into nameLengthWithoutArrayIndexOut. In case name doesn't include an array index, return // GL_INVALID_INDEX and write the length of the original string. unsigned int ParseArrayIndex(const std::string &name, size_t *nameLengthWithoutArrayIndexOut); diff --git a/gfx/angle/checkout/src/common/utilities.cpp b/gfx/angle/checkout/src/common/utilities.cpp --- a/gfx/angle/checkout/src/common/utilities.cpp +++ b/gfx/angle/checkout/src/common/utilities.cpp @@ -127,27 +127,31 @@ case GL_INT: case GL_SAMPLER_2D: case GL_SAMPLER_2D_RECT_ANGLE: case GL_SAMPLER_3D: case GL_SAMPLER_CUBE: + case GL_SAMPLER_CUBE_MAP_ARRAY: case GL_SAMPLER_2D_ARRAY: case GL_SAMPLER_EXTERNAL_OES: case GL_SAMPLER_2D_MULTISAMPLE: case GL_SAMPLER_2D_MULTISAMPLE_ARRAY: case GL_INT_SAMPLER_2D: case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_CUBE: + case GL_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_INT_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_2D_MULTISAMPLE: case GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_CUBE: + case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: case GL_SAMPLER_2D_SHADOW: + case GL_SAMPLER_BUFFER: case GL_SAMPLER_CUBE_SHADOW: case GL_SAMPLER_2D_ARRAY_SHADOW: case GL_INT_VEC2: case GL_INT_VEC3: case GL_INT_VEC4: @@ -965,10 +969,25 @@ arraySizeProduct *= arraySize; } return arraySizeProduct; } +unsigned int InnerArraySizeProduct(const std::vector &arraySizes) +{ + unsigned int arraySizeProduct = 1u; + for (size_t index = 0; index + 1 < arraySizes.size(); ++index) + { + arraySizeProduct *= arraySizes[index]; + } + return arraySizeProduct; +} + +unsigned int OutermostArraySize(const std::vector &arraySizes) +{ + return arraySizes.empty() || arraySizes.back() == 0 ? 1 : arraySizes.back(); +} + unsigned int ParseArrayIndex(const std::string &name, size_t *nameLengthWithoutArrayIndexOut) { ASSERT(nameLengthWithoutArrayIndexOut != nullptr); // Strip any trailing array operator and retrieve the subscript diff --git a/gfx/angle/checkout/src/common/version.h b/gfx/angle/checkout/src/common/version.h deleted file mode 100644 --- a/gfx/angle/checkout/src/common/version.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright 2014 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. -// -// angle_version.h: ANGLE version constants. Generated from git commands. - -#ifndef COMMON_VERSION_H_ -#define COMMON_VERSION_H_ - -#include "angle_commit.h" - -#define ANGLE_MAJOR_VERSION 2 -#define ANGLE_MINOR_VERSION 1 - -#ifndef ANGLE_REVISION -# define ANGLE_REVISION ANGLE_COMMIT_POSITION -#endif - -#define ANGLE_STRINGIFY(x) #x -#define ANGLE_MACRO_STRINGIFY(x) ANGLE_STRINGIFY(x) - -#define ANGLE_VERSION_STRING \ - ANGLE_MACRO_STRINGIFY(ANGLE_MAJOR_VERSION) \ - "." ANGLE_MACRO_STRINGIFY(ANGLE_MINOR_VERSION) "." ANGLE_MACRO_STRINGIFY( \ - ANGLE_REVISION) " git hash: " ANGLE_COMMIT_HASH - -#endif // COMMON_VERSION_H_ diff --git a/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.h b/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.h @@ -0,0 +1,25 @@ +// +// Copyright 2021 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. +// +// libvulkan_loader.h: +// Helper functions for the loading Vulkan libraries. +// + +#include + +#ifndef LIBANGLE_COMMON_VULKAN_LIBVULKAN_LOADER_H_ +# define LIBANGLE_COMMON_VULKAN_LIBVULKAN_LOADER_H_ + +namespace angle +{ +class Library; + +namespace vk +{ +std::unique_ptr OpenLibVulkan(); +} +} // namespace angle + +#endif // LIBANGLE_COMMON_VULKAN_LIBVULKAN_LOADER_H_ diff --git a/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.cpp b/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/common/vulkan/libvulkan_loader.cpp @@ -0,0 +1,58 @@ +// +// Copyright 2021 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. +// +// libvulkan_loader.cpp: +// Helper functions for the loading Vulkan libraries. +// + +#include "common/vulkan/libvulkan_loader.h" + +#include "common/system_utils.h" + +namespace angle +{ +namespace vk +{ +std::unique_ptr OpenLibVulkan() +{ + constexpr const char *kLibVulkanNames[] = { +#if defined(ANGLE_PLATFORM_WINDOWS) + "vulkan-1.dll", +#elif defined(ANGLE_PLATFORM_APPLE) + "libvulkan.dylib", + "libvulkan.1.dylib", + "libMoltenVK.dylib" +#else + "libvulkan.so", + "libvulkan.so.1", +#endif + }; + + constexpr SearchType kSearchTypes[] = { +// On Android, Fuchsia and GGP we use the system libvulkan. +#if defined(ANGLE_USE_CUSTOM_LIBVULKAN) + SearchType::ModuleDir, +#else + SearchType::SystemDir, +#endif // defined(ANGLE_USE_CUSTOM_LIBVULKAN) + }; + + for (angle::SearchType searchType : kSearchTypes) + { + for (const char *libraryName : kLibVulkanNames) + { + std::unique_ptr library( + OpenSharedLibraryWithExtension(libraryName, searchType)); + if (library && library->getNative()) + { + return library; + } + } + } + + return nullptr; +} +} // namespace vk +} // namespace angle diff --git a/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.cpp b/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.cpp @@ -38,10 +38,13 @@ mGradientBuiltinFunctions.insert(ImmutableString("texture2D")); mGradientBuiltinFunctions.insert(ImmutableString("texture2DProj")); mGradientBuiltinFunctions.insert(ImmutableString("textureCube")); // ESSL 300 builtin gradient functions + mGradientBuiltinFunctions.insert(ImmutableString("dFdx")); + mGradientBuiltinFunctions.insert(ImmutableString("dFdy")); + mGradientBuiltinFunctions.insert(ImmutableString("fwidth")); mGradientBuiltinFunctions.insert(ImmutableString("texture")); mGradientBuiltinFunctions.insert(ImmutableString("textureProj")); mGradientBuiltinFunctions.insert(ImmutableString("textureOffset")); mGradientBuiltinFunctions.insert(ImmutableString("textureProjOffset")); @@ -93,29 +96,10 @@ { visitControlFlow(visit, ifElse); return true; } - bool visitUnary(Visit visit, TIntermUnary *node) override - { - if (visit == PreVisit) - { - switch (node->getOp()) - { - case EOpDFdx: - case EOpDFdy: - case EOpFwidth: - onGradient(); - break; - default: - break; - } - } - - return true; - } - bool visitAggregate(Visit visit, TIntermAggregate *node) override { if (visit == PreVisit) { if (node->getOp() == EOpCallFunctionInAST) @@ -126,11 +110,11 @@ if ((*mMetadataList)[calleeIndex].mUsesGradient) { onGradient(); } } - else if (node->getOp() == EOpCallBuiltInFunction) + else if (BuiltInGroup::IsBuiltIn(node->getOp()) && !BuiltInGroup::IsMath(node->getOp())) { if (mGradientBuiltinFunctions.find(node->getFunction()->name()) != mGradientBuiltinFunctions.end()) { onGradient(); diff --git a/gfx/angle/checkout/src/compiler/translator/BaseTypes.h b/gfx/angle/checkout/src/compiler/translator/BaseTypes.h --- a/gfx/angle/checkout/src/compiler/translator/BaseTypes.h +++ b/gfx/angle/checkout/src/compiler/translator/BaseTypes.h @@ -109,43 +109,45 @@ EbtGuardSamplerEnd = EbtSamplerVideoWEBGL, // non type: see implementation of IsSampler() // images EbtGuardImageBegin, EbtImage2D = EbtGuardImageBegin, + EbtImage3D, + EbtImage2DArray, + EbtImageCube, + EbtImage1D, + EbtImage1DArray, + EbtImage2DMS, + EbtImage2DMSArray, + EbtImageCubeArray, + EbtImageRect, + EbtImageBuffer, EbtIImage2D, - EbtUImage2D, - EbtImage3D, EbtIImage3D, + EbtIImage2DArray, + EbtIImageCube, + EbtIImage1D, + EbtIImage1DArray, + EbtIImage2DMS, + EbtIImage2DMSArray, + EbtIImageCubeArray, + EbtIImageRect, + EbtIImageBuffer, + EbtGuardUIntImageBegin, + EbtUImage2D = EbtGuardUIntImageBegin, EbtUImage3D, - EbtImage2DArray, - EbtIImage2DArray, EbtUImage2DArray, - EbtImageCube, - EbtIImageCube, EbtUImageCube, - EbtImage1D, // Desktop GLSL image types - EbtIImage1D, EbtUImage1D, - EbtImage1DArray, - EbtIImage1DArray, EbtUImage1DArray, - EbtImage2DMS, - EbtIImage2DMS, EbtUImage2DMS, - EbtImage2DMSArray, - EbtIImage2DMSArray, EbtUImage2DMSArray, - EbtImageCubeArray, - EbtIImageCubeArray, EbtUImageCubeArray, - EbtImageRect, - EbtIImageRect, EbtUImageRect, - EbtImageBuffer, - EbtIImageBuffer, EbtUImageBuffer, - EbtGuardImageEnd = EbtUImageBuffer, + EbtGuardUIntImageEnd = EbtUImageBuffer, + EbtGuardImageEnd = EbtGuardUIntImageEnd, // Subpass Input EbtGuardSubpassInputBegin, EbtSubpassInput = EbtGuardSubpassInputBegin, EbtISubpassInput, @@ -214,10 +216,15 @@ inline bool IsImage(TBasicType type) { return type >= EbtGuardImageBegin && type <= EbtGuardImageEnd; } +inline bool IsUIntImage(TBasicType type) +{ + return type >= EbtGuardUIntImageBegin && type <= EbtGuardUIntImageEnd; +} + inline bool IsAtomicCounter(TBasicType type) { return type == EbtAtomicCounter; } @@ -346,10 +353,31 @@ default: return false; } } +inline bool IsSamplerMS(TBasicType type) +{ + return IsSampler2DMS(type) || IsSampler2DMSArray(type); +} + +inline bool IsImageMS(TBasicType type) +{ + switch (type) + { + case EbtImage2DMS: + case EbtImage2DMSArray: + case EbtIImage2DMS: + case EbtIImage2DMSArray: + case EbtUImage2DMS: + case EbtUImage2DMSArray: + return true; + default: + return false; + } +} + inline bool IsFloatImage(TBasicType type) { switch (type) { case EbtImage1D: @@ -643,10 +671,79 @@ } return false; } +inline bool IsSampler1D(TBasicType type) +{ + switch (type) + { + case EbtSampler1D: + case EbtISampler1D: + case EbtUSampler1D: + case EbtSampler1DShadow: + return true; + case EbtSampler2D: + case EbtSamplerCube: + case EbtSampler3D: + case EbtISampler3D: + case EbtUSampler3D: + case EbtSamplerExternalOES: + case EbtSamplerExternal2DY2YEXT: + case EbtSampler2DRect: + case EbtSampler2DArray: + case EbtSampler2DMS: + case EbtSampler2DMSArray: + case EbtISampler2D: + case EbtISamplerCube: + case EbtISampler2DArray: + case EbtISampler2DMS: + case EbtISampler2DMSArray: + case EbtUSampler2D: + case EbtUSamplerCube: + case EbtUSampler2DArray: + case EbtUSampler2DMS: + case EbtUSampler2DMSArray: + case EbtSampler2DShadow: + case EbtSamplerCubeShadow: + case EbtSampler2DArrayShadow: + case EbtSampler1DArray: + case EbtSampler1DArrayShadow: + case EbtSamplerBuffer: + case EbtSamplerCubeArray: + case EbtSamplerCubeArrayShadow: + case EbtSampler2DRectShadow: + case EbtISampler1DArray: + case EbtISampler2DRect: + case EbtISamplerBuffer: + case EbtISamplerCubeArray: + case EbtUSampler1DArray: + case EbtUSampler2DRect: + case EbtUSamplerBuffer: + case EbtUSamplerCubeArray: + case EbtSamplerVideoWEBGL: + return false; + default: + ASSERT(!IsSampler(type)); + } + + return false; +} + +inline bool IsSamplerBuffer(TBasicType type) +{ + switch (type) + { + case EbtSamplerBuffer: + case EbtISamplerBuffer: + case EbtUSamplerBuffer: + return true; + default: + return false; + } +} + inline bool IsShadowSampler(TBasicType type) { switch (type) { case EbtSampler1DShadow: @@ -883,10 +980,23 @@ } return false; } +inline bool IsImageBuffer(TBasicType type) +{ + switch (type) + { + case EbtImageBuffer: + case EbtIImageBuffer: + case EbtUImageBuffer: + return true; + default: + return false; + } +} + inline bool IsInteger(TBasicType type) { return type == EbtInt || type == EbtUInt; } @@ -903,11 +1013,11 @@ // enum TQualifier { EvqTemporary, // For temporaries (within a function), read/write EvqGlobal, // For globals read/write - EvqConst, // User defined constants and non-output parameters in functions + EvqConst, // User defined constants EvqAttribute, // Readonly EvqVaryingIn, // readonly, fragment shaders only EvqVaryingOut, // vertex shaders only read/write EvqUniform, // Readonly, vertex and fragment EvqBuffer, // read/write, vertex, fragment and compute shader @@ -919,14 +1029,14 @@ EvqFragmentIn, // Fragment shader input EvqFragmentInOut, // EXT_shader_framebuffer_fetch qualifier // parameters - EvqIn, - EvqOut, - EvqInOut, - EvqConstReadOnly, + EvqParamIn, + EvqParamOut, + EvqParamInOut, + EvqParamConst, // built-ins read by vertex shader EvqInstanceID, EvqVertexID, @@ -943,13 +1053,11 @@ EvqHelperInvocation, // built-ins written by fragment shader EvqFragColor, EvqFragData, - - EvqFragDepth, // gl_FragDepth for ESSL300. - EvqFragDepthEXT, // gl_FragDepthEXT for ESSL100, EXT_frag_depth. + EvqFragDepth, // gl_FragDepth for ESSL300, or gl_FragDepthEXT for ESSL100, EXT_frag_depth. EvqSecondaryFragColorEXT, // EXT_blend_func_extended EvqSecondaryFragDataEXT, // EXT_blend_func_extended EvqViewIDOVR, // OVR_multiview @@ -1024,14 +1132,22 @@ EvqPerVertexOut, EvqPatchVerticesIn, EvqTessLevelOuter, EvqTessLevelInner, + // GLES ES 3.1 extension EXT_primitive_bounding_box + EvqBoundingBoxEXT, + EvqTessEvaluationIn, EvqTessEvaluationOut, EvqTessCoord, + // A specialization constant, which is not valid GLSL ES, but is there to support Vulkan output + // generation. In that case, TLayoutQualifier::location will contain the somewhat equivalent + // constant_id. + EvqSpecConst, + // end of list EvqLast }; inline bool IsQualifierUnspecified(TQualifier qualifier) @@ -1051,10 +1167,11 @@ case EvqVertexIn: case EvqTessControlIn: case EvqTessEvaluationIn: case EvqGeometryIn: case EvqFragmentIn: + case EvqPerVertexIn: case EvqAttribute: case EvqVaryingIn: case EvqSmoothIn: case EvqFlatIn: case EvqNoPerspectiveIn: @@ -1074,10 +1191,11 @@ case EvqVertexOut: case EvqTessControlOut: case EvqTessEvaluationOut: case EvqGeometryOut: case EvqFragmentOut: + case EvqPerVertexOut: case EvqVaryingOut: case EvqSmoothOut: case EvqFlatOut: case EvqNoPerspectiveOut: case EvqCentroidOut: @@ -1099,10 +1217,12 @@ case EvqVertexOut: case EvqTessControlIn: case EvqTessControlOut: case EvqTessEvaluationIn: case EvqTessEvaluationOut: + case EvqPatchIn: + case EvqPatchOut: case EvqGeometryIn: case EvqGeometryOut: case EvqFragmentIn: return true; default: @@ -1123,27 +1243,33 @@ EiifRGBA32I, EiifRGBA16I, EiifRGBA8I, EiifR32I, EiifRGBA8, - EiifRGBA8_SNORM + EiifRGBA8_SNORM, + + EiifLast = EiifRGBA8_SNORM, }; enum TLayoutMatrixPacking { EmpUnspecified, EmpRowMajor, - EmpColumnMajor + EmpColumnMajor, + + EmpLast = EmpColumnMajor, }; enum TLayoutBlockStorage { EbsUnspecified, EbsShared, EbsPacked, EbsStd140, - EbsStd430 + EbsStd430, + + EbsLast = EbsStd430, }; enum TYuvCscStandardEXT { EycsUndefined, @@ -1339,13 +1465,11 @@ UNREACHABLE(); return "dimension out of bounds"; } } -// -// This is just for debug and error message print out, carried along with the definitions above. -// +// Used for GLSL generation, debugging and error messages. inline const char *getQualifierString(TQualifier q) { // clang-format off switch(q) { @@ -1360,14 +1484,14 @@ case EvqPatch: return "patch"; case EvqVertexIn: return "in"; case EvqFragmentOut: return "out"; case EvqVertexOut: return "out"; case EvqFragmentIn: return "in"; - case EvqIn: return "in"; - case EvqOut: return "out"; - case EvqInOut: return "inout"; - case EvqConstReadOnly: return "const"; + case EvqParamIn: return "in"; + case EvqParamOut: return "out"; + case EvqParamInOut: return "inout"; + case EvqParamConst: return "const"; case EvqInstanceID: return "InstanceID"; case EvqVertexID: return "VertexID"; case EvqPosition: return "Position"; case EvqPointSize: return "PointSize"; case EvqDrawID: return "DrawID"; @@ -1375,11 +1499,10 @@ case EvqFrontFacing: return "FrontFacing"; case EvqHelperInvocation: return "HelperInvocation"; case EvqPointCoord: return "PointCoord"; case EvqFragColor: return "FragColor"; case EvqFragData: return "FragData"; - case EvqFragDepthEXT: return "FragDepth"; case EvqFragDepth: return "FragDepth"; case EvqSecondaryFragColorEXT: return "SecondaryFragColorEXT"; case EvqSecondaryFragDataEXT: return "SecondaryFragDataEXT"; case EvqViewIDOVR: return "ViewIDOVR"; case EvqViewportIndex: return "ViewportIndex"; @@ -1415,10 +1538,11 @@ case EvqPrimitiveIDIn: return "gl_PrimitiveIDIn"; case EvqInvocationID: return "gl_InvocationID"; case EvqPrimitiveID: return "gl_PrimitiveID"; case EvqPrecise: return "precise"; case EvqClipDistance: return "ClipDistance"; + case EvqCullDistance: return "CullDistance"; case EvqSample: return "sample"; case EvqSampleIn: return "sample in"; case EvqSampleOut: return "sample out"; case EvqSampleID: return "SampleID"; case EvqSamplePosition: return "SamplePosition"; @@ -1431,13 +1555,15 @@ case EvqTessControlOut: return "out"; case EvqPerVertexOut: return "gl_out"; case EvqPatchVerticesIn: return "PatchVerticesIn"; case EvqTessLevelOuter: return "TessLevelOuter"; case EvqTessLevelInner: return "TessLevelInner"; + case EvqBoundingBoxEXT: return "BoundingBoxEXT"; case EvqTessEvaluationIn: return "in"; case EvqTessEvaluationOut: return "out"; case EvqTessCoord: return "TessCoord"; + case EvqSpecConst: return "const"; default: UNREACHABLE(); return "unknown qualifier"; } // clang-format on } diff --git a/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.cpp b/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.cpp --- a/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.cpp +++ b/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.cpp @@ -4,11 +4,10 @@ // found in the LICENSE file. // #include "compiler/translator/BuiltInFunctionEmulator.h" #include "angle_gl.h" -#include "compiler/translator/StaticType.h" #include "compiler/translator/Symbol.h" #include "compiler/translator/tree_util/IntermTraverse.h" namespace sh { @@ -31,13 +30,13 @@ return true; } bool visitAggregate(Visit visit, TIntermAggregate *node) override { - // Here we handle all the built-in functions mapped to ops, not just the ones that are - // currently identified as problematic. - if (node->isConstructor() || node->isFunctionCall()) + // Here we handle all the math built-in functions, not just the ones that are currently + // identified as problematic. + if (!BuiltInGroup::IsMath(node->getOp())) { return true; } bool needToEmulate = mEmulator.setFunctionCalled(node->getFunction()); if (needToEmulate) diff --git a/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp b/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp @@ -5,11 +5,10 @@ // #include "compiler/translator/BuiltinsWorkaroundGLSL.h" #include "angle_gl.h" -#include "compiler/translator/StaticType.h" #include "compiler/translator/Symbol.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/BuiltIn.h" namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/CodeGen.cpp b/gfx/angle/checkout/src/compiler/translator/CodeGen.cpp --- a/gfx/angle/checkout/src/compiler/translator/CodeGen.cpp +++ b/gfx/angle/checkout/src/compiler/translator/CodeGen.cpp @@ -19,12 +19,16 @@ #ifdef ANGLE_ENABLE_VULKAN # include "compiler/translator/TranslatorVulkan.h" #endif // ANGLE_ENABLE_VULKAN #ifdef ANGLE_ENABLE_METAL +# include "compiler/translator/TranslatorMetalDirect.h" +#endif // ANGLE_ENABLE_METAL + +#ifdef ANGLE_ENABLE_METAL_SPIRV # include "compiler/translator/TranslatorMetal.h" -#endif // ANGLE_ENABLE_METAL +#endif // ANGLE_ENABLE_METAL_SPIRV #include "compiler/translator/util.h" namespace sh { @@ -62,15 +66,21 @@ { return new TranslatorVulkan(type, spec); } #endif // ANGLE_ENABLE_VULKAN -#ifdef ANGLE_ENABLE_METAL +#ifdef ANGLE_ENABLE_METAL_SPIRV if (IsOutputMetal(output)) { return new TranslatorMetal(type, spec); } +#endif +#ifdef ANGLE_ENABLE_METAL + if (IsOutputMetalDirect(output)) + { + return new TranslatorMetalDirect(type, spec, output); + } #endif // ANGLE_ENABLE_METAL // Unsupported compiler or unknown format. Return nullptr per the sh::ConstructCompiler API. return nullptr; } diff --git a/gfx/angle/checkout/src/compiler/translator/CollectVariables.cpp b/gfx/angle/checkout/src/compiler/translator/CollectVariables.cpp --- a/gfx/angle/checkout/src/compiler/translator/CollectVariables.cpp +++ b/gfx/angle/checkout/src/compiler/translator/CollectVariables.cpp @@ -208,11 +208,10 @@ bool mHelperInvocationAdded; bool mFragCoordAdded; bool mLastFragDataAdded; bool mFragColorAdded; bool mFragDataAdded; - bool mFragDepthEXTAdded; bool mFragDepthAdded; bool mSecondaryFragColorEXTAdded; bool mSecondaryFragDataEXTAdded; bool mSampleIDAdded; bool mSamplePositionAdded; @@ -236,10 +235,11 @@ // Tessellation Shader builtins bool mPatchVerticesInAdded; bool mTessLevelOuterAdded; bool mTessLevelInnerAdded; + bool mBoundingBoxEXTAdded; bool mTessCoordAdded; const int mTessControlShaderOutputVertices; ShHashFunction64 mHashFunction; @@ -291,11 +291,10 @@ mHelperInvocationAdded(false), mFragCoordAdded(false), mLastFragDataAdded(false), mFragColorAdded(false), mFragDataAdded(false), - mFragDepthEXTAdded(false), mFragDepthAdded(false), mSecondaryFragColorEXTAdded(false), mSecondaryFragDataEXTAdded(false), mSampleIDAdded(false), mSamplePositionAdded(false), @@ -309,10 +308,11 @@ mLayerAdded(false), mSharedVariableAdded(false), mPatchVerticesInAdded(false), mTessLevelOuterAdded(false), mTessLevelInnerAdded(false), + mBoundingBoxEXTAdded(false), mTessCoordAdded(false), mTessControlShaderOutputVertices(tessControlShaderOutputVertices), mHashFunction(hashFunction), mShaderType(shaderType), mExtensionBehavior(extensionBehavior), @@ -332,12 +332,13 @@ info->name = variable.name().data(); info->mappedName = variable.name().data(); bool isShaderIOBlock = IsShaderIoBlock(type.getQualifier()) && type.getInterfaceBlock() != nullptr; - bool isPatch = - type.getQualifier() == EvqTessLevelInner || type.getQualifier() == EvqTessLevelOuter; + bool isPatch = type.getQualifier() == EvqTessLevelInner || + type.getQualifier() == EvqTessLevelOuter || + type.getQualifier() == EvqBoundingBoxEXT; setFieldOrVariableProperties(type, true, isShaderIOBlock, isPatch, info); } void CollectVariablesTraverser::recordBuiltInVaryingUsed(const TVariable &variable, @@ -506,33 +507,10 @@ mUniforms->push_back(info); mNumSamplesAdded = true; } } - else if (symbolName == "gl_LastFragData" && qualifier == EvqGlobal) - { - // If gl_LastFragData is redeclared, the qualifier of redeclaration is EvqGlobal, and it - // makes "gl_LastFragData" can't be collected in this function. That's because - // "gl_LastFragData" is redeclared like below. E.g., "highp vec4 - // gl_LastFragData[gl_MaxDrawBuffers];" So, if gl_LastFragData can be parsed with a correct - // qualifier in PasreContext.cpp, this code isn't needed. - if (!mLastFragDataAdded) - { - ShaderVariable info; - - const TType &type = symbol->getType(); - - info.name = symbolName.data(); - info.mappedName = symbolName.data(); - setFieldOrVariableProperties(type, true, false, false, &info); - info.active = true; - - mInputVaryings->push_back(info); - mLastFragDataAdded = true; - } - return; - } else { switch (qualifier) { case EvqAttribute: @@ -553,11 +531,11 @@ { var = FindVariable(symbolName, mUniforms); } // It's an internal error to reference an undefined user uniform - ASSERT(!symbolName.beginsWith("gl_") || var); + ASSERT(!gl::IsBuiltInName(symbolName.data()) || var); } break; case EvqBuffer: { var = @@ -616,26 +594,11 @@ return; case EvqFragColor: recordBuiltInFragmentOutputUsed(symbol->variable(), &mFragColorAdded); return; case EvqFragData: - if (!mFragDataAdded) - { - ShaderVariable info; - setBuiltInInfoFromSymbol(symbol->variable(), &info); - if (!IsExtensionEnabled(mExtensionBehavior, TExtension::EXT_draw_buffers)) - { - ASSERT(info.arraySizes.size() == 1u); - info.arraySizes.back() = 1u; - } - info.active = true; - mOutputVariables->push_back(info); - mFragDataAdded = true; - } - return; - case EvqFragDepthEXT: - recordBuiltInFragmentOutputUsed(symbol->variable(), &mFragDepthEXTAdded); + recordBuiltInFragmentOutputUsed(symbol->variable(), &mFragDataAdded); return; case EvqFragDepth: recordBuiltInFragmentOutputUsed(symbol->variable(), &mFragDepthAdded); return; case EvqSecondaryFragColorEXT: @@ -687,11 +650,18 @@ recordBuiltInVaryingUsed(symbol->variable(), &mSharedVariableAdded, mSharedVariables); } break; case EvqClipDistance: - recordBuiltInVaryingUsed(symbol->variable(), &mClipDistanceAdded, mOutputVaryings); + recordBuiltInVaryingUsed( + symbol->variable(), &mClipDistanceAdded, + mShaderType == GL_FRAGMENT_SHADER ? mInputVaryings : mOutputVaryings); + return; + case EvqCullDistance: + recordBuiltInVaryingUsed( + symbol->variable(), &mCullDistanceAdded, + mShaderType == GL_FRAGMENT_SHADER ? mInputVaryings : mOutputVaryings); return; case EvqSampleID: recordBuiltInVaryingUsed(symbol->variable(), &mSampleIDAdded, mInputVaryings); return; case EvqSamplePosition: @@ -701,13 +671,10 @@ recordBuiltInVaryingUsed(symbol->variable(), &mSampleMaskInAdded, mInputVaryings); return; case EvqSampleMask: recordBuiltInFragmentOutputUsed(symbol->variable(), &mSampleMaskAdded); return; - case EvqCullDistance: - recordBuiltInVaryingUsed(symbol->variable(), &mCullDistanceAdded, mOutputVaryings); - return; case EvqPatchVerticesIn: recordBuiltInVaryingUsed(symbol->variable(), &mPatchVerticesInAdded, mInputVaryings); break; case EvqTessCoord: @@ -737,10 +704,14 @@ ASSERT(mShaderType == GL_TESS_EVALUATION_SHADER); recordBuiltInVaryingUsed(symbol->variable(), &mTessLevelInnerAdded, mInputVaryings); } break; + case EvqBoundingBoxEXT: + recordBuiltInVaryingUsed(symbol->variable(), &mBoundingBoxEXTAdded, + mOutputVaryings); + break; default: break; } } if (var) diff --git a/gfx/angle/checkout/src/compiler/translator/Common.h b/gfx/angle/checkout/src/compiler/translator/Common.h --- a/gfx/angle/checkout/src/compiler/translator/Common.h +++ b/gfx/angle/checkout/src/compiler/translator/Common.h @@ -29,10 +29,12 @@ int first_line; int last_file; int last_line; }; +constexpr TSourceLoc kNoSourceLoc{-1, -1, -1, -1}; + // // Put POOL_ALLOCATOR_NEW_DELETE in base classes to make them use this scheme. // #define POOL_ALLOCATOR_NEW_DELETE \ void *operator new(size_t s) { return GetGlobalPoolAllocator()->allocate(s); } \ diff --git a/gfx/angle/checkout/src/compiler/translator/Compiler.h b/gfx/angle/checkout/src/compiler/translator/Compiler.h --- a/gfx/angle/checkout/src/compiler/translator/Compiler.h +++ b/gfx/angle/checkout/src/compiler/translator/Compiler.h @@ -24,20 +24,22 @@ #include "compiler/translator/HashNames.h" #include "compiler/translator/InfoSink.h" #include "compiler/translator/Pragma.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/ValidateAST.h" -#include "third_party/compiler/ArrayBoundsClamper.h" namespace sh { class TCompiler; class TParseContext; #ifdef ANGLE_ENABLE_HLSL class TranslatorHLSL; #endif // ANGLE_ENABLE_HLSL +#ifdef ANGLE_ENABLE_METAL +class TranslatorMetalDirect; +#endif // ANGLE_ENABLE_METAL using SpecConstUsageBits = angle::PackedEnumBitSet; // // Helper function to check if the shader type is GLSL. @@ -64,17 +66,25 @@ virtual ~TShHandleBase(); virtual TCompiler *getAsCompiler() { return 0; } #ifdef ANGLE_ENABLE_HLSL virtual TranslatorHLSL *getAsTranslatorHLSL() { return 0; } #endif // ANGLE_ENABLE_HLSL +#ifdef ANGLE_ENABLE_METAL + virtual TranslatorMetalDirect *getAsTranslatorMetalDirect() { return nullptr; } +#endif // ANGLE_ENABLE_METAL protected: // Memory allocator. Allocates and tracks memory required by the compiler. // Deallocates all memory when compiler is destructed. angle::PoolAllocator allocator; }; +struct TFunctionMetadata +{ + bool used = false; +}; + // // The base class for the machine dependent compiler to derive from // for managing object code from the compile. // class TCompiler : public TShHandleBase @@ -129,15 +139,20 @@ TSymbolTable &getSymbolTable() { return mSymbolTable; } ShShaderSpec getShaderSpec() const { return mShaderSpec; } ShShaderOutput getOutputType() const { return mOutputType; } const std::string &getBuiltInResourcesString() const { return mBuiltInResourcesString; } + bool isHighPrecisionSupported() const; + bool shouldRunLoopAndIndexingValidation(ShCompileOptions compileOptions) const; + bool shouldLimitTypeSizes() const; // Get the resources set by InitBuiltInSymbolTable const ShBuiltInResources &getResources() const; + const TPragma &getPragma() const { return mPragma; } + int getGeometryShaderMaxVertices() const { return mGeometryShaderMaxVertices; } int getGeometryShaderInvocations() const { return mGeometryShaderInvocations; } TLayoutPrimitiveType getGeometryShaderInputPrimitiveType() const { return mGeometryShaderInputPrimitiveType; @@ -165,15 +180,27 @@ TLayoutTessEvaluationType getTessEvaluationShaderInputPointType() const { return mTessEvaluationShaderInputPointType; } + bool hasAnyPreciseType() const { return mHasAnyPreciseType; } + unsigned int getSharedMemorySize() const; sh::GLenum getShaderType() const { return mShaderType; } + // Validate the AST and produce errors if it is inconsistent. bool validateAST(TIntermNode *root); + // Some transformations may need to temporarily disable validation until they are complete. A + // set of disable/enable helpers are used for this purpose. + bool disableValidateFunctionCall(); + void restoreValidateFunctionCall(bool enable); + bool disableValidateVariableReferences(); + void restoreValidateVariableReferences(bool enable); + // When the AST is post-processed (such as to determine precise-ness of intermediate nodes), + // it's expected to no longer transform. + void enableValidateNoMoreTransformations(); protected: // Add emulated functions to the built-in function emulator. virtual void initBuiltInFunctionEmulator(BuiltInFunctionEmulator *emu, ShCompileOptions compileOptions) @@ -183,27 +210,17 @@ ShCompileOptions compileOptions, PerformanceDiagnostics *perfDiagnostics) = 0; // Get built-in extensions with default behavior. const TExtensionBehavior &getExtensionBehavior() const; const char *getSourcePath() const; - const TPragma &getPragma() const { return mPragma; } - void writePragma(ShCompileOptions compileOptions); // Relies on collectVariables having been called. bool isVaryingDefined(const char *varyingName); - const ArrayBoundsClamper &getArrayBoundsClamper() const; - ShArrayIndexClampingStrategy getArrayIndexClampingStrategy() const; const BuiltInFunctionEmulator &getBuiltInFunctionEmulator() const; virtual bool shouldFlattenPragmaStdglInvariantAll() = 0; virtual bool shouldCollectVariables(ShCompileOptions compileOptions); - // If precision emulation needed, set isNeeded to true and emulate precision for given - // outputLanguage, returning false if that fails, else returning true. - bool emulatePrecisionIfNeeded(TIntermBlock *root, - TInfoSinkBase &sink, - bool *isNeeded, - const ShShaderOutput outputLanguage); bool wereVariablesCollected() const; std::vector mAttributes; std::vector mOutputVariables; std::vector mUniforms; @@ -252,12 +269,11 @@ bool mVariablesCollected; bool mGLPositionInitialized; // Removes unused function declarations and prototypes from the AST - class UnusedPredicate; - void pruneUnusedFunctions(TIntermBlock *root); + bool pruneUnusedFunctions(TIntermBlock *root); TIntermBlock *compileTreeImpl(const char *const shaderStrings[], size_t numStrings, const ShCompileOptions compileOptions); @@ -275,29 +291,22 @@ sh::GLenum mShaderType; ShShaderSpec mShaderSpec; ShShaderOutput mOutputType; - struct FunctionMetadata - { - FunctionMetadata() : used(false) {} - bool used; - }; - CallDAG mCallDag; - std::vector mFunctionMetadata; + std::vector mFunctionMetadata; ShBuiltInResources mResources; std::string mBuiltInResourcesString; // Built-in symbol table for the given language, spec, and resources. // It is preserved from compile-to-compile. TSymbolTable mSymbolTable; // Built-in extensions with default behavior. TExtensionBehavior mExtensionBehavior; - ArrayBoundsClamper mArrayBoundsClamper; BuiltInFunctionEmulator mBuiltInFunctionEmulator; // Results of compilation. int mShaderVersion; TInfoSink mInfoSink; // Output sink. @@ -326,10 +335,12 @@ TLayoutTessEvaluationType mTessEvaluationShaderInputPrimitiveType; TLayoutTessEvaluationType mTessEvaluationShaderInputVertexSpacingType; TLayoutTessEvaluationType mTessEvaluationShaderInputOrderingType; TLayoutTessEvaluationType mTessEvaluationShaderInputPointType; + bool mHasAnyPreciseType; + // name hashing. NameMap mNameMap; TPragma mPragma; @@ -346,16 +357,8 @@ // above machine independent information. // TCompiler *ConstructCompiler(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output); void DeleteCompiler(TCompiler *); -void EmitEarlyFragmentTestsGLSL(const TCompiler &, TInfoSinkBase &sink); -void EmitWorkGroupSizeGLSL(const TCompiler &, TInfoSinkBase &sink); -void EmitMultiviewGLSL(const TCompiler &, - const ShCompileOptions &, - const TExtension, - const TBehavior, - TInfoSinkBase &sink); - } // namespace sh #endif // COMPILER_TRANSLATOR_COMPILER_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/Compiler.cpp b/gfx/angle/checkout/src/compiler/translator/Compiler.cpp --- a/gfx/angle/checkout/src/compiler/translator/Compiler.cpp +++ b/gfx/angle/checkout/src/compiler/translator/Compiler.cpp @@ -19,18 +19,19 @@ #include "compiler/translator/ValidateBarrierFunctionCall.h" #include "compiler/translator/ValidateClipCullDistance.h" #include "compiler/translator/ValidateLimitations.h" #include "compiler/translator/ValidateMaxParameters.h" #include "compiler/translator/ValidateOutputs.h" +#include "compiler/translator/ValidateTypeSizeLimitations.h" #include "compiler/translator/ValidateVaryingLocations.h" #include "compiler/translator/VariablePacker.h" +#include "compiler/translator/tree_ops/ClampIndirectIndices.h" #include "compiler/translator/tree_ops/ClampPointSize.h" #include "compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.h" #include "compiler/translator/tree_ops/DeferGlobalInitializers.h" #include "compiler/translator/tree_ops/EmulateGLFragColorBroadcast.h" #include "compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h" -#include "compiler/translator/tree_ops/EmulatePrecision.h" #include "compiler/translator/tree_ops/FoldExpressions.h" #include "compiler/translator/tree_ops/ForcePrecisionQualifier.h" #include "compiler/translator/tree_ops/InitializeVariables.h" #include "compiler/translator/tree_ops/PruneEmptyCases.h" #include "compiler/translator/tree_ops/PruneNoOps.h" @@ -40,30 +41,64 @@ #include "compiler/translator/tree_ops/RemoveUnreferencedVariables.h" #include "compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h" #include "compiler/translator/tree_ops/SeparateDeclarations.h" #include "compiler/translator/tree_ops/SimplifyLoopConditions.h" #include "compiler/translator/tree_ops/SplitSequenceOperator.h" +#include "compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h" +#include "compiler/translator/tree_ops/apple/RewriteDoWhile.h" +#include "compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h" #include "compiler/translator/tree_ops/gl/ClampFragDepth.h" #include "compiler/translator/tree_ops/gl/RegenerateStructNames.h" #include "compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.h" #include "compiler/translator/tree_ops/gl/UseInterfaceBlockFields.h" -#include "compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h" -#include "compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h" -#include "compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h" -#include "compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h" #include "compiler/translator/tree_ops/vulkan/EarlyFragmentTestsOptimization.h" #include "compiler/translator/tree_util/BuiltIn.h" #include "compiler/translator/tree_util/IntermNodePatternMatcher.h" #include "compiler/translator/tree_util/ReplaceShadowingVariables.h" #include "compiler/translator/util.h" -#include "third_party/compiler/ArrayBoundsClamper.h" namespace sh { namespace { +// Helper that returns if a top-level node is unused. If it's a function, the function prototype is +// returned as well. +bool IsTopLevelNodeUnusedFunction(const CallDAG &callDag, + const std::vector &metadata, + TIntermNode *node, + const TFunction **functionOut) +{ + const TIntermFunctionPrototype *asFunctionPrototype = node->getAsFunctionPrototypeNode(); + const TIntermFunctionDefinition *asFunctionDefinition = node->getAsFunctionDefinition(); + + *functionOut = nullptr; + + if (asFunctionDefinition) + { + *functionOut = asFunctionDefinition->getFunction(); + } + else if (asFunctionPrototype) + { + *functionOut = asFunctionPrototype->getFunction(); + } + if (*functionOut == nullptr) + { + return false; + } + + size_t callDagIndex = callDag.findIndex((*functionOut)->uniqueId()); + if (callDagIndex == CallDAG::InvalidIndex) + { + // This happens only for unimplemented prototypes which are thus unused + ASSERT(asFunctionPrototype); + return true; + } + + ASSERT(callDagIndex < metadata.size()); + return !metadata[callDagIndex].used; +} #if defined(ANGLE_ENABLE_FUZZER_CORPUS_OUTPUT) void DumpFuzzerCase(char const *const *shaderStrings, size_t numStrings, uint32_t type, @@ -308,24 +343,38 @@ mTessControlShaderOutputVertices(0), mTessEvaluationShaderInputPrimitiveType(EtetUndefined), mTessEvaluationShaderInputVertexSpacingType(EtetUndefined), mTessEvaluationShaderInputOrderingType(EtetUndefined), mTessEvaluationShaderInputPointType(EtetUndefined), + mHasAnyPreciseType(false), mCompileOptions(0) {} TCompiler::~TCompiler() {} +bool TCompiler::isHighPrecisionSupported() const +{ + return mShaderVersion > 100 || mShaderType != GL_FRAGMENT_SHADER || + mResources.FragmentPrecisionHigh == 1; +} + bool TCompiler::shouldRunLoopAndIndexingValidation(ShCompileOptions compileOptions) const { // If compiling an ESSL 1.00 shader for WebGL, or if its been requested through the API, // validate loop and indexing as well (to verify that the shader only uses minimal functionality // of ESSL 1.00 as in Appendix A of the spec). return (IsWebGLBasedSpec(mShaderSpec) && mShaderVersion == 100) || (compileOptions & SH_VALIDATE_LOOP_INDEXING) != 0; } +bool TCompiler::shouldLimitTypeSizes() const +{ + // WebGL shaders limit the size of variables' types in shaders, + // including arrays, structs and interface blocks. + return IsWebGLBasedSpec(mShaderSpec); +} + bool TCompiler::Init(const ShBuiltInResources &resources) { SetGlobalPoolAllocator(&allocator); // Generate built-in symbol table. @@ -334,11 +383,10 @@ mResources = resources; setResourceString(); InitExtensionBehavior(resources, mExtensionBehavior); - mArrayBoundsClamper.SetClampingStrategy(resources.ArrayIndexClampingStrategy); return true; } TIntermBlock *TCompiler::compileTreeForTesting(const char *const shaderStrings[], size_t numStrings, @@ -458,12 +506,14 @@ "Geometry shader is not supported in this shader version."); return false; } else if (mShaderVersion == 310) { - if (!parseContext->checkCanUseExtension(sh::TSourceLoc(), - TExtension::EXT_geometry_shader)) + if (!parseContext->checkCanUseOneOfExtensions( + sh::TSourceLoc(), + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}})) { return false; } } break; @@ -505,10 +555,12 @@ mComputeShaderLocalSizeDeclared = parseContext.isComputeShaderLocalSizeDeclared(); mComputeShaderLocalSize = parseContext.getComputeShaderLocalSize(); mNumViews = parseContext.getNumViews(); + mHasAnyPreciseType = parseContext.hasAnyPreciseType(); + if (mShaderType == GL_GEOMETRY_SHADER_EXT) { mGeometryShaderInputPrimitiveType = parseContext.getGeometryShaderInputPrimitiveType(); mGeometryShaderOutputPrimitiveType = parseContext.getGeometryShaderOutputPrimitiveType(); mGeometryShaderMaxVertices = parseContext.getGeometryShaderMaxVertices(); @@ -548,10 +600,11 @@ bool valid = ValidateAST(root, &mDiagnostics, mValidateASTOptions); #if defined(ANGLE_ENABLE_ASSERTS) if (!valid) { + OutputTree(root, mInfoSink.info); fprintf(stderr, "AST validation error(s):\n%s\n", mInfoSink.info.c_str()); } #endif // In debug, assert validation. In release, validation errors will be returned back to the // application as internal ANGLE errors. @@ -560,15 +613,50 @@ return valid; } return true; } +bool TCompiler::disableValidateFunctionCall() +{ + bool wasEnabled = mValidateASTOptions.validateFunctionCall; + mValidateASTOptions.validateFunctionCall = false; + return wasEnabled; +} + +void TCompiler::restoreValidateFunctionCall(bool enable) +{ + ASSERT(!mValidateASTOptions.validateFunctionCall); + mValidateASTOptions.validateFunctionCall = enable; +} + +bool TCompiler::disableValidateVariableReferences() +{ + bool wasEnabled = mValidateASTOptions.validateVariableReferences; + mValidateASTOptions.validateVariableReferences = false; + return wasEnabled; +} + +void TCompiler::restoreValidateVariableReferences(bool enable) +{ + ASSERT(!mValidateASTOptions.validateVariableReferences); + mValidateASTOptions.validateVariableReferences = enable; +} + +void TCompiler::enableValidateNoMoreTransformations() +{ + mValidateASTOptions.validateNoMoreTransformations = true; +} + bool TCompiler::checkAndSimplifyAST(TIntermBlock *root, const TParseContext &parseContext, ShCompileOptions compileOptions) { mValidateASTOptions = {}; + + // Desktop GLSL shaders don't have precision, so don't expect them to be specified. + mValidateASTOptions.validatePrecision = !IsDesktopGLSpec(mShaderSpec); + if (!validateAST(root)) { return false; } @@ -582,10 +670,15 @@ !ValidateLimitations(root, mShaderType, &mSymbolTable, &mDiagnostics)) { return false; } + if (shouldLimitTypeSizes() && !ValidateTypeSizeLimitations(root, &mSymbolTable, &mDiagnostics)) + { + return false; + } + if (!ValidateFragColorAndFragData(mShaderType, mShaderVersion, mSymbolTable, &mDiagnostics)) { return false; } @@ -596,16 +689,23 @@ return false; } // Folding should only be able to generate warnings. ASSERT(mDiagnostics.numErrors() == 0); + // Validate no barrier() after return before prunning it in |PruneNoOps()| below. + if (mShaderType == GL_TESS_CONTROL_SHADER && !ValidateBarrierFunctionCall(root, &mDiagnostics)) + { + return false; + } + // We prune no-ops to work around driver bugs and to keep AST processing and output simple. // The following kinds of no-ops are pruned: // 1. Empty declarations "int;". // 2. Literal statements: "1.0;". The ESSL output doesn't define a default precision // for float, so float literal statements would end up with no precision which is // invalid ESSL. + // 3. Any unreachable statement after a discard, return, break or continue. // After this empty declarations are not allowed in the AST. if (!PruneNoOps(this, root, &mSymbolTable)) { return false; } @@ -613,17 +713,31 @@ // We need to generate globals early if we have non constant initializers enabled bool initializeLocalsAndGlobals = (compileOptions & SH_INITIALIZE_UNINITIALIZED_LOCALS) != 0 && !IsOutputHLSL(getOutputType()); bool canUseLoopsToInitialize = (compileOptions & SH_DONT_USE_LOOPS_TO_INITIALIZE_VARIABLES) == 0; - bool highPrecisionSupported = mShaderVersion > 100 || mShaderType != GL_FRAGMENT_SHADER || - mResources.FragmentPrecisionHigh == 1; + bool highPrecisionSupported = isHighPrecisionSupported(); bool enableNonConstantInitializers = IsExtensionEnabled( mExtensionBehavior, TExtension::EXT_shader_non_constant_global_initializers); + // forceDeferGlobalInitializers is needed for MSL + // to convert a non-const global. For example: + // + // int someGlobal = 123; + // + // to + // + // int someGlobal; + // void main() { + // someGlobal = 123; + // + // This is because MSL doesn't allow statically initialized globals. + bool forceDeferGlobalInitializers = getOutputType() == SH_MSL_METAL_OUTPUT; + if (enableNonConstantInitializers && !DeferGlobalInitializers(this, root, initializeLocalsAndGlobals, canUseLoopsToInitialize, - highPrecisionSupported, &mSymbolTable)) + highPrecisionSupported, forceDeferGlobalInitializers, + &mSymbolTable)) { return false; } // Create the function DAG and check there is no recursion @@ -643,11 +757,15 @@ if (!tagUsedFunctions()) { return false; } - pruneUnusedFunctions(root); + if (!pruneUnusedFunctions(root)) + { + return false; + } + if (IsSpecWithFunctionBodyNewScope(mShaderSpec, mShaderVersion)) { if (!ReplaceShadowingVariables(this, root, &mSymbolTable)) { return false; @@ -663,23 +781,10 @@ !ValidateOutputs(root, getExtensionBehavior(), mResources.MaxDrawBuffers, &mDiagnostics)) { return false; } - if (mShaderType == GL_TESS_CONTROL_SHADER && !ValidateBarrierFunctionCall(root, &mDiagnostics)) - { - return false; - } - - // Fail compilation if precision emulation not supported. - if (getResources().WEBGL_debug_shader_precision && getPragma().debugShaderPrecision && - !EmulatePrecision::SupportedInLanguage(mOutputType)) - { - mDiagnostics.globalError("Precision emulation not supported for this output type."); - return false; - } - if (parseContext.isExtensionEnabled(TExtension::EXT_clip_cull_distance)) { if (!ValidateClipCullDistance(root, &mDiagnostics, mResources.MaxCombinedClipAndCullDistances)) { @@ -688,11 +793,14 @@ } // Clamping uniform array bounds needs to happen after validateLimitations pass. if ((compileOptions & SH_CLAMP_INDIRECT_ARRAY_BOUNDS) != 0) { - mArrayBoundsClamper.MarkIndirectArrayBoundsForClamping(root); + if (!ClampIndirectIndices(this, root, &mSymbolTable)) + { + return false; + } } if ((compileOptions & SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW) != 0 && (parseContext.isExtensionEnabled(TExtension::OVR_multiview2) || parseContext.isExtensionEnabled(TExtension::OVR_multiview)) && @@ -792,11 +900,11 @@ return false; } // Note that separate declarations need to be run before other AST transformations that // generate new statements from expressions. - if (!SeparateDeclarations(this, root)) + if (!SeparateDeclarations(this, root, &getSymbolTable())) { return false; } mValidateASTOptions.validateMultiDeclarations = true; @@ -827,20 +935,18 @@ { return false; } // Built-in function emulation needs to happen after validateLimitations pass. - // TODO(jmadill): Remove global pool allocator. GetGlobalPoolAllocator()->lock(); initBuiltInFunctionEmulator(&mBuiltInFunctionEmulator, compileOptions); GetGlobalPoolAllocator()->unlock(); mBuiltInFunctionEmulator.markBuiltInFunctionsForEmulation(root); if ((compileOptions & SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS) != 0) { - if (!ScalarizeVecAndMatConstructorArgs(this, root, mShaderType, highPrecisionSupported, - &mSymbolTable)) + if (!ScalarizeVecAndMatConstructorArgs(this, root, &mSymbolTable)) { return false; } } @@ -924,11 +1030,12 @@ // Exception: if EXT_shader_non_constant_global_initializers is enabled, we must generate global // initializers before we generate the DAG, since initializers may call functions which must not // be optimized out if (!enableNonConstantInitializers && !DeferGlobalInitializers(this, root, initializeLocalsAndGlobals, canUseLoopsToInitialize, - highPrecisionSupported, &mSymbolTable)) + highPrecisionSupported, forceDeferGlobalInitializers, + &mSymbolTable)) { return false; } if (initializeLocalsAndGlobals) @@ -981,18 +1088,10 @@ { return false; } } - if ((compileOptions & SH_REWRITE_VECTOR_SCALAR_ARITHMETIC) != 0) - { - if (!VectorizeVectorScalarArithmetic(this, root, &getSymbolTable())) - { - return false; - } - } - if ((compileOptions & SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR) != 0) { if (!sh::RemoveDynamicIndexingOfSwizzledVector(this, root, &getSymbolTable(), nullptr)) { return false; @@ -1132,19 +1231,21 @@ << ":MaxExpressionComplexity:" << mResources.MaxExpressionComplexity << ":MaxCallStackDepth:" << mResources.MaxCallStackDepth << ":MaxFunctionParameters:" << mResources.MaxFunctionParameters << ":EXT_blend_func_extended:" << mResources.EXT_blend_func_extended << ":EXT_frag_depth:" << mResources.EXT_frag_depth + << ":EXT_primitive_bounding_box:" << mResources.EXT_primitive_bounding_box << ":EXT_shader_texture_lod:" << mResources.EXT_shader_texture_lod << ":EXT_shader_framebuffer_fetch:" << mResources.EXT_shader_framebuffer_fetch << ":EXT_shader_framebuffer_fetch_non_coherent:" << mResources.EXT_shader_framebuffer_fetch_non_coherent << ":NV_shader_framebuffer_fetch:" << mResources.NV_shader_framebuffer_fetch << ":ARM_shader_framebuffer_fetch:" << mResources.ARM_shader_framebuffer_fetch << ":OVR_multiview2:" << mResources.OVR_multiview2 << ":OVR_multiview:" << mResources.OVR_multiview << ":EXT_YUV_target:" << mResources.EXT_YUV_target << ":EXT_geometry_shader:" << mResources.EXT_geometry_shader + << ":OES_geometry_shader:" << mResources.OES_geometry_shader << ":OES_shader_io_blocks:" << mResources.OES_shader_io_blocks << ":EXT_shader_io_blocks:" << mResources.EXT_shader_io_blocks << ":EXT_gpu_shader5:" << mResources.EXT_gpu_shader5 << ":OES_texture_3D:" << mResources.OES_texture_3D << ":MaxVertexOutputVectors:" << mResources.MaxVertexOutputVectors @@ -1152,11 +1253,10 @@ << ":MinProgramTexelOffset:" << mResources.MinProgramTexelOffset << ":MaxProgramTexelOffset:" << mResources.MaxProgramTexelOffset << ":MaxDualSourceDrawBuffers:" << mResources.MaxDualSourceDrawBuffers << ":MaxViewsOVR:" << mResources.MaxViewsOVR << ":NV_draw_buffers:" << mResources.NV_draw_buffers - << ":WEBGL_debug_shader_precision:" << mResources.WEBGL_debug_shader_precision << ":ANGLE_multi_draw:" << mResources.ANGLE_multi_draw << ":ANGLE_base_vertex_base_instance:" << mResources.ANGLE_base_vertex_base_instance << ":APPLE_clip_distance:" << mResources.APPLE_clip_distance << ":OES_texture_cube_map_array:" << mResources.OES_texture_cube_map_array << ":EXT_texture_cube_map_array:" << mResources.EXT_texture_cube_map_array @@ -1240,33 +1340,12 @@ mInterfaceBlocks.insert(mInterfaceBlocks.end(), mUniformBlocks.begin(), mUniformBlocks.end()); mInterfaceBlocks.insert(mInterfaceBlocks.end(), mShaderStorageBlocks.begin(), mShaderStorageBlocks.end()); } -bool TCompiler::emulatePrecisionIfNeeded(TIntermBlock *root, - TInfoSinkBase &sink, - bool *isNeeded, - const ShShaderOutput outputLanguage) -{ - *isNeeded = getResources().WEBGL_debug_shader_precision && getPragma().debugShaderPrecision; - - if (*isNeeded) - { - EmulatePrecision emulatePrecision(&getSymbolTable()); - root->traverse(&emulatePrecision); - if (!emulatePrecision.updateTree(this, root)) - { - return false; - } - emulatePrecision.writeEmulationHelpers(sink, getShaderVersion(), outputLanguage); - } - return true; -} - void TCompiler::clearResults() { - mArrayBoundsClamper.Cleanup(); mInfoSink.info.erase(); mInfoSink.obj.erase(); mInfoSink.debug.erase(); mDiagnostics.resetErrorCount(); @@ -1408,65 +1487,54 @@ { internalTagUsedFunction(calleeIndex); } } -// A predicate for the stl that returns if a top-level node is unused -class TCompiler::UnusedPredicate +bool TCompiler::pruneUnusedFunctions(TIntermBlock *root) { - public: - UnusedPredicate(const CallDAG *callDag, const std::vector *metadatas) - : mCallDag(callDag), mMetadatas(metadatas) - {} + TIntermSequence *sequence = root->getSequence(); - bool operator()(TIntermNode *node) + size_t writeIndex = 0; + for (size_t readIndex = 0; readIndex < sequence->size(); ++readIndex) { - const TIntermFunctionPrototype *asFunctionPrototype = node->getAsFunctionPrototypeNode(); - const TIntermFunctionDefinition *asFunctionDefinition = node->getAsFunctionDefinition(); + TIntermNode *node = sequence->at(readIndex); - const TFunction *func = nullptr; - - if (asFunctionDefinition) + // Keep anything that's not unused. + const TFunction *function = nullptr; + const bool shouldPrune = + IsTopLevelNodeUnusedFunction(mCallDag, mFunctionMetadata, node, &function); + if (!shouldPrune) { - func = asFunctionDefinition->getFunction(); - } - else if (asFunctionPrototype) - { - func = asFunctionPrototype->getFunction(); - } - if (func == nullptr) - { - return false; + (*sequence)[writeIndex++] = node; + continue; } - size_t callDagIndex = mCallDag->findIndex(func->uniqueId()); - if (callDagIndex == CallDAG::InvalidIndex) + // If a function is unused, it may have a struct declaration in its return value which + // shouldn't be pruned. In that case, replace the function definition with the struct + // definition. + ASSERT(function != nullptr); + const TType &returnType = function->getReturnType(); + if (!returnType.isStructSpecifier()) { - // This happens only for unimplemented prototypes which are thus unused - ASSERT(asFunctionPrototype); - return true; + continue; } - ASSERT(callDagIndex < mMetadatas->size()); - return !(*mMetadatas)[callDagIndex].used; + TVariable *structVariable = + new TVariable(&mSymbolTable, kEmptyImmutableString, &returnType, SymbolType::Empty); + TIntermSymbol *structSymbol = new TIntermSymbol(structVariable); + TIntermDeclaration *structDeclaration = new TIntermDeclaration; + structDeclaration->appendDeclarator(structSymbol); + + structSymbol->setLine(node->getLine()); + structDeclaration->setLine(node->getLine()); + + (*sequence)[writeIndex++] = structDeclaration; } - private: - const CallDAG *mCallDag; - const std::vector *mMetadatas; -}; + sequence->resize(writeIndex); -void TCompiler::pruneUnusedFunctions(TIntermBlock *root) -{ - UnusedPredicate isUnused(&mCallDag, &mFunctionMetadata); - TIntermSequence *sequence = root->getSequence(); - - if (!sequence->empty()) - { - sequence->erase(std::remove_if(sequence->begin(), sequence->end(), isUnused), - sequence->end()); - } + return validateAST(root); } bool TCompiler::limitExpressionComplexity(TIntermBlock *root) { if (!IsASTDepthBelowLimit(root, mResources.MaxExpressionComplexity)) @@ -1559,35 +1627,15 @@ const ShBuiltInResources &TCompiler::getResources() const { return mResources; } -const ArrayBoundsClamper &TCompiler::getArrayBoundsClamper() const -{ - return mArrayBoundsClamper; -} - -ShArrayIndexClampingStrategy TCompiler::getArrayIndexClampingStrategy() const -{ - return mResources.ArrayIndexClampingStrategy; -} - const BuiltInFunctionEmulator &TCompiler::getBuiltInFunctionEmulator() const { return mBuiltInFunctionEmulator; } -void TCompiler::writePragma(ShCompileOptions compileOptions) -{ - if ((compileOptions & SH_FLATTEN_PRAGMA_STDGL_INVARIANT_ALL) == 0) - { - TInfoSinkBase &sink = mInfoSink.obj; - if (mPragma.stdgl.invariantAll) - sink << "#pragma STDGL invariant(all)\n"; - } -} - bool TCompiler::isVaryingDefined(const char *varyingName) { ASSERT(mVariablesCollected); for (size_t ii = 0; ii < mInputVaryings.size(); ++ii) { @@ -1605,66 +1653,6 @@ } return false; } -void EmitEarlyFragmentTestsGLSL(const TCompiler &compiler, TInfoSinkBase &sink) -{ - if (compiler.isEarlyFragmentTestsSpecified() || compiler.isEarlyFragmentTestsOptimized()) - { - sink << "layout (early_fragment_tests) in;\n"; - } -} - -void EmitWorkGroupSizeGLSL(const TCompiler &compiler, TInfoSinkBase &sink) -{ - if (compiler.isComputeShaderLocalSizeDeclared()) - { - const sh::WorkGroupSize &localSize = compiler.getComputeShaderLocalSize(); - sink << "layout (local_size_x=" << localSize[0] << ", local_size_y=" << localSize[1] - << ", local_size_z=" << localSize[2] << ") in;\n"; - } -} - -void EmitMultiviewGLSL(const TCompiler &compiler, - const ShCompileOptions &compileOptions, - const TExtension extension, - const TBehavior behavior, - TInfoSinkBase &sink) -{ - ASSERT(behavior != EBhUndefined); - if (behavior == EBhDisable) - return; - - const bool isVertexShader = (compiler.getShaderType() == GL_VERTEX_SHADER); - if ((compileOptions & SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW) != 0) - { - // Emit ARB_shader_viewport_layer_array/NV_viewport_array2 in a vertex shader if the - // SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER option is set and the - // OVR_multiview(2) extension is requested. - if (isVertexShader && (compileOptions & SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER) != 0) - { - sink << "#if defined(GL_ARB_shader_viewport_layer_array)\n" - << "#extension GL_ARB_shader_viewport_layer_array : require\n" - << "#elif defined(GL_NV_viewport_array2)\n" - << "#extension GL_NV_viewport_array2 : require\n" - << "#endif\n"; - } - } - else - { - sink << "#extension GL_OVR_multiview"; - if (extension == TExtension::OVR_multiview2) - { - sink << "2"; - } - sink << " : " << GetBehaviorString(behavior) << "\n"; - - const auto &numViews = compiler.getNumViews(); - if (isVertexShader && numViews != -1) - { - sink << "layout(num_views=" << numViews << ") in;\n"; - } - } -} - } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/ConstantUnion.h b/gfx/angle/checkout/src/compiler/translator/ConstantUnion.h --- a/gfx/angle/checkout/src/compiler/translator/ConstantUnion.h +++ b/gfx/angle/checkout/src/compiler/translator/ConstantUnion.h @@ -18,10 +18,14 @@ class TConstantUnion { public: POOL_ALLOCATOR_NEW_DELETE TConstantUnion(); + TConstantUnion(int i); + TConstantUnion(unsigned int u); + TConstantUnion(float f); + TConstantUnion(bool b); bool cast(TBasicType newType, const TConstantUnion &constant); void setIConst(int i) { diff --git a/gfx/angle/checkout/src/compiler/translator/ConstantUnion.cpp b/gfx/angle/checkout/src/compiler/translator/ConstantUnion.cpp --- a/gfx/angle/checkout/src/compiler/translator/ConstantUnion.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ConstantUnion.cpp @@ -65,15 +65,19 @@ (rhs.getType() == EbtUInt && rhs.getUConst() <= 31u); } } // anonymous namespace -TConstantUnion::TConstantUnion() -{ - iConst = 0; - type = EbtVoid; -} +TConstantUnion::TConstantUnion() : iConst(0), type(EbtVoid) {} + +TConstantUnion::TConstantUnion(int i) : iConst(i), type(EbtInt) {} + +TConstantUnion::TConstantUnion(unsigned int u) : uConst(u), type(EbtUInt) {} + +TConstantUnion::TConstantUnion(float f) : fConst(f), type(EbtFloat) {} + +TConstantUnion::TConstantUnion(bool b) : bConst(b), type(EbtBool) {} int TConstantUnion::getIConst() const { ASSERT(type == EbtInt); return iConst; diff --git a/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.h b/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.h --- a/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.h +++ b/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.h @@ -21,12 +21,11 @@ { public: TDirectiveHandler(TExtensionBehavior &extBehavior, TDiagnostics &diagnostics, int &shaderVersion, - sh::GLenum shaderType, - bool debugShaderPrecisionSupported); + sh::GLenum shaderType); ~TDirectiveHandler() override; const TPragma &pragma() const { return mPragma; } const TExtensionBehavior &extensionBehavior() const { return mExtensionBehavior; } @@ -49,11 +48,10 @@ TPragma mPragma; TExtensionBehavior &mExtensionBehavior; TDiagnostics &mDiagnostics; int &mShaderVersion; sh::GLenum mShaderType; - bool mDebugShaderPrecisionSupported; }; } // namespace sh #endif // COMPILER_TRANSLATOR_DIRECTIVEHANDLER_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.cpp b/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.cpp --- a/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.cpp +++ b/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.cpp @@ -35,17 +35,15 @@ } TDirectiveHandler::TDirectiveHandler(TExtensionBehavior &extBehavior, TDiagnostics &diagnostics, int &shaderVersion, - sh::GLenum shaderType, - bool debugShaderPrecisionSupported) + sh::GLenum shaderType) : mExtensionBehavior(extBehavior), mDiagnostics(diagnostics), mShaderVersion(shaderVersion), - mShaderType(shaderType), - mDebugShaderPrecisionSupported(debugShaderPrecisionSupported) + mShaderType(shaderType) {} TDirectiveHandler::~TDirectiveHandler() {} void TDirectiveHandler::handleError(const angle::pp::SourceLocation &loc, const std::string &msg) @@ -79,15 +77,14 @@ // name and value. return; } else { - const char kOptimize[] = "optimize"; - const char kDebug[] = "debug"; - const char kDebugShaderPrecision[] = "webgl_debug_shader_precision"; - const char kOn[] = "on"; - const char kOff[] = "off"; + const char kOptimize[] = "optimize"; + const char kDebug[] = "debug"; + const char kOn[] = "on"; + const char kOff[] = "off"; bool invalidValue = false; if (name == kOptimize) { if (value == kOn) @@ -104,19 +101,10 @@ else if (value == kOff) mPragma.debug = false; else invalidValue = true; } - else if (name == kDebugShaderPrecision && mDebugShaderPrecisionSupported) - { - if (value == kOn) - mPragma.debugShaderPrecision = true; - else if (value == kOff) - mPragma.debugShaderPrecision = false; - else - invalidValue = true; - } else { mDiagnostics.report(angle::pp::Diagnostics::PP_UNRECOGNIZED_PRAGMA, loc, name); return; } diff --git a/gfx/angle/checkout/src/compiler/translator/DriverUniformMetal.h b/gfx/angle/checkout/src/compiler/translator/DriverUniformMetal.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/DriverUniformMetal.h @@ -0,0 +1,37 @@ +// +// 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. +// +// DriverUniformMetal: +// Struct defining the default driver uniforms for direct and SpirV based ANGLE translation +// + +#ifndef LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ +#define LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ + +#include "compiler/translator/tree_util/DriverUniform.h" + +namespace sh +{ + +class DriverUniformMetal : public DriverUniform +{ + public: + DriverUniformMetal(DriverUniformMode mode) : DriverUniform(mode) {} + DriverUniformMetal() : DriverUniform(DriverUniformMode::InterfaceBlock) {} + ~DriverUniformMetal() override {} + + TIntermBinary *getHalfRenderAreaRef() const override; + TIntermBinary *getFlipXYRef() const override; + TIntermBinary *getNegFlipXYRef() const override; + TIntermSwizzle *getNegFlipYRef() const override; + TIntermBinary *getCoverageMaskFieldRef() const; + + protected: + TFieldList *createUniformFields(TSymbolTable *symbolTable) override; +}; + +} // namespace sh + +#endif /* LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ */ diff --git a/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.h b/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.h --- a/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.h +++ b/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.h @@ -28,13 +28,15 @@ EXT_blend_func_extended, EXT_clip_cull_distance, EXT_draw_buffers, EXT_frag_depth, EXT_geometry_shader, + OES_geometry_shader, OES_shader_io_blocks, EXT_shader_io_blocks, EXT_gpu_shader5, + EXT_primitive_bounding_box, EXT_shader_framebuffer_fetch, EXT_shader_framebuffer_fetch_non_coherent, EXT_shader_non_constant_global_initializers, EXT_shader_texture_lod, EXT_shadow_samplers, diff --git a/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.cpp b/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.cpp --- a/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.cpp @@ -22,13 +22,15 @@ OP(EXT_blend_func_extended) \ OP(EXT_clip_cull_distance) \ OP(EXT_draw_buffers) \ OP(EXT_frag_depth) \ OP(EXT_geometry_shader) \ + OP(OES_geometry_shader) \ OP(OES_shader_io_blocks) \ OP(EXT_shader_io_blocks) \ OP(EXT_gpu_shader5) \ + OP(EXT_primitive_bounding_box) \ OP(EXT_shader_framebuffer_fetch) \ OP(EXT_shader_framebuffer_fetch_non_coherent) \ OP(EXT_shader_non_constant_global_initializers) \ OP(EXT_shader_texture_lod) \ OP(EXT_shadow_samplers) \ diff --git a/gfx/angle/checkout/src/compiler/translator/HashNames.cpp b/gfx/angle/checkout/src/compiler/translator/HashNames.cpp --- a/gfx/angle/checkout/src/compiler/translator/HashNames.cpp +++ b/gfx/angle/checkout/src/compiler/translator/HashNames.cpp @@ -67,41 +67,10 @@ // If the identifier length is already close to the limit, we can't prefix it. This is // not a problem since there are no builtins or ANGLE's internal variables that would // have as long names and could conflict. return name; } - if (name == "gl_ClipDistance" || name == "gl_CullDistance" || name == "gl_LastFragData") - { - // NOTE(hqle): When gl_ClipDistance is re-declared, it will become an UserDefined - // symbol. Normally, UserDefined symbols will have "_u" prefix added to their names by - // ANGLE. However, gl_ClipDistance is an exception. If we add "_u" to its name, the - // backend won't be able to handle it properly. So for gl_ClipDistance, we won't add - // "_u" prefix, instead we return it original name. - // - // The other way is treating gl_ClipDistance as an AngleInternal symbol when a - // re-declaration occurs. AngleInternal symbols will have their name intact. However, - // the issue is that the current code put a lot of restrictions on AngleInternal - // symbols. For examples: - // - CollectVariables.cpp will not consider AngleInternal as varying output variables. - // - SymbolTable.cpp will throw an exception if AngleInternal symbols are declared by - // users. In this case, it would be gl_ClipDistance. This is because - // TSymbolTable::declare() only accepts an UserDefined symbol. - // - And potentially many other places that have some assumptions that haven't been - // discovered yet. - // - // If re-declared gl_ClipDistance was to be an AngleInternal symbol, a special "if (name - // == "gl_ClipDistance")" handling would have to be put into all the above mentioned - // cases. TParseContext::declareVariable() function would also have to be modified in - // order to assign AngleInternal symbol type to the re-declared gl_ClipDistance - // variable. - // Compare to only this place has to be handled if re-declared gl_ClipDistance is - // treated as an UserDefined symbol. - // - // Also, gl_LastFragData should be added. - // - return name; - } ImmutableStringBuilder prefixedName(kUnhashedNamePrefix.length() + name.length()); prefixedName << kUnhashedNamePrefix << name; ImmutableString res = prefixedName; AddToNameMapIfNotMapped(name, res, nameMap); return res; diff --git a/gfx/angle/checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp b/gfx/angle/checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp --- a/gfx/angle/checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp @@ -8,297 +8,275 @@ // // ImmutableString_ESSL_autogen.cpp: Wrapper for static or pool allocated char arrays, that are // guaranteed to be valid and unchanged for the duration of the compilation. Implements // mangledNameHash using perfect hash function from gen_builtin_symbols.py -#ifdef ANGLE_TRANSLATOR_ESSL_ONLY - -# include "compiler/translator/ImmutableString.h" +#include "compiler/translator/ImmutableString.h" std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str) { return os.write(str.data(), str.length()); } -# if defined(_MSC_VER) -# pragma warning(disable : 4309) // truncation of constant value -# endif +#if defined(_MSC_VER) +# pragma warning(disable : 4309) // truncation of constant value +#endif namespace { -constexpr int mangledkT1[] = {1180, 782, 1103, 563, 2974, 1464, 855, 2226, 533, 946, - 2364, 1527, 2823, 1963, 1949, 406, 1029, 185, 2724, 2797, - 2341, 264, 1903, 2150, 3196, 1935, 1186, 1337, 65, 194, - 557, 2982, 1963, 2229, 2382, 1040, 776, 2536, 2699, 2002}; -constexpr int mangledkT2[] = {243, 2806, 2646, 900, 1556, 238, 1079, 2379, 1830, 1969, - 1294, 2251, 438, 1259, 2530, 476, 2188, 2765, 253, 197, - 3034, 1339, 1962, 2836, 1405, 1808, 2356, 1708, 1616, 2555, - 2384, 835, 1185, 1976, 1471, 1429, 2833, 3097, 1699, 752}; +constexpr int mangledkT1[] = {1527, 1943, 1880, 1243, 1509, 140, 1696, 103, 163, 2049, + 1333, 2689, 1246, 626, 562, 1634, 2548, 2195, 2149, 59, + 1179, 654, 587, 174, 1528, 1042, 266, 457, 140, 864, + 520, 913, 1647, 598, 1669, 154, 2071, 580, 1372, 2809}; +constexpr int mangledkT2[] = {890, 2242, 2689, 2094, 2746, 538, 1689, 1610, 625, 1617, + 2764, 775, 612, 2458, 797, 438, 1122, 1941, 1673, 2635, + 976, 2649, 2701, 1532, 1267, 49, 1285, 2806, 237, 342, + 1105, 2537, 2291, 870, 693, 1953, 6, 1401, 1788, 1352}; constexpr int mangledkG[] = { - 0, 0, 0, 0, 0, 0, 0, 847, 1062, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1632, 2907, 0, 400, 938, 0, 0, 1116, 0, 922, 663, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1408, 0, 0, 0, 0, 0, 0, 0, - 0, 2659, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 2742, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2161, 0, 656, 0, 0, 0, - 0, 0, 0, 0, 2567, 0, 1174, 1979, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 38, 1120, 0, 0, 0, 0, 2702, 1330, 1414, 381, 0, - 0, 0, 1483, 0, 0, 2871, 0, 0, 0, 123, 0, 2565, 0, 0, 0, 1217, - 312, 269, 0, 1357, 760, 0, 0, 0, 0, 2653, 0, 321, 0, 0, 0, 0, - 0, 0, 3020, 0, 0, 0, 2585, 367, 0, 0, 0, 0, 0, 0, 0, 0, - 1932, 0, 2090, 0, 0, 0, 0, 0, 188, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2935, 1013, 2352, 424, - 0, 193, 570, 0, 0, 0, 0, 0, 66, 0, 0, 1811, 0, 2718, 0, 0, - 1154, 0, 0, 33, 0, 2278, 0, 0, 0, 3156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1071, 0, 1440, 0, 0, 2822, 0, 3116, 819, 576, 0, 1925, 0, - 0, 0, 370, 2518, 1977, 1323, 0, 1991, 1123, 0, 0, 1835, 0, 780, 609, 0, - 2709, 1441, 0, 1921, 2084, 0, 0, 0, 950, 3037, 0, 2011, 2476, 0, 0, 2009, - 83, 0, 0, 0, 0, 0, 901, 0, 752, 0, 2786, 0, 0, 231, 1597, 0, - 1303, 0, 2279, 0, 0, 0, 725, 0, 0, 495, 0, 0, 0, 0, 1552, 611, - 0, 931, 0, 341, 0, 0, 0, 68, 2626, 0, 0, 1904, 0, 989, 0, 0, - 0, 197, 0, 404, 737, 1583, 0, 3057, 0, 2403, 0, 0, 0, 0, 0, 0, - 1356, 2560, 0, 2901, 533, 938, 363, 3092, 2901, 0, 3193, 0, 0, 354, 202, 0, - 1248, 0, 457, 0, 0, 0, 0, 1223, 1217, 0, 0, 0, 1673, 0, 0, 0, - 707, 0, 0, 1367, 0, 2737, 0, 0, 1103, 1064, 0, 1607, 0, 0, 0, 0, - 1277, 0, 0, 0, 0, 885, 0, 1649, 0, 689, 3019, 0, 0, 0, 0, 236, - 0, 1099, 972, 0, 305, 1626, 0, 2138, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 682, 1952, 1708, 0, 0, 0, 0, 0, 0, 879, 642, 0, 0, 0, - 586, 2856, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 0, 287, 399, 1796, 0, - 0, 0, 0, 1120, 0, 610, 1122, 3035, 0, 1346, 1185, 0, 0, 0, 740, 0, - 0, 144, 0, 0, 3017, 0, 0, 0, 3012, 2171, 1137, 1488, 2289, 0, 395, 0, - 0, 0, 1012, 0, 426, 0, 0, 0, 0, 142, 663, 0, 1782, 772, 1585, 0, - 0, 0, 0, 0, 3201, 547, 482, 0, 0, 740, 576, 0, 0, 0, 0, 1420, - 0, 481, 0, 0, 0, 2613, 0, 2040, 0, 0, 0, 0, 0, 2850, 683, 0, - 0, 0, 2562, 0, 2545, 0, 802, 0, 0, 1074, 0, 0, 0, 0, 0, 0, - 0, 2994, 319, 0, 0, 2725, 323, 0, 0, 0, 0, 0, 0, 0, 2942, 0, - 934, 0, 0, 0, 0, 0, 1508, 0, 0, 2146, 1074, 0, 2205, 0, 0, 2542, - 0, 156, 0, 125, 0, 0, 0, 1723, 0, 0, 3007, 165, 236, 850, 0, 88, - 0, 2584, 0, 1069, 0, 0, 2887, 0, 0, 0, 933, 420, 448, 641, 0, 0, - 0, 797, 0, 0, 0, 0, 0, 789, 0, 886, 284, 0, 0, 2655, 3009, 0, - 0, 2545, 2271, 2146, 626, 1496, 1350, 2318, 0, 2455, 0, 0, 0, 0, 0, 1033, - 2556, 0, 1590, 0, 0, 0, 0, 1158, 3166, 0, 605, 960, 0, 0, 1220, 3107, - 860, 0, 0, 2588, 0, 0, 2493, 2966, 0, 0, 313, 1351, 1944, 2018, 2300, 802, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 3010, 3186, 273, 694, - 0, 1087, 3100, 676, 0, 0, 0, 0, 0, 967, 0, 264, 554, 2879, 0, 0, - 769, 1774, 619, 646, 0, 0, 1414, 0, 0, 528, 0, 0, 0, 0, 0, 3197, - 2588, 0, 0, 0, 160, 2111, 0, 0, 1752, 1520, 0, 0, 0, 0, 0, 0, - 2716, 1011, 1403, 2238, 867, 0, 0, 0, 0, 616, 0, 0, 495, 0, 209, 182, - 846, 2251, 54, 0, 1124, 0, 0, 445, 0, 3105, 1952, 0, 0, 0, 782, 0, - 0, 0, 0, 0, 686, 1103, 3085, 0, 0, 1016, 992, 0, 151, 1358, 1410, 0, - 0, 0, 0, 0, 3080, 2685, 2829, 0, 0, 0, 0, 604, 0, 2476, 0, 2564, - 0, 0, 1964, 1284, 0, 1538, 0, 0, 1511, 2442, 0, 0, 129, 0, 0, 0, - 145, 0, 2411, 0, 2015, 527, 316, 889, 0, 0, 0, 0, 0, 1272, 141, 2488, - 0, 0, 0, 0, 1556, 184, 0, 0, 0, 0, 0, 1707, 134, 0, 1840, 0, - 0, 869, 1061, 0, 811, 2766, 539, 0, 0, 2445, 0, 0, 0, 0, 708, 0, - 0, 205, 1341, 0, 986, 0, 0, 2064, 0, 0, 0, 0, 850, 359, 0, 1914, - 1185, 1121, 1411, 0, 0, 0, 0, 2389, 593, 213, 669, 510, 2437, 149, 685, 0, - 0, 0, 2911, 0, 1224, 1067, 892, 0, 388, 1281, 505, 0, 1081, 216, 378, 0, - 0, 134, 0, 322, 2508, 329, 2259, 0, 0, 1633, 3003, 6, 1405, 0, 0, 0, - 0, 0, 80, 374, 85, 0, 3192, 0, 447, 0, 0, 0, 701, 1489, 0, 2020, - 0, 2989, 1950, 3143, 2769, 1053, 0, 0, 2726, 0, 327, 0, 1071, 0, 532, 1860, - 0, 0, 982, 1831, 2858, 674, 0, 0, 262, 0, 0, 217, 0, 0, 622, 691, - 990, 0, 0, 0, 50, 334, 1890, 2667, 0, 0, 0, 0, 1452, 13, 0, 1785, - 0, 0, 445, 0, 248, 2909, 421, 0, 0, 2909, 0, 2245, 0, 0, 1016, 0, - 0, 0, 0, 223, 3178, 0, 0, 541, 0, 0, 2679, 0, 0, 0, 0, 1620, - 0, 0, 2898, 475, 0, 2146, 1126, 3107, 0, 129, 0, 1634, 1733, 1074, 1158, 0, - 0, 0, 785, 0, 585, 364, 0, 0, 0, 262, 807, 0, 1728, 0, 0, 1599, - 0, 192, 793, 0, 0, 448, 506, 0, 0, 0, 0, 3002, 1950, 0, 0, 200, - 0, 0, 886, 183, 2792, 0, 303, 0, 2898, 3034, 2175, 0, 953, 0, 0, 0, - 2874, 2662, 0, 0, 469, 263, 0, 0, 1339, 374, 0, 585, 798, 0, 1028, 0, - 0, 0, 0, 0, 0, 0, 551, 2769, 0, 0, 0, 2384, 2320, 0, 332, 0, - 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 186, 210, 1350, 3113, 0, 63, - 402, 1159, 708, 0, 107, 0, 0, 0, 777, 2343, 0, 117, 2046, 2923, 2434, 2458, - 0, 738, 2690, 0, 0, 0, 2608, 0, 836, 524, 845, 0, 0, 0, 62, 0, - 0, 1842, 1557, 775, 178, 0, 0, 0, 0, 27, 0, 0, 0, 174, 2027, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 1528, - 0, 0, 1069, 844, 0, 1368, 0, 0, 0, 0, 0, 0, 160, 407, 0, 0, - 0, 0, 0, 304, 77, 0, 1527, 0, 0, 0, 298, 0, 0, 0, 0, 2785, - 0, 0, 0, 0, 2284, 0, 0, 1493, 0, 0, 0, 2511, 0, 0, 0, 1046, - 792, 0, 0, 0, 1095, 278, 0, 0, 0, 1605, 697, 2981, 0, 572, 786, 422, - 0, 0, 0, 770, 2488, 0, 460, 1500, 2460, 351, 0, 83, 0, 907, 681, 0, - 1114, 462, 567, 0, 0, 0, 1136, 678, 0, 1131, 0, 0, 112, 0, 0, 0, - 0, 0, 22, 0, 0, 482, 496, 0, 2643, 0, 444, 2532, 0, 2683, 958, 0, - 1042, 0, 3099, 1311, 1111, 0, 1350, 810, 520, 1320, 0, 817, 1761, 0, 0, 2889, - 685, 0, 965, 0, 1454, 0, 2781, 0, 3171, 0, 0, 2749, 0, 0, 0, 0, - 0, 4, 0, 0, 229, 0, 0, 2418, 0, 870, 924, 1547, 0, 3193, 1187, 0, - 1199, 0, 3205, 0, 350, 0, 0, 0, 54, 883, 0, 0, 0, 1859, 0, 1914, - 2493, 863, 3183, 0, 1460, 0, 1283, 0, 0, 639, 0, 2154, 0, 0, 0, 0, - 725, 0, 0, 0, 476, 0, 1306, 931, 0, 3133, 2670, 394, 740, 0, 0, 0, - 0, 0, 0, 276, 0, 0, 0, 47, 0, 0, 2659, 1055, 0, 1378, 0, 0, - 2304, 2876, 347, 928, 0, 416, 0, 0, 0, 1033, 0, 0, 0, 0, 0, 0, - 683, 275, 0, 0, 626, 0, 362, 0, 0, 0, 0, 0, 2282, 0, 1260, 387, - 0, 2260, 0, 0, 693, 0, 703, 0, 0, 0, 768, 1102, 0, 1579, 0, 1137, - 0, 0, 0, 407, 0, 18, 1000, 0, 0, 2715, 709, 0, 0, 78, 0, 0, - 0, 29, 2506, 0, 0, 0, 0, 426, 180, 0, 2420, 0, 0, 604, 2649, 0, - 0, 0, 137, 0, 1223, 0, 560, 0, 0, 2797, 1225, 900, 0, 1694, 0, 0, - 454, 584, 0, 0, 0, 0, 2280, 0, 0, 0, 0, 1765, 1352, 0, 0, 493, - 0, 142, 0, 2635, 1495, 495, 1211, 471, 453, 1148, 580, 1580, 239, 1017, 373, 1536, - 1949, 0, 63, 30, 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, - 355, 1372, 250, 1563, 0, 414, 68, 2752, 1193, 0, 0, 794, 0, 102, 0, 2866, - 1305, 0, 671, 525, 2971, 3020, 933, 0, 0, 1857, 737, 0, 1660, 0, 0, 2937, - 0, 0, 0, 3034, 0, 462, 1325, 0, 0, 957, 0, 0, 539, 0, 0, 776, - 279, 962, 671, 0, 2906, 299, 874, 0, 0, 1361, 0, 0, 426, 0, 2637, 0, - 785, 2336, 1254, 663, 0, 2283, 140, 0, 605, 0, 0, 0, 11, 245, 1258, 0, - 0, 839, 0, 245, 1054, 48, 2396, 3000, 93, 3041, 2984, 0, 2975, 0, 0, 0, - 1374, 0, 1930, 0, 0, 0, 0, 2037, 1128, 2873, 499, 0, 0, 2052, 473, 0, - 82, 554, 1336, 0, 0, 0, 2530, 2316, 1155, 0, 0, 549, 0, 591, 0, 21, - 2280, 3011, 1071, 0, 1043, 0, 2308, 0, 0, 634, 0, 872, 269, 0, 0, 0, - 174, 0, 0, 0, 133, 0, 0, 204, 1313, 115, 2534, 2169, 0, 1285, 25, 1213, - 871, 0, 982, 0, 341, 1478, 1980, 2621, 0, 0, 1246, 408, 2072, 773, 0, 858, - 298, 1299, 719, 0, 0, 735, 1142, 0, 36, 0, 21, 0, 1387, 0, 297, 0, - 0, 326, 623, 1295, 595, 1394, 0, 0, 1626, 0, 2648, 0, 0, 1517, 783, 2036, - 478, 2580, 624, 2506, 0, 631, 0, 0, 1596, 0, 1851, 0, 0, 838, 149, 894, - 1544, 749, 152, 606, 0, 396, 2649, 1280, 0, 3120, 963, 716, 0, 0, 457, 1185, - 227, 2150, 1130, 0, 0, 0, 5, 5, 0, 70, 1048, 770, 2997, 713, 2093, 0, - 1015, 0, 0, 746, 0, 1144, 0, 449, 0, 430, 815, 312, 2555, 1230, 0, 0, - 2205, 2182, 527, 1447, 3134, 866, 0, 0, 1774, 1150, 0, 1448, 0, 2, 1472, 464, - 0, 2635, 0, 0, 0, 1033, 2789, 973, 1404, 2793, 906, 167, 0, 1165, 1164, 2927, - 0, 1229, 0, 394, 1423, 0, 177, 2183, 0, 0, 1260, 211, 0, 0, 1240, 429, - 0, 164, 948, 473, 3135, 0, 0, 1326, 0, 0, 1126, 0, 353, 1251, 0, 2417, - 0, 1626, 0, 0, 18, 1449, 957, 262, 0, 2729, 0, 0, 0, 1398, 0, 0, - 0, 0, 208, 1539, 0, 0, 0, 0, 938, 0, 0, 2614, 0, 104, 843, 0, - 2677, 0, 1115, 0, 0, 186, 2456, 236, 8, 0, 110, 795, 0, 0, 0, 0, - 0, 0, 0, 3126, 1492, 0, 558, 718, 813, 0, 0, 545, 668, 406, 1468, 526, - 0, 0, 2977, 0, 1206, 749, 2023, 269, 961, 0, 952, 0, 1723, 0, 1330, 485, - 1402, 0, 1098, 3055, 2116, 0, 494, 0, 0, 3115, 0, 71, 0, 0, 0, 0, - 114, 345, 0, 0, 2829, 1036, 3108, 0, 407, 0, 506, 0, 0, 0, 1145, 550, - 0, 766, 2420, 0, 1234, 87, 199, 3112, 0, 0, 51, 0, 3076, 0, 1263, 0, - 433, 0, 1151, 0, 0, 3038, 2198, 0, 0, 0, 793, 880, 1119, 0, 0, 0, - 561, 0, 0, 1024, 0, 455, 321, 0, 1001, 1483, 0, 810, 1188, 837, 0, 0, - 52, 187, 0, 0, 1409, 1261, 0, 3119, 709, 0, 873, 2982, 0, 3201, 2875, 0, - 3155, 285, 0, 1942, 2041, 240, 1357, 1148, 0, 2395, 0, 856, 1582, 0, 249, 0, - 1191, 1138, 0, 0, 818, 116, 355, 2602, 1176, 0, 1872, 1610, 627, 0, 0, 0, - 3179, 2939, 0, 1085, 255, 38, 2231, 1289, 793, 351, 0, 1281, 0, 3062, 648, 1247, - 0, 0, 3024, 2952, 1299, 386, 2135, 512, 3067, 0, 0, 887, 0, 0, 1334, 0, - 657, 160, 0, 89, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2189, 0, 0, 2813, 0, 1022, 972, 0, 486, 0, 1438, 3198, 1329, 975, 1369, 1129, - 3142, 0, 1193, 869, 2229, 123, 2669, 0, 1030, 0, 1384, 0, 0, 1247, 42, 2501, - 75, 0, 157, 0, 2659, 2776, 1723, 1146, 641, 0, 0, 330, 0, 0, 1294, 0, - 0, 0, 1209, 0, 807, 0, 881, 1398, 258, 0, 1759, 3186, 0, 0, 246, 55, - 579, 1565, 1625, 0, 273, 0, 2759, 800, 0, 234, 1569, 968, 2369, 1184, 0, 2749, - 0, 3032, 1408, 601, 941, 215, 268, 779, 164, 2058, 1391, 0, 3153, 0, 1454, 2713, - 0, 0, 2924, 1875, 0, 1041, 325, 0, 1943, 345, 454, 12, 2946, 0, 1064, 2969, - 2061, 223, 3090, 2964, 116, 0, 1199, 0, 3196, 329, 1141, 705, 0, 1566, 0, 0, - 0, 0, 287, 0, 0, 625, 0, 0, 1575, 205, 0, 0, 0, 1729, 0, 0, - 782, 3054, 0, 0, 0, 0, 73, 0, 4, 0, 2291, 0, 212, 1208, 0, 0, - 0, 689, 521, 498, 710, 532, 0, 0, 2116, 2876, 0, 1471, 415, 836, 0, 0, - 0, 0, 1325, 0, 0, 0, 1801, 2443, 1076, 1747, 8, 1985, 0, 0, 575, 2979, - 0, 0, 3161, 2217, 0, 0, 729, 0, 490, 664, 0, 0, 503, 0, 850, 0, - 991, 2970, 3046, 2957, 1375, 0, 0, 0, 0, 2986, 273, 0, 0, 904, 275, 0, - 2418, 0, 0, 1365, 905, 720, 666, 0, 0, 1389, 998, 0, 1509, 0, 89, 0, - 3148, 0, 0, 0, 249, 0, 0, 0, 1143, 290, 2213, 0, 281, 0, 0, 1172, - 0, 0, 0, 1088, 1517, 739, 2866, 0, 0, 0, 1293, 2021, 2205, 0, 1452, 0, - 185, 1428, 0, 1773, 122, 623, 1339, 1011, 3181, 3203, 888, 2269, 315, 0, 688, 0, - 1231, 0, 1211, 921, 340, 1222, 0, 0, 0, 2695, 0, 1644, 0, 1594, 0, 673, - 0, 3044, 0, 1142, 911, 0, 836, 1135, 2803, 1578, 1905, 1394, 442, 0, 0, 2977, - 0, 0, 989, 296, 162, 0, 0, 534, 0, 1375, 994, 1355, 0, 1701, 987, 0, - 2372, 84, 0, 0, 2699, 0, 1163, 2190, 425, 0, 0, 600, 0, 1570, 0, 946, - 0, 2218, 0, 63, 371, 0, 0, 598, 0, 0, 256, 0, 0, 0, 0, 0, - 0, 763, 3142, 533, 2393, 2685, 0, 595, 57, 0, 2809, 0, 0, 2531, 0, 1029, - 69, 0, 0, 1224, 1218, 0, 1445, 0, 1482, 992, 628, 1284, 0, 602, 183, 0, - 0, 1875, 1232, 3168, 2071, 2553, 0, 0, 0, 2826, 1483, 2353, 0, 2989, 1153, 632, - 0, 835, 1448, 1601, 2235, 33, 1979, 0, 93, 0, 0, 0, 2288, 2900, 0, 1407, - 1356, 359, 0, 1183, 0, 0, 0, 0, 1728, 2729, 2295, 0, 1089, 0, 1305, 2909, - 1257, 1725, 0, 712, 1094, 1398, 0, 2559, 1688, 3158, 0, 1392, 1797, 0, 0, 1077, - 953, 932, 1249, 0, 143, 416, 83, 42, 0, 2751, 2643, 0, 0, 0, 1791, 0, - 31, 97, 0, 65, 747, 434, 0, 0, 878, 0, 0, 0, 2447, 1019, 0, 0, - 3047, 0, 0, 0, 1196, 1159, 0, 743, 2813, 1036, 0, 397, 2959, 938, 0, 1305, - 0, 0, 0, 2577, 1608, 194, 574, 0, 898, 0, 0, 258, 2770, 0, 0, 935, - 0, 0, 0, 0, 778, 622, 0, 1765, 0, 0, 3094, 1571, 1164, 0, 0, 40, - 1040, 469, 0, 112, 0, 1079, 2325, 0, 0, 1063, 3191, 0, 1109, 1135, 2512, 0, - 0, 489, 0, 201, 3181, 2271, 1243, 3103, 0, 0, 374, 0, 0, 0, 0, 0, - 287, 149, 2440, 1147, 592, 1654, 818, 0, 2474, 264, 0, 0, 0, 92, 218, 0, - 0, 7, 0, 0, 180, 0, 1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1563, 1353, 2730, 809, 2634, 0, 1613, 2930, 0, 1782, 2507, 0, 501, 1563, 881, 2102, - 3069, 0, 760, 1075, 652, 473, 934, 1850, 0, 0, 3095, 0, 0, 1747, 0, 572, - 358, 2230, 0, 0, 1014, 0, 0, 213, 2911, 3096, 0, 1044, 2263, 1765, 87, 1069, - 471, 550, 263, 839, 1306, 58, 163, 3188, 0, 198, 0, 2496, 1537, 24, 0, 814, - 0, 0, 206, 0, 2592, 1146, 0, 25, 1094, 3047, 2936, 0, 1452, 1484, 1547, 0, - 0, 0, 2035, 1113, 305, 0, 46, 0, 2216, 1719, 3040, 0, 293, 954, 124, 0, - 94, 383, 1980, 535, 2437, 43, 0, 327, 0, 0, 2589, 0, 0, 1208, 2780, 181, - 1859, 0, 2628, 0, 0, 991, 445, 62, 0, 0, 802, 0, 0, 0, 0, 0, - 647, 451, 1025, 1001, 1236, 2275, 1180, 0, 0, 0, 1566, 1183, 171, 0, 2709, 1448, - 0, 0, 0, 300, 0, 0, 596, 0, 1252, 1318, 2538, 1070, 280, 844, 0, 1317, - 257, 2916, 1154, 493, 39, 173, 777, 0, 1030, 303, 492, 0, 0, 0, 2121, 0, - 0, 1464, 1394, 0, 0, 1007, 0, 2732, 0, 0, 705, 1341, 0, 1237, 0, 0, - 0, 0, 0, 1552, 668, 959, 883, 0, 712, 1254, 2745, 0, 0, 3137, 0, 0, - 0, 1806, 13, 395, 0, 1916, 0, 0, 518, 0, 545, 2529, 0, 0, 0, 2919, - 1111, 385, 921, 2879, 0, 148, 1283, 325, 0, 2639, 800, 0, 245, 0, 341, 0, - 2805, 0, 0, 2031, 1100, 591, 0, 2903, 2980, 3182, 0, 463, 1761, 1686, 827, 142, - 2462, 282, 0, 0, 1621, 513, 0, 370, 327, 0, 373, 1344, 0, 771, 1473, 537, - 3127, 0, 0, 0, 0, 1173, 0, 0, 808, 2341, 2994, 0, 0, 1236, 3106, 2511, - 500, 2494, 1327, 973, 0, 726, 0, 2432, 2508, 1090, 140, 0, 2047, 0, 511, 0, - 752, 412, 0, 409, 942, 1193, 0, 2991, 1436, 508, 0, 1071, 1244, 731, 0, 1206, - 305, 2007, 374, 533, 117, 146, 654, 1276, 1018, 0, 0, 0, 1418, 1541, 0, 0, - 230, 0, 724, 319, 2258, 1057, 653, 0, 2684, 0, 2969, 1282, 0, 248, 0, 1048, - 3139, 0, 1511, 0, 1044, 0, 576, 1503, 0, 0, 69, 2572, 0, 0, 546, 90, - 80, 0, 0, 438, 313, 0, 0, 0, 0, 0, 0, 2621, 1538, 3045, 0, 70, - 1078, 384, 2885, 1182, 2890, 11, 0, 1108, 1542, 0, 0, 914, 1443, 0, 2325, 1529, - 0, 606, 0, 972, 0, 825, 0, 225, 1047, 1322, 1051, 1864, 513, 308, 0, 0, - 456, 0, 422, 2906, 767, 0, 2102, 434, 1426, 581, 0, 757, 761, 1614, 376, 86, - 531, 299, 0, 0, 161, 1362, 613, 0}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2758, 0, 332, 0, 0, + 0, 0, 949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 2569, + 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 1216, 0, 0, 222, 0, + 0, 1645, 0, 0, 0, 0, 0, 0, 306, 27, 0, 0, 0, 2019, 0, 1761, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1160, 0, 0, 0, 1102, 0, + 0, 0, 0, 0, 2775, 0, 0, 1256, 0, 0, 531, 0, 0, 0, 0, 668, + 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 2470, 0, + 2361, 0, 0, 0, 0, 0, 1624, 390, 714, 0, 0, 2675, 0, 2669, 992, 0, + 0, 0, 0, 0, 582, 930, 0, 1485, 0, 0, 0, 0, 0, 0, 96, 0, + 36, 141, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 308, 0, 327, 1950, + 0, 92, 0, 606, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 1223, 0, + 1011, 0, 1787, 261, 945, 1542, 329, 0, 0, 0, 0, 0, 0, 854, 0, 573, + 99, 0, 0, 0, 948, 0, 163, 1271, 1567, 0, 2533, 688, 1223, 0, 0, 0, + 0, 0, 0, 0, 0, 1111, 704, 693, 620, 1078, 0, 0, 0, 2539, 415, 1990, + 0, 0, 2702, 0, 712, 0, 1829, 0, 0, 0, 2682, 0, 0, 2040, 1784, 0, + 318, 0, 0, 0, 0, 0, 0, 0, 2243, 0, 0, 0, 2479, 0, 1494, 0, + 0, 95, 406, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 635, 2847, 2087, + 0, 2798, 480, 1643, 0, 1670, 0, 1640, 303, 1196, 2443, 820, 133, 2201, 0, 0, + 0, 0, 0, 1316, 746, 86, 0, 357, 375, 0, 0, 0, 0, 0, 0, 1901, + 744, 0, 668, 2700, 1855, 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, 679, + 0, 0, 234, 1462, 0, 0, 0, 2409, 0, 1062, 2344, 0, 0, 0, 0, 0, + 1350, 2254, 2320, 0, 0, 0, 0, 0, 1011, 0, 1010, 1068, 0, 0, 782, 848, + 0, 1511, 0, 0, 0, 1452, 1417, 0, 0, 0, 0, 0, 959, 0, 0, 0, + 0, 1250, 633, 696, 888, 1378, 1702, 1448, 1992, 348, 0, 0, 2513, 1441, 442, 0, + 0, 849, 0, 0, 0, 0, 0, 1306, 0, 1080, 0, 2467, 0, 0, 1649, 0, + 2363, 541, 0, 0, 0, 570, 0, 596, 298, 0, 1284, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1016, 0, 0, 0, 1056, 0, 2233, 0, 2691, 1230, 0, 0, + 0, 645, 972, 0, 0, 335, 480, 0, 356, 0, 1995, 0, 0, 0, 1999, 0, + 778, 0, 0, 952, 1066, 0, 0, 0, 2574, 0, 2263, 1932, 0, 1404, 305, 0, + 0, 1049, 0, 0, 2546, 1758, 0, 2549, 2895, 2636, 2355, 0, 0, 0, 0, 2903, + 0, 356, 0, 1530, 1844, 0, 0, 2867, 2741, 624, 0, 0, 0, 0, 2064, 2462, + 0, 2671, 165, 1638, 0, 0, 1433, 0, 1292, 0, 0, 0, 0, 2192, 2069, 1260, + 892, 0, 465, 828, 456, 0, 0, 1799, 258, 912, 0, 2480, 637, 0, 0, 0, + 0, 0, 0, 782, 393, 2356, 141, 0, 2538, 0, 0, 0, 0, 0, 0, 2769, + 0, 0, 0, 0, 0, 0, 0, 906, 2070, 0, 0, 232, 0, 0, 1735, 2806, + 2365, 0, 0, 539, 264, 0, 0, 0, 0, 1652, 2611, 995, 1348, 1809, 879, 0, + 0, 985, 2178, 164, 0, 0, 0, 0, 399, 0, 1216, 0, 0, 259, 1515, 0, + 0, 0, 1556, 563, 497, 0, 0, 0, 0, 2844, 0, 0, 2154, 0, 476, 0, + 0, 1303, 2622, 1249, 2251, 0, 0, 499, 0, 2296, 0, 0, 0, 2480, 0, 0, + 2118, 1962, 387, 0, 2289, 1968, 0, 0, 0, 0, 1850, 0, 1266, 0, 1697, 0, + 0, 1230, 0, 0, 0, 417, 0, 1935, 1588, 391, 1671, 0, 0, 0, 2028, 1993, + 0, 0, 854, 0, 0, 0, 864, 33, 1934, 1611, 564, 0, 0, 2491, 191, 408, + 1484, 672, 0, 0, 2333, 0, 939, 268, 0, 2804, 2158, 0, 437, 323, 0, 1218, + 0, 0, 0, 0, 0, 0, 2922, 0, 699, 543, 2629, 0, 0, 0, 0, 0, + 2726, 311, 0, 0, 0, 0, 0, 0, 2445, 0, 0, 0, 540, 272, 0, 594, + 0, 2332, 0, 1352, 1196, 0, 694, 1313, 0, 0, 0, 678, 0, 0, 88, 0, + 604, 0, 1083, 577, 1102, 718, 1169, 0, 2356, 0, 0, 1936, 141, 791, 653, 408, + 1212, 388, 0, 0, 0, 212, 0, 0, 2042, 0, 1962, 2110, 2853, 0, 0, 525, + 0, 0, 2413, 2515, 0, 0, 109, 2477, 160, 1539, 513, 1587, 559, 1521, 0, 691, + 0, 662, 333, 0, 0, 2784, 358, 0, 0, 0, 1425, 1269, 0, 0, 0, 1033, + 0, 0, 0, 0, 0, 1459, 0, 838, 1463, 291, 0, 0, 0, 402, 0, 0, + 886, 2775, 78, 2270, 1172, 2869, 0, 1455, 0, 2192, 0, 1322, 0, 1341, 1179, 0, + 0, 501, 0, 0, 122, 1301, 0, 1596, 2269, 490, 0, 0, 2736, 0, 2042, 0, + 204, 2861, 346, 1291, 0, 225, 0, 527, 0, 0, 2190, 0, 0, 0, 1171, 2123, + 0, 0, 1581, 1705, 2667, 0, 1118, 1298, 2313, 0, 0, 0, 299, 1191, 479, 0, + 0, 2308, 0, 1239, 2703, 1632, 0, 0, 0, 500, 179, 0, 1460, 709, 0, 0, + 727, 2664, 2693, 1698, 0, 0, 0, 0, 1860, 0, 0, 671, 2609, 1730, 987, 1715, + 0, 2163, 0, 1107, 638, 0, 2195, 0, 0, 278, 398, 0, 0, 367, 1469, 2459, + 0, 0, 57, 1141, 2722, 0, 0, 2751, 1920, 2740, 0, 1945, 2526, 0, 1231, 0, + 1095, 2340, 2116, 0, 1137, 0, 0, 0, 0, 0, 1883, 0, 1145, 1308, 0, 170, + 756, 2911, 0, 663, 234, 0, 0, 1956, 0, 705, 2731, 758, 0, 0, 0, 1931, + 0, 0, 704, 0, 0, 948, 579, 1393, 1873, 0, 2580, 832, 0, 2904, 2096, 0, + 1964, 0, 2167, 0, 0, 553, 0, 0, 0, 768, 0, 2794, 0, 2678, 1810, 1988, + 0, 1432, 0, 0, 0, 1943, 875, 0, 1138, 1735, 1336, 170, 1525, 1967, 0, 197, + 0, 0, 0, 2398, 666, 0, 344, 0, 210, 0, 325, 2555, 2817, 1383, 2913, 0, + 2746, 919, 1448, 0, 0, 0, 0, 2909, 0, 1095, 1199, 2451, 0, 1155, 439, 2734, + 1479, 2512, 504, 1344, 0, 0, 2572, 684, 1039, 799, 2047, 0, 0, 871, 0, 0, + 908, 0, 0, 0, 2069, 53, 376, 0, 566, 0, 920, 0, 2207, 0, 0, 0, + 1353, 0, 0, 978, 0, 252, 656, 0, 1541, 1990, 0, 273, 140, 1670, 0, 762, + 0, 0, 0, 0, 1913, 95, 0, 198, 1718, 175, 0, 0, 0, 0, 0, 0, + 1447, 0, 1080, 2764, 0, 2471, 1574, 1091, 775, 0, 0, 1897, 2375, 2556, 1669, 0, + 2710, 277, 193, 0, 0, 0, 0, 0, 0, 0, 1597, 0, 1757, 0, 2718, 0, + 680, 0, 0, 0, 56, 0, 2217, 0, 872, 0, 0, 1106, 2099, 2778, 0, 0, + 0, 0, 2297, 0, 2797, 0, 0, 1577, 590, 0, 996, 1982, 2886, 0, 0, 51, + 0, 0, 0, 249, 424, 219, 0, 405, 1261, 0, 0, 1249, 420, 0, 0, 0, + 1551, 884, 2340, 2855, 547, 0, 1203, 352, 0, 2001, 0, 340, 0, 1831, 425, 0, + 1925, 0, 1074, 630, 1613, 522, 0, 0, 575, 2656, 0, 1096, 2744, 1804, 0, 0, + 1182, 453, 1540, 889, 163, 0, 0, 0, 702, 999, 0, 1454, 0, 2587, 0, 483, + 1358, 1722, 0, 277, 827, 2790, 0, 2170, 0, 0, 0, 1156, 63, 333, 803, 0, + 757, 1835, 0, 2770, 2321, 0, 392, 1769, 0, 1071, 754, 0, 2677, 0, 426, 0, + 0, 2795, 0, 512, 0, 2340, 883, 545, 457, 726, 2809, 1035, 0, 1104, 1921, 0, + 0, 1854, 1942, 0, 0, 2526, 0, 460, 1225, 0, 1115, 2108, 0, 2746, 0, 0, + 0, 0, 500, 0, 0, 0, 0, 172, 1682, 1542, 2730, 0, 1849, 0, 0, 0, + 0, 1421, 0, 0, 0, 2806, 675, 63, 1402, 0, 314, 871, 0, 0, 1565, 2378, + 0, 0, 0, 2897, 0, 924, 412, 0, 397, 0, 0, 1537, 0, 35, 2833, 0, + 2207, 0, 0, 129, 2201, 2921, 0, 1522, 804, 0, 0, 1302, 1478, 0, 0, 747, + 646, 0, 1823, 607, 0, 2459, 0, 2921, 8, 1218, 966, 265, 64, 2413, 2042, 0, + 0, 1576, 1330, 698, 751, 0, 835, 1317, 0, 0, 1038, 196, 2462, 0, 1124, 2699, + 1482, 0, 122, 0, 0, 0, 0, 1698, 0, 0, 0, 411, 1017, 50, 0, 0, + 0, 0, 2033, 0, 0, 0, 0, 1822, 0, 1165, 1203, 548, 2831, 0, 728, 0, + 1484, 0, 1137, 0, 1489, 0, 143, 427, 1833, 975, 0, 1014, 1928, 0, 1506, 2439, + 0, 0, 2724, 0, 821, 0, 2276, 2551, 1368, 1395, 461, 1905, 551, 1095, 2202, 0, + 534, 1064, 340, 951, 315, 625, 234, 1185, 2638, 1569, 666, 535, 0, 0, 2315, 2875, + 1404, 0, 935, 2776, 335, 0, 0, 0, 637, 0, 0, 2481, 269, 777, 965, 268, + 0, 1359, 853, 2228, 1171, 2266, 0, 24, 2586, 2732, 2589, 117, 0, 143, 0, 1565, + 2144, 1580, 2899, 0, 745, 1194, 16, 1427, 1263, 2871, 2613, 1374, 0, 1036, 0, 505, + 214, 1547, 1103, 0, 883, 0, 0, 0, 962, 0, 2431, 2798, 1569, 0, 1110, 0, + 2650, 861, 926, 1741, 896, 251, 0, 2468, 2507, 7, 354, 2749, 0, 1325, 0, 0, + 0, 1963, 0, 370, 0, 1193, 0, 0, 2922, 0, 2815, 0, 263, 1196, 350, 689, + 1887, 0, 903, 0, 2145, 1585, 97, 2301, 0, 0, 1209, 1915, 0, 2604, 314, 1566, + 142, 0, 0, 1492, 1730, 0, 2700, 887, 0, 1214, 1603, 966, 0, 1840, 0, 641, + 1369, 0, 2415, 668, 2219, 0, 0, 1922, 0, 0, 2325, 2036, 1129, 462, 2343, 1591, + 0, 407, 322, 2439, 0, 0, 2368, 0, 0, 290, 414, 1473, 2108, 393, 1972, 2534, + 2217, 0, 2615, 1059, 1140, 0, 659, 1602, 0, 2509, 1857, 1062, 183, 1039, 1999, 0, + 400, 2072, 0, 1807, 0, 129, 0, 0, 0, 0, 1402, 0, 83, 886, 2619, 2827, + 75, 2462, 264, 474, 0, 1375, 339, 2698, 1397, 0, 900, 2035, 0, 2459, 2664, 0, + 0, 2598, 1144, 1161, 0, 0, 294, 0, 521, 2269, 102, 2744, 0, 301, 385, 904, + 0, 0, 0, 1903, 0, 0, 809, 553, 0, 1477, 344, 1286, 0, 2782, 0, 382, + 1623, 0, 137, 0, 897, 0, 1133, 0, 2175, 1129, 0, 1866, 2482, 2876, 251, 31, + 997, 1146, 2270, 893, 0, 0, 0, 0, 1610, 0, 1042, 2815, 2916, 0, 0, 1239, + 0, 892, 2751, 1570, 2596, 97, 134, 418, 1188, 2752, 2491, 318, 0, 278, 1272, 743, + 2595, 0, 1127, 289, 0, 2032, 2331, 0, 0, 2675, 2061, 1020, 0, 678, 2033, 2532, + 440, 437, 685, 1009, 0, 416, 1264, 0, 0, 1023, 2891, 0, 0, 0, 0, 1493, + 867, 182, 2205, 1668, 1359, 1593, 246, 0, 0, 2890, 91, 1019, 0, 0, 2085, 2212, + 2722, 1629, 856, 2883, 389, 693, 0, 2230, 0, 1585, 371, 0, 823, 2216, 0, 0, + 0, 0, 0, 1022, 0, 1833, 0, 0, 17, 0, 317, 343, 0, 1012, 2470, 2785, + 0, 0, 122, 0, 1254, 0, 173, 351, 0, 0, 0, 0, 892, 1773, 1940, 295, + 0, 2708, 2635, 1470, 1736, 466, 206, 631, 1194, 300, 28, 1109, 1694, 0, 0, 2859, + 0, 1031, 0, 0, 1587, 629, 927, 2421, 0, 550, 0, 1896, 0, 2776, 0, 2560, + 1240, 165, 383, 2745, 788, 0, 0, 1025, 158, 2406, 2662, 2611, 2316, 0, 0, 666, + 2174, 0, 817, 1273, 0, 0, 843, 0, 2140, 0, 1598, 2696, 0, 0, 0, 1311, + 563, 1708, 871, 0, 2088, 0, 979, 2752, 0, 2057, 39, 2081, 448, 0, 1167, 20, + 1287, 0, 0, 1401, 453, 369, 2286, 515, 0, 1174, 0, 1410, 0, 0, 874, 0, + 0, 585, 2689, 526, 1538, 0, 2265, 0, 955, 0, 2702, 0, 0, 0, 0, 0, + 0, 193, 0, 473, 1156, 2427, 532, 403, 0, 0, 0, 0, 2843, 206, 2302, 208, + 0, 1358, 642, 0, 0, 1064, 0, 1577, 0, 1069, 2021, 2745, 2333, 0, 239, 1178, + 1486, 2029, 2248, 0, 0, 0, 2688, 0, 0, 2086, 1231, 0, 237, 0, 714, 1336, + 2573, 0, 2730, 0, 2120, 12, 0, 2082, 769, 0, 125, 0, 207, 1333, 1127, 396, + 0, 672, 0, 1251, 0, 0, 0, 2312, 829, 1007, 544, 2041, 1143, 1332, 889, 0, + 0, 2898, 0, 1491, 0, 0, 0, 0, 0, 167, 2923, 750, 0, 0, 0, 829, + 770, 244, 0, 584, 429, 755, 1302, 0, 0, 85, 157, 122, 1071, 0, 1601, 0, + 0, 1820, 0, 0, 344, 0, 0, 453, 1879, 0, 0, 0, 604, 1446, 452, 2722, + 2875, 286, 0, 1183, 428, 0, 0, 175, 0, 0, 0, 0, 950, 2134, 0, 0, + 1077, 1623, 1400, 13, 541, 0, 0, 0, 0, 0, 0, 672, 2057, 23, 1157, 1920, + 0, 403, 0, 1927, 0, 0, 1101, 0, 329, 93, 2765, 0, 1213, 1450, 0, 0, + 53, 996, 0, 2402, 0, 228, 407, 2001, 0, 0, 0, 2684, 1051, 0, 1926, 0, + 0, 0, 0, 0, 0, 0, 1753, 0, 973, 2392, 605, 0, 1731, 979, 2853, 0, + 309, 0, 1658, 238, 153, 2396, 0, 0, 1176, 482, 210, 1013, 0, 0, 1166, 115, + 161, 0, 509, 282, 0, 0, 0, 1085, 287, 74, 780, 2243, 0, 1401, 1227, 444, + 0, 266, 0, 973, 16, 1516, 834, 0, 1212, 2585, 2432, 1312, 0, 0, 0, 1204, + 1587, 2654, 0, 619, 487, 603, 1128, 367, 1088, 0, 0, 0, 1309, 1099, 2806, 0, + 0, 353, 2005, 2469, 0, 0, 0, 0, 264, 553, 441, 2219, 442, 0, 1192, 0, + 1246, 0, 220, 432, 0, 0, 816, 879, 1241, 0, 1338, 476, 1029, 0, 271, 355, + 0, 0, 262, 1988, 963, 1220, 2479, 2542, 44, 0, 1197, 592, 2476, 1451, 2668, 1895, + 2531, 746, 0, 1483, 1389, 912, 1056, 0, 56, 0, 2077, 0, 1977, 1253, 2890, 2559, + 0, 1363, 915, 2090, 0, 77, 0, 2222, 0, 1399, 2628, 0, 922, 379, 351, 472, + 2504, 0, 0, 0, 1034, 802, 0, 0, 2529, 2202, 1575, 1724, 0, 0, 0, 24, + 0, 1506, 0, 1380, 0, 218, 0, 1148, 1114, 0, 0, 1788, 0, 1648, 1646, 2151, + 547, 0, 2099, 0, 0, 0, 2035, 1628, 0, 1359, 183, 991, 1251, 1202, 0, 1131, + 0, 0, 1, 880, 625, 0, 0, 1412, 2082, 697, 0, 836, 195, 2063, 1266, 220, + 0, 1508, 1454, 2484, 854, 0, 481, 2595, 1171, 1435, 0, 882, 1083, 0, 2616, 777, + 741, 0, 934, 279, 2059, 574, 1626, 0, 2055, 1643, 0, 1859, 0, 0, 0, 957, + 528, 0, 1411, 1579, 0, 850, 1618, 393, 0, 1277, 454, 62, 1159, 406, 1517, 138, + 1092, 237, 0, 0, 1162, 2741, 0, 0, 0, 1494, 1048, 2051, 0, 1755, 2110, 98, + 844, 324, 1435, 0, 1578, 2746, 1217, 0, 0, 0, 292, 2713, 2882, 1464, 2010, 740, + 1476, 0, 0, 0, 0, 0, 0, 1248, 0, 0, 0, 1, 951, 814, 900, 2869, + 2488, 0, 2070, 0, 715, 905, 1075, 367, 571, 0, 1210, 583, 676, 0, 2493, 72, + 0, 0, 835, 2637, 896, 792, 80, 0, 1992, 0, 0, 0, 0, 1588, 1398, 319, + 174, 545, 838, 382, 0, 0, 0, 0, 461, 554, 0, 571, 2846, 674, 961, 691, + 894, 1216, 0, 0, 1347, 2631, 1696, 1778, 468, 1276, 1539, 0, 1518, 724, 1083, 593, + 0, 970, 2017, 1025, 1122, 867, 2172, 521, 1582, 0, 1097, 425, 0, 0, 0, 0, + 0, 1077, 1027, 0, 0, 0, 1077, 2615, 51, 1130, 1030, 579, 1457, 1450, 0, 0, + 2500, 0, 0, 1125, 2482, 0, 1334, 77, 0, 1180, 1373, 2724, 0, 79, 141, 0, + 586, 1323, 1366, 1528, 1566, 1680, 1761, 0, 1489, 0, 0, 2100, 0, 0, 1664, 933, + 523, 1303, 1398, 2476, 0, 1356, 0, 2278, 114, 1793, 2510, 0, 517, 1932, 1218, 0, + 0, 0, 0, 1488, 0, 0, 2321, 0, 710, 0, 0, 843, 0, 59, 1134, 1938, + 2545, 2272, 81, 2714, 2266, 614, 305, 0, 456, 1104, 1170, 0, 0, 0, 587, 1379, + 2323, 1709, 1344, 843, 2346, 1464, 0, 0, 0, 2622, 0, 0, 211, 0, 2888, 0, + 0, 0, 457, 0, 0, 91, 455, 62, 2755, 569, 2817, 0, 1104, 2520, 1583, 0, + 2755, 973, 329, 1110, 0, 0, 1136, 641, 439, 651, 1152, 479, 1622, 2271, 452, 668, + 255, 0, 0, 488, 0, 2711, 1974, 846, 0, 789, 0, 0, 0, 2136, 131, 0, + 0, 233, 2553, 2431, 2528, 0, 395, 0, 0, 408, 0, 70, 0, 0, 0, 412, + 893, 0, 1450, 0, 0, 1844, 0, 2620, 1507, 1234, 2137, 0, 888, 2693, 0, 0, + 0, 0, 0, 2372, 2603, 1635, 0, 909, 1575, 762, 2041, 409, 0, 1512, 267, 0, + 0, 935, 0, 0, 2867, 901, 144, 74, 0, 0, 2884, 2638, 0, 0, 2813, 363, + 203, 1609, 0, 1216, 0, 297, 1274, 117, 366, 491, 317, 530, 1050, 868, 1236, 0, + 2780, 0, 1312, 1223, 797, 603, 0, 0, 1203, 0, 2548, 0, 1538, 0, 1241, 0, + 0, 2775, 1719, 1399, 97, 0, 1082, 1731, 3, 0, 0, 387, 0, 1090, 1910, 32, + 162, 0, 2922, 0, 0, 608, 347, 510, 1465, 0, 675, 0, 0, 770, 971, 1673, + 1159, 0, 0, 496, 939, 0, 269, 314, 2776, 0, 1721, 1563, 1557, 0, 0, 665, + 1436, 2506, 1641, 601, 2171, 0, 914, 0, 784, 1072, 0, 0, 0, 740, 1147, 0, + 0, 714, 682, 2427, 0, 1071, 2550, 2169, 1146, 61, 1232, 816, 10, 1453, 0, 1117, + 278, 559, 584, 1605, 0, 0, 2887, 990, 1101, 2030, 0, 0}; int MangledHashG(const char *key, const int *T) { int sum = 0; for (int i = 0; key[i] != '\0'; i++) { sum += T[i] * key[i]; - sum %= 3208; + sum %= 2924; } return mangledkG[sum]; } int MangledPerfectHash(const char *key) { if (strlen(key) > 40) return 0; - return (MangledHashG(key, mangledkT1) + MangledHashG(key, mangledkT2)) % 3208; + return (MangledHashG(key, mangledkT1) + MangledHashG(key, mangledkT2)) % 2924; } -constexpr int unmangledkT1[] = {246, 133, 248, 237, 59, 207, 93, 240, 98, 265, 137, 42, 147, - 269, 280, 3, 248, 202, 278, 80, 240, 202, 142, 149, 257, 17}; -constexpr int unmangledkT2[] = {166, 291, 199, 102, 183, 190, 20, 31, 50, 30, 134, 213, 202, - 55, 268, 11, 15, 108, 22, 43, 119, 187, 239, 91, 190, 47}; +constexpr int unmangledkT1[] = {117, 100, 175, 73, 62, 169, 79, 220, 4, 91, 224, 166, 55, + 229, 227, 3, 24, 236, 181, 221, 15, 67, 197, 152, 35, 35}; +constexpr int unmangledkT2[] = {189, 204, 50, 180, 250, 9, 42, 246, 97, 141, 38, 136, 163, + 102, 48, 27, 254, 180, 50, 30, 105, 152, 194, 229, 33, 152}; constexpr int unmangledkG[] = { - 0, 42, 0, 0, 0, 127, 0, 0, 0, 291, 0, 201, 0, 0, 234, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 152, 156, 0, 67, 0, 230, 127, 0, 0, 161, 0, 0, 59, - 0, 265, 0, 241, 0, 160, 155, 0, 0, 46, 25, 0, 109, 0, 147, 21, 0, 32, 0, - 0, 0, 0, 84, 23, 16, 142, 177, 0, 18, 0, 27, 66, 255, 142, 135, 59, 222, 57, - 39, 0, 0, 99, 142, 122, 0, 32, 0, 0, 75, 0, 0, 136, 291, 68, 0, 0, 0, - 19, 64, 205, 0, 238, 274, 176, 120, 80, 81, 105, 0, 201, 42, 0, 0, 60, 268, 3, - 277, 0, 39, 0, 31, 14, 0, 54, 181, 93, 277, 149, 0, 146, 153, 0, 0, 0, 158, - 278, 0, 0, 65, 238, 158, 0, 73, 276, 0, 0, 185, 140, 0, 0, 0, 179, 0, 38, - 0, 39, 0, 166, 88, 54, 0, 232, 0, 0, 57, 0, 80, 0, 0, 30, 0, 91, 0, - 0, 75, 0, 108, 0, 9, 212, 0, 55, 0, 196, 21, 0, 0, 153, 76, 239, 0, 0, - 119, 86, 0, 193, 282, 0, 0, 0, 98, 2, 0, 102, 0, 13, 64, 0, 25, 58, 67, - 0, 117, 159, 0, 0, 5, 29, 0, 56, 186, 54, 0, 254, 180, 84, 290, 0, 120, 0, - 204, 39, 5, 0, 0, 44, 151, 0, 0, 254, 0, 93, 136, 194, 152, 0, 166, 115, 87, - 0, 0, 0, 0, 138, 0, 62, 15, 0, 0, 41, 274, 90, 239, 113, 0, 0, 118, 246, - 273, 226, 0, 133, 0, 269, 0, 3, 0, 0, 98, 277, 86, 151, 156, 218, 282, 0, 0, - 0, 0, 29, 51, 0, 129, 63}; + 0, 0, 27, 0, 57, 0, 170, 30, 35, 81, 0, 0, 115, 112, 204, 0, 154, 52, 7, + 17, 79, 19, 0, 79, 0, 130, 0, 0, 223, 81, 198, 121, 0, 63, 0, 220, 0, 68, + 0, 197, 0, 0, 0, 189, 0, 0, 0, 240, 6, 0, 95, 0, 68, 0, 0, 195, 0, + 0, 98, 0, 237, 0, 0, 229, 86, 110, 0, 53, 170, 223, 11, 0, 0, 166, 0, 0, + 18, 48, 54, 0, 232, 113, 96, 58, 0, 208, 254, 172, 243, 119, 0, 0, 58, 81, 196, + 131, 0, 0, 106, 81, 0, 198, 0, 218, 0, 160, 197, 123, 0, 180, 152, 177, 187, 0, + 0, 0, 0, 175, 91, 0, 140, 215, 0, 89, 0, 245, 0, 26, 0, 104, 62, 0, 141, + 235, 220, 193, 0, 0, 175, 29, 28, 137, 45, 217, 0, 0, 193, 191, 246, 201, 0, 0, + 183, 165, 32, 60, 221, 156, 103, 38, 174, 223, 0, 0, 0, 44, 180, 194, 244, 58, 242, + 88, 0, 30, 227, 200, 15, 0, 141, 0, 37, 93, 171, 42, 207, 7, 143, 0, 0, 187, + 19, 243, 191, 0, 0, 0, 16, 0, 190, 112, 125, 71, 0, 126, 130, 105, 0, 0, 0, + 217, 154, 0, 37, 203, 0, 234, 0, 222, 0, 42, 0, 54, 39, 251, 0, 124, 149, 132, + 0, 66, 47, 69, 146, 0, 68, 247, 0, 32, 33, 62, 208, 96, 130, 227, 18, 20, 233, + 107, 0, 191, 0, 217, 50, 52, 96}; int UnmangledHashG(const char *key, const int *T) { int sum = 0; for (int i = 0; key[i] != '\0'; i++) { sum += T[i] * key[i]; - sum %= 292; + sum %= 255; } return unmangledkG[sum]; } int UnmangledPerfectHash(const char *key) { if (strlen(key) > 26) return 0; - return (UnmangledHashG(key, unmangledkT1) + UnmangledHashG(key, unmangledkT2)) % 292; + return (UnmangledHashG(key, unmangledkT1) + UnmangledHashG(key, unmangledkT2)) % 255; } } // namespace namespace sh @@ -327,7 +305,5 @@ { return UnmangledPerfectHash(data()); } } // namespace sh - -#endif // ANGLE_TRANSLATOR_ESSL_ONLY diff --git a/gfx/angle/checkout/src/compiler/translator/ImmutableString_autogen.cpp b/gfx/angle/checkout/src/compiler/translator/ImmutableString_autogen.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/ImmutableString_autogen.cpp +++ /dev/null @@ -1,383 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_builtin_symbols.py using data from builtin_variables.json and -// builtin_function_declarations.txt. -// -// 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. -// -// ImmutableString_autogen.cpp: Wrapper for static or pool allocated char arrays, that are -// guaranteed to be valid and unchanged for the duration of the compilation. Implements -// mangledNameHash using perfect hash function from gen_builtin_symbols.py - -#ifndef ANGLE_TRANSLATOR_ESSL_ONLY - -# include "compiler/translator/ImmutableString.h" - -std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str) -{ - return os.write(str.data(), str.length()); -} - -# if defined(_MSC_VER) -# pragma warning(disable : 4309) // truncation of constant value -# endif - -namespace -{ - -constexpr int mangledkT1[] = {3102, 1325, 1351, 3001, 1248, 3253, 589, 739, 2360, 2951, - 1700, 3759, 2038, 664, 3245, 3120, 1585, 527, 2294, 2587, - 1485, 188, 2635, 932, 884, 1991, 918, 320, 2213, 3603, - 676, 1242, 115, 2611, 2163, 2535, 3233, 54, 3230, 1500}; -constexpr int mangledkT2[] = {1129, 226, 3871, 1567, 3267, 3307, 452, 3099, 2330, 3246, - 3512, 1556, 3216, 909, 1679, 1812, 3619, 2551, 2821, 3333, - 3764, 2526, 2149, 2101, 1636, 2341, 2985, 454, 627, 1307, - 466, 537, 2536, 736, 2238, 1704, 1050, 3135, 564, 182}; -constexpr int mangledkG[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 2762, 0, 0, 3695, - 2780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2474, - 0, 616, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0, 242, 0, 0, - 0, 2505, 1729, 3344, 0, 0, 362, 0, 139, 0, 0, 0, 0, 3022, 2925, 0, - 0, 0, 0, 0, 0, 961, 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1206, 0, 0, 0, 0, 0, 2292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2294, 0, 0, 0, 0, 0, 0, 3243, 0, 0, 1832, 1889, - 3015, 2347, 397, 0, 0, 0, 0, 0, 2268, 487, 1220, 0, 0, 2970, 0, 0, - 0, 0, 0, 0, 0, 192, 1062, 0, 0, 0, 0, 0, 0, 0, 0, 1118, - 0, 0, 1389, 0, 0, 0, 0, 3334, 0, 0, 1866, 0, 0, 0, 3268, 0, - 0, 1397, 0, 0, 0, 0, 0, 735, 0, 0, 0, 193, 15, 0, 3158, 0, - 0, 0, 3298, 2376, 0, 1462, 2924, 183, 0, 2649, 0, 0, 3226, 3552, 3343, 0, - 2502, 3258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1942, 0, 0, 397, - 1413, 2818, 0, 0, 0, 0, 2738, 2414, 3786, 0, 0, 0, 67, 0, 0, 236, - 0, 0, 0, 0, 2668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, - 0, 0, 0, 0, 264, 1411, 0, 0, 820, 0, 1770, 0, 806, 833, 0, 0, - 1814, 3051, 0, 3651, 2100, 0, 66, 0, 878, 0, 0, 0, 1974, 854, 0, 2011, - 0, 0, 0, 0, 3393, 1300, 0, 0, 0, 109, 0, 0, 0, 0, 3313, 0, - 3075, 0, 0, 0, 617, 0, 0, 2650, 0, 0, 465, 3456, 152, 84, 3232, 752, - 1075, 0, 0, 1699, 0, 224, 863, 0, 0, 0, 0, 0, 0, 2953, 0, 0, - 0, 3203, 0, 121, 0, 2641, 0, 0, 0, 204, 0, 0, 1953, 0, 0, 0, - 0, 3898, 3511, 0, 1586, 696, 0, 0, 2698, 0, 2432, 3277, 0, 0, 1511, 663, - 0, 0, 1570, 0, 604, 3199, 0, 0, 1463, 393, 0, 0, 0, 0, 2089, 1937, - 752, 0, 532, 0, 1645, 0, 939, 3461, 2351, 1982, 0, 3505, 0, 661, 0, 0, - 0, 0, 0, 1720, 753, 3334, 0, 2086, 164, 0, 2217, 1863, 0, 0, 0, 0, - 0, 3788, 1074, 0, 1229, 0, 403, 0, 910, 345, 0, 1835, 129, 2886, 0, 0, - 0, 0, 2440, 2572, 0, 0, 0, 0, 0, 3718, 0, 3856, 13, 0, 2909, 449, - 0, 0, 0, 0, 0, 3898, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 3301, - 0, 3374, 0, 0, 0, 2637, 0, 0, 0, 0, 0, 2487, 24, 1432, 0, 1127, - 99, 0, 0, 0, 0, 3601, 3638, 2083, 0, 3667, 676, 1955, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2263, 2650, 0, 0, 813, 2872, 0, 0, 1530, 1263, - 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 509, 2814, - 1472, 1384, 0, 0, 0, 0, 0, 3528, 0, 0, 0, 0, 923, 649, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 183, 0, 439, - 1359, 0, 0, 0, 0, 1291, 167, 0, 0, 591, 0, 1224, 0, 1753, 0, 0, - 0, 0, 418, 3560, 0, 1326, 2703, 0, 0, 2694, 0, 104, 440, 0, 0, 0, - 0, 0, 0, 0, 0, 2005, 0, 2661, 0, 0, 2969, 1668, 3653, 0, 0, 0, - 0, 0, 0, 3832, 0, 2835, 380, 0, 3081, 0, 0, 0, 199, 0, 653, 3303, - 0, 3432, 0, 1524, 1795, 2718, 0, 2461, 0, 0, 1838, 0, 0, 724, 1453, 0, - 0, 578, 2660, 2676, 1297, 0, 0, 0, 0, 3364, 0, 0, 0, 0, 0, 1997, - 0, 0, 0, 79, 0, 319, 1270, 1804, 515, 254, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1728, 0, 938, 2011, 1135, 419, 3847, 0, 0, - 992, 0, 1601, 0, 0, 0, 0, 0, 3562, 867, 0, 0, 0, 27, 0, 0, - 1426, 0, 0, 2559, 686, 0, 0, 0, 0, 608, 1880, 3358, 0, 0, 76, 0, - 0, 0, 0, 1686, 1122, 780, 0, 0, 2811, 0, 805, 0, 3568, 3098, 0, 0, - 0, 0, 0, 0, 0, 0, 2172, 429, 3755, 0, 819, 0, 0, 0, 538, 3871, - 3617, 2269, 0, 147, 0, 3475, 2291, 0, 0, 868, 2865, 2720, 738, 0, 9, 766, - 353, 2940, 521, 0, 0, 0, 0, 0, 3649, 1789, 121, 0, 0, 438, 2023, 0, - 0, 1124, 0, 0, 0, 0, 0, 469, 3089, 0, 3837, 2214, 273, 1776, 722, 0, - 0, 0, 0, 0, 0, 3583, 3394, 0, 0, 1302, 3405, 0, 1191, 1277, 0, 3244, - 0, 1010, 0, 771, 775, 0, 1234, 340, 0, 0, 0, 1029, 0, 0, 1037, 306, - 2918, 0, 0, 1276, 2437, 948, 3700, 2008, 0, 0, 0, 486, 0, 3645, 510, 287, - 1555, 1946, 483, 0, 3344, 0, 3126, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3249, 0, 0, 0, 2124, 1044, 0, 2645, 0, 0, 0, 0, 3079, 0, 0, - 0, 0, 0, 0, 0, 581, 3109, 0, 934, 0, 0, 0, 0, 0, 3881, 1317, - 0, 1109, 781, 1122, 0, 1191, 1355, 3154, 0, 817, 3560, 765, 2974, 0, 0, 461, - 2776, 1285, 154, 0, 0, 1414, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, - 2040, 0, 1688, 1493, 342, 0, 1988, 2055, 3664, 0, 0, 0, 0, 3009, 1412, 1879, - 0, 3385, 0, 0, 0, 2079, 0, 0, 1781, 1010, 108, 723, 0, 1690, 2810, 3783, - 0, 3575, 0, 3907, 0, 0, 0, 0, 0, 270, 0, 0, 0, 2331, 0, 2006, - 3770, 0, 0, 1036, 632, 0, 0, 0, 0, 2318, 0, 0, 0, 0, 3878, 1634, - 0, 0, 1529, 0, 0, 2716, 0, 0, 0, 0, 1054, 0, 896, 0, 0, 0, - 0, 2124, 481, 0, 2613, 0, 912, 0, 0, 3746, 305, 2703, 0, 0, 1175, 1283, - 3886, 2628, 0, 92, 0, 0, 0, 0, 1490, 178, 0, 503, 702, 158, 0, 2096, - 0, 0, 0, 0, 1670, 1409, 0, 0, 0, 0, 2260, 0, 0, 1825, 0, 1631, - 635, 330, 0, 0, 1900, 2157, 3669, 3727, 1122, 2498, 0, 0, 1377, 2971, 321, 1839, - 0, 0, 3277, 141, 2528, 0, 0, 227, 1866, 0, 0, 339, 0, 0, 404, 0, - 2374, 1075, 2268, 1018, 2103, 0, 0, 0, 0, 0, 922, 0, 0, 2266, 0, 2027, - 0, 3904, 0, 654, 0, 484, 2286, 0, 0, 1868, 161, 0, 3515, 255, 1416, 3170, - 0, 0, 0, 528, 711, 1932, 0, 0, 0, 0, 288, 0, 3459, 0, 0, 0, - 655, 0, 2951, 571, 2357, 0, 0, 0, 0, 0, 0, 0, 2590, 1535, 0, 0, - 912, 0, 0, 0, 1011, 821, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, - 0, 2238, 0, 1591, 0, 3622, 2020, 2798, 0, 0, 0, 3522, 0, 87, 2687, 3437, - 0, 0, 0, 0, 3307, 386, 2148, 0, 1410, 0, 0, 3563, 3214, 0, 0, 2854, - 3813, 0, 480, 1560, 1760, 0, 0, 871, 0, 0, 0, 2318, 1249, 1689, 1358, 2132, - 2163, 2945, 0, 991, 332, 2860, 139, 63, 0, 2621, 2871, 1084, 0, 0, 470, 729, - 0, 0, 0, 0, 1442, 485, 3878, 740, 267, 0, 3366, 1, 2026, 0, 0, 214, - 914, 2285, 0, 0, 1395, 0, 0, 0, 848, 1362, 0, 1670, 0, 0, 0, 1754, - 0, 240, 0, 2923, 803, 0, 3737, 0, 932, 0, 2561, 0, 0, 2481, 0, 1902, - 2426, 1238, 2118, 1248, 0, 3123, 0, 3614, 0, 0, 1562, 0, 0, 1264, 0, 0, - 2517, 1042, 0, 1322, 1074, 397, 0, 0, 3245, 0, 307, 0, 0, 2735, 0, 0, - 0, 2187, 3421, 0, 78, 1464, 0, 2229, 1124, 1620, 0, 1851, 1266, 3861, 3570, 2512, - 3721, 0, 2434, 0, 898, 595, 1028, 0, 0, 674, 552, 1303, 107, 0, 2828, 1223, - 2115, 488, 1162, 1495, 297, 1451, 0, 1263, 2406, 2547, 3691, 58, 0, 0, 901, 0, - 188, 3764, 552, 1100, 2652, 1908, 0, 0, 3509, 2174, 0, 2721, 1608, 3120, 0, 0, - 2208, 2502, 0, 0, 0, 141, 0, 0, 3513, 1495, 1346, 0, 0, 0, 3470, 212, - 1489, 558, 414, 0, 286, 1218, 0, 0, 1959, 397, 0, 687, 0, 3477, 0, 1961, - 0, 1080, 0, 3273, 3838, 2167, 0, 539, 259, 2751, 2004, 591, 1961, 0, 0, 3217, - 2929, 0, 55, 1744, 0, 1974, 1200, 3712, 0, 1782, 437, 0, 0, 0, 0, 0, - 2641, 1928, 0, 3837, 0, 0, 3330, 2153, 1863, 170, 55, 0, 607, 0, 157, 0, - 1080, 622, 0, 0, 2132, 3659, 0, 0, 1926, 327, 1581, 580, 0, 1385, 0, 279, - 0, 590, 2185, 0, 0, 3600, 655, 1765, 0, 0, 0, 2349, 0, 1604, 0, 0, - 0, 378, 821, 0, 9, 1375, 1667, 787, 0, 0, 1331, 0, 0, 30, 1701, 3175, - 0, 0, 520, 3496, 1961, 0, 0, 0, 2421, 328, 0, 0, 0, 705, 0, 196, - 649, 0, 2141, 0, 0, 0, 3375, 142, 0, 1235, 467, 1317, 0, 0, 0, 2020, - 1310, 1774, 0, 1984, 1970, 1576, 1253, 1666, 5, 0, 0, 0, 0, 3866, 1608, 1022, - 2036, 1541, 0, 0, 3463, 2681, 0, 151, 0, 1514, 1431, 0, 0, 657, 2420, 1138, - 0, 511, 0, 2862, 0, 0, 2112, 335, 374, 0, 1633, 3431, 2234, 0, 1917, 0, - 0, 0, 1463, 0, 1479, 2534, 0, 0, 3101, 3053, 2960, 426, 3640, 2198, 2870, 1132, - 3408, 0, 2876, 1012, 0, 0, 0, 0, 3071, 0, 0, 1005, 315, 44, 0, 0, - 1002, 1920, 1183, 0, 0, 2613, 2154, 1517, 0, 3444, 0, 3593, 0, 2733, 1891, 3882, - 40, 918, 242, 0, 3341, 1565, 2210, 1290, 1846, 3872, 2684, 1526, 58, 815, 1012, 2657, - 1402, 0, 0, 0, 84, 2751, 0, 0, 0, 3074, 0, 3785, 1199, 0, 924, 3605, - 0, 0, 1074, 0, 3857, 167, 2251, 0, 0, 0, 0, 0, 1650, 1696, 0, 0, - 0, 0, 910, 2774, 1579, 643, 0, 1834, 0, 3599, 0, 0, 0, 116, 2817, 754, - 0, 0, 0, 3835, 662, 826, 638, 0, 818, 0, 2527, 0, 0, 0, 376, 0, - 2114, 0, 523, 2881, 1323, 3508, 293, 830, 2124, 490, 1006, 3688, 0, 3863, 2800, 0, - 0, 878, 0, 2214, 0, 0, 210, 1404, 0, 0, 0, 0, 3177, 255, 0, 0, - 3673, 540, 1528, 2066, 452, 1568, 1052, 2062, 0, 2630, 2504, 0, 448, 408, 0, 672, - 1255, 720, 0, 1607, 1228, 0, 1921, 0, 0, 2585, 0, 34, 0, 0, 1571, 3473, - 0, 315, 409, 628, 0, 0, 0, 3006, 1559, 2084, 1538, 1570, 2157, 0, 582, 0, - 0, 1519, 0, 1262, 0, 3257, 2850, 0, 0, 1074, 0, 0, 0, 748, 1477, 1600, - 0, 0, 0, 2851, 3302, 0, 0, 0, 0, 219, 1185, 2753, 1834, 0, 3303, 0, - 2714, 0, 908, 0, 3167, 1033, 1614, 0, 2484, 0, 0, 138, 285, 0, 0, 83, - 0, 1725, 1523, 0, 782, 0, 1889, 1651, 2226, 0, 2741, 1363, 1560, 0, 0, 2891, - 0, 1451, 0, 493, 0, 2128, 403, 1797, 3240, 1981, 1644, 3337, 260, 39, 614, 1547, - 1877, 1072, 1355, 0, 0, 0, 2458, 645, 2145, 181, 1081, 0, 0, 0, 0, 0, - 0, 1268, 0, 0, 0, 0, 0, 693, 2656, 326, 0, 689, 582, 2199, 3405, 1820, - 1081, 1843, 634, 0, 0, 0, 0, 3336, 0, 3418, 0, 1685, 0, 0, 0, 0, - 1697, 2997, 2608, 409, 921, 0, 0, 624, 3482, 0, 0, 1992, 1272, 2445, 0, 0, - 1328, 0, 989, 3597, 0, 3585, 3883, 3195, 1598, 0, 0, 1417, 0, 2660, 2003, 0, - 0, 0, 0, 1971, 0, 431, 160, 512, 1344, 863, 0, 1273, 1499, 3397, 1480, 0, - 0, 0, 3238, 0, 0, 1553, 0, 0, 0, 2065, 0, 143, 733, 910, 1186, 1340, - 0, 0, 0, 1678, 0, 0, 736, 0, 2918, 699, 0, 0, 33, 478, 3397, 0, - 2897, 2569, 2150, 701, 2982, 3486, 0, 2549, 998, 0, 2305, 412, 149, 1843, 498, 3831, - 245, 0, 2317, 1282, 0, 0, 3008, 0, 0, 0, 771, 5, 0, 2406, 481, 333, - 0, 3753, 0, 0, 0, 1925, 0, 1245, 2106, 133, 0, 942, 563, 1043, 0, 54, - 0, 0, 2897, 3358, 0, 213, 1382, 0, 0, 1246, 0, 0, 3242, 0, 2560, 1193, - 1880, 3657, 0, 0, 0, 0, 3103, 1572, 3218, 976, 1336, 1869, 0, 3441, 0, 0, - 0, 1761, 0, 475, 3499, 2223, 1580, 3241, 1448, 1505, 340, 2161, 971, 2778, 0, 0, - 0, 0, 2277, 1238, 0, 0, 0, 0, 1550, 2419, 3198, 269, 0, 215, 1443, 1331, - 0, 0, 0, 0, 312, 1759, 644, 0, 2454, 2484, 0, 1085, 2497, 1881, 0, 733, - 2926, 2823, 2087, 0, 3876, 2674, 1042, 1476, 0, 825, 0, 0, 2309, 0, 3179, 1074, - 0, 2737, 0, 2037, 164, 1974, 0, 0, 3615, 0, 557, 2285, 543, 0, 3274, 0, - 0, 0, 1549, 3418, 3545, 1415, 0, 3788, 927, 3182, 0, 0, 0, 147, 0, 2151, - 929, 0, 575, 0, 2082, 0, 0, 0, 2292, 2688, 0, 1215, 2858, 3040, 0, 0, - 0, 727, 0, 486, 0, 0, 0, 2010, 0, 3631, 791, 3414, 2056, 0, 0, 0, - 0, 0, 320, 0, 1929, 1448, 2701, 867, 44, 0, 827, 8, 0, 2172, 0, 3685, - 1006, 1809, 421, 1808, 1618, 2961, 1651, 0, 2796, 0, 0, 276, 0, 141, 0, 0, - 0, 1427, 0, 0, 3638, 0, 0, 0, 2652, 1428, 2064, 558, 3346, 0, 0, 0, - 1444, 2779, 0, 1502, 0, 0, 7, 523, 3403, 3075, 454, 0, 0, 0, 963, 1610, - 1687, 753, 0, 0, 0, 2369, 348, 0, 0, 0, 1220, 3088, 1970, 1862, 0, 2015, - 0, 0, 861, 69, 947, 1072, 0, 0, 0, 2095, 1403, 0, 0, 0, 668, 3574, - 0, 0, 1587, 0, 2643, 766, 3064, 839, 1646, 1932, 967, 0, 1379, 159, 747, 0, - 2986, 0, 1369, 0, 0, 2173, 0, 0, 0, 2164, 2861, 0, 1971, 0, 924, 2951, - 1118, 0, 3774, 54, 1008, 0, 3208, 0, 1540, 1133, 0, 1514, 0, 3621, 737, 3311, - 0, 0, 0, 0, 0, 235, 1998, 776, 0, 1671, 214, 2035, 0, 0, 0, 0, - 500, 0, 191, 0, 0, 3520, 0, 2050, 1952, 3160, 0, 2269, 222, 1112, 229, 716, - 140, 0, 1725, 2620, 1604, 3612, 2868, 670, 1860, 1275, 1799, 123, 0, 1244, 2992, 0, - 0, 3772, 0, 1911, 0, 2896, 1208, 52, 594, 20, 0, 0, 0, 0, 3813, 673, - 543, 521, 2132, 0, 2137, 2681, 0, 496, 2754, 369, 0, 3887, 0, 1005, 1821, 0, - 3674, 996, 0, 1672, 1164, 0, 1661, 3564, 564, 0, 151, 2700, 0, 0, 0, 1941, - 683, 0, 0, 0, 2105, 0, 1640, 1792, 1356, 2551, 1462, 2050, 0, 823, 646, 0, - 91, 0, 0, 2709, 798, 0, 1885, 3777, 0, 1968, 2045, 3416, 3606, 1968, 3614, 2815, - 54, 2233, 0, 0, 0, 2119, 1871, 0, 1299, 217, 0, 0, 0, 753, 0, 0, - 1621, 2166, 2026, 778, 1997, 732, 2396, 0, 0, 310, 882, 1292, 0, 886, 3716, 3263, - 338, 0, 0, 0, 0, 3015, 3108, 2660, 1977, 0, 776, 1231, 0, 550, 432, 1992, - 276, 0, 0, 0, 0, 0, 2115, 2554, 2917, 915, 1098, 0, 439, 0, 630, 2970, - 0, 626, 2180, 1762, 0, 966, 66, 760, 1864, 1993, 951, 357, 0, 0, 1268, 0, - 0, 259, 0, 0, 3066, 2879, 0, 0, 1747, 3380, 0, 1650, 352, 2055, 626, 1650, - 0, 2663, 0, 0, 102, 0, 2088, 0, 1340, 3313, 1109, 650, 0, 0, 0, 2916, - 3143, 972, 1052, 2786, 0, 0, 1334, 1546, 672, 381, 3707, 2004, 0, 3114, 1348, 0, - 55, 0, 2183, 0, 2973, 1513, 1206, 0, 742, 2276, 0, 2719, 0, 0, 315, 0, - 0, 1075, 684, 3143, 3873, 3825, 1541, 1932, 0, 1638, 0, 0, 0, 3215, 3824, 2212, - 2929, 560, 748, 0, 1287, 3340, 410, 2005, 1419, 3408, 2366, 0, 0, 0, 2126, 3536, - 1576, 1016, 0, 3899, 0, 593, 2370, 0, 0, 2878, 0, 40, 1304, 1411, 0, 816, - 3294, 0, 2800, 0, 3428, 578, 3641, 3056, 129, 3496, 709, 2110, 0, 0, 1387, 69, - 873, 3302, 3226, 0, 1736, 3183, 566, 531, 0, 3203, 687, 3338, 0, 202, 2062, 0, - 0, 895, 0, 0, 1546, 0, 1288, 2919, 1815, 0, 0, 1287, 0, 3736, 1315, 266, - 821, 2741, 33, 0, 3497, 0, 1059, 3896, 0, 0, 0, 1379, 1597, 118, 1255, 3567, - 3067, 0, 3673, 1079, 0, 275, 1694, 51, 3858, 0, 353, 2263, 0, 3597, 1664, 381, - 1902, 0, 2133, 1741, 898, 0, 1995, 0, 0, 0, 0, 843, 1864, 3428, 2262, 3349, - 0, 2645, 1507, 725, 210, 258, 2887, 0, 681, 2731, 17, 948, 0, 2977, 0, 2370, - 3597, 349, 2424, 2150, 3421, 2596, 1164, 210, 2153, 53, 1962, 471, 99, 2018, 1728, 0, - 0, 2155, 2013, 595, 3828, 2895, 2329, 984, 0, 204, 453, 1341, 1667, 3773, 0, 1817, - 0, 3108, 3707, 1093, 508, 349, 578, 0, 2159, 0, 0, 974, 2466, 3540, 0, 856, - 3793, 1704, 1090, 0, 1657, 470, 0, 0, 1637, 2749, 0, 2442, 3890, 1344, 356, 0, - 63, 2310, 1212, 0, 0, 1520, 2167, 1233, 0, 0, 2035, 2484, 3569, 2255, 0, 0, - 2198, 3562, 0, 927, 1927, 1159, 0, 3827, 1770, 973, 2030, 0, 3891, 0, 0, 2649, - 354, 0, 0, 2788, 0, 2069, 0, 52, 0, 508, 0, 418, 1919, 2246, 884, 1128, - 571, 1174, 1465, 1946, 1264, 3418, 527, 0, 0, 0, 1243, 481, 0, 836, 2770, 1577, - 2660, 3473, 0, 0, 71, 3828, 1713, 0, 1228, 2355, 1192, 0, 1790, 738, 0, 3738, - 3650, 0, 73, 0, 1702, 1863, 0, 617, 0, 0, 1530, 0, 2405, 1775, 929, 0, - 0, 0, 2080, 2768, 0, 3012, 0, 935, 0, 0, 0, 1003, 0, 3536, 0, 1845, - 3873, 3629, 967, 0, 1653, 1452, 2371, 0, 0, 116, 1012, 2871, 0, 0, 855, 3097, - 0, 208, 2550, 0, 2060, 0, 0, 861, 3686, 1367, 3365, 0, 0, 0, 84, 0, - 1296, 1430, 1322, 0, 0, 0, 1698, 2567, 1659, 533, 3172, 3401, 23, 3182, 0, 1090, - 1740, 1020, 0, 0, 0, 0, 0, 1681, 427, 2766, 2834, 2909, 1449, 197, 0, 877, - 285, 3718, 162, 567, 1071, 75, 3783, 0, 635, 0, 2080, 1818, 0, 0, 2750, 0, - 255, 351, 0, 0, 1196, 0, 1084, 0, 810, 2790, 0, 2276, 0, 3083, 2887, 0, - 1301, 617, 3341, 1907, 2568, 2996, 946, 3338, 0, 1090, 898, 521, 0, 1203, 1921, 0, - 2995, 0, 2073, 0, 3755, 0, 2973, 0, 742, 3720, 1032, 493, 42, 2256, 0, 0, - 1189, 2243, 904, 0, 0, 0, 0, 532, 310, 2242, 0, 2165, 0, 3791, 0, 2406, - 0, 0, 1277, 774, 1326, 662, 0, 505, 1959, 3652, 594, 999, 1303, 0, 1756, 0, - 1077, 1337, 2229, 2158, 0, 0, 1816, 0, 348, 1764, 1873, 3387, 3181, 49, 1999, 0, - 929, 82, 0, 0, 0, 1000, 1311, 3475, 507, 1749, 798, 1128, 0, 2962, 1515, 422, - 1931, 256, 0, 0, 1089, 0, 392, 0, 190, 0, 0, 2007, 0, 2846, 2930, 1950, - 0, 940, 0, 3178, 3521, 1228, 1240, 0, 515, 746, 0, 1097, 404, 1554, 3192, 388, - 3497, 715, 1118, 3907, 2484, 1613, 786, 852, 24, 0, 1019, 0, 3664, 0, 81, 0, - 1065, 1587, 1434, 0, 1032, 3497, 1920, 2071, 251, 1394, 0, 3717, 235, 0, 0, 3880, - 323, 0, 0, 182, 0, 2350, 210, 56, 1538, 1135, 819, 2434, 423, 2662, 1661, 0, - 0, 190, 0, 2191, 0, 1829, 3781, 703, 14, 0, 0, 3759, 2941, 0, 968, 0, - 1718, 0, 2519, 3033, 1851, 797, 2103, 2602, 2372, 0, 0, 0, 0, 3672, 0, 3417, - 0, 1068, 758, 3885, 0, 3359, 157, 0, 1456, 1946, 2636, 0, 984, 3785, 3502, 2470, - 2911, 273, 361, 187, 559, 1561, 754, 1164, 0, 1829, 131, 0, 2173, 0, 0, 429, - 1648, 3554, 0, 0, 0, 0, 0, 2723, 1456, 2893, 0, 3325, 920, 0, 1278, 1415, - 870, 0, 1202, 301, 0, 0, 2119, 0, 2843, 0, 865, 1455, 3408, 1013, 0, 3761, - 2880, 1846, 0, 1986, 1336, 0, 0, 0, 3325, 679, 2137, 0, 747, 61, 0, 3632, - 724, 1253, 1210, 0, 1026, 543, 1075, 2140, 1769, 1444, 898, 728, 3618, 3121, 1167, 0, - 0, 1207, 0, 832, 3100, 2689, 0, 0, 0, 0, 0, 1148, 1496, 0, 1068, 379, - 2170, 1804, 3492, 462, 3818, 0, 1488, 1143, 1894, 1053, 0, 2106, 2699, 986, 0, 1591, - 3767, 1635, 420, 2928, 0, 0, 0, 0, 0, 194, 0, 553, 0, 1270, 0, 1388, - 1274, 2357, 159, 1175, 0, 2959, 2994, 0, 1557, 0, 398, 3809, 946, 1030, 0, 1274, - 0, 870, 0, 2234, 3167, 0, 2329, 0, 1596, 0, 0, 57, 1748, 1362, 3827, 1303, - 0, 0, 0, 3452, 0, 1579, 2160, 1638, 3335, 451, 1783, 1139, 2761, 463, 602, 0, - 1461, 0, 1261, 146, 0, 612, 0, 0, 1987, 846, 3795, 211, 598, 0, 0, 979, - 0, 0, 2009, 2219, 53, 2346, 3000, 658, 624, 698, 0, 3845, 2293, 0, 0, 0, - 1642, 0, 0, 711, 2977, 2381, 470, 2439, 14, 1300, 0, 3020, 654, 0, 1307, 541, - 467, 322, 966, 0, 3758, 3079, 0, 0, 646, 594, 2445, 0, 0, 282, 0, 1600, - 0, 660, 430, 1050, 2570, 2336, 1306, 0, 0, 2560, 227, 0, 3467, 1714, 1026, 3810, - 0, 2372, 0, 0, 1855, 0, 0, 1725, 3572, 3321, 0, 0, 0, 72, 448, 0, - 1816, 0, 1048, 3814, 2844, 0, 0, 1786, 2735, 1808, 2014, 703, 0, 0, 0, 0, - 499, 687, 3740, 0, 803, 3524, 447, 747, 456, 3216, 1880, 2958, 0, 103, 341, 812, - 3732, 0, 216, 441, 1629, 1804, 1117, 0, 2048, 0, 0, 253, 1574, 177, 1932, 648, - 1705, 0, 0, 1780, 3640, 236, 0, 3881, 2044, 1761, 552, 983, 465, 3346, 1482, 1918, - 633, 1984, 2185, 2179, 996, 580, 1853, 387, 2568, 0, 1221, 0, 1881, 3433, 962, 3650, - 1942, 0, 351, 0, 0, 0, 0, 2090, 0, 1138, 0, 1539, 1706, 127, 0, 958, - 1263, 3282, 1796, 280, 0, 692, 0, 1164, 463, 2582, 0, 722, 0, 0, 0, 3517, - 0, 0, 311, 1146, 2765, 0, 353, 252, 0, 0, 0, 0, 580, 0, 0, 3907, - 420, 2946, 0, 2534, 1985, 596, 74, 10, 0, 0, 0, 0, 0, 1914, 0, 3602, - 2121, 0, 0, 3874, 0, 1719, 507, 1037, 0, 0, 532, 0, 1720, 958, 700, 2964, - 405, 0, 0, 0, 1373, 576, 204, 1618, 0, 0, 0, 0, 478, 2877, 104, 966, - 0, 3745, 839, 526, 0, 66, 1675, 0, 1136, 3165, 1399, 2593, 0, 41, 783, 0, - 0, 1271, 636, 0, 1738, 1800, 0, 2813, 530, 1144, 692, 1594, 797, 1260, 2077, 0, - 0, 0, 0, 0, 2201, 2617, 1101, 29, 0, 3363, 474, 0, 0, 833, 980, 0, - 623, 1926, 2010, 602, 0, 373, 1501, 784, 1252, 601, 1760, 0, 1921, 0, 0, 1690, - 0, 549, 321, 0, 0, 1382, 1924, 869, 1, 717, 1573, 1272, 840, 67, 1776, 827, - 246, 397, 1012, 206, 3230, 0, 557, 0, 1454, 0, 2327, 3180, 3134, 2236, 3342, 1649, - 1942, 3752, 0, 0, 238, 510, 1887, 2231, 3144, 309, 1591, 0, 3625, 0, 1143, 0, - 794, 0, 0, 0, 0, 0, 514, 0, 0, 0, 1699, 1158, 1604, 226, 0, 3901, - 0, 1753, 3618, 1600, 2160, 719, 658, 0, 0, 2870, 1425, 555, 0, 321, 0, 0, - 1282, 1168, 0, 0, 0, 0, 3295, 1959, 0, 3542, 825, 3888, 0, 2118, 0, 0, - 513, 3796, 944, 1189, 2590, 0, 0, 3440, 0, 99, 0, 1078, 2205, 0, 0, 560, - 3491, 562, 864, 0, 851, 3573, 1087, 0, 1405, 0, 1024, 1590, 0, 75, 3130, 0, - 1195, 0, 784, 0, 0, 0}; - -int MangledHashG(const char *key, const int *T) -{ - int sum = 0; - - for (int i = 0; key[i] != '\0'; i++) - { - sum += T[i] * key[i]; - sum %= 3910; - } - return mangledkG[sum]; -} - -int MangledPerfectHash(const char *key) -{ - if (strlen(key) > 40) - return 0; - - return (MangledHashG(key, mangledkT1) + MangledHashG(key, mangledkT2)) % 3910; -} - -constexpr int unmangledkT1[] = {361, 84, 287, 107, 189, 235, 216, 268, 315, 73, 365, 67, 31, - 103, 108, 1, 206, 276, 63, 133, 161, 27, 70, 359, 69, 354}; -constexpr int unmangledkT2[] = {116, 270, 65, 391, 92, 345, 246, 10, 306, 20, 206, 346, 291, - 195, 244, 398, 269, 237, 25, 394, 247, 248, 315, 180, 233, 167}; -constexpr int unmangledkG[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 42, 391, 0, 0, 0, 0, 7, 0, 187, 0, 64, 237, - 350, 377, 112, 192, 0, 217, 0, 133, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, - 122, 0, 107, 0, 283, 276, 9, 317, 215, 0, 147, 167, 232, 169, 15, 0, 0, 247, 25, - 348, 0, 364, 68, 195, 0, 345, 0, 0, 154, 31, 0, 0, 180, 0, 0, 342, 321, 0, - 0, 0, 0, 2, 244, 73, 61, 0, 0, 259, 0, 51, 178, 0, 0, 12, 28, 202, 0, - 113, 144, 0, 0, 0, 196, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 309, 0, 232, 56, 0, 315, 358, 0, 0, 0, 341, 21, 360, 0, 0, 0, 0, 0, - 46, 0, 325, 17, 11, 272, 0, 0, 126, 401, 0, 85, 40, 305, 0, 0, 0, 0, 0, - 0, 0, 7, 201, 56, 142, 405, 0, 0, 0, 339, 164, 0, 192, 0, 109, 206, 60, 40, - 0, 0, 243, 17, 0, 145, 0, 163, 88, 0, 0, 0, 128, 0, 117, 0, 0, 0, 257, - 285, 0, 16, 0, 191, 0, 0, 12, 0, 339, 71, 323, 21, 99, 0, 0, 187, 0, 22, - 167, 274, 0, 258, 0, 0, 0, 17, 30, 0, 0, 0, 181, 218, 0, 0, 109, 0, 212, - 154, 332, 54, 259, 0, 0, 0, 319, 14, 149, 82, 50, 0, 0, 15, 218, 0, 0, 0, - 0, 123, 0, 218, 162, 0, 50, 226, 219, 0, 86, 120, 310, 197, 101, 0, 0, 0, 0, - 127, 1, 207, 86, 0, 0, 0, 377, 0, 8, 75, 0, 0, 395, 106, 374, 0, 197, 0, - 356, 179, 297, 0, 3, 70, 0, 164, 7, 0, 0, 136, 0, 250, 193, 0, 52, 319, 248, - 0, 357, 112, 0, 77, 0, 0, 0, 230, 136, 81, 101, 0, 217, 0, 0, 0, 37, 0, - 172, 0, 0, 0, 14, 175, 0, 53, 361, 0, 134, 191, 304, 43, 0, 0, 198, 0, 82, - 0, 336, 0, 0, 0, 338, 280, 0, 386, 360, 8, 139, 87, 30, 281, 0, 0, 0, 11, - 262, 389, 301, 236, 36, 190, 150, 0, 0, 0, 325, 0, 388, 0, 155, 33, 379, 6, 4, - 0, 165, 129, 214, 369, 0, 0, 17}; - -int UnmangledHashG(const char *key, const int *T) -{ - int sum = 0; - - for (int i = 0; key[i] != '\0'; i++) - { - sum += T[i] * key[i]; - sum %= 407; - } - return unmangledkG[sum]; -} - -int UnmangledPerfectHash(const char *key) -{ - if (strlen(key) > 26) - return 0; - - return (UnmangledHashG(key, unmangledkT1) + UnmangledHashG(key, unmangledkT2)) % 407; -} - -} // namespace - -namespace sh -{ - -template <> -const size_t ImmutableString::FowlerNollVoHash<4>::kFnvPrime = 16777619u; - -template <> -const size_t ImmutableString::FowlerNollVoHash<4>::kFnvOffsetBasis = 0x811c9dc5u; - -template <> -const size_t ImmutableString::FowlerNollVoHash<8>::kFnvPrime = - static_cast(1099511628211ull); - -template <> -const size_t ImmutableString::FowlerNollVoHash<8>::kFnvOffsetBasis = - static_cast(0xcbf29ce484222325ull); - -uint32_t ImmutableString::mangledNameHash() const -{ - return MangledPerfectHash(data()); -} - -uint32_t ImmutableString::unmangledNameHash() const -{ - return UnmangledPerfectHash(data()); -} - -} // namespace sh - -#endif // ANGLE_TRANSLATOR_ESSL_ONLY diff --git a/gfx/angle/checkout/src/compiler/translator/InfoSink.cpp b/gfx/angle/checkout/src/compiler/translator/InfoSink.cpp --- a/gfx/angle/checkout/src/compiler/translator/InfoSink.cpp +++ b/gfx/angle/checkout/src/compiler/translator/InfoSink.cpp @@ -5,10 +5,11 @@ // #include "compiler/translator/InfoSink.h" #include "compiler/translator/ImmutableString.h" +#include "compiler/translator/Symbol.h" #include "compiler/translator/Types.h" namespace sh { @@ -85,10 +86,27 @@ } else if (type.isVector()) *this << type.getNominalSize() << "-component vector of "; sink.append(type.getBasicString()); + + if (type.getStruct() != nullptr) + { + if (type.getStruct()->symbolType() == SymbolType::Empty) + { + *this << " "; + } + else + { + *this << " '" << type.getStruct()->name() << "'"; + } + if (type.isStructSpecifier()) + { + *this << " (specifier)"; + } + } + return *this; } void TInfoSinkBase::location(int file, int line) { diff --git a/gfx/angle/checkout/src/compiler/translator/Initialize.cpp b/gfx/angle/checkout/src/compiler/translator/Initialize.cpp --- a/gfx/angle/checkout/src/compiler/translator/Initialize.cpp +++ b/gfx/angle/checkout/src/compiler/translator/Initialize.cpp @@ -43,10 +43,14 @@ } if (resources.EXT_frag_depth) { extBehavior[TExtension::EXT_frag_depth] = EBhUndefined; } + if (resources.EXT_primitive_bounding_box) + { + extBehavior[TExtension::EXT_primitive_bounding_box] = EBhUndefined; + } if (resources.EXT_shader_texture_lod) { extBehavior[TExtension::EXT_shader_texture_lod] = EBhUndefined; } if (resources.EXT_shader_framebuffer_fetch) @@ -83,10 +87,14 @@ } if (resources.EXT_geometry_shader) { extBehavior[TExtension::EXT_geometry_shader] = EBhUndefined; } + if (resources.OES_geometry_shader) + { + extBehavior[TExtension::OES_geometry_shader] = EBhUndefined; + } if (resources.OES_shader_io_blocks) { extBehavior[TExtension::OES_shader_io_blocks] = EBhUndefined; } if (resources.EXT_shader_io_blocks) diff --git a/gfx/angle/checkout/src/compiler/translator/IntermNode.h b/gfx/angle/checkout/src/compiler/translator/IntermNode.h --- a/gfx/angle/checkout/src/compiler/translator/IntermNode.h +++ b/gfx/angle/checkout/src/compiler/translator/IntermNode.h @@ -23,11 +23,11 @@ #include "common/angleutils.h" #include "compiler/translator/Common.h" #include "compiler/translator/ConstantUnion.h" #include "compiler/translator/ImmutableString.h" -#include "compiler/translator/Operator.h" +#include "compiler/translator/Operator_autogen.h" #include "compiler/translator/SymbolUniqueId.h" #include "compiler/translator/Types.h" #include "compiler/translator/tree_util/Visit.h" namespace sh @@ -132,11 +132,11 @@ // Intermediate class for nodes that have a type. // class TIntermTyped : public TIntermNode { public: - TIntermTyped() {} + TIntermTyped(); virtual TIntermTyped *deepCopy() const override = 0; TIntermTyped *getAsTyped() override { return this; } @@ -144,19 +144,27 @@ // getConstantValue() returns the constant value that this node represents, if any. It // should only be used after nodes have been replaced with their folded versions returned // from fold(). hasConstantValue() returns true if getConstantValue() will return a value. virtual bool hasConstantValue() const; + virtual bool isConstantNullValue() const; virtual const TConstantUnion *getConstantValue() const; // True if executing the expression represented by this node affects state, like values of // variables. False if the executing the expression only computes its return value without // affecting state. May return true conservatively. virtual bool hasSideEffects() const = 0; virtual const TType &getType() const = 0; + // Derive the precision of the node based on its children's. + virtual TPrecision derivePrecision() const; + // Set precision of the current node and propagate it to any child node that doesn't have + // precision. This should be the case only for TIntermConstantUnion nodes as every other node + // would already need to have its precision specified or derived. + virtual void propagatePrecision(TPrecision precision); + TBasicType getBasicType() const { return getType().getBasicType(); } TQualifier getQualifier() const { return getType().getQualifier(); } TPrecision getPrecision() const { return getType().getPrecision(); } TMemoryQualifier getMemoryQualifier() const { return getType().getMemoryQualifier(); } int getCols() const { return getType().getCols(); } @@ -172,12 +180,23 @@ bool isScalarInt() const { return getType().isScalarInt(); } const char *getBasicString() const { return getType().getBasicString(); } unsigned int getOutermostArraySize() const { return getType().getOutermostArraySize(); } + // After every transformation is done and just before outputting the tree (i.e. when the tree + // nodes are no longer going to change), the tree is traversed to gather some information to be + // stored in the intermediate nodes: + // + // - Precise-ness, which is set for arithmetic nodes that are involved in the calculation of a + // value assigned to a |precise| variable. + void setIsPrecise() { mIsPrecise = true; } + bool isPrecise() const { return mIsPrecise; } + protected: TIntermTyped(const TIntermTyped &node); + + bool mIsPrecise; }; // // Handle for, do-while, and while loops. // @@ -286,10 +305,11 @@ TIntermNode *getChildNode(size_t index) const final; bool replaceChildNode(TIntermNode *, TIntermNode *) override { return false; } private: TIntermSymbol(const TIntermSymbol &) = default; // Note: not deleted, just private! + void propagatePrecision(TPrecision precision) override; const TVariable *const mVariable; // Guaranteed to be non-null }; // A typed expression that is not just representing a symbol table symbol. @@ -301,11 +321,10 @@ const TType &getType() const override { return mType; } protected: TType *getTypePointer() { return &mType; } void setType(const TType &t) { mType = t; } - void setTypePreservePrecision(const TType &t); TIntermExpression(const TIntermExpression &node) = default; TType mType; }; @@ -326,10 +345,11 @@ } TIntermTyped *deepCopy() const override { return new TIntermConstantUnion(*this); } bool hasConstantValue() const override; + bool isConstantNullValue() const override; const TConstantUnion *getConstantValue() const override; bool hasSideEffects() const override { return false; } int getIConst(size_t index) const @@ -360,11 +380,13 @@ size_t getChildCount() const final; TIntermNode *getChildNode(size_t index) const final; bool replaceChildNode(TIntermNode *, TIntermNode *) override { return false; } TConstantUnion *foldUnaryNonComponentWise(TOperator op); - TConstantUnion *foldUnaryComponentWise(TOperator op, TDiagnostics *diagnostics); + TConstantUnion *foldUnaryComponentWise(TOperator op, + const TFunction *function, + TDiagnostics *diagnostics); static const TConstantUnion *FoldBinary(TOperator op, const TConstantUnion *leftArray, const TType &leftType, const TConstantUnion *rightArray, @@ -386,10 +408,11 @@ private: typedef float (*FloatTypeUnaryFunc)(float); void foldFloatTypeUnary(const TConstantUnion ¶meter, FloatTypeUnaryFunc builtinFunc, TConstantUnion *result) const; + void propagatePrecision(TPrecision precision) override; TIntermConstantUnion(const TIntermConstantUnion &node); // Note: not deleted, just private! }; // @@ -402,12 +425,11 @@ bool isAssignment() const; bool isMultiplication() const; bool isConstructor() const; - // Returns true for calls mapped to EOpCall*, false for built-ins that have their own specific - // ops. + // Returns true for calls mapped to EOpCall*, false for all built-ins. bool isFunctionCall() const; bool hasSideEffects() const override { return isAssignment(); } protected: @@ -453,10 +475,12 @@ TVector mSwizzleOffsets; bool mHasFoldedDuplicateOffsets; private: void promote(); + TPrecision derivePrecision() const override; + void propagatePrecision(TPrecision precision) override; TIntermSwizzle(const TIntermSwizzle &node); // Note: not deleted, just private! }; // @@ -493,25 +517,21 @@ TIntermTyped *getLeft() const { return mLeft; } TIntermTyped *getRight() const { return mRight; } TIntermTyped *fold(TDiagnostics *diagnostics) override; - void setAddIndexClamp() { mAddIndexClamp = true; } - bool getAddIndexClamp() const { return mAddIndexClamp; } - // This method is only valid for EOpIndexDirectStruct. It returns the name of the field. const ImmutableString &getIndexStructFieldName() const; protected: TIntermTyped *mLeft; TIntermTyped *mRight; - // If set to true, wrap any EOpIndexIndirect with a clamp to bounds. - bool mAddIndexClamp; - private: void promote(); + TPrecision derivePrecision() const override; + void propagatePrecision(TPrecision precision) override; static TQualifier GetCommaQualifier(int shaderVersion, const TIntermTyped *left, const TIntermTyped *right); @@ -555,10 +575,12 @@ const TFunction *const mFunction; private: void promote(); + TPrecision derivePrecision() const override; + void propagatePrecision(TPrecision precision) override; TIntermUnary(const TIntermUnary &node); // note: not deleted, just private! }; typedef TVector TIntermSequence; @@ -591,11 +613,11 @@ static TIntermAggregate *CreateFunctionCall(const TFunction &func, TIntermSequence *arguments); static TIntermAggregate *CreateRawFunctionCall(const TFunction &func, TIntermSequence *arguments); - // This covers all built-in function calls - whether they are associated with an op or not. + // This covers all built-in function calls. static TIntermAggregate *CreateBuiltInFunctionCall(const TFunction &func, TIntermSequence *arguments); static TIntermAggregate *CreateConstructor(const TType &type, TIntermSequence *arguments); ~TIntermAggregate() override {} @@ -603,10 +625,11 @@ TIntermTyped *deepCopy() const override { return new TIntermAggregate(*this); } TIntermAggregate *shallowCopy() const; bool hasConstantValue() const override; + bool isConstantNullValue() const override; const TConstantUnion *getConstantValue() const override; TIntermAggregate *getAsAggregate() override { return this; } void traverse(TIntermTraverser *it) final; bool visit(Visit visit, TIntermTraverser *it) final; @@ -623,13 +646,10 @@ const TIntermSequence *getSequence() const override { return &mArguments; } void setUseEmulatedFunction() { mUseEmulatedFunction = true; } bool getUseEmulatedFunction() { return mUseEmulatedFunction; } - // Returns true if changing parameter precision may affect the return value. - bool gotPrecisionFromChildren() const { return mGotPrecisionFromChildren; } - const TFunction *getFunction() const { return mFunction; } // Get the function name to display to the user in an error message. const char *functionName() const; @@ -638,12 +658,10 @@ // If set to true, replace the built-in function call with an emulated one // to work around driver bugs. Only for calls mapped to ops other than EOpCall*. bool mUseEmulatedFunction; - bool mGotPrecisionFromChildren; - const TFunction *const mFunction; private: TIntermAggregate(const TFunction *func, const TType &type, @@ -651,31 +669,23 @@ TIntermSequence *arguments); TIntermAggregate(const TIntermAggregate &node); // note: not deleted, just private! void setPrecisionAndQualifier(); + TPrecision derivePrecision() const override; + void propagatePrecision(TPrecision precision) override; bool areChildrenConstQualified(); - - void setPrecisionFromChildren(); - - void setPrecisionForBuiltInOp(); - - // Returns true if precision was set according to special rules for this built-in. - bool setPrecisionForSpecialBuiltInOp(); - - // Used for built-in functions under EOpCallBuiltInFunction. The function name in the symbol - // info needs to be set before calling this. - void setBuiltInFunctionPrecision(); }; // A list of statements. Either the root node which contains declarations and function definitions, // or a block that can be marked with curly braces {}. class TIntermBlock : public TIntermNode, public TIntermAggregateBase { public: TIntermBlock() : TIntermNode(), mIsTreeRoot(false) {} + TIntermBlock(std::initializer_list stmts); ~TIntermBlock() override {} TIntermBlock *getAsBlock() override { return this; } void traverse(TIntermTraverser *it) final; bool visit(Visit visit, TIntermTraverser *it) final; @@ -782,10 +792,13 @@ // Struct, interface block or variable declaration. Can contain multiple variable declarators. class TIntermDeclaration : public TIntermNode, public TIntermAggregateBase { public: TIntermDeclaration() : TIntermNode() {} + TIntermDeclaration(const TVariable *var, TIntermTyped *initExpr); + TIntermDeclaration(std::initializer_list declarators); + TIntermDeclaration(std::initializer_list declarators); ~TIntermDeclaration() override {} TIntermDeclaration *getAsDeclarationNode() override { return this; } bool visit(Visit visit, TIntermTraverser *it) final; @@ -887,10 +900,12 @@ TIntermTernary(const TIntermTernary &node); // Note: not deleted, just private! static TQualifier DetermineQualifier(TIntermTyped *cond, TIntermTyped *trueExpression, TIntermTyped *falseExpression); + TPrecision derivePrecision() const override; + void propagatePrecision(TPrecision precision) override; TIntermTyped *mCondition; TIntermTyped *mTrueExpression; TIntermTyped *mFalseExpression; }; diff --git a/gfx/angle/checkout/src/compiler/translator/IntermNode.cpp b/gfx/angle/checkout/src/compiler/translator/IntermNode.cpp --- a/gfx/angle/checkout/src/compiler/translator/IntermNode.cpp +++ b/gfx/angle/checkout/src/compiler/translator/IntermNode.cpp @@ -15,10 +15,11 @@ #include #include #include "common/mathutil.h" #include "common/matrix_utils.h" +#include "common/utilities.h" #include "compiler/translator/Diagnostics.h" #include "compiler/translator/ImmutableString.h" #include "compiler/translator/IntermNode.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/util.h" @@ -39,24 +40,24 @@ } TConstantUnion *Vectorize(const TConstantUnion &constant, size_t size) { TConstantUnion *constUnion = new TConstantUnion[size]; - for (unsigned int i = 0; i < size; ++i) + for (size_t i = 0; i < size; ++i) constUnion[i] = constant; return constUnion; } void UndefinedConstantFoldingError(const TSourceLoc &loc, - TOperator op, + const TFunction *function, TBasicType basicType, TDiagnostics *diagnostics, TConstantUnion *result) { diagnostics->warning(loc, "operation result is undefined for the values passed in", - GetOperatorString(op)); + function->name().data()); switch (basicType) { case EbtFloat: result->setFConst(0.0f); @@ -152,11 +153,11 @@ case EOpMix: case EOpStep: case EOpSmoothstep: case EOpFma: case EOpLdexp: - case EOpMulMatrixComponentWise: + case EOpMatrixCompMult: case EOpOuterProduct: case EOpEqualComponentWise: case EOpNotEqualComponentWise: case EOpLessThanComponentWise: case EOpLessThanEqualComponentWise: @@ -168,34 +169,42 @@ case EOpFaceforward: case EOpReflect: case EOpRefract: case EOpBitfieldExtract: case EOpBitfieldInsert: + case EOpDFdx: + case EOpDFdy: + case EOpFwidth: return true; default: return false; } } +void PropagatePrecisionIfApplicable(TIntermTyped *node, TPrecision precision) +{ + if (precision == EbpUndefined || node->getPrecision() != EbpUndefined) + { + return; + } + + if (IsPrecisionApplicableToType(node->getBasicType())) + { + node->propagatePrecision(precision); + } +} + } // namespace //////////////////////////////////////////////////////////////// // // Member functions of the nodes used for building the tree. // //////////////////////////////////////////////////////////////// TIntermExpression::TIntermExpression(const TType &t) : TIntermTyped(), mType(t) {} -void TIntermExpression::setTypePreservePrecision(const TType &t) -{ - TPrecision precision = getPrecision(); - mType = t; - ASSERT(mType.getBasicType() != EbtBool || precision == EbpUndefined); - mType.setPrecision(precision); -} - #define REPLACE_IF_IS(node, type, original, replacement) \ do \ { \ if (node == original) \ { \ @@ -407,19 +416,27 @@ return replaceChildNodeInternal(original, replacement); } TIntermBlock::TIntermBlock(const TIntermBlock &node) { - for (TIntermNode *node : node.mStatements) + for (TIntermNode *intermNode : node.mStatements) { - mStatements.push_back(node->deepCopy()); + mStatements.push_back(intermNode->deepCopy()); } ASSERT(!node.mIsTreeRoot); mIsTreeRoot = false; } +TIntermBlock::TIntermBlock(std::initializer_list stmts) +{ + for (TIntermNode *stmt : stmts) + { + appendStatement(stmt); + } +} + size_t TIntermBlock::getChildCount() const { return mStatements.size(); } @@ -453,10 +470,41 @@ bool TIntermFunctionPrototype::replaceChildNode(TIntermNode *original, TIntermNode *replacement) { return false; } +TIntermDeclaration::TIntermDeclaration(const TVariable *var, TIntermTyped *initExpr) +{ + if (initExpr) + { + appendDeclarator( + new TIntermBinary(TOperator::EOpInitialize, new TIntermSymbol(var), initExpr)); + } + else + { + appendDeclarator(new TIntermSymbol(var)); + } +} + +TIntermDeclaration::TIntermDeclaration(std::initializer_list declarators) + : TIntermDeclaration() +{ + for (const TVariable *d : declarators) + { + appendDeclarator(new TIntermSymbol(d)); + } +} + +TIntermDeclaration::TIntermDeclaration(std::initializer_list declarators) + : TIntermDeclaration() +{ + for (TIntermTyped *d : declarators) + { + appendDeclarator(d); + } +} + size_t TIntermDeclaration::getChildCount() const { return mDeclarators.size(); } @@ -470,13 +518,13 @@ return replaceChildNodeInternal(original, replacement); } TIntermDeclaration::TIntermDeclaration(const TIntermDeclaration &node) { - for (TIntermNode *node : node.mDeclarators) + for (TIntermNode *intermNode : node.mDeclarators) { - mDeclarators.push_back(node->deepCopy()); + mDeclarators.push_back(intermNode->deepCopy()); } } bool TIntermAggregateBase::replaceChildNodeInternal(TIntermNode *original, TIntermNode *replacement) { @@ -539,10 +587,20 @@ const TType &TIntermSymbol::getType() const { return mVariable->getType(); } +void TIntermSymbol::propagatePrecision(TPrecision precision) +{ + // Every declared variable should already have a precision. Some built-ins don't have a defined + // precision. This is not asserted however: + // + // - A shader with no precision specified either globally or on a variable will fail with a + // compilation error later on. + // - Transformations declaring variables without precision will be caught by AST validation. +} + TIntermAggregate *TIntermAggregate::CreateFunctionCall(const TFunction &func, TIntermSequence *arguments) { return new TIntermAggregate(&func, func.getReturnType(), EOpCallFunctionInAST, arguments); } @@ -554,11 +612,11 @@ } TIntermAggregate *TIntermAggregate::CreateBuiltInFunctionCall(const TFunction &func, TIntermSequence *arguments) { - // op should be either EOpCallBuiltInFunction or a specific math op. + // Every built-in function should have an op. ASSERT(func.getBuiltInOp() != EOpNull); return new TIntermAggregate(&func, func.getReturnType(), func.getBuiltInOp(), arguments); } TIntermAggregate *TIntermAggregate::CreateConstructor(const TType &type, TIntermSequence *arguments) @@ -568,14 +626,11 @@ TIntermAggregate::TIntermAggregate(const TFunction *func, const TType &type, TOperator op, TIntermSequence *arguments) - : TIntermOperator(op, type), - mUseEmulatedFunction(false), - mGotPrecisionFromChildren(false), - mFunction(func) + : TIntermOperator(op, type), mUseEmulatedFunction(false), mFunction(func) { if (arguments != nullptr) { mArguments.swap(*arguments); } @@ -584,137 +639,162 @@ } void TIntermAggregate::setPrecisionAndQualifier() { mType.setQualifier(EvqTemporary); - if (mOp == EOpCallBuiltInFunction) - { - setBuiltInFunctionPrecision(); - } - else if (!isFunctionCall()) + if ((!BuiltInGroup::IsBuiltIn(mOp) && !isFunctionCall()) || BuiltInGroup::IsMath(mOp)) { - if (isConstructor()) - { - // Structs should not be precision qualified, the individual members may be. - // Built-in types on the other hand should be precision qualified. - if (getBasicType() != EbtStruct) - { - setPrecisionFromChildren(); - } - } - else - { - setPrecisionForBuiltInOp(); - } if (areChildrenConstQualified()) { mType.setQualifier(EvqConst); } } + + propagatePrecision(derivePrecision()); } bool TIntermAggregate::areChildrenConstQualified() { - for (TIntermNode *&arg : mArguments) + for (TIntermNode *arg : mArguments) { TIntermTyped *typedArg = arg->getAsTyped(); if (typedArg && typedArg->getQualifier() != EvqConst) { return false; } } return true; } -void TIntermAggregate::setPrecisionFromChildren() +// Derive precision from children nodes +TPrecision TIntermAggregate::derivePrecision() const { - mGotPrecisionFromChildren = true; - if (getBasicType() == EbtBool) - { - mType.setPrecision(EbpUndefined); - return; - } - - TPrecision precision = EbpUndefined; - TIntermSequence::iterator childIter = mArguments.begin(); - while (childIter != mArguments.end()) + if (getBasicType() == EbtBool || getBasicType() == EbtVoid || getBasicType() == EbtStruct) { - TIntermTyped *typed = (*childIter)->getAsTyped(); - if (typed) - precision = GetHigherPrecision(typed->getPrecision(), precision); - ++childIter; + return EbpUndefined; } - mType.setPrecision(precision); -} - -void TIntermAggregate::setPrecisionForBuiltInOp() -{ - ASSERT(!isConstructor()); - ASSERT(!isFunctionCall()); - if (!setPrecisionForSpecialBuiltInOp()) + + // For AST function calls, take the qualifier from the declared one. + if (isFunctionCall()) { - setPrecisionFromChildren(); + return mType.getPrecision(); } -} - -bool TIntermAggregate::setPrecisionForSpecialBuiltInOp() -{ + + // Some built-ins explicitly specify their precision. switch (mOp) { case EOpBitfieldExtract: - mType.setPrecision(mArguments[0]->getAsTyped()->getPrecision()); - mGotPrecisionFromChildren = true; - return true; + return mArguments[0]->getAsTyped()->getPrecision(); case EOpBitfieldInsert: - mType.setPrecision(GetHigherPrecision(mArguments[0]->getAsTyped()->getPrecision(), - mArguments[1]->getAsTyped()->getPrecision())); - mGotPrecisionFromChildren = true; - return true; + return GetHigherPrecision(mArguments[0]->getAsTyped()->getPrecision(), + mArguments[1]->getAsTyped()->getPrecision()); + case EOpTextureSize: + case EOpImageSize: case EOpUaddCarry: case EOpUsubBorrow: - mType.setPrecision(EbpHigh); - return true; + case EOpUmulExtended: + case EOpImulExtended: + case EOpFrexp: + case EOpLdexp: + return EbpHigh; default: - return false; + break; + } + + // The rest of the math operations and constructors get their precision from their arguments. + if (BuiltInGroup::IsMath(mOp) || mOp == EOpConstruct) + { + TPrecision precision = EbpUndefined; + for (TIntermNode *argument : mArguments) + { + precision = GetHigherPrecision(argument->getAsTyped()->getPrecision(), precision); + } + return precision; } + + // Atomic operations return highp. + if (BuiltInGroup::IsImageAtomic(mOp) || BuiltInGroup::IsAtomicCounter(mOp) || + BuiltInGroup::IsAtomicMemory(mOp)) + { + return EbpHigh; + } + + // Texture functions return the same precision as that of the sampler (textureSize returns + // highp, but that's handled above). imageLoad similar takes the precision of the image. The + // same is true for dFd*, interpolateAt* and subpassLoad operations. + if (BuiltInGroup::IsTexture(mOp) || BuiltInGroup::IsImageLoad(mOp) || + BuiltInGroup::IsDerivativesFS(mOp) || BuiltInGroup::IsInterpolationFS(mOp) || + mOp == EOpSubpassLoad) + { + return mArguments[0]->getAsTyped()->getPrecision(); + } + + // Every possibility must be explicitly handled, except for desktop-GLSL-specific built-ins + // for which precision does't matter. + return EbpUndefined; } -void TIntermAggregate::setBuiltInFunctionPrecision() +// Propagate precision to children nodes that don't already have it defined. +void TIntermAggregate::propagatePrecision(TPrecision precision) { - // All built-ins returning bool should be handled as ops, not functions. - ASSERT(getBasicType() != EbtBool); - ASSERT(mOp == EOpCallBuiltInFunction); - - TPrecision precision = EbpUndefined; - for (TIntermNode *arg : mArguments) + mType.setPrecision(precision); + + // For constructors, propagate precision to arguments. + if (isConstructor()) { - TIntermTyped *typed = arg->getAsTyped(); - // ESSL spec section 8: texture functions get their precision from the sampler. - if (typed && IsSampler(typed->getBasicType())) + for (TIntermNode *arg : mArguments) + { + PropagatePrecisionIfApplicable(arg->getAsTyped(), precision); + } + return; + } + + // For function calls, propagate precision of each parameter to its corresponding argument. + if (isFunctionCall()) + { + for (size_t paramIndex = 0; paramIndex < mFunction->getParamCount(); ++paramIndex) { - precision = typed->getPrecision(); - break; + const TVariable *paramVariable = mFunction->getParam(paramIndex); + PropagatePrecisionIfApplicable(mArguments[paramIndex]->getAsTyped(), + paramVariable->getType().getPrecision()); } + return; } - // ESSL 3.0 spec section 8: textureSize always gets highp precision. - // All other functions that take a sampler are assumed to be texture functions. - if (mFunction->name() == "textureSize") - mType.setPrecision(EbpHigh); - else - mType.setPrecision(precision); + + // Some built-ins explicitly specify the precision of their parameters. + switch (mOp) + { + case EOpUaddCarry: + case EOpUsubBorrow: + case EOpUmulExtended: + case EOpImulExtended: + PropagatePrecisionIfApplicable(mArguments[0]->getAsTyped(), EbpHigh); + PropagatePrecisionIfApplicable(mArguments[1]->getAsTyped(), EbpHigh); + break; + case EOpFindMSB: + case EOpFrexp: + case EOpLdexp: + PropagatePrecisionIfApplicable(mArguments[0]->getAsTyped(), EbpHigh); + break; + default: + break; + } } const char *TIntermAggregate::functionName() const { ASSERT(!isConstructor()); switch (mOp) { case EOpCallInternalRawFunction: - case EOpCallBuiltInFunction: case EOpCallFunctionInAST: return mFunction->name().data(); default: + if (BuiltInGroup::IsBuiltIn(mOp)) + { + return mFunction->name().data(); + } return GetOperatorString(mOp); } } bool TIntermAggregate::hasConstantValue() const @@ -731,10 +811,26 @@ } } return true; } +bool TIntermAggregate::isConstantNullValue() const +{ + if (!isConstructor()) + { + return false; + } + for (TIntermNode *constructorArg : mArguments) + { + if (!constructorArg->getAsTyped()->isConstantNullValue()) + { + return false; + } + } + return true; +} + const TConstantUnion *TIntermAggregate::getConstantValue() const { if (!hasConstantValue()) { return nullptr; @@ -861,25 +957,29 @@ { if (getQualifier() == EvqConst) { return false; } - bool calledFunctionHasNoSideEffects = - isFunctionCall() && mFunction != nullptr && mFunction->isKnownToNotHaveSideEffects(); - if (calledFunctionHasNoSideEffects || isConstructor()) + + // If the function itself is known to have a side effect, the expression has a side effect. + const bool calledFunctionHasSideEffects = + mFunction != nullptr && !mFunction->isKnownToNotHaveSideEffects(); + + if (calledFunctionHasSideEffects) { - for (TIntermNode *arg : mArguments) + return true; + } + + // Otherwise it only has a side effect if one of the arguments does. + for (TIntermNode *arg : mArguments) + { + if (arg->getAsTyped()->hasSideEffects()) { - if (arg->getAsTyped()->hasSideEffects()) - { - return true; - } + return true; } - return false; } - // Conservatively assume most aggregate operators have side-effects - return true; + return false; } void TIntermBlock::appendStatement(TIntermNode *statement) { // Declaration nodes with no children can appear if it was an empty declaration or if all the @@ -1003,28 +1103,48 @@ { REPLACE_IF_IS(mCondition, TIntermTyped, original, replacement); return false; } -TIntermTyped::TIntermTyped(const TIntermTyped &node) : TIntermNode() +TIntermTyped::TIntermTyped() : mIsPrecise(false) {} +TIntermTyped::TIntermTyped(const TIntermTyped &node) : TIntermTyped() { // Copy constructor is disallowed for TIntermNode in order to disallow it for subclasses that // don't explicitly allow it, so normal TIntermNode constructor is used to construct the copy. // We need to manually copy any fields of TIntermNode. mLine = node.mLine; + + // Once deteremined, the tree is not expected to transform. + ASSERT(!mIsPrecise); } bool TIntermTyped::hasConstantValue() const { return false; } +bool TIntermTyped::isConstantNullValue() const +{ + return false; +} + const TConstantUnion *TIntermTyped::getConstantValue() const { return nullptr; } +TPrecision TIntermTyped::derivePrecision() const +{ + UNREACHABLE(); + return EbpUndefined; +} + +void TIntermTyped::propagatePrecision(TPrecision precision) +{ + UNREACHABLE(); +} + TIntermConstantUnion::TIntermConstantUnion(const TIntermConstantUnion &node) : TIntermExpression(node) { mUnionArrayPointer = node.mUnionArrayPointer; } @@ -1041,11 +1161,10 @@ } TIntermAggregate::TIntermAggregate(const TIntermAggregate &node) : TIntermOperator(node), mUseEmulatedFunction(node.mUseEmulatedFunction), - mGotPrecisionFromChildren(node.mGotPrecisionFromChildren), mFunction(node.mFunction) { for (TIntermNode *arg : node.mArguments) { TIntermTyped *typedArg = arg->getAsTyped(); @@ -1071,12 +1190,11 @@ mOperand = operandCopy; mSwizzleOffsets = node.mSwizzleOffsets; mHasFoldedDuplicateOffsets = node.mHasFoldedDuplicateOffsets; } -TIntermBinary::TIntermBinary(const TIntermBinary &node) - : TIntermOperator(node), mAddIndexClamp(node.mAddIndexClamp) +TIntermBinary::TIntermBinary(const TIntermBinary &node) : TIntermOperator(node) { TIntermTyped *leftCopy = node.mLeft->deepCopy(); TIntermTyped *rightCopy = node.mRight->deepCopy(); ASSERT(leftCopy != nullptr && rightCopy != nullptr); mLeft = leftCopy; @@ -1133,11 +1251,10 @@ bool TIntermOperator::isFunctionCall() const { switch (mOp) { case EOpCallFunctionInAST: - case EOpCallBuiltInFunction: case EOpCallInternalRawFunction: return true; default: return false; } @@ -1238,84 +1355,165 @@ void TIntermUnary::promote() { if (mOp == EOpArrayLength) { // Special case: the qualifier of .length() doesn't depend on the operand qualifier. - setType(TType(EbtInt, EbpUndefined, EvqConst)); + setType(TType(EbtInt, EbpHigh, EvqConst)); return; } TQualifier resultQualifier = EvqTemporary; if (mOperand->getQualifier() == EvqConst) resultQualifier = EvqConst; - unsigned char operandPrimarySize = - static_cast(mOperand->getType().getNominalSize()); + TType resultType = mOperand->getType(); + resultType.setQualifier(resultQualifier); + + // Result is an intermediate value, so make sure it's identified as such. + resultType.setInterfaceBlock(nullptr); + + // Override type properties for special built-ins. Precision is determined later by + // |derivePrecision|. switch (mOp) { case EOpFloatBitsToInt: - setType(TType(EbtInt, EbpHigh, resultQualifier, operandPrimarySize)); + resultType.setBasicType(EbtInt); break; case EOpFloatBitsToUint: - setType(TType(EbtUInt, EbpHigh, resultQualifier, operandPrimarySize)); + resultType.setBasicType(EbtUInt); break; case EOpIntBitsToFloat: case EOpUintBitsToFloat: - setType(TType(EbtFloat, EbpHigh, resultQualifier, operandPrimarySize)); + resultType.setBasicType(EbtFloat); break; case EOpPackSnorm2x16: case EOpPackUnorm2x16: case EOpPackHalf2x16: case EOpPackUnorm4x8: case EOpPackSnorm4x8: - setType(TType(EbtUInt, EbpHigh, resultQualifier)); + resultType.setBasicType(EbtUInt); + resultType.setPrimarySize(1); break; case EOpUnpackSnorm2x16: case EOpUnpackUnorm2x16: - setType(TType(EbtFloat, EbpHigh, resultQualifier, 2)); - break; case EOpUnpackHalf2x16: - setType(TType(EbtFloat, EbpMedium, resultQualifier, 2)); + resultType.setBasicType(EbtFloat); + resultType.setPrimarySize(2); break; case EOpUnpackUnorm4x8: case EOpUnpackSnorm4x8: - setType(TType(EbtFloat, EbpMedium, resultQualifier, 4)); + resultType.setBasicType(EbtFloat); + resultType.setPrimarySize(4); break; case EOpAny: case EOpAll: - setType(TType(EbtBool, EbpUndefined, resultQualifier)); + resultType.setBasicType(EbtBool); + resultType.setPrimarySize(1); break; case EOpLength: case EOpDeterminant: - setType(TType(EbtFloat, mOperand->getType().getPrecision(), resultQualifier)); + resultType.setBasicType(EbtFloat); + resultType.setPrimarySize(1); + resultType.setSecondarySize(1); break; case EOpTranspose: - setType(TType(EbtFloat, mOperand->getType().getPrecision(), resultQualifier, - static_cast(mOperand->getType().getRows()), - static_cast(mOperand->getType().getCols()))); + ASSERT(resultType.getBasicType() == EbtFloat); + resultType.setPrimarySize(static_cast(mOperand->getType().getRows())); + resultType.setSecondarySize(static_cast(mOperand->getType().getCols())); break; case EOpIsinf: case EOpIsnan: - setType(TType(EbtBool, EbpUndefined, resultQualifier, operandPrimarySize)); - break; - case EOpBitfieldReverse: - setType(TType(mOperand->getBasicType(), EbpHigh, resultQualifier, operandPrimarySize)); + resultType.setBasicType(EbtBool); break; case EOpBitCount: - setType(TType(EbtInt, EbpLow, resultQualifier, operandPrimarySize)); - break; case EOpFindLSB: - setType(TType(EbtInt, EbpLow, resultQualifier, operandPrimarySize)); - break; case EOpFindMSB: - setType(TType(EbtInt, EbpLow, resultQualifier, operandPrimarySize)); + resultType.setBasicType(EbtInt); break; default: - setType(mOperand->getType()); - mType.setQualifier(resultQualifier); break; } + + setType(resultType); + propagatePrecision(derivePrecision()); +} + +// Derive precision from children nodes +TPrecision TIntermUnary::derivePrecision() const +{ + // Unary operators generally derive their precision from their operand, except for a few + // built-ins where this is overriden. + switch (mOp) + { + case EOpArrayLength: + case EOpFloatBitsToInt: + case EOpFloatBitsToUint: + case EOpIntBitsToFloat: + case EOpUintBitsToFloat: + case EOpPackSnorm2x16: + case EOpPackUnorm2x16: + case EOpPackHalf2x16: + case EOpPackUnorm4x8: + case EOpPackSnorm4x8: + case EOpUnpackSnorm2x16: + case EOpUnpackUnorm2x16: + case EOpBitfieldReverse: + return EbpHigh; + case EOpUnpackHalf2x16: + case EOpUnpackUnorm4x8: + case EOpUnpackSnorm4x8: + return EbpMedium; + case EOpBitCount: + case EOpFindLSB: + case EOpFindMSB: + return EbpLow; + case EOpAny: + case EOpAll: + case EOpIsinf: + case EOpIsnan: + return EbpUndefined; + default: + return mOperand->getPrecision(); + } +} + +void TIntermUnary::propagatePrecision(TPrecision precision) +{ + mType.setPrecision(precision); + + // Generally precision of the operand and the precision of the result match. A few built-ins + // are exceptional. + switch (mOp) + { + case EOpArrayLength: + case EOpPackSnorm2x16: + case EOpPackUnorm2x16: + case EOpPackUnorm4x8: + case EOpPackSnorm4x8: + case EOpPackHalf2x16: + case EOpBitCount: + case EOpFindLSB: + case EOpFindMSB: + case EOpIsinf: + case EOpIsnan: + // Precision of result does not affect the operand in any way. + break; + case EOpFloatBitsToInt: + case EOpFloatBitsToUint: + case EOpIntBitsToFloat: + case EOpUintBitsToFloat: + case EOpUnpackSnorm2x16: + case EOpUnpackUnorm2x16: + case EOpUnpackUnorm4x8: + case EOpUnpackSnorm4x8: + case EOpUnpackHalf2x16: + case EOpBitfieldReverse: + PropagatePrecisionIfApplicable(mOperand, EbpHigh); + break; + default: + PropagatePrecisionIfApplicable(mOperand, precision); + } } TIntermSwizzle::TIntermSwizzle(TIntermTyped *operand, const TVector &swizzleOffsets) : TIntermExpression(TType(EbtFloat, EbpUndefined)), mOperand(operand), @@ -1329,15 +1527,16 @@ TIntermUnary::TIntermUnary(TOperator op, TIntermTyped *operand, const TFunction *function) : TIntermOperator(op), mOperand(operand), mUseEmulatedFunction(false), mFunction(function) { ASSERT(mOperand); + ASSERT(!BuiltInGroup::IsBuiltIn(op) || (function != nullptr && function->getBuiltInOp() == op)); promote(); } TIntermBinary::TIntermBinary(TOperator op, TIntermTyped *left, TIntermTyped *right) - : TIntermOperator(op), mLeft(left), mRight(right), mAddIndexClamp(false) + : TIntermOperator(op), mLeft(left), mRight(right) { ASSERT(mLeft); ASSERT(mRight); promote(); } @@ -1378,10 +1577,12 @@ ASSERT(mCondition); ASSERT(mTrueExpression); ASSERT(mFalseExpression); getTypePointer()->setQualifier( TIntermTernary::DetermineQualifier(cond, trueExpression, falseExpression)); + + propagatePrecision(derivePrecision()); } TIntermLoop::TIntermLoop(TLoopType type, TIntermNode *init, TIntermTyped *cond, @@ -1451,10 +1652,24 @@ return EvqConst; } return EvqTemporary; } +// Derive precision from children nodes +TPrecision TIntermTernary::derivePrecision() const +{ + return GetHigherPrecision(mTrueExpression->getPrecision(), mFalseExpression->getPrecision()); +} + +void TIntermTernary::propagatePrecision(TPrecision precision) +{ + mType.setPrecision(precision); + + PropagatePrecisionIfApplicable(mTrueExpression, precision); + PropagatePrecisionIfApplicable(mFalseExpression, precision); +} + TIntermTyped *TIntermTernary::fold(TDiagnostics * /* diagnostics */) { if (mCondition->getAsConstantUnion()) { if (mCondition->getAsConstantUnion()->getBConst(0)) @@ -1474,12 +1689,26 @@ TQualifier resultQualifier = EvqTemporary; if (mOperand->getQualifier() == EvqConst) resultQualifier = EvqConst; auto numFields = mSwizzleOffsets.size(); - setType(TType(mOperand->getBasicType(), mOperand->getPrecision(), resultQualifier, + setType(TType(mOperand->getBasicType(), EbpUndefined, resultQualifier, static_cast(numFields))); + propagatePrecision(derivePrecision()); +} + +// Derive precision from children nodes +TPrecision TIntermSwizzle::derivePrecision() const +{ + return mOperand->getPrecision(); +} + +void TIntermSwizzle::propagatePrecision(TPrecision precision) +{ + mType.setPrecision(precision); + + PropagatePrecisionIfApplicable(mOperand, precision); } bool TIntermSwizzle::hasDuplicateOffsets() const { if (mHasFoldedDuplicateOffsets) @@ -1563,17 +1792,28 @@ // operand. Then only deviations from this need be coded. setType(mLeft->getType()); TQualifier resultQualifier = EvqConst; // Binary operations results in temporary variables unless both - // operands are const. - if (mLeft->getQualifier() != EvqConst || mRight->getQualifier() != EvqConst) + // operands are const. If initializing a specialization constant, make the declarator also + // EvqSpecConst. + const bool isSpecConstInit = mOp == EOpInitialize && mLeft->getQualifier() == EvqSpecConst; + const bool isEitherNonConst = + mLeft->getQualifier() != EvqConst || mRight->getQualifier() != EvqConst; + if (!isSpecConstInit && isEitherNonConst) { resultQualifier = EvqTemporary; getTypePointer()->setQualifier(EvqTemporary); } + // Result is an intermediate value, so make sure it's identified as such. That's not true for + // interface block arrays being indexed. + if (mOp != EOpIndexDirect && mOp != EOpIndexIndirect) + { + getTypePointer()->setInterfaceBlock(nullptr); + } + // Handle indexing ops. switch (mOp) { case EOpIndexDirect: case EOpIndexIndirect: @@ -1581,117 +1821,70 @@ { mType.toArrayElementType(); } else if (mLeft->isMatrix()) { - setType(TType(mLeft->getBasicType(), mLeft->getPrecision(), resultQualifier, - static_cast(mLeft->getRows()))); + mType.toMatrixColumnType(); } else if (mLeft->isVector()) { - setType(TType(mLeft->getBasicType(), mLeft->getPrecision(), resultQualifier)); + mType.toComponentType(); } else { UNREACHABLE(); } return; case EOpIndexDirectStruct: { const TFieldList &fields = mLeft->getType().getStruct()->fields(); - const int i = mRight->getAsConstantUnion()->getIConst(0); - setType(*fields[i]->type()); + const int fieldIndex = mRight->getAsConstantUnion()->getIConst(0); + setType(*fields[fieldIndex]->type()); getTypePointer()->setQualifier(resultQualifier); return; } case EOpIndexDirectInterfaceBlock: { const TFieldList &fields = mLeft->getType().getInterfaceBlock()->fields(); - const int i = mRight->getAsConstantUnion()->getIConst(0); - setType(*fields[i]->type()); + const int fieldIndex = mRight->getAsConstantUnion()->getIConst(0); + setType(*fields[fieldIndex]->type()); getTypePointer()->setQualifier(resultQualifier); return; } default: break; } ASSERT(mLeft->isArray() == mRight->isArray()); - // The result gets promoted to the highest precision. - TPrecision higherPrecision = GetHigherPrecision(mLeft->getPrecision(), mRight->getPrecision()); - getTypePointer()->setPrecision(higherPrecision); - const int nominalSize = std::max(mLeft->getNominalSize(), mRight->getNominalSize()); - // - // All scalars or structs. Code after this test assumes this case is removed! - // - if (nominalSize == 1) - { - switch (mOp) - { - // - // Promote to conditional - // - case EOpEqual: - case EOpNotEqual: - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - setType(TType(EbtBool, EbpUndefined, resultQualifier)); - break; - - // - // And and Or operate on conditionals - // - case EOpLogicalAnd: - case EOpLogicalXor: - case EOpLogicalOr: - ASSERT(mLeft->getBasicType() == EbtBool && mRight->getBasicType() == EbtBool); - setType(TType(EbtBool, EbpUndefined, resultQualifier)); - break; - - default: - break; - } - return; - } - - // If we reach here, at least one of the operands is vector or matrix. - // The other operand could be a scalar, vector, or matrix. - TBasicType basicType = mLeft->getBasicType(); - switch (mOp) { case EOpMul: break; case EOpMatrixTimesScalar: if (mRight->isMatrix()) { - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(mRight->getCols()), - static_cast(mRight->getRows()))); + getTypePointer()->setPrimarySize(static_cast(mRight->getCols())); + getTypePointer()->setSecondarySize(static_cast(mRight->getRows())); } break; case EOpMatrixTimesVector: - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(mLeft->getRows()), 1)); + getTypePointer()->setPrimarySize(static_cast(mLeft->getRows())); + getTypePointer()->setSecondarySize(1); break; case EOpMatrixTimesMatrix: - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(mRight->getCols()), - static_cast(mLeft->getRows()))); + getTypePointer()->setPrimarySize(static_cast(mRight->getCols())); + getTypePointer()->setSecondarySize(static_cast(mLeft->getRows())); break; case EOpVectorTimesScalar: - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(nominalSize), 1)); + getTypePointer()->setPrimarySize(static_cast(nominalSize)); break; case EOpVectorTimesMatrix: - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(mRight->getCols()), 1)); + getTypePointer()->setPrimarySize(static_cast(mRight->getCols())); + ASSERT(getType().getSecondarySize() == 1); break; case EOpMulAssign: case EOpVectorTimesScalarAssign: case EOpVectorTimesMatrixAssign: case EOpMatrixTimesScalarAssign: @@ -1720,16 +1913,15 @@ case EOpBitShiftRightAssign: case EOpBitwiseAndAssign: case EOpBitwiseXorAssign: case EOpBitwiseOrAssign: { + ASSERT(!mLeft->isArray() && !mRight->isArray()); const int secondarySize = std::max(mLeft->getSecondarySize(), mRight->getSecondarySize()); - setType(TType(basicType, higherPrecision, resultQualifier, - static_cast(nominalSize), - static_cast(secondarySize))); - ASSERT(!mLeft->isArray() && !mRight->isArray()); + getTypePointer()->setPrimarySize(static_cast(nominalSize)); + getTypePointer()->setSecondarySize(static_cast(secondarySize)); break; } case EOpEqual: case EOpNotEqual: case EOpLessThan: @@ -1739,10 +1931,19 @@ ASSERT((mLeft->getNominalSize() == mRight->getNominalSize()) && (mLeft->getSecondarySize() == mRight->getSecondarySize())); setType(TType(EbtBool, EbpUndefined, resultQualifier)); break; + // + // And and Or operate on conditionals + // + case EOpLogicalAnd: + case EOpLogicalXor: + case EOpLogicalOr: + ASSERT(mLeft->getBasicType() == EbtBool && mRight->getBasicType() == EbtBool); + break; + case EOpIndexDirect: case EOpIndexIndirect: case EOpIndexDirectInterfaceBlock: case EOpIndexDirectStruct: // These ops should be already fully handled. @@ -1750,17 +1951,108 @@ break; default: UNREACHABLE(); break; } + + propagatePrecision(derivePrecision()); +} + +// Derive precision from children nodes +TPrecision TIntermBinary::derivePrecision() const +{ + const TPrecision higherPrecision = + GetHigherPrecision(mLeft->getPrecision(), mRight->getPrecision()); + + switch (mOp) + { + case EOpComma: + // Comma takes the right node's value. + return mRight->getPrecision(); + + case EOpIndexDirect: + case EOpIndexIndirect: + case EOpBitShiftLeft: + case EOpBitShiftRight: + // When indexing an array, the precision of the array is preserved (which is the left + // node). + // For shift operations, the precision is derived from the expression being shifted + // (which is also the left node). + return mLeft->getPrecision(); + + case EOpIndexDirectStruct: + case EOpIndexDirectInterfaceBlock: + { + // When selecting the field of a block, the precision is taken from the field's + // declaration. + const TFieldList &fields = mOp == EOpIndexDirectStruct + ? mLeft->getType().getStruct()->fields() + : mLeft->getType().getInterfaceBlock()->fields(); + const int fieldIndex = mRight->getAsConstantUnion()->getIConst(0); + return fields[fieldIndex]->type()->getPrecision(); + } + + case EOpEqual: + case EOpNotEqual: + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + case EOpLogicalAnd: + case EOpLogicalXor: + case EOpLogicalOr: + // No precision specified on bool results. + return EbpUndefined; + + default: + // All other operations are evaluated at the higher of the two operands' precisions. + return higherPrecision; + } +} + +void TIntermBinary::propagatePrecision(TPrecision precision) +{ + getTypePointer()->setPrecision(precision); + + if (mOp != EOpComma) + { + PropagatePrecisionIfApplicable(mLeft, precision); + } + + if (mOp != EOpIndexDirect && mOp != EOpIndexIndirect && mOp != EOpIndexDirectStruct && + mOp != EOpIndexDirectInterfaceBlock) + { + PropagatePrecisionIfApplicable(mRight, precision); + } + + // For indices, always apply highp. This is purely for the purpose of making sure constant and + // constructor nodes are also given a precision, so if they are hoisted to a temp variable, + // there would be a precision to apply to that variable. + if (mOp == EOpIndexDirect || mOp == EOpIndexIndirect) + { + PropagatePrecisionIfApplicable(mRight, EbpHigh); + } } bool TIntermConstantUnion::hasConstantValue() const { return true; } +bool TIntermConstantUnion::isConstantNullValue() const +{ + const size_t size = mType.getObjectSize(); + for (size_t index = 0; index < size; ++index) + { + if (!mUnionArrayPointer[index].isZero()) + { + return false; + } + } + return true; +} + const TConstantUnion *TIntermConstantUnion::getConstantValue() const { return mUnionArrayPointer; } @@ -2004,11 +2296,11 @@ case EOpUnpackUnorm4x8: case EOpUnpackSnorm4x8: constArray = operandConstant->foldUnaryNonComponentWise(mOp); break; default: - constArray = operandConstant->foldUnaryComponentWise(mOp, diagnostics); + constArray = operandConstant->foldUnaryComponentWise(mOp, mFunction, diagnostics); break; } } if (constArray == nullptr) { @@ -2649,10 +2941,11 @@ return resultArray; } TConstantUnion *TIntermConstantUnion::foldUnaryComponentWise(TOperator op, + const TFunction *function, TDiagnostics *diagnostics) { // Do unary operations where each component of the result is computed based on the corresponding // component of the operand. Also folds normalize, though the divisor in that case takes all // components into account. @@ -2775,21 +3068,21 @@ case EOpAsin: // For asin(x), results are undefined if |x| > 1, we are choosing to set result to // 0. if (fabsf(operandArray[i].getFConst()) > 1.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &asinf, &resultArray[i]); break; case EOpAcos: // For acos(x), results are undefined if |x| > 1, we are choosing to set result to // 0. if (fabsf(operandArray[i].getFConst()) > 1.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &acosf, &resultArray[i]); break; @@ -2814,21 +3107,21 @@ break; case EOpAcosh: // For acosh(x), results are undefined if x < 1, we are choosing to set result to 0. if (operandArray[i].getFConst() < 1.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &acoshf, &resultArray[i]); break; case EOpAtanh: // For atanh(x), results are undefined if |x| >= 1, we are choosing to set result to // 0. if (fabsf(operandArray[i].getFConst()) >= 1.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &atanhf, &resultArray[i]); break; @@ -2951,11 +3244,11 @@ break; case EOpLog: // For log(x), results are undefined if x <= 0, we are choosing to set result to 0. if (operandArray[i].getFConst() <= 0.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &logf, &resultArray[i]); break; @@ -2966,11 +3259,11 @@ case EOpLog2: // For log2(x), results are undefined if x <= 0, we are choosing to set result to 0. // And log2f is not available on some plarforms like old android, so just using // log(x)/log(2) here. if (operandArray[i].getFConst() <= 0.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else { foldFloatTypeUnary(operandArray[i], &logf, &resultArray[i]); resultArray[i].setFConst(resultArray[i].getFConst() / logf(2.0f)); @@ -2978,11 +3271,11 @@ break; case EOpSqrt: // For sqrt(x), results are undefined if x < 0, we are choosing to set result to 0. if (operandArray[i].getFConst() < 0.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else foldFloatTypeUnary(operandArray[i], &sqrtf, &resultArray[i]); break; @@ -2991,20 +3284,20 @@ // so getting the square root first using builtin function sqrt() and then taking // its inverse. // Also, for inversesqrt(x), results are undefined if x <= 0, we are choosing to set // result to 0. if (operandArray[i].getFConst() <= 0.0f) - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); else { foldFloatTypeUnary(operandArray[i], &sqrtf, &resultArray[i]); resultArray[i].setFConst(1.0f / resultArray[i].getFConst()); } break; - case EOpLogicalNotComponentWise: + case EOpNotComponentWise: ASSERT(getType().getBasicType() == EbtBool); resultArray[i].setBConst(!operandArray[i].getBConst()); break; case EOpNormalize: @@ -3013,11 +3306,11 @@ float x = operandArray[i].getFConst(); float length = VectorLength(operandArray, objectSize); if (length != 0.0f) resultArray[i].setFConst(x / length); else - UndefinedConstantFoldingError(getLine(), op, getType().getBasicType(), + UndefinedConstantFoldingError(getLine(), function, getType().getBasicType(), diagnostics, &resultArray[i]); break; } case EOpBitfieldReverse: { @@ -3093,17 +3386,10 @@ value = operandArray[i].getUConst(); } resultArray[i].setIConst(gl::FindMSB(value)); break; } - case EOpDFdx: - case EOpDFdy: - case EOpFwidth: - ASSERT(getType().getBasicType() == EbtFloat); - // Derivatives of constant arguments should be 0. - resultArray[i].setFConst(0.0f); - break; default: return nullptr; } } @@ -3119,15 +3405,21 @@ ASSERT(getType().getBasicType() == EbtFloat); result->setFConst(builtinFunc(parameter.getFConst())); } +void TIntermConstantUnion::propagatePrecision(TPrecision precision) +{ + mType.setPrecision(precision); +} + // static TConstantUnion *TIntermConstantUnion::FoldAggregateBuiltIn(TIntermAggregate *aggregate, TDiagnostics *diagnostics) { - TOperator op = aggregate->getOp(); + const TOperator op = aggregate->getOp(); + const TFunction *function = aggregate->getFunction(); TIntermSequence *arguments = aggregate->getSequence(); unsigned int argsCount = static_cast(arguments->size()); std::vector unionArrays(argsCount); std::vector objectSizes(argsCount); size_t maxObjectSize = 0; @@ -3168,11 +3460,12 @@ { float y = unionArrays[0][i].getFConst(); float x = unionArrays[1][i].getFConst(); // Results are undefined if x and y are both 0. if (x == 0.0f && y == 0.0f) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, &resultArray[i]); + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, + &resultArray[i]); else resultArray[i].setFConst(atan2f(y, x)); } break; } @@ -3186,13 +3479,15 @@ float x = unionArrays[0][i].getFConst(); float y = unionArrays[1][i].getFConst(); // Results are undefined if x < 0. // Results are undefined if x = 0 and y <= 0. if (x < 0.0f) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, &resultArray[i]); + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, + &resultArray[i]); else if (x == 0.0f && y <= 0.0f) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, &resultArray[i]); + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, + &resultArray[i]); else resultArray[i].setFConst(powf(x, y)); } break; } @@ -3496,11 +3791,11 @@ resultArray[i].setFConst(result); } break; } - case EOpMulMatrixComponentWise: + case EOpMatrixCompMult: { ASSERT(basicType == EbtFloat && (*arguments)[0]->getAsTyped()->isMatrix() && (*arguments)[1]->getAsTyped()->isMatrix()); // Perform component-wise matrix multiplication. resultArray = new TConstantUnion[maxObjectSize]; @@ -3538,11 +3833,11 @@ float x = unionArrays[0][i].getFConst(); float min = unionArrays[1][i].getFConst(); float max = unionArrays[2][i].getFConst(); // Results are undefined if min > max. if (min > max) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, &resultArray[i]); else resultArray[i].setFConst(gl::clamp(x, min, max)); break; } @@ -3552,11 +3847,11 @@ int x = unionArrays[0][i].getIConst(); int min = unionArrays[1][i].getIConst(); int max = unionArrays[2][i].getIConst(); // Results are undefined if min > max. if (min > max) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, &resultArray[i]); else resultArray[i].setIConst(gl::clamp(x, min, max)); break; } @@ -3565,11 +3860,11 @@ unsigned int x = unionArrays[0][i].getUConst(); unsigned int min = unionArrays[1][i].getUConst(); unsigned int max = unionArrays[2][i].getUConst(); // Results are undefined if min > max. if (min > max) - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, &resultArray[i]); else resultArray[i].setUConst(gl::clamp(x, min, max)); break; } @@ -3655,11 +3950,12 @@ float edge1 = unionArrays[1][i].getFConst(); float x = unionArrays[2][i].getFConst(); // Results are undefined if edge0 >= edge1. if (edge0 >= edge1) { - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, &resultArray[i]); + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, + &resultArray[i]); } else { // Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth // Hermite interpolation between 0 and 1 when edge0 < x < edge1. @@ -3693,11 +3989,12 @@ { float x = unionArrays[0][i].getFConst(); int exp = unionArrays[1][i].getIConst(); if (exp > 128) { - UndefinedConstantFoldingError(loc, op, basicType, diagnostics, &resultArray[i]); + UndefinedConstantFoldingError(loc, function, basicType, diagnostics, + &resultArray[i]); } else { resultArray[i].setFConst(gl::Ldexp(x, exp)); } @@ -3768,12 +4065,12 @@ resultArray[i].setUConst(0); } } else if (offset < 0 || bits < 0 || offset >= 32 || bits > 32 || offset + bits > 32) { - UndefinedConstantFoldingError(loc, op, aggregate->getBasicType(), diagnostics, - &resultArray[i]); + UndefinedConstantFoldingError(loc, function, aggregate->getBasicType(), + diagnostics, &resultArray[i]); } else { // bits can be 32 here, so we need to avoid bit shift overflow. uint32_t maskMsb = 1u << (bits - 1); @@ -3822,12 +4119,12 @@ resultArray[i].setUConst(base); } } else if (offset < 0 || bits < 0 || offset >= 32 || bits > 32 || offset + bits > 32) { - UndefinedConstantFoldingError(loc, op, aggregate->getBasicType(), diagnostics, - &resultArray[i]); + UndefinedConstantFoldingError(loc, function, aggregate->getBasicType(), + diagnostics, &resultArray[i]); } else { // bits can be 32 here, so we need to avoid bit shift overflow. uint32_t maskMsb = 1u << (bits - 1); @@ -3851,10 +4148,21 @@ } } } break; } + case EOpDFdx: + case EOpDFdy: + case EOpFwidth: + ASSERT(basicType == EbtFloat); + resultArray = new TConstantUnion[maxObjectSize]; + for (size_t i = 0; i < maxObjectSize; i++) + { + // Derivatives of constant arguments should be 0. + resultArray[i].setFConst(0.0f); + } + break; default: UNREACHABLE(); return nullptr; } diff --git a/gfx/angle/checkout/src/compiler/translator/Operator.h b/gfx/angle/checkout/src/compiler/translator/Operator.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/Operator.h +++ /dev/null @@ -1,276 +0,0 @@ -// -// Copyright 2002 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. -// - -#ifndef COMPILER_TRANSLATOR_OPERATOR_H_ -#define COMPILER_TRANSLATOR_OPERATOR_H_ - -#include - -// -// Operators used by the high-level (parse tree) representation. -// -enum TOperator : uint8_t -{ - EOpNull, // if in a node, should only mean a node is still being built - - // Call a function defined in the AST. This might be a user-defined function or a function - // inserted by an AST transformation. - EOpCallFunctionInAST, - - // Call an internal helper function with a raw implementation - the implementation can't be - // subject to AST transformations. Raw functions have a few constraints to keep them compatible - // with AST traversers: - // * They should not return arrays. - // * They should not have out parameters. - EOpCallInternalRawFunction, - - // Call a built-in function like a texture or image function. - EOpCallBuiltInFunction, - - // - // Unary operators - // - - EOpNegative, - EOpPositive, - EOpLogicalNot, - EOpBitwiseNot, - - EOpPostIncrement, - EOpPostDecrement, - EOpPreIncrement, - EOpPreDecrement, - - EOpArrayLength, - - // - // binary operations (ones with special GLSL syntax are used in TIntermBinary nodes, others in - // TIntermAggregate nodes) - // - - EOpAdd, - EOpSub, - EOpMul, - EOpDiv, - EOpIMod, - - EOpEqual, - EOpNotEqual, - EOpLessThan, - EOpGreaterThan, - EOpLessThanEqual, - EOpGreaterThanEqual, - - EOpEqualComponentWise, - EOpNotEqualComponentWise, - EOpLessThanComponentWise, - EOpLessThanEqualComponentWise, - EOpGreaterThanComponentWise, - EOpGreaterThanEqualComponentWise, - - EOpComma, - - EOpVectorTimesScalar, - EOpVectorTimesMatrix, - EOpMatrixTimesVector, - EOpMatrixTimesScalar, - EOpMatrixTimesMatrix, - - EOpLogicalOr, - EOpLogicalXor, - EOpLogicalAnd, - - EOpBitShiftLeft, - EOpBitShiftRight, - - EOpBitwiseAnd, - EOpBitwiseXor, - EOpBitwiseOr, - - EOpIndexDirect, - EOpIndexIndirect, - EOpIndexDirectStruct, - EOpIndexDirectInterfaceBlock, - - // - // Built-in functions mapped to operators (either unary or with multiple parameters) - // - - EOpRadians, - EOpDegrees, - EOpSin, - EOpCos, - EOpTan, - EOpAsin, - EOpAcos, - EOpAtan, - - EOpSinh, - EOpCosh, - EOpTanh, - EOpAsinh, - EOpAcosh, - EOpAtanh, - - EOpPow, - EOpExp, - EOpLog, - EOpExp2, - EOpLog2, - EOpSqrt, - EOpInversesqrt, - - EOpAbs, - EOpSign, - EOpFloor, - EOpTrunc, - EOpRound, - EOpRoundEven, - EOpCeil, - EOpFract, - EOpMod, - EOpModf, - EOpMin, - EOpMax, - EOpClamp, - EOpMix, - EOpStep, - EOpSmoothstep, - EOpIsnan, - EOpIsinf, - EOpFma, - - EOpFloatBitsToInt, - EOpFloatBitsToUint, - EOpIntBitsToFloat, - EOpUintBitsToFloat, - - EOpFrexp, - EOpLdexp, - - EOpPackSnorm2x16, - EOpPackUnorm2x16, - EOpPackHalf2x16, - EOpUnpackSnorm2x16, - EOpUnpackUnorm2x16, - EOpUnpackHalf2x16, - - EOpPackUnorm4x8, - EOpPackSnorm4x8, - EOpUnpackUnorm4x8, - EOpUnpackSnorm4x8, - - EOpLength, - EOpDistance, - EOpDot, - EOpCross, - EOpNormalize, - EOpFaceforward, - EOpReflect, - EOpRefract, - - EOpDFdx, // Fragment only, OES_standard_derivatives extension - EOpDFdy, // Fragment only, OES_standard_derivatives extension - EOpFwidth, // Fragment only, OES_standard_derivatives extension - - EOpMulMatrixComponentWise, - EOpOuterProduct, - EOpTranspose, - EOpDeterminant, - EOpInverse, - - EOpAny, - EOpAll, - EOpLogicalNotComponentWise, - - EOpBitfieldExtract, - EOpBitfieldInsert, - EOpBitfieldReverse, - EOpBitCount, - EOpFindLSB, - EOpFindMSB, - EOpUaddCarry, - EOpUsubBorrow, - EOpUmulExtended, - EOpImulExtended, - - // - // Branch - // - - EOpKill, // Fragment only - EOpReturn, - EOpBreak, - EOpContinue, - - // - // Constructor - // - - EOpConstruct, - - // - // moves - // - - EOpAssign, - EOpInitialize, - EOpAddAssign, - EOpSubAssign, - - EOpMulAssign, - EOpVectorTimesMatrixAssign, - EOpVectorTimesScalarAssign, - EOpMatrixTimesScalarAssign, - EOpMatrixTimesMatrixAssign, - - EOpDivAssign, - EOpIModAssign, - EOpBitShiftLeftAssign, - EOpBitShiftRightAssign, - EOpBitwiseAndAssign, - EOpBitwiseXorAssign, - EOpBitwiseOrAssign, - - // barriers - EOpBarrier, - EOpMemoryBarrier, - EOpMemoryBarrierAtomicCounter, - EOpMemoryBarrierBuffer, - EOpMemoryBarrierImage, - EOpMemoryBarrierShared, - EOpGroupMemoryBarrier, - - // Atomic functions - EOpAtomicAdd, - EOpAtomicMin, - EOpAtomicMax, - EOpAtomicAnd, - EOpAtomicOr, - EOpAtomicXor, - EOpAtomicExchange, - EOpAtomicCompSwap, - - // Geometry only - EOpEmitVertex, - EOpEndPrimitive, - - // Desktop GLSL functions - EOpFTransform, - EOpPackDouble2x32, - EOpUnpackDouble2x32, -}; - -// Returns the string corresponding to the operator in GLSL -const char *GetOperatorString(TOperator op); - -// Say whether or not a binary or unary operation changes the value of a variable. -bool IsAssignment(TOperator op); - -// Say whether or not an operator represents an atomic function. -bool IsAtomicFunction(TOperator op); - -#endif // COMPILER_TRANSLATOR_OPERATOR_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/Operator.cpp b/gfx/angle/checkout/src/compiler/translator/Operator.cpp --- a/gfx/angle/checkout/src/compiler/translator/Operator.cpp +++ b/gfx/angle/checkout/src/compiler/translator/Operator.cpp @@ -2,11 +2,16 @@ // Copyright 2002 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. // -#include "compiler/translator/Operator.h" +#include "compiler/translator/Operator_autogen.h" + +#include "common/debug.h" + +namespace sh +{ const char *GetOperatorString(TOperator op) { switch (op) { @@ -55,23 +60,10 @@ case EOpLessThanEqual: return "<="; case EOpGreaterThanEqual: return ">="; - case EOpEqualComponentWise: - return "equal"; - case EOpNotEqualComponentWise: - return "notEqual"; - case EOpLessThanComponentWise: - return "lessThan"; - case EOpGreaterThanComponentWise: - return "greaterThan"; - case EOpLessThanEqualComponentWise: - return "lessThanEqual"; - case EOpGreaterThanEqualComponentWise: - return "greaterThanEqual"; - case EOpComma: return ","; // Fall-through. case EOpVectorTimesScalar: @@ -107,204 +99,11 @@ case EOpIndexDirectStruct: case EOpIndexDirectInterfaceBlock: return "."; - case EOpRadians: - return "radians"; - case EOpDegrees: - return "degrees"; - case EOpSin: - return "sin"; - case EOpCos: - return "cos"; - case EOpTan: - return "tan"; - case EOpAsin: - return "asin"; - case EOpAcos: - return "acos"; - case EOpAtan: - return "atan"; - - case EOpSinh: - return "sinh"; - case EOpCosh: - return "cosh"; - case EOpTanh: - return "tanh"; - case EOpAsinh: - return "asinh"; - case EOpAcosh: - return "acosh"; - case EOpAtanh: - return "atanh"; - - case EOpPow: - return "pow"; - case EOpExp: - return "exp"; - case EOpLog: - return "log"; - case EOpExp2: - return "exp2"; - case EOpLog2: - return "log2"; - case EOpSqrt: - return "sqrt"; - case EOpInversesqrt: - return "inversesqrt"; - - case EOpAbs: - return "abs"; - case EOpSign: - return "sign"; - case EOpFloor: - return "floor"; - case EOpTrunc: - return "trunc"; - case EOpRound: - return "round"; - case EOpRoundEven: - return "roundEven"; - case EOpCeil: - return "ceil"; - case EOpFract: - return "fract"; - case EOpMod: - return "mod"; - case EOpModf: - return "modf"; - case EOpMin: - return "min"; - case EOpMax: - return "max"; - case EOpClamp: - return "clamp"; - case EOpMix: - return "mix"; - case EOpStep: - return "step"; - case EOpSmoothstep: - return "smoothstep"; - case EOpIsnan: - return "isnan"; - case EOpIsinf: - return "isinf"; - case EOpFma: - return "fma"; - - case EOpFloatBitsToInt: - return "floatBitsToInt"; - case EOpFloatBitsToUint: - return "floatBitsToUint"; - case EOpIntBitsToFloat: - return "intBitsToFloat"; - case EOpUintBitsToFloat: - return "uintBitsToFloat"; - - case EOpFrexp: - return "frexp"; - case EOpLdexp: - return "ldexp"; - - case EOpPackSnorm2x16: - return "packSnorm2x16"; - case EOpPackUnorm2x16: - return "packUnorm2x16"; - case EOpPackHalf2x16: - return "packHalf2x16"; - case EOpUnpackSnorm2x16: - return "unpackSnorm2x16"; - case EOpUnpackUnorm2x16: - return "unpackUnorm2x16"; - case EOpUnpackHalf2x16: - return "unpackHalf2x16"; - - case EOpPackUnorm4x8: - return "packUnorm4x8"; - case EOpPackSnorm4x8: - return "packSnorm4x8"; - case EOpUnpackUnorm4x8: - return "unpackUnorm4x8"; - case EOpUnpackSnorm4x8: - return "unpackSnorm4x8"; - - case EOpLength: - return "length"; - case EOpDistance: - return "distance"; - case EOpDot: - return "dot"; - case EOpCross: - return "cross"; - case EOpNormalize: - return "normalize"; - case EOpFaceforward: - return "faceforward"; - case EOpReflect: - return "reflect"; - case EOpRefract: - return "refract"; - - case EOpDFdx: - return "dFdx"; - case EOpDFdy: - return "dFdy"; - case EOpFwidth: - return "fwidth"; - - case EOpMulMatrixComponentWise: - return "matrixCompMult"; - case EOpOuterProduct: - return "outerProduct"; - case EOpTranspose: - return "transpose"; - case EOpDeterminant: - return "determinant"; - case EOpInverse: - return "inverse"; - - case EOpAny: - return "any"; - case EOpAll: - return "all"; - case EOpLogicalNotComponentWise: - return "not"; - - case EOpBitfieldExtract: - return "bitfieldExtract"; - case EOpBitfieldInsert: - return "bitfieldInsert"; - case EOpBitfieldReverse: - return "bitfieldReverse"; - case EOpBitCount: - return "bitCount"; - case EOpFindLSB: - return "findLSB"; - case EOpFindMSB: - return "findMSB"; - case EOpUaddCarry: - return "uaddCarry"; - case EOpUsubBorrow: - return "usubBorrow"; - case EOpUmulExtended: - return "umulExtended"; - case EOpImulExtended: - return "imulExtended"; - - case EOpKill: - return "kill"; - case EOpReturn: - return "return"; - case EOpBreak: - return "break"; - case EOpContinue: - return "continue"; - case EOpAssign: - return "="; case EOpInitialize: return "="; case EOpAddAssign: return "+="; case EOpSubAssign: @@ -330,47 +129,13 @@ return "&="; case EOpBitwiseXorAssign: return "^="; case EOpBitwiseOrAssign: return "|="; - case EOpBarrier: - return "barrier"; - case EOpMemoryBarrier: - return "memoryBarrier"; - case EOpMemoryBarrierAtomicCounter: - return "memoryBarrierAtomicCounter"; - case EOpMemoryBarrierBuffer: - return "memoryBarrierBuffer"; - case EOpMemoryBarrierImage: - return "memoryBarrierImage"; - case EOpMemoryBarrierShared: - return "memoryBarrierShared"; - case EOpGroupMemoryBarrier: - return "groupMemoryBarrier"; - case EOpAtomicAdd: - return "atomicAdd"; - case EOpAtomicMin: - return "atomicMin"; - case EOpAtomicMax: - return "atomicMax"; - case EOpAtomicAnd: - return "atomicAnd"; - case EOpAtomicOr: - return "atomicOr"; - case EOpAtomicXor: - return "atomicXor"; - case EOpAtomicExchange: - return "atomicExchange"; - case EOpAtomicCompSwap: - return "atomicCompSwap"; - - case EOpEmitVertex: - return "EmitVertex"; - case EOpEndPrimitive: - return "EndPrimitive"; default: + UNREACHABLE(); break; } return ""; } @@ -401,22 +166,6 @@ default: return false; } } -bool IsAtomicFunction(TOperator op) -{ - switch (op) - { - case EOpAtomicAdd: - case EOpAtomicMin: - case EOpAtomicMax: - case EOpAtomicAnd: - case EOpAtomicOr: - case EOpAtomicXor: - case EOpAtomicExchange: - case EOpAtomicCompSwap: - return true; - default: - return false; - } -} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/Operator_autogen.h b/gfx/angle/checkout/src/compiler/translator/Operator_autogen.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/Operator_autogen.h @@ -0,0 +1,551 @@ +// GENERATED FILE - DO NOT EDIT. +// Generated by gen_builtin_symbols.py using data from builtin_function_declarations.txt. +// +// Copyright 2021 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. +// +// Operator_autogen.h: +// Operators used by the high-level (parse tree) representation. + +#ifndef COMPILER_TRANSLATOR_OPERATOR_AUTOGEN_H_ +#define COMPILER_TRANSLATOR_OPERATOR_AUTOGEN_H_ + +#include + +namespace sh +{ + +enum TOperator : uint16_t +{ + EOpNull, // if in a node, should only mean a node is still being built + + // Call a function defined in the AST. This might be a user-defined function or a function + // inserted by an AST transformation. + EOpCallFunctionInAST, + + // Call an internal helper function with a raw implementation - the implementation can't be + // subject to AST transformations. Raw functions have a few constraints to keep them compatible + // with AST traversers: + // * They should not return arrays. + // * They should not have out parameters. + // + // DEPRECATED; DO NOT USE. TODO: remove this. http://anglebug.com/6059 + // + EOpCallInternalRawFunction, + + // + // Branch (TIntermBranch) + // + + EOpKill, // Fragment only + EOpReturn, + EOpBreak, + EOpContinue, + + // + // Constructor (TIntermAggregate) + // + + EOpConstruct, + + // + // Unary operators with special GLSL syntax (TIntermUnary). + // + + EOpNegative, + EOpPositive, + EOpLogicalNot, + EOpBitwiseNot, + + EOpPostIncrement, + EOpPostDecrement, + EOpPreIncrement, + EOpPreDecrement, + + EOpArrayLength, + + // + // Binary operators with special GLSL syntax (TIntermBinary). + // + + EOpAdd, + EOpSub, + EOpMul, + EOpDiv, + EOpIMod, + + EOpEqual, + EOpNotEqual, + EOpLessThan, + EOpGreaterThan, + EOpLessThanEqual, + EOpGreaterThanEqual, + + EOpComma, + + EOpVectorTimesScalar, + EOpVectorTimesMatrix, + EOpMatrixTimesVector, + EOpMatrixTimesScalar, + EOpMatrixTimesMatrix, + + EOpLogicalOr, + EOpLogicalXor, + EOpLogicalAnd, + + EOpBitShiftLeft, + EOpBitShiftRight, + + EOpBitwiseAnd, + EOpBitwiseXor, + EOpBitwiseOr, + + EOpIndexDirect, + EOpIndexIndirect, + EOpIndexDirectStruct, + EOpIndexDirectInterfaceBlock, + + // + // Moves (TIntermBinary) + // + + EOpAssign, + EOpInitialize, + EOpAddAssign, + EOpSubAssign, + + EOpMulAssign, + EOpVectorTimesMatrixAssign, + EOpVectorTimesScalarAssign, + EOpMatrixTimesScalarAssign, + EOpMatrixTimesMatrixAssign, + + EOpDivAssign, + EOpIModAssign, + EOpBitShiftLeftAssign, + EOpBitShiftRightAssign, + EOpBitwiseAndAssign, + EOpBitwiseXorAssign, + EOpBitwiseOrAssign, + + // Not an op, but a marker for the start of built-in ops. + EOpLastNonBuiltIn = EOpBitwiseOrAssign, + + // + // Built-in functions mapped to operators (either unary (TIntermUnary) or with multiple + // parameters (TIntermAggregate)) + // + + // Group Math + + // Group MathTrigonometric + EOpRadians, // Unary + EOpDegrees, // Unary + EOpSin, // Unary + EOpCos, // Unary + EOpTan, // Unary + EOpAsin, // Unary + EOpAcos, // Unary + EOpAtan, + EOpSinh, // Unary + EOpCosh, // Unary + EOpTanh, // Unary + EOpAsinh, // Unary + EOpAcosh, // Unary + EOpAtanh, // Unary + + // Group MathExponential + EOpPow, + EOpExp, // Unary + EOpLog, // Unary + EOpExp2, // Unary + EOpLog2, // Unary + EOpSqrt, // Unary + EOpInversesqrt, // Unary + + // Group MathCommon + EOpAbs, // Unary + EOpSign, // Unary + EOpFloor, // Unary + EOpTrunc, // Unary + EOpRound, // Unary + EOpRoundEven, // Unary + EOpCeil, // Unary + EOpFract, // Unary + EOpMod, + EOpMin, + EOpMax, + EOpClamp, + EOpMix, + EOpStep, + EOpSmoothstep, + EOpModf, + EOpIsnan, // Unary + EOpIsinf, // Unary + EOpFloatBitsToInt, // Unary + EOpFloatBitsToUint, // Unary + EOpIntBitsToFloat, // Unary + EOpUintBitsToFloat, // Unary + EOpFma, + EOpFrexp, + EOpLdexp, + EOpPackSnorm2x16, // Unary + EOpPackHalf2x16, // Unary + EOpUnpackSnorm2x16, // Unary + EOpUnpackHalf2x16, // Unary + EOpPackUnorm2x16, // Unary + EOpUnpackUnorm2x16, // Unary + EOpPackUnorm4x8, // Unary + EOpPackSnorm4x8, // Unary + EOpUnpackUnorm4x8, // Unary + EOpUnpackSnorm4x8, // Unary + EOpPackDouble2x32, // Unary + EOpUnpackDouble2x32, // Unary + + // Group MathGeometric + EOpLength, // Unary + EOpDistance, + EOpDot, + EOpCross, + EOpNormalize, // Unary + EOpFaceforward, + EOpReflect, + EOpRefract, + + // Group MathGeometricVS + EOpFtransform, + + // Group MathMatrix + EOpMatrixCompMult, + EOpOuterProduct, + EOpTranspose, // Unary + EOpDeterminant, // Unary + EOpInverse, // Unary + + // Group MathVector + EOpLessThanComponentWise, + EOpLessThanEqualComponentWise, + EOpGreaterThanComponentWise, + EOpGreaterThanEqualComponentWise, + EOpEqualComponentWise, + EOpNotEqualComponentWise, + EOpAny, // Unary + EOpAll, // Unary + EOpNotComponentWise, // Unary + + // Group MathInteger + EOpBitfieldExtract, + EOpBitfieldInsert, + EOpBitfieldReverse, // Unary + EOpBitCount, // Unary + EOpFindLSB, // Unary + EOpFindMSB, // Unary + EOpUaddCarry, + EOpUsubBorrow, + EOpUmulExtended, + EOpImulExtended, + + // Group Texture + + // Group TextureFirstVersions + EOpTexture2D, + EOpTexture2DProj, + EOpTextureCube, + EOpTexture1D, + EOpTexture1DProj, + EOpTexture3D, + EOpTexture3DProj, + EOpShadow1D, + EOpShadow1DProj, + EOpShadow2D, + EOpShadow2DProj, + EOpShadow2DEXT, + EOpShadow2DProjEXT, + EOpTexture2DRect, + EOpTexture2DRectProj, + EOpTexture2DGradEXT, + EOpTexture2DProjGradEXT, + EOpTextureCubeGradEXT, + EOpTextureVideoWEBGL, + + // Group TextureFirstVersionsBias + EOpTexture2DBias, + EOpTexture2DProjBias, + EOpTextureCubeBias, + EOpTexture3DBias, + EOpTexture3DProjBias, + EOpTexture1DBias, + EOpTexture1DProjBias, + EOpShadow1DBias, + EOpShadow1DProjBias, + EOpShadow2DBias, + EOpShadow2DProjBias, + + // Group TextureFirstVersionsLod + EOpTexture2DLod, + EOpTexture2DProjLod, + EOpTextureCubeLod, + EOpTexture1DLod, + EOpTexture1DProjLod, + EOpShadow1DLod, + EOpShadow1DProjLod, + EOpShadow2DLod, + EOpShadow2DProjLod, + EOpTexture3DLod, + EOpTexture3DProjLod, + + // Group TextureFirstVersionsLodVS + EOpTexture2DLodVS, + EOpTexture2DProjLodVS, + EOpTextureCubeLodVS, + + // Group TextureFirstVersionsLodFS + EOpTexture2DLodEXTFS, + EOpTexture2DProjLodEXTFS, + EOpTextureCubeLodEXTFS, + + // Group TextureNoBias + EOpTexture, + EOpTextureProj, + EOpTextureLod, + EOpTextureSize, + EOpTextureProjLod, + EOpTexelFetch, + EOpTextureGrad, + EOpTextureProjGrad, + EOpTextureQueryLevels, + EOpTextureSamples, + + // Group TextureBias + EOpTextureBias, + EOpTextureProjBias, + + // Group TextureQueryLod + EOpTextureQueryLod, + + // Group TextureOffsetNoBias + EOpTextureOffset, + EOpTextureProjOffset, + EOpTextureLodOffset, + EOpTextureProjLodOffset, + EOpTexelFetchOffset, + EOpTextureGradOffset, + EOpTextureProjGradOffset, + + // Group TextureOffsetBias + EOpTextureOffsetBias, + EOpTextureProjOffsetBias, + + // Group TextureGather + EOpTextureGather, + + // Group TextureGatherOffset + + // Group TextureGatherOffsetNoComp + EOpTextureGatherOffset, + + // Group TextureGatherOffsetComp + EOpTextureGatherOffsetComp, + + // Group TextureGatherOffsets + + // Group TextureGatherOffsetsNoComp + EOpTextureGatherOffsets, + + // Group TextureGatherOffsetsComp + EOpTextureGatherOffsetsComp, + + // Group EXT_YUV_target + EOpRgb_2_yuv, + EOpYuv_2_rgb, + + // Group DerivativesFS + EOpDFdx, + EOpDFdy, + EOpFwidth, + EOpDFdxFine, + EOpDFdyFine, + EOpDFdxCoarse, + EOpDFdyCoarse, + EOpFwidthFine, + EOpFwidthCoarse, + + // Group InterpolationFS + EOpInterpolateAtCentroid, + EOpInterpolateAtSample, + EOpInterpolateAtOffset, + + // Group AtomicCounter + EOpAtomicCounter, + EOpAtomicCounterIncrement, + EOpAtomicCounterDecrement, + EOpAtomicCounterAdd, + EOpAtomicCounterSubtract, + EOpAtomicCounterMin, + EOpAtomicCounterMax, + EOpAtomicCounterAnd, + EOpAtomicCounterOr, + EOpAtomicCounterXor, + EOpAtomicCounterExchange, + EOpAtomicCounterCompSwap, + + // Group AtomicMemory + EOpAtomicAdd, + EOpAtomicMin, + EOpAtomicMax, + EOpAtomicAnd, + EOpAtomicOr, + EOpAtomicXor, + EOpAtomicExchange, + EOpAtomicCompSwap, + + // Group Image + EOpImageSize, + EOpImageSamples, + + // Group ImageStore + EOpImageStore, + + // Group ImageLoad + EOpImageLoad, + + // Group ImageAtomic + EOpImageAtomicAdd, + EOpImageAtomicMin, + EOpImageAtomicMax, + EOpImageAtomicAnd, + EOpImageAtomicOr, + EOpImageAtomicXor, + EOpImageAtomicExchange, + EOpImageAtomicCompSwap, + + // Group Noise + EOpNoise1, + EOpNoise2, + EOpNoise3, + EOpNoise4, + + // Group Barrier + EOpMemoryBarrier, + EOpMemoryBarrierAtomicCounter, + EOpMemoryBarrierBuffer, + EOpMemoryBarrierImage, + + // Group ESSL310CS + EOpBarrier, + EOpMemoryBarrierShared, + EOpGroupMemoryBarrier, + + // Group ESSL310TCS + EOpBarrierTCS, + + // Group GS + EOpEmitVertex, + EOpEndPrimitive, + EOpEmitStreamVertex, + EOpEndStreamPrimitive, + + // Group SubpassInput + EOpSubpassLoad, + + // Group ShaderInvocationGroup + EOpAnyInvocation, + EOpAllInvocations, + EOpAllInvocationsEqual, +}; + +// Returns the string corresponding to the operator in GLSL. For built-in functions use the +// function name directly. +const char *GetOperatorString(TOperator op); + +// Say whether or not a binary or unary operation changes the value of a variable. +bool IsAssignment(TOperator op); + +namespace BuiltInGroup +{ +static inline bool IsBuiltIn(TOperator op) +{ + return op > EOpLastNonBuiltIn; +} +static inline bool IsMath(TOperator op) +{ + return op >= EOpRadians && op <= EOpImulExtended; +} +static inline bool IsTextureOffsetNoBias(TOperator op) +{ + return op >= EOpTextureOffset && op <= EOpTextureProjGradOffset; +} +static inline bool IsTextureOffsetBias(TOperator op) +{ + return op >= EOpTextureOffsetBias && op <= EOpTextureProjOffsetBias; +} +static inline bool IsTextureGatherOffsetNoComp(TOperator op) +{ + return op >= EOpTextureGatherOffset && op <= EOpTextureGatherOffset; +} +static inline bool IsTextureGatherOffsetComp(TOperator op) +{ + return op >= EOpTextureGatherOffsetComp && op <= EOpTextureGatherOffsetComp; +} +static inline bool IsTextureGatherOffset(TOperator op) +{ + return op >= EOpTextureGatherOffset && op <= EOpTextureGatherOffsetComp; +} +static inline bool IsTextureGatherOffsetsNoComp(TOperator op) +{ + return op >= EOpTextureGatherOffsets && op <= EOpTextureGatherOffsets; +} +static inline bool IsTextureGatherOffsetsComp(TOperator op) +{ + return op >= EOpTextureGatherOffsetsComp && op <= EOpTextureGatherOffsetsComp; +} +static inline bool IsTextureGatherOffsets(TOperator op) +{ + return op >= EOpTextureGatherOffsets && op <= EOpTextureGatherOffsetsComp; +} +static inline bool IsTextureGather(TOperator op) +{ + return op >= EOpTextureGather && op <= EOpTextureGatherOffsetsComp; +} +static inline bool IsTexture(TOperator op) +{ + return op >= EOpTexture2D && op <= EOpTextureGatherOffsetsComp; +} +static inline bool IsDerivativesFS(TOperator op) +{ + return op >= EOpDFdx && op <= EOpFwidthCoarse; +} +static inline bool IsInterpolationFS(TOperator op) +{ + return op >= EOpInterpolateAtCentroid && op <= EOpInterpolateAtOffset; +} +static inline bool IsAtomicCounter(TOperator op) +{ + return op >= EOpAtomicCounter && op <= EOpAtomicCounterCompSwap; +} +static inline bool IsAtomicMemory(TOperator op) +{ + return op >= EOpAtomicAdd && op <= EOpAtomicCompSwap; +} +static inline bool IsImageStore(TOperator op) +{ + return op >= EOpImageStore && op <= EOpImageStore; +} +static inline bool IsImageLoad(TOperator op) +{ + return op >= EOpImageLoad && op <= EOpImageLoad; +} +static inline bool IsImageAtomic(TOperator op) +{ + return op >= EOpImageAtomicAdd && op <= EOpImageAtomicCompSwap; +} +static inline bool IsImage(TOperator op) +{ + return op >= EOpImageSize && op <= EOpImageAtomicCompSwap; +} +} // namespace BuiltInGroup + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_OPERATOR_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/OutputESSL.h b/gfx/angle/checkout/src/compiler/translator/OutputESSL.h --- a/gfx/angle/checkout/src/compiler/translator/OutputESSL.h +++ b/gfx/angle/checkout/src/compiler/translator/OutputESSL.h @@ -13,27 +13,16 @@ { class TOutputESSL : public TOutputGLSLBase { public: - TOutputESSL(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - bool forceHighp, - ShCompileOptions compileOptions); + TOutputESSL(TCompiler *compiler, TInfoSinkBase &objSink, ShCompileOptions compileOptions); protected: bool writeVariablePrecision(TPrecision precision) override; ImmutableString translateTextureFunction(const ImmutableString &name, const ShCompileOptions &option) override; - - private: - bool mForceHighp; }; } // namespace sh #endif // COMPILER_TRANSLATOR_OUTPUTESSL_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/OutputESSL.cpp b/gfx/angle/checkout/src/compiler/translator/OutputESSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/OutputESSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/OutputESSL.cpp @@ -7,41 +7,28 @@ #include "compiler/translator/OutputESSL.h" namespace sh { -TOutputESSL::TOutputESSL(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - bool forceHighp, +TOutputESSL::TOutputESSL(TCompiler *compiler, + TInfoSinkBase &objSink, ShCompileOptions compileOptions) - : TOutputGLSLBase(objSink, - clampingStrategy, - hashFunction, - nameMap, - symbolTable, - shaderType, - shaderVersion, - SH_ESSL_OUTPUT, - compileOptions), - mForceHighp(forceHighp) + : TOutputGLSLBase(compiler, objSink, compileOptions) {} bool TOutputESSL::writeVariablePrecision(TPrecision precision) { if (precision == EbpUndefined) return false; + if (precision == EbpHigh && !isHighPrecisionSupported()) + { + precision = EbpMedium; + } + TInfoSinkBase &out = objSink(); - if (mForceHighp) - out << getPrecisionString(EbpHigh); - else - out << getPrecisionString(precision); + out << getPrecisionString(precision); return true; } ImmutableString TOutputESSL::translateTextureFunction(const ImmutableString &name, const ShCompileOptions &option) diff --git a/gfx/angle/checkout/src/compiler/translator/OutputGLSL.h b/gfx/angle/checkout/src/compiler/translator/OutputGLSL.h --- a/gfx/angle/checkout/src/compiler/translator/OutputGLSL.h +++ b/gfx/angle/checkout/src/compiler/translator/OutputGLSL.h @@ -13,19 +13,11 @@ { class TOutputGLSL : public TOutputGLSLBase { public: - TOutputGLSL(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - ShShaderOutput output, - ShCompileOptions compileOptions); + TOutputGLSL(TCompiler *compiler, TInfoSinkBase &objSink, ShCompileOptions compileOptions); protected: bool writeVariablePrecision(TPrecision) override; void visitSymbol(TIntermSymbol *node) override; ImmutableString translateTextureFunction(const ImmutableString &name, diff --git a/gfx/angle/checkout/src/compiler/translator/OutputGLSL.cpp b/gfx/angle/checkout/src/compiler/translator/OutputGLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/OutputGLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/OutputGLSL.cpp @@ -9,28 +9,14 @@ #include "compiler/translator/Compiler.h" namespace sh { -TOutputGLSL::TOutputGLSL(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - ShShaderOutput output, +TOutputGLSL::TOutputGLSL(TCompiler *compiler, + TInfoSinkBase &objSink, ShCompileOptions compileOptions) - : TOutputGLSLBase(objSink, - clampingStrategy, - hashFunction, - nameMap, - symbolTable, - shaderType, - shaderVersion, - output, - compileOptions) + : TOutputGLSLBase(compiler, objSink, compileOptions) {} bool TOutputGLSL::writeVariablePrecision(TPrecision) { return false; @@ -61,15 +47,15 @@ { out << "webgl_FragData"; } else if (name == "gl_SecondaryFragColorEXT") { - out << "angle_SecondaryFragColor"; + out << "webgl_SecondaryFragColor"; } else if (name == "gl_SecondaryFragDataEXT") { - out << "angle_SecondaryFragData"; + out << "webgl_SecondaryFragData"; } else { TOutputGLSLBase::visitSymbol(node); } diff --git a/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.h b/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.h --- a/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.h +++ b/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.h @@ -7,29 +7,24 @@ #ifndef COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_ #define COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_ #include +#include "compiler/translator/ExtensionBehavior.h" #include "compiler/translator/HashNames.h" #include "compiler/translator/InfoSink.h" +#include "compiler/translator/Pragma.h" #include "compiler/translator/tree_util/IntermTraverse.h" namespace sh { +class TCompiler; class TOutputGLSLBase : public TIntermTraverser { public: - TOutputGLSLBase(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - ShShaderOutput output, - ShCompileOptions compileOptions); + TOutputGLSLBase(TCompiler *compiler, TInfoSinkBase &objSink, ShCompileOptions compileOptions); ShShaderOutput getShaderOutput() const { return mOutput; } // Return the original name if hash function pointer is NULL; // otherwise return the hashed name. Has special handling for internal names and built-ins, @@ -38,13 +33,13 @@ protected: TInfoSinkBase &objSink() { return mObjSink; } void writeFloat(TInfoSinkBase &out, float f); void writeTriplet(Visit visit, const char *preStr, const char *inStr, const char *postStr); - std::string getCommonLayoutQualifiers(TIntermTyped *variable); + std::string getCommonLayoutQualifiers(TIntermSymbol *variable); std::string getMemoryQualifiers(const TType &type); - virtual void writeLayoutQualifier(TIntermTyped *variable); + virtual void writeLayoutQualifier(TIntermSymbol *variable); void writeFieldLayoutQualifier(const TField *field); void writeInvariantQualifier(const TType &type); void writePreciseQualifier(const TType &type); virtual void writeVariableType(const TType &type, const TSymbol *symbol, @@ -90,37 +85,41 @@ void declareStruct(const TStructure *structure); void writeQualifier(TQualifier qualifier, const TType &type, const TSymbol *symbol); const char *mapQualifierToString(TQualifier qualifier); - sh::GLenum getShaderType() { return mShaderType; } + sh::GLenum getShaderType() const { return mShaderType; } + bool isHighPrecisionSupported() const { return mHighPrecisionSupported; } + const char *getIndentPrefix(int extraIndentDepth = 0); private: void declareInterfaceBlockLayout(const TType &type); void declareInterfaceBlock(const TType &type); - void writeBuiltInFunctionTriplet(Visit visit, TOperator op, bool useEmulatedFunction); + void writeFunctionTriplet(Visit visit, + const ImmutableString &functionName, + bool useEmulatedFunction); TInfoSinkBase &mObjSink; bool mDeclaringVariable; - ShArrayIndexClampingStrategy mClampingStrategy; - // name hashing. ShHashFunction64 mHashFunction; NameMap &mNameMap; sh::GLenum mShaderType; + const int mShaderVersion; + ShShaderOutput mOutput; - const int mShaderVersion; - - ShShaderOutput mOutput; + bool mHighPrecisionSupported; ShCompileOptions mCompileOptions; }; +void WritePragma(TInfoSinkBase &out, ShCompileOptions compileOptions, const TPragma &pragma); + void WriteGeometryShaderLayoutQualifiers(TInfoSinkBase &out, sh::TLayoutPrimitiveType inputPrimitive, int invocations, sh::TLayoutPrimitiveType outputPrimitive, int maxVertices); @@ -133,8 +132,16 @@ sh::TLayoutTessEvaluationType inputOrdering, sh::TLayoutTessEvaluationType inputPoint); bool NeedsToWriteLayoutQualifier(const TType &type); +void EmitEarlyFragmentTestsGLSL(const TCompiler &, TInfoSinkBase &sink); +void EmitWorkGroupSizeGLSL(const TCompiler &, TInfoSinkBase &sink); +void EmitMultiviewGLSL(const TCompiler &, + const ShCompileOptions &, + const TExtension, + const TBehavior, + TInfoSinkBase &sink); + } // namespace sh #endif // COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.cpp b/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.cpp --- a/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.cpp +++ b/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.cpp @@ -79,28 +79,22 @@ return out; } } // namespace -TOutputGLSLBase::TOutputGLSLBase(TInfoSinkBase &objSink, - ShArrayIndexClampingStrategy clampingStrategy, - ShHashFunction64 hashFunction, - NameMap &nameMap, - TSymbolTable *symbolTable, - sh::GLenum shaderType, - int shaderVersion, - ShShaderOutput output, +TOutputGLSLBase::TOutputGLSLBase(TCompiler *compiler, + TInfoSinkBase &objSink, ShCompileOptions compileOptions) - : TIntermTraverser(true, true, true, symbolTable), + : TIntermTraverser(true, true, true, &compiler->getSymbolTable()), mObjSink(objSink), mDeclaringVariable(false), - mClampingStrategy(clampingStrategy), - mHashFunction(hashFunction), - mNameMap(nameMap), - mShaderType(shaderType), - mShaderVersion(shaderVersion), - mOutput(output), + mHashFunction(compiler->getHashFunction()), + mNameMap(compiler->getNameMap()), + mShaderType(compiler->getShaderType()), + mShaderVersion(compiler->getShaderVersion()), + mOutput(compiler->getOutputType()), + mHighPrecisionSupported(compiler->isHighPrecisionSupported()), mCompileOptions(compileOptions) {} void TOutputGLSLBase::writeInvariantQualifier(const TType &type) { @@ -141,25 +135,24 @@ out << inStr; else if (visit == PostVisit && postStr) out << postStr; } -void TOutputGLSLBase::writeBuiltInFunctionTriplet(Visit visit, - TOperator op, - bool useEmulatedFunction) +void TOutputGLSLBase::writeFunctionTriplet(Visit visit, + const ImmutableString &functionName, + bool useEmulatedFunction) { TInfoSinkBase &out = objSink(); if (visit == PreVisit) { - const char *opStr(GetOperatorString(op)); if (useEmulatedFunction) { - BuiltInFunctionEmulator::WriteEmulatedFunctionName(out, opStr); + BuiltInFunctionEmulator::WriteEmulatedFunctionName(out, functionName.data()); } else { - out << opStr; + out << functionName; } out << "("; } else { @@ -167,11 +160,11 @@ } } // Outputs what goes inside layout(), except for location and binding qualifiers, as they are // handled differently between GL GLSL and Vulkan GLSL. -std::string TOutputGLSLBase::getCommonLayoutQualifiers(TIntermTyped *variable) +std::string TOutputGLSLBase::getCommonLayoutQualifiers(TIntermSymbol *variable) { std::ostringstream out; CommaSeparatedListItemPrefixGenerator listItemPrefix; const TType &type = variable->getType(); @@ -245,11 +238,11 @@ } return out.str(); } -void TOutputGLSLBase::writeLayoutQualifier(TIntermTyped *variable) +void TOutputGLSLBase::writeLayoutQualifier(TIntermSymbol *variable) { const TType &type = variable->getType(); if (!NeedsToWriteLayoutQualifier(type)) { @@ -365,13 +358,40 @@ return "out"; default: break; } } + + // Handle qualifiers that produce different output based on shader type. + switch (qualifier) + { + case EvqClipDistance: + case EvqCullDistance: + return mShaderType == GL_FRAGMENT_SHADER ? "in" : "out"; + default: + break; + } + return sh::getQualifierString(qualifier); } +namespace +{ + +constexpr char kIndent[] = " "; // 10x2 spaces +constexpr int kIndentWidth = 2; +constexpr int kMaxIndentLevel = sizeof(kIndent) / kIndentWidth; + +} // namespace + +const char *TOutputGLSLBase::getIndentPrefix(int extraIndentation) +{ + int indentDepth = std::min(kMaxIndentLevel, getCurrentBlockDepth() + extraIndentation); + ASSERT(indentDepth >= 0); + return kIndent + (kMaxIndentLevel - indentDepth) * kIndentWidth; +} + void TOutputGLSLBase::writeVariableType(const TType &type, const TSymbol *symbol, bool isFunctionArgument) { TQualifier qualifier = type.getQualifier(); @@ -423,13 +443,17 @@ const TVariable *param = func->getParam(i); const TType &type = param->getType(); writeVariableType(type, param, true); if (param->symbolType() != SymbolType::Empty) + { out << " " << hashName(param); + } if (type.isArray()) + { out << ArrayString(type); + } // Put a comma if this is not the last argument. if (i != paramCount - 1) out << ", "; } @@ -595,67 +619,13 @@ case EOpBitwiseOrAssign: writeTriplet(visit, "(", " |= ", ")"); break; case EOpIndexDirect: + case EOpIndexIndirect: writeTriplet(visit, nullptr, "[", "]"); break; - case EOpIndexIndirect: - if (node->getAddIndexClamp()) - { - if (visit == InVisit) - { - if (mClampingStrategy == SH_CLAMP_WITH_CLAMP_INTRINSIC) - out << "[int(clamp(float("; - else - out << "[webgl_int_clamp("; - } - else if (visit == PostVisit) - { - TIntermTyped *left = node->getLeft(); - TType leftType = left->getType(); - - if (mClampingStrategy == SH_CLAMP_WITH_CLAMP_INTRINSIC) - out << "), 0.0, float("; - else - out << ", 0, "; - - if (leftType.isUnsizedArray()) - { - // For runtime-sized arrays in ESSL 3.10 we need to call the length method - // to get the length to clamp against. See ESSL 3.10 section 4.1.9. Note - // that a runtime-sized array expression is guaranteed not to have side - // effects, so it's fine to add the expression to the output twice. - ASSERT(mShaderVersion >= 310); - ASSERT(!left->hasSideEffects()); - left->traverse(this); - out << ".length() - 1"; - } - else - { - int maxSize; - if (leftType.isArray()) - { - maxSize = static_cast(leftType.getOutermostArraySize()) - 1; - } - else - { - maxSize = leftType.getNominalSize() - 1; - } - out << maxSize; - } - if (mClampingStrategy == SH_CLAMP_WITH_CLAMP_INTRINSIC) - out << ")))]"; - else - out << ")]"; - } - } - else - { - writeTriplet(visit, nullptr, "[", "]"); - } - break; case EOpIndexDirectStruct: if (visit == InVisit) { // Here we are writing out "foo.bar", where "foo" is struct // and "bar" is field. In AST, it is represented as a binary @@ -796,73 +766,14 @@ case EOpArrayLength: preString = "(("; postString = ").length())"; break; - case EOpRadians: - case EOpDegrees: - case EOpSin: - case EOpCos: - case EOpTan: - case EOpAsin: - case EOpAcos: - case EOpAtan: - case EOpSinh: - case EOpCosh: - case EOpTanh: - case EOpAsinh: - case EOpAcosh: - case EOpAtanh: - case EOpExp: - case EOpLog: - case EOpExp2: - case EOpLog2: - case EOpSqrt: - case EOpInversesqrt: - case EOpAbs: - case EOpSign: - case EOpFloor: - case EOpTrunc: - case EOpRound: - case EOpRoundEven: - case EOpCeil: - case EOpFract: - case EOpIsnan: - case EOpIsinf: - case EOpFloatBitsToInt: - case EOpFloatBitsToUint: - case EOpIntBitsToFloat: - case EOpUintBitsToFloat: - case EOpPackSnorm2x16: - case EOpPackUnorm2x16: - case EOpPackHalf2x16: - case EOpUnpackSnorm2x16: - case EOpUnpackUnorm2x16: - case EOpUnpackHalf2x16: - case EOpPackUnorm4x8: - case EOpPackSnorm4x8: - case EOpUnpackUnorm4x8: - case EOpUnpackSnorm4x8: - case EOpLength: - case EOpNormalize: - case EOpDFdx: - case EOpDFdy: - case EOpFwidth: - case EOpTranspose: - case EOpDeterminant: - case EOpInverse: - case EOpAny: - case EOpAll: - case EOpLogicalNotComponentWise: - case EOpBitfieldReverse: - case EOpBitCount: - case EOpFindLSB: - case EOpFindMSB: - writeBuiltInFunctionTriplet(visit, node->getOp(), node->getUseEmulatedFunction()); + default: + writeFunctionTriplet(visit, node->getFunction()->name(), + node->getUseEmulatedFunction()); return true; - default: - UNREACHABLE(); } writeTriplet(visit, preString, nullptr, postString); return true; @@ -895,11 +806,11 @@ visitCodeBlock(node->getTrueBlock()); if (node->getFalseBlock()) { - out << "else\n"; + out << getIndentPrefix() << "else\n"; visitCodeBlock(node->getFalseBlock()); } return false; } @@ -938,20 +849,23 @@ for (TIntermSequence::const_iterator iter = node->getSequence()->begin(); iter != node->getSequence()->end(); ++iter) { TIntermNode *curNode = *iter; ASSERT(curNode != nullptr); + + out << getIndentPrefix(curNode->getAsCaseNode() ? -1 : 0); + curNode->traverse(this); if (isSingleStatement(curNode)) out << ";\n"; } // Scope the blocks except when at the global scope. if (getCurrentTraversalDepth() > 0) { - out << "}\n"; + out << getIndentPrefix(-1) << "}\n"; } return false; } bool TOutputGLSLBase::visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) @@ -991,92 +905,34 @@ } bool TOutputGLSLBase::visitAggregate(Visit visit, TIntermAggregate *node) { bool visitChildren = true; - TInfoSinkBase &out = objSink(); - switch (node->getOp()) + if (node->getOp() == EOpConstruct) + { + writeConstructorTriplet(visit, node->getType()); + } + else { - case EOpCallFunctionInAST: - case EOpCallInternalRawFunction: - case EOpCallBuiltInFunction: - // Function call. - if (visit == PreVisit) - { - if (node->getOp() == EOpCallBuiltInFunction) - { - out << translateTextureFunction(node->getFunction()->name(), mCompileOptions); - } - else - { - out << hashFunctionNameIfNeeded(node->getFunction()); - } - out << "("; - } - else if (visit == InVisit) - out << ", "; - else - out << ")"; - break; - case EOpConstruct: - writeConstructorTriplet(visit, node->getType()); - break; + // Function call. + ImmutableString functionName = node->getFunction()->name(); + if (visit == PreVisit) + { + // No raw function is expected. + ASSERT(node->getOp() != EOpCallInternalRawFunction); - case EOpEqualComponentWise: - case EOpNotEqualComponentWise: - case EOpLessThanComponentWise: - case EOpGreaterThanComponentWise: - case EOpLessThanEqualComponentWise: - case EOpGreaterThanEqualComponentWise: - case EOpMod: - case EOpModf: - case EOpPow: - case EOpAtan: - case EOpMin: - case EOpMax: - case EOpClamp: - case EOpMix: - case EOpStep: - case EOpSmoothstep: - case EOpFma: - case EOpFrexp: - case EOpLdexp: - case EOpDistance: - case EOpDot: - case EOpCross: - case EOpFaceforward: - case EOpReflect: - case EOpRefract: - case EOpMulMatrixComponentWise: - case EOpOuterProduct: - case EOpBitfieldExtract: - case EOpBitfieldInsert: - case EOpUaddCarry: - case EOpUsubBorrow: - case EOpUmulExtended: - case EOpImulExtended: - case EOpBarrier: - case EOpMemoryBarrier: - case EOpMemoryBarrierAtomicCounter: - case EOpMemoryBarrierBuffer: - case EOpMemoryBarrierImage: - case EOpMemoryBarrierShared: - case EOpGroupMemoryBarrier: - case EOpAtomicAdd: - case EOpAtomicMin: - case EOpAtomicMax: - case EOpAtomicAnd: - case EOpAtomicOr: - case EOpAtomicXor: - case EOpAtomicExchange: - case EOpAtomicCompSwap: - case EOpEmitVertex: - case EOpEndPrimitive: - writeBuiltInFunctionTriplet(visit, node->getOp(), node->getUseEmulatedFunction()); - break; - default: - UNREACHABLE(); + if (node->getOp() == EOpCallFunctionInAST) + { + functionName = hashFunctionNameIfNeeded(node->getFunction()); + } + else + { + functionName = + translateTextureFunction(node->getFunction()->name(), mCompileOptions); + } + } + writeFunctionTriplet(visit, functionName, node->getUseEmulatedFunction()); } return visitChildren; } bool TOutputGLSLBase::visitDeclaration(Visit visit, TIntermDeclaration *node) @@ -1085,22 +941,28 @@ // Variable declaration. if (visit == PreVisit) { const TIntermSequence &sequence = *(node->getSequence()); - TIntermTyped *variable = sequence.front()->getAsTyped(); - TIntermSymbol *symbolNode = variable->getAsSymbolNode(); - if (!symbolNode || (symbolNode->getName() != "gl_ClipDistance" && - symbolNode->getName() != "gl_CullDistance")) + TIntermTyped *decl = sequence.front()->getAsTyped(); + TIntermSymbol *symbolNode = decl->getAsSymbolNode(); + if (symbolNode == nullptr) + { + ASSERT(decl->getAsBinaryNode() && decl->getAsBinaryNode()->getOp() == EOpInitialize); + symbolNode = decl->getAsBinaryNode()->getLeft()->getAsSymbolNode(); + } + ASSERT(symbolNode); + + if (symbolNode->getName() != "gl_ClipDistance" && + symbolNode->getName() != "gl_CullDistance") { // gl_Clip/CullDistance re-declaration doesn't need layout. - writeLayoutQualifier(variable); + writeLayoutQualifier(symbolNode); } - writeVariableType(variable->getType(), symbolNode ? &symbolNode->variable() : nullptr, - false); - if (variable->getAsSymbolNode() == nullptr || - variable->getAsSymbolNode()->variable().symbolType() != SymbolType::Empty) + + writeVariableType(symbolNode->getType(), &symbolNode->variable(), false); + if (symbolNode->variable().symbolType() != SymbolType::Empty) { out << " "; } mDeclaringVariable = true; } @@ -1191,10 +1053,11 @@ void TOutputGLSLBase::visitCodeBlock(TIntermBlock *node) { TInfoSinkBase &out = objSink(); if (node != nullptr) { + out << getIndentPrefix(); node->traverse(this); // Single statements not part of a sequence need to be terminated // with semi-colon. if (isSingleStatement(node)) out << ";\n"; @@ -1291,19 +1154,29 @@ } out << "{\n"; const TFieldList &fields = structure->fields(); for (size_t i = 0; i < fields.size(); ++i) { - const TField *field = fields[i]; - if (writeVariablePrecision(field->type()->getPrecision())) + out << getIndentPrefix(1); + const TField *field = fields[i]; + const TType &fieldType = *field->type(); + if (writeVariablePrecision(fieldType.getPrecision())) + { out << " "; - out << getTypeName(*field->type()) << " " << hashFieldName(field); - if (field->type()->isArray()) - out << ArrayString(*field->type()); + } + if (fieldType.isPrecise()) + { + writePreciseQualifier(fieldType); + } + out << getTypeName(fieldType) << " " << hashFieldName(field); + if (fieldType.isArray()) + { + out << ArrayString(fieldType); + } out << ";\n"; } - out << "}"; + out << getIndentPrefix() << "}"; } void TOutputGLSLBase::declareInterfaceBlockLayout(const TType &type) { // 4.4.5 Uniform and Shader Storage Block Layout Qualifiers in GLSL 4.5 spec. @@ -1386,32 +1259,53 @@ out << hashName(interfaceBlock) << "{\n"; const TFieldList &fields = interfaceBlock->fields(); for (const TField *field : fields) { + out << getIndentPrefix(1); if (!IsShaderIoBlock(type.getQualifier()) && type.getQualifier() != EvqPatchIn && type.getQualifier() != EvqPatchOut) { writeFieldLayoutQualifier(field); } - out << getMemoryQualifiers(*field->type()); - if (writeVariablePrecision(field->type()->getPrecision())) + + const TType &fieldType = *field->type(); + + out << getMemoryQualifiers(fieldType); + if (writeVariablePrecision(fieldType.getPrecision())) out << " "; + if (fieldType.isInvariant()) + { + writeInvariantQualifier(fieldType); + } + if (fieldType.isPrecise()) + { + writePreciseQualifier(fieldType); + } - const char *qualifier = getVariableInterpolation(field->type()->getQualifier()); + const char *qualifier = getVariableInterpolation(fieldType.getQualifier()); if (qualifier != nullptr) out << qualifier; - out << getTypeName(*field->type()) << " " << hashFieldName(field); + out << getTypeName(fieldType) << " " << hashFieldName(field); - if (field->type()->isArray()) - out << ArrayString(*field->type()); + if (fieldType.isArray()) + out << ArrayString(fieldType); out << ";\n"; } out << "}"; } +void WritePragma(TInfoSinkBase &out, ShCompileOptions compileOptions, const TPragma &pragma) +{ + if ((compileOptions & SH_FLATTEN_PRAGMA_STDGL_INVARIANT_ALL) == 0) + { + if (pragma.stdgl.invariantAll) + out << "#pragma STDGL invariant(all)\n"; + } +} + void WriteGeometryShaderLayoutQualifiers(TInfoSinkBase &out, sh::TLayoutPrimitiveType inputPrimitive, int invocations, sh::TLayoutPrimitiveType outputPrimitive, int maxVertices) @@ -1528,6 +1422,66 @@ return true; } return false; } +void EmitEarlyFragmentTestsGLSL(const TCompiler &compiler, TInfoSinkBase &sink) +{ + if (compiler.isEarlyFragmentTestsSpecified() || compiler.isEarlyFragmentTestsOptimized()) + { + sink << "layout (early_fragment_tests) in;\n"; + } +} + +void EmitWorkGroupSizeGLSL(const TCompiler &compiler, TInfoSinkBase &sink) +{ + if (compiler.isComputeShaderLocalSizeDeclared()) + { + const sh::WorkGroupSize &localSize = compiler.getComputeShaderLocalSize(); + sink << "layout (local_size_x=" << localSize[0] << ", local_size_y=" << localSize[1] + << ", local_size_z=" << localSize[2] << ") in;\n"; + } +} + +void EmitMultiviewGLSL(const TCompiler &compiler, + const ShCompileOptions &compileOptions, + const TExtension extension, + const TBehavior behavior, + TInfoSinkBase &sink) +{ + ASSERT(behavior != EBhUndefined); + if (behavior == EBhDisable) + return; + + const bool isVertexShader = (compiler.getShaderType() == GL_VERTEX_SHADER); + if ((compileOptions & SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW) != 0) + { + // Emit ARB_shader_viewport_layer_array/NV_viewport_array2 in a vertex shader if the + // SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER option is set and the + // OVR_multiview(2) extension is requested. + if (isVertexShader && (compileOptions & SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER) != 0) + { + sink << "#if defined(GL_ARB_shader_viewport_layer_array)\n" + << "#extension GL_ARB_shader_viewport_layer_array : require\n" + << "#elif defined(GL_NV_viewport_array2)\n" + << "#extension GL_NV_viewport_array2 : require\n" + << "#endif\n"; + } + } + else + { + sink << "#extension GL_OVR_multiview"; + if (extension == TExtension::OVR_multiview2) + { + sink << "2"; + } + sink << " : " << GetBehaviorString(behavior) << "\n"; + + const auto &numViews = compiler.getNumViews(); + if (isVertexShader && numViews != -1) + { + sink << "layout(num_views=" << numViews << ") in;\n"; + } + } +} + } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/OutputHLSL.h b/gfx/angle/checkout/src/compiler/translator/OutputHLSL.h --- a/gfx/angle/checkout/src/compiler/translator/OutputHLSL.h +++ b/gfx/angle/checkout/src/compiler/translator/OutputHLSL.h @@ -126,11 +126,11 @@ const TConstantUnion *constUnion); void outputEqual(Visit visit, const TType &type, TOperator op, TInfoSinkBase &out); void outputAssign(Visit visit, const TType &type, TInfoSinkBase &out); - void writeEmulatedFunctionTriplet(TInfoSinkBase &out, Visit visit, TOperator op); + void writeEmulatedFunctionTriplet(TInfoSinkBase &out, Visit visit, const TFunction *function); // Returns true if it found a 'same symbol' initializer (initializer that references the // variable it's initting) bool writeSameSymbolInitializer(TInfoSinkBase &out, TIntermSymbol *symbolNode, diff --git a/gfx/angle/checkout/src/compiler/translator/OutputHLSL.cpp b/gfx/angle/checkout/src/compiler/translator/OutputHLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/OutputHLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/OutputHLSL.cpp @@ -145,11 +145,11 @@ if (aggregateNode == nullptr) { return false; } - if (node.getOp() == EOpAssign && IsAtomicFunction(aggregateNode->getOp())) + if (node.getOp() == EOpAssign && BuiltInGroup::IsAtomicMemory(aggregateNode->getOp())) { return !IsInShaderStorageBlock((*aggregateNode->getSequence())[0]->getAsTyped()); } return false; @@ -967,18 +967,21 @@ // We have to add a value which we can use to keep track of which multi-view code // path is to be selected in the GS. out << " float multiviewSelectViewportIndex : packoffset(c3.z);\n"; } + out << " float clipControlOrigin : packoffset(c3.w);\n"; + out << " float clipControlZeroToOne : packoffset(c4);\n"; + if (mOutputType == SH_HLSL_4_1_OUTPUT) { - mResourcesHLSL->samplerMetadataUniforms(out, 4); + mResourcesHLSL->samplerMetadataUniforms(out, 5); } if (mUsesVertexID) { - out << " uint dx_VertexID : packoffset(c3.w);\n"; + out << " uint dx_VertexID : packoffset(c4.y);\n"; } out << "};\n" "\n"; } @@ -988,12 +991,16 @@ { out << "uniform float3 dx_DepthRange : register(c0);\n"; } out << "uniform float4 dx_ViewAdjust : register(c1);\n"; - out << "uniform float2 dx_ViewCoords : register(c2);\n" - "\n"; + out << "uniform float2 dx_ViewCoords : register(c2);\n"; + + out << "static const float clipControlOrigin = -1.0f;\n"; + out << "static const float clipControlZeroToOne = 0.0f;\n"; + + out << "\n"; } if (mUsesDepthRange) { out << "static gl_DepthRangeParameters gl_DepthRange = {dx_DepthRange.x, " @@ -1916,11 +1923,11 @@ case EOpTanh: case EOpAsinh: case EOpAcosh: case EOpAtanh: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpExp: outputTriplet(out, visit, "exp(", "", ")"); break; case EOpLog: @@ -1953,21 +1960,21 @@ case EOpRound: outputTriplet(out, visit, "round(", "", ")"); break; case EOpRoundEven: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpCeil: outputTriplet(out, visit, "ceil(", "", ")"); break; case EOpFract: outputTriplet(out, visit, "frac(", "", ")"); break; case EOpIsnan: if (node->getUseEmulatedFunction()) - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); else outputTriplet(out, visit, "isnan(", "", ")"); mRequiresIEEEStrictCompiling = true; break; case EOpIsinf: @@ -1994,66 +2001,36 @@ case EOpPackUnorm4x8: case EOpPackSnorm4x8: case EOpUnpackUnorm4x8: case EOpUnpackSnorm4x8: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpLength: outputTriplet(out, visit, "length(", "", ")"); break; case EOpNormalize: outputTriplet(out, visit, "normalize(", "", ")"); break; - case EOpDFdx: - if (mInsideDiscontinuousLoop || mOutputLod0Function) - { - outputTriplet(out, visit, "(", "", ", 0.0)"); - } - else - { - outputTriplet(out, visit, "ddx(", "", ")"); - } - break; - case EOpDFdy: - if (mInsideDiscontinuousLoop || mOutputLod0Function) - { - outputTriplet(out, visit, "(", "", ", 0.0)"); - } - else - { - outputTriplet(out, visit, "ddy(", "", ")"); - } - break; - case EOpFwidth: - if (mInsideDiscontinuousLoop || mOutputLod0Function) - { - outputTriplet(out, visit, "(", "", ", 0.0)"); - } - else - { - outputTriplet(out, visit, "fwidth(", "", ")"); - } - break; case EOpTranspose: outputTriplet(out, visit, "transpose(", "", ")"); break; case EOpDeterminant: outputTriplet(out, visit, "determinant(transpose(", "", "))"); break; case EOpInverse: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpAny: outputTriplet(out, visit, "any(", "", ")"); break; case EOpAll: outputTriplet(out, visit, "all(", "", ")"); break; - case EOpLogicalNotComponentWise: + case EOpNotComponentWise: outputTriplet(out, visit, "(!", "", ")"); break; case EOpBitfieldReverse: outputTriplet(out, visit, "reversebits(", "", ")"); break; @@ -2395,18 +2372,22 @@ { TInfoSinkBase &out = getInfoSink(); switch (node->getOp()) { - case EOpCallBuiltInFunction: case EOpCallFunctionInAST: case EOpCallInternalRawFunction: + default: { TIntermSequence *arguments = node->getSequence(); bool lod0 = (mInsideDiscontinuousLoop || mOutputLod0Function) && mShaderType == GL_FRAGMENT_SHADER; + + // No raw function is expected. + ASSERT(node->getOp() != EOpCallInternalRawFunction); + if (node->getOp() == EOpCallFunctionInAST) { if (node->isArray()) { UNIMPLEMENTED(); @@ -2417,16 +2398,10 @@ out << DecorateFunctionIfNeeded(node->getFunction()); out << DisambiguateFunctionName(node->getSequence()); out << (lod0 ? "Lod0(" : "("); } - else if (node->getOp() == EOpCallInternalRawFunction) - { - // This path is used for internal functions that don't have their definitions in the - // AST, such as precision emulation functions. - out << DecorateFunctionIfNeeded(node->getFunction()) << "("; - } else if (node->getFunction()->isImageFunction()) { const ImmutableString &name = node->getFunction()->name(); TType type = (*arguments)[0]->getAsTyped()->getType(); const ImmutableString &imageFunctionName = mImageFunctionHLSL->useImageFunction( @@ -2524,22 +2499,22 @@ case EOpGreaterThanEqualComponentWise: outputTriplet(out, visit, "(", " >= ", ")"); break; case EOpMod: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpModf: outputTriplet(out, visit, "modf(", ", ", ")"); break; case EOpPow: outputTriplet(out, visit, "pow(", ", ", ")"); break; case EOpAtan: ASSERT(node->getSequence()->size() == 2); // atan(x) is a unary operator ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpMin: outputTriplet(out, visit, "min(", ", ", ")"); break; case EOpMax: @@ -2555,11 +2530,11 @@ { // There is no HLSL equivalent for ESSL3 built-in "genType mix (genType x, genType // y, genBType a)", // so use emulated version. ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); } else { outputTriplet(out, visit, "lerp(", ", ", ")"); } @@ -2575,11 +2550,11 @@ outputTriplet(out, visit, "mad(", ", ", ")"); break; case EOpFrexp: case EOpLdexp: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpDistance: outputTriplet(out, visit, "distance(", ", ", ")"); break; case EOpDot: @@ -2588,33 +2563,63 @@ case EOpCross: outputTriplet(out, visit, "cross(", ", ", ")"); break; case EOpFaceforward: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; case EOpReflect: outputTriplet(out, visit, "reflect(", ", ", ")"); break; case EOpRefract: outputTriplet(out, visit, "refract(", ", ", ")"); break; case EOpOuterProduct: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); break; - case EOpMulMatrixComponentWise: + case EOpMatrixCompMult: outputTriplet(out, visit, "(", " * ", ")"); break; case EOpBitfieldExtract: case EOpBitfieldInsert: case EOpUaddCarry: case EOpUsubBorrow: case EOpUmulExtended: case EOpImulExtended: ASSERT(node->getUseEmulatedFunction()); - writeEmulatedFunctionTriplet(out, visit, node->getOp()); + writeEmulatedFunctionTriplet(out, visit, node->getFunction()); + break; + case EOpDFdx: + if (mInsideDiscontinuousLoop || mOutputLod0Function) + { + outputTriplet(out, visit, "(", "", ", 0.0)"); + } + else + { + outputTriplet(out, visit, "ddx(", "", ")"); + } + break; + case EOpDFdy: + if (mInsideDiscontinuousLoop || mOutputLod0Function) + { + outputTriplet(out, visit, "(", "", ", 0.0)"); + } + else + { + outputTriplet(out, visit, "ddy(", "", ")"); + } + break; + case EOpFwidth: + if (mInsideDiscontinuousLoop || mOutputLod0Function) + { + outputTriplet(out, visit, "(", "", ", 0.0)"); + } + else + { + outputTriplet(out, visit, "fwidth(", "", ")"); + } break; case EOpBarrier: // barrier() is translated to GroupMemoryBarrierWithGroupSync(), which is the // cheapest *WithGroupSync() function, without any functionality loss, but // with the potential for severe performance loss. @@ -2693,12 +2698,10 @@ } } break; } - default: - UNREACHABLE(); } return true; } @@ -2986,11 +2989,11 @@ if (variable && variable->getQualifier() == EvqTemporary) { TIntermBinary *assign = variable->getAsBinaryNode(); - if (assign->getOp() == EOpInitialize) + if (assign != nullptr && assign->getOp() == EOpInitialize) { TIntermSymbol *symbol = assign->getLeft()->getAsSymbolNode(); TIntermConstantUnion *constant = assign->getRight()->getAsConstantUnion(); if (symbol && constant) @@ -3228,11 +3231,11 @@ if (IsSampler(type.getBasicType())) { if (mOutputType == SH_HLSL_4_1_OUTPUT) { // Samplers are passed as indices to the sampler array. - ASSERT(qualifier != EvqOut && qualifier != EvqInOut); + ASSERT(qualifier != EvqParamOut && qualifier != EvqParamInOut); out << "const uint " << nameStr << ArrayString(type); return; } if (mOutputType == SH_HLSL_4_0_FL9_3_OUTPUT) { @@ -3259,11 +3262,11 @@ // If the structure parameter contains samplers, they need to be passed into the function as // separate parameters. HLSL doesn't natively support samplers in structs. if (type.isStructureContainingSamplers()) { - ASSERT(qualifier != EvqOut && qualifier != EvqInOut); + ASSERT(qualifier != EvqParamOut && qualifier != EvqParamInOut); TVector samplerSymbols; std::string namePrefix = "angle"; namePrefix += nameStr.c_str(); type.createSamplerSymbols(ImmutableString(namePrefix), "", &samplerSymbols, nullptr, mSymbolTable); @@ -3381,16 +3384,18 @@ } return constUnionIterated; } -void OutputHLSL::writeEmulatedFunctionTriplet(TInfoSinkBase &out, Visit visit, TOperator op) +void OutputHLSL::writeEmulatedFunctionTriplet(TInfoSinkBase &out, + Visit visit, + const TFunction *function) { if (visit == PreVisit) { - const char *opStr = GetOperatorString(op); - BuiltInFunctionEmulator::WriteEmulatedFunctionName(out, opStr); + ASSERT(function != nullptr); + BuiltInFunctionEmulator::WriteEmulatedFunctionName(out, function->name().data()); out << "("; } else { outputTriplet(out, visit, nullptr, ", ", ")"); diff --git a/gfx/angle/checkout/src/compiler/translator/OutputTree.cpp b/gfx/angle/checkout/src/compiler/translator/OutputTree.cpp --- a/gfx/angle/checkout/src/compiler/translator/OutputTree.cpp +++ b/gfx/angle/checkout/src/compiler/translator/OutputTree.cpp @@ -300,11 +300,13 @@ bool TOutputTraverser::visitUnary(Visit visit, TIntermUnary *node) { OutputTreeText(mOut, node, getCurrentIndentDepth()); - switch (node->getOp()) + const TOperator op = node->getOp(); + + switch (op) { // Give verbose names for ops that have special syntax and some built-in functions that are // easy to confuse with others, but mostly use GLSL names for functions. case EOpNegative: mOut << "Negate value"; @@ -334,16 +336,23 @@ case EOpArrayLength: mOut << "Array length"; break; - case EOpLogicalNotComponentWise: + case EOpNotComponentWise: mOut << "component-wise not"; break; default: - mOut << GetOperatorString(node->getOp()); + if (BuiltInGroup::IsBuiltIn(op)) + { + OutputFunction(mOut, "Call a built-in function", node->getFunction()); + } + else + { + mOut << GetOperatorString(node->getOp()); + } break; } mOut << " (" << node->getType() << ")"; @@ -391,31 +400,30 @@ bool TOutputTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { OutputTreeText(mOut, node, getCurrentIndentDepth()); - if (node->getOp() == EOpNull) + const TOperator op = node->getOp(); + + if (op == EOpNull) { mOut.prefix(SH_ERROR); mOut << "node is still EOpNull!\n"; return true; } // Give verbose names for some built-in functions that are easy to confuse with others, but // mostly use GLSL names for functions. - switch (node->getOp()) + switch (op) { case EOpCallFunctionInAST: OutputFunction(mOut, "Call a user-defined function", node->getFunction()); break; case EOpCallInternalRawFunction: OutputFunction(mOut, "Call an internal function with raw implementation", node->getFunction()); break; - case EOpCallBuiltInFunction: - OutputFunction(mOut, "Call a built-in function", node->getFunction()); - break; case EOpConstruct: // The type of the constructor will be printed below. mOut << "Construct"; break; @@ -443,16 +451,23 @@ mOut << "dot product"; break; case EOpCross: mOut << "cross product"; break; - case EOpMulMatrixComponentWise: + case EOpMatrixCompMult: mOut << "component-wise multiply"; break; default: - mOut << GetOperatorString(node->getOp()); + if (BuiltInGroup::IsBuiltIn(op)) + { + OutputFunction(mOut, "Call a built-in function", node->getFunction()); + } + else + { + mOut << GetOperatorString(node->getOp()); + } break; } mOut << " (" << node->getType() << ")"; diff --git a/gfx/angle/checkout/src/compiler/translator/ParseContext.h b/gfx/angle/checkout/src/compiler/translator/ParseContext.h --- a/gfx/angle/checkout/src/compiler/translator/ParseContext.h +++ b/gfx/angle/checkout/src/compiler/translator/ParseContext.h @@ -203,10 +203,14 @@ void handlePragmaDirective(const TSourceLoc &loc, const char *name, const char *value, bool stdgl); + // For built-ins that can be redeclared, adjusts the type qualifier so transformations can + // identify them correctly. + void adjustRedeclaredBuiltInType(const ImmutableString &identifier, TType *type); + // Returns true on success. *initNode may still be nullptr on success in case the initialization // is not needed in the AST. bool executeInitializer(const TSourceLoc &line, const ImmutableString &identifier, TType *type, @@ -487,10 +491,13 @@ TLayoutTessEvaluationType getTessEvaluationShaderInputPointType() const { return mTessEvaluationShaderInputPointType; } + void markShaderHasPrecise() { mHasAnyPreciseType = true; } + bool hasAnyPreciseType() const { return mHasAnyPreciseType; } + ShShaderOutput getOutputType() const { return mOutputType; } // TODO(jmadill): make this private TSymbolTable &symbolTable; // symbol table that goes with the language currently being parsed @@ -720,10 +727,15 @@ int mTessControlShaderOutputVertices; TLayoutTessEvaluationType mTessEvaluationShaderInputPrimitiveType; TLayoutTessEvaluationType mTessEvaluationShaderInputVertexSpacingType; TLayoutTessEvaluationType mTessEvaluationShaderInputOrderingType; TLayoutTessEvaluationType mTessEvaluationShaderInputPointType; + // List of array declarations without an explicit size that have come before layout(vertices=N). + // Once the vertex count is specified, these arrays are sized. + TVector mTessControlDeferredArrayTypesToSize; + // Whether the |precise| keyword has been seen in the shader. + bool mHasAnyPreciseType; // Track when we add new scope for func body in ESSL 1.00 spec bool mFunctionBodyNewScope; ShShaderOutput mOutputType; diff --git a/gfx/angle/checkout/src/compiler/translator/ParseContext.cpp b/gfx/angle/checkout/src/compiler/translator/ParseContext.cpp --- a/gfx/angle/checkout/src/compiler/translator/ParseContext.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ParseContext.cpp @@ -8,13 +8,13 @@ #include #include #include "common/mathutil.h" +#include "common/utilities.h" #include "compiler/preprocessor/SourceLocation.h" #include "compiler/translator/Declarator.h" -#include "compiler/translator/ParseContext_interm.h" #include "compiler/translator/StaticType.h" #include "compiler/translator/ValidateGlobalInitializer.h" #include "compiler/translator/ValidateSwitch.h" #include "compiler/translator/glslang.h" #include "compiler/translator/tree_util/IntermNode_util.h" @@ -209,15 +209,11 @@ mDefaultUniformMatrixPacking(EmpColumnMajor), mDefaultUniformBlockStorage(sh::IsWebGLBasedSpec(spec) ? EbsStd140 : EbsShared), mDefaultBufferMatrixPacking(EmpColumnMajor), mDefaultBufferBlockStorage(sh::IsWebGLBasedSpec(spec) ? EbsStd140 : EbsShared), mDiagnostics(diagnostics), - mDirectiveHandler(ext, - *mDiagnostics, - mShaderVersion, - mShaderType, - resources.WEBGL_debug_shader_precision == 1), + mDirectiveHandler(ext, *mDiagnostics, mShaderVersion, mShaderType), mPreprocessor(mDiagnostics, &mDirectiveHandler, angle::pp::PreprocessorSettings(spec)), mScanner(nullptr), mMinProgramTexelOffset(resources.MinProgramTexelOffset), mMaxProgramTexelOffset(resources.MaxProgramTexelOffset), mMinProgramTextureGatherOffset(resources.MinProgramTextureGatherOffset), @@ -245,10 +241,11 @@ mTessControlShaderOutputVertices(0), mTessEvaluationShaderInputPrimitiveType(EtetUndefined), mTessEvaluationShaderInputVertexSpacingType(EtetUndefined), mTessEvaluationShaderInputOrderingType(EtetUndefined), mTessEvaluationShaderInputPointType(EtetUndefined), + mHasAnyPreciseType(false), mFunctionBodyNewScope(false), mOutputType(outputType) {} TParseContext::~TParseContext() {} @@ -552,11 +549,11 @@ switch (node->getQualifier()) { case EvqConst: message = "can't modify a const"; break; - case EvqConstReadOnly: + case EvqParamConst: message = "can't modify a const"; break; case EvqAttribute: message = "can't modify an attribute"; break; @@ -741,11 +738,11 @@ // If it starts "gl_" or contains two consecutive underscores, it's reserved. // Also checks for "webgl_" and "_webgl_" reserved identifiers if parsing a webgl shader. bool TParseContext::checkIsNotReserved(const TSourceLoc &line, const ImmutableString &identifier) { static const char *reservedErrMsg = "reserved built-in name"; - if (identifier.beginsWith("gl_")) + if (gl::IsBuiltInName(identifier.data())) { error(line, reservedErrMsg, "gl_"); return false; } if (sh::IsWebGLBasedSpec(mShaderSpec)) @@ -1030,11 +1027,11 @@ void TParseContext::checkOutParameterIsNotOpaqueType(const TSourceLoc &line, TQualifier qualifier, const TType &type) { - ASSERT(qualifier == EvqOut || qualifier == EvqInOut); + ASSERT(qualifier == EvqParamOut || qualifier == EvqParamInOut); if (IsOpaqueType(type.getBasicType())) { error(line, "opaque types cannot be output parameters", type.getBasicString()); } } @@ -1245,11 +1242,23 @@ const TType *type, TVariable **variable) { ASSERT((*variable) == nullptr); - (*variable) = new TVariable(&symbolTable, identifier, type, SymbolType::UserDefined); + SymbolType symbolType = SymbolType::UserDefined; + switch (type->getQualifier()) + { + case EvqClipDistance: + case EvqCullDistance: + case EvqLastFragData: + symbolType = SymbolType::BuiltIn; + break; + default: + break; + } + + (*variable) = new TVariable(&symbolTable, identifier, type, symbolType); ASSERT(type->getLayoutQualifier().index == -1 || (isExtensionEnabled(TExtension::EXT_blend_func_extended) && mShaderType == GL_FRAGMENT_SHADER && mShaderVersion >= 300)); if (type->getQualifier() == EvqFragmentOut) @@ -1297,11 +1306,11 @@ else if (static_cast(type->getOutermostArraySize()) == maxDrawBuffers->getConstPointer()->getIConst()) { if (const TSymbol *builtInSymbol = symbolTable.findBuiltIn(identifier, mShaderVersion)) { - needsReservedCheck = !checkCanUseExtension(line, builtInSymbol->extension()); + needsReservedCheck = !checkCanUseOneOfExtensions(line, builtInSymbol->extensions()); } } else { error(line, "redeclaration of gl_LastFragData with size != gl_MaxDrawBuffers", @@ -1325,13 +1334,14 @@ return false; } else if (static_cast(type->getOutermostArraySize()) <= maxClipDistances->getConstPointer()->getIConst()) { - if (const TSymbol *builtInSymbol = symbolTable.findBuiltIn(identifier, mShaderVersion)) + const TSymbol *builtInSymbol = symbolTable.findBuiltIn(identifier, mShaderVersion); + if (builtInSymbol) { - needsReservedCheck = !checkCanUseExtension(line, builtInSymbol->extension()); + needsReservedCheck = !checkCanUseOneOfExtensions(line, builtInSymbol->extensions()); } } else { error(line, "redeclaration of gl_ClipDistance with size > gl_MaxClipDistances", @@ -1357,11 +1367,11 @@ else if (static_cast(type->getOutermostArraySize()) <= maxCullDistances->getConstPointer()->getIConst()) { if (const TSymbol *builtInSymbol = symbolTable.findBuiltIn(identifier, mShaderVersion)) { - needsReservedCheck = !checkCanUseExtension(line, builtInSymbol->extension()); + needsReservedCheck = !checkCanUseOneOfExtensions(line, builtInSymbol->extensions()); } } else { error(line, "redeclaration of gl_CullDistance with size > gl_MaxCullDistances", @@ -1391,11 +1401,11 @@ TType *type) { // The only parameter qualifiers a parameter can have are in, out, inout or const. TTypeQualifier typeQualifier = typeQualifierBuilder.getParameterTypeQualifier(mDiagnostics); - if (typeQualifier.qualifier == EvqOut || typeQualifier.qualifier == EvqInOut) + if (typeQualifier.qualifier == EvqParamOut || typeQualifier.qualifier == EvqParamInOut) { checkOutParameterIsNotOpaqueType(line, typeQualifier.qualifier, *type); } if (!IsImage(type->getBasicType())) @@ -1411,10 +1421,15 @@ if (typeQualifier.precision != EbpUndefined) { type->setPrecision(typeQualifier.precision); } + + if (typeQualifier.precise) + { + type->setPrecise(true); + } } template bool TParseContext::checkCanUseOneOfExtensions(const TSourceLoc &line, const std::array &extensions) @@ -1444,11 +1459,15 @@ canUseWithoutWarning = true; break; } continue; } - if (extIter == extBehavior.end()) + if (extension == TExtension::UNDEFINED) + { + continue; + } + else if (extIter == extBehavior.end()) { errorMsgString = "extension is not supported"; errorMsgExtension = extension; } else if (extIter->second == EBhUndefined || extIter->second == EBhDisable) @@ -2027,12 +2046,12 @@ { for (size_t i = 0; i < fnCandidate->getParamCount(); ++i) { TQualifier qual = fnCandidate->getParam(i)->getType().getQualifier(); TIntermTyped *argument = (*(fnCall->getSequence()))[i]->getAsTyped(); - bool argumentIsRead = (IsQualifierUnspecified(qual) || qual == EvqIn || qual == EvqInOut || - qual == EvqConstReadOnly); + bool argumentIsRead = (IsQualifierUnspecified(qual) || qual == EvqParamIn || + qual == EvqParamInOut || qual == EvqParamConst); if (argumentIsRead) { markStaticReadIfSymbol(argument); if (!IsImage(argument->getBasicType())) { @@ -2043,11 +2062,11 @@ fnCall->functionName()); return; } } } - if (qual == EvqOut || qual == EvqInOut) + if (qual == EvqParamOut || qual == EvqParamInOut) { if (!checkCanBeLValue(argument->getLine(), "assign", argument)) { error(argument->getLine(), "Constant value cannot be passed for 'out' or 'inout' parameters.", @@ -2156,13 +2175,13 @@ return nullptr; } const TVariable *variable = static_cast(symbol); - if (variable->extension() != TExtension::UNDEFINED) - { - checkCanUseExtension(location, variable->extension()); + if (!variable->extensions().empty() && variable->extensions()[0] != TExtension::UNDEFINED) + { + checkCanUseOneOfExtensions(location, variable->extensions()); } // GLSL ES 3.1 Revision 4, 7.1.3 Compute Shader Special Variables if (getShaderType() == GL_COMPUTE_SHADER && !mComputeShaderLocalSizeDeclared && variable->getType().getQualifier() == EvqWorkGroupSize) @@ -2237,10 +2256,26 @@ ASSERT(node != nullptr); node->setLine(location); return node; } +void TParseContext::adjustRedeclaredBuiltInType(const ImmutableString &identifier, TType *type) +{ + if (identifier == "gl_ClipDistance") + { + type->setQualifier(EvqClipDistance); + } + else if (identifier == "gl_CullDistance") + { + type->setQualifier(EvqCullDistance); + } + else if (identifier == "gl_LastFragData") + { + type->setQualifier(EvqLastFragData); + } +} + // Initializers show up in several places in the grammar. Have one set of // code to handle them here. // // Returns true on success. bool TParseContext::executeInitializer(const TSourceLoc &line, @@ -2601,10 +2636,11 @@ bool typeContainsIntegers = (type.getBasicType() == EbtInt || type.getBasicType() == EbtUInt || type.isStructureContainingType(EbtInt) || type.isStructureContainingType(EbtUInt)); bool extendedShaderTypes = mShaderVersion >= 320 || isExtensionEnabled(TExtension::EXT_geometry_shader) || + isExtensionEnabled(TExtension::OES_geometry_shader) || isExtensionEnabled(TExtension::EXT_tessellation_shader); if (typeContainsIntegers && qualifier != EvqFlatIn && qualifier != EvqFlatOut && (!extendedShaderTypes || mShaderType == GL_FRAGMENT_SHADER)) { error(qualifierLocation, "must use 'flat' interpolation here", @@ -2800,47 +2836,51 @@ case EvqFlatOut: case EvqCentroidOut: case EvqSmoothOut: case EvqSampleOut: // Declaring an array size is optional. If no size is specified, it will be taken - // from output patch size declared in the shader. - type->sizeOutermostUnsizedArray(mTessControlShaderOutputVertices); + // from output patch size declared in the shader. If the patch size is not yet + // declared, this is deferred until such time as it does. + if (mTessControlShaderOutputVertices == 0) + { + mTessControlDeferredArrayTypesToSize.push_back(type); + } + else + { + type->sizeOutermostUnsizedArray(mTessControlShaderOutputVertices); + } break; default: UNREACHABLE(); break; } - } - else - { - if (IsTessellationControlShaderInput(mShaderType, qualifier) || - IsTessellationEvaluationShaderInput(mShaderType, qualifier)) - { - if (outermostSize != static_cast(mMaxPatchVertices)) - { - error( - location, - "If a size is specified for a tessellation control or evaluation user-defined " - "input variable, it must match the maximum patch size (gl_MaxPatchVertices).", - token); - } - } - else if (IsTessellationControlShaderOutput(mShaderType, qualifier)) - { - if (outermostSize != static_cast(mTessControlShaderOutputVertices) && - mTessControlShaderOutputVertices != 0) - { - error(location, - "If a size is specified for a tessellation control user-defined per-vertex " - "output variable, it must match the the number of vertices in the output " - "patch.", - token); - } - } - return; } + + if (IsTessellationControlShaderInput(mShaderType, qualifier) || + IsTessellationEvaluationShaderInput(mShaderType, qualifier)) + { + if (outermostSize != static_cast(mMaxPatchVertices)) + { + error(location, + "If a size is specified for a tessellation control or evaluation user-defined " + "input variable, it must match the maximum patch size (gl_MaxPatchVertices).", + token); + } + } + else if (IsTessellationControlShaderOutput(mShaderType, qualifier)) + { + if (outermostSize != static_cast(mTessControlShaderOutputVertices) && + mTessControlShaderOutputVertices != 0) + { + error(location, + "If a size is specified for a tessellation control user-defined per-vertex " + "output variable, it must match the the number of vertices in the output " + "patch.", + token); + } + } } TIntermDeclaration *TParseContext::parseSingleDeclaration( TPublicType &publicType, const TSourceLoc &identifierOrTypeLocation, @@ -2957,10 +2997,12 @@ checkAtomicCounterOffsetDoesNotOverlap(false, identifierLocation, arrayType); checkAtomicCounterOffsetAlignment(identifierLocation, *arrayType); } + adjustRedeclaredBuiltInType(identifier, arrayType); + TIntermDeclaration *declaration = new TIntermDeclaration(); declaration->setLine(identifierLocation); TVariable *variable = nullptr; if (declareVariable(identifierLocation, identifier, arrayType, &variable)) @@ -3131,10 +3173,12 @@ checkAtomicCounterOffsetDoesNotOverlap(true, identifierLocation, type); checkAtomicCounterOffsetAlignment(identifierLocation, *type); } + adjustRedeclaredBuiltInType(identifier, type); + TVariable *variable = nullptr; if (declareVariable(identifierLocation, identifier, type, &variable)) { TIntermSymbol *symbol = new TIntermSymbol(variable); symbol->setLine(identifierLocation); @@ -3174,10 +3218,12 @@ checkAtomicCounterOffsetDoesNotOverlap(true, identifierLocation, arrayType); checkAtomicCounterOffsetAlignment(identifierLocation, *arrayType); } + adjustRedeclaredBuiltInType(identifier, arrayType); + TVariable *variable = nullptr; if (declareVariable(identifierLocation, identifier, arrayType, &variable)) { TIntermSymbol *symbol = new TIntermSymbol(variable); symbol->setLine(identifierLocation); @@ -3450,10 +3496,16 @@ // Set mTessControlShaderOutputVertices if exists if (mTessControlShaderOutputVertices == 0) { mTessControlShaderOutputVertices = layoutQualifier.vertices; + + // Size any implicitly sized arrays that have already been declared. + for (TType *type : mTessControlDeferredArrayTypesToSize) + { + type->sizeOutermostUnsizedArray(mTessControlShaderOutputVertices); + } } else { error(typeQualifier.line, "Duplicated vertices specified", "layout"); } @@ -3905,16 +3957,20 @@ // for (size_t i = 0u; i < function->getParamCount(); ++i) { const TVariable *param = function->getParam(i); - if (param->getType().isStructSpecifier()) + const TType ¶mType = param->getType(); + + if (paramType.isStructSpecifier()) { // ESSL 3.00.6 section 12.10. error(location, "Function parameter type cannot be a structure definition", function->name()); } + + checkPrecisionSpecified(location, paramType.getPrecision(), paramType.getBasicType()); } if (getShaderVersion() >= 300) { @@ -4246,18 +4302,25 @@ else if (typeQualifier.qualifier != EvqUniform && typeQualifier.qualifier != EvqBuffer) { if (isShaderIoBlock) { if (!isExtensionEnabled(TExtension::OES_shader_io_blocks) && - !isExtensionEnabled(TExtension::EXT_shader_io_blocks) && mShaderVersion < 320) + !isExtensionEnabled(TExtension::EXT_shader_io_blocks) && + !isExtensionEnabled(TExtension::OES_geometry_shader) && + !isExtensionEnabled(TExtension::EXT_geometry_shader) && mShaderVersion < 320) { error(typeQualifier.line, "invalid qualifier: shader IO blocks need shader io block extension", getQualifierString(typeQualifier.qualifier)); } - if (mShaderType == GL_TESS_CONTROL_SHADER && arraySizes == nullptr) + // Both inputs and outputs of tessellation control shaders must be arrays. + // For tessellation evaluation shaders, only inputs must necessarily be arrays. + const bool isTCS = mShaderType == GL_TESS_CONTROL_SHADER; + const bool isTESIn = + mShaderType == GL_TESS_EVALUATION_SHADER && IsShaderIn(typeQualifier.qualifier); + if (arraySizes == nullptr && (isTCS || isTESIn)) { error(typeQualifier.line, "type must be an array", blockName); } } else @@ -4268,11 +4331,11 @@ } } if (typeQualifier.invariant) { - error(typeQualifier.line, "invalid qualifier on interface block member", "invariant"); + error(typeQualifier.line, "invalid qualifier on interface block", "invariant"); } if (typeQualifier.qualifier != EvqBuffer) { checkMemoryQualifierIsNotSpecified(typeQualifier.memoryQualifier, typeQualifier.line); @@ -4428,12 +4491,17 @@ // in or out. case EvqSmooth: case EvqFlat: case EvqNoPerspective: case EvqCentroid: + case EvqGeometryIn: + case EvqGeometryOut: if (!IsShaderIoBlock(typeQualifier.qualifier) && - typeQualifier.qualifier != EvqPatchIn && typeQualifier.qualifier != EvqPatchOut) + typeQualifier.qualifier != EvqPatchIn && + typeQualifier.qualifier != EvqPatchOut && + typeQualifier.qualifier != EvqGeometryIn && + typeQualifier.qualifier != EvqGeometryOut) { error(field->line(), "invalid qualifier on interface block member", getQualifierString(qualifier)); } break; @@ -4441,11 +4509,13 @@ error(field->line(), "invalid qualifier on interface block member", getQualifierString(qualifier)); break; } - if (fieldType->isInvariant()) + // On interface block members, invariant is only applicable to output I/O blocks. + const bool isOutputShaderIoBlock = isShaderIoBlock && IsShaderOut(typeQualifier.qualifier); + if (fieldType->isInvariant() && !isOutputShaderIoBlock) { error(field->line(), "invalid qualifier on interface block member", "invariant"); } // check layout qualifiers @@ -4510,10 +4580,14 @@ TType *interfaceBlockType = new TType(interfaceBlock, typeQualifier.qualifier, blockLayoutQualifier); if (arraySizes) { interfaceBlockType->makeArrays(*arraySizes); + + checkGeometryShaderInputAndSetArraySize(instanceLine, instanceName, interfaceBlockType); + checkTessellationShaderUnsizedArraysAndSetSize(instanceLine, instanceName, + interfaceBlockType); } // The instance variable gets created to refer to the interface block type from the AST // regardless of if there's an instance name. It's created as an empty symbol if there is no // instance name. @@ -4802,13 +4876,12 @@ // sanitized object. if (safeIndex != index || indexConstantUnion->getBasicType() != EbtInt) { TConstantUnion *safeConstantUnion = new TConstantUnion(); safeConstantUnion->setIConst(safeIndex); - indexExpression = new TIntermConstantUnion( - safeConstantUnion, TType(EbtInt, indexExpression->getPrecision(), - indexExpression->getQualifier())); + indexExpression = + new TIntermConstantUnion(safeConstantUnion, TType(indexExpression->getType())); } TIntermBinary *node = new TIntermBinary(EOpIndexDirect, baseExpression, indexExpression); node->setLine(location); @@ -5080,11 +5153,14 @@ checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310); qualifier.imageInternalFormat = EiifR32UI; } else if (mShaderType == GL_GEOMETRY_SHADER_EXT && (mShaderVersion >= 320 || - (checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader) && + (checkCanUseOneOfExtensions( + qualifierTypeLine, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}) && checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310)))) { if (qualifierType == "points") { qualifier.primitiveType = EptPoints; @@ -5366,17 +5442,23 @@ parseNumViews(intValue, intValueLine, intValueString, &qualifier.numViews); } } else if (qualifierType == "invocations" && mShaderType == GL_GEOMETRY_SHADER_EXT && (mShaderVersion >= 320 || - checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))) + checkCanUseOneOfExtensions( + qualifierTypeLine, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}))) { parseInvocations(intValue, intValueLine, intValueString, &qualifier.invocations); } else if (qualifierType == "max_vertices" && mShaderType == GL_GEOMETRY_SHADER_EXT && (mShaderVersion >= 320 || - checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))) + checkCanUseOneOfExtensions( + qualifierTypeLine, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}))) { parseMaxVertices(intValue, intValueLine, intValueString, &qualifier.maxVertices); } else if (qualifierType == "index" && mShaderType == GL_FRAGMENT_SHADER && checkCanUseExtension(qualifierTypeLine, TExtension::EXT_blend_func_extended)) @@ -5422,11 +5504,11 @@ TStorageQualifierWrapper *TParseContext::parseInQualifier(const TSourceLoc &loc) { if (declaringFunction()) { - return new TStorageQualifierWrapper(EvqIn, loc); + return new TStorageQualifierWrapper(EvqParamIn, loc); } switch (getShaderType()) { case GL_VERTEX_SHADER: @@ -5472,11 +5554,11 @@ TStorageQualifierWrapper *TParseContext::parseOutQualifier(const TSourceLoc &loc) { if (declaringFunction()) { - return new TStorageQualifierWrapper(EvqOut, loc); + return new TStorageQualifierWrapper(EvqParamOut, loc); } switch (getShaderType()) { case GL_VERTEX_SHADER: { @@ -5495,11 +5577,11 @@ return new TStorageQualifierWrapper(EvqFragmentOut, loc); } case GL_COMPUTE_SHADER: { error(loc, "storage qualifier isn't supported in compute shaders", "out"); - return new TStorageQualifierWrapper(EvqOut, loc); + return new TStorageQualifierWrapper(EvqParamOut, loc); } case GL_GEOMETRY_SHADER_EXT: { return new TStorageQualifierWrapper(EvqGeometryOut, loc); } @@ -5532,11 +5614,11 @@ error(loc, "invalid qualifier: can be used with either function parameters or the variables for " "fetching input attachment data", "inout"); } - return new TStorageQualifierWrapper(EvqInOut, loc); + return new TStorageQualifierWrapper(EvqParamInOut, loc); } TLayoutQualifier TParseContext::joinLayoutQualifiers(TLayoutQualifier leftQualifier, TLayoutQualifier rightQualifier, const TSourceLoc &rightQualifierLocation) @@ -5828,18 +5910,20 @@ { unaryOpError(loc, GetOperatorString(op), child->getType()); return nullptr; } break; - // Operators for built-ins are already type checked against their prototype. + // Operators for math built-ins are already type checked against their prototype. default: break; } if (child->getMemoryQualifier().writeonly) { - unaryOpError(loc, GetOperatorString(op), child->getType()); + const char *opStr = + BuiltInGroup::IsBuiltIn(op) ? func->name().data() : GetOperatorString(op); + unaryOpError(loc, opStr, child->getType()); return nullptr; } markStaticReadIfSymbol(child); TIntermUnary *node = new TIntermUnary(op, child, func); @@ -6418,16 +6502,16 @@ } } void TParseContext::checkTextureGather(TIntermAggregate *functionCall) { - ASSERT(functionCall->getOp() == EOpCallBuiltInFunction); + const TOperator op = functionCall->getOp(); const TFunction *func = functionCall->getFunction(); - if (BuiltInGroup::isTextureGather(func)) + if (BuiltInGroup::IsTextureGather(op)) { bool isTextureGatherOffsetOrOffsets = - BuiltInGroup::isTextureGatherOffset(func) || BuiltInGroup::isTextureGatherOffsets(func); + BuiltInGroup::IsTextureGatherOffset(op) || BuiltInGroup::IsTextureGatherOffsets(op); TIntermNode *componentNode = nullptr; TIntermSequence *arguments = functionCall->getSequence(); ASSERT(arguments->size() >= 2u && arguments->size() <= 4u); const TIntermTyped *sampler = arguments->front()->getAsTyped(); ASSERT(sampler != nullptr); @@ -6446,19 +6530,23 @@ } break; case EbtSamplerCube: case EbtISamplerCube: case EbtUSamplerCube: + case EbtSamplerCubeArray: + case EbtISamplerCubeArray: + case EbtUSamplerCubeArray: ASSERT(!isTextureGatherOffsetOrOffsets); if (arguments->size() == 3u) { componentNode = arguments->back(); } break; case EbtSampler2DShadow: case EbtSampler2DArrayShadow: case EbtSamplerCubeShadow: + case EbtSamplerCubeArrayShadow: break; default: UNREACHABLE(); break; } @@ -6484,24 +6572,22 @@ } } void TParseContext::checkTextureOffset(TIntermAggregate *functionCall) { - ASSERT(functionCall->getOp() == EOpCallBuiltInFunction); + const TOperator op = functionCall->getOp(); const TFunction *func = functionCall->getFunction(); TIntermNode *offset = nullptr; TIntermSequence *arguments = functionCall->getSequence(); - if (BuiltInGroup::isTextureOffsetNoBias(func) || - BuiltInGroup::isTextureGatherOffsetNoComp(func) || - BuiltInGroup::isTextureGatherOffsetsNoComp(func)) + if (BuiltInGroup::IsTextureOffsetNoBias(op) || BuiltInGroup::IsTextureGatherOffsetNoComp(op) || + BuiltInGroup::IsTextureGatherOffsetsNoComp(op)) { offset = arguments->back(); } - else if (BuiltInGroup::isTextureOffsetBias(func) || - BuiltInGroup::isTextureGatherOffsetComp(func) || - BuiltInGroup::isTextureGatherOffsetsComp(func)) + else if (BuiltInGroup::IsTextureOffsetBias(op) || BuiltInGroup::IsTextureGatherOffsetComp(op) || + BuiltInGroup::IsTextureGatherOffsetsComp(op)) { // A bias or comp parameter follows the offset parameter. ASSERT(arguments->size() >= 3); offset = (*arguments)[2]; } @@ -6510,46 +6596,48 @@ if (offset == nullptr) { return; } - bool isTextureGatherOffset = BuiltInGroup::isTextureGatherOffset(func); - bool isTextureGatherOffsets = BuiltInGroup::isTextureGatherOffsets(func); + bool isTextureGatherOffset = BuiltInGroup::IsTextureGatherOffset(op); + bool isTextureGatherOffsets = BuiltInGroup::IsTextureGatherOffsets(op); bool useTextureGatherOffsetConstraints = isTextureGatherOffset || isTextureGatherOffsets; int minOffsetValue = useTextureGatherOffsetConstraints ? mMinProgramTextureGatherOffset : mMinProgramTexelOffset; int maxOffsetValue = useTextureGatherOffsetConstraints ? mMaxProgramTextureGatherOffset : mMaxProgramTexelOffset; if (isTextureGatherOffsets) { // If textureGatherOffsets, the offsets parameter is an array, which is expected as an - // aggregate constructor node. + // aggregate constructor node or as a symbol node with a constant value. TIntermAggregate *offsetAggregate = offset->getAsAggregate(); + TIntermSymbol *offsetSymbol = offset->getAsSymbolNode(); + const TConstantUnion *offsetValues = - offsetAggregate ? offsetAggregate->getConstantValue() : nullptr; + offsetAggregate ? offsetAggregate->getConstantValue() + : offsetSymbol ? offsetSymbol->getConstantValue() : nullptr; if (offsetValues == nullptr) { error(functionCall->getLine(), "Texture offsets must be a constant expression", func->name()); return; } constexpr unsigned int kOffsetsCount = 4; - const TType &offsetAggregateType = offsetAggregate->getType(); - if (offsetAggregateType.getNumArraySizes() != 1 || - offsetAggregateType.getArraySizes()[0] != kOffsetsCount) + const TType &offsetType = + offsetAggregate != nullptr ? offsetAggregate->getType() : offsetSymbol->getType(); + if (offsetType.getNumArraySizes() != 1 || offsetType.getArraySizes()[0] != kOffsetsCount) { error(functionCall->getLine(), "Texture offsets must be an array of 4 elements", func->name()); return; } - TIntermNode *firstOffset = offsetAggregate->getSequence()->front(); - size_t size = firstOffset->getAsTyped()->getType().getObjectSize(); + size_t size = offsetType.getObjectSize() / kOffsetsCount; for (unsigned int i = 0; i < kOffsetsCount; ++i) { checkSingleTextureOffset(offset->getLine(), &offsetValues[i * size], size, minOffsetValue, maxOffsetValue); } @@ -6610,11 +6698,11 @@ } void TParseContext::checkInterpolationFS(TIntermAggregate *functionCall) { const TFunction *func = functionCall->getFunction(); - if (!BuiltInGroup::isInterpolationFS(func)) + if (!BuiltInGroup::IsInterpolationFS(functionCall->getOp())) { return; } TIntermTyped *arg0 = nullptr; @@ -6645,13 +6733,12 @@ } void TParseContext::checkAtomicMemoryBuiltinFunctions(TIntermAggregate *functionCall) { const TFunction *func = functionCall->getFunction(); - if (BuiltInGroup::isAtomicMemory(func)) - { - ASSERT(IsAtomicFunction(functionCall->getOp())); + if (BuiltInGroup::IsAtomicMemory(functionCall->getOp())) + { TIntermSequence *arguments = functionCall->getSequence(); TIntermTyped *memNode = (*arguments)[0]->getAsTyped(); if (IsBufferOrSharedVariable(memNode)) { @@ -6679,40 +6766,38 @@ } // GLSL ES 3.10 Revision 4, 4.9 Memory Access Qualifiers void TParseContext::checkImageMemoryAccessForBuiltinFunctions(TIntermAggregate *functionCall) { - ASSERT(functionCall->getOp() == EOpCallBuiltInFunction); - - const TFunction *func = functionCall->getFunction(); - - if (BuiltInGroup::isImage(func)) + const TOperator op = functionCall->getOp(); + + if (BuiltInGroup::IsImage(op)) { TIntermSequence *arguments = functionCall->getSequence(); TIntermTyped *imageNode = (*arguments)[0]->getAsTyped(); const TMemoryQualifier &memoryQualifier = imageNode->getMemoryQualifier(); - if (BuiltInGroup::isImageStore(func)) + if (BuiltInGroup::IsImageStore(op)) { if (memoryQualifier.readonly) { error(imageNode->getLine(), "'imageStore' cannot be used with images qualified as 'readonly'", GetImageArgumentToken(imageNode)); } } - else if (BuiltInGroup::isImageLoad(func)) + else if (BuiltInGroup::IsImageLoad(op)) { if (memoryQualifier.writeonly) { error(imageNode->getLine(), "'imageLoad' cannot be used with images qualified as 'writeonly'", GetImageArgumentToken(imageNode)); } } - else if (BuiltInGroup::isImageAtomic(func)) + else if (BuiltInGroup::IsImageAtomic(op)) { if (memoryQualifier.readonly) { error(imageNode->getLine(), "'imageAtomic' cannot be used with images qualified as 'readonly'", @@ -6884,52 +6969,44 @@ { // A built-in function. ASSERT(symbol->symbolType() == SymbolType::BuiltIn); const TFunction *fnCandidate = static_cast(symbol); - if (fnCandidate->extension() != TExtension::UNDEFINED) - { - checkCanUseExtension(loc, fnCandidate->extension()); - } - TOperator op = fnCandidate->getBuiltInOp(); - if (op != EOpCallBuiltInFunction) + if (!fnCandidate->extensions().empty() && + fnCandidate->extensions()[0] != TExtension::UNDEFINED) { - // A function call mapped to a built-in operation. - if (fnCandidate->getParamCount() == 1) - { - // Treat it like a built-in unary operator. - TIntermNode *unaryParamNode = fnCall->arguments().front(); - TIntermTyped *callNode = - createUnaryMath(op, unaryParamNode->getAsTyped(), loc, fnCandidate); - ASSERT(callNode != nullptr); - return callNode; - } - - TIntermAggregate *callNode = - TIntermAggregate::CreateBuiltInFunctionCall(*fnCandidate, &fnCall->arguments()); - callNode->setLine(loc); - - checkAtomicMemoryBuiltinFunctions(callNode); - - // Some built-in functions have out parameters too. - functionCallRValueLValueErrorCheck(fnCandidate, callNode); - - // See if we can constant fold a built-in. Note that this may be possible - // even if it is not const-qualified. - return callNode->fold(mDiagnostics); + checkCanUseOneOfExtensions(loc, fnCandidate->extensions()); } - // This is a built-in function with no op associated with it. + // All function calls are mapped to a built-in operation. + TOperator op = fnCandidate->getBuiltInOp(); + if (BuiltInGroup::IsMath(op) && fnCandidate->getParamCount() == 1) + { + // Treat it like a built-in unary operator. + TIntermNode *unaryParamNode = fnCall->arguments().front(); + TIntermTyped *callNode = + createUnaryMath(op, unaryParamNode->getAsTyped(), loc, fnCandidate); + ASSERT(callNode != nullptr); + return callNode; + } + TIntermAggregate *callNode = TIntermAggregate::CreateBuiltInFunctionCall(*fnCandidate, &fnCall->arguments()); callNode->setLine(loc); + + checkAtomicMemoryBuiltinFunctions(callNode); checkTextureOffset(callNode); checkTextureGather(callNode); checkInterpolationFS(callNode); checkImageMemoryAccessForBuiltinFunctions(callNode); + + // Some built-in functions have out parameters too. functionCallRValueLValueErrorCheck(fnCandidate, callNode); - return callNode; + + // See if we can constant fold a built-in. Note that this may be possible + // even if it is not const-qualified. + return callNode->fold(mDiagnostics); } else { error(loc, "no matching overloaded function found", fnCall->name()); } diff --git a/gfx/angle/checkout/src/compiler/translator/ParseContext_ESSL_autogen.h b/gfx/angle/checkout/src/compiler/translator/ParseContext_ESSL_autogen.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/ParseContext_ESSL_autogen.h +++ /dev/null @@ -1,101 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_builtin_symbols.py using data from builtin_variables.json and -// builtin_function_declarations.txt. -// -// 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. -// -// ParseContext_ESSL_autogen.h: -// Helpers for built-in related checks. - -#ifndef COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ -#define COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ - -namespace sh -{ - -namespace BuiltInGroup -{ - -bool isTextureOffsetNoBias(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3792 && id <= 3861; -} -bool isTextureOffsetBias(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3862 && id <= 3881; -} -bool isTextureGatherOffsetNoComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3919 && id <= 3926; -} -bool isTextureGatherOffsetComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3927 && id <= 3932; -} -bool isTextureGatherOffset(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3919 && id <= 3932; -} -bool isTextureGatherOffsetsNoComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3933 && id <= 3949; -} -bool isTextureGatherOffsetsComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3950 && id <= 3961; -} -bool isTextureGatherOffsets(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3933 && id <= 3961; -} -bool isTextureGather(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3895 && id <= 3961; -} -bool isInterpolationFS(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 3974 && id <= 3997; -} -bool isAtomicMemory(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 4002 && id <= 4019; -} -bool isImageStore(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 4056 && id <= 4073; -} -bool isImageLoad(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 4074 && id <= 4091; -} -bool isImageAtomic(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 4092 && id <= 4667; -} -bool isImage(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 4020 && id <= 4667; -} - -} // namespace BuiltInGroup - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/ParseContext_complete_autogen.h b/gfx/angle/checkout/src/compiler/translator/ParseContext_complete_autogen.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/ParseContext_complete_autogen.h +++ /dev/null @@ -1,101 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_builtin_symbols.py using data from builtin_variables.json and -// builtin_function_declarations.txt. -// -// 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. -// -// ParseContext_complete_autogen.h: -// Helpers for built-in related checks. - -#ifndef COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ -#define COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ - -namespace sh -{ - -namespace BuiltInGroup -{ - -bool isTextureOffsetNoBias(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1132 && id <= 1278; -} -bool isTextureOffsetBias(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1279 && id <= 1313; -} -bool isTextureGatherOffsetNoComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1358 && id <= 1369; -} -bool isTextureGatherOffsetComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1370 && id <= 1378; -} -bool isTextureGatherOffset(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1358 && id <= 1378; -} -bool isTextureGatherOffsetsNoComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1379 && id <= 1399; -} -bool isTextureGatherOffsetsComp(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1400 && id <= 1414; -} -bool isTextureGatherOffsets(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1379 && id <= 1414; -} -bool isTextureGather(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1327 && id <= 1414; -} -bool isInterpolationFS(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1451 && id <= 1474; -} -bool isAtomicMemory(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1488 && id <= 1505; -} -bool isImageStore(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1578 && id <= 1610; -} -bool isImageLoad(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1611 && id <= 1643; -} -bool isImageAtomic(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1644 && id <= 2765; -} -bool isImage(const TFunction *func) -{ - int id = func->uniqueId().get(); - return id >= 1506 && id <= 2765; -} - -} // namespace BuiltInGroup - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_PARSECONTEXT_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/ParseContext_interm.h b/gfx/angle/checkout/src/compiler/translator/ParseContext_interm.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/ParseContext_interm.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2019 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. -// -// ParseContext_interm.h: -// Chooses ParseContext_complete_autogen.h or ParseContext_ESSL_autogen.h -// depending on whether platform is android - -#ifndef COMPILER_TRANSLATOR_PARSECONTEXT_INTERM_H_ -#define COMPILER_TRANSLATOR_PARSECONTEXT_INTERM_H_ - -#if defined(ANDROID) -# include "ParseContext_ESSL_autogen.h" -#else -# include "ParseContext_complete_autogen.h" -#endif - -#endif // COMPILER_TRANSLATOR_PARSECONTEXT_INTERM_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/Pragma.h b/gfx/angle/checkout/src/compiler/translator/Pragma.h --- a/gfx/angle/checkout/src/compiler/translator/Pragma.h +++ b/gfx/angle/checkout/src/compiler/translator/Pragma.h @@ -15,17 +15,14 @@ bool invariantAll; }; // By default optimization is turned on and debug is turned off. - // Precision emulation is turned on by default, but has no effect unless - // the extension is enabled. - TPragma() : optimize(true), debug(false), debugShaderPrecision(true) {} - TPragma(bool o, bool d) : optimize(o), debug(d), debugShaderPrecision(true) {} + TPragma() : optimize(true), debug(false) {} + TPragma(bool o, bool d) : optimize(o), debug(d) {} bool optimize; bool debug; - bool debugShaderPrecision; STDGL stdgl; }; #endif // COMPILER_TRANSLATOR_PRAGMA_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/QualifierTypes.cpp b/gfx/angle/checkout/src/compiler/translator/QualifierTypes.cpp --- a/gfx/angle/checkout/src/compiler/translator/QualifierTypes.cpp +++ b/gfx/angle/checkout/src/compiler/translator/QualifierTypes.cpp @@ -509,12 +509,12 @@ break; case EvqConst: { switch (storageQualifier) { - case EvqIn: - *joinedQualifier = EvqConstReadOnly; + case EvqParamIn: + *joinedQualifier = EvqParamConst; break; default: return false; } break; @@ -639,11 +639,10 @@ const TQualifierWrapperBase *qualifier = sortedSequence[i]; bool isQualifierValid = false; switch (qualifier->getType()) { case QtInvariant: - case QtPrecise: case QtInterpolation: case QtLayout: break; case QtMemory: isQualifierValid = JoinMemoryQualifier( @@ -659,10 +658,14 @@ isQualifierValid = true; typeQualifier.precision = static_cast(qualifier)->getQualifier(); ASSERT(typeQualifier.precision != EbpUndefined); break; + case QtPrecise: + isQualifierValid = true; + typeQualifier.precise = true; + break; default: UNREACHABLE(); } if (!isQualifierValid) { @@ -673,21 +676,21 @@ } } switch (typeQualifier.qualifier) { - case EvqIn: - case EvqConstReadOnly: // const in - case EvqOut: - case EvqInOut: + case EvqParamIn: + case EvqParamConst: // const in + case EvqParamOut: + case EvqParamInOut: break; case EvqConst: - typeQualifier.qualifier = EvqConstReadOnly; + typeQualifier.qualifier = EvqParamConst; break; case EvqTemporary: - // no qualifier has been specified, set it to EvqIn which is the default - typeQualifier.qualifier = EvqIn; + // no qualifier has been specified, set it to EvqParamIn which is the default + typeQualifier.qualifier = EvqParamIn; break; default: diagnostics->error(sortedSequence[0]->getLine(), "Invalid parameter qualifier ", getQualifierString(typeQualifier.qualifier)); } diff --git a/gfx/angle/checkout/src/compiler/translator/ShaderLang.cpp b/gfx/angle/checkout/src/compiler/translator/ShaderLang.cpp --- a/gfx/angle/checkout/src/compiler/translator/ShaderLang.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ShaderLang.cpp @@ -25,12 +25,22 @@ { namespace { -bool isInitialized = false; -bool isGlslangInitialized = false; +bool isInitialized = false; + +// glslang can only be initialized/finalized once per process. Otherwise, the following EGL commands +// will call GlslangFinalize() without ever being able to GlslangInitialize() again, leading to +// crashes since GlslangFinalize() cleans up glslang for the entire process. +// dpy1 = eglGetPlatformDisplay() | +// eglInitialize(dpy1) | GlslangInitialize() +// dpy2 = eglGetPlatformDisplay() | +// eglInitialize(dpy2) | GlslangInitialize() +// eglTerminate(dpy2) | GlslangFinalize() +// eglInitialize(dpy1) | Display::isInitialized() == true, no GlslangInitialize() +int initializeGlslangRefCount = 0; // // This is the platform independent interface between an OGL driver // and the shading language compiler. // @@ -188,19 +198,19 @@ resources->ARB_texture_rectangle = 0; resources->EXT_blend_func_extended = 0; resources->EXT_draw_buffers = 0; resources->EXT_frag_depth = 0; resources->EXT_shader_texture_lod = 0; - resources->WEBGL_debug_shader_precision = 0; resources->EXT_shader_framebuffer_fetch = 0; resources->EXT_shader_framebuffer_fetch_non_coherent = 0; resources->NV_shader_framebuffer_fetch = 0; resources->ARM_shader_framebuffer_fetch = 0; resources->OVR_multiview = 0; resources->OVR_multiview2 = 0; resources->EXT_YUV_target = 0; resources->EXT_geometry_shader = 0; + resources->OES_geometry_shader = 0; resources->EXT_gpu_shader5 = 0; resources->OES_shader_io_blocks = 0; resources->EXT_shader_io_blocks = 0; resources->EXT_shader_non_constant_global_initializers = 0; resources->NV_shader_noperspective_interpolation = 0; @@ -242,12 +252,10 @@ resources->MaxViewsOVR = 4; // Disable name hashing by default. resources->HashFunction = nullptr; - resources->ArrayIndexClampingStrategy = SH_CLAMP_WITH_CLAMP_INTRINSIC; - resources->MaxExpressionComplexity = 256; resources->MaxCallStackDepth = 256; resources->MaxFunctionParameters = 1024; // ES 3.1 Revision 4, 7.2 Built-in Constants @@ -916,24 +924,26 @@ return sharedMemorySize; } void InitializeGlslang() { - if (!isGlslangInitialized) + if (initializeGlslangRefCount == 0) { GlslangInitialize(); } - isGlslangInitialized = true; + ++initializeGlslangRefCount; + ASSERT(initializeGlslangRefCount < std::numeric_limits::max()); } void FinalizeGlslang() { - if (isGlslangInitialized) + --initializeGlslangRefCount; + ASSERT(initializeGlslangRefCount >= 0); + if (initializeGlslangRefCount == 0) { GlslangFinalize(); } - isGlslangInitialized = false; } // Can't prefix with just _ because then we might introduce a double underscore, which is not safe // in GLSL (ESSL 3.00.6 section 3.8: All identifiers containing a double underscore are reserved for // use by the underlying implementation). u is short for user-defined. @@ -969,6 +979,54 @@ // EXT_shader_framebuffer_fetch / EXT_shader_framebuffer_fetch_non_coherent const char kInputAttachmentName[] = "ANGLEInputAttachment"; } // namespace vk +const char *BlockLayoutTypeToString(BlockLayoutType type) +{ + switch (type) + { + case BlockLayoutType::BLOCKLAYOUT_STD140: + return "std140"; + case BlockLayoutType::BLOCKLAYOUT_STD430: + return "std430"; + case BlockLayoutType::BLOCKLAYOUT_PACKED: + return "packed"; + case BlockLayoutType::BLOCKLAYOUT_SHARED: + return "shared"; + default: + return "invalid"; + } +} + +const char *BlockTypeToString(BlockType type) +{ + switch (type) + { + case BlockType::BLOCK_BUFFER: + return "buffer"; + case BlockType::BLOCK_UNIFORM: + return "uniform"; + default: + return "invalid"; + } +} + +const char *InterpolationTypeToString(InterpolationType type) +{ + switch (type) + { + case InterpolationType::INTERPOLATION_SMOOTH: + return "smooth"; + case InterpolationType::INTERPOLATION_CENTROID: + return "centroid"; + case InterpolationType::INTERPOLATION_SAMPLE: + return "sample"; + case InterpolationType::INTERPOLATION_FLAT: + return "flat"; + case InterpolationType::INTERPOLATION_NOPERSPECTIVE: + return "noperspective"; + default: + return "invalid"; + } +} } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp b/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp @@ -560,33 +560,30 @@ case EOpIndexIndirect: { // We do not currently support indirect references to interface blocks ASSERT(binaryNode->getLeft()->getBasicType() != EbtInterfaceBlock); return writeEOpIndexDirectOrIndirectOutput(out, binaryNode, blockMemberInfo); - break; } case EOpIndexDirectStruct: { // We do not currently support direct references to interface blocks ASSERT(binaryNode->getLeft()->getBasicType() != EbtInterfaceBlock); TIntermTyped *left = traverseNode(out, binaryNode->getLeft(), blockMemberInfo); const TStructure *structure = binaryNode->getLeft()->getType().getStruct(); const TIntermConstantUnion *index = binaryNode->getRight()->getAsConstantUnion(); const TField *field = structure->fields()[index->getIConst(0)]; return Add(createFieldOffset(field, blockMemberInfo), left); - break; } case EOpIndexDirectInterfaceBlock: { ASSERT(IsInShaderStorageBlock(binaryNode->getLeft())); traverseNode(out, binaryNode->getLeft(), blockMemberInfo); const TInterfaceBlock *interfaceBlock = binaryNode->getLeft()->getType().getInterfaceBlock(); const TIntermConstantUnion *index = binaryNode->getRight()->getAsConstantUnion(); const TField *field = interfaceBlock->fields()[index->getIConst(0)]; return createFieldOffset(field, blockMemberInfo); - break; } default: return nullptr; } } diff --git a/gfx/angle/checkout/src/compiler/translator/ShaderVars.cpp b/gfx/angle/checkout/src/compiler/translator/ShaderVars.cpp --- a/gfx/angle/checkout/src/compiler/translator/ShaderVars.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ShaderVars.cpp @@ -162,16 +162,11 @@ } } unsigned int ShaderVariable::getInnerArraySizeProduct() const { - unsigned int arraySizeProduct = 1u; - for (size_t idx = 1; idx < arraySizes.size(); ++idx) - { - arraySizeProduct *= getNestedArraySize(static_cast(idx)); - } - return arraySizeProduct; + return gl::InnerArraySizeProduct(arraySizes); } unsigned int ShaderVariable::getArraySizeProduct() const { return gl::ArraySizeProduct(arraySizes); diff --git a/gfx/angle/checkout/src/compiler/translator/StaticType.h b/gfx/angle/checkout/src/compiler/translator/StaticType.h --- a/gfx/angle/checkout/src/compiler/translator/StaticType.h +++ b/gfx/angle/checkout/src/compiler/translator/StaticType.h @@ -192,23 +192,36 @@ // // Overloads // -template +template constexpr const TType *GetBasic() { - return Get(); + return Get(); } template +constexpr const TType *GetTemporary() +{ + return Get(); +} + +template const TType *GetQualified() { - return Get(); + return Get(); } // Dynamic lookup methods (convert runtime values to template args) namespace Helpers @@ -234,19 +247,17 @@ return Get(); case 4: return Get(); default: UNREACHABLE(); - return GetBasic(); + return GetBasic(); } } } // namespace Helpers -template +template constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1) { static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt || basicType == EbtBool, "unsupported basicType"); @@ -260,26 +271,26 @@ return Helpers::GetForVecMatHelper(primarySize); case 4: return Helpers::GetForVecMatHelper(primarySize); default: UNREACHABLE(); - return GetBasic(); + return GetBasic(); } } -template +template constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size) { switch (qualifier) { case EvqGlobal: return Helpers::GetForVecMatHelper(size); - case EvqOut: - return Helpers::GetForVecMatHelper(size); + case EvqParamOut: + return Helpers::GetForVecMatHelper(size); default: UNREACHABLE(); - return GetBasic(); + return GetBasic(); } } } // namespace StaticType diff --git a/gfx/angle/checkout/src/compiler/translator/Symbol.h b/gfx/angle/checkout/src/compiler/translator/Symbol.h --- a/gfx/angle/checkout/src/compiler/translator/Symbol.h +++ b/gfx/angle/checkout/src/compiler/translator/Symbol.h @@ -29,10 +29,16 @@ const ImmutableString &name, SymbolType symbolType, SymbolClass symbolClass, TExtension extension = TExtension::UNDEFINED); + TSymbol(TSymbolTable *symbolTable, + const ImmutableString &name, + SymbolType symbolType, + SymbolClass symbolClass, + const std::array &extensions); + // Note that we can't have a virtual destructor in order to support constexpr symbols. Data is // either statically allocated or pool allocated. ~TSymbol() = default; // Calling name() for empty symbols (symbolType == SymbolType::Empty) generates a similar name @@ -46,37 +52,61 @@ bool isStruct() const { return mSymbolClass == SymbolClass::Struct; } bool isInterfaceBlock() const { return mSymbolClass == SymbolClass::InterfaceBlock; } const TSymbolUniqueId &uniqueId() const { return mUniqueId; } SymbolType symbolType() const { return mSymbolType; } - TExtension extension() const { return mExtension; } + const std::array extensions() const { return mExtensions; } + + template + constexpr const std::array CreateExtensionList( + const std::array &extensions) + { + switch (extensions.size()) + { + case 1: + return std::array{ + {extensions[0], TExtension::UNDEFINED, TExtension::UNDEFINED}}; + case 2: + return std::array{ + {extensions[0], extensions[1], TExtension::UNDEFINED}}; + case 3: + return std::array{{extensions[0], extensions[1], extensions[2]}}; + default: + UNREACHABLE(); + return std::array{ + {TExtension::UNDEFINED, TExtension::UNDEFINED, TExtension::UNDEFINED}}; + } + } protected: + template constexpr TSymbol(const TSymbolUniqueId &id, const ImmutableString &name, SymbolType symbolType, - TExtension extension, + const std::array &extensions, SymbolClass symbolClass) : mName(name), mUniqueId(id), + mExtensions(CreateExtensionList(extensions)), mSymbolType(symbolType), - mExtension(extension), mSymbolClass(symbolClass) {} const ImmutableString mName; private: const TSymbolUniqueId mUniqueId; - const SymbolType mSymbolType; - const TExtension mExtension; + const std::array mExtensions; + const SymbolType mSymbolType : 4; // We use this instead of having virtual functions for querying the class in order to support // constexpr symbols. - const SymbolClass mSymbolClass; + const SymbolClass mSymbolClass : 4; }; +static_assert(sizeof(TSymbol) <= 24, "Size check failed"); + // Variable. // May store the value of a constant variable of any type (float, int, bool or struct). class TVariable : public TSymbol { public: @@ -84,10 +114,16 @@ const ImmutableString &name, const TType *type, SymbolType symbolType, TExtension ext = TExtension::UNDEFINED); + TVariable(TSymbolTable *symbolTable, + const ImmutableString &name, + const TType *type, + SymbolType symbolType, + const std::array &extensions); + const TType &getType() const { return *mType; } const TConstantUnion *getConstPointer() const { return unionArray; } void shareConstPointer(const TConstantUnion *constArray) { unionArray = constArray; } @@ -96,11 +132,26 @@ constexpr TVariable(const TSymbolUniqueId &id, const ImmutableString &name, SymbolType symbolType, TExtension extension, const TType *type) - : TSymbol(id, name, symbolType, extension, SymbolClass::Variable), + : TSymbol(id, + name, + symbolType, + std::array{{extension}}, + SymbolClass::Variable), + mType(type), + unionArray(nullptr) + {} + + template + constexpr TVariable(const TSymbolUniqueId &id, + const ImmutableString &name, + SymbolType symbolType, + const std::array &extensions, + const TType *type) + : TSymbol(id, name, symbolType, extensions, SymbolClass::Variable), mType(type), unionArray(nullptr) {} private: @@ -131,11 +182,27 @@ friend class TSymbolTable; // For creating built-in structs. TStructure(const TSymbolUniqueId &id, const ImmutableString &name, TExtension extension, - const TFieldList *fields); + const TFieldList *fields) + : TSymbol(id, + name, + SymbolType::BuiltIn, + std::array{{extension}}, + SymbolClass::Struct), + TFieldListCollection(fields) + {} + + template + TStructure(const TSymbolUniqueId &id, + const ImmutableString &name, + const std::array &extensions, + const TFieldList *fields) + : TSymbol(id, name, SymbolType::BuiltIn, extensions, SymbolClass::Struct), + TFieldListCollection(fields) + {} // TODO(zmo): Find a way to get rid of the const_cast in function // setName(). At the moment keep this function private so only // friend class RegenerateStructNames may call it. friend class RegenerateStructNamesTraverser; @@ -154,20 +221,47 @@ const TFieldList *fields, const TLayoutQualifier &layoutQualifier, SymbolType symbolType, TExtension extension = TExtension::UNDEFINED); + TInterfaceBlock(TSymbolTable *symbolTable, + const ImmutableString &name, + const TFieldList *fields, + const TLayoutQualifier &layoutQualifier, + SymbolType symbolType, + const std::array &extensions); + TLayoutBlockStorage blockStorage() const { return mBlockStorage; } int blockBinding() const { return mBinding; } private: friend class TSymbolTable; // For creating built-in interface blocks. TInterfaceBlock(const TSymbolUniqueId &id, const ImmutableString &name, TExtension extension, - const TFieldList *fields); + const TFieldList *fields) + : TSymbol(id, + name, + SymbolType::BuiltIn, + std::array{{extension}}, + SymbolClass::InterfaceBlock), + TFieldListCollection(fields), + mBlockStorage(EbsUnspecified), + mBinding(0) + {} + + template + TInterfaceBlock(const TSymbolUniqueId &id, + const ImmutableString &name, + const std::array &extensions, + const TFieldList *fields) + : TSymbol(id, name, SymbolType::BuiltIn, extensions, SymbolClass::InterfaceBlock), + TFieldListCollection(fields), + mBlockStorage(EbsUnspecified), + mBinding(0) + {} TLayoutBlockStorage mBlockStorage; int mBinding; // Note that we only record matrix packing on a per-field granularity. @@ -220,59 +314,89 @@ const TType &getReturnType() const { return *returnType; } TOperator getBuiltInOp() const { return mOp; } void setDefined() { defined = true; } - bool isDefined() { return defined; } + bool isDefined() const { return defined; } void setHasPrototypeDeclaration() { mHasPrototypeDeclaration = true; } bool hasPrototypeDeclaration() const { return mHasPrototypeDeclaration; } + void setHasVoidParameter() { mHasVoidParameter = true; } + bool hasVoidParameter() const { return mHasVoidParameter; } size_t getParamCount() const { return mParamCount; } const TVariable *getParam(size_t i) const { return mParameters[i]; } bool isKnownToNotHaveSideEffects() const { return mKnownToNotHaveSideEffects; } bool isMain() const; bool isImageFunction() const; bool isAtomicCounterFunction() const; - bool hasSamplerInStructOrArrayParams() const; - bool hasSamplerInStructOrArrayOfArrayParams() const; // Note: Only to be used for static built-in functions! constexpr TFunction(const TSymbolUniqueId &id, const ImmutableString &name, TExtension extension, const TVariable *const *parameters, size_t paramCount, const TType *retType, TOperator op, bool knownToNotHaveSideEffects) - : TSymbol(id, name, SymbolType::BuiltIn, extension, SymbolClass::Function), + : TSymbol(id, + name, + SymbolType::BuiltIn, + std::array{{extension}}, + SymbolClass::Function), mParametersVector(nullptr), mParameters(parameters), - mParamCount(paramCount), returnType(retType), mMangledName(nullptr), + mParamCount(paramCount), mOp(op), defined(false), mHasPrototypeDeclaration(false), - mKnownToNotHaveSideEffects(knownToNotHaveSideEffects) + mKnownToNotHaveSideEffects(knownToNotHaveSideEffects), + mHasVoidParameter(false) + {} + + template + constexpr TFunction(const TSymbolUniqueId &id, + const ImmutableString &name, + const std::array &extensions, + const TVariable *const *parameters, + size_t paramCount, + const TType *retType, + TOperator op, + bool knownToNotHaveSideEffects) + : TSymbol(id, name, SymbolType::BuiltIn, extensions, SymbolClass::Function), + mParametersVector(nullptr), + mParameters(parameters), + returnType(retType), + mMangledName(nullptr), + mParamCount(paramCount), + mOp(op), + defined(false), + mHasPrototypeDeclaration(false), + mKnownToNotHaveSideEffects(knownToNotHaveSideEffects), + mHasVoidParameter(false) {} private: ImmutableString buildMangledName() const; typedef TVector TParamVector; TParamVector *mParametersVector; const TVariable *const *mParameters; - size_t mParamCount; const TType *const returnType; mutable ImmutableString mMangledName; + size_t mParamCount : 32; const TOperator mOp; // Only set for built-ins - bool defined; - bool mHasPrototypeDeclaration; - bool mKnownToNotHaveSideEffects; + bool defined : 1; + bool mHasPrototypeDeclaration : 1; + bool mKnownToNotHaveSideEffects : 1; + // Whether the parameter list of the function starts with void. This is used to generate an + // error if any other parameter follows. + bool mHasVoidParameter : 1; }; } // namespace sh #endif // COMPILER_TRANSLATOR_SYMBOL_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/Symbol.cpp b/gfx/angle/checkout/src/compiler/translator/Symbol.cpp --- a/gfx/angle/checkout/src/compiler/translator/Symbol.cpp +++ b/gfx/angle/checkout/src/compiler/translator/Symbol.cpp @@ -37,15 +37,32 @@ SymbolType symbolType, SymbolClass symbolClass, TExtension extension) : mName(name), mUniqueId(symbolTable->nextUniqueId()), + mExtensions( + std::array{{extension, TExtension::UNDEFINED, TExtension::UNDEFINED}}), mSymbolType(symbolType), - mExtension(extension), mSymbolClass(symbolClass) { - ASSERT(mSymbolType == SymbolType::BuiltIn || mExtension == TExtension::UNDEFINED); + ASSERT(mSymbolType == SymbolType::BuiltIn || extension == TExtension::UNDEFINED); + ASSERT(mName != "" || mSymbolType == SymbolType::AngleInternal || + mSymbolType == SymbolType::Empty); +} + +TSymbol::TSymbol(TSymbolTable *symbolTable, + const ImmutableString &name, + SymbolType symbolType, + SymbolClass symbolClass, + const std::array &extensions) + : mName(name), + mUniqueId(symbolTable->nextUniqueId()), + mExtensions(extensions), + mSymbolType(symbolType), + mSymbolClass(symbolClass) +{ + ASSERT(mSymbolType == SymbolType::BuiltIn || extensions[0] == TExtension::UNDEFINED); ASSERT(mName != "" || mSymbolType == SymbolType::AngleInternal || mSymbolType == SymbolType::Empty); } ImmutableString TSymbol::name() const @@ -87,25 +104,30 @@ { ASSERT(mType); ASSERT(name.empty() || symbolType != SymbolType::Empty); } +TVariable::TVariable(TSymbolTable *symbolTable, + const ImmutableString &name, + const TType *type, + SymbolType symbolType, + const std::array &extensions) + : TSymbol(symbolTable, name, symbolType, SymbolClass::Variable, extensions), + mType(type), + unionArray(nullptr) +{ + ASSERT(mType); + ASSERT(name.empty() || symbolType != SymbolType::Empty); +} + TStructure::TStructure(TSymbolTable *symbolTable, const ImmutableString &name, const TFieldList *fields, SymbolType symbolType) : TSymbol(symbolTable, name, symbolType, SymbolClass::Struct), TFieldListCollection(fields) {} -TStructure::TStructure(const TSymbolUniqueId &id, - const ImmutableString &name, - TExtension extension, - const TFieldList *fields) - : TSymbol(id, name, SymbolType::BuiltIn, extension, SymbolClass::Struct), - TFieldListCollection(fields) -{} - void TStructure::createSamplerSymbols(const char *namePrefix, const TString &apiNamePrefix, TVector *outputSymbols, TMap *outputSymbolsToAPINames, TSymbolTable *symbolTable) const @@ -144,35 +166,40 @@ mBinding(layoutQualifier.binding) { ASSERT(name != nullptr); } -TInterfaceBlock::TInterfaceBlock(const TSymbolUniqueId &id, +TInterfaceBlock::TInterfaceBlock(TSymbolTable *symbolTable, const ImmutableString &name, - TExtension extension, - const TFieldList *fields) - : TSymbol(id, name, SymbolType::BuiltIn, extension, SymbolClass::InterfaceBlock), + const TFieldList *fields, + const TLayoutQualifier &layoutQualifier, + SymbolType symbolType, + const std::array &extensions) + : TSymbol(symbolTable, name, symbolType, SymbolClass::InterfaceBlock, extensions), TFieldListCollection(fields), - mBlockStorage(EbsUnspecified), - mBinding(0) -{} + mBlockStorage(layoutQualifier.blockStorage), + mBinding(layoutQualifier.binding) +{ + ASSERT(name != nullptr); +} TFunction::TFunction(TSymbolTable *symbolTable, const ImmutableString &name, SymbolType symbolType, const TType *retType, bool knownToNotHaveSideEffects) : TSymbol(symbolTable, name, symbolType, SymbolClass::Function, TExtension::UNDEFINED), mParametersVector(new TParamVector()), mParameters(nullptr), - mParamCount(0u), returnType(retType), mMangledName(""), + mParamCount(0u), mOp(EOpNull), defined(false), mHasPrototypeDeclaration(false), - mKnownToNotHaveSideEffects(knownToNotHaveSideEffects) + mKnownToNotHaveSideEffects(knownToNotHaveSideEffects), + mHasVoidParameter(false) { // Functions with an empty name are not allowed. ASSERT(symbolType != SymbolType::Empty); ASSERT(name != nullptr || symbolType == SymbolType::AngleInternal); } @@ -195,11 +222,12 @@ mMangledName = parametersSource.mMangledName; } ImmutableString TFunction::buildMangledName() const { - std::string newName(name().data(), name().length()); + ImmutableString name = this->name(); + std::string newName(name.data(), name.length()); newName += kFunctionMangledNameSeparator; for (size_t i = 0u; i < mParamCount; ++i) { newName += mParameters[i]->getType().getMangledName(); @@ -221,36 +249,6 @@ bool TFunction::isAtomicCounterFunction() const { return SymbolType() == SymbolType::BuiltIn && name().beginsWith(kAtomicCounterName); } - -bool TFunction::hasSamplerInStructOrArrayParams() const -{ - for (size_t paramIndex = 0; paramIndex < mParamCount; ++paramIndex) - { - const TVariable *param = getParam(paramIndex); - if (param->getType().isStructureContainingSamplers() || - (param->getType().isArray() && param->getType().isSampler())) - { - return true; - } - } - - return false; -} - -bool TFunction::hasSamplerInStructOrArrayOfArrayParams() const -{ - for (size_t paramIndex = 0; paramIndex < mParamCount; ++paramIndex) - { - const TVariable *param = getParam(paramIndex); - if (param->getType().isStructureContainingSamplers() || - (param->getType().isArrayOfArrays() && param->getType().isSampler())) - { - return true; - } - } - - return false; -} } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/SymbolTable.h b/gfx/angle/checkout/src/compiler/translator/SymbolTable.h --- a/gfx/angle/checkout/src/compiler/translator/SymbolTable.h +++ b/gfx/angle/checkout/src/compiler/translator/SymbolTable.h @@ -73,10 +73,17 @@ GLSL, ESSL }; constexpr uint16_t kESSL1Only = 100; +// Some built-ins from Vulkan GLSL are made available to ESSL for use in tree transformations. This +// (invalid) shader version is used to select those built-ins. This value needs to be larger than +// all other shader versions. +constexpr uint16_t kESSLVulkanOnly = 0x3FFF; + +// The version assigned to |kESSLVulkanOnly| should be good until OpenGL 20.0! +static_assert(kESSLVulkanOnly > 2000, "Accidentally exposing Vulkan built-ins in OpenGL"); static_assert(offsetof(ShBuiltInResources, OES_standard_derivatives) != 0, "Update SymbolTable extension logic"); #define EXT_INDEX(Ext) (offsetof(ShBuiltInResources, Ext) / sizeof(int)) @@ -169,12 +176,13 @@ uint16_t endIndex); class UnmangledEntry { public: + template constexpr UnmangledEntry(const char *name, - TExtension esslExtension, + const std::array &esslExtensions, TExtension glslExtension, int esslVersion, int glslVersion, Shader shaderType); @@ -184,26 +192,46 @@ sh::GLenum shaderType, const TExtensionBehavior &extensions) const; private: const char *mName; - uint8_t mESSLExtension; - uint8_t mGLSLExtension; + std::array mESSLExtensions; + TExtension mGLSLExtension; uint8_t mShaderType; uint16_t mESSLVersion; uint16_t mGLSLVersion; }; +template <> constexpr UnmangledEntry::UnmangledEntry(const char *name, - TExtension esslExtension, + const std::array &esslExtensions, TExtension glslExtension, int esslVersion, int glslVersion, Shader shaderType) : mName(name), - mESSLExtension(static_cast(esslExtension)), - mGLSLExtension(static_cast(glslExtension)), + mESSLExtensions{esslExtensions[0], TExtension::UNDEFINED}, + mGLSLExtension(glslExtension), + mShaderType(static_cast(shaderType)), + mESSLVersion(esslVersion < 0 ? std::numeric_limits::max() + : static_cast(esslVersion)), + mGLSLVersion(glslVersion < 0 ? std::numeric_limits::max() + : static_cast(glslVersion)) +{} + +// Note: Until C++17, std::array functions are not constexpr, so the constructor is necessarily +// duplicated. +template <> +constexpr UnmangledEntry::UnmangledEntry(const char *name, + const std::array &esslExtensions, + TExtension glslExtension, + int esslVersion, + int glslVersion, + Shader shaderType) + : mName(name), + mESSLExtensions{esslExtensions[0], esslExtensions[1]}, + mGLSLExtension(glslExtension), mShaderType(static_cast(shaderType)), mESSLVersion(esslVersion < 0 ? std::numeric_limits::max() : static_cast(esslVersion)), mGLSLVersion(glslVersion < 0 ? std::numeric_limits::max() : static_cast(glslVersion)) @@ -295,10 +323,17 @@ void initializeBuiltIns(sh::GLenum type, ShShaderSpec spec, const ShBuiltInResources &resources); void clearCompilationResults(); + int getDefaultUniformsBindingIndex() const { return mResources.DefaultUniformsBindingIndex; } + int getDriverUniformsBindingIndex() const { return mResources.DriverUniformsBindingIndex; } + int getUBOArgumentBufferBindingIndex() const + { + return mResources.UBOArgumentBufferBindingIndex; + } + private: friend class TSymbolUniqueId; struct VariableMetadata { diff --git a/gfx/angle/checkout/src/compiler/translator/SymbolTable.cpp b/gfx/angle/checkout/src/compiler/translator/SymbolTable.cpp --- a/gfx/angle/checkout/src/compiler/translator/SymbolTable.cpp +++ b/gfx/angle/checkout/src/compiler/translator/SymbolTable.cpp @@ -314,11 +314,14 @@ } bool TSymbolTable::declare(TSymbol *symbol) { ASSERT(!mTable.empty()); - ASSERT(symbol->symbolType() == SymbolType::UserDefined); + // The following built-ins may be redeclared by the shader: gl_ClipDistance, gl_CullDistance and + // gl_LastFragData. + ASSERT(symbol->symbolType() == SymbolType::UserDefined || + (symbol->symbolType() == SymbolType::BuiltIn && IsRedeclarableBuiltIn(symbol->name()))); ASSERT(!symbol->isFunction()); return mTable.back()->insert(symbol); } bool TSymbolTable::declareInternal(TSymbol *symbol) @@ -521,25 +524,36 @@ if (IsDesktopGLSpec(shaderSpec)) { if (mGLSLVersion > shaderVersion) return false; - if (static_cast(mGLSLExtension) == TExtension::UNDEFINED) + if (mGLSLExtension == TExtension::UNDEFINED) return true; - return IsExtensionEnabled(extensions, static_cast(mGLSLExtension)); + return IsExtensionEnabled(extensions, mGLSLExtension); } else { if (mESSLVersion == kESSL1Only && shaderVersion != static_cast(kESSL1Only)) return false; if (mESSLVersion > shaderVersion) return false; - if (static_cast(mESSLExtension) == TExtension::UNDEFINED) + bool anyExtension = false; + bool anyExtensionEnabled = false; + for (TExtension ext : mESSLExtensions) + { + if (ext != TExtension::UNDEFINED) + { + anyExtension = true; + anyExtensionEnabled = anyExtensionEnabled || IsExtensionEnabled(extensions, ext); + } + } + + if (!anyExtension) return true; - return IsExtensionEnabled(extensions, static_cast(mESSLExtension)); + return anyExtensionEnabled; } } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp b/gfx/angle/checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp --- a/gfx/angle/checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp +++ b/gfx/angle/checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp @@ -7,20 +7,18 @@ // found in the LICENSE file. // // SymbolTable_ESSL_autogen.cpp: // Compile-time initialized built-ins. -#ifdef ANGLE_TRANSLATOR_ESSL_ONLY - -# include "compiler/translator/SymbolTable.h" - -# include "angle_gl.h" -# include "compiler/translator/ImmutableString.h" -# include "compiler/translator/StaticType.h" -# include "compiler/translator/Symbol.h" -# include "compiler/translator/SymbolTable.h" -# include "compiler/translator/tree_util/BuiltIn.h" +#include "compiler/translator/SymbolTable.h" + +#include "angle_gl.h" +#include "compiler/translator/ImmutableString.h" +#include "compiler/translator/StaticType.h" +#include "compiler/translator/Symbol.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/BuiltIn.h" namespace sh { using Resources = ShBuiltInResources; using TableBase = TSymbolTableBase; @@ -513,55 +511,41 @@ constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int4_Int4_Int4_Int4; constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3; +constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3; +constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4; +constexpr const TSymbolUniqueId BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3; +constexpr const TSymbolUniqueId BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4; constexpr const TSymbolUniqueId BuiltInId::texture2D_SamplerExternalOES1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float4; constexpr const TSymbolUniqueId BuiltInId::texture2DRect_Sampler2DRect1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4; constexpr const TSymbolUniqueId BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4; constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::texture3DLod_Sampler3D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::texture2DLod_Sampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3; @@ -573,20 +557,38 @@ constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3; constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureExt_SamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureExt_ISamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureExt_USamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureExt_SamplerCubeArrayShadow1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2; +constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerVideoWEBGL1_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4; constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler3D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler3D1_Float3_Float1; @@ -596,10 +598,16 @@ constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCube1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DArray1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2DArray1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2DArray1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLodExt_SamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLodExt_ISamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureLodExt_USamplerCubeArray1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2D1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2D1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2D1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler3D1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler3D1_Int1; @@ -611,10 +619,35 @@ constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DArray1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DArray1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DShadow1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeShadow1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArrayShadow1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_SamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USamplerCubeArray1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_SamplerCubeArrayShadow1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_SamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USamplerBuffer1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1; +constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1; constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float4_Float1; @@ -630,10 +663,27 @@ constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler3D1_Int3_Int1; constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler3D1_Int3_Int1; constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1; constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1; constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DArray1_Int3_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_USamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_SamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USamplerBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1; +constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3; @@ -645,68 +695,26 @@ constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2; +constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureGradExt_SamplerCubeArray1_Float4_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3; +constexpr const TSymbolUniqueId BuiltInId::textureGradExt_USamplerCubeArray1_Float4_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3; constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3_Float1; @@ -727,10 +735,16 @@ constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureExt_SamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureExt_ISamplerCubeArray1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureExt_USamplerCubeArray1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1; @@ -838,22 +852,10 @@ constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4; -constexpr const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1; -constexpr const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2_Int1; @@ -868,10 +870,24 @@ constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_SamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_USamplerCubeArray1_Float4; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_SamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_USamplerCubeArray1_Float4_Int1; +constexpr const TSymbolUniqueId BuiltInId::textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3; constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1; constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3; @@ -924,10 +940,24 @@ BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1; constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1; +constexpr const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1; +constexpr const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1; +constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float1; +constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float2; +constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float3; +constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float4; +constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float1; +constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float2; +constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float3; +constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float4; +constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float1; +constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float2; +constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float3; +constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float4; constexpr const TSymbolUniqueId BuiltInId::dFdx_Float1; constexpr const TSymbolUniqueId BuiltInId::dFdx_Float2; constexpr const TSymbolUniqueId BuiltInId::dFdx_Float3; constexpr const TSymbolUniqueId BuiltInId::dFdx_Float4; constexpr const TSymbolUniqueId BuiltInId::dFdy_Float1; @@ -994,13 +1024,19 @@ constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCube1; constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCube1; constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageCubeArray1; constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCubeArray1; constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCubeArray1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_ImageCubeArray1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_IImageCubeArray1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_UImageCubeArray1; constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageBuffer1; constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageBuffer1; constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageBuffer1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_ImageBuffer1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_IImageBuffer1; +constexpr const TSymbolUniqueId BuiltInId::imageSizeExt_UImageBuffer1; constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2D1_Int2_Float4; constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2D1_Int2_Int4; constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2D1_Int2_UInt4; constexpr const TSymbolUniqueId BuiltInId::imageStore_Image3D1_Int3_Float4; constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage3D1_Int3_Int4; @@ -1012,13 +1048,19 @@ constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCube1_Int3_Int4; constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCube1_Int3_UInt4; constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageCubeArray1_Int3_Float4; constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCubeArray1_Int3_Int4; constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_ImageCubeArray1_Int3_Float4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_IImageCubeArray1_Int3_Int4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_UImageCubeArray1_Int3_UInt4; constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageBuffer1_Int1_Float4; constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageBuffer1_Int1_Int4; constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageBuffer1_Int1_UInt4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_ImageBuffer1_Int1_Float4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_IImageBuffer1_Int1_Int4; +constexpr const TSymbolUniqueId BuiltInId::imageStoreExt_UImageBuffer1_Int1_UInt4; constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2D1_Int2; constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2D1_Int2; constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2D1_Int2; constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image3D1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage3D1_Int3; @@ -1030,13 +1072,19 @@ constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCube1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCube1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageCubeArray1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCubeArray1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCubeArray1_Int3; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_ImageCubeArray1_Int3; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_IImageCubeArray1_Int3; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_UImageCubeArray1_Int3; constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageBuffer1_Int1; constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageBuffer1_Int1; constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_ImageBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_IImageBuffer1_Int1; +constexpr const TSymbolUniqueId BuiltInId::imageLoadExt_UImageBuffer1_Int1; constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2D1_Int2_UInt1; constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2D1_Int2_UInt1; constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2D1_Int2_UInt1; constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1; constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1; @@ -1607,17 +1655,22 @@ constexpr const TSymbolUniqueId BuiltInId::memoryBarrierBuffer; constexpr const TSymbolUniqueId BuiltInId::memoryBarrierImage; constexpr const TSymbolUniqueId BuiltInId::barrier; constexpr const TSymbolUniqueId BuiltInId::memoryBarrierShared; constexpr const TSymbolUniqueId BuiltInId::groupMemoryBarrier; -constexpr const TSymbolUniqueId BuiltInId::barrierES3_2; +constexpr const TSymbolUniqueId BuiltInId::barrierTCS; +constexpr const TSymbolUniqueId BuiltInId::barrierTCSES3_2; constexpr const TSymbolUniqueId BuiltInId::EmitVertex; constexpr const TSymbolUniqueId BuiltInId::EmitVertexES3_2; constexpr const TSymbolUniqueId BuiltInId::EndPrimitive; constexpr const TSymbolUniqueId BuiltInId::EndPrimitiveES3_2; -constexpr const TSymbolUniqueId BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerVideoWEBGL1_Float2; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_SubpassInput1; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_ISubpassInput1; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_USubpassInput1; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_SubpassInputMS1_Int1; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_ISubpassInputMS1_Int1; +constexpr const TSymbolUniqueId BuiltInId::subpassLoad_USubpassInputMS1_Int1; constexpr const TSymbolUniqueId BuiltInId::gl_DepthRangeParameters; constexpr const TSymbolUniqueId BuiltInId::gl_DepthRange; constexpr const TSymbolUniqueId BuiltInId::gl_NumSamples; constexpr const TSymbolUniqueId BuiltInId::gl_NumSamplesES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAttribs; @@ -1717,10 +1770,11 @@ constexpr const TSymbolUniqueId BuiltInId::gl_PointCoord; constexpr const TSymbolUniqueId BuiltInId::gl_FragColor; constexpr const TSymbolUniqueId BuiltInId::gl_FragData; constexpr const TSymbolUniqueId BuiltInId::gl_FragDepth; constexpr const TSymbolUniqueId BuiltInId::gl_HelperInvocation; +constexpr const TSymbolUniqueId BuiltInId::gl_FragCoord300; constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragColorEXT; constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragDataEXT; constexpr const TSymbolUniqueId BuiltInId::gl_FragDepthEXT; constexpr const TSymbolUniqueId BuiltInId::gl_LastFragData; constexpr const TSymbolUniqueId BuiltInId::gl_LastFragDataNonCoherent; @@ -1747,10 +1801,11 @@ constexpr const TSymbolUniqueId BuiltInId::gl_InstanceIndex; constexpr const TSymbolUniqueId BuiltInId::gl_VertexID; constexpr const TSymbolUniqueId BuiltInId::gl_VertexIndex; constexpr const TSymbolUniqueId BuiltInId::gl_ViewportIndex; constexpr const TSymbolUniqueId BuiltInId::gl_LayerVS; +constexpr const TSymbolUniqueId BuiltInId::gl_PointSize300; constexpr const TSymbolUniqueId BuiltInId::gl_DrawID; constexpr const TSymbolUniqueId BuiltInId::gl_BaseVertex; constexpr const TSymbolUniqueId BuiltInId::gl_BaseInstance; constexpr const TSymbolUniqueId BuiltInId::angle_BaseVertex; constexpr const TSymbolUniqueId BuiltInId::angle_BaseInstance; @@ -1796,10 +1851,12 @@ constexpr const TSymbolUniqueId BuiltInId::gl_outTCSES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTcsBlock; constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTcsBlockES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_PositionTCS; constexpr const TSymbolUniqueId BuiltInId::gl_PositionTCSES3_2; +constexpr const TSymbolUniqueId BuiltInId::gl_BoundingBoxEXTTCS; +constexpr const TSymbolUniqueId BuiltInId::gl_BoundingBoxEXTTCSES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTES; constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTESES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTES; constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTESES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_TessCoord; @@ -1817,11 +1874,11 @@ constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTesBlockES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_PositionTES; constexpr const TSymbolUniqueId BuiltInId::gl_PositionTESES3_2; constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVR; -const int TSymbolTable::kLastBuiltInId = 4884; +const int TSymbolTable::kLastBuiltInId = 5002; namespace BuiltInName { constexpr const ImmutableString _empty(""); @@ -1850,11 +1907,12 @@ constexpr const ImmutableString atomicMax("atomicMax"); constexpr const ImmutableString atomicMin("atomicMin"); constexpr const ImmutableString atomicOr("atomicOr"); constexpr const ImmutableString atomicXor("atomicXor"); constexpr const ImmutableString barrier("barrier"); -constexpr const ImmutableString barrierES3_2("barrier"); +constexpr const ImmutableString barrierTCS("barrier"); +constexpr const ImmutableString barrierTCSES3_2("barrier"); constexpr const ImmutableString bitCount("bitCount"); constexpr const ImmutableString bitfieldExtract("bitfieldExtract"); constexpr const ImmutableString bitfieldInsert("bitfieldInsert"); constexpr const ImmutableString bitfieldReverse("bitfieldReverse"); constexpr const ImmutableString ceil("ceil"); @@ -1887,10 +1945,11 @@ constexpr const ImmutableString frexp("frexp"); constexpr const ImmutableString fwidth("fwidth"); constexpr const ImmutableString fwidthExt("fwidth"); constexpr const ImmutableString gl_BaseInstance("gl_BaseInstance"); constexpr const ImmutableString gl_BaseVertex("gl_BaseVertex"); +constexpr const ImmutableString gl_BoundingBoxEXT("gl_BoundingBoxEXT"); constexpr const ImmutableString gl_ClipDistance("gl_ClipDistance"); constexpr const ImmutableString gl_CullDistance("gl_CullDistance"); constexpr const ImmutableString gl_DepthRange("gl_DepthRange"); constexpr const ImmutableString gl_DepthRangeParameters("gl_DepthRangeParameters"); constexpr const ImmutableString gl_DrawID("gl_DrawID"); @@ -2032,12 +2091,15 @@ constexpr const ImmutableString imageAtomicMaxExt("imageAtomicMax"); constexpr const ImmutableString imageAtomicMinExt("imageAtomicMin"); constexpr const ImmutableString imageAtomicOrExt("imageAtomicOr"); constexpr const ImmutableString imageAtomicXorExt("imageAtomicXor"); constexpr const ImmutableString imageLoad("imageLoad"); +constexpr const ImmutableString imageLoadExt("imageLoad"); constexpr const ImmutableString imageSize("imageSize"); +constexpr const ImmutableString imageSizeExt("imageSize"); constexpr const ImmutableString imageStore("imageStore"); +constexpr const ImmutableString imageStoreExt("imageStore"); constexpr const ImmutableString imulExtended("imulExtended"); constexpr const ImmutableString intBitsToFloat("intBitsToFloat"); constexpr const ImmutableString interpolateAtCentroid("interpolateAtCentroid"); constexpr const ImmutableString interpolateAtCentroidExt("interpolateAtCentroid"); constexpr const ImmutableString interpolateAtOffset("interpolateAtOffset"); @@ -2088,10 +2150,11 @@ constexpr const ImmutableString sin("sin"); constexpr const ImmutableString sinh("sinh"); constexpr const ImmutableString smoothstep("smoothstep"); constexpr const ImmutableString sqrt("sqrt"); constexpr const ImmutableString step("step"); +constexpr const ImmutableString subpassLoad("subpassLoad"); constexpr const ImmutableString tan("tan"); constexpr const ImmutableString tanh("tanh"); constexpr const ImmutableString texelFetch("texelFetch"); constexpr const ImmutableString texelFetchExt("texelFetch"); constexpr const ImmutableString texelFetchOffset("texelFetchOffset"); @@ -2112,17 +2175,21 @@ constexpr const ImmutableString texture3DProjLod("texture3DProjLod"); constexpr const ImmutableString textureCube("textureCube"); constexpr const ImmutableString textureCubeGradEXT("textureCubeGradEXT"); constexpr const ImmutableString textureCubeLod("textureCubeLod"); constexpr const ImmutableString textureCubeLodEXT("textureCubeLodEXT"); +constexpr const ImmutableString textureExt("texture"); constexpr const ImmutableString textureGather("textureGather"); +constexpr const ImmutableString textureGatherExt("textureGather"); constexpr const ImmutableString textureGatherOffset("textureGatherOffset"); constexpr const ImmutableString textureGatherOffsets("textureGatherOffsets"); constexpr const ImmutableString textureGatherOffsetsExt("textureGatherOffsets"); constexpr const ImmutableString textureGrad("textureGrad"); +constexpr const ImmutableString textureGradExt("textureGrad"); constexpr const ImmutableString textureGradOffset("textureGradOffset"); constexpr const ImmutableString textureLod("textureLod"); +constexpr const ImmutableString textureLodExt("textureLod"); constexpr const ImmutableString textureLodOffset("textureLodOffset"); constexpr const ImmutableString textureOffset("textureOffset"); constexpr const ImmutableString textureProj("textureProj"); constexpr const ImmutableString textureProjGrad("textureProjGrad"); constexpr const ImmutableString textureProjGradOffset("textureProjGradOffset"); @@ -2156,898 +2223,954 @@ constexpr const unsigned int kArraySize4[1] = {4}; constexpr const TVariable kangle_BaseInstance(BuiltInId::angle_BaseInstance, BuiltInName::angle_BaseInstance, SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, + std::array{ + {TExtension::ANGLE_base_vertex_base_instance}}, StaticType::Get()); constexpr const TVariable kangle_BaseVertex(BuiltInId::angle_BaseVertex, BuiltInName::angle_BaseVertex, SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, + std::array{ + {TExtension::ANGLE_base_vertex_base_instance}}, StaticType::Get()); constexpr const TVariable kgl_BaseInstance(BuiltInId::gl_BaseInstance, BuiltInName::gl_BaseInstance, SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, + std::array{ + {TExtension::ANGLE_base_vertex_base_instance}}, StaticType::Get()); constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex, BuiltInName::gl_BaseVertex, SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, + std::array{ + {TExtension::ANGLE_base_vertex_base_instance}}, StaticType::Get()); constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID, BuiltInName::gl_DrawID, SymbolType::BuiltIn, - TExtension::ANGLE_multi_draw, + std::array{{TExtension::ANGLE_multi_draw}}, StaticType::Get()); constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor, BuiltInName::gl_FragColor, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord, BuiltInName::gl_FragCoord, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); +constexpr const TVariable kgl_FragCoord300( + BuiltInId::gl_FragCoord300, + BuiltInName::gl_FragCoord, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth, BuiltInName::gl_FragDepth, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_FrontFacing( BuiltInId::gl_FrontFacing, BuiltInName::gl_FrontFacing, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_GlobalInvocationID( BuiltInId::gl_GlobalInvocationID, BuiltInName::gl_GlobalInvocationID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_HelperInvocation( BuiltInId::gl_HelperInvocation, BuiltInName::gl_HelperInvocation, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID, BuiltInName::gl_InstanceID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_InstanceIndex( BuiltInId::gl_InstanceIndex, BuiltInName::gl_InstanceIndex, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_InvocationID( BuiltInId::gl_InvocationID, BuiltInName::gl_InvocationID, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, StaticType::Get()); constexpr const TVariable kgl_InvocationIDES3_2( BuiltInId::gl_InvocationIDES3_2, BuiltInName::gl_InvocationID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_InvocationIDTCS( BuiltInId::gl_InvocationIDTCS, BuiltInName::gl_InvocationID, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, + std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); constexpr const TVariable kgl_InvocationIDTCSES3_2( BuiltInId::gl_InvocationIDTCSES3_2, BuiltInName::gl_InvocationID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_LastFragColor( BuiltInId::gl_LastFragColor, BuiltInName::gl_LastFragColor, SymbolType::BuiltIn, - TExtension::NV_shader_framebuffer_fetch, + std::array{{TExtension::NV_shader_framebuffer_fetch}}, StaticType::Get()); constexpr const TVariable kgl_LastFragColorARM( BuiltInId::gl_LastFragColorARM, BuiltInName::gl_LastFragColorARM, SymbolType::BuiltIn, - TExtension::ARM_shader_framebuffer_fetch, + std::array{{TExtension::ARM_shader_framebuffer_fetch}}, StaticType::Get()); constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer, BuiltInName::gl_Layer, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, + TExtension::OES_geometry_shader}}, StaticType::Get()); constexpr const TVariable kgl_LayerES3_2(BuiltInId::gl_LayerES3_2, BuiltInName::gl_Layer, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS, BuiltInName::gl_Layer, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, + TExtension::OES_geometry_shader}}, StaticType::Get()); constexpr const TVariable kgl_LayerGSES3_2(BuiltInId::gl_LayerGSES3_2, BuiltInName::gl_Layer, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS, BuiltInName::gl_Layer, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_LocalInvocationID( BuiltInId::gl_LocalInvocationID, BuiltInName::gl_LocalInvocationID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_LocalInvocationIndex( BuiltInId::gl_LocalInvocationIndex, BuiltInName::gl_LocalInvocationIndex, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_NumSamples(BuiltInId::gl_NumSamples, BuiltInName::gl_NumSamples, SymbolType::BuiltIn, - TExtension::OES_sample_variables, + std::array{ + {TExtension::OES_sample_variables}}, StaticType::Get()); constexpr const TVariable kgl_NumSamplesES3_2(BuiltInId::gl_NumSamplesES3_2, BuiltInName::gl_NumSamples, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_NumWorkGroups( BuiltInId::gl_NumWorkGroups, BuiltInName::gl_NumWorkGroups, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PatchVerticesInTCS( BuiltInId::gl_PatchVerticesInTCS, BuiltInName::gl_PatchVerticesIn, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, + std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); constexpr const TVariable kgl_PatchVerticesInTCSES3_2( BuiltInId::gl_PatchVerticesInTCSES3_2, BuiltInName::gl_PatchVerticesIn, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PatchVerticesInTES( BuiltInId::gl_PatchVerticesInTES, BuiltInName::gl_PatchVerticesIn, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, + std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); constexpr const TVariable kgl_PatchVerticesInTESES3_2( BuiltInId::gl_PatchVerticesInTESES3_2, BuiltInName::gl_PatchVerticesIn, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PointCoord( BuiltInId::gl_PointCoord, BuiltInName::gl_PointCoord, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize, BuiltInName::gl_PointSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); +constexpr const TVariable kgl_PointSize300( + BuiltInId::gl_PointSize300, + BuiltInName::gl_PointSize, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kgl_Position(BuiltInId::gl_Position, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); -constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); +constexpr const TVariable kgl_PrimitiveID( + BuiltInId::gl_PrimitiveID, + BuiltInName::gl_PrimitiveID, + SymbolType::BuiltIn, + std::array{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDES3_2( BuiltInId::gl_PrimitiveIDES3_2, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDGS( BuiltInId::gl_PrimitiveIDGS, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDGSES3_2( BuiltInId::gl_PrimitiveIDGSES3_2, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDIn( BuiltInId::gl_PrimitiveIDIn, BuiltInName::gl_PrimitiveIDIn, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDInES3_2( BuiltInId::gl_PrimitiveIDInES3_2, BuiltInName::gl_PrimitiveIDIn, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDTCS( BuiltInId::gl_PrimitiveIDTCS, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, + std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDTCSES3_2( BuiltInId::gl_PrimitiveIDTCSES3_2, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDTES( BuiltInId::gl_PrimitiveIDTES, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, + std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); constexpr const TVariable kgl_PrimitiveIDTESES3_2( BuiltInId::gl_PrimitiveIDTESES3_2, BuiltInName::gl_PrimitiveID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_SampleID(BuiltInId::gl_SampleID, BuiltInName::gl_SampleID, SymbolType::BuiltIn, - TExtension::OES_sample_variables, + std::array{ + {TExtension::OES_sample_variables}}, StaticType::Get()); constexpr const TVariable kgl_SampleIDES3_2(BuiltInId::gl_SampleIDES3_2, BuiltInName::gl_SampleID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_SamplePosition( BuiltInId::gl_SamplePosition, BuiltInName::gl_SamplePosition, SymbolType::BuiltIn, - TExtension::OES_sample_variables, + std::array{{TExtension::OES_sample_variables}}, StaticType::Get()); constexpr const TVariable kgl_SamplePositionES3_2( BuiltInId::gl_SamplePositionES3_2, BuiltInName::gl_SamplePosition, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_SecondaryFragColorEXT( BuiltInId::gl_SecondaryFragColorEXT, BuiltInName::gl_SecondaryFragColorEXT, SymbolType::BuiltIn, - TExtension::EXT_blend_func_extended, + std::array{{TExtension::EXT_blend_func_extended}}, StaticType::Get()); constexpr const TVariable kgl_TessCoord(BuiltInId::gl_TessCoord, BuiltInName::gl_TessCoord, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID, BuiltInName::gl_VertexID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex, BuiltInName::gl_VertexIndex, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR, BuiltInName::gl_ViewID_OVR, SymbolType::BuiltIn, - TExtension::OVR_multiview, + std::array{{TExtension::OVR_multiview}}, StaticType::Get()); constexpr const TVariable kgl_ViewportIndex( BuiltInId::gl_ViewportIndex, BuiltInName::gl_ViewportIndex, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_WorkGroupID( BuiltInId::gl_WorkGroupID, BuiltInName::gl_WorkGroupID, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kgl_WorkGroupSize( BuiltInId::gl_WorkGroupSize, BuiltInName::gl_WorkGroupSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00B(BuiltInId::pt00B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00D(BuiltInId::pt00D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00E(BuiltInId::pt00E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00F(BuiltInId::pt00F, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00G( BuiltInId::pt00G, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00H( BuiltInId::pt00H, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00I(BuiltInId::pt00I, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00J(BuiltInId::pt00J, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00K(BuiltInId::pt00K, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00L( BuiltInId::pt00L, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00M( BuiltInId::pt00M, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00N( BuiltInId::pt00N, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00O( BuiltInId::pt00O, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00P(BuiltInId::pt00P, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00Q( BuiltInId::pt00Q, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00R(BuiltInId::pt00R, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00S(BuiltInId::pt00S, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00T(BuiltInId::pt00T, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00U( BuiltInId::pt00U, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00V(BuiltInId::pt00V, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00W( BuiltInId::pt00W, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00X(BuiltInId::pt00X, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00Y(BuiltInId::pt00Y, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00Z(BuiltInId::pt00Z, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00a( BuiltInId::pt00a, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00b(BuiltInId::pt00b, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00c( BuiltInId::pt00c, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00d( BuiltInId::pt00d, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00e( BuiltInId::pt00e, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00f( BuiltInId::pt00f, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00j( BuiltInId::pt00j, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00k( BuiltInId::pt00k, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00l( BuiltInId::pt00l, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00r( BuiltInId::pt00r, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00s( BuiltInId::pt00s, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00w( BuiltInId::pt00w, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00x( BuiltInId::pt00x, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00y( BuiltInId::pt00y, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt00z(BuiltInId::pt00z, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt01A(BuiltInId::pt01A, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01B(BuiltInId::pt01B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01C(BuiltInId::pt01C, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01D(BuiltInId::pt01D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01E(BuiltInId::pt01E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01F(BuiltInId::pt01F, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01G( BuiltInId::pt01G, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01H( BuiltInId::pt01H, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01I(BuiltInId::pt01I, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01J(BuiltInId::pt01J, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01K(BuiltInId::pt01K, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01L(BuiltInId::pt01L, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01M(BuiltInId::pt01M, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01M( + BuiltInId::pt01M, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01N(BuiltInId::pt01N, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01O(BuiltInId::pt01O, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01P( BuiltInId::pt01P, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); -constexpr const TVariable kpt01Q( - BuiltInId::pt01Q, +constexpr const TVariable kpt01Q(BuiltInId::pt01Q, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01R( + BuiltInId::pt01R, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01R(BuiltInId::pt01R, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01S(BuiltInId::pt01S, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01S( + BuiltInId::pt01S, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01T(BuiltInId::pt01T, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01U( - BuiltInId::pt01U, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01V( - BuiltInId::pt01V, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01W( - BuiltInId::pt01W, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01U(BuiltInId::pt01U, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01V(BuiltInId::pt01V, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01W(BuiltInId::pt01W, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01X( BuiltInId::pt01X, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01Y( - BuiltInId::pt01Y, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01Y(BuiltInId::pt01Y, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01Z(BuiltInId::pt01Z, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01a( + BuiltInId::pt01a, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01Z( - BuiltInId::pt01Z, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01a(BuiltInId::pt01a, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01b(BuiltInId::pt01b, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01c(BuiltInId::pt01c, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01d(BuiltInId::pt01d, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01c( + BuiltInId::pt01c, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01d( + BuiltInId::pt01d, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01e(BuiltInId::pt01e, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt01f(BuiltInId::pt01f, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); +constexpr const TVariable kpt01g(BuiltInId::pt01g, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01h( + BuiltInId::pt01h, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01i( + BuiltInId::pt01i, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01j( + BuiltInId::pt01j, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01k( + BuiltInId::pt01k, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); +constexpr const TVariable kpt01l( + BuiltInId::pt01l, + BuiltInName::_empty, + SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt10B(BuiltInId::pt10B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt10D(BuiltInId::pt10D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt10Dx4( BuiltInId::pt10Dx4, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::GetArray()); constexpr const TVariable kpt10E(BuiltInId::pt10E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt10F(BuiltInId::pt10F, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt20B(BuiltInId::pt20B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt20D(BuiltInId::pt20D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt20E(BuiltInId::pt20E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt20F(BuiltInId::pt20F, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt30B(BuiltInId::pt30B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt30D(BuiltInId::pt30D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt30E(BuiltInId::pt30E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt30F(BuiltInId::pt30F, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt50B(BuiltInId::pt50B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt60B(BuiltInId::pt60B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt70B(BuiltInId::pt70B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt90B(BuiltInId::pt90B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kptA0B(BuiltInId::ptA0B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kptB0B(BuiltInId::ptB0B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kptD0B(BuiltInId::ptD0B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kptE0B(BuiltInId::ptE0B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kptF0B(BuiltInId::ptF0B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, StaticType::Get()); constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_io_00E(BuiltInId::pt_io_00E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_00E(BuiltInId::pt_o_00E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_10E(BuiltInId::pt_o_10E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_20E(BuiltInId::pt_o_20E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); constexpr const TVariable kpt_o_30E(BuiltInId::pt_o_30E, BuiltInName::_empty, SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); const TVariable *angle_BaseInstance() { return &kangle_BaseInstance; } @@ -3080,10 +3203,15 @@ const TVariable *gl_FragCoord() { return &kgl_FragCoord; } +const TVariable *gl_FragCoord300() +{ + return &kgl_FragCoord300; +} + const TVariable *gl_FragDepth() { return &kgl_FragDepth; } @@ -3220,10 +3348,15 @@ const TVariable *gl_PointSize() { return &kgl_PointSize; } +const TVariable *gl_PointSize300() +{ + return &kgl_PointSize300; +} + const TVariable *gl_Position() { return &kgl_Position; } @@ -3695,248 +3828,254 @@ &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p00z10D00E00E[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; constexpr const TVariable *p00z10D30B[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01A10D00B[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01A10D00D00D[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01A20D00B[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01A20D00D00D[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01A10D00E00E[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01A20D00E00E[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01A10D30D[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01B10D00B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01B10D00D00D[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01A20D30B[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30B}; +constexpr const TVariable *p01B20D00B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01B20D00D00D[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01B10D00E00E[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01B20D00E00E[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01B10D30E[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30E}; +constexpr const TVariable *p01B20D30B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30B}; constexpr const TVariable *p01C20D00B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01C20D00D00D[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01C20D00E00E[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; constexpr const TVariable *p01C20D30B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01D20D00B[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01D20D00D00D[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01D00D00B[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01D00D00D00D[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01D20D00E00E[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01D00D00E00E[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01D20D30D[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01E20D00B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01E20D00D00D[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01E10D00B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01E10D00D00D[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01E20D00E00E[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01E10D00E00E[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01E20D30E[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01F20D00B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01F20D00D00D[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01F20D00E00E[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01F20D30B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01G20D00B[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01G20D00D00D[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01G20D00E00E[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01G20D30D[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01F10D00D00B[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01F10D00D00D00D[5] = { + &BuiltInVariable::kpt01F, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01F10D00D00E00E[5] = { + &BuiltInVariable::kpt01F, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01G20D00D00B[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01G20D00D00D00D[5] = { + &BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01G20D00D00E00E[5] = { + &BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; constexpr const TVariable *p01H20D00B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01H20D00D00D[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01H20D00E00E[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01H20D30E[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01I20D00B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01I20D00D00D[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01I20D00E00E[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01I20D30B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01H20D30B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01J20D00B[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01J20D00D00D[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01I10D00B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01I10D00D00D[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01J20D00E00E[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01I10D00E00E[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01J20D30D[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01K20D00B[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01K20D00D00D[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01J00D00B[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01J00D00D00D[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01K20D00E00E[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01J00D00E00E[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01J00D30B[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt30B}; +constexpr const TVariable *p01K10D00B[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01K10D00D00D[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01K10D00E00E[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01K20D30E[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01L00D00B[3] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01L00D00D00D[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01K10D30D[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01L20D00B[3] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01L20D00D00D[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01L00D00E00E[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01L20D00E00E[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01M00D00B[3] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01M00D00D00D[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01L20D30D[3] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01M20D00B[3] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01M20D00D00D[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01M00D00E00E[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01M20D00E00E[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01N00D00B[3] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01N00D00D00D[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01M20D30D[3] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01N20D00B[3] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01N20D00D00D[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01N00D00E00E[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01N20D00E00E[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01O10D00B[3] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01O10D00D00D[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01N20D30D[3] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01O00D00B[3] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01O00D00D00D[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01O10D00E00E[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01O00D00E00E[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; constexpr const TVariable *p01P10D00B[3] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01P10D00D00D[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01P10D00E00E[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Q10D00B[3] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01Q10D00D00D[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01Q10D00E00E[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01R10D00D00B[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01Q10D00D00B[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01R10D00D00D00D[5] = { - &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01Q10D00D00D00D[5] = { + &BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01R10D00D00E00E[5] = { - &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01Q10D00D00E00E[5] = { + &BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01S10D00D00B[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01R20D00D00B[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01S10D00D00D00D[5] = { - &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01S10D00D00E00E[5] = { - &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01T10D00D00B[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01T10D00D00D00D[5] = { - &BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01R20D00D00D00D[5] = { + &BuiltInVariable::kpt01R, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01T10D00D00E00E[5] = { - &BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01U20D00D00B[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01U20D00D00D00D[5] = { - &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01U20D00D00E00E[5] = { - &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01R20D00D00E00E[5] = { + &BuiltInVariable::kpt01R, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01V20D00D00B[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01V20D00D00D00D[5] = { - &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01V20D00D00E00E[5] = { - &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01W20D00D00B[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01W20D00D00D00D[5] = { - &BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01W20D00D00E00E[5] = { - &BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01S20D00B[3] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01S20D00D00D[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01S20D00E00E[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01S20D30D[3] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01T10D00B[3] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01T10D00D00D[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01T10D00E00E[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01U00D00B[3] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01U00D00D00D[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01U00D00E00E[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01U00D30D[3] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt30D}; +constexpr const TVariable *p01V10D00B[3] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01V10D00D00D[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01V10D00E00E[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01V10D30E[3] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt30E}; +constexpr const TVariable *p01W20D00B[3] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01W20D00D00D[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01W20D00E00E[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01W20D30E[3] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30E}; constexpr const TVariable *p01X20D00B[3] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01X20D00D00D[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01X20D00E00E[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01X20D30B[3] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; +constexpr const TVariable *p01X20D30E[3] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30E}; constexpr const TVariable *p01Y20D00B[3] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01Y20D00D00D[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01Y20D00E00E[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Y20D30D[3] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01Z20D00B[3] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01Z20D00D00D[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01Y20D30E[3] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30E}; +constexpr const TVariable *p01Z00D00B[3] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01Z00D00D00D[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01Z20D00E00E[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, +constexpr const TVariable *p01Z00D00E00E[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Z20D30E[3] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; constexpr const TVariable *p01a10D00B[3] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01a10D00D00D[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01a10D00E00E[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01b10D00B[3] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01b10D00D00D[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01b10D00D00B[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01b10D00D00D00D[5] = { + &BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01b10D00D00E00E[5] = { + &BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01c20D00D00B[4] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01c20D00D00D00D[5] = { + &BuiltInVariable::kpt01c, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01c20D00D00E00E[5] = { + &BuiltInVariable::kpt01c, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, + &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; +constexpr const TVariable *p01d20D00B[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01d20D00D00D[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01b10D00E00E[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01c10D00B[3] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01c10D00D00D[4] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01c10D00E00E[4] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, +constexpr const TVariable *p01d20D00E00E[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01d00D00B[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01d00D00D00D[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01d20D30E[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt20D, + &BuiltInVariable::kpt30E}; +constexpr const TVariable *p01e10D00B[3] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt10D, + &BuiltInVariable::kpt00B}; +constexpr const TVariable *p01e10D00D00D[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01d00D00E00E[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, +constexpr const TVariable *p01e10D00E00E[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01d00D30B[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01e00D00B[3] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01e00D00D00D[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01e00D00E00E[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01e00D30D[3] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30D}; constexpr const TVariable *p01f00D00B[3] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; constexpr const TVariable *p01f00D00D00D[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; constexpr const TVariable *p01f00D00E00E[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; constexpr const TVariable *p01f00D30E[3] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30E}; +constexpr const TVariable *p01g[1] = {&BuiltInVariable::kpt01g}; +constexpr const TVariable *p01h[1] = {&BuiltInVariable::kpt01h}; +constexpr const TVariable *p01i[1] = {&BuiltInVariable::kpt01i}; +constexpr const TVariable *p01j00D[2] = {&BuiltInVariable::kpt01j, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01k00D[2] = {&BuiltInVariable::kpt01k, &BuiltInVariable::kpt00D}; +constexpr const TVariable *p01l00D[2] = {&BuiltInVariable::kpt01l, &BuiltInVariable::kpt00D}; constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B}; constexpr const TVariable *p10B00D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00D}; constexpr const TVariable *p10B10B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B}; @@ -4078,13624 +4217,14170 @@ namespace Func { constexpr const TFunction radians_00B(BuiltInId::radians_Float1, BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpRadians, true); constexpr const TFunction radians_10B(BuiltInId::radians_Float2, BuiltInName::radians, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpRadians, true); constexpr const TFunction radians_20B(BuiltInId::radians_Float3, BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpRadians, true); constexpr const TFunction radians_30B(BuiltInId::radians_Float4, BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpRadians, true); constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1, BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpDegrees, true); constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2, BuiltInName::degrees, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpDegrees, true); constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3, BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpDegrees, true); constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4, BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpDegrees, true); constexpr const TFunction sin_00B(BuiltInId::sin_Float1, BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpSin, true); constexpr const TFunction sin_10B(BuiltInId::sin_Float2, BuiltInName::sin, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpSin, true); constexpr const TFunction sin_20B(BuiltInId::sin_Float3, BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpSin, true); constexpr const TFunction sin_30B(BuiltInId::sin_Float4, BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpSin, true); constexpr const TFunction cos_00B(BuiltInId::cos_Float1, BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpCos, true); constexpr const TFunction cos_10B(BuiltInId::cos_Float2, BuiltInName::cos, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpCos, true); constexpr const TFunction cos_20B(BuiltInId::cos_Float3, BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpCos, true); constexpr const TFunction cos_30B(BuiltInId::cos_Float4, BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpCos, true); constexpr const TFunction tan_00B(BuiltInId::tan_Float1, BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpTan, true); constexpr const TFunction tan_10B(BuiltInId::tan_Float2, BuiltInName::tan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpTan, true); constexpr const TFunction tan_20B(BuiltInId::tan_Float3, BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpTan, true); constexpr const TFunction tan_30B(BuiltInId::tan_Float4, BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpTan, true); constexpr const TFunction asin_00B(BuiltInId::asin_Float1, BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAsin, true); constexpr const TFunction asin_10B(BuiltInId::asin_Float2, BuiltInName::asin, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAsin, true); constexpr const TFunction asin_20B(BuiltInId::asin_Float3, BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAsin, true); constexpr const TFunction asin_30B(BuiltInId::asin_Float4, BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAsin, true); constexpr const TFunction acos_00B(BuiltInId::acos_Float1, BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAcos, true); constexpr const TFunction acos_10B(BuiltInId::acos_Float2, BuiltInName::acos, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAcos, true); constexpr const TFunction acos_20B(BuiltInId::acos_Float3, BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAcos, true); constexpr const TFunction acos_30B(BuiltInId::acos_Float4, BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAcos, true); constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4, BuiltInName::atan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_00B(BuiltInId::atan_Float1, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_10B(BuiltInId::atan_Float2, BuiltInName::atan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_20B(BuiltInId::atan_Float3, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAtan, true); constexpr const TFunction atan_30B(BuiltInId::atan_Float4, BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAtan, true); constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1, BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpSinh, true); constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2, BuiltInName::sinh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpSinh, true); constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3, BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpSinh, true); constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4, BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpSinh, true); constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1, BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpCosh, true); constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2, BuiltInName::cosh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpCosh, true); constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3, BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpCosh, true); constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4, BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpCosh, true); constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1, BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpTanh, true); constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2, BuiltInName::tanh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpTanh, true); constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3, BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpTanh, true); constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4, BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpTanh, true); constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1, BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAsinh, true); constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2, BuiltInName::asinh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAsinh, true); constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3, BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAsinh, true); constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4, BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAsinh, true); constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1, BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAcosh, true); constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2, BuiltInName::acosh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAcosh, true); constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3, BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAcosh, true); constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4, BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAcosh, true); constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1, BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAtanh, true); constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2, BuiltInName::atanh, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAtanh, true); constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3, BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAtanh, true); constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4, BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAtanh, true); constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1, BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpPow, true); constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2, BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpPow, true); constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3, BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpPow, true); constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4, BuiltInName::pow, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpPow, true); constexpr const TFunction exp_00B(BuiltInId::exp_Float1, BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpExp, true); constexpr const TFunction exp_10B(BuiltInId::exp_Float2, BuiltInName::exp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpExp, true); constexpr const TFunction exp_20B(BuiltInId::exp_Float3, BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpExp, true); constexpr const TFunction exp_30B(BuiltInId::exp_Float4, BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpExp, true); constexpr const TFunction log_00B(BuiltInId::log_Float1, BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpLog, true); constexpr const TFunction log_10B(BuiltInId::log_Float2, BuiltInName::log, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpLog, true); constexpr const TFunction log_20B(BuiltInId::log_Float3, BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpLog, true); constexpr const TFunction log_30B(BuiltInId::log_Float4, BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpLog, true); constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1, BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpExp2, true); constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2, BuiltInName::exp2, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpExp2, true); constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3, BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpExp2, true); constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4, BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpExp2, true); constexpr const TFunction log2_00B(BuiltInId::log2_Float1, BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpLog2, true); constexpr const TFunction log2_10B(BuiltInId::log2_Float2, BuiltInName::log2, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpLog2, true); constexpr const TFunction log2_20B(BuiltInId::log2_Float3, BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpLog2, true); constexpr const TFunction log2_30B(BuiltInId::log2_Float4, BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpLog2, true); constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1, BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpSqrt, true); constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2, BuiltInName::sqrt, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpSqrt, true); constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3, BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpSqrt, true); constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4, BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpSqrt, true); constexpr const TFunction inversesqrt_00B( BuiltInId::inversesqrt_Float1, BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpInversesqrt, true); constexpr const TFunction inversesqrt_10B( BuiltInId::inversesqrt_Float2, BuiltInName::inversesqrt, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpInversesqrt, true); constexpr const TFunction inversesqrt_20B( BuiltInId::inversesqrt_Float3, BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpInversesqrt, true); constexpr const TFunction inversesqrt_30B( BuiltInId::inversesqrt_Float4, BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpInversesqrt, true); constexpr const TFunction abs_00B(BuiltInId::abs_Float1, BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_10B(BuiltInId::abs_Float2, BuiltInName::abs, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_20B(BuiltInId::abs_Float3, BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_30B(BuiltInId::abs_Float4, BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_00D(BuiltInId::abs_Int1, BuiltInName::abs, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_10D(BuiltInId::abs_Int2, BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_20D(BuiltInId::abs_Int3, BuiltInName::abs, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction abs_30D(BuiltInId::abs_Int4, BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpAbs, true); constexpr const TFunction sign_00B(BuiltInId::sign_Float1, BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_10B(BuiltInId::sign_Float2, BuiltInName::sign, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_20B(BuiltInId::sign_Float3, BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_30B(BuiltInId::sign_Float4, BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_00D(BuiltInId::sign_Int1, BuiltInName::sign, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_10D(BuiltInId::sign_Int2, BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_20D(BuiltInId::sign_Int3, BuiltInName::sign, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction sign_30D(BuiltInId::sign_Int4, BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpSign, true); constexpr const TFunction floor_00B(BuiltInId::floor_Float1, BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFloor, true); constexpr const TFunction floor_10B(BuiltInId::floor_Float2, BuiltInName::floor, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFloor, true); constexpr const TFunction floor_20B(BuiltInId::floor_Float3, BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFloor, true); constexpr const TFunction floor_30B(BuiltInId::floor_Float4, BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFloor, true); constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1, BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpTrunc, true); constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2, BuiltInName::trunc, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpTrunc, true); constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3, BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpTrunc, true); constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4, BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpTrunc, true); constexpr const TFunction round_00B(BuiltInId::round_Float1, BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpRound, true); constexpr const TFunction round_10B(BuiltInId::round_Float2, BuiltInName::round, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpRound, true); constexpr const TFunction round_20B(BuiltInId::round_Float3, BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpRound, true); constexpr const TFunction round_30B(BuiltInId::round_Float4, BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpRound, true); constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1, BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpRoundEven, true); constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2, BuiltInName::roundEven, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpRoundEven, true); constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3, BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpRoundEven, true); constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4, BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpRoundEven, true); constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1, BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpCeil, true); constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2, BuiltInName::ceil, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpCeil, true); constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3, BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpCeil, true); constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4, BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpCeil, true); constexpr const TFunction fract_00B(BuiltInId::fract_Float1, BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFract, true); constexpr const TFunction fract_10B(BuiltInId::fract_Float2, BuiltInName::fract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFract, true); constexpr const TFunction fract_20B(BuiltInId::fract_Float3, BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFract, true); constexpr const TFunction fract_30B(BuiltInId::fract_Float4, BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFract, true); constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1, BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1, BuiltInName::mod, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1, BuiltInName::mod, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B00B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1, BuiltInName::mod, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B00B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2, BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3, BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4, BuiltInName::mod, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpMod, true); constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B00B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B00B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10D10D(BuiltInId::min_Int2_Int2, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20D20D(BuiltInId::min_Int3_Int3, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30D30D(BuiltInId::min_Int4_Int4, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00E00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3, BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E00E00E, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E00E00E, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1, BuiltInName::min, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E00E00E, 2, StaticType::Get(), EOpMin, true); constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B00B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B00B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10D10D(BuiltInId::max_Int2_Int2, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20D20D(BuiltInId::max_Int3_Int3, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30D30D(BuiltInId::max_Int4_Int4, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10D00D(BuiltInId::max_Int2_Int1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20D00D(BuiltInId::max_Int3_Int1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30D00D(BuiltInId::max_Int4_Int1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00E00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3, BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E00E00E, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E00E00E, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1, BuiltInName::max, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E00E00E, 2, StaticType::Get(), EOpMax, true); constexpr const TFunction clamp_00B00B00B( BuiltInId::clamp_Float1_Float1_Float1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10B00B00B( BuiltInId::clamp_Float2_Float1_Float1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20B00B00B( BuiltInId::clamp_Float3_Float1_Float1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B00B00B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30B00B00B( BuiltInId::clamp_Float4_Float1_Float1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B00B00B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10B10B10B( BuiltInId::clamp_Float2_Float2_Float2, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20B20B20B( BuiltInId::clamp_Float3_Float3_Float3, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30B30B30B( BuiltInId::clamp_Float4_Float4_Float4, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_Int1_Int1_Int1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_Int2_Int1_Int1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D00D00D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_Int3_Int1_Int1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_Int4_Int1_Int1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D00D00D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_Int2_Int2_Int2, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D10D10D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_Int3_Int3_Int3, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D20D20D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_Int4_Int4_Int4, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D30D, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_00E00E00E(BuiltInId::clamp_UInt1_UInt1_UInt1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E00E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10E00E00E(BuiltInId::clamp_UInt2_UInt1_UInt1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E00E00E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20E00E00E(BuiltInId::clamp_UInt3_UInt1_UInt1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E00E00E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30E00E00E(BuiltInId::clamp_UInt4_UInt1_UInt1, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E00E00E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_10E10E10E(BuiltInId::clamp_UInt2_UInt2_UInt2, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E10E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_20E20E20E(BuiltInId::clamp_UInt3_UInt3_UInt3, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E20E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction clamp_30E30E30E(BuiltInId::clamp_UInt4_UInt4_UInt4, BuiltInName::clamp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E30E, 3, StaticType::Get(), EOpClamp, true); constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10B10B00B(BuiltInId::mix_Float2_Float2_Float1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B00B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20B20B00B(BuiltInId::mix_Float3_Float3_Float1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B00B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30B30B00B(BuiltInId::mix_Float4_Float4_Float1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10B10B10B(BuiltInId::mix_Float2_Float2_Float2, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20B20B20B(BuiltInId::mix_Float3_Float3_Float3, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30B30B30B(BuiltInId::mix_Float4_Float4_Float4, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_00B00B00F(BuiltInId::mix_Float1_Float1_Bool1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10B10B10F(BuiltInId::mix_Float2_Float2_Bool2, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20B20B20F(BuiltInId::mix_Float3_Float3_Bool3, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30B30B30F(BuiltInId::mix_Float4_Float4_Bool4, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_00D00D00F(BuiltInId::mix_Int1_Int1_Bool1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10D10D10F(BuiltInId::mix_Int2_Int2_Bool2, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D10D10F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20D20D20F(BuiltInId::mix_Int3_Int3_Bool3, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D20D20F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30D30D30F(BuiltInId::mix_Int4_Int4_Bool4, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D30F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_00E00E00F(BuiltInId::mix_UInt1_UInt1_Bool1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E00F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10E10E10F(BuiltInId::mix_UInt2_UInt2_Bool2, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E10F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20E20E20F(BuiltInId::mix_UInt3_UInt3_Bool3, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E20F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30E30E30F(BuiltInId::mix_UInt4_UInt4_Bool4, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E30F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_00F00F00F(BuiltInId::mix_Bool1_Bool1_Bool1, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00F00F00F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_10F10F10F(BuiltInId::mix_Bool2_Bool2_Bool2, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_20F20F20F(BuiltInId::mix_Bool3_Bool3_Bool3, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction mix_30F30F30F(BuiltInId::mix_Bool4_Bool4_Bool4, BuiltInName::mix, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 3, StaticType::Get(), EOpMix, true); constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1, BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2, BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3, BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4, BuiltInName::step, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2, BuiltInName::step, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B10B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3, BuiltInName::step, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B20B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4, BuiltInName::step, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B30B, 2, StaticType::Get(), EOpStep, true); constexpr const TFunction smoothstep_00B00B00B( BuiltInId::smoothstep_Float1_Float1_Float1, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_10B10B10B( BuiltInId::smoothstep_Float2_Float2_Float2, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_20B20B20B( BuiltInId::smoothstep_Float3_Float3_Float3, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_30B30B30B( BuiltInId::smoothstep_Float4_Float4_Float4, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_00B00B10B( BuiltInId::smoothstep_Float1_Float1_Float2, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B10B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_00B00B20B( BuiltInId::smoothstep_Float1_Float1_Float3, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B20B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction smoothstep_00B00B30B( BuiltInId::smoothstep_Float1_Float1_Float4, BuiltInName::smoothstep, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B30B, 3, StaticType::Get(), EOpSmoothstep, true); constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1, BuiltInName::modf, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B_o_00B, 2, StaticType::Get(), EOpModf, false); constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2, BuiltInName::modf, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B_o_10B, 2, StaticType::Get(), EOpModf, false); constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3, BuiltInName::modf, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B_o_20B, 2, StaticType::Get(), EOpModf, false); constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4, BuiltInName::modf, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B_o_30B, 2, StaticType::Get(), EOpModf, false); constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1, BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpIsnan, true); constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2, BuiltInName::isnan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpIsnan, true); constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3, BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpIsnan, true); constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4, BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpIsnan, true); constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1, BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpIsinf, true); constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2, BuiltInName::isinf, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpIsinf, true); constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3, BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpIsinf, true); constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4, BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpIsinf, true); constexpr const TFunction floatBitsToInt_00B( BuiltInId::floatBitsToInt_Float1, BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFloatBitsToInt, true); constexpr const TFunction floatBitsToInt_10B( BuiltInId::floatBitsToInt_Float2, BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFloatBitsToInt, true); constexpr const TFunction floatBitsToInt_20B( BuiltInId::floatBitsToInt_Float3, BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFloatBitsToInt, true); constexpr const TFunction floatBitsToInt_30B( BuiltInId::floatBitsToInt_Float4, BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFloatBitsToInt, true); constexpr const TFunction floatBitsToUint_00B( BuiltInId::floatBitsToUint_Float1, BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFloatBitsToUint, true); constexpr const TFunction floatBitsToUint_10B( BuiltInId::floatBitsToUint_Float2, BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFloatBitsToUint, true); constexpr const TFunction floatBitsToUint_20B( BuiltInId::floatBitsToUint_Float3, BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFloatBitsToUint, true); constexpr const TFunction floatBitsToUint_30B( BuiltInId::floatBitsToUint_Float4, BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFloatBitsToUint, true); constexpr const TFunction intBitsToFloat_00D( BuiltInId::intBitsToFloat_Int1, BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpIntBitsToFloat, true); constexpr const TFunction intBitsToFloat_10D( BuiltInId::intBitsToFloat_Int2, BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpIntBitsToFloat, true); constexpr const TFunction intBitsToFloat_20D( BuiltInId::intBitsToFloat_Int3, BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpIntBitsToFloat, true); constexpr const TFunction intBitsToFloat_30D( BuiltInId::intBitsToFloat_Int4, BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpIntBitsToFloat, true); constexpr const TFunction uintBitsToFloat_00E( BuiltInId::uintBitsToFloat_UInt1, BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUintBitsToFloat, true); constexpr const TFunction uintBitsToFloat_10E( BuiltInId::uintBitsToFloat_UInt2, BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E00D00D, 1, StaticType::Get(), EOpUintBitsToFloat, true); constexpr const TFunction uintBitsToFloat_20E( BuiltInId::uintBitsToFloat_UInt3, BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E00D00D, 1, StaticType::Get(), EOpUintBitsToFloat, true); constexpr const TFunction uintBitsToFloat_30E( BuiltInId::uintBitsToFloat_UInt4, BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30E00D00D, 1, StaticType::Get(), EOpUintBitsToFloat, true); constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1, BuiltInName::fma, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fma_10B10B10B(BuiltInId::fma_Float2_Float2_Float2, BuiltInName::fma, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fma_20B20B20B(BuiltInId::fma_Float3_Float3_Float3, BuiltInName::fma, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fma_30B30B30B(BuiltInId::fma_Float4_Float4_Float4, BuiltInName::fma, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fmaExt_00B00B00B( BuiltInId::fmaExt_Float1_Float1_Float1, BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, + std::array{{TExtension::EXT_gpu_shader5}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fmaExt_10B10B10B( BuiltInId::fmaExt_Float2_Float2_Float2, BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, + std::array{{TExtension::EXT_gpu_shader5}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fmaExt_20B20B20B( BuiltInId::fmaExt_Float3_Float3_Float3, BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, + std::array{{TExtension::EXT_gpu_shader5}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction fmaExt_30B30B30B( BuiltInId::fmaExt_Float4_Float4_Float4, BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, + std::array{{TExtension::EXT_gpu_shader5}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpFma, true); constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1, BuiltInName::frexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B_o_00D, 2, StaticType::Get(), EOpFrexp, false); constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2, BuiltInName::frexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B_o_10D, 2, StaticType::Get(), EOpFrexp, false); constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3, BuiltInName::frexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B_o_20D, 2, StaticType::Get(), EOpFrexp, false); constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4, BuiltInName::frexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B_o_30D, 2, StaticType::Get(), EOpFrexp, false); constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1, BuiltInName::ldexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00D, 2, StaticType::Get(), EOpLdexp, true); constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2, BuiltInName::ldexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10D, 2, StaticType::Get(), EOpLdexp, true); constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3, BuiltInName::ldexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20D, 2, StaticType::Get(), EOpLdexp, true); constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4, BuiltInName::ldexp, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30D, 2, StaticType::Get(), EOpLdexp, true); constexpr const TFunction packSnorm2x16_10B( BuiltInId::packSnorm2x16_Float2, BuiltInName::packSnorm2x16, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpPackSnorm2x16, true); constexpr const TFunction packHalf2x16_10B( BuiltInId::packHalf2x16_Float2, BuiltInName::packHalf2x16, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpPackHalf2x16, true); constexpr const TFunction unpackSnorm2x16_00E( BuiltInId::unpackSnorm2x16_UInt1, BuiltInName::unpackSnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUnpackSnorm2x16, true); constexpr const TFunction unpackHalf2x16_00E( BuiltInId::unpackHalf2x16_UInt1, BuiltInName::unpackHalf2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUnpackHalf2x16, true); constexpr const TFunction packUnorm2x16_10B( BuiltInId::packUnorm2x16_Float2, BuiltInName::packUnorm2x16, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpPackUnorm2x16, true); constexpr const TFunction unpackUnorm2x16_00E( BuiltInId::unpackUnorm2x16_UInt1, BuiltInName::unpackUnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUnpackUnorm2x16, true); constexpr const TFunction packUnorm4x8_30B( BuiltInId::packUnorm4x8_Float4, BuiltInName::packUnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpPackUnorm4x8, true); constexpr const TFunction packSnorm4x8_30B( BuiltInId::packSnorm4x8_Float4, BuiltInName::packSnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpPackSnorm4x8, true); constexpr const TFunction unpackUnorm4x8_00E( BuiltInId::unpackUnorm4x8_UInt1, BuiltInName::unpackUnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUnpackUnorm4x8, true); constexpr const TFunction unpackSnorm4x8_00E( BuiltInId::unpackSnorm4x8_UInt1, BuiltInName::unpackSnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpUnpackSnorm4x8, true); constexpr const TFunction length_00B(BuiltInId::length_Float1, BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpLength, true); constexpr const TFunction length_10B(BuiltInId::length_Float2, BuiltInName::length, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpLength, true); constexpr const TFunction length_20B(BuiltInId::length_Float3, BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpLength, true); constexpr const TFunction length_30B(BuiltInId::length_Float4, BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpLength, true); constexpr const TFunction distance_00B00B( BuiltInId::distance_Float1_Float1, BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpDistance, true); constexpr const TFunction distance_10B10B( BuiltInId::distance_Float2_Float2, BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpDistance, true); constexpr const TFunction distance_20B20B( BuiltInId::distance_Float3_Float3, BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpDistance, true); constexpr const TFunction distance_30B30B( BuiltInId::distance_Float4_Float4, BuiltInName::distance, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpDistance, true); constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1, BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpDot, true); constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2, BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpDot, true); constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3, BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpDot, true); constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4, BuiltInName::dot, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpDot, true); constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3, BuiltInName::cross, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpCross, true); constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1, BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpNormalize, true); constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2, BuiltInName::normalize, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpNormalize, true); constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3, BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpNormalize, true); constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4, BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpNormalize, true); constexpr const TFunction faceforward_00B00B00B( BuiltInId::faceforward_Float1_Float1_Float1, BuiltInName::faceforward, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpFaceforward, true); constexpr const TFunction faceforward_10B10B10B( BuiltInId::faceforward_Float2_Float2_Float2, BuiltInName::faceforward, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B10B, 3, StaticType::Get(), EOpFaceforward, true); constexpr const TFunction faceforward_20B20B20B( BuiltInId::faceforward_Float3_Float3_Float3, BuiltInName::faceforward, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B20B, 3, StaticType::Get(), EOpFaceforward, true); constexpr const TFunction faceforward_30B30B30B( BuiltInId::faceforward_Float4_Float4_Float4, BuiltInName::faceforward, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B30B, 3, StaticType::Get(), EOpFaceforward, true); constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1, BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 2, StaticType::Get(), EOpReflect, true); constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2, BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpReflect, true); constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3, BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpReflect, true); constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4, BuiltInName::reflect, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpReflect, true); constexpr const TFunction refract_00B00B00B( BuiltInId::refract_Float1_Float1_Float1, BuiltInName::refract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00B00B, 3, StaticType::Get(), EOpRefract, true); constexpr const TFunction refract_10B10B00B( BuiltInId::refract_Float2_Float2_Float1, BuiltInName::refract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B10B00B, 3, StaticType::Get(), EOpRefract, true); constexpr const TFunction refract_20B20B00B( BuiltInId::refract_Float3_Float3_Float1, BuiltInName::refract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B20B00B, 3, StaticType::Get(), EOpRefract, true); constexpr const TFunction refract_30B30B00B( BuiltInId::refract_Float4_Float4_Float1, BuiltInName::refract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 3, StaticType::Get(), EOpRefract, true); constexpr const TFunction matrixCompMult_50B50B( BuiltInId::matrixCompMult_Float2x2_Float2x2, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p50B50B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_A0BA0B( BuiltInId::matrixCompMult_Float3x3_Float3x3, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pA0BA0B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_F0BF0B( BuiltInId::matrixCompMult_Float4x4_Float4x4, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pF0BF0B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_90B90B( BuiltInId::matrixCompMult_Float2x3_Float2x3, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p90B90B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_60B60B( BuiltInId::matrixCompMult_Float3x2_Float3x2, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p60B60B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_D0BD0B( BuiltInId::matrixCompMult_Float2x4_Float2x4, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pD0BD0B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_70B70B( BuiltInId::matrixCompMult_Float4x2_Float4x2, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p70B70B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_E0BE0B( BuiltInId::matrixCompMult_Float3x4_Float3x4, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pE0BE0B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction matrixCompMult_B0BB0B( BuiltInId::matrixCompMult_Float4x3_Float4x3, BuiltInName::matrixCompMult, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pB0BB0B, 2, StaticType::Get(), - EOpMulMatrixComponentWise, + EOpMatrixCompMult, true); constexpr const TFunction outerProduct_10B10B( BuiltInId::outerProduct_Float2_Float2, BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_20B20B( BuiltInId::outerProduct_Float3_Float3, BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_30B30B( BuiltInId::outerProduct_Float4_Float4, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_20B10B( BuiltInId::outerProduct_Float3_Float2, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B10B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_10B20B( BuiltInId::outerProduct_Float2_Float3, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B20B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_30B10B( BuiltInId::outerProduct_Float4_Float2, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B10B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_10B30B( BuiltInId::outerProduct_Float2_Float4, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B30B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_30B20B( BuiltInId::outerProduct_Float4_Float3, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B20B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction outerProduct_20B30B( BuiltInId::outerProduct_Float3_Float4, BuiltInName::outerProduct, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B30B, 2, StaticType::Get(), EOpOuterProduct, true); constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p50B50B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pA0BA0B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pF0BF0B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p60B60B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p90B90B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p70B70B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pD0BD0B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pB0BB0B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4, BuiltInName::transpose, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pE0BE0B, 1, StaticType::Get(), EOpTranspose, true); constexpr const TFunction determinant_50B( BuiltInId::determinant_Float2x2, BuiltInName::determinant, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p50B50B, 1, StaticType::Get(), EOpDeterminant, true); constexpr const TFunction determinant_A0B( BuiltInId::determinant_Float3x3, BuiltInName::determinant, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pA0BA0B, 1, StaticType::Get(), EOpDeterminant, true); constexpr const TFunction determinant_F0B( BuiltInId::determinant_Float4x4, BuiltInName::determinant, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pF0BF0B, 1, StaticType::Get(), EOpDeterminant, true); constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2, BuiltInName::inverse, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p50B50B, 1, StaticType::Get(), EOpInverse, true); constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3, BuiltInName::inverse, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pA0BA0B, 1, StaticType::Get(), EOpInverse, true); constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4, BuiltInName::inverse, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::pF0BF0B, 1, StaticType::Get(), EOpInverse, true); constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4, BuiltInName::lessThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4, BuiltInName::lessThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3, BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4, BuiltInName::lessThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpLessThanComponentWise, true); constexpr const TFunction lessThanEqual_10B10B( BuiltInId::lessThanEqual_Float2_Float2, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_20B20B( BuiltInId::lessThanEqual_Float3_Float3, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_30B30B( BuiltInId::lessThanEqual_Float4_Float4, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_10D10D( BuiltInId::lessThanEqual_Int2_Int2, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_20D20D( BuiltInId::lessThanEqual_Int3_Int3, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_30D30D( BuiltInId::lessThanEqual_Int4_Int4, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_10E10E( BuiltInId::lessThanEqual_UInt2_UInt2, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_20E20E( BuiltInId::lessThanEqual_UInt3_UInt3, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction lessThanEqual_30E30E( BuiltInId::lessThanEqual_UInt4_UInt4, BuiltInName::lessThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpLessThanEqualComponentWise, true); constexpr const TFunction greaterThan_10B10B( BuiltInId::greaterThan_Float2_Float2, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_20B20B( BuiltInId::greaterThan_Float3_Float3, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_30B30B( BuiltInId::greaterThan_Float4_Float4, BuiltInName::greaterThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_10D10D( BuiltInId::greaterThan_Int2_Int2, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_20D20D( BuiltInId::greaterThan_Int3_Int3, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_30D30D( BuiltInId::greaterThan_Int4_Int4, BuiltInName::greaterThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_10E10E( BuiltInId::greaterThan_UInt2_UInt2, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_20E20E( BuiltInId::greaterThan_UInt3_UInt3, BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThan_30E30E( BuiltInId::greaterThan_UInt4_UInt4, BuiltInName::greaterThan, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpGreaterThanComponentWise, true); constexpr const TFunction greaterThanEqual_10B10B( BuiltInId::greaterThanEqual_Float2_Float2, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_20B20B( BuiltInId::greaterThanEqual_Float3_Float3, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_30B30B( BuiltInId::greaterThanEqual_Float4_Float4, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_10D10D( BuiltInId::greaterThanEqual_Int2_Int2, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_20D20D( BuiltInId::greaterThanEqual_Int3_Int3, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_30D30D( BuiltInId::greaterThanEqual_Int4_Int4, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_10E10E( BuiltInId::greaterThanEqual_UInt2_UInt2, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_20E20E( BuiltInId::greaterThanEqual_UInt3_UInt3, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction greaterThanEqual_30E30E( BuiltInId::greaterThanEqual_UInt4_UInt4, BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpGreaterThanEqualComponentWise, true); constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3, BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4, BuiltInName::equal, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 2, StaticType::Get(), EOpEqualComponentWise, true); constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B20B00B, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B30B00B, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D10D00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20D20D00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E10E00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3, BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E20E00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4, BuiltInName::notEqual, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 2, StaticType::Get(), EOpNotEqualComponentWise, true); constexpr const TFunction any_10F(BuiltInId::any_Bool2, BuiltInName::any, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 1, StaticType::Get(), EOpAny, true); constexpr const TFunction any_20F(BuiltInId::any_Bool3, BuiltInName::any, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 1, StaticType::Get(), EOpAny, true); constexpr const TFunction any_30F(BuiltInId::any_Bool4, BuiltInName::any, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 1, StaticType::Get(), EOpAny, true); constexpr const TFunction all_10F(BuiltInId::all_Bool2, BuiltInName::all, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 1, StaticType::Get(), EOpAll, true); constexpr const TFunction all_20F(BuiltInId::all_Bool3, BuiltInName::all, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 1, StaticType::Get(), EOpAll, true); constexpr const TFunction all_30F(BuiltInId::all_Bool4, BuiltInName::all, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 1, StaticType::Get(), EOpAll, true); constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2, BuiltInName::notFunc, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10F10F10F, 1, StaticType::Get(), - EOpLogicalNotComponentWise, + EOpNotComponentWise, true); constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3, BuiltInName::notFunc, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20F20F20F, 1, StaticType::Get(), - EOpLogicalNotComponentWise, + EOpNotComponentWise, true); constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4, BuiltInName::notFunc, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30F30F30F, 1, StaticType::Get(), - EOpLogicalNotComponentWise, + EOpNotComponentWise, true); constexpr const TFunction bitfieldExtract_00D00D00D( BuiltInId::bitfieldExtract_Int1_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_10D00D00D( BuiltInId::bitfieldExtract_Int2_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_20D00D00D( BuiltInId::bitfieldExtract_Int3_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_30D00D00D( BuiltInId::bitfieldExtract_Int4_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_00E00D00D( BuiltInId::bitfieldExtract_UInt1_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_10E00D00D( BuiltInId::bitfieldExtract_UInt2_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_20E00D00D( BuiltInId::bitfieldExtract_UInt3_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldExtract_30E00D00D( BuiltInId::bitfieldExtract_UInt4_Int1_Int1, BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E00D00D, 3, StaticType::Get(), EOpBitfieldExtract, true); constexpr const TFunction bitfieldInsert_00D00D00D00D( BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_10D10D00D00D( BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D10D00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_20D20D00D00D( BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D20D00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_30D30D00D00D( BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_00E00E00D00D( BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_10E10E00D00D( BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_20E20E00D00D( BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldInsert_30E30E00D00D( BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1, BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E00D00D, 4, StaticType::Get(), EOpBitfieldInsert, true); constexpr const TFunction bitfieldReverse_00D( BuiltInId::bitfieldReverse_Int1, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_10D( BuiltInId::bitfieldReverse_Int2, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_20D( BuiltInId::bitfieldReverse_Int3, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_30D( BuiltInId::bitfieldReverse_Int4, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_00E( BuiltInId::bitfieldReverse_UInt1, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_10E( BuiltInId::bitfieldReverse_UInt2, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_20E( BuiltInId::bitfieldReverse_UInt3, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitfieldReverse_30E( BuiltInId::bitfieldReverse_UInt4, BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30E00D00D, 1, StaticType::Get(), EOpBitfieldReverse, true); constexpr const TFunction bitCount_00D(BuiltInId::bitCount_Int1, BuiltInName::bitCount, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_10D(BuiltInId::bitCount_Int2, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_20D(BuiltInId::bitCount_Int3, BuiltInName::bitCount, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_30D(BuiltInId::bitCount_Int4, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_00E(BuiltInId::bitCount_UInt1, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_10E(BuiltInId::bitCount_UInt2, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_20E(BuiltInId::bitCount_UInt3, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction bitCount_30E(BuiltInId::bitCount_UInt4, BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30E00D00D, 1, StaticType::Get(), EOpBitCount, true); constexpr const TFunction findLSB_00D(BuiltInId::findLSB_Int1, BuiltInName::findLSB, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_10D(BuiltInId::findLSB_Int2, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_20D(BuiltInId::findLSB_Int3, BuiltInName::findLSB, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_30D(BuiltInId::findLSB_Int4, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_00E(BuiltInId::findLSB_UInt1, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_10E(BuiltInId::findLSB_UInt2, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_20E(BuiltInId::findLSB_UInt3, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findLSB_30E(BuiltInId::findLSB_UInt4, BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30E00D00D, 1, StaticType::Get(), EOpFindLSB, true); constexpr const TFunction findMSB_00D(BuiltInId::findMSB_Int1, BuiltInName::findMSB, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_10D(BuiltInId::findMSB_Int2, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10D00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_20D(BuiltInId::findMSB_Int3, BuiltInName::findMSB, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_30D(BuiltInId::findMSB_Int4, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30D00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00E00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10E00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20E00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4, BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30E00D00D, 1, StaticType::Get(), EOpFindMSB, true); constexpr const TFunction uaddCarry_00E00E00E( BuiltInId::uaddCarry_UInt1_UInt1_UInt1, BuiltInName::uaddCarry, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E_o_00E_o_00E, 3, StaticType::Get(), EOpUaddCarry, false); constexpr const TFunction uaddCarry_10E10E10E( BuiltInId::uaddCarry_UInt2_UInt2_UInt2, BuiltInName::uaddCarry, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E_o_10E_o_10E, 3, StaticType::Get(), EOpUaddCarry, false); constexpr const TFunction uaddCarry_20E20E20E( BuiltInId::uaddCarry_UInt3_UInt3_UInt3, BuiltInName::uaddCarry, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E_o_20E_o_20E, 3, StaticType::Get(), EOpUaddCarry, false); constexpr const TFunction uaddCarry_30E30E30E( BuiltInId::uaddCarry_UInt4_UInt4_UInt4, BuiltInName::uaddCarry, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E_o_30E_o_30E, 3, StaticType::Get(), EOpUaddCarry, false); constexpr const TFunction usubBorrow_00E00E00E( BuiltInId::usubBorrow_UInt1_UInt1_UInt1, BuiltInName::usubBorrow, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E_o_00E_o_00E, 3, StaticType::Get(), EOpUsubBorrow, false); constexpr const TFunction usubBorrow_10E10E10E( BuiltInId::usubBorrow_UInt2_UInt2_UInt2, BuiltInName::usubBorrow, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E_o_10E_o_10E, 3, StaticType::Get(), EOpUsubBorrow, false); constexpr const TFunction usubBorrow_20E20E20E( BuiltInId::usubBorrow_UInt3_UInt3_UInt3, BuiltInName::usubBorrow, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E_o_20E_o_20E, 3, StaticType::Get(), EOpUsubBorrow, false); constexpr const TFunction usubBorrow_30E30E30E( BuiltInId::usubBorrow_UInt4_UInt4_UInt4, BuiltInName::usubBorrow, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E_o_30E_o_30E, 3, StaticType::Get(), EOpUsubBorrow, false); constexpr const TFunction umulExtended_00E00E00E00E( BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1, BuiltInName::umulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00E00E_o_00E_o_00E, 4, StaticType::Get(), EOpUmulExtended, false); constexpr const TFunction umulExtended_10E10E10E10E( BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2, BuiltInName::umulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10E10E_o_10E_o_10E, 4, StaticType::Get(), EOpUmulExtended, false); constexpr const TFunction umulExtended_20E20E20E20E( BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3, BuiltInName::umulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20E20E_o_20E_o_20E, 4, StaticType::Get(), EOpUmulExtended, false); constexpr const TFunction umulExtended_30E30E30E30E( BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4, BuiltInName::umulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30E30E_o_30E_o_30E, 4, StaticType::Get(), EOpUmulExtended, false); constexpr const TFunction imulExtended_00D00D00D00D( BuiltInId::imulExtended_Int1_Int1_Int1_Int1, BuiltInName::imulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00D00D_o_00D_o_00D, 4, StaticType::Get(), EOpImulExtended, false); constexpr const TFunction imulExtended_10D10D10D10D( BuiltInId::imulExtended_Int2_Int2_Int2_Int2, BuiltInName::imulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10D10D_o_10D_o_10D, 4, StaticType::Get(), EOpImulExtended, false); constexpr const TFunction imulExtended_20D20D20D20D( BuiltInId::imulExtended_Int3_Int3_Int3_Int3, BuiltInName::imulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20D20D_o_20D_o_20D, 4, StaticType::Get(), EOpImulExtended, false); constexpr const TFunction imulExtended_30D30D30D30D( BuiltInId::imulExtended_Int4_Int4_Int4_Int4, BuiltInName::imulExtended, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30D30D_o_30D_o_30D, 4, StaticType::Get(), EOpImulExtended, false); constexpr const TFunction texture2D_00I10B( BuiltInId::texture2D_Sampler2D1_Float2, BuiltInName::texture2D, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 2, + StaticType::Get(), + EOpTexture2D, false); constexpr const TFunction texture2DProj_00I20B( BuiltInId::texture2DProj_Sampler2D1_Float3, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00I20B00B10D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProj, false); constexpr const TFunction texture2DProj_00I30B( BuiltInId::texture2DProj_Sampler2D1_Float4, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00I30B00B10D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProj, false); constexpr const TFunction textureCube_00K20B( BuiltInId::textureCube_SamplerCube1_Float3, BuiltInName::textureCube, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00K20B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTextureCube, + false); +constexpr const TFunction texture3D_00J20B( + BuiltInId::texture3D_Sampler3D1_Float3, + BuiltInName::texture3D, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J20B00B20D, + 2, + StaticType::Get(), + EOpTexture3D, + false); +constexpr const TFunction texture3DProj_00J30B( + BuiltInId::texture3DProj_Sampler3D1_Float4, + BuiltInName::texture3DProj, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J30B00B20D, + 2, + StaticType::Get(), + EOpTexture3DProj, + false); +constexpr const TFunction shadow2DEXT_00d20B( + BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3, + BuiltInName::shadow2DEXT, + std::array{{TExtension::EXT_shadow_samplers}}, + BuiltInParameters::p00d20B00B10D, + 2, + StaticType::Get(), + EOpShadow2DEXT, + false); +constexpr const TFunction shadow2DProjEXT_00d30B( + BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4, + BuiltInName::shadow2DProjEXT, + std::array{{TExtension::EXT_shadow_samplers}}, + BuiltInParameters::p00d30B00B10D, + 2, + StaticType::Get(), + EOpShadow2DProjEXT, false); constexpr const TFunction texture2D_00M10B( BuiltInId::texture2D_SamplerExternalOES1_Float2, BuiltInName::texture2D, - TExtension::UNDEFINED, + std::array{ + {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}}, BuiltInParameters::p00M10B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2D, false); constexpr const TFunction texture2DProj_00M20B( BuiltInId::texture2DProj_SamplerExternalOES1_Float3, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{ + {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}}, BuiltInParameters::p00M20B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProj, false); constexpr const TFunction texture2DProj_00M30B( BuiltInId::texture2DProj_SamplerExternalOES1_Float4, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{ + {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}}, BuiltInParameters::p00M30B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProj, false); constexpr const TFunction texture2DRect_00O10B( BuiltInId::texture2DRect_Sampler2DRect1_Float2, BuiltInName::texture2DRect, - TExtension::ARB_texture_rectangle, + std::array{{TExtension::ARB_texture_rectangle}}, BuiltInParameters::p00O10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DRect, false); constexpr const TFunction texture2DRectProj_00O20B( BuiltInId::texture2DRectProj_Sampler2DRect1_Float3, BuiltInName::texture2DRectProj, - TExtension::ARB_texture_rectangle, + std::array{{TExtension::ARB_texture_rectangle}}, BuiltInParameters::p00O20B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DRectProj, false); constexpr const TFunction texture2DRectProj_00O30B( BuiltInId::texture2DRectProj_Sampler2DRect1_Float4, BuiltInName::texture2DRectProj, - TExtension::ARB_texture_rectangle, + std::array{{TExtension::ARB_texture_rectangle}}, BuiltInParameters::p00O30B, 2, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2, - BuiltInName::texture, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00O20B( - BuiltInId::textureProj_Sampler2DRect1_Float3, - BuiltInName::textureProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00O30B( - BuiltInId::textureProj_Sampler2DRect1_Float4, - BuiltInName::textureProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DRectProj, false); constexpr const TFunction texture2DGradEXT_00I10B10B10B( BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2, BuiltInName::texture2DGradEXT, - TExtension::EXT_shader_texture_lod, + std::array{{TExtension::EXT_shader_texture_lod}}, BuiltInParameters::p00I10B10B10B10D, 4, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DGradEXT, false); constexpr const TFunction texture2DProjGradEXT_00I20B10B10B( BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2, BuiltInName::texture2DProjGradEXT, - TExtension::EXT_shader_texture_lod, + std::array{{TExtension::EXT_shader_texture_lod}}, BuiltInParameters::p00I20B10B10B10D, 4, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProjGradEXT, false); constexpr const TFunction texture2DProjGradEXT_00I30B10B10B( BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2, BuiltInName::texture2DProjGradEXT, - TExtension::EXT_shader_texture_lod, + std::array{{TExtension::EXT_shader_texture_lod}}, BuiltInParameters::p00I30B10B10B10D, 4, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProjGradEXT, false); constexpr const TFunction textureCubeGradEXT_00K20B20B20B( BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3, BuiltInName::textureCubeGradEXT, - TExtension::EXT_shader_texture_lod, + std::array{{TExtension::EXT_shader_texture_lod}}, BuiltInParameters::p00K20B20B20B, 4, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTextureCubeGradEXT, + false); +constexpr const TFunction textureVideoWEBGL_00y10B( + BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2, + BuiltInName::textureVideoWEBGL, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00y10B, + 2, + StaticType::Get(), + EOpTextureVideoWEBGL, false); constexpr const TFunction texture2D_00I10B00B( BuiltInId::texture2D_Sampler2D1_Float2_Float1, BuiltInName::texture2D, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00I10B00B10D, 3, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DBias, false); constexpr const TFunction texture2DProj_00I20B00B( BuiltInId::texture2DProj_Sampler2D1_Float3_Float1, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00I20B00B10D, 3, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProjBias, false); constexpr const TFunction texture2DProj_00I30B00B( BuiltInId::texture2DProj_Sampler2D1_Float4_Float1, BuiltInName::texture2DProj, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00I30B00B10D, 3, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTexture2DProjBias, false); constexpr const TFunction textureCube_00K20B00B( BuiltInId::textureCube_SamplerCube1_Float3_Float1, BuiltInName::textureCube, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00B, + 3, + StaticType::Get(), + EOpTextureCubeBias, + false); +constexpr const TFunction texture3D_00J20B00B( + BuiltInId::texture3D_Sampler3D1_Float3_Float1, + BuiltInName::texture3D, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J20B00B20D, + 3, + StaticType::Get(), + EOpTexture3DBias, + false); +constexpr const TFunction texture3DProj_00J30B00B( + BuiltInId::texture3DProj_Sampler3D1_Float4_Float1, + BuiltInName::texture3DProj, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J30B00B20D, + 3, + StaticType::Get(), + EOpTexture3DProjBias, + false); +constexpr const TFunction texture3DLod_00J20B00B( + BuiltInId::texture3DLod_Sampler3D1_Float3_Float1, + BuiltInName::texture3DLod, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J20B00B20D, + 3, + StaticType::Get(), + EOpTexture3DLod, + false); +constexpr const TFunction texture3DProjLod_00J30B00B( + BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1, + BuiltInName::texture3DProjLod, + std::array{{TExtension::OES_texture_3D}}, + BuiltInParameters::p00J30B00B20D, + 3, + StaticType::Get(), + EOpTexture3DProjLod, + false); +constexpr const TFunction texture2DLod_00I10B00B( + BuiltInId::texture2DLod_Sampler2D1_Float2_Float1, + BuiltInName::texture2DLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 3, + StaticType::Get(), + EOpTexture2DLodVS, + false); +constexpr const TFunction texture2DProjLod_00I20B00B( + BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1, + BuiltInName::texture2DProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B00B10D, + 3, + StaticType::Get(), + EOpTexture2DProjLodVS, + false); +constexpr const TFunction texture2DProjLod_00I30B00B( + BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1, + BuiltInName::texture2DProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B00B10D, + 3, + StaticType::Get(), + EOpTexture2DProjLodVS, + false); +constexpr const TFunction textureCubeLod_00K20B00B( + BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1, + BuiltInName::textureCubeLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00B, + 3, + StaticType::Get(), + EOpTextureCubeLodVS, + false); +constexpr const TFunction texture2DLodEXT_00I10B00B( + BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1, + BuiltInName::texture2DLodEXT, + std::array{{TExtension::EXT_shader_texture_lod}}, + BuiltInParameters::p00I10B00B10D, + 3, + StaticType::Get(), + EOpTexture2DLodEXTFS, + false); +constexpr const TFunction texture2DProjLodEXT_00I20B00B( + BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1, + BuiltInName::texture2DProjLodEXT, + std::array{{TExtension::EXT_shader_texture_lod}}, + BuiltInParameters::p00I20B00B10D, + 3, + StaticType::Get(), + EOpTexture2DProjLodEXTFS, + false); +constexpr const TFunction texture2DProjLodEXT_00I30B00B( + BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1, + BuiltInName::texture2DProjLodEXT, + std::array{{TExtension::EXT_shader_texture_lod}}, + BuiltInParameters::p00I30B00B10D, + 3, + StaticType::Get(), + EOpTexture2DProjLodEXTFS, + false); +constexpr const TFunction textureCubeLodEXT_00K20B00B( + BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1, + BuiltInName::textureCubeLodEXT, + std::array{{TExtension::EXT_shader_texture_lod}}, + BuiltInParameters::p00K20B00B, + 3, + StaticType::Get(), + EOpTextureCubeLodEXTFS, + false); +constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B00B20D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B00B20D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B00B20D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B00B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f30B10B10B10D, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00k30B(BuiltInId::texture_SamplerCubeArray1_Float4, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00s30B(BuiltInId::texture_ISamplerCubeArray1_Float4, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00x30B(BuiltInId::texture_USamplerCubeArray1_Float4, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00l30B00B( + BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00l30B00B, + 3, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction textureExt_00k30B( + BuiltInId::textureExt_SamplerCubeArray1_Float4, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction textureExt_00s30B( + BuiltInId::textureExt_ISamplerCubeArray1_Float4, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction textureExt_00x30B( + BuiltInId::textureExt_USamplerCubeArray1_Float4, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction textureExt_00l30B00B( + BuiltInId::textureExt_SamplerCubeArrayShadow1_Float4_Float1, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00l30B00B, + 3, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2, + BuiltInName::texture, + std::array{ + {TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M10B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2, + BuiltInName::texture, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N10B00B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2, + BuiltInName::texture, + std::array{ + {TExtension::ARB_texture_rectangle}}, + BuiltInParameters::p00O10B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction texture_00y10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00y10B, + 2, + StaticType::Get(), + EOpTexture, + false); +constexpr const TFunction textureProj_00I20B( + BuiltInId::textureProj_Sampler2D1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00R20B( + BuiltInId::textureProj_ISampler2D1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00X20B( + BuiltInId::textureProj_USampler2D1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00I30B( + BuiltInId::textureProj_Sampler2D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00R30B( + BuiltInId::textureProj_ISampler2D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00X30B( + BuiltInId::textureProj_USampler2D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00J30B( + BuiltInId::textureProj_Sampler3D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B00B20D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00S30B( + BuiltInId::textureProj_ISampler3D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B00B20D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00Y30B( + BuiltInId::textureProj_USampler3D1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B00B20D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00d30B( + BuiltInId::textureProj_Sampler2DShadow1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B00B10D, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00M20B( + BuiltInId::textureProj_SamplerExternalOES1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M20B00B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00M30B( + BuiltInId::textureProj_SamplerExternalOES1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M30B00B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00N20B( + BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N20B00B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00N30B( + BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N30B00B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00O20B( + BuiltInId::textureProj_Sampler2DRect1_Float3, + BuiltInName::textureProj, + std::array{{TExtension::ARB_texture_rectangle}}, + BuiltInParameters::p00O20B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureProj_00O30B( + BuiltInId::textureProj_Sampler2DRect1_Float4, + BuiltInName::textureProj, + std::array{{TExtension::ARB_texture_rectangle}}, + BuiltInParameters::p00O30B, + 2, + StaticType::Get(), + EOpTextureProj, + false); +constexpr const TFunction textureLod_00I10B00B( + BuiltInId::textureLod_Sampler2D1_Float2_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00R10B00B( + BuiltInId::textureLod_ISampler2D1_Float2_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00X10B00B( + BuiltInId::textureLod_USampler2D1_Float2_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00J20B00B( + BuiltInId::textureLod_Sampler3D1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B00B20D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00S20B00B( + BuiltInId::textureLod_ISampler3D1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B00B20D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00Y20B00B( + BuiltInId::textureLod_USampler3D1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B00B20D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00K20B00B( + BuiltInId::textureLod_SamplerCube1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00T20B00B( + BuiltInId::textureLod_ISamplerCube1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00Z20B00B( + BuiltInId::textureLod_USamplerCube1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00L20B00B( + BuiltInId::textureLod_Sampler2DArray1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00U20B00B( + BuiltInId::textureLod_ISampler2DArray1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00a20B00B( + BuiltInId::textureLod_USampler2DArray1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00d20B00B( + BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B00B10D, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00k30B00B( + BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00s30B00B( + BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLod_00x30B00B( + BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1, + BuiltInName::textureLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLodExt_00k30B00B( + BuiltInId::textureLodExt_SamplerCubeArray1_Float4_Float1, + BuiltInName::textureLodExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLodExt_00s30B00B( + BuiltInId::textureLodExt_ISamplerCubeArray1_Float4_Float1, + BuiltInName::textureLodExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureLodExt_00x30B00B( + BuiltInId::textureLodExt_USamplerCubeArray1_Float4_Float1, + BuiltInName::textureLodExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B00B, + 3, + StaticType::Get(), + EOpTextureLod, + false); +constexpr const TFunction textureSize_00I00D( + BuiltInId::textureSize_Sampler2D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00R00D( + BuiltInId::textureSize_ISampler2D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00X00D( + BuiltInId::textureSize_USampler2D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00J00D( + BuiltInId::textureSize_Sampler3D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00S00D( + BuiltInId::textureSize_ISampler3D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00Y00D( + BuiltInId::textureSize_USampler3D1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00K00D( + BuiltInId::textureSize_SamplerCube1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00T00D( + BuiltInId::textureSize_ISamplerCube1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00Z00D( + BuiltInId::textureSize_USamplerCube1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00L00D( + BuiltInId::textureSize_Sampler2DArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00U00D( + BuiltInId::textureSize_ISampler2DArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00a00D( + BuiltInId::textureSize_USampler2DArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00d00D( + BuiltInId::textureSize_Sampler2DShadow1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00e00D( + BuiltInId::textureSize_SamplerCubeShadow1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00f00D( + BuiltInId::textureSize_Sampler2DArrayShadow1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00k00D( + BuiltInId::textureSize_SamplerCubeArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00s00D( + BuiltInId::textureSize_ISamplerCubeArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00x00D( + BuiltInId::textureSize_USamplerCubeArray1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00l00D( + BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00l00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00k00D( + BuiltInId::textureSizeExt_SamplerCubeArray1_Int1, + BuiltInName::textureSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00s00D( + BuiltInId::textureSizeExt_ISamplerCubeArray1_Int1, + BuiltInName::textureSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00x00D( + BuiltInId::textureSizeExt_USamplerCubeArray1_Int1, + BuiltInName::textureSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00l00D( + BuiltInId::textureSizeExt_SamplerCubeArrayShadow1_Int1, + BuiltInName::textureSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00l00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00j(BuiltInId::textureSize_SamplerBuffer1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00j00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00r(BuiltInId::textureSize_ISamplerBuffer1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00r00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00w(BuiltInId::textureSize_USamplerBuffer1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00w00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00j( + BuiltInId::textureSizeExt_SamplerBuffer1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00j00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00r( + BuiltInId::textureSizeExt_ISamplerBuffer1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00r00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00w( + BuiltInId::textureSizeExt_USamplerBuffer1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00w00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00P10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00V10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1, + BuiltInName::textureSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00b10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00P( + BuiltInId::textureSizeExt_Sampler2DMS1, + BuiltInName::textureSizeExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00P10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00V( + BuiltInId::textureSizeExt_ISampler2DMS1, + BuiltInName::textureSizeExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00V10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00b( + BuiltInId::textureSizeExt_USampler2DMS1, + BuiltInName::textureSizeExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00b10D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00Q( + BuiltInId::textureSizeExt_Sampler2DMSArray1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00Q20D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00W( + BuiltInId::textureSizeExt_ISampler2DMSArray1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00W20D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSizeExt_00c( + BuiltInId::textureSizeExt_USampler2DMSArray1, + BuiltInName::textureSizeExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00c20D00D, + 1, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00M00D( + BuiltInId::textureSize_SamplerExternalOES1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureSize_00N00D( + BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1, + BuiltInName::textureSize, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N00D, + 2, + StaticType::Get(), + EOpTextureSize, + false); +constexpr const TFunction textureProjLod_00I20B00B( + BuiltInId::textureProjLod_Sampler2D1_Float3_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00R20B00B( + BuiltInId::textureProjLod_ISampler2D1_Float3_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00X20B00B( + BuiltInId::textureProjLod_USampler2D1_Float3_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00I30B00B( + BuiltInId::textureProjLod_Sampler2D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00R30B00B( + BuiltInId::textureProjLod_ISampler2D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00X30B00B( + BuiltInId::textureProjLod_USampler2D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00J30B00B( + BuiltInId::textureProjLod_Sampler3D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00S30B00B( + BuiltInId::textureProjLod_ISampler3D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00Y30B00B( + BuiltInId::textureProjLod_USampler3D1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction textureProjLod_00d30B00B( + BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1, + BuiltInName::textureProjLod, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjLod, + false); +constexpr const TFunction texelFetch_00I10D00D( + BuiltInId::texelFetch_Sampler2D1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00R10D00D( + BuiltInId::texelFetch_ISampler2D1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00X10D00D( + BuiltInId::texelFetch_USampler2D1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00J20D00D( + BuiltInId::texelFetch_Sampler3D1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20D00D20D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00S20D00D( + BuiltInId::texelFetch_ISampler3D1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20D00D20D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00Y20D00D( + BuiltInId::texelFetch_USampler3D1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20D00D20D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00L20D00D( + BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00U20D00D( + BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00a20D00D( + BuiltInId::texelFetch_USampler2DArray1_Int3_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20D00D10D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00j00D( + BuiltInId::texelFetch_SamplerBuffer1_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00j00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00r00D( + BuiltInId::texelFetch_ISamplerBuffer1_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00r00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00w00D( + BuiltInId::texelFetch_USamplerBuffer1_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00w00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00j00D( + BuiltInId::texelFetchExt_SamplerBuffer1_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00j00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00r00D( + BuiltInId::texelFetchExt_ISamplerBuffer1_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00r00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00w00D( + BuiltInId::texelFetchExt_USamplerBuffer1_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p00w00D, + 2, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00P10D00D( + BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00P10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00V10D00D( + BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00V10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00b10D00D( + BuiltInId::texelFetch_USampler2DMS1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00b10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00P10D00D( + BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00P10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00V10D00D( + BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00V10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00b10D00D( + BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::ANGLE_texture_multisample}}, + BuiltInParameters::p00b10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00Q20D00D( + BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00Q20D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00W20D00D( + BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00W20D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetchExt_00c20D00D( + BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1, + BuiltInName::texelFetchExt, + std::array{{TExtension::OES_texture_storage_multisample_2d_array}}, + BuiltInParameters::p00c20D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00M10D00D( + BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction texelFetch_00N10D00D( + BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1, + BuiltInName::texelFetch, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N10D00D, + 3, + StaticType::Get(), + EOpTexelFetch, + false); +constexpr const TFunction textureGrad_00I10B10B10B( + BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00R10B10B10B( + BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00X10B10B10B( + BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00J20B20B20B( + BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B20B20B20D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00S20B20B20B( + BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B20B20B20D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00Y20B20B20B( + BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B20B20B20D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00K20B20B20B( + BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00T20B20B20B( + BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00Z20B20B20B( + BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00d20B10B10B( + BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00e30B20B20B( + BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00L20B10B10B( + BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00U20B10B10B( + BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00a20B10B10B( + BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00f30B10B10B( + BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f30B10B10B10D, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00k30B20B20B( + BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00s30B20B20B( + BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGrad_00x30B20B20B( + BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGradExt_00k30B20B20B( + BuiltInId::textureGradExt_SamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGradExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGradExt_00s30B20B20B( + BuiltInId::textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGradExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureGradExt_00x30B20B20B( + BuiltInId::textureGradExt_USamplerCubeArray1_Float4_Float3_Float3, + BuiltInName::textureGradExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B20B20B, + 4, + StaticType::Get(), + EOpTextureGrad, + false); +constexpr const TFunction textureProjGrad_00I20B10B10B( + BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00R20B10B10B( + BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00X20B10B10B( + BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00I30B10B10B( + BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00R30B10B10B( + BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00X30B10B10B( + BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00J30B20B20B( + BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B20B20B20D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00S30B20B20B( + BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B20B20B20D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00Y30B20B20B( + BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B20B20B20D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction textureProjGrad_00d30B10B10B( + BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2, + BuiltInName::textureProjGrad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B10B10B10D, + 4, + StaticType::Get(), + EOpTextureProjGrad, + false); +constexpr const TFunction texture_00I10B00B( + BuiltInId::texture_Sampler2D1_Float2_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00R10B00B( + BuiltInId::texture_ISampler2D1_Float2_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00X10B00B( + BuiltInId::texture_USampler2D1_Float2_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00J20B00B( + BuiltInId::texture_Sampler3D1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B00B20D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00S20B00B( + BuiltInId::texture_ISampler3D1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B00B20D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00Y20B00B( + BuiltInId::texture_USampler3D1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B00B20D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00K20B00B( + BuiltInId::texture_SamplerCube1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00K20B00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, + EOpTextureBias, + false); +constexpr const TFunction texture_00T20B00B( + BuiltInId::texture_ISamplerCube1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00Z20B00B( + BuiltInId::texture_USamplerCube1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00L20B00B( + BuiltInId::texture_Sampler2DArray1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00U20B00B( + BuiltInId::texture_ISampler2DArray1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00a20B00B( + BuiltInId::texture_USampler2DArray1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureProj_00I20B00B( + BuiltInId::textureProj_Sampler2D1_Float3_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00R20B00B( + BuiltInId::textureProj_ISampler2D1_Float3_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00X20B00B( + BuiltInId::textureProj_USampler2D1_Float3_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00I30B00B( + BuiltInId::textureProj_Sampler2D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00R30B00B( + BuiltInId::textureProj_ISampler2D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00X30B00B( + BuiltInId::textureProj_USampler2D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00J30B00B( + BuiltInId::textureProj_Sampler3D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00S30B00B( + BuiltInId::textureProj_ISampler3D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00Y30B00B( + BuiltInId::textureProj_USampler3D1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B00B20D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction texture_00d20B00B( + BuiltInId::texture_Sampler2DShadow1_Float3_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B00B10D, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00e30B00B( + BuiltInId::texture_SamplerCubeShadow1_Float4_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureProj_00d30B00B( + BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B00B10D, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction texture_00k30B00B( + BuiltInId::texture_SamplerCubeArray1_Float4_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00s30B00B( + BuiltInId::texture_ISamplerCubeArray1_Float4_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00x30B00B( + BuiltInId::texture_USamplerCubeArray1_Float4_Float1, + BuiltInName::texture, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureExt_00k30B00B( + BuiltInId::textureExt_SamplerCubeArray1_Float4_Float1, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureExt_00s30B00B( + BuiltInId::textureExt_ISamplerCubeArray1_Float4_Float1, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureExt_00x30B00B( + BuiltInId::textureExt_USamplerCubeArray1_Float4_Float1, + BuiltInName::textureExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction texture_00M10B00B( + BuiltInId::texture_SamplerExternalOES1_Float2_Float1, + BuiltInName::texture, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M10B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureProj_00M20B00B( + BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1, + BuiltInName::textureProj, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M20B00B, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00M30B00B( + BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::OES_EGL_image_external_essl3}}, + BuiltInParameters::p00M30B00B, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction texture_00N10B00B( + BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1, + BuiltInName::texture, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N10B00B, + 3, + StaticType::Get(), + EOpTextureBias, + false); +constexpr const TFunction textureProj_00N20B00B( + BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1, + BuiltInName::textureProj, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N20B00B, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureProj_00N30B00B( + BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1, + BuiltInName::textureProj, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p00N30B00B, + 3, + StaticType::Get(), + EOpTextureProjBias, + false); +constexpr const TFunction textureOffset_00I10B10D( + BuiltInId::textureOffset_Sampler2D1_Float2_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00R10B10D( + BuiltInId::textureOffset_ISampler2D1_Float2_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00X10B10D( + BuiltInId::textureOffset_USampler2D1_Float2_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00J20B20D( + BuiltInId::textureOffset_Sampler3D1_Float3_Int3, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B20D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00S20B20D( + BuiltInId::textureOffset_ISampler3D1_Float3_Int3, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B20D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00Y20B20D( + BuiltInId::textureOffset_USampler3D1_Float3_Int3, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B20D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00d20B10D( + BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00L20B10D( + BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00U20B10D( + BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureOffset_00a20B10D( + BuiltInId::textureOffset_USampler2DArray1_Float3_Int2, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10D00B, + 3, + StaticType::Get(), + EOpTextureOffset, + false); +constexpr const TFunction textureProjOffset_00I20B10D( + BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00R20B10D( + BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00X20B10D( + BuiltInId::textureProjOffset_USampler2D1_Float3_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00I30B10D( + BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00R30B10D( + BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00X30B10D( + BuiltInId::textureProjOffset_USampler2D1_Float4_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00J30B20D( + BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B20D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00S30B20D( + BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B20D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00Y30B20D( + BuiltInId::textureProjOffset_USampler3D1_Float4_Int3, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B20D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureProjOffset_00d30B10D( + BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B10D00B, + 3, + StaticType::Get(), + EOpTextureProjOffset, + false); +constexpr const TFunction textureLodOffset_00I10B00B10D( + BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00R10B00B10D( + BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00X10B00B10D( + BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00J20B00B20D( + BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B00B20D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00S20B00B20D( + BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B00B20D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00Y20B00B20D( + BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B00B20D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00d20B00B10D( + BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00L20B00B10D( + BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00U20B00B10D( + BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureLodOffset_00a20B00B10D( + BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2, + BuiltInName::textureLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00B10D, + 4, + StaticType::Get(), + EOpTextureLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00I20B00B10D( + BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00R20B00B10D( + BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00X20B00B10D( + BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00I30B00B10D( + BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00R30B00B10D( + BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00X30B00B10D( + BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00J30B00B20D( + BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B00B20D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00S30B00B20D( + BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B00B20D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00Y30B00B20D( + BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B00B20D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction textureProjLodOffset_00d30B00B10D( + BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2, + BuiltInName::textureProjLodOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B00B10D, + 4, + StaticType::Get(), + EOpTextureProjLodOffset, + false); +constexpr const TFunction texelFetchOffset_00I10D00D10D( + BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00R10D00D10D( + BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00X10D00D10D( + BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00J20D00D20D( + BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20D00D20D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00S20D00D20D( + BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20D00D20D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00Y20D00D20D( + BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20D00D20D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00L20D00D10D( + BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00U20D00D10D( + BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction texelFetchOffset_00a20D00D10D( + BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2, + BuiltInName::texelFetchOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20D00D10D, + 4, + StaticType::Get(), + EOpTexelFetchOffset, + false); +constexpr const TFunction textureGradOffset_00I10B10B10B10D( + BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00R10B10B10B10D( + BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00X10B10B10B10D( + BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00J20B20B20B20D( + BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B20B20B20D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00S20B20B20B20D( + BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B20B20B20D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00Y20B20B20B20D( + BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B20B20B20D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00d20B10B10B10D( + BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00L20B10B10B10D( + BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00U20B10B10B10D( + BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00a20B10B10B10D( + BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureGradOffset_00f30B10B10B10D( + BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2, + BuiltInName::textureGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f30B10B10B10D, + 5, + StaticType::Get(), + EOpTextureGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00I20B10B10B10D( + BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00R20B10B10B10D( + BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00X20B10B10B10D( + BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00I30B10B10B10D( + BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00R30B10B10B10D( + BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00X30B10B10B10D( + BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00J30B20B20B20D( + BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B20B20B20D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00S30B20B20B20D( + BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B20B20B20D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D( + BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B20B20B20D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureProjGradOffset_00d30B10B10B10D( + BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2, + BuiltInName::textureProjGradOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B10B10B10D, + 5, + StaticType::Get(), + EOpTextureProjGradOffset, + false); +constexpr const TFunction textureOffset_00I10B10D00B( + BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00R10B10D00B( + BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00X10B10D00B( + BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00J20B20D00B( + BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J20B20D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00S20B20D00B( + BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S20B20D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00Y20B20D00B( + BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y20B20D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00d20B10D00B( + BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d20B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00L20B10D00B( + BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00U20B10D00B( + BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureOffset_00a20B10D00B( + BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1, + BuiltInName::textureOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10D00B, + 4, + StaticType::Get(), + EOpTextureOffsetBias, + false); +constexpr const TFunction textureProjOffset_00I20B10D00B( + BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I20B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00R20B10D00B( + BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R20B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00X20B10D00B( + BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X20B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00I30B10D00B( + BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I30B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00R30B10D00B( + BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R30B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00X30B10D00B( + BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X30B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00J30B20D00B( + BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00J30B20D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00S30B20D00B( + BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00S30B20D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00Y30B20D00B( + BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Y30B20D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureProjOffset_00d30B10D00B( + BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1, + BuiltInName::textureProjOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d30B10D00B, + 4, + StaticType::Get(), + EOpTextureProjOffsetBias, + false); +constexpr const TFunction textureGather_00I10B( + BuiltInId::textureGather_Sampler2D1_Float2, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00R10B( + BuiltInId::textureGather_ISampler2D1_Float2, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00X10B( + BuiltInId::textureGather_USampler2D1_Float2, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00I10B00D( + BuiltInId::textureGather_Sampler2D1_Float2_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00R10B00D( + BuiltInId::textureGather_ISampler2D1_Float2_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00X10B00D( + BuiltInId::textureGather_USampler2D1_Float2_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00L20B( + BuiltInId::textureGather_Sampler2DArray1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00U20B( + BuiltInId::textureGather_ISampler2DArray1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00a20B( + BuiltInId::textureGather_USampler2DArray1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00B10D, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00L20B00D( + BuiltInId::textureGather_Sampler2DArray1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00U20B00D( + BuiltInId::textureGather_ISampler2DArray1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00a20B00D( + BuiltInId::textureGather_USampler2DArray1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00K20B( + BuiltInId::textureGather_SamplerCube1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00T20B( + BuiltInId::textureGather_ISamplerCube1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00Z20B( + BuiltInId::textureGather_USamplerCube1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00K20B00D( + BuiltInId::textureGather_SamplerCube1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00K20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00T20B00D( + BuiltInId::textureGather_ISamplerCube1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00T20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00Z20B00D( + BuiltInId::textureGather_USamplerCube1_Float3_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00Z20B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00k30B( + BuiltInId::textureGather_SamplerCubeArray1_Float4, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00s30B( + BuiltInId::textureGather_ISamplerCubeArray1_Float4, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00x30B( + BuiltInId::textureGather_USamplerCubeArray1_Float4, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00k30B00D( + BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00k30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00s30B00D( + BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00s30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00x30B00D( + BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00x30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00l30B00B( + BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00l30B00B, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00k30B( + BuiltInId::textureGatherExt_SamplerCubeArray1_Float4, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00s30B( + BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00x30B( + BuiltInId::textureGatherExt_USamplerCubeArray1_Float4, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00k30B00D( + BuiltInId::textureGatherExt_SamplerCubeArray1_Float4_Int1, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00k30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00s30B00D( + BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4_Int1, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00s30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00x30B00D( + BuiltInId::textureGatherExt_USamplerCubeArray1_Float4_Int1, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00x30B00D, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherExt_00l30B00B( + BuiltInId::textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1, + BuiltInName::textureGatherExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p00l30B00B, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00d10B( + BuiltInId::textureGather_Sampler2DShadow1_Float2, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d10B00B10Dx4, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00d10B00B( + BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d10B00B10Dx4, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00f20B( + BuiltInId::textureGather_Sampler2DArrayShadow1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f20B00B10Dx4, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00f20B00B( + BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f20B00B10Dx4, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00e20B( + BuiltInId::textureGather_SamplerCubeShadow1_Float3, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e20B00B, + 2, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGather_00e20B00B( + BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1, + BuiltInName::textureGather, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00e20B00B, + 3, + StaticType::Get(), + EOpTextureGather, + false); +constexpr const TFunction textureGatherOffset_00I10B10D( + BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00R10B10D( + BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00X10B10D( + BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00L20B10D( + BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00U20B10D( + BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00a20B10D( + BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10D00B, + 3, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00d10B00B10D( + BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d10B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00f20B00B10D( + BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f20B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffset, + false); +constexpr const TFunction textureGatherOffset_00I10B10D00D( + BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffset_00R10B10D00D( + BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffset_00X10B10D00D( + BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffset_00L20B10D00D( + BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffset_00U20B10D00D( + BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffset_00a20B10D00D( + BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1, + BuiltInName::textureGatherOffset, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10D00D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetComp, + false); +constexpr const TFunction textureGatherOffsets_00I10B10Dx4( + BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00R10B10Dx4( + BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00X10B10Dx4( + BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00L20B10Dx4( + BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00U20B10Dx4( + BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00a20B10Dx4( + BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00d10B00B10Dx4( + BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00d10B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00f20B00B10Dx4( + BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00f20B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx4( + BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00I10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx4( + BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00R10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx4( + BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00X10B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx4( + BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00L20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx4( + BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00U20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx4( + BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00a20B10Dx400D, + 3, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00d10B00B10Dx4( + BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00d10B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsetsExt_00f20B00B10Dx4( + BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00f20B00B10Dx4, + 4, + StaticType::Get(), + EOpTextureGatherOffsets, + false); +constexpr const TFunction textureGatherOffsets_00I10B10Dx400D( + BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00I10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsets_00R10B10Dx400D( + BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00R10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsets_00X10B10Dx400D( + BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00X10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsets_00L20B10Dx400D( + BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00L20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsets_00U20B10Dx400D( + BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00U20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsets_00a20B10Dx400D( + BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsets, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00a20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx400D( + BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00I10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx400D( + BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00R10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx400D( + BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00X10B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx400D( + BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00L20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx400D( + BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00U20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx400D( + BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1, + BuiltInName::textureGatherOffsetsExt, + std::array{{TExtension::EXT_gpu_shader5}}, + BuiltInParameters::p00a20B10Dx400D, + 4, + StaticType::Get(), + EOpTextureGatherOffsetsComp, + false); +constexpr const TFunction rgb_2_yuv_20B00H( + BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1, + BuiltInName::rgb_2_yuv, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p20B00H, + 2, + StaticType::Get(), + EOpRgb_2_yuv, + false); +constexpr const TFunction yuv_2_rgb_20B00H( + BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1, + BuiltInName::yuv_2_rgb, + std::array{{TExtension::EXT_YUV_target}}, + BuiltInParameters::p20B00H, + 2, + StaticType::Get(), + EOpYuv_2_rgb, false); constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1, BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2, BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, + std::array{ + {TExtension::OES_standard_derivatives}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3, BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4, BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1, BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2, BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, + std::array{ + {TExtension::OES_standard_derivatives}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3, BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4, BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1, BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2, BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, + std::array{ + {TExtension::OES_standard_derivatives}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3, BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4, BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, + std::array{ + {TExtension::OES_standard_derivatives}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFwidth, false); -constexpr const TFunction texture2DLodEXT_00I10B00B( - BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1, - BuiltInName::texture2DLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLodEXT_00I20B00B( - BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1, - BuiltInName::texture2DProjLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLodEXT_00I30B00B( - BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1, - BuiltInName::texture2DProjLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCubeLodEXT_00K20B00B( - BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1, - BuiltInName::textureCubeLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DEXT_00d20B( - BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3, - BuiltInName::shadow2DEXT, - TExtension::EXT_shadow_samplers, - BuiltInParameters::p00d20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DProjEXT_00d30B( - BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4, - BuiltInName::shadow2DProjEXT, - TExtension::EXT_shadow_samplers, - BuiltInParameters::p00d30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3D_00J20B( - BuiltInId::texture3D_Sampler3D1_Float3, - BuiltInName::texture3D, - TExtension::OES_texture_3D, - BuiltInParameters::p00J20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProj_00J30B( - BuiltInId::texture3DProj_Sampler3D1_Float4, - BuiltInName::texture3DProj, - TExtension::OES_texture_3D, - BuiltInParameters::p00J30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3D_00J20B00B( - BuiltInId::texture3D_Sampler3D1_Float3_Float1, - BuiltInName::texture3D, - TExtension::OES_texture_3D, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProj_00J30B00B( - BuiltInId::texture3DProj_Sampler3D1_Float4_Float1, - BuiltInName::texture3DProj, - TExtension::OES_texture_3D, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DLod_00J20B00B( - BuiltInId::texture3DLod_Sampler3D1_Float3_Float1, - BuiltInName::texture3DLod, - TExtension::OES_texture_3D, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProjLod_00J30B00B( - BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1, - BuiltInName::texture3DProjLod, - TExtension::OES_texture_3D, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DLod_00I10B00B( - BuiltInId::texture2DLod_Sampler2D1_Float2_Float1, - BuiltInName::texture2DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLod_00I20B00B( - BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1, - BuiltInName::texture2DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLod_00I30B00B( - BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1, - BuiltInName::texture2DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCubeLod_00K20B00B( - BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1, - BuiltInName::textureCubeLod, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I20B( - BuiltInId::textureProj_Sampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R20B( - BuiltInId::textureProj_ISampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X20B( - BuiltInId::textureProj_USampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I30B( - BuiltInId::textureProj_Sampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R30B( - BuiltInId::textureProj_ISampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X30B( - BuiltInId::textureProj_USampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00J30B( - BuiltInId::textureProj_Sampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00S30B( - BuiltInId::textureProj_ISampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00Y30B( - BuiltInId::textureProj_USampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00d30B( - BuiltInId::textureProj_Sampler2DShadow1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00I10B00B( - BuiltInId::textureLod_Sampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00R10B00B( - BuiltInId::textureLod_ISampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00X10B00B( - BuiltInId::textureLod_USampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00J20B00B( - BuiltInId::textureLod_Sampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00S20B00B( - BuiltInId::textureLod_ISampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00Y20B00B( - BuiltInId::textureLod_USampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00K20B00B( - BuiltInId::textureLod_SamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00T20B00B( - BuiltInId::textureLod_ISamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00Z20B00B( - BuiltInId::textureLod_USamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00L20B00B( - BuiltInId::textureLod_Sampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00U20B00B( - BuiltInId::textureLod_ISampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00a20B00B( - BuiltInId::textureLod_USampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00d20B00B( - BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00I00D( - BuiltInId::textureSize_Sampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00I00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00R00D( - BuiltInId::textureSize_ISampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00R00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00X00D( - BuiltInId::textureSize_USampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00X00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00J00D( - BuiltInId::textureSize_Sampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00J00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00S00D( - BuiltInId::textureSize_ISampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00S00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00Y00D( - BuiltInId::textureSize_USampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00Y00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00K00D( - BuiltInId::textureSize_SamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00K00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00T00D( - BuiltInId::textureSize_ISamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00T00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00Z00D( - BuiltInId::textureSize_USamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00Z00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00L00D( - BuiltInId::textureSize_Sampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00L00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00U00D( - BuiltInId::textureSize_ISampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00U00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00a00D( - BuiltInId::textureSize_USampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00a00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00d00D( - BuiltInId::textureSize_Sampler2DShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00d00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00e00D( - BuiltInId::textureSize_SamplerCubeShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00e00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00f00D( - BuiltInId::textureSize_Sampler2DArrayShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00f00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00I20B00B( - BuiltInId::textureProjLod_Sampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00R20B00B( - BuiltInId::textureProjLod_ISampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00X20B00B( - BuiltInId::textureProjLod_USampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00I30B00B( - BuiltInId::textureProjLod_Sampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00R30B00B( - BuiltInId::textureProjLod_ISampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00X30B00B( - BuiltInId::textureProjLod_USampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00J30B00B( - BuiltInId::textureProjLod_Sampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00S30B00B( - BuiltInId::textureProjLod_ISampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00Y30B00B( - BuiltInId::textureProjLod_USampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00d30B00B( - BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00I10D00D( - BuiltInId::texelFetch_Sampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00I10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00R10D00D( - BuiltInId::texelFetch_ISampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00R10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00X10D00D( - BuiltInId::texelFetch_USampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00X10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00J20D00D( - BuiltInId::texelFetch_Sampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00J20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00S20D00D( - BuiltInId::texelFetch_ISampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00S20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00Y20D00D( - BuiltInId::texelFetch_USampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00L20D00D( - BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00L20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00U20D00D( - BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00U20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00a20D00D( - BuiltInId::texelFetch_USampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00a20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00I10B10B10B( - BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00R10B10B10B( - BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00X10B10B10B( - BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00J20B20B20B( - BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00S20B20B20B( - BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00Y20B20B20B( - BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00K20B20B20B( - BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00T20B20B20B( - BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00Z20B20B20B( - BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00d20B10B10B( - BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00e30B20B20B( - BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00L20B10B10B( - BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00U20B10B10B( - BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00a20B10B10B( - BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00f30B10B10B( - BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00I20B10B10B( - BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00R20B10B10B( - BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00X20B10B10B( - BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00I30B10B10B( - BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00R30B10B10B( - BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00X30B10B10B( - BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00J30B20B20B( - BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00S30B20B20B( - BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00Y30B20B20B( - BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00d30B10B10B( - BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00P10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00V10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00b10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00P( - BuiltInId::textureSizeExt_Sampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00P10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00V( - BuiltInId::textureSizeExt_ISampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00V10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00b( - BuiltInId::textureSizeExt_USampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00b10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00Q( - BuiltInId::textureSizeExt_Sampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00Q20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00W( - BuiltInId::textureSizeExt_ISampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00W20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00c( - BuiltInId::textureSizeExt_USampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00c20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00k00D( - BuiltInId::textureSize_SamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00k00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00s00D( - BuiltInId::textureSize_ISamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00s00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00x00D( - BuiltInId::textureSize_USamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00x00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00l00D( - BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00l00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00k30B(BuiltInId::texture_SamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00s30B(BuiltInId::texture_ISamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00x30B(BuiltInId::texture_USamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00k30B00B( - BuiltInId::texture_SamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00s30B00B( - BuiltInId::texture_ISamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00x30B00B( - BuiltInId::texture_USamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00l30B00B( - BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00l30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00k30B00B( - BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00s30B00B( - BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00x30B00B( - BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00k30B20B20B( - BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00s30B20B20B( - BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00x30B20B20B( - BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00k30B( - BuiltInId::textureGather_SamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00s30B( - BuiltInId::textureGather_ISamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00x30B( - BuiltInId::textureGather_USamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00k30B00D( - BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00s30B00D( - BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00x30B00D( - BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00l30B00B( - BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00l30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00j(BuiltInId::textureSize_SamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00j00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00r(BuiltInId::textureSize_ISamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00r00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00w(BuiltInId::textureSize_USamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00w00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00j00D( - BuiltInId::texelFetch_SamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00j00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00r00D( - BuiltInId::texelFetch_ISamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00r00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00w00D( - BuiltInId::texelFetch_USamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00w00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00P10D00D( - BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00P10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00V10D00D( - BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00V10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00b10D00D( - BuiltInId::texelFetch_USampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00b10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00P10D00D( - BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00P10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00V10D00D( - BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00V10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00b10D00D( - BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00b10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00Q20D00D( - BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00Q20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00W20D00D( - BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00W20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00c20D00D( - BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00c20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00I10B00B( - BuiltInId::texture_Sampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00R10B00B( - BuiltInId::texture_ISampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00X10B00B( - BuiltInId::texture_USampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00J20B00B( - BuiltInId::texture_Sampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00S20B00B( - BuiltInId::texture_ISampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Y20B00B( - BuiltInId::texture_USampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00K20B00B( - BuiltInId::texture_SamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00T20B00B( - BuiltInId::texture_ISamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Z20B00B( - BuiltInId::texture_USamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00L20B00B( - BuiltInId::texture_Sampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00U20B00B( - BuiltInId::texture_ISampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00a20B00B( - BuiltInId::texture_USampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I20B00B( - BuiltInId::textureProj_Sampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R20B00B( - BuiltInId::textureProj_ISampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X20B00B( - BuiltInId::textureProj_USampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I30B00B( - BuiltInId::textureProj_Sampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R30B00B( - BuiltInId::textureProj_ISampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X30B00B( - BuiltInId::textureProj_USampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00J30B00B( - BuiltInId::textureProj_Sampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00S30B00B( - BuiltInId::textureProj_ISampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00Y30B00B( - BuiltInId::textureProj_USampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00d20B00B( - BuiltInId::texture_Sampler2DShadow1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00e30B00B( - BuiltInId::texture_SamplerCubeShadow1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00d30B00B( - BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00M10B00B( - BuiltInId::texture_SamplerExternalOES1_Float2_Float1, - BuiltInName::texture, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M20B00B( - BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M30B00B( - BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00N10B00B( - BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1, - BuiltInName::texture, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N20B00B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N30B00B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00I10B10D( - BuiltInId::textureOffset_Sampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00R10B10D( - BuiltInId::textureOffset_ISampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00X10B10D( - BuiltInId::textureOffset_USampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00J20B20D( - BuiltInId::textureOffset_Sampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00S20B20D( - BuiltInId::textureOffset_ISampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00Y20B20D( - BuiltInId::textureOffset_USampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00d20B10D( - BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00L20B10D( - BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00U20B10D( - BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00a20B10D( - BuiltInId::textureOffset_USampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I20B10D( - BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R20B10D( - BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X20B10D( - BuiltInId::textureProjOffset_USampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I30B10D( - BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R30B10D( - BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X30B10D( - BuiltInId::textureProjOffset_USampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00J30B20D( - BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00S30B20D( - BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00Y30B20D( - BuiltInId::textureProjOffset_USampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00d30B10D( - BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00I10B00B10D( - BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00R10B00B10D( - BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00X10B00B10D( - BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00J20B00B20D( - BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00S20B00B20D( - BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00Y20B00B20D( - BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00d20B00B10D( - BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00L20B00B10D( - BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00U20B00B10D( - BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00a20B00B10D( - BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00I20B00B10D( - BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00R20B00B10D( - BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00X20B00B10D( - BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00I30B00B10D( - BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00R30B00B10D( - BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00X30B00B10D( - BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00J30B00B20D( - BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00S30B00B20D( - BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00Y30B00B20D( - BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00d30B00B10D( - BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00I10D00D10D( - BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00R10D00D10D( - BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00X10D00D10D( - BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00J20D00D20D( - BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00S20D00D20D( - BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00Y20D00D20D( - BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00L20D00D10D( - BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00U20D00D10D( - BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00a20D00D10D( - BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00I10B10B10B10D( - BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00R10B10B10B10D( - BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00X10B10B10B10D( - BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00J20B20B20B20D( - BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00S20B20B20B20D( - BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00Y20B20B20B20D( - BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00d20B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00L20B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00U20B10B10B10D( - BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00a20B10B10B10D( - BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00f30B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00I20B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00R20B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00X20B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00I30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00R30B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00X30B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00J30B20B20B20D( - BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00S30B20B20B20D( - BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D( - BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00d30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00I10B10D00B( - BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00R10B10D00B( - BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00X10B10D00B( - BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00J20B20D00B( - BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00S20B20D00B( - BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00Y20B20D00B( - BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00d20B10D00B( - BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00L20B10D00B( - BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00U20B10D00B( - BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00a20B10D00B( - BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I20B10D00B( - BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R20B10D00B( - BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X20B10D00B( - BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I30B10D00B( - BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R30B10D00B( - BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X30B10D00B( - BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00J30B20D00B( - BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00S30B20D00B( - BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00Y30B20D00B( - BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00d30B10D00B( - BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2, - BuiltInName::texture, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M20B( - BuiltInId::textureProj_SamplerExternalOES1_Float3, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M30B( - BuiltInId::textureProj_SamplerExternalOES1_Float4, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00M00D( - BuiltInId::textureSize_SamplerExternalOES1_Int1, - BuiltInName::textureSize, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00M10D00D( - BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2, - BuiltInName::texture, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N20B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N30B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction rgb_2_yuv_20B00H( - BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1, - BuiltInName::rgb_2_yuv, - TExtension::EXT_YUV_target, - BuiltInParameters::p20B00H, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction yuv_2_rgb_20B00H( - BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1, - BuiltInName::yuv_2_rgb, - TExtension::EXT_YUV_target, - BuiltInParameters::p20B00H, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00N00D( - BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1, - BuiltInName::textureSize, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00N10D00D( - BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00I10B( - BuiltInId::textureGather_Sampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00R10B( - BuiltInId::textureGather_ISampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00X10B( - BuiltInId::textureGather_USampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00I10B00D( - BuiltInId::textureGather_Sampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00R10B00D( - BuiltInId::textureGather_ISampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00X10B00D( - BuiltInId::textureGather_USampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00L20B( - BuiltInId::textureGather_Sampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00U20B( - BuiltInId::textureGather_ISampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00a20B( - BuiltInId::textureGather_USampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00L20B00D( - BuiltInId::textureGather_Sampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00U20B00D( - BuiltInId::textureGather_ISampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00a20B00D( - BuiltInId::textureGather_USampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00K20B( - BuiltInId::textureGather_SamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00T20B( - BuiltInId::textureGather_ISamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00Z20B( - BuiltInId::textureGather_USamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00K20B00D( - BuiltInId::textureGather_SamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00T20B00D( - BuiltInId::textureGather_ISamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00Z20B00D( - BuiltInId::textureGather_USamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00d10B( - BuiltInId::textureGather_Sampler2DShadow1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00d10B00B( - BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00f20B( - BuiltInId::textureGather_Sampler2DArrayShadow1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00f20B00B( - BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00e20B( - BuiltInId::textureGather_SamplerCubeShadow1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00e20B00B( - BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00I10B10D( - BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00R10B10D( - BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00X10B10D( - BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00L20B10D( - BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00U20B10D( - BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00a20B10D( - BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00d10B00B10D( - BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00f20B00B10D( - BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00I10B10D00D( - BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00R10B10D00D( - BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00X10B10D00D( - BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00L20B10D00D( - BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00U20B10D00D( - BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00a20B10D00D( - BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00I10B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00R10B10Dx4( - BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00X10B10Dx4( - BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00L20B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00U20B10Dx4( - BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00a20B10Dx4( - BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00d10B00B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00f20B00B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00I10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx4( - BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx4( - BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00L20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx4( - BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00U20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx4( - BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00d10B00B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00f20B00B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00I10B10Dx400D( - BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00R10B10Dx400D( - BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00X10B10Dx400D( - BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00L20B10Dx400D( - BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00U20B10Dx400D( - BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00a20B10Dx400D( - BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00I10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00R10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00X10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00L20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00U20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00a20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1, BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2, BuiltInName::dFdx, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3, BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4, BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpDFdx, false); constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1, BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2, BuiltInName::dFdy, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3, BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4, BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpDFdy, false); constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1, BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2, BuiltInName::fwidth, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3, BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4, BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, 1, StaticType::Get(), EOpFwidth, false); constexpr const TFunction interpolateAtCentroid_00B( BuiltInId::interpolateAtCentroid_Float1, BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p00B00B00B, + 1, + StaticType::Get(), + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroid_10B( BuiltInId::interpolateAtCentroid_Float2, BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroid_20B( BuiltInId::interpolateAtCentroid_Float3, BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroid_30B( BuiltInId::interpolateAtCentroid_Float4, BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p30B00B00B, + 1, + StaticType::Get(), + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtSample_00B00D( BuiltInId::interpolateAtSample_Float1_Int1, BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSample_10B00D( BuiltInId::interpolateAtSample_Float2_Int1, BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p10B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSample_20B00D( BuiltInId::interpolateAtSample_Float3_Int1, BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSample_30B00D( BuiltInId::interpolateAtSample_Float4_Int1, BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtOffset_00B10B( BuiltInId::interpolateAtOffset_Float1_Float2, BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffset_10B10B( BuiltInId::interpolateAtOffset_Float2_Float2, BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffset_20B10B( BuiltInId::interpolateAtOffset_Float3_Float2, BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p20B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffset_30B10B( BuiltInId::interpolateAtOffset_Float4_Float2, BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p30B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtCentroidExt_00B( BuiltInId::interpolateAtCentroidExt_Float1, BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_multisample_interpolation}}, + BuiltInParameters::p00B00B00B, + 1, + StaticType::Get(), + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroidExt_10B( BuiltInId::interpolateAtCentroidExt_Float2, BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p10B00B00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroidExt_20B( BuiltInId::interpolateAtCentroidExt_Float3, BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p20B20D, + std::array{{TExtension::OES_shader_multisample_interpolation}}, + BuiltInParameters::p20B00B00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtCentroidExt_30B( BuiltInId::interpolateAtCentroidExt_Float4, BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_multisample_interpolation}}, + BuiltInParameters::p30B00B00B, + 1, + StaticType::Get(), + EOpInterpolateAtCentroid, false); constexpr const TFunction interpolateAtSampleExt_00B00D( BuiltInId::interpolateAtSampleExt_Float1_Int1, BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p00B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSampleExt_10B00D( BuiltInId::interpolateAtSampleExt_Float2_Int1, BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p10B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSampleExt_20B00D( BuiltInId::interpolateAtSampleExt_Float3_Int1, BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p20B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtSampleExt_30B00D( BuiltInId::interpolateAtSampleExt_Float4_Int1, BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p30B00D, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtSample, false); constexpr const TFunction interpolateAtOffsetExt_00B10B( BuiltInId::interpolateAtOffsetExt_Float1_Float2, BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p00B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffsetExt_10B10B( BuiltInId::interpolateAtOffsetExt_Float2_Float2, BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p10B10B10B, + std::array{{TExtension::OES_shader_multisample_interpolation}}, + BuiltInParameters::p10B10B00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffsetExt_20B10B( BuiltInId::interpolateAtOffsetExt_Float3_Float2, BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p20B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction interpolateAtOffsetExt_30B10B( BuiltInId::interpolateAtOffsetExt_Float4_Float2, BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, + std::array{{TExtension::OES_shader_multisample_interpolation}}, BuiltInParameters::p30B10B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpInterpolateAtOffset, false); constexpr const TFunction atomicCounter_00G( BuiltInId::atomicCounter_AtomicCounter1, BuiltInName::atomicCounter, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00G, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpAtomicCounter, false); constexpr const TFunction atomicCounterIncrement_00G( BuiltInId::atomicCounterIncrement_AtomicCounter1, BuiltInName::atomicCounterIncrement, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00G, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpAtomicCounterIncrement, false); constexpr const TFunction atomicCounterDecrement_00G( BuiltInId::atomicCounterDecrement_AtomicCounter1, BuiltInName::atomicCounterDecrement, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00G, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpAtomicCounterDecrement, false); constexpr const TFunction atomicAdd_00E00E( BuiltInId::atomicAdd_UInt1_UInt1, BuiltInName::atomicAdd, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicAdd, false); constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1, BuiltInName::atomicAdd, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicAdd, false); constexpr const TFunction atomicMin_00E00E( BuiltInId::atomicMin_UInt1_UInt1, BuiltInName::atomicMin, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicMin, false); constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1, BuiltInName::atomicMin, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicMin, false); constexpr const TFunction atomicMax_00E00E( BuiltInId::atomicMax_UInt1_UInt1, BuiltInName::atomicMax, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicMax, false); constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1, BuiltInName::atomicMax, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicMax, false); constexpr const TFunction atomicAnd_00E00E( BuiltInId::atomicAnd_UInt1_UInt1, BuiltInName::atomicAnd, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicAnd, false); constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1, BuiltInName::atomicAnd, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicAnd, false); constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1, BuiltInName::atomicOr, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicOr, false); constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1, BuiltInName::atomicOr, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicOr, false); constexpr const TFunction atomicXor_00E00E( BuiltInId::atomicXor_UInt1_UInt1, BuiltInName::atomicXor, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicXor, false); constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1, BuiltInName::atomicXor, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicXor, false); constexpr const TFunction atomicExchange_00E00E( BuiltInId::atomicExchange_UInt1_UInt1, BuiltInName::atomicExchange, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 2, StaticType::Get(), EOpAtomicExchange, false); constexpr const TFunction atomicExchange_00D00D( BuiltInId::atomicExchange_Int1_Int1, BuiltInName::atomicExchange, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 2, StaticType::Get(), EOpAtomicExchange, false); constexpr const TFunction atomicCompSwap_00E00E00E( BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1, BuiltInName::atomicCompSwap, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00E00E00E, 3, StaticType::Get(), EOpAtomicCompSwap, false); constexpr const TFunction atomicCompSwap_00D00D00D( BuiltInId::atomicCompSwap_Int1_Int1_Int1, BuiltInName::atomicCompSwap, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p_io_00D00D00D, 3, StaticType::Get(), EOpAtomicCompSwap, false); constexpr const TFunction imageSize_00z(BuiltInId::imageSize_Image2D1, BuiltInName::imageSize, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00z10D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01A(BuiltInId::imageSize_IImage2D1, +constexpr const TFunction imageSize_01K(BuiltInId::imageSize_IImage2D1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01K10D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01B(BuiltInId::imageSize_UImage2D1, +constexpr const TFunction imageSize_01V(BuiltInId::imageSize_UImage2D1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01V10D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01C(BuiltInId::imageSize_Image3D1, +constexpr const TFunction imageSize_01A(BuiltInId::imageSize_Image3D1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01A20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01D(BuiltInId::imageSize_IImage3D1, +constexpr const TFunction imageSize_01L(BuiltInId::imageSize_IImage3D1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01L20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01E(BuiltInId::imageSize_UImage3D1, +constexpr const TFunction imageSize_01W(BuiltInId::imageSize_UImage3D1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01W20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01F(BuiltInId::imageSize_Image2DArray1, +constexpr const TFunction imageSize_01B(BuiltInId::imageSize_Image2DArray1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01B20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01G(BuiltInId::imageSize_IImage2DArray1, +constexpr const TFunction imageSize_01M(BuiltInId::imageSize_IImage2DArray1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01M20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01H(BuiltInId::imageSize_UImage2DArray1, +constexpr const TFunction imageSize_01X(BuiltInId::imageSize_UImage2DArray1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01X20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01I(BuiltInId::imageSize_ImageCube1, +constexpr const TFunction imageSize_01C(BuiltInId::imageSize_ImageCube1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01C20D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSize_01N(BuiltInId::imageSize_IImageCube1, + BuiltInName::imageSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01N20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01J(BuiltInId::imageSize_IImageCube1, +constexpr const TFunction imageSize_01Y(BuiltInId::imageSize_UImageCube1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01Y20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01K(BuiltInId::imageSize_UImageCube1, +constexpr const TFunction imageSize_01H(BuiltInId::imageSize_ImageCubeArray1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01H20D00B, + 1, + StaticType::Get(), + EOpImageSize, false); -constexpr const TFunction imageSize_01X(BuiltInId::imageSize_ImageCubeArray1, +constexpr const TFunction imageSize_01S(BuiltInId::imageSize_IImageCubeArray1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01S20D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSize_01d(BuiltInId::imageSize_UImageCubeArray1, + BuiltInName::imageSize, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01d20D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01Y(BuiltInId::imageSize_IImageCubeArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01Z(BuiltInId::imageSize_UImageCubeArray1, +constexpr const TFunction imageSizeExt_01H(BuiltInId::imageSizeExt_ImageCubeArray1, + BuiltInName::imageSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, + TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01H20D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSizeExt_01S(BuiltInId::imageSizeExt_IImageCubeArray1, + BuiltInName::imageSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, + TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01S20D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSizeExt_01d(BuiltInId::imageSizeExt_UImageCubeArray1, + BuiltInName::imageSizeExt, + std::array{ + {TExtension::OES_texture_cube_map_array, + TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01d20D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSize_01J(BuiltInId::imageSize_ImageBuffer1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01d(BuiltInId::imageSize_ImageBuffer1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01J00D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); -constexpr const TFunction imageSize_01e(BuiltInId::imageSize_IImageBuffer1, +constexpr const TFunction imageSize_01U(BuiltInId::imageSize_IImageBuffer1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01U00D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); constexpr const TFunction imageSize_01f(BuiltInId::imageSize_UImageBuffer1, BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01f00D00B, 1, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageSize, false); +constexpr const TFunction imageSizeExt_01J( + BuiltInId::imageSizeExt_ImageBuffer1, + BuiltInName::imageSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01J00D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSizeExt_01U( + BuiltInId::imageSizeExt_IImageBuffer1, + BuiltInName::imageSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01U00D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); +constexpr const TFunction imageSizeExt_01f( + BuiltInId::imageSizeExt_UImageBuffer1, + BuiltInName::imageSizeExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01f00D00B, + 1, + StaticType::Get(), + EOpImageSize, + false); constexpr const TFunction imageStore_00z10D30B( BuiltInId::imageStore_Image2D1_Int2_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00z10D30B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01A10D30D( + EOpImageStore, + false); +constexpr const TFunction imageStore_01K10D30D( BuiltInId::imageStore_IImage2D1_Int2_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01B10D30E( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01K10D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01V10D30E( BuiltInId::imageStore_UImage2D1_Int2_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01C20D30B( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01V10D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01A20D30B( BuiltInId::imageStore_Image3D1_Int3_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01D20D30D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01A20D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01L20D30D( BuiltInId::imageStore_IImage3D1_Int3_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01E20D30E( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01L20D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01W20D30E( BuiltInId::imageStore_UImage3D1_Int3_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01F20D30B( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01W20D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01B20D30B( BuiltInId::imageStore_Image2DArray1_Int3_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01G20D30D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01B20D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01M20D30D( BuiltInId::imageStore_IImage2DArray1_Int3_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01H20D30E( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01M20D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01X20D30E( BuiltInId::imageStore_UImage2DArray1_Int3_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01I20D30B( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01X20D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01C20D30B( BuiltInId::imageStore_ImageCube1_Int3_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01J20D30D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01C20D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01N20D30D( BuiltInId::imageStore_IImageCube1_Int3_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01K20D30E( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01N20D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01Y20D30E( BuiltInId::imageStore_UImageCube1_Int3_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01X20D30B( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01Y20D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01H20D30B( BuiltInId::imageStore_ImageCubeArray1_Int3_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01Y20D30D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01H20D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01S20D30D( BuiltInId::imageStore_IImageCubeArray1_Int3_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01Z20D30E( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01S20D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01d20D30E( BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01d00D30B( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01d20D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01H20D30B( + BuiltInId::imageStoreExt_ImageCubeArray1_Int3_Float4, + BuiltInName::imageStoreExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01H20D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01S20D30D( + BuiltInId::imageStoreExt_IImageCubeArray1_Int3_Int4, + BuiltInName::imageStoreExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01S20D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01d20D30E( + BuiltInId::imageStoreExt_UImageCubeArray1_Int3_UInt4, + BuiltInName::imageStoreExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01d20D30E, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01J00D30B( BuiltInId::imageStore_ImageBuffer1_Int1_Float4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01e00D30D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01J00D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStore_01U00D30D( BuiltInId::imageStore_IImageBuffer1_Int1_Int4, BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01U00D30D, + 3, + StaticType::Get(), + EOpImageStore, false); constexpr const TFunction imageStore_01f00D30E( BuiltInId::imageStore_UImageBuffer1_Int1_UInt4, BuiltInName::imageStore, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p01f00D30E, 3, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01J00D30B( + BuiltInId::imageStoreExt_ImageBuffer1_Int1_Float4, + BuiltInName::imageStoreExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01J00D30B, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01U00D30D( + BuiltInId::imageStoreExt_IImageBuffer1_Int1_Int4, + BuiltInName::imageStoreExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01U00D30D, + 3, + StaticType::Get(), + EOpImageStore, + false); +constexpr const TFunction imageStoreExt_01f00D30E( + BuiltInId::imageStoreExt_UImageBuffer1_Int1_UInt4, + BuiltInName::imageStoreExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01f00D30E, + 3, + StaticType::Get(), + EOpImageStore, false); constexpr const TFunction imageLoad_00z10D( BuiltInId::imageLoad_Image2D1_Int2, BuiltInName::imageLoad, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::p00z10D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01A10D(BuiltInId::imageLoad_IImage2D1_Int2, + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01K10D(BuiltInId::imageLoad_IImage2D1_Int2, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01K10D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); -constexpr const TFunction imageLoad_01B10D( +constexpr const TFunction imageLoad_01V10D( BuiltInId::imageLoad_UImage2D1_Int2, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01C20D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01V10D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01A20D( BuiltInId::imageLoad_Image3D1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01D20D(BuiltInId::imageLoad_IImage3D1_Int3, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01A20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01L20D(BuiltInId::imageLoad_IImage3D1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01L20D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); -constexpr const TFunction imageLoad_01E20D( +constexpr const TFunction imageLoad_01W20D( BuiltInId::imageLoad_UImage3D1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01F20D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01W20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01B20D( BuiltInId::imageLoad_Image2DArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01G20D(BuiltInId::imageLoad_IImage2DArray1_Int3, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01B20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01M20D(BuiltInId::imageLoad_IImage2DArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00B, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01M20D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); -constexpr const TFunction imageLoad_01H20D( +constexpr const TFunction imageLoad_01X20D( BuiltInId::imageLoad_UImage2DArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01I20D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01X20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01C20D( BuiltInId::imageLoad_ImageCube1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01J20D(BuiltInId::imageLoad_IImageCube1_Int3, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01C20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01N20D(BuiltInId::imageLoad_IImageCube1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01N20D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); -constexpr const TFunction imageLoad_01K20D( +constexpr const TFunction imageLoad_01Y20D( BuiltInId::imageLoad_UImageCube1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01X20D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01Y20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01H20D( BuiltInId::imageLoad_ImageCubeArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01Y20D(BuiltInId::imageLoad_IImageCubeArray1_Int3, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01H20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01S20D(BuiltInId::imageLoad_IImageCubeArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01S20D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); -constexpr const TFunction imageLoad_01Z20D( +constexpr const TFunction imageLoad_01d20D( BuiltInId::imageLoad_UImageCubeArray1_Int3, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01d00D( + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01d20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01H20D( + BuiltInId::imageLoadExt_ImageCubeArray1_Int3, + BuiltInName::imageLoadExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01H20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01S20D( + BuiltInId::imageLoadExt_IImageCubeArray1_Int3, + BuiltInName::imageLoadExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01S20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01d20D( + BuiltInId::imageLoadExt_UImageCubeArray1_Int3, + BuiltInName::imageLoadExt, + std::array{ + {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}}, + BuiltInParameters::p01d20D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01J00D( BuiltInId::imageLoad_ImageBuffer1_Int1, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01e00D(BuiltInId::imageLoad_IImageBuffer1_Int1, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01J00D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoad_01U00D(BuiltInId::imageLoad_IImageBuffer1_Int1, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01U00D00B, 2, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageLoad, false); constexpr const TFunction imageLoad_01f00D( BuiltInId::imageLoad_UImageBuffer1_Int1, BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01f00D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01J00D( + BuiltInId::imageLoadExt_ImageBuffer1_Int1, + BuiltInName::imageLoadExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01J00D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01U00D( + BuiltInId::imageLoadExt_IImageBuffer1_Int1, + BuiltInName::imageLoadExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01U00D00B, + 2, + StaticType::Get(), + EOpImageLoad, + false); +constexpr const TFunction imageLoadExt_01f00D( + BuiltInId::imageLoadExt_UImageBuffer1_Int1, + BuiltInName::imageLoadExt, + std::array{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}}, + BuiltInParameters::p01f00D00B, + 2, + StaticType::Get(), + EOpImageLoad, false); constexpr const TFunction imageAtomicAddExt_00z10D00E( BuiltInId::imageAtomicAddExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01A10D00E( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01K10D00E( BuiltInId::imageAtomicAddExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01V10D00E( BuiltInId::imageAtomicAddExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01A20D00E( + BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01L20D00E( + BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01W20D00E( + BuiltInId::imageAtomicAddExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01C20D00E( - BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01D20D00E( - BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01E20D00E( - BuiltInId::imageAtomicAddExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01I20D00E( - BuiltInId::imageAtomicAddExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01J20D00E( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01N20D00E( BuiltInId::imageAtomicAddExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Y20D00E( BuiltInId::imageAtomicAddExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01J00D00E( BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01U00D00E( BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01f00D00E( BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01F20D00E( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01B20D00E( BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01M20D00E( BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01H20D00E( - BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01X20D00E( - BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Y20D00E( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01H20D00E( + BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01S20D00E( BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01d20D00E( BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01D00D00E( BuiltInId::imageAtomicAddExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01O00D00E( BuiltInId::imageAtomicAddExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Z00D00E( BuiltInId::imageAtomicAddExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01E10D00E( BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01P10D00E( BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Q10D00E( - BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01a10D00E( - BuiltInId::imageAtomicAddExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01b10D00E( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01I10D00E( + BuiltInId::imageAtomicAddExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01T10D00E( BuiltInId::imageAtomicAddExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01e10D00E( BuiltInId::imageAtomicAddExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01F10D00D00E( BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Q10D00D00E( BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01b10D00D00E( BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01G20D00D00E( BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01R20D00D00E( BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01c20D00D00E( BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_00z10D00D( BuiltInId::imageAtomicAddExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01A10D00D( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01K10D00D( BuiltInId::imageAtomicAddExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01V10D00D( BuiltInId::imageAtomicAddExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01A20D00D( + BuiltInId::imageAtomicAddExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01L20D00D( + BuiltInId::imageAtomicAddExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01W20D00D( + BuiltInId::imageAtomicAddExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01C20D00D( - BuiltInId::imageAtomicAddExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01D20D00D( - BuiltInId::imageAtomicAddExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01E20D00D( - BuiltInId::imageAtomicAddExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01I20D00D( - BuiltInId::imageAtomicAddExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01J20D00D( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01N20D00D( BuiltInId::imageAtomicAddExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Y20D00D( BuiltInId::imageAtomicAddExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01J00D00D( BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01U00D00D( BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01f00D00D( BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01F20D00D( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01B20D00D( BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01M20D00D( BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01H20D00D( - BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01X20D00D( - BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Y20D00D( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01H20D00D( + BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01S20D00D( BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01d20D00D( BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01D00D00D( BuiltInId::imageAtomicAddExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01O00D00D( BuiltInId::imageAtomicAddExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Z00D00D( BuiltInId::imageAtomicAddExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01E10D00D( BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01P10D00D( BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Q10D00D( - BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicAddExt_01a10D00D( - BuiltInId::imageAtomicAddExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01b10D00D( + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01I10D00D( + BuiltInId::imageAtomicAddExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicAddExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01T10D00D( BuiltInId::imageAtomicAddExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01e10D00D( BuiltInId::imageAtomicAddExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01F10D00D00D( BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01Q10D00D00D( BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01b10D00D00D( BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01G20D00D00D( BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01R20D00D00D( BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, + false); +constexpr const TFunction imageAtomicAddExt_01c20D00D00D( BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAdd, false); constexpr const TFunction imageAtomicMinExt_00z10D00E( BuiltInId::imageAtomicMinExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01A10D00E( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01K10D00E( BuiltInId::imageAtomicMinExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01V10D00E( BuiltInId::imageAtomicMinExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01A20D00E( + BuiltInId::imageAtomicMinExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01L20D00E( + BuiltInId::imageAtomicMinExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01W20D00E( + BuiltInId::imageAtomicMinExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01C20D00E( - BuiltInId::imageAtomicMinExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01D20D00E( - BuiltInId::imageAtomicMinExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01E20D00E( - BuiltInId::imageAtomicMinExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01I20D00E( - BuiltInId::imageAtomicMinExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01J20D00E( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01N20D00E( BuiltInId::imageAtomicMinExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Y20D00E( BuiltInId::imageAtomicMinExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01J00D00E( BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01U00D00E( BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01f00D00E( BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01F20D00E( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01B20D00E( BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01M20D00E( BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01H20D00E( - BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01X20D00E( - BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Y20D00E( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01H20D00E( + BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01S20D00E( BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01d20D00E( BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01D00D00E( BuiltInId::imageAtomicMinExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01O00D00E( BuiltInId::imageAtomicMinExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Z00D00E( BuiltInId::imageAtomicMinExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01E10D00E( BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01P10D00E( BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Q10D00E( - BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01a10D00E( - BuiltInId::imageAtomicMinExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01b10D00E( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01I10D00E( + BuiltInId::imageAtomicMinExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01T10D00E( BuiltInId::imageAtomicMinExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01e10D00E( BuiltInId::imageAtomicMinExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01F10D00D00E( BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Q10D00D00E( BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01b10D00D00E( BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01G20D00D00E( BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01R20D00D00E( BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01c20D00D00E( BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_00z10D00D( BuiltInId::imageAtomicMinExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01A10D00D( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01K10D00D( BuiltInId::imageAtomicMinExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01V10D00D( BuiltInId::imageAtomicMinExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01A20D00D( + BuiltInId::imageAtomicMinExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01L20D00D( + BuiltInId::imageAtomicMinExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01W20D00D( + BuiltInId::imageAtomicMinExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01C20D00D( - BuiltInId::imageAtomicMinExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01D20D00D( - BuiltInId::imageAtomicMinExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01E20D00D( - BuiltInId::imageAtomicMinExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01I20D00D( - BuiltInId::imageAtomicMinExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01J20D00D( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01N20D00D( BuiltInId::imageAtomicMinExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Y20D00D( BuiltInId::imageAtomicMinExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01J00D00D( BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01U00D00D( BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01f00D00D( BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01F20D00D( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01B20D00D( BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01M20D00D( BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01H20D00D( - BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01X20D00D( - BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Y20D00D( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01H20D00D( + BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01S20D00D( BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01d20D00D( BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01D00D00D( BuiltInId::imageAtomicMinExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01O00D00D( BuiltInId::imageAtomicMinExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Z00D00D( BuiltInId::imageAtomicMinExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01E10D00D( BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01P10D00D( BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Q10D00D( - BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMinExt_01a10D00D( - BuiltInId::imageAtomicMinExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01b10D00D( + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01I10D00D( + BuiltInId::imageAtomicMinExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicMinExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01T10D00D( BuiltInId::imageAtomicMinExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01e10D00D( BuiltInId::imageAtomicMinExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01F10D00D00D( BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01Q10D00D00D( BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01b10D00D00D( BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01G20D00D00D( BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01R20D00D00D( BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, + false); +constexpr const TFunction imageAtomicMinExt_01c20D00D00D( BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMin, false); constexpr const TFunction imageAtomicMaxExt_00z10D00E( BuiltInId::imageAtomicMaxExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01A10D00E( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01K10D00E( BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01V10D00E( BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01A20D00E( + BuiltInId::imageAtomicMaxExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01L20D00E( + BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01W20D00E( + BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01C20D00E( - BuiltInId::imageAtomicMaxExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01D20D00E( - BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01E20D00E( - BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01I20D00E( - BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01J20D00E( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01N20D00E( BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Y20D00E( BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01J00D00E( BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01U00D00E( BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01f00D00E( BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01F20D00E( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01B20D00E( BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01M20D00E( BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01H20D00E( - BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01X20D00E( - BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Y20D00E( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01H20D00E( + BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01S20D00E( BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01d20D00E( BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01D00D00E( BuiltInId::imageAtomicMaxExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01O00D00E( BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Z00D00E( BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01E10D00E( BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01P10D00E( BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Q10D00E( - BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01a10D00E( - BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01b10D00E( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01I10D00E( + BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01T10D00E( BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01e10D00E( BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01F10D00D00E( BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Q10D00D00E( BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01b10D00D00E( BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01G20D00D00E( BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01R20D00D00E( BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01c20D00D00E( BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_00z10D00D( BuiltInId::imageAtomicMaxExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01A10D00D( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01K10D00D( BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01V10D00D( BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01A20D00D( + BuiltInId::imageAtomicMaxExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01L20D00D( + BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01W20D00D( + BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01C20D00D( - BuiltInId::imageAtomicMaxExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01D20D00D( - BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01E20D00D( - BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01I20D00D( - BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01J20D00D( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01N20D00D( BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Y20D00D( BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01J00D00D( BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01U00D00D( BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01f00D00D( BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01F20D00D( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01B20D00D( BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01M20D00D( BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01H20D00D( - BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01X20D00D( - BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Y20D00D( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01H20D00D( + BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01S20D00D( BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01d20D00D( BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01D00D00D( BuiltInId::imageAtomicMaxExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01O00D00D( BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Z00D00D( BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01E10D00D( BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01P10D00D( BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Q10D00D( - BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicMaxExt_01a10D00D( - BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01b10D00D( + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01I10D00D( + BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicMaxExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01T10D00D( BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01e10D00D( BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01F10D00D00D( BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01Q10D00D00D( BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01b10D00D00D( BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01G20D00D00D( BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01R20D00D00D( BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, + false); +constexpr const TFunction imageAtomicMaxExt_01c20D00D00D( BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicMax, false); constexpr const TFunction imageAtomicAndExt_00z10D00E( BuiltInId::imageAtomicAndExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01A10D00E( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01K10D00E( BuiltInId::imageAtomicAndExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01V10D00E( BuiltInId::imageAtomicAndExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01A20D00E( + BuiltInId::imageAtomicAndExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01L20D00E( + BuiltInId::imageAtomicAndExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01W20D00E( + BuiltInId::imageAtomicAndExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01C20D00E( - BuiltInId::imageAtomicAndExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01D20D00E( - BuiltInId::imageAtomicAndExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01E20D00E( - BuiltInId::imageAtomicAndExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01I20D00E( - BuiltInId::imageAtomicAndExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01J20D00E( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01N20D00E( BuiltInId::imageAtomicAndExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Y20D00E( BuiltInId::imageAtomicAndExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01J00D00E( BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01U00D00E( BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01f00D00E( BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01F20D00E( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01B20D00E( BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01M20D00E( BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01H20D00E( - BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01X20D00E( - BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Y20D00E( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01H20D00E( + BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01S20D00E( BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01d20D00E( BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01D00D00E( BuiltInId::imageAtomicAndExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01O00D00E( BuiltInId::imageAtomicAndExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Z00D00E( BuiltInId::imageAtomicAndExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01E10D00E( BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01P10D00E( BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Q10D00E( - BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01a10D00E( - BuiltInId::imageAtomicAndExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01b10D00E( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01I10D00E( + BuiltInId::imageAtomicAndExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01T10D00E( BuiltInId::imageAtomicAndExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01e10D00E( BuiltInId::imageAtomicAndExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01F10D00D00E( BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Q10D00D00E( BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01b10D00D00E( BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01G20D00D00E( BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01R20D00D00E( BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01c20D00D00E( BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_00z10D00D( BuiltInId::imageAtomicAndExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01A10D00D( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01K10D00D( BuiltInId::imageAtomicAndExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01V10D00D( BuiltInId::imageAtomicAndExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01A20D00D( + BuiltInId::imageAtomicAndExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01L20D00D( + BuiltInId::imageAtomicAndExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01W20D00D( + BuiltInId::imageAtomicAndExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01C20D00D( - BuiltInId::imageAtomicAndExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01D20D00D( - BuiltInId::imageAtomicAndExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01E20D00D( - BuiltInId::imageAtomicAndExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01I20D00D( - BuiltInId::imageAtomicAndExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01J20D00D( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01N20D00D( BuiltInId::imageAtomicAndExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Y20D00D( BuiltInId::imageAtomicAndExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01J00D00D( BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01U00D00D( BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01f00D00D( BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01F20D00D( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01B20D00D( BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01M20D00D( BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01H20D00D( - BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01X20D00D( - BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Y20D00D( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01H20D00D( + BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01S20D00D( BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01d20D00D( BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01D00D00D( BuiltInId::imageAtomicAndExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01O00D00D( BuiltInId::imageAtomicAndExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Z00D00D( BuiltInId::imageAtomicAndExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01E10D00D( BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01P10D00D( BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Q10D00D( - BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicAndExt_01a10D00D( - BuiltInId::imageAtomicAndExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01b10D00D( + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01I10D00D( + BuiltInId::imageAtomicAndExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicAndExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01T10D00D( BuiltInId::imageAtomicAndExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01e10D00D( BuiltInId::imageAtomicAndExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01F10D00D00D( BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01Q10D00D00D( BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01b10D00D00D( BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01G20D00D00D( BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01R20D00D00D( BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, + false); +constexpr const TFunction imageAtomicAndExt_01c20D00D00D( BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicAnd, false); constexpr const TFunction imageAtomicOrExt_00z10D00E( BuiltInId::imageAtomicOrExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01A10D00E( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01K10D00E( BuiltInId::imageAtomicOrExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01V10D00E( BuiltInId::imageAtomicOrExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01A20D00E( + BuiltInId::imageAtomicOrExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01L20D00E( + BuiltInId::imageAtomicOrExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01W20D00E( + BuiltInId::imageAtomicOrExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01C20D00E( - BuiltInId::imageAtomicOrExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01D20D00E( - BuiltInId::imageAtomicOrExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01E20D00E( - BuiltInId::imageAtomicOrExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01I20D00E( - BuiltInId::imageAtomicOrExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01J20D00E( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01N20D00E( BuiltInId::imageAtomicOrExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Y20D00E( BuiltInId::imageAtomicOrExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01J00D00E( BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01U00D00E( BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01f00D00E( BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01F20D00E( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01B20D00E( BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01M20D00E( BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01H20D00E( - BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01X20D00E( - BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Y20D00E( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01H20D00E( + BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01S20D00E( BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01d20D00E( BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01D00D00E( BuiltInId::imageAtomicOrExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01O00D00E( BuiltInId::imageAtomicOrExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Z00D00E( BuiltInId::imageAtomicOrExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01E10D00E( BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01P10D00E( BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Q10D00E( - BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01a10D00E( - BuiltInId::imageAtomicOrExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01b10D00E( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01I10D00E( + BuiltInId::imageAtomicOrExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01T10D00E( BuiltInId::imageAtomicOrExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01e10D00E( BuiltInId::imageAtomicOrExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01F10D00D00E( BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Q10D00D00E( BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01b10D00D00E( BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01G20D00D00E( BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01R20D00D00E( BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01c20D00D00E( BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_00z10D00D( BuiltInId::imageAtomicOrExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01A10D00D( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01K10D00D( BuiltInId::imageAtomicOrExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01V10D00D( BuiltInId::imageAtomicOrExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01A20D00D( + BuiltInId::imageAtomicOrExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01L20D00D( + BuiltInId::imageAtomicOrExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01W20D00D( + BuiltInId::imageAtomicOrExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01C20D00D( - BuiltInId::imageAtomicOrExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01D20D00D( - BuiltInId::imageAtomicOrExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01E20D00D( - BuiltInId::imageAtomicOrExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01I20D00D( - BuiltInId::imageAtomicOrExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01J20D00D( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01N20D00D( BuiltInId::imageAtomicOrExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Y20D00D( BuiltInId::imageAtomicOrExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01J00D00D( BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01U00D00D( BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01f00D00D( BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01F20D00D( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01B20D00D( BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01M20D00D( BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01H20D00D( - BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01X20D00D( - BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Y20D00D( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01H20D00D( + BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01S20D00D( BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01d20D00D( BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01D00D00D( BuiltInId::imageAtomicOrExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01O00D00D( BuiltInId::imageAtomicOrExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Z00D00D( BuiltInId::imageAtomicOrExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01E10D00D( BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01P10D00D( BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Q10D00D( - BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicOrExt_01a10D00D( - BuiltInId::imageAtomicOrExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01b10D00D( + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01I10D00D( + BuiltInId::imageAtomicOrExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicOrExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01T10D00D( BuiltInId::imageAtomicOrExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01e10D00D( BuiltInId::imageAtomicOrExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01F10D00D00D( BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01Q10D00D00D( BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01b10D00D00D( BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01G20D00D00D( BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01R20D00D00D( BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, + false); +constexpr const TFunction imageAtomicOrExt_01c20D00D00D( BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicOr, false); constexpr const TFunction imageAtomicXorExt_00z10D00E( BuiltInId::imageAtomicXorExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01A10D00E( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01K10D00E( BuiltInId::imageAtomicXorExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01V10D00E( BuiltInId::imageAtomicXorExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01A20D00E( + BuiltInId::imageAtomicXorExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01L20D00E( + BuiltInId::imageAtomicXorExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01W20D00E( + BuiltInId::imageAtomicXorExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01C20D00E( - BuiltInId::imageAtomicXorExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01D20D00E( - BuiltInId::imageAtomicXorExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01E20D00E( - BuiltInId::imageAtomicXorExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01I20D00E( - BuiltInId::imageAtomicXorExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01J20D00E( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01N20D00E( BuiltInId::imageAtomicXorExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Y20D00E( BuiltInId::imageAtomicXorExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01J00D00E( BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01U00D00E( BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01f00D00E( BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01F20D00E( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01B20D00E( BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01M20D00E( BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01H20D00E( - BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01X20D00E( - BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Y20D00E( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01H20D00E( + BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01S20D00E( BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01d20D00E( BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01D00D00E( BuiltInId::imageAtomicXorExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01O00D00E( BuiltInId::imageAtomicXorExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Z00D00E( BuiltInId::imageAtomicXorExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01E10D00E( BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01P10D00E( BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Q10D00E( - BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01a10D00E( - BuiltInId::imageAtomicXorExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01b10D00E( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01I10D00E( + BuiltInId::imageAtomicXorExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01T10D00E( BuiltInId::imageAtomicXorExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01e10D00E( BuiltInId::imageAtomicXorExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01F10D00D00E( BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Q10D00D00E( BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01b10D00D00E( BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01G20D00D00E( BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01R20D00D00E( BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01c20D00D00E( BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_00z10D00D( BuiltInId::imageAtomicXorExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01A10D00D( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01K10D00D( BuiltInId::imageAtomicXorExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01V10D00D( BuiltInId::imageAtomicXorExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01A20D00D( + BuiltInId::imageAtomicXorExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01L20D00D( + BuiltInId::imageAtomicXorExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01W20D00D( + BuiltInId::imageAtomicXorExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01C20D00D( - BuiltInId::imageAtomicXorExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01D20D00D( - BuiltInId::imageAtomicXorExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01E20D00D( - BuiltInId::imageAtomicXorExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01I20D00D( - BuiltInId::imageAtomicXorExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01J20D00D( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01N20D00D( BuiltInId::imageAtomicXorExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Y20D00D( BuiltInId::imageAtomicXorExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01J00D00D( BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01U00D00D( BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01f00D00D( BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01F20D00D( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01B20D00D( BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01M20D00D( BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01H20D00D( - BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01X20D00D( - BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Y20D00D( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01H20D00D( + BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01S20D00D( BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01d20D00D( BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01D00D00D( BuiltInId::imageAtomicXorExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01O00D00D( BuiltInId::imageAtomicXorExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Z00D00D( BuiltInId::imageAtomicXorExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01E10D00D( BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01P10D00D( BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Q10D00D( - BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicXorExt_01a10D00D( - BuiltInId::imageAtomicXorExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01b10D00D( + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01I10D00D( + BuiltInId::imageAtomicXorExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicXorExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01T10D00D( BuiltInId::imageAtomicXorExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01e10D00D( BuiltInId::imageAtomicXorExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01F10D00D00D( BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01Q10D00D00D( BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01b10D00D00D( BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01G20D00D00D( BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01R20D00D00D( BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, + false); +constexpr const TFunction imageAtomicXorExt_01c20D00D00D( BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicXor, false); constexpr const TFunction imageAtomicExchangeExt_00z10D00E( BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00E( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01K10D00E( BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01V10D00E( BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01A20D00E( + BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01L20D00E( + BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01W20D00E( + BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01C20D00E( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00E( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00E( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00E( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00E( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01N20D00E( BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Y20D00E( BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01J00D00E( BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01U00D00E( BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01f00D00E( BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00E( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01B20D00E( BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01M20D00E( BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00E( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01X20D00E( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00E( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01H20D00E( + BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01S20D00E( BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01d20D00E( BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01D00D00E( BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01O00D00E( BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Z00D00E( BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01E10D00E( BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01P10D00E( BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00E( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01a10D00E( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00E( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01I10D00E( + BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_UInt1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01T10D00E( BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01e10D00E( BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01F10D00D00E( BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Q10D00D00E( BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01b10D00D00E( BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01G20D00D00E( BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01R20D00D00E( BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01c20D00D00E( BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_00z10D00D( BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00D( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01K10D00D( BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01V10D00D( BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01A20D00D( + BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01L20D00D( + BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01W20D00D( + BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01C20D00D( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00D( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00D( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00D( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00D( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01N20D00D( BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Y20D00D( BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01J00D00D( BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01U00D00D( BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01f00D00D( BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00D( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01B20D00D( BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01M20D00D( BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00D( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01X20D00D( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00D( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01H20D00D( + BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01S20D00D( BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01d20D00D( BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01D00D00D( BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01O00D00D( BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Z00D00D( BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01E10D00D( BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01P10D00D( BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00D( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01a10D00D( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00D( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01I10D00D( + BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Int1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01T10D00D( BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01e10D00D( BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01F10D00D00D( BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Q10D00D00D( BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01b10D00D00D( BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01G20D00D00D( BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01R20D00D00D( BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01c20D00D00D( BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_00z10D00B( BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00B( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01K10D00B( BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01V10D00B( BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01A20D00B( + BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01L20D00B( + BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01W20D00B( + BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01C20D00B( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00B( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00B( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00B( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00B( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01N20D00B( BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Y20D00B( BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01J00D00B( BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01U00D00B( BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01f00D00B( BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00B( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01B20D00B( BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01M20D00B( BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00B( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01X20D00B( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00B( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01H20D00B( + BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01S20D00B( BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01d20D00B( BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01D00D00B( BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01O00D00B( BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Z00D00B( BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01E10D00B( BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01P10D00B( BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00B( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicExchangeExt_01a10D00B( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00B, 3, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00B( + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01I10D00B( + BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Float1, + BuiltInName::imageAtomicExchangeExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01T10D00B( BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01e10D00B( BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00B, + 3, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01F10D00D00B( BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01Q10D00D00B( BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01b10D00D00B( BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01G20D00D00B( BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01R20D00D00B( BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00B( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, + false); +constexpr const TFunction imageAtomicExchangeExt_01c20D00D00B( BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1, BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00B, + 4, + StaticType::Get(), + EOpImageAtomicExchange, false); constexpr const TFunction imageAtomicCompSwapExt_00z10D00E00E( BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01A10D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01K10D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01B10D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01V10D00E00E( BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01A20D00E00E( + BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01L20D00E00E( + BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01W20D00E00E( + BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01C20D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01D20D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01E20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01I20D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01J20D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01N20D00E00E( BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01K20D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Y20D00E00E( BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01d00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01J00D00E00E( BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01e00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01U00D00E00E( BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01f00D00E00E( BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01F20D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01B20D00E00E( BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01G20D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01M20D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01H20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01X20D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Y20D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01H20D00E00E( + BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01S20D00E00E( BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Z20D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01d20D00E00E( BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01L00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01D00D00E00E( BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01M00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01O00D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01N00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Z00D00E00E( BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01O10D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01E10D00E00E( BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01P10D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Q10D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01a10D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00E00E, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01b10D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01I10D00E00E( + BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01T10D00E00E( BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01c10D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01e10D00E00E( BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01R10D00D00E00E( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00E00E, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01F10D00D00E00E( BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01S10D00D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Q10D00D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01T10D00D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01b10D00D00E00E( BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01U20D00D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01G20D00D00E00E( BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01V20D00D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01R20D00D00E00E( BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01W20D00D00E00E( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01c20D00D00E00E( BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00E00E, 5, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_00z10D00D00D( BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p00z10D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01A10D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01K10D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01B10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01K10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01V10D00D00D( BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01V10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01A20D00D00D( + BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01A20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01L20D00D00D( + BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01L20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01W20D00D00D( + BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01W20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01C20D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01C20D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01D20D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01E20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01I20D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01J20D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01N20D00D00D( BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01K20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01N20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Y20D00D00D( BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01d00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Y20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01J00D00D00D( BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01e00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01J00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01U00D00D00D( BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01U00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01f00D00D00D( BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01f00D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01F20D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01B20D00D00D( BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01G20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01B20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01M20D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01H20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01M20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01X20D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01X20D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Y20D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01H20D00D00D( + BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01H20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01S20D00D00D( BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Z20D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01S20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01d20D00D00D( BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01L00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01d20D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01D00D00D00D( BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01M00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01D00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01O00D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01N00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01O00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Z00D00D00D( BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01O10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Z00D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01E10D00D00D( BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01E10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01P10D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01P10D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Q10D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicCompSwap, false); constexpr const TFunction imageAtomicCompSwapExt_01a10D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, + BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, BuiltInParameters::p01a10D00D00D, 4, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01b10D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01I10D00D00D( + BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1, + BuiltInName::imageAtomicCompSwapExt, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01I10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01T10D00D00D( BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01c10D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01T10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01e10D00D00D( BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01R10D00D00D00D( + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01e10D00D00D, + 4, + StaticType::Get(), + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01F10D00D00D00D( BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01F10D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01S10D00D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01Q10D00D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01Q10D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01T10D00D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01b10D00D00D00D( BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01b10D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01U20D00D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01G20D00D00D00D( BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01G20D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01V20D00D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01R20D00D00D00D( BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01R20D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01W20D00D00D00D( + EOpImageAtomicCompSwap, + false); +constexpr const TFunction imageAtomicCompSwapExt_01c20D00D00D00D( BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1, BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, + std::array{{TExtension::OES_shader_image_atomic}}, + BuiltInParameters::p01c20D00D00D00D, 5, StaticType::Get(), - EOpCallBuiltInFunction, + EOpImageAtomicCompSwap, false); constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier, BuiltInName::memoryBarrier, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpMemoryBarrier, false); constexpr const TFunction memoryBarrierAtomicCounter_( BuiltInId::memoryBarrierAtomicCounter, BuiltInName::memoryBarrierAtomicCounter, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpMemoryBarrierAtomicCounter, false); constexpr const TFunction memoryBarrierBuffer_( BuiltInId::memoryBarrierBuffer, BuiltInName::memoryBarrierBuffer, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpMemoryBarrierBuffer, false); constexpr const TFunction memoryBarrierImage_( BuiltInId::memoryBarrierImage, BuiltInName::memoryBarrierImage, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpMemoryBarrierImage, false); constexpr const TFunction barrier_(BuiltInId::barrier, BuiltInName::barrier, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpBarrier, false); constexpr const TFunction memoryBarrierShared_( BuiltInId::memoryBarrierShared, BuiltInName::memoryBarrierShared, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpMemoryBarrierShared, false); constexpr const TFunction groupMemoryBarrier_( BuiltInId::groupMemoryBarrier, BuiltInName::groupMemoryBarrier, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpGroupMemoryBarrier, false); -constexpr const TFunction barrierES3_2_(BuiltInId::barrierES3_2, - BuiltInName::barrierES3_2, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpBarrier, - false); +constexpr const TFunction barrierTCS_(BuiltInId::barrierTCS, + BuiltInName::barrierTCS, + std::array{ + {TExtension::EXT_tessellation_shader}}, + BuiltInParameters::empty, + 0, + StaticType::Get(), + EOpBarrierTCS, + false); +constexpr const TFunction barrierTCSES3_2_( + BuiltInId::barrierTCSES3_2, + BuiltInName::barrierTCSES3_2, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::empty, + 0, + StaticType::Get(), + EOpBarrierTCS, + false); constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex, BuiltInName::EmitVertex, - TExtension::EXT_geometry_shader, + std::array{{TExtension::EXT_geometry_shader, + TExtension::OES_geometry_shader}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpEmitVertex, false); constexpr const TFunction EmitVertexES3_2_( BuiltInId::EmitVertexES3_2, BuiltInName::EmitVertexES3_2, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpEmitVertex, false); -constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive, - BuiltInName::EndPrimitive, - TExtension::EXT_geometry_shader, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpEndPrimitive, - false); +constexpr const TFunction EndPrimitive_( + BuiltInId::EndPrimitive, + BuiltInName::EndPrimitive, + std::array{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + BuiltInParameters::empty, + 0, + StaticType::Get(), + EOpEndPrimitive, + false); constexpr const TFunction EndPrimitiveES3_2_( BuiltInId::EndPrimitiveES3_2, BuiltInName::EndPrimitiveES3_2, - TExtension::UNDEFINED, + std::array{{TExtension::UNDEFINED}}, BuiltInParameters::empty, 0, StaticType::Get(), EOpEndPrimitive, false); -constexpr const TFunction textureVideoWEBGL_00y10B( - BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2, - BuiltInName::textureVideoWEBGL, - TExtension::UNDEFINED, - BuiltInParameters::p00y10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00y10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00y10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); +constexpr const TFunction subpassLoad_01g( + BuiltInId::subpassLoad_SubpassInput1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01g, + 1, + StaticType::Get(), + EOpSubpassLoad, + false); +constexpr const TFunction subpassLoad_01h(BuiltInId::subpassLoad_ISubpassInput1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01h, + 1, + StaticType::Get(), + EOpSubpassLoad, + false); +constexpr const TFunction subpassLoad_01i(BuiltInId::subpassLoad_USubpassInput1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01i, + 1, + StaticType::Get(), + EOpSubpassLoad, + false); +constexpr const TFunction subpassLoad_01j00D( + BuiltInId::subpassLoad_SubpassInputMS1_Int1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01j00D, + 2, + StaticType::Get(), + EOpSubpassLoad, + false); +constexpr const TFunction subpassLoad_01k00D( + BuiltInId::subpassLoad_ISubpassInputMS1_Int1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01k00D, + 2, + StaticType::Get(), + EOpSubpassLoad, + false); +constexpr const TFunction subpassLoad_01l00D( + BuiltInId::subpassLoad_USubpassInputMS1_Int1, + BuiltInName::subpassLoad, + std::array{{TExtension::UNDEFINED}}, + BuiltInParameters::p01l00D, + 2, + StaticType::Get(), + EOpSubpassLoad, + false); } // namespace Func namespace BuiltInArray { @@ -17703,3228 +18388,2548 @@ using Rule = SymbolRule; // Rules used to initialize the mangled name array. constexpr SymbolRule kRules[] = { Rule::Get(&radians_00B), - Rule::Get(&radians_00B), Rule::Get(&radians_10B), - Rule::Get(&radians_10B), Rule::Get(&radians_20B), - Rule::Get(&radians_20B), Rule::Get(&radians_30B), - Rule::Get(&radians_30B), Rule::Get(°rees_00B), - Rule::Get(°rees_00B), Rule::Get(°rees_10B), - Rule::Get(°rees_10B), Rule::Get(°rees_20B), - Rule::Get(°rees_20B), Rule::Get(°rees_30B), - Rule::Get(°rees_30B), Rule::Get(&sin_00B), - Rule::Get(&sin_00B), Rule::Get(&sin_10B), - Rule::Get(&sin_10B), Rule::Get(&sin_20B), - Rule::Get(&sin_20B), Rule::Get(&sin_30B), - Rule::Get(&sin_30B), Rule::Get(&cos_00B), - Rule::Get(&cos_00B), Rule::Get(&cos_10B), - Rule::Get(&cos_10B), Rule::Get(&cos_20B), - Rule::Get(&cos_20B), Rule::Get(&cos_30B), - Rule::Get(&cos_30B), Rule::Get(&tan_00B), - Rule::Get(&tan_00B), Rule::Get(&tan_10B), - Rule::Get(&tan_10B), Rule::Get(&tan_20B), - Rule::Get(&tan_20B), Rule::Get(&tan_30B), - Rule::Get(&tan_30B), Rule::Get(&asin_00B), - Rule::Get(&asin_00B), Rule::Get(&asin_10B), - Rule::Get(&asin_10B), Rule::Get(&asin_20B), - Rule::Get(&asin_20B), Rule::Get(&asin_30B), - Rule::Get(&asin_30B), Rule::Get(&acos_00B), - Rule::Get(&acos_00B), Rule::Get(&acos_10B), - Rule::Get(&acos_10B), Rule::Get(&acos_20B), - Rule::Get(&acos_20B), Rule::Get(&acos_30B), - Rule::Get(&acos_30B), Rule::Get(&atan_00B00B), - Rule::Get(&atan_00B00B), Rule::Get(&atan_10B10B), - Rule::Get(&atan_10B10B), Rule::Get(&atan_20B20B), - Rule::Get(&atan_20B20B), Rule::Get(&atan_30B30B), - Rule::Get(&atan_30B30B), Rule::Get(&atan_00B), - Rule::Get(&atan_00B), Rule::Get(&atan_10B), - Rule::Get(&atan_10B), Rule::Get(&atan_20B), - Rule::Get(&atan_20B), Rule::Get(&atan_30B), - Rule::Get(&atan_30B), Rule::Get(&sinh_00B), - Rule::Get(&sinh_00B), Rule::Get(&sinh_10B), - Rule::Get(&sinh_10B), Rule::Get(&sinh_20B), - Rule::Get(&sinh_20B), Rule::Get(&sinh_30B), - Rule::Get(&sinh_30B), Rule::Get(&cosh_00B), - Rule::Get(&cosh_00B), Rule::Get(&cosh_10B), - Rule::Get(&cosh_10B), Rule::Get(&cosh_20B), - Rule::Get(&cosh_20B), Rule::Get(&cosh_30B), - Rule::Get(&cosh_30B), Rule::Get(&tanh_00B), - Rule::Get(&tanh_00B), Rule::Get(&tanh_10B), - Rule::Get(&tanh_10B), Rule::Get(&tanh_20B), - Rule::Get(&tanh_20B), Rule::Get(&tanh_30B), - Rule::Get(&tanh_30B), Rule::Get(&asinh_00B), - Rule::Get(&asinh_00B), Rule::Get(&asinh_10B), - Rule::Get(&asinh_10B), Rule::Get(&asinh_20B), - Rule::Get(&asinh_20B), Rule::Get(&asinh_30B), - Rule::Get(&asinh_30B), Rule::Get(&acosh_00B), - Rule::Get(&acosh_00B), Rule::Get(&acosh_10B), - Rule::Get(&acosh_10B), Rule::Get(&acosh_20B), - Rule::Get(&acosh_20B), Rule::Get(&acosh_30B), - Rule::Get(&acosh_30B), Rule::Get(&atanh_00B), - Rule::Get(&atanh_00B), Rule::Get(&atanh_10B), - Rule::Get(&atanh_10B), Rule::Get(&atanh_20B), - Rule::Get(&atanh_20B), Rule::Get(&atanh_30B), - Rule::Get(&atanh_30B), Rule::Get(&pow_00B00B), - Rule::Get(&pow_00B00B), Rule::Get(&pow_10B10B), - Rule::Get(&pow_10B10B), Rule::Get(&pow_20B20B), - Rule::Get(&pow_20B20B), Rule::Get(&pow_30B30B), - Rule::Get(&pow_30B30B), Rule::Get(&exp_00B), - Rule::Get(&exp_00B), Rule::Get(&exp_10B), - Rule::Get(&exp_10B), Rule::Get(&exp_20B), - Rule::Get(&exp_20B), Rule::Get(&exp_30B), - Rule::Get(&exp_30B), Rule::Get(&log_00B), - Rule::Get(&log_00B), Rule::Get(&log_10B), - Rule::Get(&log_10B), Rule::Get(&log_20B), - Rule::Get(&log_20B), Rule::Get(&log_30B), - Rule::Get(&log_30B), Rule::Get(&exp2_00B), - Rule::Get(&exp2_00B), Rule::Get(&exp2_10B), - Rule::Get(&exp2_10B), Rule::Get(&exp2_20B), - Rule::Get(&exp2_20B), Rule::Get(&exp2_30B), - Rule::Get(&exp2_30B), Rule::Get(&log2_00B), - Rule::Get(&log2_00B), Rule::Get(&log2_10B), - Rule::Get(&log2_10B), Rule::Get(&log2_20B), - Rule::Get(&log2_20B), Rule::Get(&log2_30B), - Rule::Get(&log2_30B), Rule::Get(&sqrt_00B), - Rule::Get(&sqrt_00B), Rule::Get(&sqrt_10B), - Rule::Get(&sqrt_10B), Rule::Get(&sqrt_20B), - Rule::Get(&sqrt_20B), Rule::Get(&sqrt_30B), - Rule::Get(&sqrt_30B), Rule::Get(&inversesqrt_00B), - Rule::Get(&inversesqrt_00B), Rule::Get(&inversesqrt_10B), - Rule::Get(&inversesqrt_10B), Rule::Get(&inversesqrt_20B), - Rule::Get(&inversesqrt_20B), Rule::Get(&inversesqrt_30B), - Rule::Get(&inversesqrt_30B), Rule::Get(&abs_00B), - Rule::Get(&abs_00B), Rule::Get(&abs_10B), - Rule::Get(&abs_10B), Rule::Get(&abs_20B), - Rule::Get(&abs_20B), Rule::Get(&abs_30B), - Rule::Get(&abs_30B), Rule::Get(&abs_00D), - Rule::Get(&abs_00D), Rule::Get(&abs_10D), - Rule::Get(&abs_10D), Rule::Get(&abs_20D), - Rule::Get(&abs_20D), Rule::Get(&abs_30D), - Rule::Get(&abs_30D), Rule::Get(&sign_00B), - Rule::Get(&sign_00B), Rule::Get(&sign_10B), - Rule::Get(&sign_10B), Rule::Get(&sign_20B), - Rule::Get(&sign_20B), Rule::Get(&sign_30B), - Rule::Get(&sign_30B), Rule::Get(&sign_00D), - Rule::Get(&sign_00D), Rule::Get(&sign_10D), - Rule::Get(&sign_10D), Rule::Get(&sign_20D), - Rule::Get(&sign_20D), Rule::Get(&sign_30D), - Rule::Get(&sign_30D), Rule::Get(&floor_00B), - Rule::Get(&floor_00B), Rule::Get(&floor_10B), - Rule::Get(&floor_10B), Rule::Get(&floor_20B), - Rule::Get(&floor_20B), Rule::Get(&floor_30B), - Rule::Get(&floor_30B), Rule::Get(&trunc_00B), - Rule::Get(&trunc_00B), Rule::Get(&trunc_10B), - Rule::Get(&trunc_10B), Rule::Get(&trunc_20B), - Rule::Get(&trunc_20B), Rule::Get(&trunc_30B), - Rule::Get(&trunc_30B), Rule::Get(&round_00B), - Rule::Get(&round_00B), Rule::Get(&round_10B), - Rule::Get(&round_10B), Rule::Get(&round_20B), - Rule::Get(&round_20B), Rule::Get(&round_30B), - Rule::Get(&round_30B), Rule::Get(&roundEven_00B), - Rule::Get(&roundEven_00B), Rule::Get(&roundEven_10B), - Rule::Get(&roundEven_10B), Rule::Get(&roundEven_20B), - Rule::Get(&roundEven_20B), Rule::Get(&roundEven_30B), - Rule::Get(&roundEven_30B), Rule::Get(&ceil_00B), - Rule::Get(&ceil_00B), Rule::Get(&ceil_10B), - Rule::Get(&ceil_10B), Rule::Get(&ceil_20B), - Rule::Get(&ceil_20B), Rule::Get(&ceil_30B), - Rule::Get(&ceil_30B), Rule::Get(&fract_00B), - Rule::Get(&fract_00B), Rule::Get(&fract_10B), - Rule::Get(&fract_10B), Rule::Get(&fract_20B), - Rule::Get(&fract_20B), Rule::Get(&fract_30B), - Rule::Get(&fract_30B), Rule::Get(&mod_00B00B), - Rule::Get(&mod_00B00B), Rule::Get(&mod_10B00B), - Rule::Get(&mod_10B00B), Rule::Get(&mod_20B00B), - Rule::Get(&mod_20B00B), Rule::Get(&mod_30B00B), - Rule::Get(&mod_30B00B), Rule::Get(&mod_10B10B), - Rule::Get(&mod_10B10B), Rule::Get(&mod_20B20B), - Rule::Get(&mod_20B20B), Rule::Get(&mod_30B30B), - Rule::Get(&mod_30B30B), Rule::Get(&min_00B00B), - Rule::Get(&min_00B00B), Rule::Get(&min_10B00B), - Rule::Get(&min_10B00B), Rule::Get(&min_20B00B), - Rule::Get(&min_20B00B), Rule::Get(&min_30B00B), - Rule::Get(&min_30B00B), Rule::Get(&min_10B10B), - Rule::Get(&min_10B10B), Rule::Get(&min_20B20B), - Rule::Get(&min_20B20B), Rule::Get(&min_30B30B), - Rule::Get(&min_30B30B), Rule::Get(&min_00D00D), - Rule::Get(&min_00D00D), Rule::Get(&min_10D10D), - Rule::Get(&min_10D10D), Rule::Get(&min_20D20D), - Rule::Get(&min_20D20D), Rule::Get(&min_30D30D), - Rule::Get(&min_30D30D), Rule::Get(&min_10D00D), - Rule::Get(&min_10D00D), Rule::Get(&min_20D00D), - Rule::Get(&min_20D00D), Rule::Get(&min_30D00D), - Rule::Get(&min_30D00D), Rule::Get(&min_00E00E), - Rule::Get(&min_00E00E), Rule::Get(&min_10E10E), - Rule::Get(&min_10E10E), Rule::Get(&min_20E20E), - Rule::Get(&min_20E20E), Rule::Get(&min_30E30E), - Rule::Get(&min_30E30E), Rule::Get(&min_10E00E), - Rule::Get(&min_10E00E), Rule::Get(&min_20E00E), - Rule::Get(&min_20E00E), Rule::Get(&min_30E00E), - Rule::Get(&min_30E00E), Rule::Get(&max_00B00B), - Rule::Get(&max_00B00B), Rule::Get(&max_10B00B), - Rule::Get(&max_10B00B), Rule::Get(&max_20B00B), - Rule::Get(&max_20B00B), Rule::Get(&max_30B00B), - Rule::Get(&max_30B00B), Rule::Get(&max_10B10B), - Rule::Get(&max_10B10B), Rule::Get(&max_20B20B), - Rule::Get(&max_20B20B), Rule::Get(&max_30B30B), - Rule::Get(&max_30B30B), Rule::Get(&max_00D00D), - Rule::Get(&max_00D00D), Rule::Get(&max_10D10D), - Rule::Get(&max_10D10D), Rule::Get(&max_20D20D), - Rule::Get(&max_20D20D), Rule::Get(&max_30D30D), - Rule::Get(&max_30D30D), Rule::Get(&max_10D00D), - Rule::Get(&max_10D00D), Rule::Get(&max_20D00D), - Rule::Get(&max_20D00D), Rule::Get(&max_30D00D), - Rule::Get(&max_30D00D), Rule::Get(&max_00E00E), - Rule::Get(&max_00E00E), Rule::Get(&max_10E10E), - Rule::Get(&max_10E10E), Rule::Get(&max_20E20E), - Rule::Get(&max_20E20E), Rule::Get(&max_30E30E), - Rule::Get(&max_30E30E), Rule::Get(&max_10E00E), - Rule::Get(&max_10E00E), Rule::Get(&max_20E00E), - Rule::Get(&max_20E00E), Rule::Get(&max_30E00E), - Rule::Get(&max_30E00E), Rule::Get(&clamp_00B00B00B), - Rule::Get(&clamp_00B00B00B), Rule::Get(&clamp_10B00B00B), - Rule::Get(&clamp_10B00B00B), Rule::Get(&clamp_20B00B00B), - Rule::Get(&clamp_20B00B00B), Rule::Get(&clamp_30B00B00B), - Rule::Get(&clamp_30B00B00B), Rule::Get(&clamp_10B10B10B), - Rule::Get(&clamp_10B10B10B), Rule::Get(&clamp_20B20B20B), - Rule::Get(&clamp_20B20B20B), Rule::Get(&clamp_30B30B30B), - Rule::Get(&clamp_30B30B30B), Rule::Get(&clamp_00D00D00D), - Rule::Get(&clamp_00D00D00D), Rule::Get(&clamp_10D00D00D), - Rule::Get(&clamp_10D00D00D), Rule::Get(&clamp_20D00D00D), - Rule::Get(&clamp_20D00D00D), Rule::Get(&clamp_30D00D00D), - Rule::Get(&clamp_30D00D00D), Rule::Get(&clamp_10D10D10D), - Rule::Get(&clamp_10D10D10D), Rule::Get(&clamp_20D20D20D), - Rule::Get(&clamp_20D20D20D), Rule::Get(&clamp_30D30D30D), - Rule::Get(&clamp_30D30D30D), Rule::Get(&clamp_00E00E00E), - Rule::Get(&clamp_00E00E00E), Rule::Get(&clamp_10E00E00E), - Rule::Get(&clamp_10E00E00E), Rule::Get(&clamp_20E00E00E), - Rule::Get(&clamp_20E00E00E), Rule::Get(&clamp_30E00E00E), - Rule::Get(&clamp_30E00E00E), Rule::Get(&clamp_10E10E10E), - Rule::Get(&clamp_10E10E10E), Rule::Get(&clamp_20E20E20E), - Rule::Get(&clamp_20E20E20E), Rule::Get(&clamp_30E30E30E), - Rule::Get(&clamp_30E30E30E), Rule::Get(&mix_00B00B00B), - Rule::Get(&mix_00B00B00B), Rule::Get(&mix_10B10B00B), - Rule::Get(&mix_10B10B00B), Rule::Get(&mix_20B20B00B), - Rule::Get(&mix_20B20B00B), Rule::Get(&mix_30B30B00B), - Rule::Get(&mix_30B30B00B), Rule::Get(&mix_10B10B10B), - Rule::Get(&mix_10B10B10B), Rule::Get(&mix_20B20B20B), - Rule::Get(&mix_20B20B20B), Rule::Get(&mix_30B30B30B), - Rule::Get(&mix_30B30B30B), Rule::Get(&mix_00B00B00F), - Rule::Get(&mix_00B00B00F), Rule::Get(&mix_10B10B10F), - Rule::Get(&mix_10B10B10F), Rule::Get(&mix_20B20B20F), - Rule::Get(&mix_20B20B20F), Rule::Get(&mix_30B30B30F), - Rule::Get(&mix_30B30B30F), Rule::Get(&mix_00D00D00F), - Rule::Get(&mix_00D00D00F), Rule::Get(&mix_10D10D10F), - Rule::Get(&mix_10D10D10F), Rule::Get(&mix_20D20D20F), - Rule::Get(&mix_20D20D20F), Rule::Get(&mix_30D30D30F), - Rule::Get(&mix_30D30D30F), Rule::Get(&mix_00E00E00F), - Rule::Get(&mix_00E00E00F), Rule::Get(&mix_10E10E10F), - Rule::Get(&mix_10E10E10F), Rule::Get(&mix_20E20E20F), - Rule::Get(&mix_20E20E20F), Rule::Get(&mix_30E30E30F), - Rule::Get(&mix_30E30E30F), Rule::Get(&mix_00F00F00F), - Rule::Get(&mix_00F00F00F), Rule::Get(&mix_10F10F10F), - Rule::Get(&mix_10F10F10F), Rule::Get(&mix_20F20F20F), - Rule::Get(&mix_20F20F20F), Rule::Get(&mix_30F30F30F), - Rule::Get(&mix_30F30F30F), Rule::Get(&step_00B00B), - Rule::Get(&step_00B00B), Rule::Get(&step_10B10B), - Rule::Get(&step_10B10B), Rule::Get(&step_20B20B), - Rule::Get(&step_20B20B), Rule::Get(&step_30B30B), - Rule::Get(&step_30B30B), Rule::Get(&step_00B10B), - Rule::Get(&step_00B10B), Rule::Get(&step_00B20B), - Rule::Get(&step_00B20B), Rule::Get(&step_00B30B), - Rule::Get(&step_00B30B), Rule::Get(&smoothstep_00B00B00B), - Rule::Get(&smoothstep_00B00B00B), Rule::Get(&smoothstep_10B10B10B), - Rule::Get(&smoothstep_10B10B10B), Rule::Get(&smoothstep_20B20B20B), - Rule::Get(&smoothstep_20B20B20B), Rule::Get(&smoothstep_30B30B30B), - Rule::Get(&smoothstep_30B30B30B), Rule::Get(&smoothstep_00B00B10B), - Rule::Get(&smoothstep_00B00B10B), Rule::Get(&smoothstep_00B00B20B), - Rule::Get(&smoothstep_00B00B20B), Rule::Get(&smoothstep_00B00B30B), - Rule::Get(&smoothstep_00B00B30B), Rule::Get(&modf_00B00B), - Rule::Get(&modf_00B00B), Rule::Get(&modf_10B10B), - Rule::Get(&modf_10B10B), Rule::Get(&modf_20B20B), - Rule::Get(&modf_20B20B), Rule::Get(&modf_30B30B), - Rule::Get(&modf_30B30B), Rule::Get(&isnan_00B), - Rule::Get(&isnan_00B), Rule::Get(&isnan_10B), - Rule::Get(&isnan_10B), Rule::Get(&isnan_20B), - Rule::Get(&isnan_20B), Rule::Get(&isnan_30B), - Rule::Get(&isnan_30B), Rule::Get(&isinf_00B), - Rule::Get(&isinf_00B), Rule::Get(&isinf_10B), - Rule::Get(&isinf_10B), Rule::Get(&isinf_20B), - Rule::Get(&isinf_20B), Rule::Get(&isinf_30B), - Rule::Get(&isinf_30B), Rule::Get(&floatBitsToInt_00B), - Rule::Get(&floatBitsToInt_00B), Rule::Get(&floatBitsToInt_10B), - Rule::Get(&floatBitsToInt_10B), Rule::Get(&floatBitsToInt_20B), - Rule::Get(&floatBitsToInt_20B), Rule::Get(&floatBitsToInt_30B), - Rule::Get(&floatBitsToInt_30B), Rule::Get(&floatBitsToUint_00B), - Rule::Get(&floatBitsToUint_00B), Rule::Get(&floatBitsToUint_10B), - Rule::Get(&floatBitsToUint_10B), Rule::Get(&floatBitsToUint_20B), - Rule::Get(&floatBitsToUint_20B), Rule::Get(&floatBitsToUint_30B), - Rule::Get(&floatBitsToUint_30B), Rule::Get(&intBitsToFloat_00D), - Rule::Get(&intBitsToFloat_00D), Rule::Get(&intBitsToFloat_10D), - Rule::Get(&intBitsToFloat_10D), Rule::Get(&intBitsToFloat_20D), - Rule::Get(&intBitsToFloat_20D), Rule::Get(&intBitsToFloat_30D), - Rule::Get(&intBitsToFloat_30D), Rule::Get(&uintBitsToFloat_00E), - Rule::Get(&uintBitsToFloat_00E), Rule::Get(&uintBitsToFloat_10E), - Rule::Get(&uintBitsToFloat_10E), Rule::Get(&uintBitsToFloat_20E), - Rule::Get(&uintBitsToFloat_20E), Rule::Get(&uintBitsToFloat_30E), - Rule::Get(&uintBitsToFloat_30E), Rule::Get(&fma_00B00B00B), - Rule::Get(&fma_00B00B00B), Rule::Get(&fmaExt_00B00B00B), Rule::Get(&fma_10B10B10B), - Rule::Get(&fma_10B10B10B), Rule::Get(&fmaExt_10B10B10B), Rule::Get(&fma_20B20B20B), - Rule::Get(&fma_20B20B20B), Rule::Get(&fmaExt_20B20B20B), Rule::Get(&fma_30B30B30B), - Rule::Get(&fma_30B30B30B), Rule::Get(&fmaExt_30B30B30B), Rule::Get(&frexp_00B00D), - Rule::Get(&frexp_00B00D), Rule::Get(&frexp_10B10D), - Rule::Get(&frexp_10B10D), Rule::Get(&frexp_20B20D), - Rule::Get(&frexp_20B20D), Rule::Get(&frexp_30B30D), - Rule::Get(&frexp_30B30D), Rule::Get(&ldexp_00B00D), - Rule::Get(&ldexp_00B00D), Rule::Get(&ldexp_10B10D), - Rule::Get(&ldexp_10B10D), Rule::Get(&ldexp_20B20D), - Rule::Get(&ldexp_20B20D), Rule::Get(&ldexp_30B30D), - Rule::Get(&ldexp_30B30D), Rule::Get(&packSnorm2x16_10B), - Rule::Get(&packSnorm2x16_10B), Rule::Get(&packHalf2x16_10B), - Rule::Get(&packHalf2x16_10B), Rule::Get(&unpackSnorm2x16_00E), - Rule::Get(&unpackSnorm2x16_00E), Rule::Get(&unpackHalf2x16_00E), - Rule::Get(&unpackHalf2x16_00E), Rule::Get(&packUnorm2x16_10B), - Rule::Get(&packUnorm2x16_10B), Rule::Get(&unpackUnorm2x16_00E), - Rule::Get(&unpackUnorm2x16_00E), Rule::Get(&packUnorm4x8_30B), - Rule::Get(&packUnorm4x8_30B), Rule::Get(&packSnorm4x8_30B), - Rule::Get(&packSnorm4x8_30B), Rule::Get(&unpackUnorm4x8_00E), - Rule::Get(&unpackUnorm4x8_00E), Rule::Get(&unpackSnorm4x8_00E), - Rule::Get(&unpackSnorm4x8_00E), Rule::Get(&length_00B), - Rule::Get(&length_00B), Rule::Get(&length_10B), - Rule::Get(&length_10B), Rule::Get(&length_20B), - Rule::Get(&length_20B), Rule::Get(&length_30B), - Rule::Get(&length_30B), Rule::Get(&distance_00B00B), - Rule::Get(&distance_00B00B), Rule::Get(&distance_10B10B), - Rule::Get(&distance_10B10B), Rule::Get(&distance_20B20B), - Rule::Get(&distance_20B20B), Rule::Get(&distance_30B30B), - Rule::Get(&distance_30B30B), Rule::Get(&dot_00B00B), - Rule::Get(&dot_00B00B), Rule::Get(&dot_10B10B), - Rule::Get(&dot_10B10B), Rule::Get(&dot_20B20B), - Rule::Get(&dot_20B20B), Rule::Get(&dot_30B30B), - Rule::Get(&dot_30B30B), Rule::Get(&cross_20B20B), - Rule::Get(&cross_20B20B), Rule::Get(&normalize_00B), - Rule::Get(&normalize_00B), Rule::Get(&normalize_10B), - Rule::Get(&normalize_10B), Rule::Get(&normalize_20B), - Rule::Get(&normalize_20B), Rule::Get(&normalize_30B), - Rule::Get(&normalize_30B), Rule::Get(&faceforward_00B00B00B), - Rule::Get(&faceforward_00B00B00B), Rule::Get(&faceforward_10B10B10B), - Rule::Get(&faceforward_10B10B10B), Rule::Get(&faceforward_20B20B20B), - Rule::Get(&faceforward_20B20B20B), Rule::Get(&faceforward_30B30B30B), - Rule::Get(&faceforward_30B30B30B), Rule::Get(&reflect_00B00B), - Rule::Get(&reflect_00B00B), Rule::Get(&reflect_10B10B), - Rule::Get(&reflect_10B10B), Rule::Get(&reflect_20B20B), - Rule::Get(&reflect_20B20B), Rule::Get(&reflect_30B30B), - Rule::Get(&reflect_30B30B), Rule::Get(&refract_00B00B00B), - Rule::Get(&refract_00B00B00B), Rule::Get(&refract_10B10B00B), - Rule::Get(&refract_10B10B00B), Rule::Get(&refract_20B20B00B), - Rule::Get(&refract_20B20B00B), Rule::Get(&refract_30B30B00B), - Rule::Get(&refract_30B30B00B), Rule::Get(&matrixCompMult_50B50B), - Rule::Get(&matrixCompMult_50B50B), Rule::Get(&matrixCompMult_A0BA0B), - Rule::Get(&matrixCompMult_A0BA0B), Rule::Get(&matrixCompMult_F0BF0B), - Rule::Get(&matrixCompMult_F0BF0B), Rule::Get(&matrixCompMult_90B90B), Rule::Get(&matrixCompMult_60B60B), Rule::Get(&matrixCompMult_D0BD0B), Rule::Get(&matrixCompMult_70B70B), Rule::Get(&matrixCompMult_E0BE0B), Rule::Get(&matrixCompMult_B0BB0B), Rule::Get(&outerProduct_10B10B), - Rule::Get(&outerProduct_10B10B), Rule::Get(&outerProduct_20B20B), - Rule::Get(&outerProduct_20B20B), Rule::Get(&outerProduct_30B30B), - Rule::Get(&outerProduct_30B30B), Rule::Get(&outerProduct_20B10B), - Rule::Get(&outerProduct_20B10B), Rule::Get(&outerProduct_10B20B), - Rule::Get(&outerProduct_10B20B), Rule::Get(&outerProduct_30B10B), - Rule::Get(&outerProduct_30B10B), Rule::Get(&outerProduct_10B30B), - Rule::Get(&outerProduct_10B30B), Rule::Get(&outerProduct_30B20B), - Rule::Get(&outerProduct_30B20B), Rule::Get(&outerProduct_20B30B), - Rule::Get(&outerProduct_20B30B), Rule::Get(&transpose_50B), - Rule::Get(&transpose_50B), Rule::Get(&transpose_A0B), - Rule::Get(&transpose_A0B), Rule::Get(&transpose_F0B), - Rule::Get(&transpose_F0B), Rule::Get(&transpose_60B), - Rule::Get(&transpose_60B), Rule::Get(&transpose_90B), - Rule::Get(&transpose_90B), Rule::Get(&transpose_70B), - Rule::Get(&transpose_70B), Rule::Get(&transpose_D0B), - Rule::Get(&transpose_D0B), Rule::Get(&transpose_B0B), - Rule::Get(&transpose_B0B), Rule::Get(&transpose_E0B), - Rule::Get(&transpose_E0B), Rule::Get(&determinant_50B), Rule::Get(&determinant_A0B), Rule::Get(&determinant_F0B), Rule::Get(&inverse_50B), - Rule::Get(&inverse_50B), Rule::Get(&inverse_A0B), - Rule::Get(&inverse_A0B), Rule::Get(&inverse_F0B), - Rule::Get(&inverse_F0B), Rule::Get(&lessThan_10B10B), - Rule::Get(&lessThan_10B10B), Rule::Get(&lessThan_20B20B), - Rule::Get(&lessThan_20B20B), Rule::Get(&lessThan_30B30B), - Rule::Get(&lessThan_30B30B), Rule::Get(&lessThan_10D10D), - Rule::Get(&lessThan_10D10D), Rule::Get(&lessThan_20D20D), - Rule::Get(&lessThan_20D20D), Rule::Get(&lessThan_30D30D), - Rule::Get(&lessThan_30D30D), Rule::Get(&lessThan_10E10E), - Rule::Get(&lessThan_10E10E), Rule::Get(&lessThan_20E20E), - Rule::Get(&lessThan_20E20E), Rule::Get(&lessThan_30E30E), - Rule::Get(&lessThan_30E30E), Rule::Get(&lessThanEqual_10B10B), - Rule::Get(&lessThanEqual_10B10B), Rule::Get(&lessThanEqual_20B20B), - Rule::Get(&lessThanEqual_20B20B), Rule::Get(&lessThanEqual_30B30B), - Rule::Get(&lessThanEqual_30B30B), Rule::Get(&lessThanEqual_10D10D), - Rule::Get(&lessThanEqual_10D10D), Rule::Get(&lessThanEqual_20D20D), - Rule::Get(&lessThanEqual_20D20D), Rule::Get(&lessThanEqual_30D30D), - Rule::Get(&lessThanEqual_30D30D), Rule::Get(&lessThanEqual_10E10E), - Rule::Get(&lessThanEqual_10E10E), Rule::Get(&lessThanEqual_20E20E), - Rule::Get(&lessThanEqual_20E20E), Rule::Get(&lessThanEqual_30E30E), - Rule::Get(&lessThanEqual_30E30E), Rule::Get(&greaterThan_10B10B), - Rule::Get(&greaterThan_10B10B), Rule::Get(&greaterThan_20B20B), - Rule::Get(&greaterThan_20B20B), Rule::Get(&greaterThan_30B30B), - Rule::Get(&greaterThan_30B30B), Rule::Get(&greaterThan_10D10D), - Rule::Get(&greaterThan_10D10D), Rule::Get(&greaterThan_20D20D), - Rule::Get(&greaterThan_20D20D), Rule::Get(&greaterThan_30D30D), - Rule::Get(&greaterThan_30D30D), Rule::Get(&greaterThan_10E10E), - Rule::Get(&greaterThan_10E10E), Rule::Get(&greaterThan_20E20E), - Rule::Get(&greaterThan_20E20E), Rule::Get(&greaterThan_30E30E), - Rule::Get(&greaterThan_30E30E), Rule::Get(&greaterThanEqual_10B10B), - Rule::Get(&greaterThanEqual_10B10B), Rule::Get(&greaterThanEqual_20B20B), - Rule::Get(&greaterThanEqual_20B20B), Rule::Get(&greaterThanEqual_30B30B), - Rule::Get(&greaterThanEqual_30B30B), Rule::Get(&greaterThanEqual_10D10D), - Rule::Get(&greaterThanEqual_10D10D), Rule::Get(&greaterThanEqual_20D20D), - Rule::Get(&greaterThanEqual_20D20D), Rule::Get(&greaterThanEqual_30D30D), - Rule::Get(&greaterThanEqual_30D30D), Rule::Get(&greaterThanEqual_10E10E), - Rule::Get(&greaterThanEqual_10E10E), Rule::Get(&greaterThanEqual_20E20E), - Rule::Get(&greaterThanEqual_20E20E), Rule::Get(&greaterThanEqual_30E30E), - Rule::Get(&greaterThanEqual_30E30E), Rule::Get(&equal_10B10B), - Rule::Get(&equal_10B10B), Rule::Get(&equal_20B20B), - Rule::Get(&equal_20B20B), Rule::Get(&equal_30B30B), - Rule::Get(&equal_30B30B), Rule::Get(&equal_10D10D), - Rule::Get(&equal_10D10D), Rule::Get(&equal_20D20D), - Rule::Get(&equal_20D20D), Rule::Get(&equal_30D30D), - Rule::Get(&equal_30D30D), Rule::Get(&equal_10E10E), - Rule::Get(&equal_10E10E), Rule::Get(&equal_20E20E), - Rule::Get(&equal_20E20E), Rule::Get(&equal_30E30E), - Rule::Get(&equal_30E30E), Rule::Get(&equal_10F10F), - Rule::Get(&equal_10F10F), Rule::Get(&equal_20F20F), - Rule::Get(&equal_20F20F), Rule::Get(&equal_30F30F), - Rule::Get(&equal_30F30F), Rule::Get(¬Equal_10B10B), - Rule::Get(¬Equal_10B10B), Rule::Get(¬Equal_20B20B), - Rule::Get(¬Equal_20B20B), Rule::Get(¬Equal_30B30B), - Rule::Get(¬Equal_30B30B), Rule::Get(¬Equal_10D10D), - Rule::Get(¬Equal_10D10D), Rule::Get(¬Equal_20D20D), - Rule::Get(¬Equal_20D20D), Rule::Get(¬Equal_30D30D), - Rule::Get(¬Equal_30D30D), Rule::Get(¬Equal_10E10E), - Rule::Get(¬Equal_10E10E), Rule::Get(¬Equal_20E20E), - Rule::Get(¬Equal_20E20E), Rule::Get(¬Equal_30E30E), - Rule::Get(¬Equal_30E30E), Rule::Get(¬Equal_10F10F), - Rule::Get(¬Equal_10F10F), Rule::Get(¬Equal_20F20F), - Rule::Get(¬Equal_20F20F), Rule::Get(¬Equal_30F30F), - Rule::Get(¬Equal_30F30F), Rule::Get(&any_10F), - Rule::Get(&any_10F), Rule::Get(&any_20F), - Rule::Get(&any_20F), Rule::Get(&any_30F), - Rule::Get(&any_30F), Rule::Get(&all_10F), - Rule::Get(&all_10F), Rule::Get(&all_20F), - Rule::Get(&all_20F), Rule::Get(&all_30F), - Rule::Get(&all_30F), Rule::Get(¬Func_10F), - Rule::Get(¬Func_10F), Rule::Get(¬Func_20F), - Rule::Get(¬Func_20F), Rule::Get(¬Func_30F), - Rule::Get(¬Func_30F), Rule::Get(&bitfieldExtract_00D00D00D), - Rule::Get(&bitfieldExtract_00D00D00D), Rule::Get(&bitfieldExtract_10D00D00D), - Rule::Get(&bitfieldExtract_10D00D00D), Rule::Get(&bitfieldExtract_20D00D00D), - Rule::Get(&bitfieldExtract_20D00D00D), Rule::Get(&bitfieldExtract_30D00D00D), - Rule::Get(&bitfieldExtract_30D00D00D), Rule::Get(&bitfieldExtract_00E00D00D), - Rule::Get(&bitfieldExtract_00E00D00D), Rule::Get(&bitfieldExtract_10E00D00D), - Rule::Get(&bitfieldExtract_10E00D00D), Rule::Get(&bitfieldExtract_20E00D00D), - Rule::Get(&bitfieldExtract_20E00D00D), Rule::Get(&bitfieldExtract_30E00D00D), - Rule::Get(&bitfieldExtract_30E00D00D), Rule::Get(&bitfieldInsert_00D00D00D00D), - Rule::Get(&bitfieldInsert_00D00D00D00D), Rule::Get(&bitfieldInsert_10D10D00D00D), - Rule::Get(&bitfieldInsert_10D10D00D00D), Rule::Get(&bitfieldInsert_20D20D00D00D), - Rule::Get(&bitfieldInsert_20D20D00D00D), Rule::Get(&bitfieldInsert_30D30D00D00D), - Rule::Get(&bitfieldInsert_30D30D00D00D), Rule::Get(&bitfieldInsert_00E00E00D00D), - Rule::Get(&bitfieldInsert_00E00E00D00D), Rule::Get(&bitfieldInsert_10E10E00D00D), - Rule::Get(&bitfieldInsert_10E10E00D00D), Rule::Get(&bitfieldInsert_20E20E00D00D), - Rule::Get(&bitfieldInsert_20E20E00D00D), Rule::Get(&bitfieldInsert_30E30E00D00D), - Rule::Get(&bitfieldInsert_30E30E00D00D), Rule::Get(&bitfieldReverse_00D), - Rule::Get(&bitfieldReverse_00D), Rule::Get(&bitfieldReverse_10D), - Rule::Get(&bitfieldReverse_10D), Rule::Get(&bitfieldReverse_20D), - Rule::Get(&bitfieldReverse_20D), Rule::Get(&bitfieldReverse_30D), - Rule::Get(&bitfieldReverse_30D), Rule::Get(&bitfieldReverse_00E), - Rule::Get(&bitfieldReverse_00E), Rule::Get(&bitfieldReverse_10E), - Rule::Get(&bitfieldReverse_10E), Rule::Get(&bitfieldReverse_20E), - Rule::Get(&bitfieldReverse_20E), Rule::Get(&bitfieldReverse_30E), - Rule::Get(&bitfieldReverse_30E), Rule::Get(&bitCount_00D), - Rule::Get(&bitCount_00D), Rule::Get(&bitCount_10D), - Rule::Get(&bitCount_10D), Rule::Get(&bitCount_20D), - Rule::Get(&bitCount_20D), Rule::Get(&bitCount_30D), - Rule::Get(&bitCount_30D), Rule::Get(&bitCount_00E), - Rule::Get(&bitCount_00E), Rule::Get(&bitCount_10E), - Rule::Get(&bitCount_10E), Rule::Get(&bitCount_20E), - Rule::Get(&bitCount_20E), Rule::Get(&bitCount_30E), - Rule::Get(&bitCount_30E), Rule::Get(&findLSB_00D), - Rule::Get(&findLSB_00D), Rule::Get(&findLSB_10D), - Rule::Get(&findLSB_10D), Rule::Get(&findLSB_20D), - Rule::Get(&findLSB_20D), Rule::Get(&findLSB_30D), - Rule::Get(&findLSB_30D), Rule::Get(&findLSB_00E), - Rule::Get(&findLSB_00E), Rule::Get(&findLSB_10E), - Rule::Get(&findLSB_10E), Rule::Get(&findLSB_20E), - Rule::Get(&findLSB_20E), Rule::Get(&findLSB_30E), - Rule::Get(&findLSB_30E), Rule::Get(&findMSB_00D), - Rule::Get(&findMSB_00D), Rule::Get(&findMSB_10D), - Rule::Get(&findMSB_10D), Rule::Get(&findMSB_20D), - Rule::Get(&findMSB_20D), Rule::Get(&findMSB_30D), - Rule::Get(&findMSB_30D), Rule::Get(&findMSB_00E), - Rule::Get(&findMSB_00E), Rule::Get(&findMSB_10E), - Rule::Get(&findMSB_10E), Rule::Get(&findMSB_20E), - Rule::Get(&findMSB_20E), Rule::Get(&findMSB_30E), - Rule::Get(&findMSB_30E), Rule::Get(&uaddCarry_00E00E00E), - Rule::Get(&uaddCarry_00E00E00E), Rule::Get(&uaddCarry_10E10E10E), - Rule::Get(&uaddCarry_10E10E10E), Rule::Get(&uaddCarry_20E20E20E), - Rule::Get(&uaddCarry_20E20E20E), Rule::Get(&uaddCarry_30E30E30E), - Rule::Get(&uaddCarry_30E30E30E), Rule::Get(&usubBorrow_00E00E00E), - Rule::Get(&usubBorrow_00E00E00E), Rule::Get(&usubBorrow_10E10E10E), - Rule::Get(&usubBorrow_10E10E10E), Rule::Get(&usubBorrow_20E20E20E), - Rule::Get(&usubBorrow_20E20E20E), Rule::Get(&usubBorrow_30E30E30E), - Rule::Get(&usubBorrow_30E30E30E), Rule::Get(&umulExtended_00E00E00E00E), - Rule::Get(&umulExtended_00E00E00E00E), Rule::Get(&umulExtended_10E10E10E10E), - Rule::Get(&umulExtended_10E10E10E10E), Rule::Get(&umulExtended_20E20E20E20E), - Rule::Get(&umulExtended_20E20E20E20E), Rule::Get(&umulExtended_30E30E30E30E), - Rule::Get(&umulExtended_30E30E30E30E), Rule::Get(&imulExtended_00D00D00D00D), - Rule::Get(&imulExtended_00D00D00D00D), Rule::Get(&imulExtended_10D10D10D10D), - Rule::Get(&imulExtended_10D10D10D10D), Rule::Get(&imulExtended_20D20D20D20D), - Rule::Get(&imulExtended_20D20D20D20D), Rule::Get(&imulExtended_30D30D30D30D), - Rule::Get(&imulExtended_30D30D30D30D), Rule::Get(&texture2D_00I10B), - Rule::Get(&texture2D_00I10B), Rule::Get(&texture2DProj_00I20B), - Rule::Get(&texture2DProj_00I20B), Rule::Get(&texture2DProj_00I30B), - Rule::Get(&texture2DProj_00I30B), Rule::Get(&textureCube_00K20B), - Rule::Get(&textureCube_00K20B), - Rule::Get(&texture2D_00M10B), - Rule::Get(&texture2DProj_00M20B), - Rule::Get(&texture2DProj_00M30B), + Rule::Get(&texture3D_00J20B), + Rule::Get(&texture3DProj_00J30B), + Rule::Get(&shadow2DEXT_00d20B), + Rule::Get( + &shadow2DProjEXT_00d30B), + Rule::Get(&texture2D_00M10B), + Rule::Get( + &texture2D_00M10B), + Rule::Get( + &texture2DProj_00M20B), + Rule::Get( + &texture2DProj_00M20B), + Rule::Get( + &texture2DProj_00M30B), + Rule::Get( + &texture2DProj_00M30B), Rule::Get( &texture2DRect_00O10B), Rule::Get( &texture2DRectProj_00O20B), Rule::Get( &texture2DRectProj_00O30B), - Rule::Get(&texture_00O10B), - Rule::Get(&textureProj_00O20B), - Rule::Get(&textureProj_00O30B), Rule::Get( &texture2DGradEXT_00I10B10B10B), Rule::Get( &texture2DProjGradEXT_00I20B10B10B), Rule::Get( &texture2DProjGradEXT_00I30B10B10B), Rule::Get( &textureCubeGradEXT_00K20B20B20B), + Rule::Get(&textureVideoWEBGL_00y10B), Rule::Get(&texture2D_00I10B00B), - Rule::Get(&texture2D_00I10B00B), Rule::Get(&texture2DProj_00I20B00B), - Rule::Get(&texture2DProj_00I20B00B), Rule::Get(&texture2DProj_00I30B00B), - Rule::Get(&texture2DProj_00I30B00B), Rule::Get(&textureCube_00K20B00B), - Rule::Get(&textureCube_00K20B00B), - Rule::Get(&dFdx_00B), - Rule::Get(&dFdx_00B), - Rule::Get(&dFdxExt_00B), - Rule::Get(&dFdx_10B), - Rule::Get(&dFdx_10B), - Rule::Get(&dFdxExt_10B), - Rule::Get(&dFdx_20B), - Rule::Get(&dFdx_20B), - Rule::Get(&dFdxExt_20B), - Rule::Get(&dFdx_30B), - Rule::Get(&dFdx_30B), - Rule::Get(&dFdxExt_30B), - Rule::Get(&dFdy_00B), - Rule::Get(&dFdy_00B), - Rule::Get(&dFdyExt_00B), - Rule::Get(&dFdy_10B), - Rule::Get(&dFdy_10B), - Rule::Get(&dFdyExt_10B), - Rule::Get(&dFdy_20B), - Rule::Get(&dFdy_20B), - Rule::Get(&dFdyExt_20B), - Rule::Get(&dFdy_30B), - Rule::Get(&dFdy_30B), - Rule::Get(&dFdyExt_30B), - Rule::Get(&fwidth_00B), - Rule::Get(&fwidth_00B), - Rule::Get( - &fwidthExt_00B), - Rule::Get(&fwidth_10B), - Rule::Get(&fwidth_10B), - Rule::Get( - &fwidthExt_10B), - Rule::Get(&fwidth_20B), - Rule::Get(&fwidth_20B), - Rule::Get( - &fwidthExt_20B), - Rule::Get(&fwidth_30B), - Rule::Get(&fwidth_30B), - Rule::Get( - &fwidthExt_30B), + Rule::Get(&texture3D_00J20B00B), + Rule::Get( + &texture3DProj_00J30B00B), + Rule::Get(&texture3DLod_00J20B00B), + Rule::Get(&texture3DProjLod_00J30B00B), + Rule::Get(&texture2DLod_00I10B00B), + Rule::Get(&texture2DProjLod_00I20B00B), + Rule::Get(&texture2DProjLod_00I30B00B), + Rule::Get(&textureCubeLod_00K20B00B), Rule::Get( &texture2DLodEXT_00I10B00B), Rule::Get( &texture2DProjLodEXT_00I20B00B), Rule::Get( &texture2DProjLodEXT_00I30B00B), Rule::Get( &textureCubeLodEXT_00K20B00B), - Rule::Get( - &shadow2DEXT_00d20B), - Rule::Get( - &shadow2DProjEXT_00d30B), - Rule::Get(&texture3D_00J20B), - Rule::Get(&texture3DProj_00J30B), - Rule::Get(&texture3D_00J20B00B), - Rule::Get( - &texture3DProj_00J30B00B), - Rule::Get( - &texture3DLod_00J20B00B), - Rule::Get( - &texture3DProjLod_00J30B00B), - Rule::Get(&texture2DLod_00I10B00B), - Rule::Get(&texture2DLod_00I10B00B), - Rule::Get(&texture2DProjLod_00I20B00B), - Rule::Get(&texture2DProjLod_00I20B00B), - Rule::Get(&texture2DProjLod_00I30B00B), - Rule::Get(&texture2DProjLod_00I30B00B), - Rule::Get(&textureCubeLod_00K20B00B), - Rule::Get(&textureCubeLod_00K20B00B), Rule::Get(&texture_00I10B), - Rule::Get(&texture_00I10B), Rule::Get(&texture_00R10B), - Rule::Get(&texture_00R10B), Rule::Get(&texture_00X10B), - Rule::Get(&texture_00X10B), Rule::Get(&texture_00J20B), - Rule::Get(&texture_00J20B), Rule::Get(&texture_00S20B), - Rule::Get(&texture_00S20B), Rule::Get(&texture_00Y20B), - Rule::Get(&texture_00Y20B), Rule::Get(&texture_00K20B), - Rule::Get(&texture_00K20B), Rule::Get(&texture_00T20B), - Rule::Get(&texture_00T20B), Rule::Get(&texture_00Z20B), - Rule::Get(&texture_00Z20B), Rule::Get(&texture_00L20B), - Rule::Get(&texture_00L20B), Rule::Get(&texture_00U20B), - Rule::Get(&texture_00U20B), Rule::Get(&texture_00a20B), - Rule::Get(&texture_00a20B), Rule::Get(&texture_00d20B), - Rule::Get(&texture_00d20B), Rule::Get(&texture_00e30B), - Rule::Get(&texture_00e30B), Rule::Get(&texture_00f30B), - Rule::Get(&texture_00f30B), + Rule::Get(&texture_00k30B), + Rule::Get( + &textureExt_00k30B), + Rule::Get( + &textureExt_00k30B), + Rule::Get(&texture_00s30B), + Rule::Get( + &textureExt_00s30B), + Rule::Get( + &textureExt_00s30B), + Rule::Get(&texture_00x30B), + Rule::Get( + &textureExt_00x30B), + Rule::Get( + &textureExt_00x30B), + Rule::Get(&texture_00l30B00B), + Rule::Get( + &textureExt_00l30B00B), + Rule::Get( + &textureExt_00l30B00B), + Rule::Get( + &texture_00M10B), + Rule::Get(&texture_00N10B), + Rule::Get(&texture_00O10B), + Rule::Get(&texture_00y10B), Rule::Get(&textureProj_00I20B), - Rule::Get(&textureProj_00I20B), Rule::Get(&textureProj_00R20B), - Rule::Get(&textureProj_00R20B), Rule::Get(&textureProj_00X20B), - Rule::Get(&textureProj_00X20B), Rule::Get(&textureProj_00I30B), - Rule::Get(&textureProj_00I30B), Rule::Get(&textureProj_00R30B), - Rule::Get(&textureProj_00R30B), Rule::Get(&textureProj_00X30B), - Rule::Get(&textureProj_00X30B), Rule::Get(&textureProj_00J30B), - Rule::Get(&textureProj_00J30B), Rule::Get(&textureProj_00S30B), - Rule::Get(&textureProj_00S30B), Rule::Get(&textureProj_00Y30B), - Rule::Get(&textureProj_00Y30B), Rule::Get(&textureProj_00d30B), - Rule::Get(&textureProj_00d30B), + Rule::Get( + &textureProj_00M20B), + Rule::Get( + &textureProj_00M30B), + Rule::Get(&textureProj_00N20B), + Rule::Get(&textureProj_00N30B), + Rule::Get(&textureProj_00O20B), + Rule::Get(&textureProj_00O30B), Rule::Get(&textureLod_00I10B00B), - Rule::Get(&textureLod_00I10B00B), Rule::Get(&textureLod_00R10B00B), - Rule::Get(&textureLod_00R10B00B), Rule::Get(&textureLod_00X10B00B), - Rule::Get(&textureLod_00X10B00B), Rule::Get(&textureLod_00J20B00B), - Rule::Get(&textureLod_00J20B00B), Rule::Get(&textureLod_00S20B00B), - Rule::Get(&textureLod_00S20B00B), Rule::Get(&textureLod_00Y20B00B), - Rule::Get(&textureLod_00Y20B00B), Rule::Get(&textureLod_00K20B00B), - Rule::Get(&textureLod_00K20B00B), Rule::Get(&textureLod_00T20B00B), - Rule::Get(&textureLod_00T20B00B), Rule::Get(&textureLod_00Z20B00B), - Rule::Get(&textureLod_00Z20B00B), Rule::Get(&textureLod_00L20B00B), - Rule::Get(&textureLod_00L20B00B), Rule::Get(&textureLod_00U20B00B), - Rule::Get(&textureLod_00U20B00B), Rule::Get(&textureLod_00a20B00B), - Rule::Get(&textureLod_00a20B00B), Rule::Get(&textureLod_00d20B00B), - Rule::Get(&textureLod_00d20B00B), + Rule::Get(&textureLod_00k30B00B), + Rule::Get( + &textureLodExt_00k30B00B), + Rule::Get( + &textureLodExt_00k30B00B), + Rule::Get(&textureLod_00s30B00B), + Rule::Get( + &textureLodExt_00s30B00B), + Rule::Get( + &textureLodExt_00s30B00B), + Rule::Get(&textureLod_00x30B00B), + Rule::Get( + &textureLodExt_00x30B00B), + Rule::Get( + &textureLodExt_00x30B00B), Rule::Get(&textureSize_00I00D), - Rule::Get(&textureSize_00I00D), Rule::Get(&textureSize_00R00D), - Rule::Get(&textureSize_00R00D), Rule::Get(&textureSize_00X00D), - Rule::Get(&textureSize_00X00D), Rule::Get(&textureSize_00J00D), - Rule::Get(&textureSize_00J00D), Rule::Get(&textureSize_00S00D), - Rule::Get(&textureSize_00S00D), Rule::Get(&textureSize_00Y00D), - Rule::Get(&textureSize_00Y00D), Rule::Get(&textureSize_00K00D), - Rule::Get(&textureSize_00K00D), Rule::Get(&textureSize_00T00D), - Rule::Get(&textureSize_00T00D), Rule::Get(&textureSize_00Z00D), - Rule::Get(&textureSize_00Z00D), Rule::Get(&textureSize_00L00D), - Rule::Get(&textureSize_00L00D), Rule::Get(&textureSize_00U00D), - Rule::Get(&textureSize_00U00D), Rule::Get(&textureSize_00a00D), - Rule::Get(&textureSize_00a00D), Rule::Get(&textureSize_00d00D), - Rule::Get(&textureSize_00d00D), Rule::Get(&textureSize_00e00D), - Rule::Get(&textureSize_00e00D), Rule::Get(&textureSize_00f00D), - Rule::Get(&textureSize_00f00D), - Rule::Get(&textureProjLod_00I20B00B), - Rule::Get(&textureProjLod_00I20B00B), - Rule::Get(&textureProjLod_00R20B00B), - Rule::Get(&textureProjLod_00R20B00B), - Rule::Get(&textureProjLod_00X20B00B), - Rule::Get(&textureProjLod_00X20B00B), - Rule::Get(&textureProjLod_00I30B00B), - Rule::Get(&textureProjLod_00I30B00B), - Rule::Get(&textureProjLod_00R30B00B), - Rule::Get(&textureProjLod_00R30B00B), - Rule::Get(&textureProjLod_00X30B00B), - Rule::Get(&textureProjLod_00X30B00B), - Rule::Get(&textureProjLod_00J30B00B), - Rule::Get(&textureProjLod_00J30B00B), - Rule::Get(&textureProjLod_00S30B00B), - Rule::Get(&textureProjLod_00S30B00B), - Rule::Get(&textureProjLod_00Y30B00B), - Rule::Get(&textureProjLod_00Y30B00B), - Rule::Get(&textureProjLod_00d30B00B), - Rule::Get(&textureProjLod_00d30B00B), - Rule::Get(&texelFetch_00I10D00D), - Rule::Get(&texelFetch_00I10D00D), - Rule::Get(&texelFetch_00R10D00D), - Rule::Get(&texelFetch_00R10D00D), - Rule::Get(&texelFetch_00X10D00D), - Rule::Get(&texelFetch_00X10D00D), - Rule::Get(&texelFetch_00J20D00D), - Rule::Get(&texelFetch_00J20D00D), - Rule::Get(&texelFetch_00S20D00D), - Rule::Get(&texelFetch_00S20D00D), - Rule::Get(&texelFetch_00Y20D00D), - Rule::Get(&texelFetch_00Y20D00D), - Rule::Get(&texelFetch_00L20D00D), - Rule::Get(&texelFetch_00L20D00D), - Rule::Get(&texelFetch_00U20D00D), - Rule::Get(&texelFetch_00U20D00D), - Rule::Get(&texelFetch_00a20D00D), - Rule::Get(&texelFetch_00a20D00D), - Rule::Get(&textureGrad_00I10B10B10B), - Rule::Get(&textureGrad_00I10B10B10B), - Rule::Get(&textureGrad_00R10B10B10B), - Rule::Get(&textureGrad_00R10B10B10B), - Rule::Get(&textureGrad_00X10B10B10B), - Rule::Get(&textureGrad_00X10B10B10B), - Rule::Get(&textureGrad_00J20B20B20B), - Rule::Get(&textureGrad_00J20B20B20B), - Rule::Get(&textureGrad_00S20B20B20B), - Rule::Get(&textureGrad_00S20B20B20B), - Rule::Get(&textureGrad_00Y20B20B20B), - Rule::Get(&textureGrad_00Y20B20B20B), - Rule::Get(&textureGrad_00K20B20B20B), - Rule::Get(&textureGrad_00K20B20B20B), - Rule::Get(&textureGrad_00T20B20B20B), - Rule::Get(&textureGrad_00T20B20B20B), - Rule::Get(&textureGrad_00Z20B20B20B), - Rule::Get(&textureGrad_00Z20B20B20B), - Rule::Get(&textureGrad_00d20B10B10B), - Rule::Get(&textureGrad_00d20B10B10B), - Rule::Get(&textureGrad_00e30B20B20B), - Rule::Get(&textureGrad_00e30B20B20B), - Rule::Get(&textureGrad_00L20B10B10B), - Rule::Get(&textureGrad_00L20B10B10B), - Rule::Get(&textureGrad_00U20B10B10B), - Rule::Get(&textureGrad_00U20B10B10B), - Rule::Get(&textureGrad_00a20B10B10B), - Rule::Get(&textureGrad_00a20B10B10B), - Rule::Get(&textureGrad_00f30B10B10B), - Rule::Get(&textureGrad_00f30B10B10B), - Rule::Get(&textureProjGrad_00I20B10B10B), - Rule::Get(&textureProjGrad_00I20B10B10B), - Rule::Get(&textureProjGrad_00R20B10B10B), - Rule::Get(&textureProjGrad_00R20B10B10B), - Rule::Get(&textureProjGrad_00X20B10B10B), - Rule::Get(&textureProjGrad_00X20B10B10B), - Rule::Get(&textureProjGrad_00I30B10B10B), - Rule::Get(&textureProjGrad_00I30B10B10B), - Rule::Get(&textureProjGrad_00R30B10B10B), - Rule::Get(&textureProjGrad_00R30B10B10B), - Rule::Get(&textureProjGrad_00X30B10B10B), - Rule::Get(&textureProjGrad_00X30B10B10B), - Rule::Get(&textureProjGrad_00J30B20B20B), - Rule::Get(&textureProjGrad_00J30B20B20B), - Rule::Get(&textureProjGrad_00S30B20B20B), - Rule::Get(&textureProjGrad_00S30B20B20B), - Rule::Get(&textureProjGrad_00Y30B20B20B), - Rule::Get(&textureProjGrad_00Y30B20B20B), - Rule::Get(&textureProjGrad_00d30B10B10B), - Rule::Get(&textureProjGrad_00d30B10B10B), + Rule::Get(&textureSize_00k00D), + Rule::Get( + &textureSizeExt_00k00D), + Rule::Get( + &textureSizeExt_00k00D), + Rule::Get(&textureSize_00s00D), + Rule::Get( + &textureSizeExt_00s00D), + Rule::Get( + &textureSizeExt_00s00D), + Rule::Get(&textureSize_00x00D), + Rule::Get( + &textureSizeExt_00x00D), + Rule::Get( + &textureSizeExt_00x00D), + Rule::Get(&textureSize_00l00D), + Rule::Get( + &textureSizeExt_00l00D), + Rule::Get( + &textureSizeExt_00l00D), + Rule::Get(&textureSize_00j), + Rule::Get(&textureSizeExt_00j), + Rule::Get(&textureSizeExt_00j), + Rule::Get(&textureSize_00r), + Rule::Get(&textureSizeExt_00r), + Rule::Get(&textureSizeExt_00r), + Rule::Get(&textureSize_00w), + Rule::Get(&textureSizeExt_00w), + Rule::Get(&textureSizeExt_00w), Rule::Get(&textureSize_00P), - Rule::Get(&textureSize_00P), Rule::Get( &textureSizeExt_00P), Rule::Get(&textureSize_00V), - Rule::Get(&textureSize_00V), Rule::Get( &textureSizeExt_00V), Rule::Get(&textureSize_00b), - Rule::Get(&textureSize_00b), Rule::Get( &textureSizeExt_00b), Rule::Get( &textureSizeExt_00Q), Rule::Get( &textureSizeExt_00W), Rule::Get( &textureSizeExt_00c), - Rule::Get(&textureSize_00k00D), - Rule::Get(&textureSize_00s00D), - Rule::Get(&textureSize_00x00D), - Rule::Get(&textureSize_00l00D), - Rule::Get(&texture_00k30B), - Rule::Get(&texture_00s30B), - Rule::Get(&texture_00x30B), - Rule::Get(&texture_00k30B00B), - Rule::Get(&texture_00s30B00B), - Rule::Get(&texture_00x30B00B), - Rule::Get(&texture_00l30B00B), - Rule::Get(&textureLod_00k30B00B), - Rule::Get(&textureLod_00s30B00B), - Rule::Get(&textureLod_00x30B00B), - Rule::Get(&textureGrad_00k30B20B20B), - Rule::Get(&textureGrad_00s30B20B20B), - Rule::Get(&textureGrad_00x30B20B20B), - Rule::Get(&textureGather_00k30B), - Rule::Get(&textureGather_00s30B), - Rule::Get(&textureGather_00x30B), - Rule::Get(&textureGather_00k30B00D), - Rule::Get(&textureGather_00s30B00D), - Rule::Get(&textureGather_00x30B00D), - Rule::Get(&textureGather_00l30B00B), - Rule::Get(&textureSize_00j), - Rule::Get(&textureSize_00r), - Rule::Get(&textureSize_00w), - Rule::Get(&texelFetch_00j00D), - Rule::Get(&texelFetch_00r00D), - Rule::Get(&texelFetch_00w00D), + Rule::Get( + &textureSize_00M00D), + Rule::Get(&textureSize_00N00D), + Rule::Get(&textureProjLod_00I20B00B), + Rule::Get(&textureProjLod_00R20B00B), + Rule::Get(&textureProjLod_00X20B00B), + Rule::Get(&textureProjLod_00I30B00B), + Rule::Get(&textureProjLod_00R30B00B), + Rule::Get(&textureProjLod_00X30B00B), + Rule::Get(&textureProjLod_00J30B00B), + Rule::Get(&textureProjLod_00S30B00B), + Rule::Get(&textureProjLod_00Y30B00B), + Rule::Get(&textureProjLod_00d30B00B), + Rule::Get(&texelFetch_00I10D00D), + Rule::Get(&texelFetch_00R10D00D), + Rule::Get(&texelFetch_00X10D00D), + Rule::Get(&texelFetch_00J20D00D), + Rule::Get(&texelFetch_00S20D00D), + Rule::Get(&texelFetch_00Y20D00D), + Rule::Get(&texelFetch_00L20D00D), + Rule::Get(&texelFetch_00U20D00D), + Rule::Get(&texelFetch_00a20D00D), + Rule::Get(&texelFetch_00j00D), + Rule::Get(&texelFetchExt_00j00D), + Rule::Get(&texelFetchExt_00j00D), + Rule::Get(&texelFetch_00r00D), + Rule::Get(&texelFetchExt_00r00D), + Rule::Get(&texelFetchExt_00r00D), + Rule::Get(&texelFetch_00w00D), + Rule::Get(&texelFetchExt_00w00D), + Rule::Get(&texelFetchExt_00w00D), Rule::Get(&texelFetch_00P10D00D), - Rule::Get(&texelFetch_00P10D00D), Rule::Get( &texelFetchExt_00P10D00D), Rule::Get(&texelFetch_00V10D00D), - Rule::Get(&texelFetch_00V10D00D), Rule::Get( &texelFetchExt_00V10D00D), Rule::Get(&texelFetch_00b10D00D), - Rule::Get(&texelFetch_00b10D00D), Rule::Get( &texelFetchExt_00b10D00D), Rule::Get( &texelFetchExt_00Q20D00D), Rule::Get( &texelFetchExt_00W20D00D), Rule::Get( &texelFetchExt_00c20D00D), + Rule::Get( + &texelFetch_00M10D00D), + Rule::Get(&texelFetch_00N10D00D), + Rule::Get(&textureGrad_00I10B10B10B), + Rule::Get(&textureGrad_00R10B10B10B), + Rule::Get(&textureGrad_00X10B10B10B), + Rule::Get(&textureGrad_00J20B20B20B), + Rule::Get(&textureGrad_00S20B20B20B), + Rule::Get(&textureGrad_00Y20B20B20B), + Rule::Get(&textureGrad_00K20B20B20B), + Rule::Get(&textureGrad_00T20B20B20B), + Rule::Get(&textureGrad_00Z20B20B20B), + Rule::Get(&textureGrad_00d20B10B10B), + Rule::Get(&textureGrad_00e30B20B20B), + Rule::Get(&textureGrad_00L20B10B10B), + Rule::Get(&textureGrad_00U20B10B10B), + Rule::Get(&textureGrad_00a20B10B10B), + Rule::Get(&textureGrad_00f30B10B10B), + Rule::Get(&textureGrad_00k30B20B20B), + Rule::Get( + &textureGradExt_00k30B20B20B), + Rule::Get( + &textureGradExt_00k30B20B20B), + Rule::Get(&textureGrad_00s30B20B20B), + Rule::Get( + &textureGradExt_00s30B20B20B), + Rule::Get( + &textureGradExt_00s30B20B20B), + Rule::Get(&textureGrad_00x30B20B20B), + Rule::Get( + &textureGradExt_00x30B20B20B), + Rule::Get( + &textureGradExt_00x30B20B20B), + Rule::Get(&textureProjGrad_00I20B10B10B), + Rule::Get(&textureProjGrad_00R20B10B10B), + Rule::Get(&textureProjGrad_00X20B10B10B), + Rule::Get(&textureProjGrad_00I30B10B10B), + Rule::Get(&textureProjGrad_00R30B10B10B), + Rule::Get(&textureProjGrad_00X30B10B10B), + Rule::Get(&textureProjGrad_00J30B20B20B), + Rule::Get(&textureProjGrad_00S30B20B20B), + Rule::Get(&textureProjGrad_00Y30B20B20B), + Rule::Get(&textureProjGrad_00d30B10B10B), Rule::Get(&texture_00I10B00B), - Rule::Get(&texture_00I10B00B), Rule::Get(&texture_00R10B00B), - Rule::Get(&texture_00R10B00B), Rule::Get(&texture_00X10B00B), - Rule::Get(&texture_00X10B00B), Rule::Get(&texture_00J20B00B), - Rule::Get(&texture_00J20B00B), Rule::Get(&texture_00S20B00B), - Rule::Get(&texture_00S20B00B), Rule::Get(&texture_00Y20B00B), - Rule::Get(&texture_00Y20B00B), Rule::Get(&texture_00K20B00B), - Rule::Get(&texture_00K20B00B), Rule::Get(&texture_00T20B00B), - Rule::Get(&texture_00T20B00B), Rule::Get(&texture_00Z20B00B), - Rule::Get(&texture_00Z20B00B), Rule::Get(&texture_00L20B00B), - Rule::Get(&texture_00L20B00B), Rule::Get(&texture_00U20B00B), - Rule::Get(&texture_00U20B00B), Rule::Get(&texture_00a20B00B), - Rule::Get(&texture_00a20B00B), Rule::Get(&textureProj_00I20B00B), - Rule::Get(&textureProj_00I20B00B), Rule::Get(&textureProj_00R20B00B), - Rule::Get(&textureProj_00R20B00B), Rule::Get(&textureProj_00X20B00B), - Rule::Get(&textureProj_00X20B00B), Rule::Get(&textureProj_00I30B00B), - Rule::Get(&textureProj_00I30B00B), Rule::Get(&textureProj_00R30B00B), - Rule::Get(&textureProj_00R30B00B), Rule::Get(&textureProj_00X30B00B), - Rule::Get(&textureProj_00X30B00B), Rule::Get(&textureProj_00J30B00B), - Rule::Get(&textureProj_00J30B00B), Rule::Get(&textureProj_00S30B00B), - Rule::Get(&textureProj_00S30B00B), Rule::Get(&textureProj_00Y30B00B), - Rule::Get(&textureProj_00Y30B00B), Rule::Get(&texture_00d20B00B), - Rule::Get(&texture_00d20B00B), Rule::Get(&texture_00e30B00B), - Rule::Get(&texture_00e30B00B), Rule::Get(&textureProj_00d30B00B), - Rule::Get(&textureProj_00d30B00B), + Rule::Get(&texture_00k30B00B), + Rule::Get( + &textureExt_00k30B00B), + Rule::Get( + &textureExt_00k30B00B), + Rule::Get(&texture_00s30B00B), + Rule::Get( + &textureExt_00s30B00B), + Rule::Get( + &textureExt_00s30B00B), + Rule::Get(&texture_00x30B00B), + Rule::Get( + &textureExt_00x30B00B), + Rule::Get( + &textureExt_00x30B00B), Rule::Get( &texture_00M10B00B), Rule::Get( &textureProj_00M20B00B), Rule::Get( &textureProj_00M30B00B), Rule::Get(&texture_00N10B00B), Rule::Get(&textureProj_00N20B00B), Rule::Get(&textureProj_00N30B00B), Rule::Get(&textureOffset_00I10B10D), - Rule::Get(&textureOffset_00I10B10D), Rule::Get(&textureOffset_00R10B10D), - Rule::Get(&textureOffset_00R10B10D), Rule::Get(&textureOffset_00X10B10D), - Rule::Get(&textureOffset_00X10B10D), Rule::Get(&textureOffset_00J20B20D), - Rule::Get(&textureOffset_00J20B20D), Rule::Get(&textureOffset_00S20B20D), - Rule::Get(&textureOffset_00S20B20D), Rule::Get(&textureOffset_00Y20B20D), - Rule::Get(&textureOffset_00Y20B20D), Rule::Get(&textureOffset_00d20B10D), - Rule::Get(&textureOffset_00d20B10D), Rule::Get(&textureOffset_00L20B10D), - Rule::Get(&textureOffset_00L20B10D), Rule::Get(&textureOffset_00U20B10D), - Rule::Get(&textureOffset_00U20B10D), Rule::Get(&textureOffset_00a20B10D), - Rule::Get(&textureOffset_00a20B10D), Rule::Get(&textureProjOffset_00I20B10D), - Rule::Get(&textureProjOffset_00I20B10D), Rule::Get(&textureProjOffset_00R20B10D), - Rule::Get(&textureProjOffset_00R20B10D), Rule::Get(&textureProjOffset_00X20B10D), - Rule::Get(&textureProjOffset_00X20B10D), Rule::Get(&textureProjOffset_00I30B10D), - Rule::Get(&textureProjOffset_00I30B10D), Rule::Get(&textureProjOffset_00R30B10D), - Rule::Get(&textureProjOffset_00R30B10D), Rule::Get(&textureProjOffset_00X30B10D), - Rule::Get(&textureProjOffset_00X30B10D), Rule::Get(&textureProjOffset_00J30B20D), - Rule::Get(&textureProjOffset_00J30B20D), Rule::Get(&textureProjOffset_00S30B20D), - Rule::Get(&textureProjOffset_00S30B20D), Rule::Get(&textureProjOffset_00Y30B20D), - Rule::Get(&textureProjOffset_00Y30B20D), Rule::Get(&textureProjOffset_00d30B10D), - Rule::Get(&textureProjOffset_00d30B10D), Rule::Get(&textureLodOffset_00I10B00B10D), - Rule::Get(&textureLodOffset_00I10B00B10D), Rule::Get(&textureLodOffset_00R10B00B10D), - Rule::Get(&textureLodOffset_00R10B00B10D), Rule::Get(&textureLodOffset_00X10B00B10D), - Rule::Get(&textureLodOffset_00X10B00B10D), Rule::Get(&textureLodOffset_00J20B00B20D), - Rule::Get(&textureLodOffset_00J20B00B20D), Rule::Get(&textureLodOffset_00S20B00B20D), - Rule::Get(&textureLodOffset_00S20B00B20D), Rule::Get(&textureLodOffset_00Y20B00B20D), - Rule::Get(&textureLodOffset_00Y20B00B20D), Rule::Get(&textureLodOffset_00d20B00B10D), - Rule::Get(&textureLodOffset_00d20B00B10D), Rule::Get(&textureLodOffset_00L20B00B10D), - Rule::Get(&textureLodOffset_00L20B00B10D), Rule::Get(&textureLodOffset_00U20B00B10D), - Rule::Get(&textureLodOffset_00U20B00B10D), Rule::Get(&textureLodOffset_00a20B00B10D), - Rule::Get(&textureLodOffset_00a20B00B10D), Rule::Get(&textureProjLodOffset_00I20B00B10D), - Rule::Get(&textureProjLodOffset_00I20B00B10D), Rule::Get(&textureProjLodOffset_00R20B00B10D), - Rule::Get(&textureProjLodOffset_00R20B00B10D), Rule::Get(&textureProjLodOffset_00X20B00B10D), - Rule::Get(&textureProjLodOffset_00X20B00B10D), Rule::Get(&textureProjLodOffset_00I30B00B10D), - Rule::Get(&textureProjLodOffset_00I30B00B10D), Rule::Get(&textureProjLodOffset_00R30B00B10D), - Rule::Get(&textureProjLodOffset_00R30B00B10D), Rule::Get(&textureProjLodOffset_00X30B00B10D), - Rule::Get(&textureProjLodOffset_00X30B00B10D), Rule::Get(&textureProjLodOffset_00J30B00B20D), - Rule::Get(&textureProjLodOffset_00J30B00B20D), Rule::Get(&textureProjLodOffset_00S30B00B20D), - Rule::Get(&textureProjLodOffset_00S30B00B20D), Rule::Get(&textureProjLodOffset_00Y30B00B20D), - Rule::Get(&textureProjLodOffset_00Y30B00B20D), Rule::Get(&textureProjLodOffset_00d30B00B10D), - Rule::Get(&textureProjLodOffset_00d30B00B10D), Rule::Get(&texelFetchOffset_00I10D00D10D), - Rule::Get(&texelFetchOffset_00I10D00D10D), Rule::Get(&texelFetchOffset_00R10D00D10D), - Rule::Get(&texelFetchOffset_00R10D00D10D), Rule::Get(&texelFetchOffset_00X10D00D10D), - Rule::Get(&texelFetchOffset_00X10D00D10D), Rule::Get(&texelFetchOffset_00J20D00D20D), - Rule::Get(&texelFetchOffset_00J20D00D20D), Rule::Get(&texelFetchOffset_00S20D00D20D), - Rule::Get(&texelFetchOffset_00S20D00D20D), Rule::Get(&texelFetchOffset_00Y20D00D20D), - Rule::Get(&texelFetchOffset_00Y20D00D20D), Rule::Get(&texelFetchOffset_00L20D00D10D), - Rule::Get(&texelFetchOffset_00L20D00D10D), Rule::Get(&texelFetchOffset_00U20D00D10D), - Rule::Get(&texelFetchOffset_00U20D00D10D), Rule::Get(&texelFetchOffset_00a20D00D10D), - Rule::Get(&texelFetchOffset_00a20D00D10D), Rule::Get(&textureGradOffset_00I10B10B10B10D), - Rule::Get(&textureGradOffset_00I10B10B10B10D), Rule::Get(&textureGradOffset_00R10B10B10B10D), - Rule::Get(&textureGradOffset_00R10B10B10B10D), Rule::Get(&textureGradOffset_00X10B10B10B10D), - Rule::Get(&textureGradOffset_00X10B10B10B10D), Rule::Get(&textureGradOffset_00J20B20B20B20D), - Rule::Get(&textureGradOffset_00J20B20B20B20D), Rule::Get(&textureGradOffset_00S20B20B20B20D), - Rule::Get(&textureGradOffset_00S20B20B20B20D), Rule::Get(&textureGradOffset_00Y20B20B20B20D), - Rule::Get(&textureGradOffset_00Y20B20B20B20D), Rule::Get(&textureGradOffset_00d20B10B10B10D), - Rule::Get(&textureGradOffset_00d20B10B10B10D), Rule::Get(&textureGradOffset_00L20B10B10B10D), - Rule::Get(&textureGradOffset_00L20B10B10B10D), Rule::Get(&textureGradOffset_00U20B10B10B10D), - Rule::Get(&textureGradOffset_00U20B10B10B10D), Rule::Get(&textureGradOffset_00a20B10B10B10D), - Rule::Get(&textureGradOffset_00a20B10B10B10D), Rule::Get(&textureGradOffset_00f30B10B10B10D), - Rule::Get(&textureGradOffset_00f30B10B10B10D), Rule::Get(&textureProjGradOffset_00I20B10B10B10D), - Rule::Get(&textureProjGradOffset_00I20B10B10B10D), Rule::Get(&textureProjGradOffset_00R20B10B10B10D), - Rule::Get(&textureProjGradOffset_00R20B10B10B10D), Rule::Get(&textureProjGradOffset_00X20B10B10B10D), - Rule::Get(&textureProjGradOffset_00X20B10B10B10D), Rule::Get(&textureProjGradOffset_00I30B10B10B10D), - Rule::Get(&textureProjGradOffset_00I30B10B10B10D), Rule::Get(&textureProjGradOffset_00R30B10B10B10D), - Rule::Get(&textureProjGradOffset_00R30B10B10B10D), Rule::Get(&textureProjGradOffset_00X30B10B10B10D), - Rule::Get(&textureProjGradOffset_00X30B10B10B10D), Rule::Get(&textureProjGradOffset_00J30B20B20B20D), - Rule::Get(&textureProjGradOffset_00J30B20B20B20D), Rule::Get(&textureProjGradOffset_00S30B20B20B20D), - Rule::Get(&textureProjGradOffset_00S30B20B20B20D), Rule::Get(&textureProjGradOffset_00Y30B20B20B20D), - Rule::Get(&textureProjGradOffset_00Y30B20B20B20D), Rule::Get(&textureProjGradOffset_00d30B10B10B10D), - Rule::Get(&textureProjGradOffset_00d30B10B10B10D), Rule::Get(&textureOffset_00I10B10D00B), - Rule::Get(&textureOffset_00I10B10D00B), Rule::Get(&textureOffset_00R10B10D00B), - Rule::Get(&textureOffset_00R10B10D00B), Rule::Get(&textureOffset_00X10B10D00B), - Rule::Get(&textureOffset_00X10B10D00B), Rule::Get(&textureOffset_00J20B20D00B), - Rule::Get(&textureOffset_00J20B20D00B), Rule::Get(&textureOffset_00S20B20D00B), - Rule::Get(&textureOffset_00S20B20D00B), Rule::Get(&textureOffset_00Y20B20D00B), - Rule::Get(&textureOffset_00Y20B20D00B), Rule::Get(&textureOffset_00d20B10D00B), - Rule::Get(&textureOffset_00d20B10D00B), Rule::Get(&textureOffset_00L20B10D00B), - Rule::Get(&textureOffset_00L20B10D00B), Rule::Get(&textureOffset_00U20B10D00B), - Rule::Get(&textureOffset_00U20B10D00B), Rule::Get(&textureOffset_00a20B10D00B), - Rule::Get(&textureOffset_00a20B10D00B), Rule::Get(&textureProjOffset_00I20B10D00B), - Rule::Get(&textureProjOffset_00I20B10D00B), Rule::Get(&textureProjOffset_00R20B10D00B), - Rule::Get(&textureProjOffset_00R20B10D00B), Rule::Get(&textureProjOffset_00X20B10D00B), - Rule::Get(&textureProjOffset_00X20B10D00B), Rule::Get(&textureProjOffset_00I30B10D00B), - Rule::Get(&textureProjOffset_00I30B10D00B), Rule::Get(&textureProjOffset_00R30B10D00B), - Rule::Get(&textureProjOffset_00R30B10D00B), Rule::Get(&textureProjOffset_00X30B10D00B), - Rule::Get(&textureProjOffset_00X30B10D00B), Rule::Get(&textureProjOffset_00J30B20D00B), - Rule::Get(&textureProjOffset_00J30B20D00B), Rule::Get(&textureProjOffset_00S30B20D00B), - Rule::Get(&textureProjOffset_00S30B20D00B), Rule::Get(&textureProjOffset_00Y30B20D00B), - Rule::Get(&textureProjOffset_00Y30B20D00B), Rule::Get(&textureProjOffset_00d30B10D00B), - Rule::Get(&textureProjOffset_00d30B10D00B), - Rule::Get( - &texture_00M10B), - Rule::Get( - &textureProj_00M20B), - Rule::Get( - &textureProj_00M30B), - Rule::Get( - &textureSize_00M00D), - Rule::Get( - &texelFetch_00M10D00D), - Rule::Get(&texture_00N10B), - Rule::Get(&textureProj_00N20B), - Rule::Get(&textureProj_00N30B), - Rule::Get(&rgb_2_yuv_20B00H), - Rule::Get(&yuv_2_rgb_20B00H), - Rule::Get(&textureSize_00N00D), - Rule::Get(&texelFetch_00N10D00D), Rule::Get(&textureGather_00I10B), - Rule::Get(&textureGather_00I10B), Rule::Get(&textureGather_00R10B), - Rule::Get(&textureGather_00R10B), Rule::Get(&textureGather_00X10B), - Rule::Get(&textureGather_00X10B), Rule::Get(&textureGather_00I10B00D), - Rule::Get(&textureGather_00I10B00D), Rule::Get(&textureGather_00R10B00D), - Rule::Get(&textureGather_00R10B00D), Rule::Get(&textureGather_00X10B00D), - Rule::Get(&textureGather_00X10B00D), Rule::Get(&textureGather_00L20B), - Rule::Get(&textureGather_00L20B), Rule::Get(&textureGather_00U20B), - Rule::Get(&textureGather_00U20B), Rule::Get(&textureGather_00a20B), - Rule::Get(&textureGather_00a20B), Rule::Get(&textureGather_00L20B00D), - Rule::Get(&textureGather_00L20B00D), Rule::Get(&textureGather_00U20B00D), - Rule::Get(&textureGather_00U20B00D), Rule::Get(&textureGather_00a20B00D), - Rule::Get(&textureGather_00a20B00D), Rule::Get(&textureGather_00K20B), - Rule::Get(&textureGather_00K20B), Rule::Get(&textureGather_00T20B), - Rule::Get(&textureGather_00T20B), Rule::Get(&textureGather_00Z20B), - Rule::Get(&textureGather_00Z20B), Rule::Get(&textureGather_00K20B00D), - Rule::Get(&textureGather_00K20B00D), Rule::Get(&textureGather_00T20B00D), - Rule::Get(&textureGather_00T20B00D), Rule::Get(&textureGather_00Z20B00D), - Rule::Get(&textureGather_00Z20B00D), + Rule::Get(&textureGather_00k30B), + Rule::Get( + &textureGatherExt_00k30B), + Rule::Get( + &textureGatherExt_00k30B), + Rule::Get(&textureGather_00s30B), + Rule::Get( + &textureGatherExt_00s30B), + Rule::Get( + &textureGatherExt_00s30B), + Rule::Get(&textureGather_00x30B), + Rule::Get( + &textureGatherExt_00x30B), + Rule::Get( + &textureGatherExt_00x30B), + Rule::Get(&textureGather_00k30B00D), + Rule::Get( + &textureGatherExt_00k30B00D), + Rule::Get( + &textureGatherExt_00k30B00D), + Rule::Get(&textureGather_00s30B00D), + Rule::Get( + &textureGatherExt_00s30B00D), + Rule::Get( + &textureGatherExt_00s30B00D), + Rule::Get(&textureGather_00x30B00D), + Rule::Get( + &textureGatherExt_00x30B00D), + Rule::Get( + &textureGatherExt_00x30B00D), + Rule::Get(&textureGather_00l30B00B), + Rule::Get( + &textureGatherExt_00l30B00B), + Rule::Get( + &textureGatherExt_00l30B00B), Rule::Get(&textureGather_00d10B), Rule::Get(&textureGather_00d10B00B), - Rule::Get(&textureGather_00d10B00B), Rule::Get(&textureGather_00f20B), Rule::Get(&textureGather_00f20B00B), - Rule::Get(&textureGather_00f20B00B), Rule::Get(&textureGather_00e20B), Rule::Get(&textureGather_00e20B00B), - Rule::Get(&textureGather_00e20B00B), Rule::Get(&textureGatherOffset_00I10B10D), - Rule::Get(&textureGatherOffset_00I10B10D), Rule::Get(&textureGatherOffset_00R10B10D), - Rule::Get(&textureGatherOffset_00R10B10D), Rule::Get(&textureGatherOffset_00X10B10D), - Rule::Get(&textureGatherOffset_00X10B10D), Rule::Get(&textureGatherOffset_00L20B10D), - Rule::Get(&textureGatherOffset_00L20B10D), Rule::Get(&textureGatherOffset_00U20B10D), - Rule::Get(&textureGatherOffset_00U20B10D), Rule::Get(&textureGatherOffset_00a20B10D), - Rule::Get(&textureGatherOffset_00a20B10D), Rule::Get(&textureGatherOffset_00d10B00B10D), - Rule::Get(&textureGatherOffset_00d10B00B10D), Rule::Get(&textureGatherOffset_00f20B00B10D), - Rule::Get(&textureGatherOffset_00f20B00B10D), Rule::Get(&textureGatherOffset_00I10B10D00D), - Rule::Get(&textureGatherOffset_00I10B10D00D), Rule::Get(&textureGatherOffset_00R10B10D00D), - Rule::Get(&textureGatherOffset_00R10B10D00D), Rule::Get(&textureGatherOffset_00X10B10D00D), - Rule::Get(&textureGatherOffset_00X10B10D00D), Rule::Get(&textureGatherOffset_00L20B10D00D), - Rule::Get(&textureGatherOffset_00L20B10D00D), Rule::Get(&textureGatherOffset_00U20B10D00D), - Rule::Get(&textureGatherOffset_00U20B10D00D), Rule::Get(&textureGatherOffset_00a20B10D00D), - Rule::Get(&textureGatherOffset_00a20B10D00D), Rule::Get(&textureGatherOffsets_00I10B10Dx4), - Rule::Get(&textureGatherOffsets_00I10B10Dx4), Rule::Get( &textureGatherOffsetsExt_00I10B10Dx4), Rule::Get(&textureGatherOffsets_00R10B10Dx4), - Rule::Get(&textureGatherOffsets_00R10B10Dx4), Rule::Get( &textureGatherOffsetsExt_00R10B10Dx4), Rule::Get(&textureGatherOffsets_00X10B10Dx4), - Rule::Get(&textureGatherOffsets_00X10B10Dx4), Rule::Get( &textureGatherOffsetsExt_00X10B10Dx4), Rule::Get(&textureGatherOffsets_00L20B10Dx4), - Rule::Get(&textureGatherOffsets_00L20B10Dx4), Rule::Get( &textureGatherOffsetsExt_00L20B10Dx4), Rule::Get(&textureGatherOffsets_00U20B10Dx4), - Rule::Get(&textureGatherOffsets_00U20B10Dx4), Rule::Get( &textureGatherOffsetsExt_00U20B10Dx4), Rule::Get(&textureGatherOffsets_00a20B10Dx4), - Rule::Get(&textureGatherOffsets_00a20B10Dx4), Rule::Get( &textureGatherOffsetsExt_00a20B10Dx4), Rule::Get(&textureGatherOffsets_00d10B00B10Dx4), - Rule::Get(&textureGatherOffsets_00d10B00B10Dx4), Rule::Get( &textureGatherOffsetsExt_00d10B00B10Dx4), Rule::Get(&textureGatherOffsets_00f20B00B10Dx4), - Rule::Get(&textureGatherOffsets_00f20B00B10Dx4), Rule::Get( &textureGatherOffsetsExt_00f20B00B10Dx4), Rule::Get(&textureGatherOffsets_00I10B10Dx400D), - Rule::Get(&textureGatherOffsets_00I10B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00I10B10Dx400D), Rule::Get(&textureGatherOffsets_00R10B10Dx400D), - Rule::Get(&textureGatherOffsets_00R10B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00R10B10Dx400D), Rule::Get(&textureGatherOffsets_00X10B10Dx400D), - Rule::Get(&textureGatherOffsets_00X10B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00X10B10Dx400D), Rule::Get(&textureGatherOffsets_00L20B10Dx400D), - Rule::Get(&textureGatherOffsets_00L20B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00L20B10Dx400D), Rule::Get(&textureGatherOffsets_00U20B10Dx400D), - Rule::Get(&textureGatherOffsets_00U20B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00U20B10Dx400D), Rule::Get(&textureGatherOffsets_00a20B10Dx400D), - Rule::Get(&textureGatherOffsets_00a20B10Dx400D), Rule::Get( &textureGatherOffsetsExt_00a20B10Dx400D), + Rule::Get(&rgb_2_yuv_20B00H), + Rule::Get(&yuv_2_rgb_20B00H), + Rule::Get(&dFdx_00B), + Rule::Get(&dFdxExt_00B), + Rule::Get(&dFdx_10B), + Rule::Get(&dFdxExt_10B), + Rule::Get(&dFdx_20B), + Rule::Get(&dFdxExt_20B), + Rule::Get(&dFdx_30B), + Rule::Get(&dFdxExt_30B), + Rule::Get(&dFdy_00B), + Rule::Get(&dFdyExt_00B), + Rule::Get(&dFdy_10B), + Rule::Get(&dFdyExt_10B), + Rule::Get(&dFdy_20B), + Rule::Get(&dFdyExt_20B), + Rule::Get(&dFdy_30B), + Rule::Get(&dFdyExt_30B), + Rule::Get(&fwidth_00B), + Rule::Get( + &fwidthExt_00B), + Rule::Get(&fwidth_10B), + Rule::Get( + &fwidthExt_10B), + Rule::Get(&fwidth_20B), + Rule::Get( + &fwidthExt_20B), + Rule::Get(&fwidth_30B), + Rule::Get( + &fwidthExt_30B), Rule::Get(&interpolateAtCentroid_00B), - Rule::Get(&interpolateAtCentroid_00B), Rule::Get( &interpolateAtCentroidExt_00B), Rule::Get(&interpolateAtCentroid_10B), - Rule::Get(&interpolateAtCentroid_10B), Rule::Get( &interpolateAtCentroidExt_10B), Rule::Get(&interpolateAtCentroid_20B), - Rule::Get(&interpolateAtCentroid_20B), Rule::Get( &interpolateAtCentroidExt_20B), Rule::Get(&interpolateAtCentroid_30B), - Rule::Get(&interpolateAtCentroid_30B), Rule::Get( &interpolateAtCentroidExt_30B), Rule::Get(&interpolateAtSample_00B00D), - Rule::Get(&interpolateAtSample_00B00D), Rule::Get( &interpolateAtSampleExt_00B00D), Rule::Get(&interpolateAtSample_10B00D), - Rule::Get(&interpolateAtSample_10B00D), Rule::Get( &interpolateAtSampleExt_10B00D), Rule::Get(&interpolateAtSample_20B00D), - Rule::Get(&interpolateAtSample_20B00D), Rule::Get( &interpolateAtSampleExt_20B00D), Rule::Get(&interpolateAtSample_30B00D), - Rule::Get(&interpolateAtSample_30B00D), Rule::Get( &interpolateAtSampleExt_30B00D), Rule::Get(&interpolateAtOffset_00B10B), - Rule::Get(&interpolateAtOffset_00B10B), Rule::Get( &interpolateAtOffsetExt_00B10B), Rule::Get(&interpolateAtOffset_10B10B), - Rule::Get(&interpolateAtOffset_10B10B), Rule::Get( &interpolateAtOffsetExt_10B10B), Rule::Get(&interpolateAtOffset_20B10B), - Rule::Get(&interpolateAtOffset_20B10B), Rule::Get( &interpolateAtOffsetExt_20B10B), Rule::Get(&interpolateAtOffset_30B10B), - Rule::Get(&interpolateAtOffset_30B10B), Rule::Get( &interpolateAtOffsetExt_30B10B), Rule::Get(&atomicCounter_00G), - Rule::Get(&atomicCounter_00G), Rule::Get(&atomicCounterIncrement_00G), - Rule::Get(&atomicCounterIncrement_00G), Rule::Get(&atomicCounterDecrement_00G), - Rule::Get(&atomicCounterDecrement_00G), Rule::Get(&atomicAdd_00E00E), - Rule::Get(&atomicAdd_00E00E), Rule::Get(&atomicAdd_00D00D), - Rule::Get(&atomicAdd_00D00D), Rule::Get(&atomicMin_00E00E), - Rule::Get(&atomicMin_00E00E), Rule::Get(&atomicMin_00D00D), - Rule::Get(&atomicMin_00D00D), Rule::Get(&atomicMax_00E00E), - Rule::Get(&atomicMax_00E00E), Rule::Get(&atomicMax_00D00D), - Rule::Get(&atomicMax_00D00D), Rule::Get(&atomicAnd_00E00E), - Rule::Get(&atomicAnd_00E00E), Rule::Get(&atomicAnd_00D00D), - Rule::Get(&atomicAnd_00D00D), Rule::Get(&atomicOr_00E00E), - Rule::Get(&atomicOr_00E00E), Rule::Get(&atomicOr_00D00D), - Rule::Get(&atomicOr_00D00D), Rule::Get(&atomicXor_00E00E), - Rule::Get(&atomicXor_00E00E), Rule::Get(&atomicXor_00D00D), - Rule::Get(&atomicXor_00D00D), Rule::Get(&atomicExchange_00E00E), - Rule::Get(&atomicExchange_00E00E), Rule::Get(&atomicExchange_00D00D), - Rule::Get(&atomicExchange_00D00D), Rule::Get(&atomicCompSwap_00E00E00E), - Rule::Get(&atomicCompSwap_00E00E00E), Rule::Get(&atomicCompSwap_00D00D00D), - Rule::Get(&atomicCompSwap_00D00D00D), Rule::Get(&imageSize_00z), + Rule::Get(&imageSize_01K), + Rule::Get(&imageSize_01V), Rule::Get(&imageSize_01A), + Rule::Get(&imageSize_01L), + Rule::Get(&imageSize_01W), Rule::Get(&imageSize_01B), + Rule::Get(&imageSize_01M), + Rule::Get(&imageSize_01X), Rule::Get(&imageSize_01C), - Rule::Get(&imageSize_01D), - Rule::Get(&imageSize_01E), - Rule::Get(&imageSize_01F), - Rule::Get(&imageSize_01G), - Rule::Get(&imageSize_01H), - Rule::Get(&imageSize_01I), - Rule::Get(&imageSize_01J), - Rule::Get(&imageSize_01K), - Rule::Get(&imageSize_01X), + Rule::Get(&imageSize_01N), Rule::Get(&imageSize_01Y), - Rule::Get(&imageSize_01Z), - Rule::Get(&imageSize_01d), - Rule::Get(&imageSize_01e), - Rule::Get(&imageSize_01f), + Rule::Get(&imageSize_01H), + Rule::Get( + &imageSizeExt_01H), + Rule::Get( + &imageSizeExt_01H), + Rule::Get(&imageSize_01S), + Rule::Get( + &imageSizeExt_01S), + Rule::Get( + &imageSizeExt_01S), + Rule::Get(&imageSize_01d), + Rule::Get( + &imageSizeExt_01d), + Rule::Get( + &imageSizeExt_01d), + Rule::Get(&imageSize_01J), + Rule::Get(&imageSizeExt_01J), + Rule::Get(&imageSizeExt_01J), + Rule::Get(&imageSize_01U), + Rule::Get(&imageSizeExt_01U), + Rule::Get(&imageSizeExt_01U), + Rule::Get(&imageSize_01f), + Rule::Get(&imageSizeExt_01f), + Rule::Get(&imageSizeExt_01f), Rule::Get(&imageStore_00z10D30B), - Rule::Get(&imageStore_01A10D30D), - Rule::Get(&imageStore_01B10D30E), + Rule::Get(&imageStore_01K10D30D), + Rule::Get(&imageStore_01V10D30E), + Rule::Get(&imageStore_01A20D30B), + Rule::Get(&imageStore_01L20D30D), + Rule::Get(&imageStore_01W20D30E), + Rule::Get(&imageStore_01B20D30B), + Rule::Get(&imageStore_01M20D30D), + Rule::Get(&imageStore_01X20D30E), Rule::Get(&imageStore_01C20D30B), - Rule::Get(&imageStore_01D20D30D), - Rule::Get(&imageStore_01E20D30E), - Rule::Get(&imageStore_01F20D30B), - Rule::Get(&imageStore_01G20D30D), - Rule::Get(&imageStore_01H20D30E), - Rule::Get(&imageStore_01I20D30B), - Rule::Get(&imageStore_01J20D30D), - Rule::Get(&imageStore_01K20D30E), - Rule::Get(&imageStore_01X20D30B), - Rule::Get(&imageStore_01Y20D30D), - Rule::Get(&imageStore_01Z20D30E), - Rule::Get(&imageStore_01d00D30B), - Rule::Get(&imageStore_01e00D30D), - Rule::Get(&imageStore_01f00D30E), + Rule::Get(&imageStore_01N20D30D), + Rule::Get(&imageStore_01Y20D30E), + Rule::Get(&imageStore_01H20D30B), + Rule::Get( + &imageStoreExt_01H20D30B), + Rule::Get( + &imageStoreExt_01H20D30B), + Rule::Get(&imageStore_01S20D30D), + Rule::Get( + &imageStoreExt_01S20D30D), + Rule::Get( + &imageStoreExt_01S20D30D), + Rule::Get(&imageStore_01d20D30E), + Rule::Get( + &imageStoreExt_01d20D30E), + Rule::Get( + &imageStoreExt_01d20D30E), + Rule::Get(&imageStore_01J00D30B), + Rule::Get( + &imageStoreExt_01J00D30B), + Rule::Get( + &imageStoreExt_01J00D30B), + Rule::Get(&imageStore_01U00D30D), + Rule::Get( + &imageStoreExt_01U00D30D), + Rule::Get( + &imageStoreExt_01U00D30D), + Rule::Get(&imageStore_01f00D30E), + Rule::Get( + &imageStoreExt_01f00D30E), + Rule::Get( + &imageStoreExt_01f00D30E), Rule::Get(&imageLoad_00z10D), - Rule::Get(&imageLoad_01A10D), - Rule::Get(&imageLoad_01B10D), + Rule::Get(&imageLoad_01K10D), + Rule::Get(&imageLoad_01V10D), + Rule::Get(&imageLoad_01A20D), + Rule::Get(&imageLoad_01L20D), + Rule::Get(&imageLoad_01W20D), + Rule::Get(&imageLoad_01B20D), + Rule::Get(&imageLoad_01M20D), + Rule::Get(&imageLoad_01X20D), Rule::Get(&imageLoad_01C20D), - Rule::Get(&imageLoad_01D20D), - Rule::Get(&imageLoad_01E20D), - Rule::Get(&imageLoad_01F20D), - Rule::Get(&imageLoad_01G20D), - Rule::Get(&imageLoad_01H20D), - Rule::Get(&imageLoad_01I20D), - Rule::Get(&imageLoad_01J20D), - Rule::Get(&imageLoad_01K20D), - Rule::Get(&imageLoad_01X20D), + Rule::Get(&imageLoad_01N20D), Rule::Get(&imageLoad_01Y20D), - Rule::Get(&imageLoad_01Z20D), - Rule::Get(&imageLoad_01d00D), - Rule::Get(&imageLoad_01e00D), - Rule::Get(&imageLoad_01f00D), + Rule::Get(&imageLoad_01H20D), + Rule::Get( + &imageLoadExt_01H20D), + Rule::Get( + &imageLoadExt_01H20D), + Rule::Get(&imageLoad_01S20D), + Rule::Get( + &imageLoadExt_01S20D), + Rule::Get( + &imageLoadExt_01S20D), + Rule::Get(&imageLoad_01d20D), + Rule::Get( + &imageLoadExt_01d20D), + Rule::Get( + &imageLoadExt_01d20D), + Rule::Get(&imageLoad_01J00D), + Rule::Get(&imageLoadExt_01J00D), + Rule::Get(&imageLoadExt_01J00D), + Rule::Get(&imageLoad_01U00D), + Rule::Get(&imageLoadExt_01U00D), + Rule::Get(&imageLoadExt_01U00D), + Rule::Get(&imageLoad_01f00D), + Rule::Get(&imageLoadExt_01f00D), + Rule::Get(&imageLoadExt_01f00D), Rule::Get( &imageAtomicAddExt_00z10D00E), Rule::Get( - &imageAtomicAddExt_01A10D00E), - Rule::Get( - &imageAtomicAddExt_01B10D00E), + &imageAtomicAddExt_01K10D00E), + Rule::Get( + &imageAtomicAddExt_01V10D00E), + Rule::Get( + &imageAtomicAddExt_01A20D00E), + Rule::Get( + &imageAtomicAddExt_01L20D00E), + Rule::Get( + &imageAtomicAddExt_01W20D00E), Rule::Get( &imageAtomicAddExt_01C20D00E), Rule::Get( - &imageAtomicAddExt_01D20D00E), - Rule::Get( - &imageAtomicAddExt_01E20D00E), - Rule::Get( - &imageAtomicAddExt_01I20D00E), - Rule::Get( - &imageAtomicAddExt_01J20D00E), - Rule::Get( - &imageAtomicAddExt_01K20D00E), - Rule::Get( - &imageAtomicAddExt_01d00D00E), - Rule::Get( - &imageAtomicAddExt_01e00D00E), + &imageAtomicAddExt_01N20D00E), + Rule::Get( + &imageAtomicAddExt_01Y20D00E), + Rule::Get( + &imageAtomicAddExt_01J00D00E), + Rule::Get( + &imageAtomicAddExt_01U00D00E), Rule::Get( &imageAtomicAddExt_01f00D00E), Rule::Get( - &imageAtomicAddExt_01F20D00E), - Rule::Get( - &imageAtomicAddExt_01G20D00E), - Rule::Get( - &imageAtomicAddExt_01H20D00E), + &imageAtomicAddExt_01B20D00E), + Rule::Get( + &imageAtomicAddExt_01M20D00E), Rule::Get( &imageAtomicAddExt_01X20D00E), Rule::Get( - &imageAtomicAddExt_01Y20D00E), - Rule::Get( - &imageAtomicAddExt_01Z20D00E), - Rule::Get( - &imageAtomicAddExt_01L00D00E), - Rule::Get( - &imageAtomicAddExt_01M00D00E), - Rule::Get( - &imageAtomicAddExt_01N00D00E), - Rule::Get( - &imageAtomicAddExt_01O10D00E), + &imageAtomicAddExt_01H20D00E), + Rule::Get( + &imageAtomicAddExt_01S20D00E), + Rule::Get( + &imageAtomicAddExt_01d20D00E), + Rule::Get( + &imageAtomicAddExt_01D00D00E), + Rule::Get( + &imageAtomicAddExt_01O00D00E), + Rule::Get( + &imageAtomicAddExt_01Z00D00E), + Rule::Get( + &imageAtomicAddExt_01E10D00E), Rule::Get( &imageAtomicAddExt_01P10D00E), Rule::Get( - &imageAtomicAddExt_01Q10D00E), - Rule::Get( &imageAtomicAddExt_01a10D00E), Rule::Get( - &imageAtomicAddExt_01b10D00E), - Rule::Get( - &imageAtomicAddExt_01c10D00E), - Rule::Get( - &imageAtomicAddExt_01R10D00D00E), - Rule::Get( - &imageAtomicAddExt_01S10D00D00E), - Rule::Get( - &imageAtomicAddExt_01T10D00D00E), - Rule::Get( - &imageAtomicAddExt_01U20D00D00E), - Rule::Get( - &imageAtomicAddExt_01V20D00D00E), - Rule::Get( - &imageAtomicAddExt_01W20D00D00E), + &imageAtomicAddExt_01I10D00E), + Rule::Get( + &imageAtomicAddExt_01T10D00E), + Rule::Get( + &imageAtomicAddExt_01e10D00E), + Rule::Get( + &imageAtomicAddExt_01F10D00D00E), + Rule::Get( + &imageAtomicAddExt_01Q10D00D00E), + Rule::Get( + &imageAtomicAddExt_01b10D00D00E), + Rule::Get( + &imageAtomicAddExt_01G20D00D00E), + Rule::Get( + &imageAtomicAddExt_01R20D00D00E), + Rule::Get( + &imageAtomicAddExt_01c20D00D00E), Rule::Get( &imageAtomicAddExt_00z10D00D), Rule::Get( - &imageAtomicAddExt_01A10D00D), - Rule::Get( - &imageAtomicAddExt_01B10D00D), + &imageAtomicAddExt_01K10D00D), + Rule::Get( + &imageAtomicAddExt_01V10D00D), + Rule::Get( + &imageAtomicAddExt_01A20D00D), + Rule::Get( + &imageAtomicAddExt_01L20D00D), + Rule::Get( + &imageAtomicAddExt_01W20D00D), Rule::Get( &imageAtomicAddExt_01C20D00D), Rule::Get( - &imageAtomicAddExt_01D20D00D), - Rule::Get( - &imageAtomicAddExt_01E20D00D), - Rule::Get( - &imageAtomicAddExt_01I20D00D), - Rule::Get( - &imageAtomicAddExt_01J20D00D), - Rule::Get( - &imageAtomicAddExt_01K20D00D), - Rule::Get( - &imageAtomicAddExt_01d00D00D), - Rule::Get( - &imageAtomicAddExt_01e00D00D), + &imageAtomicAddExt_01N20D00D), + Rule::Get( + &imageAtomicAddExt_01Y20D00D), + Rule::Get( + &imageAtomicAddExt_01J00D00D), + Rule::Get( + &imageAtomicAddExt_01U00D00D), Rule::Get( &imageAtomicAddExt_01f00D00D), Rule::Get( - &imageAtomicAddExt_01F20D00D), - Rule::Get( - &imageAtomicAddExt_01G20D00D), - Rule::Get( - &imageAtomicAddExt_01H20D00D), + &imageAtomicAddExt_01B20D00D), + Rule::Get( + &imageAtomicAddExt_01M20D00D), Rule::Get( &imageAtomicAddExt_01X20D00D), Rule::Get( - &imageAtomicAddExt_01Y20D00D), - Rule::Get( - &imageAtomicAddExt_01Z20D00D), - Rule::Get( - &imageAtomicAddExt_01L00D00D), - Rule::Get( - &imageAtomicAddExt_01M00D00D), - Rule::Get( - &imageAtomicAddExt_01N00D00D), - Rule::Get( - &imageAtomicAddExt_01O10D00D), + &imageAtomicAddExt_01H20D00D), + Rule::Get( + &imageAtomicAddExt_01S20D00D), + Rule::Get( + &imageAtomicAddExt_01d20D00D), + Rule::Get( + &imageAtomicAddExt_01D00D00D), + Rule::Get( + &imageAtomicAddExt_01O00D00D), + Rule::Get( + &imageAtomicAddExt_01Z00D00D), + Rule::Get( + &imageAtomicAddExt_01E10D00D), Rule::Get( &imageAtomicAddExt_01P10D00D), Rule::Get( - &imageAtomicAddExt_01Q10D00D), - Rule::Get( &imageAtomicAddExt_01a10D00D), Rule::Get( - &imageAtomicAddExt_01b10D00D), - Rule::Get( - &imageAtomicAddExt_01c10D00D), - Rule::Get( - &imageAtomicAddExt_01R10D00D00D), - Rule::Get( - &imageAtomicAddExt_01S10D00D00D), - Rule::Get( - &imageAtomicAddExt_01T10D00D00D), - Rule::Get( - &imageAtomicAddExt_01U20D00D00D), - Rule::Get( - &imageAtomicAddExt_01V20D00D00D), - Rule::Get( - &imageAtomicAddExt_01W20D00D00D), + &imageAtomicAddExt_01I10D00D), + Rule::Get( + &imageAtomicAddExt_01T10D00D), + Rule::Get( + &imageAtomicAddExt_01e10D00D), + Rule::Get( + &imageAtomicAddExt_01F10D00D00D), + Rule::Get( + &imageAtomicAddExt_01Q10D00D00D), + Rule::Get( + &imageAtomicAddExt_01b10D00D00D), + Rule::Get( + &imageAtomicAddExt_01G20D00D00D), + Rule::Get( + &imageAtomicAddExt_01R20D00D00D), + Rule::Get( + &imageAtomicAddExt_01c20D00D00D), Rule::Get( &imageAtomicMinExt_00z10D00E), Rule::Get( - &imageAtomicMinExt_01A10D00E), - Rule::Get( - &imageAtomicMinExt_01B10D00E), + &imageAtomicMinExt_01K10D00E), + Rule::Get( + &imageAtomicMinExt_01V10D00E), + Rule::Get( + &imageAtomicMinExt_01A20D00E), + Rule::Get( + &imageAtomicMinExt_01L20D00E), + Rule::Get( + &imageAtomicMinExt_01W20D00E), Rule::Get( &imageAtomicMinExt_01C20D00E), Rule::Get( - &imageAtomicMinExt_01D20D00E), - Rule::Get( - &imageAtomicMinExt_01E20D00E), - Rule::Get( - &imageAtomicMinExt_01I20D00E), - Rule::Get( - &imageAtomicMinExt_01J20D00E), - Rule::Get( - &imageAtomicMinExt_01K20D00E), - Rule::Get( - &imageAtomicMinExt_01d00D00E), - Rule::Get( - &imageAtomicMinExt_01e00D00E), + &imageAtomicMinExt_01N20D00E), + Rule::Get( + &imageAtomicMinExt_01Y20D00E), + Rule::Get( + &imageAtomicMinExt_01J00D00E), + Rule::Get( + &imageAtomicMinExt_01U00D00E), Rule::Get( &imageAtomicMinExt_01f00D00E), Rule::Get( - &imageAtomicMinExt_01F20D00E), - Rule::Get( - &imageAtomicMinExt_01G20D00E), - Rule::Get( - &imageAtomicMinExt_01H20D00E), + &imageAtomicMinExt_01B20D00E), + Rule::Get( + &imageAtomicMinExt_01M20D00E), Rule::Get( &imageAtomicMinExt_01X20D00E), Rule::Get( - &imageAtomicMinExt_01Y20D00E), - Rule::Get( - &imageAtomicMinExt_01Z20D00E), - Rule::Get( - &imageAtomicMinExt_01L00D00E), - Rule::Get( - &imageAtomicMinExt_01M00D00E), - Rule::Get( - &imageAtomicMinExt_01N00D00E), - Rule::Get( - &imageAtomicMinExt_01O10D00E), + &imageAtomicMinExt_01H20D00E), + Rule::Get( + &imageAtomicMinExt_01S20D00E), + Rule::Get( + &imageAtomicMinExt_01d20D00E), + Rule::Get( + &imageAtomicMinExt_01D00D00E), + Rule::Get( + &imageAtomicMinExt_01O00D00E), + Rule::Get( + &imageAtomicMinExt_01Z00D00E), + Rule::Get( + &imageAtomicMinExt_01E10D00E), Rule::Get( &imageAtomicMinExt_01P10D00E), Rule::Get( - &imageAtomicMinExt_01Q10D00E), - Rule::Get( &imageAtomicMinExt_01a10D00E), Rule::Get( - &imageAtomicMinExt_01b10D00E), - Rule::Get( - &imageAtomicMinExt_01c10D00E), - Rule::Get( - &imageAtomicMinExt_01R10D00D00E), - Rule::Get( - &imageAtomicMinExt_01S10D00D00E), - Rule::Get( - &imageAtomicMinExt_01T10D00D00E), - Rule::Get( - &imageAtomicMinExt_01U20D00D00E), - Rule::Get( - &imageAtomicMinExt_01V20D00D00E), - Rule::Get( - &imageAtomicMinExt_01W20D00D00E), + &imageAtomicMinExt_01I10D00E), + Rule::Get( + &imageAtomicMinExt_01T10D00E), + Rule::Get( + &imageAtomicMinExt_01e10D00E), + Rule::Get( + &imageAtomicMinExt_01F10D00D00E), + Rule::Get( + &imageAtomicMinExt_01Q10D00D00E), + Rule::Get( + &imageAtomicMinExt_01b10D00D00E), + Rule::Get( + &imageAtomicMinExt_01G20D00D00E), + Rule::Get( + &imageAtomicMinExt_01R20D00D00E), + Rule::Get( + &imageAtomicMinExt_01c20D00D00E), Rule::Get( &imageAtomicMinExt_00z10D00D), Rule::Get( - &imageAtomicMinExt_01A10D00D), - Rule::Get( - &imageAtomicMinExt_01B10D00D), + &imageAtomicMinExt_01K10D00D), + Rule::Get( + &imageAtomicMinExt_01V10D00D), + Rule::Get( + &imageAtomicMinExt_01A20D00D), + Rule::Get( + &imageAtomicMinExt_01L20D00D), + Rule::Get( + &imageAtomicMinExt_01W20D00D), Rule::Get( &imageAtomicMinExt_01C20D00D), Rule::Get( - &imageAtomicMinExt_01D20D00D), - Rule::Get( - &imageAtomicMinExt_01E20D00D), - Rule::Get( - &imageAtomicMinExt_01I20D00D), - Rule::Get( - &imageAtomicMinExt_01J20D00D), - Rule::Get( - &imageAtomicMinExt_01K20D00D), - Rule::Get( - &imageAtomicMinExt_01d00D00D), - Rule::Get( - &imageAtomicMinExt_01e00D00D), - Rule::Get( - &imageAtomicMinExt_01f00D00D), - Rule::Get( - &imageAtomicMinExt_01F20D00D), - Rule::Get( - &imageAtomicMinExt_01G20D00D), - Rule::Get( - &imageAtomicMinExt_01H20D00D), - Rule::Get( - &imageAtomicMinExt_01X20D00D), + &imageAtomicMinExt_01N20D00D), Rule::Get( &imageAtomicMinExt_01Y20D00D), Rule::Get( - &imageAtomicMinExt_01Z20D00D), - Rule::Get( - &imageAtomicMinExt_01L00D00D), - Rule::Get( - &imageAtomicMinExt_01M00D00D), - Rule::Get( - &imageAtomicMinExt_01N00D00D), - Rule::Get( - &imageAtomicMinExt_01O10D00D), + &imageAtomicMinExt_01J00D00D), + Rule::Get( + &imageAtomicMinExt_01U00D00D), + Rule::Get( + &imageAtomicMinExt_01f00D00D), + Rule::Get( + &imageAtomicMinExt_01B20D00D), + Rule::Get( + &imageAtomicMinExt_01M20D00D), + Rule::Get( + &imageAtomicMinExt_01X20D00D), + Rule::Get( + &imageAtomicMinExt_01H20D00D), + Rule::Get( + &imageAtomicMinExt_01S20D00D), + Rule::Get( + &imageAtomicMinExt_01d20D00D), + Rule::Get( + &imageAtomicMinExt_01D00D00D), + Rule::Get( + &imageAtomicMinExt_01O00D00D), + Rule::Get( + &imageAtomicMinExt_01Z00D00D), + Rule::Get( + &imageAtomicMinExt_01E10D00D), Rule::Get( &imageAtomicMinExt_01P10D00D), Rule::Get( - &imageAtomicMinExt_01Q10D00D), - Rule::Get( &imageAtomicMinExt_01a10D00D), Rule::Get( - &imageAtomicMinExt_01b10D00D), - Rule::Get( - &imageAtomicMinExt_01c10D00D), - Rule::Get( - &imageAtomicMinExt_01R10D00D00D), - Rule::Get( - &imageAtomicMinExt_01S10D00D00D), - Rule::Get( - &imageAtomicMinExt_01T10D00D00D), - Rule::Get( - &imageAtomicMinExt_01U20D00D00D), - Rule::Get( - &imageAtomicMinExt_01V20D00D00D), - Rule::Get( - &imageAtomicMinExt_01W20D00D00D), + &imageAtomicMinExt_01I10D00D), + Rule::Get( + &imageAtomicMinExt_01T10D00D), + Rule::Get( + &imageAtomicMinExt_01e10D00D), + Rule::Get( + &imageAtomicMinExt_01F10D00D00D), + Rule::Get( + &imageAtomicMinExt_01Q10D00D00D), + Rule::Get( + &imageAtomicMinExt_01b10D00D00D), + Rule::Get( + &imageAtomicMinExt_01G20D00D00D), + Rule::Get( + &imageAtomicMinExt_01R20D00D00D), + Rule::Get( + &imageAtomicMinExt_01c20D00D00D), Rule::Get( &imageAtomicMaxExt_00z10D00E), Rule::Get( - &imageAtomicMaxExt_01A10D00E), - Rule::Get( - &imageAtomicMaxExt_01B10D00E), + &imageAtomicMaxExt_01K10D00E), + Rule::Get( + &imageAtomicMaxExt_01V10D00E), + Rule::Get( + &imageAtomicMaxExt_01A20D00E), + Rule::Get( + &imageAtomicMaxExt_01L20D00E), + Rule::Get( + &imageAtomicMaxExt_01W20D00E), Rule::Get( &imageAtomicMaxExt_01C20D00E), Rule::Get( - &imageAtomicMaxExt_01D20D00E), - Rule::Get( - &imageAtomicMaxExt_01E20D00E), - Rule::Get( - &imageAtomicMaxExt_01I20D00E), - Rule::Get( - &imageAtomicMaxExt_01J20D00E), - Rule::Get( - &imageAtomicMaxExt_01K20D00E), - Rule::Get( - &imageAtomicMaxExt_01d00D00E), - Rule::Get( - &imageAtomicMaxExt_01e00D00E), + &imageAtomicMaxExt_01N20D00E), + Rule::Get( + &imageAtomicMaxExt_01Y20D00E), + Rule::Get( + &imageAtomicMaxExt_01J00D00E), + Rule::Get( + &imageAtomicMaxExt_01U00D00E), Rule::Get( &imageAtomicMaxExt_01f00D00E), Rule::Get( - &imageAtomicMaxExt_01F20D00E), - Rule::Get( - &imageAtomicMaxExt_01G20D00E), - Rule::Get( - &imageAtomicMaxExt_01H20D00E), + &imageAtomicMaxExt_01B20D00E), + Rule::Get( + &imageAtomicMaxExt_01M20D00E), Rule::Get( &imageAtomicMaxExt_01X20D00E), Rule::Get( - &imageAtomicMaxExt_01Y20D00E), - Rule::Get( - &imageAtomicMaxExt_01Z20D00E), - Rule::Get( - &imageAtomicMaxExt_01L00D00E), - Rule::Get( - &imageAtomicMaxExt_01M00D00E), - Rule::Get( - &imageAtomicMaxExt_01N00D00E), - Rule::Get( - &imageAtomicMaxExt_01O10D00E), + &imageAtomicMaxExt_01H20D00E), + Rule::Get( + &imageAtomicMaxExt_01S20D00E), + Rule::Get( + &imageAtomicMaxExt_01d20D00E), + Rule::Get( + &imageAtomicMaxExt_01D00D00E), + Rule::Get( + &imageAtomicMaxExt_01O00D00E), + Rule::Get( + &imageAtomicMaxExt_01Z00D00E), + Rule::Get( + &imageAtomicMaxExt_01E10D00E), Rule::Get( &imageAtomicMaxExt_01P10D00E), Rule::Get( - &imageAtomicMaxExt_01Q10D00E), - Rule::Get( &imageAtomicMaxExt_01a10D00E), Rule::Get( - &imageAtomicMaxExt_01b10D00E), - Rule::Get( - &imageAtomicMaxExt_01c10D00E), - Rule::Get( - &imageAtomicMaxExt_01R10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01S10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01T10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01U20D00D00E), - Rule::Get( - &imageAtomicMaxExt_01V20D00D00E), - Rule::Get( - &imageAtomicMaxExt_01W20D00D00E), + &imageAtomicMaxExt_01I10D00E), + Rule::Get( + &imageAtomicMaxExt_01T10D00E), + Rule::Get( + &imageAtomicMaxExt_01e10D00E), + Rule::Get( + &imageAtomicMaxExt_01F10D00D00E), + Rule::Get( + &imageAtomicMaxExt_01Q10D00D00E), + Rule::Get( + &imageAtomicMaxExt_01b10D00D00E), + Rule::Get( + &imageAtomicMaxExt_01G20D00D00E), + Rule::Get( + &imageAtomicMaxExt_01R20D00D00E), + Rule::Get( + &imageAtomicMaxExt_01c20D00D00E), Rule::Get( &imageAtomicMaxExt_00z10D00D), Rule::Get( - &imageAtomicMaxExt_01A10D00D), - Rule::Get( - &imageAtomicMaxExt_01B10D00D), + &imageAtomicMaxExt_01K10D00D), + Rule::Get( + &imageAtomicMaxExt_01V10D00D), + Rule::Get( + &imageAtomicMaxExt_01A20D00D), + Rule::Get( + &imageAtomicMaxExt_01L20D00D), + Rule::Get( + &imageAtomicMaxExt_01W20D00D), Rule::Get( &imageAtomicMaxExt_01C20D00D), Rule::Get( - &imageAtomicMaxExt_01D20D00D), - Rule::Get( - &imageAtomicMaxExt_01E20D00D), - Rule::Get( - &imageAtomicMaxExt_01I20D00D), - Rule::Get( - &imageAtomicMaxExt_01J20D00D), - Rule::Get( - &imageAtomicMaxExt_01K20D00D), - Rule::Get( - &imageAtomicMaxExt_01d00D00D), - Rule::Get( - &imageAtomicMaxExt_01e00D00D), - Rule::Get( - &imageAtomicMaxExt_01f00D00D), - Rule::Get( - &imageAtomicMaxExt_01F20D00D), - Rule::Get( - &imageAtomicMaxExt_01G20D00D), - Rule::Get( - &imageAtomicMaxExt_01H20D00D), - Rule::Get( - &imageAtomicMaxExt_01X20D00D), + &imageAtomicMaxExt_01N20D00D), Rule::Get( &imageAtomicMaxExt_01Y20D00D), Rule::Get( - &imageAtomicMaxExt_01Z20D00D), - Rule::Get( - &imageAtomicMaxExt_01L00D00D), - Rule::Get( - &imageAtomicMaxExt_01M00D00D), - Rule::Get( - &imageAtomicMaxExt_01N00D00D), - Rule::Get( - &imageAtomicMaxExt_01O10D00D), + &imageAtomicMaxExt_01J00D00D), + Rule::Get( + &imageAtomicMaxExt_01U00D00D), + Rule::Get( + &imageAtomicMaxExt_01f00D00D), + Rule::Get( + &imageAtomicMaxExt_01B20D00D), + Rule::Get( + &imageAtomicMaxExt_01M20D00D), + Rule::Get( + &imageAtomicMaxExt_01X20D00D), + Rule::Get( + &imageAtomicMaxExt_01H20D00D), + Rule::Get( + &imageAtomicMaxExt_01S20D00D), + Rule::Get( + &imageAtomicMaxExt_01d20D00D), + Rule::Get( + &imageAtomicMaxExt_01D00D00D), + Rule::Get( + &imageAtomicMaxExt_01O00D00D), + Rule::Get( + &imageAtomicMaxExt_01Z00D00D), + Rule::Get( + &imageAtomicMaxExt_01E10D00D), Rule::Get( &imageAtomicMaxExt_01P10D00D), Rule::Get( - &imageAtomicMaxExt_01Q10D00D), - Rule::Get( &imageAtomicMaxExt_01a10D00D), Rule::Get( - &imageAtomicMaxExt_01b10D00D), - Rule::Get( - &imageAtomicMaxExt_01c10D00D), - Rule::Get( - &imageAtomicMaxExt_01R10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01S10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01T10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01U20D00D00D), - Rule::Get( - &imageAtomicMaxExt_01V20D00D00D), - Rule::Get( - &imageAtomicMaxExt_01W20D00D00D), + &imageAtomicMaxExt_01I10D00D), + Rule::Get( + &imageAtomicMaxExt_01T10D00D), + Rule::Get( + &imageAtomicMaxExt_01e10D00D), + Rule::Get( + &imageAtomicMaxExt_01F10D00D00D), + Rule::Get( + &imageAtomicMaxExt_01Q10D00D00D), + Rule::Get( + &imageAtomicMaxExt_01b10D00D00D), + Rule::Get( + &imageAtomicMaxExt_01G20D00D00D), + Rule::Get( + &imageAtomicMaxExt_01R20D00D00D), + Rule::Get( + &imageAtomicMaxExt_01c20D00D00D), Rule::Get( &imageAtomicAndExt_00z10D00E), Rule::Get( - &imageAtomicAndExt_01A10D00E), - Rule::Get( - &imageAtomicAndExt_01B10D00E), + &imageAtomicAndExt_01K10D00E), + Rule::Get( + &imageAtomicAndExt_01V10D00E), + Rule::Get( + &imageAtomicAndExt_01A20D00E), + Rule::Get( + &imageAtomicAndExt_01L20D00E), + Rule::Get( + &imageAtomicAndExt_01W20D00E), Rule::Get( &imageAtomicAndExt_01C20D00E), Rule::Get( - &imageAtomicAndExt_01D20D00E), - Rule::Get( - &imageAtomicAndExt_01E20D00E), - Rule::Get( - &imageAtomicAndExt_01I20D00E), - Rule::Get( - &imageAtomicAndExt_01J20D00E), - Rule::Get( - &imageAtomicAndExt_01K20D00E), - Rule::Get( - &imageAtomicAndExt_01d00D00E), - Rule::Get( - &imageAtomicAndExt_01e00D00E), + &imageAtomicAndExt_01N20D00E), + Rule::Get( + &imageAtomicAndExt_01Y20D00E), + Rule::Get( + &imageAtomicAndExt_01J00D00E), + Rule::Get( + &imageAtomicAndExt_01U00D00E), Rule::Get( &imageAtomicAndExt_01f00D00E), Rule::Get( - &imageAtomicAndExt_01F20D00E), - Rule::Get( - &imageAtomicAndExt_01G20D00E), - Rule::Get( - &imageAtomicAndExt_01H20D00E), + &imageAtomicAndExt_01B20D00E), + Rule::Get( + &imageAtomicAndExt_01M20D00E), Rule::Get( &imageAtomicAndExt_01X20D00E), Rule::Get( - &imageAtomicAndExt_01Y20D00E), - Rule::Get( - &imageAtomicAndExt_01Z20D00E), - Rule::Get( - &imageAtomicAndExt_01L00D00E), - Rule::Get( - &imageAtomicAndExt_01M00D00E), - Rule::Get( - &imageAtomicAndExt_01N00D00E), - Rule::Get( - &imageAtomicAndExt_01O10D00E), + &imageAtomicAndExt_01H20D00E), + Rule::Get( + &imageAtomicAndExt_01S20D00E), + Rule::Get( + &imageAtomicAndExt_01d20D00E), + Rule::Get( + &imageAtomicAndExt_01D00D00E), + Rule::Get( + &imageAtomicAndExt_01O00D00E), + Rule::Get( + &imageAtomicAndExt_01Z00D00E), + Rule::Get( + &imageAtomicAndExt_01E10D00E), Rule::Get( &imageAtomicAndExt_01P10D00E), Rule::Get( - &imageAtomicAndExt_01Q10D00E), - Rule::Get( &imageAtomicAndExt_01a10D00E), Rule::Get( - &imageAtomicAndExt_01b10D00E), - Rule::Get( - &imageAtomicAndExt_01c10D00E), - Rule::Get( - &imageAtomicAndExt_01R10D00D00E), - Rule::Get( - &imageAtomicAndExt_01S10D00D00E), - Rule::Get( - &imageAtomicAndExt_01T10D00D00E), - Rule::Get( - &imageAtomicAndExt_01U20D00D00E), - Rule::Get( - &imageAtomicAndExt_01V20D00D00E), - Rule::Get( - &imageAtomicAndExt_01W20D00D00E), + &imageAtomicAndExt_01I10D00E), + Rule::Get( + &imageAtomicAndExt_01T10D00E), + Rule::Get( + &imageAtomicAndExt_01e10D00E), + Rule::Get( + &imageAtomicAndExt_01F10D00D00E), + Rule::Get( + &imageAtomicAndExt_01Q10D00D00E), + Rule::Get( + &imageAtomicAndExt_01b10D00D00E), + Rule::Get( + &imageAtomicAndExt_01G20D00D00E), + Rule::Get( + &imageAtomicAndExt_01R20D00D00E), + Rule::Get( + &imageAtomicAndExt_01c20D00D00E), Rule::Get( &imageAtomicAndExt_00z10D00D), Rule::Get( - &imageAtomicAndExt_01A10D00D), - Rule::Get( - &imageAtomicAndExt_01B10D00D), + &imageAtomicAndExt_01K10D00D), + Rule::Get( + &imageAtomicAndExt_01V10D00D), + Rule::Get( + &imageAtomicAndExt_01A20D00D), + Rule::Get( + &imageAtomicAndExt_01L20D00D), + Rule::Get( + &imageAtomicAndExt_01W20D00D), Rule::Get( &imageAtomicAndExt_01C20D00D), Rule::Get( - &imageAtomicAndExt_01D20D00D), - Rule::Get( - &imageAtomicAndExt_01E20D00D), - Rule::Get( - &imageAtomicAndExt_01I20D00D), - Rule::Get( - &imageAtomicAndExt_01J20D00D), - Rule::Get( - &imageAtomicAndExt_01K20D00D), - Rule::Get( - &imageAtomicAndExt_01d00D00D), - Rule::Get( - &imageAtomicAndExt_01e00D00D), + &imageAtomicAndExt_01N20D00D), + Rule::Get( + &imageAtomicAndExt_01Y20D00D), + Rule::Get( + &imageAtomicAndExt_01J00D00D), + Rule::Get( + &imageAtomicAndExt_01U00D00D), Rule::Get( &imageAtomicAndExt_01f00D00D), Rule::Get( - &imageAtomicAndExt_01F20D00D), - Rule::Get( - &imageAtomicAndExt_01G20D00D), - Rule::Get( - &imageAtomicAndExt_01H20D00D), + &imageAtomicAndExt_01B20D00D), + Rule::Get( + &imageAtomicAndExt_01M20D00D), Rule::Get( &imageAtomicAndExt_01X20D00D), Rule::Get( - &imageAtomicAndExt_01Y20D00D), - Rule::Get( - &imageAtomicAndExt_01Z20D00D), - Rule::Get( - &imageAtomicAndExt_01L00D00D), - Rule::Get( - &imageAtomicAndExt_01M00D00D), - Rule::Get( - &imageAtomicAndExt_01N00D00D), - Rule::Get( - &imageAtomicAndExt_01O10D00D), + &imageAtomicAndExt_01H20D00D), + Rule::Get( + &imageAtomicAndExt_01S20D00D), + Rule::Get( + &imageAtomicAndExt_01d20D00D), + Rule::Get( + &imageAtomicAndExt_01D00D00D), + Rule::Get( + &imageAtomicAndExt_01O00D00D), + Rule::Get( + &imageAtomicAndExt_01Z00D00D), + Rule::Get( + &imageAtomicAndExt_01E10D00D), Rule::Get( &imageAtomicAndExt_01P10D00D), Rule::Get( - &imageAtomicAndExt_01Q10D00D), - Rule::Get( &imageAtomicAndExt_01a10D00D), Rule::Get( - &imageAtomicAndExt_01b10D00D), - Rule::Get( - &imageAtomicAndExt_01c10D00D), - Rule::Get( - &imageAtomicAndExt_01R10D00D00D), - Rule::Get( - &imageAtomicAndExt_01S10D00D00D), - Rule::Get( - &imageAtomicAndExt_01T10D00D00D), - Rule::Get( - &imageAtomicAndExt_01U20D00D00D), - Rule::Get( - &imageAtomicAndExt_01V20D00D00D), - Rule::Get( - &imageAtomicAndExt_01W20D00D00D), + &imageAtomicAndExt_01I10D00D), + Rule::Get( + &imageAtomicAndExt_01T10D00D), + Rule::Get( + &imageAtomicAndExt_01e10D00D), + Rule::Get( + &imageAtomicAndExt_01F10D00D00D), + Rule::Get( + &imageAtomicAndExt_01Q10D00D00D), + Rule::Get( + &imageAtomicAndExt_01b10D00D00D), + Rule::Get( + &imageAtomicAndExt_01G20D00D00D), + Rule::Get( + &imageAtomicAndExt_01R20D00D00D), + Rule::Get( + &imageAtomicAndExt_01c20D00D00D), Rule::Get( &imageAtomicOrExt_00z10D00E), Rule::Get( - &imageAtomicOrExt_01A10D00E), - Rule::Get( - &imageAtomicOrExt_01B10D00E), + &imageAtomicOrExt_01K10D00E), + Rule::Get( + &imageAtomicOrExt_01V10D00E), + Rule::Get( + &imageAtomicOrExt_01A20D00E), + Rule::Get( + &imageAtomicOrExt_01L20D00E), + Rule::Get( + &imageAtomicOrExt_01W20D00E), Rule::Get( &imageAtomicOrExt_01C20D00E), Rule::Get( - &imageAtomicOrExt_01D20D00E), - Rule::Get( - &imageAtomicOrExt_01E20D00E), - Rule::Get( - &imageAtomicOrExt_01I20D00E), - Rule::Get( - &imageAtomicOrExt_01J20D00E), - Rule::Get( - &imageAtomicOrExt_01K20D00E), - Rule::Get( - &imageAtomicOrExt_01d00D00E), - Rule::Get( - &imageAtomicOrExt_01e00D00E), - Rule::Get( - &imageAtomicOrExt_01f00D00E), - Rule::Get( - &imageAtomicOrExt_01F20D00E), - Rule::Get( - &imageAtomicOrExt_01G20D00E), - Rule::Get( - &imageAtomicOrExt_01H20D00E), - Rule::Get( - &imageAtomicOrExt_01X20D00E), + &imageAtomicOrExt_01N20D00E), Rule::Get( &imageAtomicOrExt_01Y20D00E), Rule::Get( - &imageAtomicOrExt_01Z20D00E), - Rule::Get( - &imageAtomicOrExt_01L00D00E), - Rule::Get( - &imageAtomicOrExt_01M00D00E), - Rule::Get( - &imageAtomicOrExt_01N00D00E), - Rule::Get( - &imageAtomicOrExt_01O10D00E), + &imageAtomicOrExt_01J00D00E), + Rule::Get( + &imageAtomicOrExt_01U00D00E), + Rule::Get( + &imageAtomicOrExt_01f00D00E), + Rule::Get( + &imageAtomicOrExt_01B20D00E), + Rule::Get( + &imageAtomicOrExt_01M20D00E), + Rule::Get( + &imageAtomicOrExt_01X20D00E), + Rule::Get( + &imageAtomicOrExt_01H20D00E), + Rule::Get( + &imageAtomicOrExt_01S20D00E), + Rule::Get( + &imageAtomicOrExt_01d20D00E), + Rule::Get( + &imageAtomicOrExt_01D00D00E), + Rule::Get( + &imageAtomicOrExt_01O00D00E), + Rule::Get( + &imageAtomicOrExt_01Z00D00E), + Rule::Get( + &imageAtomicOrExt_01E10D00E), Rule::Get( &imageAtomicOrExt_01P10D00E), Rule::Get( - &imageAtomicOrExt_01Q10D00E), - Rule::Get( &imageAtomicOrExt_01a10D00E), Rule::Get( - &imageAtomicOrExt_01b10D00E), - Rule::Get( - &imageAtomicOrExt_01c10D00E), - Rule::Get( - &imageAtomicOrExt_01R10D00D00E), - Rule::Get( - &imageAtomicOrExt_01S10D00D00E), - Rule::Get( - &imageAtomicOrExt_01T10D00D00E), - Rule::Get( - &imageAtomicOrExt_01U20D00D00E), - Rule::Get( - &imageAtomicOrExt_01V20D00D00E), - Rule::Get( - &imageAtomicOrExt_01W20D00D00E), + &imageAtomicOrExt_01I10D00E), + Rule::Get( + &imageAtomicOrExt_01T10D00E), + Rule::Get( + &imageAtomicOrExt_01e10D00E), + Rule::Get( + &imageAtomicOrExt_01F10D00D00E), + Rule::Get( + &imageAtomicOrExt_01Q10D00D00E), + Rule::Get( + &imageAtomicOrExt_01b10D00D00E), + Rule::Get( + &imageAtomicOrExt_01G20D00D00E), + Rule::Get( + &imageAtomicOrExt_01R20D00D00E), + Rule::Get( + &imageAtomicOrExt_01c20D00D00E), Rule::Get( &imageAtomicOrExt_00z10D00D), Rule::Get( - &imageAtomicOrExt_01A10D00D), - Rule::Get( - &imageAtomicOrExt_01B10D00D), + &imageAtomicOrExt_01K10D00D), + Rule::Get( + &imageAtomicOrExt_01V10D00D), + Rule::Get( + &imageAtomicOrExt_01A20D00D), + Rule::Get( + &imageAtomicOrExt_01L20D00D), + Rule::Get( + &imageAtomicOrExt_01W20D00D), Rule::Get( &imageAtomicOrExt_01C20D00D), Rule::Get( - &imageAtomicOrExt_01D20D00D), - Rule::Get( - &imageAtomicOrExt_01E20D00D), - Rule::Get( - &imageAtomicOrExt_01I20D00D), - Rule::Get( - &imageAtomicOrExt_01J20D00D), - Rule::Get( - &imageAtomicOrExt_01K20D00D), - Rule::Get( - &imageAtomicOrExt_01d00D00D), - Rule::Get( - &imageAtomicOrExt_01e00D00D), + &imageAtomicOrExt_01N20D00D), + Rule::Get( + &imageAtomicOrExt_01Y20D00D), + Rule::Get( + &imageAtomicOrExt_01J00D00D), + Rule::Get( + &imageAtomicOrExt_01U00D00D), Rule::Get( &imageAtomicOrExt_01f00D00D), Rule::Get( - &imageAtomicOrExt_01F20D00D), - Rule::Get( - &imageAtomicOrExt_01G20D00D), - Rule::Get( - &imageAtomicOrExt_01H20D00D), + &imageAtomicOrExt_01B20D00D), + Rule::Get( + &imageAtomicOrExt_01M20D00D), Rule::Get( &imageAtomicOrExt_01X20D00D), Rule::Get( - &imageAtomicOrExt_01Y20D00D), - Rule::Get( - &imageAtomicOrExt_01Z20D00D), - Rule::Get( - &imageAtomicOrExt_01L00D00D), - Rule::Get( - &imageAtomicOrExt_01M00D00D), - Rule::Get( - &imageAtomicOrExt_01N00D00D), - Rule::Get( - &imageAtomicOrExt_01O10D00D), + &imageAtomicOrExt_01H20D00D), + Rule::Get( + &imageAtomicOrExt_01S20D00D), + Rule::Get( + &imageAtomicOrExt_01d20D00D), + Rule::Get( + &imageAtomicOrExt_01D00D00D), + Rule::Get( + &imageAtomicOrExt_01O00D00D), + Rule::Get( + &imageAtomicOrExt_01Z00D00D), + Rule::Get( + &imageAtomicOrExt_01E10D00D), Rule::Get( &imageAtomicOrExt_01P10D00D), Rule::Get( - &imageAtomicOrExt_01Q10D00D), - Rule::Get( &imageAtomicOrExt_01a10D00D), Rule::Get( - &imageAtomicOrExt_01b10D00D), - Rule::Get( - &imageAtomicOrExt_01c10D00D), - Rule::Get( - &imageAtomicOrExt_01R10D00D00D), - Rule::Get( - &imageAtomicOrExt_01S10D00D00D), - Rule::Get( - &imageAtomicOrExt_01T10D00D00D), - Rule::Get( - &imageAtomicOrExt_01U20D00D00D), - Rule::Get( - &imageAtomicOrExt_01V20D00D00D), - Rule::Get( - &imageAtomicOrExt_01W20D00D00D), + &imageAtomicOrExt_01I10D00D), + Rule::Get( + &imageAtomicOrExt_01T10D00D), + Rule::Get( + &imageAtomicOrExt_01e10D00D), + Rule::Get( + &imageAtomicOrExt_01F10D00D00D), + Rule::Get( + &imageAtomicOrExt_01Q10D00D00D), + Rule::Get( + &imageAtomicOrExt_01b10D00D00D), + Rule::Get( + &imageAtomicOrExt_01G20D00D00D), + Rule::Get( + &imageAtomicOrExt_01R20D00D00D), + Rule::Get( + &imageAtomicOrExt_01c20D00D00D), Rule::Get( &imageAtomicXorExt_00z10D00E), Rule::Get( - &imageAtomicXorExt_01A10D00E), - Rule::Get( - &imageAtomicXorExt_01B10D00E), + &imageAtomicXorExt_01K10D00E), + Rule::Get( + &imageAtomicXorExt_01V10D00E), + Rule::Get( + &imageAtomicXorExt_01A20D00E), + Rule::Get( + &imageAtomicXorExt_01L20D00E), + Rule::Get( + &imageAtomicXorExt_01W20D00E), Rule::Get( &imageAtomicXorExt_01C20D00E), Rule::Get( - &imageAtomicXorExt_01D20D00E), - Rule::Get( - &imageAtomicXorExt_01E20D00E), - Rule::Get( - &imageAtomicXorExt_01I20D00E), - Rule::Get( - &imageAtomicXorExt_01J20D00E), - Rule::Get( - &imageAtomicXorExt_01K20D00E), - Rule::Get( - &imageAtomicXorExt_01d00D00E), - Rule::Get( - &imageAtomicXorExt_01e00D00E), + &imageAtomicXorExt_01N20D00E), + Rule::Get( + &imageAtomicXorExt_01Y20D00E), + Rule::Get( + &imageAtomicXorExt_01J00D00E), + Rule::Get( + &imageAtomicXorExt_01U00D00E), Rule::Get( &imageAtomicXorExt_01f00D00E), Rule::Get( - &imageAtomicXorExt_01F20D00E), - Rule::Get( - &imageAtomicXorExt_01G20D00E), - Rule::Get( - &imageAtomicXorExt_01H20D00E), + &imageAtomicXorExt_01B20D00E), + Rule::Get( + &imageAtomicXorExt_01M20D00E), Rule::Get( &imageAtomicXorExt_01X20D00E), Rule::Get( - &imageAtomicXorExt_01Y20D00E), - Rule::Get( - &imageAtomicXorExt_01Z20D00E), - Rule::Get( - &imageAtomicXorExt_01L00D00E), - Rule::Get( - &imageAtomicXorExt_01M00D00E), - Rule::Get( - &imageAtomicXorExt_01N00D00E), - Rule::Get( - &imageAtomicXorExt_01O10D00E), + &imageAtomicXorExt_01H20D00E), + Rule::Get( + &imageAtomicXorExt_01S20D00E), + Rule::Get( + &imageAtomicXorExt_01d20D00E), + Rule::Get( + &imageAtomicXorExt_01D00D00E), + Rule::Get( + &imageAtomicXorExt_01O00D00E), + Rule::Get( + &imageAtomicXorExt_01Z00D00E), + Rule::Get( + &imageAtomicXorExt_01E10D00E), Rule::Get( &imageAtomicXorExt_01P10D00E), Rule::Get( - &imageAtomicXorExt_01Q10D00E), - Rule::Get( &imageAtomicXorExt_01a10D00E), Rule::Get( - &imageAtomicXorExt_01b10D00E), - Rule::Get( - &imageAtomicXorExt_01c10D00E), - Rule::Get( - &imageAtomicXorExt_01R10D00D00E), - Rule::Get( - &imageAtomicXorExt_01S10D00D00E), - Rule::Get( - &imageAtomicXorExt_01T10D00D00E), - Rule::Get( - &imageAtomicXorExt_01U20D00D00E), - Rule::Get( - &imageAtomicXorExt_01V20D00D00E), - Rule::Get( - &imageAtomicXorExt_01W20D00D00E), + &imageAtomicXorExt_01I10D00E), + Rule::Get( + &imageAtomicXorExt_01T10D00E), + Rule::Get( + &imageAtomicXorExt_01e10D00E), + Rule::Get( + &imageAtomicXorExt_01F10D00D00E), + Rule::Get( + &imageAtomicXorExt_01Q10D00D00E), + Rule::Get( + &imageAtomicXorExt_01b10D00D00E), + Rule::Get( + &imageAtomicXorExt_01G20D00D00E), + Rule::Get( + &imageAtomicXorExt_01R20D00D00E), + Rule::Get( + &imageAtomicXorExt_01c20D00D00E), Rule::Get( &imageAtomicXorExt_00z10D00D), Rule::Get( - &imageAtomicXorExt_01A10D00D), - Rule::Get( - &imageAtomicXorExt_01B10D00D), + &imageAtomicXorExt_01K10D00D), + Rule::Get( + &imageAtomicXorExt_01V10D00D), + Rule::Get( + &imageAtomicXorExt_01A20D00D), + Rule::Get( + &imageAtomicXorExt_01L20D00D), + Rule::Get( + &imageAtomicXorExt_01W20D00D), Rule::Get( &imageAtomicXorExt_01C20D00D), Rule::Get( - &imageAtomicXorExt_01D20D00D), - Rule::Get( - &imageAtomicXorExt_01E20D00D), - Rule::Get( - &imageAtomicXorExt_01I20D00D), - Rule::Get( - &imageAtomicXorExt_01J20D00D), - Rule::Get( - &imageAtomicXorExt_01K20D00D), - Rule::Get( - &imageAtomicXorExt_01d00D00D), - Rule::Get( - &imageAtomicXorExt_01e00D00D), - Rule::Get( - &imageAtomicXorExt_01f00D00D), - Rule::Get( - &imageAtomicXorExt_01F20D00D), - Rule::Get( - &imageAtomicXorExt_01G20D00D), - Rule::Get( - &imageAtomicXorExt_01H20D00D), - Rule::Get( - &imageAtomicXorExt_01X20D00D), + &imageAtomicXorExt_01N20D00D), Rule::Get( &imageAtomicXorExt_01Y20D00D), Rule::Get( - &imageAtomicXorExt_01Z20D00D), - Rule::Get( - &imageAtomicXorExt_01L00D00D), - Rule::Get( - &imageAtomicXorExt_01M00D00D), - Rule::Get( - &imageAtomicXorExt_01N00D00D), - Rule::Get( - &imageAtomicXorExt_01O10D00D), + &imageAtomicXorExt_01J00D00D), + Rule::Get( + &imageAtomicXorExt_01U00D00D), + Rule::Get( + &imageAtomicXorExt_01f00D00D), + Rule::Get( + &imageAtomicXorExt_01B20D00D), + Rule::Get( + &imageAtomicXorExt_01M20D00D), + Rule::Get( + &imageAtomicXorExt_01X20D00D), + Rule::Get( + &imageAtomicXorExt_01H20D00D), + Rule::Get( + &imageAtomicXorExt_01S20D00D), + Rule::Get( + &imageAtomicXorExt_01d20D00D), + Rule::Get( + &imageAtomicXorExt_01D00D00D), + Rule::Get( + &imageAtomicXorExt_01O00D00D), + Rule::Get( + &imageAtomicXorExt_01Z00D00D), + Rule::Get( + &imageAtomicXorExt_01E10D00D), Rule::Get( &imageAtomicXorExt_01P10D00D), Rule::Get( - &imageAtomicXorExt_01Q10D00D), - Rule::Get( &imageAtomicXorExt_01a10D00D), Rule::Get( - &imageAtomicXorExt_01b10D00D), - Rule::Get( - &imageAtomicXorExt_01c10D00D), - Rule::Get( - &imageAtomicXorExt_01R10D00D00D), - Rule::Get( - &imageAtomicXorExt_01S10D00D00D), - Rule::Get( - &imageAtomicXorExt_01T10D00D00D), - Rule::Get( - &imageAtomicXorExt_01U20D00D00D), - Rule::Get( - &imageAtomicXorExt_01V20D00D00D), - Rule::Get( - &imageAtomicXorExt_01W20D00D00D), + &imageAtomicXorExt_01I10D00D), + Rule::Get( + &imageAtomicXorExt_01T10D00D), + Rule::Get( + &imageAtomicXorExt_01e10D00D), + Rule::Get( + &imageAtomicXorExt_01F10D00D00D), + Rule::Get( + &imageAtomicXorExt_01Q10D00D00D), + Rule::Get( + &imageAtomicXorExt_01b10D00D00D), + Rule::Get( + &imageAtomicXorExt_01G20D00D00D), + Rule::Get( + &imageAtomicXorExt_01R20D00D00D), + Rule::Get( + &imageAtomicXorExt_01c20D00D00D), Rule::Get( &imageAtomicExchangeExt_00z10D00E), Rule::Get( - &imageAtomicExchangeExt_01A10D00E), - Rule::Get( - &imageAtomicExchangeExt_01B10D00E), + &imageAtomicExchangeExt_01K10D00E), + Rule::Get( + &imageAtomicExchangeExt_01V10D00E), + Rule::Get( + &imageAtomicExchangeExt_01A20D00E), + Rule::Get( + &imageAtomicExchangeExt_01L20D00E), + Rule::Get( + &imageAtomicExchangeExt_01W20D00E), Rule::Get( &imageAtomicExchangeExt_01C20D00E), Rule::Get( - &imageAtomicExchangeExt_01D20D00E), - Rule::Get( - &imageAtomicExchangeExt_01E20D00E), - Rule::Get( - &imageAtomicExchangeExt_01I20D00E), - Rule::Get( - &imageAtomicExchangeExt_01J20D00E), - Rule::Get( - &imageAtomicExchangeExt_01K20D00E), - Rule::Get( - &imageAtomicExchangeExt_01d00D00E), - Rule::Get( - &imageAtomicExchangeExt_01e00D00E), + &imageAtomicExchangeExt_01N20D00E), + Rule::Get( + &imageAtomicExchangeExt_01Y20D00E), + Rule::Get( + &imageAtomicExchangeExt_01J00D00E), + Rule::Get( + &imageAtomicExchangeExt_01U00D00E), Rule::Get( &imageAtomicExchangeExt_01f00D00E), Rule::Get( - &imageAtomicExchangeExt_01F20D00E), - Rule::Get( - &imageAtomicExchangeExt_01G20D00E), - Rule::Get( - &imageAtomicExchangeExt_01H20D00E), + &imageAtomicExchangeExt_01B20D00E), + Rule::Get( + &imageAtomicExchangeExt_01M20D00E), Rule::Get( &imageAtomicExchangeExt_01X20D00E), Rule::Get( - &imageAtomicExchangeExt_01Y20D00E), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00E), - Rule::Get( - &imageAtomicExchangeExt_01L00D00E), - Rule::Get( - &imageAtomicExchangeExt_01M00D00E), - Rule::Get( - &imageAtomicExchangeExt_01N00D00E), - Rule::Get( - &imageAtomicExchangeExt_01O10D00E), + &imageAtomicExchangeExt_01H20D00E), + Rule::Get( + &imageAtomicExchangeExt_01S20D00E), + Rule::Get( + &imageAtomicExchangeExt_01d20D00E), + Rule::Get( + &imageAtomicExchangeExt_01D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01O00D00E), + Rule::Get( + &imageAtomicExchangeExt_01Z00D00E), + Rule::Get( + &imageAtomicExchangeExt_01E10D00E), Rule::Get( &imageAtomicExchangeExt_01P10D00E), Rule::Get( - &imageAtomicExchangeExt_01Q10D00E), - Rule::Get( &imageAtomicExchangeExt_01a10D00E), Rule::Get( - &imageAtomicExchangeExt_01b10D00E), - Rule::Get( - &imageAtomicExchangeExt_01c10D00E), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00E), + &imageAtomicExchangeExt_01I10D00E), + Rule::Get( + &imageAtomicExchangeExt_01T10D00E), + Rule::Get( + &imageAtomicExchangeExt_01e10D00E), + Rule::Get( + &imageAtomicExchangeExt_01F10D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01Q10D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01b10D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01G20D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01R20D00D00E), + Rule::Get( + &imageAtomicExchangeExt_01c20D00D00E), Rule::Get( &imageAtomicExchangeExt_00z10D00D), Rule::Get( - &imageAtomicExchangeExt_01A10D00D), - Rule::Get( - &imageAtomicExchangeExt_01B10D00D), + &imageAtomicExchangeExt_01K10D00D), + Rule::Get( + &imageAtomicExchangeExt_01V10D00D), + Rule::Get( + &imageAtomicExchangeExt_01A20D00D), + Rule::Get( + &imageAtomicExchangeExt_01L20D00D), + Rule::Get( + &imageAtomicExchangeExt_01W20D00D), Rule::Get( &imageAtomicExchangeExt_01C20D00D), Rule::Get( - &imageAtomicExchangeExt_01D20D00D), - Rule::Get( - &imageAtomicExchangeExt_01E20D00D), - Rule::Get( - &imageAtomicExchangeExt_01I20D00D), - Rule::Get( - &imageAtomicExchangeExt_01J20D00D), - Rule::Get( - &imageAtomicExchangeExt_01K20D00D), - Rule::Get( - &imageAtomicExchangeExt_01d00D00D), - Rule::Get( - &imageAtomicExchangeExt_01e00D00D), + &imageAtomicExchangeExt_01N20D00D), + Rule::Get( + &imageAtomicExchangeExt_01Y20D00D), + Rule::Get( + &imageAtomicExchangeExt_01J00D00D), + Rule::Get( + &imageAtomicExchangeExt_01U00D00D), Rule::Get( &imageAtomicExchangeExt_01f00D00D), Rule::Get( - &imageAtomicExchangeExt_01F20D00D), - Rule::Get( - &imageAtomicExchangeExt_01G20D00D), - Rule::Get( - &imageAtomicExchangeExt_01H20D00D), + &imageAtomicExchangeExt_01B20D00D), + Rule::Get( + &imageAtomicExchangeExt_01M20D00D), Rule::Get( &imageAtomicExchangeExt_01X20D00D), Rule::Get( - &imageAtomicExchangeExt_01Y20D00D), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00D), - Rule::Get( - &imageAtomicExchangeExt_01L00D00D), - Rule::Get( - &imageAtomicExchangeExt_01M00D00D), - Rule::Get( - &imageAtomicExchangeExt_01N00D00D), - Rule::Get( - &imageAtomicExchangeExt_01O10D00D), + &imageAtomicExchangeExt_01H20D00D), + Rule::Get( + &imageAtomicExchangeExt_01S20D00D), + Rule::Get( + &imageAtomicExchangeExt_01d20D00D), + Rule::Get( + &imageAtomicExchangeExt_01D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01O00D00D), + Rule::Get( + &imageAtomicExchangeExt_01Z00D00D), + Rule::Get( + &imageAtomicExchangeExt_01E10D00D), Rule::Get( &imageAtomicExchangeExt_01P10D00D), Rule::Get( - &imageAtomicExchangeExt_01Q10D00D), - Rule::Get( &imageAtomicExchangeExt_01a10D00D), Rule::Get( - &imageAtomicExchangeExt_01b10D00D), - Rule::Get( - &imageAtomicExchangeExt_01c10D00D), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00D), + &imageAtomicExchangeExt_01I10D00D), + Rule::Get( + &imageAtomicExchangeExt_01T10D00D), + Rule::Get( + &imageAtomicExchangeExt_01e10D00D), + Rule::Get( + &imageAtomicExchangeExt_01F10D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01Q10D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01b10D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01G20D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01R20D00D00D), + Rule::Get( + &imageAtomicExchangeExt_01c20D00D00D), Rule::Get( &imageAtomicExchangeExt_00z10D00B), Rule::Get( - &imageAtomicExchangeExt_01A10D00B), - Rule::Get( - &imageAtomicExchangeExt_01B10D00B), + &imageAtomicExchangeExt_01K10D00B), + Rule::Get( + &imageAtomicExchangeExt_01V10D00B), + Rule::Get( + &imageAtomicExchangeExt_01A20D00B), + Rule::Get( + &imageAtomicExchangeExt_01L20D00B), + Rule::Get( + &imageAtomicExchangeExt_01W20D00B), Rule::Get( &imageAtomicExchangeExt_01C20D00B), Rule::Get( - &imageAtomicExchangeExt_01D20D00B), - Rule::Get( - &imageAtomicExchangeExt_01E20D00B), - Rule::Get( - &imageAtomicExchangeExt_01I20D00B), - Rule::Get( - &imageAtomicExchangeExt_01J20D00B), - Rule::Get( - &imageAtomicExchangeExt_01K20D00B), - Rule::Get( - &imageAtomicExchangeExt_01d00D00B), - Rule::Get( - &imageAtomicExchangeExt_01e00D00B), + &imageAtomicExchangeExt_01N20D00B), + Rule::Get( + &imageAtomicExchangeExt_01Y20D00B), + Rule::Get( + &imageAtomicExchangeExt_01J00D00B), + Rule::Get( + &imageAtomicExchangeExt_01U00D00B), Rule::Get( &imageAtomicExchangeExt_01f00D00B), Rule::Get( - &imageAtomicExchangeExt_01F20D00B), - Rule::Get( - &imageAtomicExchangeExt_01G20D00B), - Rule::Get( - &imageAtomicExchangeExt_01H20D00B), + &imageAtomicExchangeExt_01B20D00B), + Rule::Get( + &imageAtomicExchangeExt_01M20D00B), Rule::Get( &imageAtomicExchangeExt_01X20D00B), Rule::Get( - &imageAtomicExchangeExt_01Y20D00B), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00B), - Rule::Get( - &imageAtomicExchangeExt_01L00D00B), - Rule::Get( - &imageAtomicExchangeExt_01M00D00B), - Rule::Get( - &imageAtomicExchangeExt_01N00D00B), - Rule::Get( - &imageAtomicExchangeExt_01O10D00B), + &imageAtomicExchangeExt_01H20D00B), + Rule::Get( + &imageAtomicExchangeExt_01S20D00B), + Rule::Get( + &imageAtomicExchangeExt_01d20D00B), + Rule::Get( + &imageAtomicExchangeExt_01D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01O00D00B), + Rule::Get( + &imageAtomicExchangeExt_01Z00D00B), + Rule::Get( + &imageAtomicExchangeExt_01E10D00B), Rule::Get( &imageAtomicExchangeExt_01P10D00B), Rule::Get( - &imageAtomicExchangeExt_01Q10D00B), - Rule::Get( &imageAtomicExchangeExt_01a10D00B), Rule::Get( - &imageAtomicExchangeExt_01b10D00B), - Rule::Get( - &imageAtomicExchangeExt_01c10D00B), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00B), + &imageAtomicExchangeExt_01I10D00B), + Rule::Get( + &imageAtomicExchangeExt_01T10D00B), + Rule::Get( + &imageAtomicExchangeExt_01e10D00B), + Rule::Get( + &imageAtomicExchangeExt_01F10D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01Q10D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01b10D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01G20D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01R20D00D00B), + Rule::Get( + &imageAtomicExchangeExt_01c20D00D00B), Rule::Get( &imageAtomicCompSwapExt_00z10D00E00E), Rule::Get( - &imageAtomicCompSwapExt_01A10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01B10D00E00E), + &imageAtomicCompSwapExt_01K10D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01V10D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01A20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01L20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01W20D00E00E), Rule::Get( &imageAtomicCompSwapExt_01C20D00E00E), Rule::Get( - &imageAtomicCompSwapExt_01D20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01E20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01I20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01J20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01K20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01d00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01e00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01f00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01F20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01G20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01H20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01X20D00E00E), + &imageAtomicCompSwapExt_01N20D00E00E), Rule::Get( &imageAtomicCompSwapExt_01Y20D00E00E), Rule::Get( - &imageAtomicCompSwapExt_01Z20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01L00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01M00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01N00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01O10D00E00E), + &imageAtomicCompSwapExt_01J00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01U00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01f00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01B20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01M20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01X20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01H20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01S20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01d20D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01O00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01Z00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01E10D00E00E), Rule::Get( &imageAtomicCompSwapExt_01P10D00E00E), Rule::Get( - &imageAtomicCompSwapExt_01Q10D00E00E), - Rule::Get( &imageAtomicCompSwapExt_01a10D00E00E), Rule::Get( - &imageAtomicCompSwapExt_01b10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01c10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01R10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01S10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01T10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01U20D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01V20D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01W20D00D00E00E), + &imageAtomicCompSwapExt_01I10D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01T10D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01e10D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01F10D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01Q10D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01b10D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01G20D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01R20D00D00E00E), + Rule::Get( + &imageAtomicCompSwapExt_01c20D00D00E00E), Rule::Get( &imageAtomicCompSwapExt_00z10D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01A10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01B10D00D00D), + &imageAtomicCompSwapExt_01K10D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01V10D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01A20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01L20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01W20D00D00D), Rule::Get( &imageAtomicCompSwapExt_01C20D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01D20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01E20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01I20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01J20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01K20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01d00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01e00D00D00D), + &imageAtomicCompSwapExt_01N20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01Y20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01J00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01U00D00D00D), Rule::Get( &imageAtomicCompSwapExt_01f00D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01F20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01G20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01H20D00D00D), + &imageAtomicCompSwapExt_01B20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01M20D00D00D), Rule::Get( &imageAtomicCompSwapExt_01X20D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01Y20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01Z20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01L00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01M00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01N00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01O10D00D00D), + &imageAtomicCompSwapExt_01H20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01S20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01d20D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01O00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01Z00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01E10D00D00D), Rule::Get( &imageAtomicCompSwapExt_01P10D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01Q10D00D00D), - Rule::Get( &imageAtomicCompSwapExt_01a10D00D00D), Rule::Get( - &imageAtomicCompSwapExt_01b10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01c10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01R10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01S10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01T10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01U20D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01V20D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01W20D00D00D00D), + &imageAtomicCompSwapExt_01I10D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01T10D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01e10D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01F10D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01Q10D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01b10D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01G20D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01R20D00D00D00D), + Rule::Get( + &imageAtomicCompSwapExt_01c20D00D00D00D), Rule::Get(&memoryBarrier_), - Rule::Get(&memoryBarrier_), Rule::Get(&memoryBarrierAtomicCounter_), - Rule::Get(&memoryBarrierAtomicCounter_), Rule::Get(&memoryBarrierBuffer_), - Rule::Get(&memoryBarrierBuffer_), Rule::Get(&memoryBarrierImage_), - Rule::Get(&memoryBarrierImage_), Rule::Get(&barrier_), - Rule::Get(&barrier_), - Rule::Get(&barrierES3_2_), + Rule::Get(&barrierTCSES3_2_), Rule::Get( - &barrier_), + &barrierTCS_), Rule::Get(&memoryBarrierShared_), - Rule::Get(&memoryBarrierShared_), Rule::Get(&groupMemoryBarrier_), - Rule::Get(&groupMemoryBarrier_), - Rule::Get(&EmitVertexES3_2_), - Rule::Get(&EmitVertex_), - Rule::Get(&EndPrimitiveES3_2_), - Rule::Get( - &EndPrimitive_), - Rule::Get(&textureVideoWEBGL_00y10B), - Rule::Get(&textureVideoWEBGL_00y10B), - Rule::Get(&texture_00y10B), - Rule::Get(&texture_00y10B), + Rule::Get(&EmitVertexES3_2_), + Rule::Get(&EmitVertex_), + Rule::Get(&EmitVertex_), + Rule::Get(&EndPrimitiveES3_2_), + Rule::Get(&EndPrimitive_), + Rule::Get(&EndPrimitive_), + Rule::Get(&subpassLoad_01g), + Rule::Get(&subpassLoad_01h), + Rule::Get(&subpassLoad_01i), + Rule::Get(&subpassLoad_01j00D), + Rule::Get(&subpassLoad_01k00D), + Rule::Get(&subpassLoad_01l00D), Rule::Get(&TableBase::m_gl_DepthRangeParameters), - Rule::Get(&TableBase::m_gl_DepthRangeParameters), Rule::Get(&TableBase::m_gl_DepthRange), - Rule::Get(&TableBase::m_gl_DepthRange), Rule::Get(&BuiltInVariable::kgl_NumSamplesES3_2), - Rule::Get(&BuiltInVariable::kgl_NumSamplesES3_2), Rule::Get( &BuiltInVariable::kgl_NumSamples), Rule::Get(&TableBase::m_gl_MaxVertexAttribs), - Rule::Get(&TableBase::m_gl_MaxVertexAttribs), Rule::Get(&TableBase::m_gl_MaxVertexUniformVectors), - Rule::Get(&TableBase::m_gl_MaxVertexUniformVectors), Rule::Get(&TableBase::m_gl_MaxVertexTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxVertexTextureImageUnits), Rule::Get(&TableBase::m_gl_MaxCombinedTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxCombinedTextureImageUnits), Rule::Get(&TableBase::m_gl_MaxTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxTextureImageUnits), Rule::Get(&TableBase::m_gl_MaxFragmentUniformVectors), - Rule::Get(&TableBase::m_gl_MaxFragmentUniformVectors), Rule::Get(&TableBase::m_gl_MaxVaryingVectors), - Rule::Get(&TableBase::m_gl_MaxVaryingVectors), Rule::Get(&TableBase::m_gl_MaxDrawBuffers), - Rule::Get(&TableBase::m_gl_MaxDrawBuffers), Rule::Get( &TableBase::m_gl_MaxDualSourceDrawBuffersEXT), Rule::Get(&TableBase::m_gl_MaxVertexOutputVectors), - Rule::Get(&TableBase::m_gl_MaxVertexOutputVectors), Rule::Get(&TableBase::m_gl_MaxFragmentInputVectors), - Rule::Get(&TableBase::m_gl_MaxFragmentInputVectors), Rule::Get(&TableBase::m_gl_MinProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MinProgramTexelOffset), Rule::Get(&TableBase::m_gl_MaxProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MaxProgramTexelOffset), Rule::Get(&TableBase::m_gl_MaxImageUnits), - Rule::Get(&TableBase::m_gl_MaxImageUnits), Rule::Get(&TableBase::m_gl_MaxVertexImageUniforms), - Rule::Get(&TableBase::m_gl_MaxVertexImageUniforms), Rule::Get(&TableBase::m_gl_MaxFragmentImageUniforms), - Rule::Get(&TableBase::m_gl_MaxFragmentImageUniforms), Rule::Get(&TableBase::m_gl_MaxComputeImageUniforms), - Rule::Get(&TableBase::m_gl_MaxComputeImageUniforms), Rule::Get(&TableBase::m_gl_MaxCombinedImageUniforms), - Rule::Get(&TableBase::m_gl_MaxCombinedImageUniforms), Rule::Get(&TableBase::m_gl_MaxCombinedShaderOutputResources), - Rule::Get(&TableBase::m_gl_MaxCombinedShaderOutputResources), Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupCount), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupCount), Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupSize), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupSize), Rule::Get(&TableBase::m_gl_MaxComputeUniformComponents), - Rule::Get(&TableBase::m_gl_MaxComputeUniformComponents), Rule::Get(&TableBase::m_gl_MaxComputeTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxComputeTextureImageUnits), Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounters), Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounters), Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounters), Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounters), Rule::Get(&TableBase::m_gl_MaxAtomicCounterBindings), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBindings), Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxAtomicCounterBufferSize), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBufferSize), Rule::Get(&TableBase::m_gl_MaxGeometryInputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryInputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryInputComponents), + Rule::Get( + &TableBase::m_gl_MaxGeometryInputComponents), Rule::Get(&TableBase::m_gl_MaxGeometryOutputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryOutputComponents), + Rule::Get( + &TableBase::m_gl_MaxGeometryOutputComponents), Rule::Get(&TableBase::m_gl_MaxGeometryImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryImageUniformsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryImageUniforms), + Rule::Get( + &TableBase::m_gl_MaxGeometryImageUniforms), Rule::Get(&TableBase::m_gl_MaxGeometryTextureImageUnitsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryTextureImageUnitsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryTextureImageUnits), + Rule::Get( + &TableBase::m_gl_MaxGeometryTextureImageUnits), Rule::Get(&TableBase::m_gl_MaxGeometryOutputVerticesES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputVerticesES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryOutputVertices), + Rule::Get( + &TableBase::m_gl_MaxGeometryOutputVertices), Rule::Get( &TableBase::m_gl_MaxGeometryTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryTotalOutputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryTotalOutputComponents), + Rule::Get( + &TableBase::m_gl_MaxGeometryTotalOutputComponents), Rule::Get(&TableBase::m_gl_MaxGeometryUniformComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryUniformComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryUniformComponents), + Rule::Get( + &TableBase::m_gl_MaxGeometryUniformComponents), Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCountersES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryAtomicCounters), + Rule::Get( + &TableBase::m_gl_MaxGeometryAtomicCounters), Rule::Get( &TableBase::m_gl_MaxGeometryAtomicCounterBuffersES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCounterBuffersES3_2), Rule::Get( &TableBase::m_gl_MaxGeometryAtomicCounterBuffers), + Rule::Get( + &TableBase::m_gl_MaxGeometryAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxTessControlInputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlInputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlInputComponents), Rule::Get( &TableBase::m_gl_MaxTessControlOutputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlOutputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlOutputComponents), Rule::Get( &TableBase::m_gl_MaxTessControlTextureImageUnitsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlTextureImageUnitsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlTextureImageUnits), Rule::Get( &TableBase::m_gl_MaxTessControlUniformComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlUniformComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlUniformComponents), Rule::Get( &TableBase::m_gl_MaxTessControlTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlTotalOutputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlTotalOutputComponents), Rule::Get(&TableBase::m_gl_MaxTessControlImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlImageUniformsES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlImageUniforms), Rule::Get(&TableBase::m_gl_MaxTessControlAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlAtomicCountersES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlAtomicCounters), Rule::Get( &TableBase::m_gl_MaxTessControlAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlAtomicCounterBuffersES3_2), Rule::Get( &TableBase::m_gl_MaxTessControlAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxTessPatchComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessPatchComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessPatchComponents), Rule::Get(&TableBase::m_gl_MaxPatchVerticesES3_2), - Rule::Get(&TableBase::m_gl_MaxPatchVerticesES3_2), Rule::Get( &TableBase::m_gl_MaxPatchVertices), Rule::Get(&TableBase::m_gl_MaxTessGenLevelES3_2), - Rule::Get(&TableBase::m_gl_MaxTessGenLevelES3_2), Rule::Get( &TableBase::m_gl_MaxTessGenLevel), Rule::Get( &TableBase::m_gl_MaxTessEvaluationInputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationInputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationInputComponents), Rule::Get( &TableBase::m_gl_MaxTessEvaluationOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationOutputComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationOutputComponents), Rule::Get( &TableBase::m_gl_MaxTessEvaluationTextureImageUnitsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationTextureImageUnitsES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationTextureImageUnits), Rule::Get( &TableBase::m_gl_MaxTessEvaluationUniformComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationUniformComponentsES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationUniformComponents), Rule::Get( &TableBase::m_gl_MaxTessEvaluationImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessEvaluationImageUniformsES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationImageUniforms), Rule::Get( &TableBase::m_gl_MaxTessEvaluationAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxTessEvaluationAtomicCountersES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationAtomicCounters), Rule::Get( &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2), Rule::Get( &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffers), Rule::Get(&TableBase::m_gl_MaxSamplesES3_2), - Rule::Get(&TableBase::m_gl_MaxSamplesES3_2), Rule::Get( &TableBase::m_gl_MaxSamples), Rule::Get( &TableBase::m_gl_MaxClipDistancesAPPLE), Rule::Get( &TableBase::m_gl_MaxCullDistancesEXT), Rule::Get( &TableBase::m_gl_MaxCombinedClipAndCullDistancesEXT), - Rule::Get(&BuiltInVariable::kgl_FragCoord), - Rule::Get(&BuiltInVariable::kgl_FragCoord), + Rule::Get(&BuiltInVariable::kgl_FragCoord), + Rule::Get(&BuiltInVariable::kgl_FragCoord300), Rule::Get(&BuiltInVariable::kgl_FrontFacing), - Rule::Get(&BuiltInVariable::kgl_FrontFacing), Rule::Get(&BuiltInVariable::kgl_PointCoord), - Rule::Get(&BuiltInVariable::kgl_PointCoord), Rule::Get(&BuiltInVariable::kgl_FragColor), - Rule::Get(&BuiltInVariable::kgl_FragColor), Rule::Get(&TableBase::m_gl_FragData), - Rule::Get(&TableBase::m_gl_FragData), Rule::Get(&BuiltInVariable::kgl_FragDepth), - Rule::Get(&BuiltInVariable::kgl_FragDepth), Rule::Get(&BuiltInVariable::kgl_HelperInvocation), - Rule::Get(&BuiltInVariable::kgl_HelperInvocation), Rule::Get( &BuiltInVariable::kgl_SecondaryFragColorEXT), Rule::Get( &TableBase::m_gl_SecondaryFragDataEXT), Rule::Get( @@ -20941,51 +20946,47 @@ Rule::Get( &BuiltInVariable::kgl_LastFragColor), Rule::Get( &BuiltInVariable::kgl_LastFragColorARM), Rule::Get(&BuiltInVariable::kgl_PrimitiveIDES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDES3_2), Rule::Get(&BuiltInVariable::kgl_PrimitiveIDGSES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDGSES3_2), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTCSES3_2), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTESES3_2), Rule::Get( &BuiltInVariable::kgl_PrimitiveID), + Rule::Get( + &BuiltInVariable::kgl_PrimitiveID), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDGS), + Rule::Get( + &BuiltInVariable::kgl_PrimitiveIDGS), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDTCS), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDTES), Rule::Get(&BuiltInVariable::kgl_LayerES3_2), - Rule::Get(&BuiltInVariable::kgl_LayerES3_2), Rule::Get(&BuiltInVariable::kgl_LayerGSES3_2), - Rule::Get(&BuiltInVariable::kgl_LayerGSES3_2), Rule::Get( &BuiltInVariable::kgl_Layer), + Rule::Get( + &BuiltInVariable::kgl_Layer), Rule::Get( &BuiltInVariable::kgl_LayerGS), + Rule::Get( + &BuiltInVariable::kgl_LayerGS), Rule::Get(&BuiltInVariable::kgl_SampleIDES3_2), - Rule::Get(&BuiltInVariable::kgl_SampleIDES3_2), Rule::Get( &BuiltInVariable::kgl_SampleID), Rule::Get(&BuiltInVariable::kgl_SamplePositionES3_2), - Rule::Get(&BuiltInVariable::kgl_SamplePositionES3_2), Rule::Get( &BuiltInVariable::kgl_SamplePosition), Rule::Get(&TableBase::m_gl_SampleMaskInES3_2), - Rule::Get(&TableBase::m_gl_SampleMaskInES3_2), Rule::Get( &TableBase::m_gl_SampleMaskIn), Rule::Get(&TableBase::m_gl_SampleMaskES3_2), - Rule::Get(&TableBase::m_gl_SampleMaskES3_2), Rule::Get( &TableBase::m_gl_SampleMask), Rule::Get( &TableBase::m_gl_CullDistance), Rule::Get( @@ -20993,29 +20994,25 @@ Rule::Get( &TableBase::m_gl_ClipDistance), Rule::Get( &TableBase::m_gl_ClipDistanceAPPLE), Rule::Get(&BuiltInVariable::kgl_Position), - Rule::Get(&BuiltInVariable::kgl_Position), Rule::Get(&TableBase::m_gl_PositionGSES3_2), - Rule::Get(&TableBase::m_gl_PositionGSES3_2), Rule::Get(&TableBase::m_gl_PositionTCSES3_2), - Rule::Get(&TableBase::m_gl_PositionTCSES3_2), Rule::Get(&TableBase::m_gl_PositionTESES3_2), - Rule::Get(&TableBase::m_gl_PositionTESES3_2), Rule::Get( &TableBase::m_gl_PositionGS), + Rule::Get( + &TableBase::m_gl_PositionGS), Rule::Get( &TableBase::m_gl_PositionTCS), Rule::Get( &TableBase::m_gl_PositionTES), - Rule::Get(&BuiltInVariable::kgl_PointSize), - Rule::Get(&BuiltInVariable::kgl_PointSize), + Rule::Get(&BuiltInVariable::kgl_PointSize), + Rule::Get(&BuiltInVariable::kgl_PointSize300), Rule::Get(&BuiltInVariable::kgl_InstanceID), - Rule::Get(&BuiltInVariable::kgl_InstanceID), Rule::Get(&BuiltInVariable::kgl_VertexID), - Rule::Get(&BuiltInVariable::kgl_VertexID), Rule::Get( &BuiltInVariable::kgl_DrawID), Rule::Get( &BuiltInVariable::kgl_BaseVertex), Rule::Get( @@ -21023,103 +21020,86 @@ Rule::Get( &BuiltInVariable::kangle_BaseVertex), Rule::Get( &BuiltInVariable::kangle_BaseInstance), Rule::Get(&BuiltInVariable::kgl_NumWorkGroups), - Rule::Get(&BuiltInVariable::kgl_NumWorkGroups), Rule::Get(&BuiltInVariable::kgl_WorkGroupSize), - Rule::Get(&BuiltInVariable::kgl_WorkGroupSize), Rule::Get(&BuiltInVariable::kgl_WorkGroupID), - Rule::Get(&BuiltInVariable::kgl_WorkGroupID), Rule::Get(&BuiltInVariable::kgl_LocalInvocationID), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationID), Rule::Get(&BuiltInVariable::kgl_GlobalInvocationID), - Rule::Get(&BuiltInVariable::kgl_GlobalInvocationID), Rule::Get(&BuiltInVariable::kgl_LocalInvocationIndex), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationIndex), Rule::Get(&BuiltInVariable::kgl_PrimitiveIDInES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDInES3_2), Rule::Get( &BuiltInVariable::kgl_PrimitiveIDIn), + Rule::Get( + &BuiltInVariable::kgl_PrimitiveIDIn), Rule::Get(&BuiltInVariable::kgl_InvocationIDES3_2), - Rule::Get(&BuiltInVariable::kgl_InvocationIDES3_2), Rule::Get( &BuiltInVariable::kgl_InvocationIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_InvocationIDTCSES3_2), Rule::Get( &BuiltInVariable::kgl_InvocationID), + Rule::Get( + &BuiltInVariable::kgl_InvocationID), Rule::Get( &BuiltInVariable::kgl_InvocationIDTCS), Rule::Get(&TableBase::m_gl_PerVertexES3_2), - Rule::Get(&TableBase::m_gl_PerVertexES3_2), Rule::Get(&TableBase::m_gl_PerVertexTCSES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTCSES3_2), Rule::Get(&TableBase::m_gl_PerVertexTESES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTESES3_2), Rule::Get( &TableBase::m_gl_PerVertex), + Rule::Get( + &TableBase::m_gl_PerVertex), Rule::Get( &TableBase::m_gl_PerVertexTCS), Rule::Get( &TableBase::m_gl_PerVertexTES), Rule::Get(&TableBase::m_gl_inES3_2), - Rule::Get(&TableBase::m_gl_inES3_2), Rule::Get(&TableBase::m_gl_inTCSES3_2), - Rule::Get(&TableBase::m_gl_inTCSES3_2), Rule::Get(&TableBase::m_gl_inTESES3_2), - Rule::Get(&TableBase::m_gl_inTESES3_2), Rule::Get( &TableBase::m_gl_in), + Rule::Get( + &TableBase::m_gl_in), Rule::Get( &TableBase::m_gl_inTCS), Rule::Get( &TableBase::m_gl_inTES), Rule::Get( &BuiltInVariable::kgl_PatchVerticesInTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTCSES3_2), Rule::Get( &BuiltInVariable::kgl_PatchVerticesInTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTESES3_2), Rule::Get( &BuiltInVariable::kgl_PatchVerticesInTCS), Rule::Get( &BuiltInVariable::kgl_PatchVerticesInTES), Rule::Get( &TableBase::m_gl_TessLevelOuterTCSES3_2), - Rule::Get(&TableBase::m_gl_TessLevelOuterTCSES3_2), Rule::Get( &TableBase::m_gl_TessLevelOuterTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTESES3_2), Rule::Get( &TableBase::m_gl_TessLevelOuterTCS), Rule::Get( &TableBase::m_gl_TessLevelOuterTES), Rule::Get( &TableBase::m_gl_TessLevelInnerTCSES3_2), - Rule::Get(&TableBase::m_gl_TessLevelInnerTCSES3_2), Rule::Get( &TableBase::m_gl_TessLevelInnerTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTESES3_2), Rule::Get( &TableBase::m_gl_TessLevelInnerTCS), Rule::Get( &TableBase::m_gl_TessLevelInnerTES), Rule::Get(&TableBase::m_gl_outTCSES3_2), - Rule::Get(&TableBase::m_gl_outTCSES3_2), Rule::Get(&TableBase::m_gl_outTESES3_2), - Rule::Get(&TableBase::m_gl_outTESES3_2), Rule::Get( &TableBase::m_gl_outTCS), Rule::Get( &TableBase::m_gl_outTES), + Rule::Get( + &TableBase::m_gl_BoundingBoxEXTTCSES3_2), + Rule::Get( + &TableBase::m_gl_BoundingBoxEXTTCS), Rule::Get(&BuiltInVariable::kgl_TessCoord), - Rule::Get(&BuiltInVariable::kgl_TessCoord), Rule::Get( &BuiltInVariable::kgl_ViewID_OVR)}; // Flat array of all mangled names. constexpr const char *kMangledNames[] = {"radians(00B", @@ -21604,55 +21584,41 @@ "imulExtended(30D30D30D30D", "texture2D(00I10B", "texture2DProj(00I20B", "texture2DProj(00I30B", "textureCube(00K20B", + "texture3D(00J20B", + "texture3DProj(00J30B", + "shadow2DEXT(00d20B", + "shadow2DProjEXT(00d30B", "texture2D(00M10B", "texture2DProj(00M20B", "texture2DProj(00M30B", "texture2DRect(00O10B", "texture2DRectProj(00O20B", "texture2DRectProj(00O30B", - "texture(00O10B", - "textureProj(00O20B", - "textureProj(00O30B", "texture2DGradEXT(00I10B10B10B", "texture2DProjGradEXT(00I20B10B10B", "texture2DProjGradEXT(00I30B10B10B", "textureCubeGradEXT(00K20B20B20B", + "textureVideoWEBGL(00y10B", "texture2D(00I10B00B", "texture2DProj(00I20B00B", "texture2DProj(00I30B00B", "textureCube(00K20B00B", - "dFdx(00B", - "dFdx(10B", - "dFdx(20B", - "dFdx(30B", - "dFdy(00B", - "dFdy(10B", - "dFdy(20B", - "dFdy(30B", - "fwidth(00B", - "fwidth(10B", - "fwidth(20B", - "fwidth(30B", - "texture2DLodEXT(00I10B00B", - "texture2DProjLodEXT(00I20B00B", - "texture2DProjLodEXT(00I30B00B", - "textureCubeLodEXT(00K20B00B", - "shadow2DEXT(00d20B", - "shadow2DProjEXT(00d30B", - "texture3D(00J20B", - "texture3DProj(00J30B", "texture3D(00J20B00B", "texture3DProj(00J30B00B", "texture3DLod(00J20B00B", "texture3DProjLod(00J30B00B", "texture2DLod(00I10B00B", "texture2DProjLod(00I20B00B", "texture2DProjLod(00I30B00B", "textureCubeLod(00K20B00B", + "texture2DLodEXT(00I10B00B", + "texture2DProjLodEXT(00I20B00B", + "texture2DProjLodEXT(00I30B00B", + "textureCubeLodEXT(00K20B00B", "texture(00I10B", "texture(00R10B", "texture(00X10B", "texture(00J20B", "texture(00S20B", @@ -21664,20 +21630,34 @@ "texture(00U20B", "texture(00a20B", "texture(00d20B", "texture(00e30B", "texture(00f30B", + "texture(00k30B", + "texture(00s30B", + "texture(00x30B", + "texture(00l30B00B", + "texture(00M10B", + "texture(00N10B", + "texture(00O10B", + "texture(00y10B", "textureProj(00I20B", "textureProj(00R20B", "textureProj(00X20B", "textureProj(00I30B", "textureProj(00R30B", "textureProj(00X30B", "textureProj(00J30B", "textureProj(00S30B", "textureProj(00Y30B", "textureProj(00d30B", + "textureProj(00M20B", + "textureProj(00M30B", + "textureProj(00N20B", + "textureProj(00N30B", + "textureProj(00O20B", + "textureProj(00O30B", "textureLod(00I10B00B", "textureLod(00R10B00B", "textureLod(00X10B00B", "textureLod(00J20B00B", "textureLod(00S20B00B", @@ -21687,10 +21667,13 @@ "textureLod(00Z20B00B", "textureLod(00L20B00B", "textureLod(00U20B00B", "textureLod(00a20B00B", "textureLod(00d20B00B", + "textureLod(00k30B00B", + "textureLod(00s30B00B", + "textureLod(00x30B00B", "textureSize(00I00D", "textureSize(00R00D", "textureSize(00X00D", "textureSize(00J00D", "textureSize(00S00D", @@ -21702,10 +21685,25 @@ "textureSize(00U00D", "textureSize(00a00D", "textureSize(00d00D", "textureSize(00e00D", "textureSize(00f00D", + "textureSize(00k00D", + "textureSize(00s00D", + "textureSize(00x00D", + "textureSize(00l00D", + "textureSize(00j", + "textureSize(00r", + "textureSize(00w", + "textureSize(00P", + "textureSize(00V", + "textureSize(00b", + "textureSize(00Q", + "textureSize(00W", + "textureSize(00c", + "textureSize(00M00D", + "textureSize(00N00D", "textureProjLod(00I20B00B", "textureProjLod(00R20B00B", "textureProjLod(00X20B00B", "textureProjLod(00I30B00B", "textureProjLod(00R30B00B", @@ -21721,10 +21719,21 @@ "texelFetch(00S20D00D", "texelFetch(00Y20D00D", "texelFetch(00L20D00D", "texelFetch(00U20D00D", "texelFetch(00a20D00D", + "texelFetch(00j00D", + "texelFetch(00r00D", + "texelFetch(00w00D", + "texelFetch(00P10D00D", + "texelFetch(00V10D00D", + "texelFetch(00b10D00D", + "texelFetch(00Q20D00D", + "texelFetch(00W20D00D", + "texelFetch(00c20D00D", + "texelFetch(00M10D00D", + "texelFetch(00N10D00D", "textureGrad(00I10B10B10B", "textureGrad(00R10B10B10B", "textureGrad(00X10B10B10B", "textureGrad(00J20B20B20B", "textureGrad(00S20B20B20B", @@ -21736,62 +21745,23 @@ "textureGrad(00e30B20B20B", "textureGrad(00L20B10B10B", "textureGrad(00U20B10B10B", "textureGrad(00a20B10B10B", "textureGrad(00f30B10B10B", + "textureGrad(00k30B20B20B", + "textureGrad(00s30B20B20B", + "textureGrad(00x30B20B20B", "textureProjGrad(00I20B10B10B", "textureProjGrad(00R20B10B10B", "textureProjGrad(00X20B10B10B", "textureProjGrad(00I30B10B10B", "textureProjGrad(00R30B10B10B", "textureProjGrad(00X30B10B10B", "textureProjGrad(00J30B20B20B", "textureProjGrad(00S30B20B20B", "textureProjGrad(00Y30B20B20B", "textureProjGrad(00d30B10B10B", - "textureSize(00P", - "textureSize(00V", - "textureSize(00b", - "textureSize(00Q", - "textureSize(00W", - "textureSize(00c", - "textureSize(00k00D", - "textureSize(00s00D", - "textureSize(00x00D", - "textureSize(00l00D", - "texture(00k30B", - "texture(00s30B", - "texture(00x30B", - "texture(00k30B00B", - "texture(00s30B00B", - "texture(00x30B00B", - "texture(00l30B00B", - "textureLod(00k30B00B", - "textureLod(00s30B00B", - "textureLod(00x30B00B", - "textureGrad(00k30B20B20B", - "textureGrad(00s30B20B20B", - "textureGrad(00x30B20B20B", - "textureGather(00k30B", - "textureGather(00s30B", - "textureGather(00x30B", - "textureGather(00k30B00D", - "textureGather(00s30B00D", - "textureGather(00x30B00D", - "textureGather(00l30B00B", - "textureSize(00j", - "textureSize(00r", - "textureSize(00w", - "texelFetch(00j00D", - "texelFetch(00r00D", - "texelFetch(00w00D", - "texelFetch(00P10D00D", - "texelFetch(00V10D00D", - "texelFetch(00b10D00D", - "texelFetch(00Q20D00D", - "texelFetch(00W20D00D", - "texelFetch(00c20D00D", "texture(00I10B00B", "texture(00R10B00B", "texture(00X10B00B", "texture(00J20B00B", "texture(00S20B00B", @@ -21812,10 +21782,13 @@ "textureProj(00S30B00B", "textureProj(00Y30B00B", "texture(00d20B00B", "texture(00e30B00B", "textureProj(00d30B00B", + "texture(00k30B00B", + "texture(00s30B00B", + "texture(00x30B00B", "texture(00M10B00B", "textureProj(00M20B00B", "textureProj(00M30B00B", "texture(00N10B00B", "textureProj(00N20B00B", @@ -21908,22 +21881,10 @@ "textureProjOffset(00X30B10D00B", "textureProjOffset(00J30B20D00B", "textureProjOffset(00S30B20D00B", "textureProjOffset(00Y30B20D00B", "textureProjOffset(00d30B10D00B", - "texture(00M10B", - "textureProj(00M20B", - "textureProj(00M30B", - "textureSize(00M00D", - "texelFetch(00M10D00D", - "texture(00N10B", - "textureProj(00N20B", - "textureProj(00N30B", - "rgb_2_yuv(20B00H", - "yuv_2_rgb(20B00H", - "textureSize(00N00D", - "texelFetch(00N10D00D", "textureGather(00I10B", "textureGather(00R10B", "textureGather(00X10B", "textureGather(00I10B00D", "textureGather(00R10B00D", @@ -21938,10 +21899,17 @@ "textureGather(00T20B", "textureGather(00Z20B", "textureGather(00K20B00D", "textureGather(00T20B00D", "textureGather(00Z20B00D", + "textureGather(00k30B", + "textureGather(00s30B", + "textureGather(00x30B", + "textureGather(00k30B00D", + "textureGather(00s30B00D", + "textureGather(00x30B00D", + "textureGather(00l30B00B", "textureGather(00d10B", "textureGather(00d10B00B", "textureGather(00f20B", "textureGather(00f20B00B", "textureGather(00e20B", @@ -21972,10 +21940,24 @@ "textureGatherOffsets(00R10B10Dx400D", "textureGatherOffsets(00X10B10Dx400D", "textureGatherOffsets(00L20B10Dx400D", "textureGatherOffsets(00U20B10Dx400D", "textureGatherOffsets(00a20B10Dx400D", + "rgb_2_yuv(20B00H", + "yuv_2_rgb(20B00H", + "dFdx(00B", + "dFdx(10B", + "dFdx(20B", + "dFdx(30B", + "dFdy(00B", + "dFdy(10B", + "dFdy(20B", + "dFdy(30B", + "fwidth(00B", + "fwidth(10B", + "fwidth(20B", + "fwidth(30B", "interpolateAtCentroid(00B", "interpolateAtCentroid(10B", "interpolateAtCentroid(20B", "interpolateAtCentroid(30B", "interpolateAtSample(00B00D", @@ -22004,635 +21986,639 @@ "atomicExchange(00E00E", "atomicExchange(00D00D", "atomicCompSwap(00E00E00E", "atomicCompSwap(00D00D00D", "imageSize(00z", + "imageSize(01K", + "imageSize(01V", "imageSize(01A", + "imageSize(01L", + "imageSize(01W", "imageSize(01B", + "imageSize(01M", + "imageSize(01X", "imageSize(01C", - "imageSize(01D", - "imageSize(01E", - "imageSize(01F", - "imageSize(01G", + "imageSize(01N", + "imageSize(01Y", "imageSize(01H", - "imageSize(01I", + "imageSize(01S", + "imageSize(01d", "imageSize(01J", - "imageSize(01K", - "imageSize(01X", - "imageSize(01Y", - "imageSize(01Z", - "imageSize(01d", - "imageSize(01e", + "imageSize(01U", "imageSize(01f", "imageStore(00z10D30B", - "imageStore(01A10D30D", - "imageStore(01B10D30E", + "imageStore(01K10D30D", + "imageStore(01V10D30E", + "imageStore(01A20D30B", + "imageStore(01L20D30D", + "imageStore(01W20D30E", + "imageStore(01B20D30B", + "imageStore(01M20D30D", + "imageStore(01X20D30E", "imageStore(01C20D30B", - "imageStore(01D20D30D", - "imageStore(01E20D30E", - "imageStore(01F20D30B", - "imageStore(01G20D30D", - "imageStore(01H20D30E", - "imageStore(01I20D30B", - "imageStore(01J20D30D", - "imageStore(01K20D30E", - "imageStore(01X20D30B", - "imageStore(01Y20D30D", - "imageStore(01Z20D30E", - "imageStore(01d00D30B", - "imageStore(01e00D30D", + "imageStore(01N20D30D", + "imageStore(01Y20D30E", + "imageStore(01H20D30B", + "imageStore(01S20D30D", + "imageStore(01d20D30E", + "imageStore(01J00D30B", + "imageStore(01U00D30D", "imageStore(01f00D30E", "imageLoad(00z10D", - "imageLoad(01A10D", - "imageLoad(01B10D", + "imageLoad(01K10D", + "imageLoad(01V10D", + "imageLoad(01A20D", + "imageLoad(01L20D", + "imageLoad(01W20D", + "imageLoad(01B20D", + "imageLoad(01M20D", + "imageLoad(01X20D", "imageLoad(01C20D", - "imageLoad(01D20D", - "imageLoad(01E20D", - "imageLoad(01F20D", - "imageLoad(01G20D", + "imageLoad(01N20D", + "imageLoad(01Y20D", "imageLoad(01H20D", - "imageLoad(01I20D", - "imageLoad(01J20D", - "imageLoad(01K20D", - "imageLoad(01X20D", - "imageLoad(01Y20D", - "imageLoad(01Z20D", - "imageLoad(01d00D", - "imageLoad(01e00D", + "imageLoad(01S20D", + "imageLoad(01d20D", + "imageLoad(01J00D", + "imageLoad(01U00D", "imageLoad(01f00D", "imageAtomicAdd(00z10D00E", - "imageAtomicAdd(01A10D00E", - "imageAtomicAdd(01B10D00E", + "imageAtomicAdd(01K10D00E", + "imageAtomicAdd(01V10D00E", + "imageAtomicAdd(01A20D00E", + "imageAtomicAdd(01L20D00E", + "imageAtomicAdd(01W20D00E", "imageAtomicAdd(01C20D00E", - "imageAtomicAdd(01D20D00E", - "imageAtomicAdd(01E20D00E", - "imageAtomicAdd(01I20D00E", - "imageAtomicAdd(01J20D00E", - "imageAtomicAdd(01K20D00E", - "imageAtomicAdd(01d00D00E", - "imageAtomicAdd(01e00D00E", - "imageAtomicAdd(01f00D00E", - "imageAtomicAdd(01F20D00E", - "imageAtomicAdd(01G20D00E", - "imageAtomicAdd(01H20D00E", - "imageAtomicAdd(01X20D00E", + "imageAtomicAdd(01N20D00E", "imageAtomicAdd(01Y20D00E", - "imageAtomicAdd(01Z20D00E", - "imageAtomicAdd(01L00D00E", - "imageAtomicAdd(01M00D00E", - "imageAtomicAdd(01N00D00E", - "imageAtomicAdd(01O10D00E", + "imageAtomicAdd(01J00D00E", + "imageAtomicAdd(01U00D00E", + "imageAtomicAdd(01f00D00E", + "imageAtomicAdd(01B20D00E", + "imageAtomicAdd(01M20D00E", + "imageAtomicAdd(01X20D00E", + "imageAtomicAdd(01H20D00E", + "imageAtomicAdd(01S20D00E", + "imageAtomicAdd(01d20D00E", + "imageAtomicAdd(01D00D00E", + "imageAtomicAdd(01O00D00E", + "imageAtomicAdd(01Z00D00E", + "imageAtomicAdd(01E10D00E", "imageAtomicAdd(01P10D00E", - "imageAtomicAdd(01Q10D00E", "imageAtomicAdd(01a10D00E", - "imageAtomicAdd(01b10D00E", - "imageAtomicAdd(01c10D00E", - "imageAtomicAdd(01R10D00D00E", - "imageAtomicAdd(01S10D00D00E", - "imageAtomicAdd(01T10D00D00E", - "imageAtomicAdd(01U20D00D00E", - "imageAtomicAdd(01V20D00D00E", - "imageAtomicAdd(01W20D00D00E", + "imageAtomicAdd(01I10D00E", + "imageAtomicAdd(01T10D00E", + "imageAtomicAdd(01e10D00E", + "imageAtomicAdd(01F10D00D00E", + "imageAtomicAdd(01Q10D00D00E", + "imageAtomicAdd(01b10D00D00E", + "imageAtomicAdd(01G20D00D00E", + "imageAtomicAdd(01R20D00D00E", + "imageAtomicAdd(01c20D00D00E", "imageAtomicAdd(00z10D00D", - "imageAtomicAdd(01A10D00D", - "imageAtomicAdd(01B10D00D", + "imageAtomicAdd(01K10D00D", + "imageAtomicAdd(01V10D00D", + "imageAtomicAdd(01A20D00D", + "imageAtomicAdd(01L20D00D", + "imageAtomicAdd(01W20D00D", "imageAtomicAdd(01C20D00D", - "imageAtomicAdd(01D20D00D", - "imageAtomicAdd(01E20D00D", - "imageAtomicAdd(01I20D00D", - "imageAtomicAdd(01J20D00D", - "imageAtomicAdd(01K20D00D", - "imageAtomicAdd(01d00D00D", - "imageAtomicAdd(01e00D00D", - "imageAtomicAdd(01f00D00D", - "imageAtomicAdd(01F20D00D", - "imageAtomicAdd(01G20D00D", - "imageAtomicAdd(01H20D00D", - "imageAtomicAdd(01X20D00D", + "imageAtomicAdd(01N20D00D", "imageAtomicAdd(01Y20D00D", - "imageAtomicAdd(01Z20D00D", - "imageAtomicAdd(01L00D00D", - "imageAtomicAdd(01M00D00D", - "imageAtomicAdd(01N00D00D", - "imageAtomicAdd(01O10D00D", + "imageAtomicAdd(01J00D00D", + "imageAtomicAdd(01U00D00D", + "imageAtomicAdd(01f00D00D", + "imageAtomicAdd(01B20D00D", + "imageAtomicAdd(01M20D00D", + "imageAtomicAdd(01X20D00D", + "imageAtomicAdd(01H20D00D", + "imageAtomicAdd(01S20D00D", + "imageAtomicAdd(01d20D00D", + "imageAtomicAdd(01D00D00D", + "imageAtomicAdd(01O00D00D", + "imageAtomicAdd(01Z00D00D", + "imageAtomicAdd(01E10D00D", "imageAtomicAdd(01P10D00D", - "imageAtomicAdd(01Q10D00D", "imageAtomicAdd(01a10D00D", - "imageAtomicAdd(01b10D00D", - "imageAtomicAdd(01c10D00D", - "imageAtomicAdd(01R10D00D00D", - "imageAtomicAdd(01S10D00D00D", - "imageAtomicAdd(01T10D00D00D", - "imageAtomicAdd(01U20D00D00D", - "imageAtomicAdd(01V20D00D00D", - "imageAtomicAdd(01W20D00D00D", + "imageAtomicAdd(01I10D00D", + "imageAtomicAdd(01T10D00D", + "imageAtomicAdd(01e10D00D", + "imageAtomicAdd(01F10D00D00D", + "imageAtomicAdd(01Q10D00D00D", + "imageAtomicAdd(01b10D00D00D", + "imageAtomicAdd(01G20D00D00D", + "imageAtomicAdd(01R20D00D00D", + "imageAtomicAdd(01c20D00D00D", "imageAtomicMin(00z10D00E", - "imageAtomicMin(01A10D00E", - "imageAtomicMin(01B10D00E", + "imageAtomicMin(01K10D00E", + "imageAtomicMin(01V10D00E", + "imageAtomicMin(01A20D00E", + "imageAtomicMin(01L20D00E", + "imageAtomicMin(01W20D00E", "imageAtomicMin(01C20D00E", - "imageAtomicMin(01D20D00E", - "imageAtomicMin(01E20D00E", - "imageAtomicMin(01I20D00E", - "imageAtomicMin(01J20D00E", - "imageAtomicMin(01K20D00E", - "imageAtomicMin(01d00D00E", - "imageAtomicMin(01e00D00E", - "imageAtomicMin(01f00D00E", - "imageAtomicMin(01F20D00E", - "imageAtomicMin(01G20D00E", - "imageAtomicMin(01H20D00E", - "imageAtomicMin(01X20D00E", + "imageAtomicMin(01N20D00E", "imageAtomicMin(01Y20D00E", - "imageAtomicMin(01Z20D00E", - "imageAtomicMin(01L00D00E", - "imageAtomicMin(01M00D00E", - "imageAtomicMin(01N00D00E", - "imageAtomicMin(01O10D00E", + "imageAtomicMin(01J00D00E", + "imageAtomicMin(01U00D00E", + "imageAtomicMin(01f00D00E", + "imageAtomicMin(01B20D00E", + "imageAtomicMin(01M20D00E", + "imageAtomicMin(01X20D00E", + "imageAtomicMin(01H20D00E", + "imageAtomicMin(01S20D00E", + "imageAtomicMin(01d20D00E", + "imageAtomicMin(01D00D00E", + "imageAtomicMin(01O00D00E", + "imageAtomicMin(01Z00D00E", + "imageAtomicMin(01E10D00E", "imageAtomicMin(01P10D00E", - "imageAtomicMin(01Q10D00E", "imageAtomicMin(01a10D00E", - "imageAtomicMin(01b10D00E", - "imageAtomicMin(01c10D00E", - "imageAtomicMin(01R10D00D00E", - "imageAtomicMin(01S10D00D00E", - "imageAtomicMin(01T10D00D00E", - "imageAtomicMin(01U20D00D00E", - "imageAtomicMin(01V20D00D00E", - "imageAtomicMin(01W20D00D00E", + "imageAtomicMin(01I10D00E", + "imageAtomicMin(01T10D00E", + "imageAtomicMin(01e10D00E", + "imageAtomicMin(01F10D00D00E", + "imageAtomicMin(01Q10D00D00E", + "imageAtomicMin(01b10D00D00E", + "imageAtomicMin(01G20D00D00E", + "imageAtomicMin(01R20D00D00E", + "imageAtomicMin(01c20D00D00E", "imageAtomicMin(00z10D00D", - "imageAtomicMin(01A10D00D", - "imageAtomicMin(01B10D00D", + "imageAtomicMin(01K10D00D", + "imageAtomicMin(01V10D00D", + "imageAtomicMin(01A20D00D", + "imageAtomicMin(01L20D00D", + "imageAtomicMin(01W20D00D", "imageAtomicMin(01C20D00D", - "imageAtomicMin(01D20D00D", - "imageAtomicMin(01E20D00D", - "imageAtomicMin(01I20D00D", - "imageAtomicMin(01J20D00D", - "imageAtomicMin(01K20D00D", - "imageAtomicMin(01d00D00D", - "imageAtomicMin(01e00D00D", - "imageAtomicMin(01f00D00D", - "imageAtomicMin(01F20D00D", - "imageAtomicMin(01G20D00D", - "imageAtomicMin(01H20D00D", - "imageAtomicMin(01X20D00D", + "imageAtomicMin(01N20D00D", "imageAtomicMin(01Y20D00D", - "imageAtomicMin(01Z20D00D", - "imageAtomicMin(01L00D00D", - "imageAtomicMin(01M00D00D", - "imageAtomicMin(01N00D00D", - "imageAtomicMin(01O10D00D", + "imageAtomicMin(01J00D00D", + "imageAtomicMin(01U00D00D", + "imageAtomicMin(01f00D00D", + "imageAtomicMin(01B20D00D", + "imageAtomicMin(01M20D00D", + "imageAtomicMin(01X20D00D", + "imageAtomicMin(01H20D00D", + "imageAtomicMin(01S20D00D", + "imageAtomicMin(01d20D00D", + "imageAtomicMin(01D00D00D", + "imageAtomicMin(01O00D00D", + "imageAtomicMin(01Z00D00D", + "imageAtomicMin(01E10D00D", "imageAtomicMin(01P10D00D", - "imageAtomicMin(01Q10D00D", "imageAtomicMin(01a10D00D", - "imageAtomicMin(01b10D00D", - "imageAtomicMin(01c10D00D", - "imageAtomicMin(01R10D00D00D", - "imageAtomicMin(01S10D00D00D", - "imageAtomicMin(01T10D00D00D", - "imageAtomicMin(01U20D00D00D", - "imageAtomicMin(01V20D00D00D", - "imageAtomicMin(01W20D00D00D", + "imageAtomicMin(01I10D00D", + "imageAtomicMin(01T10D00D", + "imageAtomicMin(01e10D00D", + "imageAtomicMin(01F10D00D00D", + "imageAtomicMin(01Q10D00D00D", + "imageAtomicMin(01b10D00D00D", + "imageAtomicMin(01G20D00D00D", + "imageAtomicMin(01R20D00D00D", + "imageAtomicMin(01c20D00D00D", "imageAtomicMax(00z10D00E", - "imageAtomicMax(01A10D00E", - "imageAtomicMax(01B10D00E", + "imageAtomicMax(01K10D00E", + "imageAtomicMax(01V10D00E", + "imageAtomicMax(01A20D00E", + "imageAtomicMax(01L20D00E", + "imageAtomicMax(01W20D00E", "imageAtomicMax(01C20D00E", - "imageAtomicMax(01D20D00E", - "imageAtomicMax(01E20D00E", - "imageAtomicMax(01I20D00E", - "imageAtomicMax(01J20D00E", - "imageAtomicMax(01K20D00E", - "imageAtomicMax(01d00D00E", - "imageAtomicMax(01e00D00E", - "imageAtomicMax(01f00D00E", - "imageAtomicMax(01F20D00E", - "imageAtomicMax(01G20D00E", - "imageAtomicMax(01H20D00E", - "imageAtomicMax(01X20D00E", + "imageAtomicMax(01N20D00E", "imageAtomicMax(01Y20D00E", - "imageAtomicMax(01Z20D00E", - "imageAtomicMax(01L00D00E", - "imageAtomicMax(01M00D00E", - "imageAtomicMax(01N00D00E", - "imageAtomicMax(01O10D00E", + "imageAtomicMax(01J00D00E", + "imageAtomicMax(01U00D00E", + "imageAtomicMax(01f00D00E", + "imageAtomicMax(01B20D00E", + "imageAtomicMax(01M20D00E", + "imageAtomicMax(01X20D00E", + "imageAtomicMax(01H20D00E", + "imageAtomicMax(01S20D00E", + "imageAtomicMax(01d20D00E", + "imageAtomicMax(01D00D00E", + "imageAtomicMax(01O00D00E", + "imageAtomicMax(01Z00D00E", + "imageAtomicMax(01E10D00E", "imageAtomicMax(01P10D00E", - "imageAtomicMax(01Q10D00E", "imageAtomicMax(01a10D00E", - "imageAtomicMax(01b10D00E", - "imageAtomicMax(01c10D00E", - "imageAtomicMax(01R10D00D00E", - "imageAtomicMax(01S10D00D00E", - "imageAtomicMax(01T10D00D00E", - "imageAtomicMax(01U20D00D00E", - "imageAtomicMax(01V20D00D00E", - "imageAtomicMax(01W20D00D00E", + "imageAtomicMax(01I10D00E", + "imageAtomicMax(01T10D00E", + "imageAtomicMax(01e10D00E", + "imageAtomicMax(01F10D00D00E", + "imageAtomicMax(01Q10D00D00E", + "imageAtomicMax(01b10D00D00E", + "imageAtomicMax(01G20D00D00E", + "imageAtomicMax(01R20D00D00E", + "imageAtomicMax(01c20D00D00E", "imageAtomicMax(00z10D00D", - "imageAtomicMax(01A10D00D", - "imageAtomicMax(01B10D00D", + "imageAtomicMax(01K10D00D", + "imageAtomicMax(01V10D00D", + "imageAtomicMax(01A20D00D", + "imageAtomicMax(01L20D00D", + "imageAtomicMax(01W20D00D", "imageAtomicMax(01C20D00D", - "imageAtomicMax(01D20D00D", - "imageAtomicMax(01E20D00D", - "imageAtomicMax(01I20D00D", - "imageAtomicMax(01J20D00D", - "imageAtomicMax(01K20D00D", - "imageAtomicMax(01d00D00D", - "imageAtomicMax(01e00D00D", - "imageAtomicMax(01f00D00D", - "imageAtomicMax(01F20D00D", - "imageAtomicMax(01G20D00D", - "imageAtomicMax(01H20D00D", - "imageAtomicMax(01X20D00D", + "imageAtomicMax(01N20D00D", "imageAtomicMax(01Y20D00D", - "imageAtomicMax(01Z20D00D", - "imageAtomicMax(01L00D00D", - "imageAtomicMax(01M00D00D", - "imageAtomicMax(01N00D00D", - "imageAtomicMax(01O10D00D", + "imageAtomicMax(01J00D00D", + "imageAtomicMax(01U00D00D", + "imageAtomicMax(01f00D00D", + "imageAtomicMax(01B20D00D", + "imageAtomicMax(01M20D00D", + "imageAtomicMax(01X20D00D", + "imageAtomicMax(01H20D00D", + "imageAtomicMax(01S20D00D", + "imageAtomicMax(01d20D00D", + "imageAtomicMax(01D00D00D", + "imageAtomicMax(01O00D00D", + "imageAtomicMax(01Z00D00D", + "imageAtomicMax(01E10D00D", "imageAtomicMax(01P10D00D", - "imageAtomicMax(01Q10D00D", "imageAtomicMax(01a10D00D", - "imageAtomicMax(01b10D00D", - "imageAtomicMax(01c10D00D", - "imageAtomicMax(01R10D00D00D", - "imageAtomicMax(01S10D00D00D", - "imageAtomicMax(01T10D00D00D", - "imageAtomicMax(01U20D00D00D", - "imageAtomicMax(01V20D00D00D", - "imageAtomicMax(01W20D00D00D", + "imageAtomicMax(01I10D00D", + "imageAtomicMax(01T10D00D", + "imageAtomicMax(01e10D00D", + "imageAtomicMax(01F10D00D00D", + "imageAtomicMax(01Q10D00D00D", + "imageAtomicMax(01b10D00D00D", + "imageAtomicMax(01G20D00D00D", + "imageAtomicMax(01R20D00D00D", + "imageAtomicMax(01c20D00D00D", "imageAtomicAnd(00z10D00E", - "imageAtomicAnd(01A10D00E", - "imageAtomicAnd(01B10D00E", + "imageAtomicAnd(01K10D00E", + "imageAtomicAnd(01V10D00E", + "imageAtomicAnd(01A20D00E", + "imageAtomicAnd(01L20D00E", + "imageAtomicAnd(01W20D00E", "imageAtomicAnd(01C20D00E", - "imageAtomicAnd(01D20D00E", - "imageAtomicAnd(01E20D00E", - "imageAtomicAnd(01I20D00E", - "imageAtomicAnd(01J20D00E", - "imageAtomicAnd(01K20D00E", - "imageAtomicAnd(01d00D00E", - "imageAtomicAnd(01e00D00E", - "imageAtomicAnd(01f00D00E", - "imageAtomicAnd(01F20D00E", - "imageAtomicAnd(01G20D00E", - "imageAtomicAnd(01H20D00E", - "imageAtomicAnd(01X20D00E", + "imageAtomicAnd(01N20D00E", "imageAtomicAnd(01Y20D00E", - "imageAtomicAnd(01Z20D00E", - "imageAtomicAnd(01L00D00E", - "imageAtomicAnd(01M00D00E", - "imageAtomicAnd(01N00D00E", - "imageAtomicAnd(01O10D00E", + "imageAtomicAnd(01J00D00E", + "imageAtomicAnd(01U00D00E", + "imageAtomicAnd(01f00D00E", + "imageAtomicAnd(01B20D00E", + "imageAtomicAnd(01M20D00E", + "imageAtomicAnd(01X20D00E", + "imageAtomicAnd(01H20D00E", + "imageAtomicAnd(01S20D00E", + "imageAtomicAnd(01d20D00E", + "imageAtomicAnd(01D00D00E", + "imageAtomicAnd(01O00D00E", + "imageAtomicAnd(01Z00D00E", + "imageAtomicAnd(01E10D00E", "imageAtomicAnd(01P10D00E", - "imageAtomicAnd(01Q10D00E", "imageAtomicAnd(01a10D00E", - "imageAtomicAnd(01b10D00E", - "imageAtomicAnd(01c10D00E", - "imageAtomicAnd(01R10D00D00E", - "imageAtomicAnd(01S10D00D00E", - "imageAtomicAnd(01T10D00D00E", - "imageAtomicAnd(01U20D00D00E", - "imageAtomicAnd(01V20D00D00E", - "imageAtomicAnd(01W20D00D00E", + "imageAtomicAnd(01I10D00E", + "imageAtomicAnd(01T10D00E", + "imageAtomicAnd(01e10D00E", + "imageAtomicAnd(01F10D00D00E", + "imageAtomicAnd(01Q10D00D00E", + "imageAtomicAnd(01b10D00D00E", + "imageAtomicAnd(01G20D00D00E", + "imageAtomicAnd(01R20D00D00E", + "imageAtomicAnd(01c20D00D00E", "imageAtomicAnd(00z10D00D", - "imageAtomicAnd(01A10D00D", - "imageAtomicAnd(01B10D00D", + "imageAtomicAnd(01K10D00D", + "imageAtomicAnd(01V10D00D", + "imageAtomicAnd(01A20D00D", + "imageAtomicAnd(01L20D00D", + "imageAtomicAnd(01W20D00D", "imageAtomicAnd(01C20D00D", - "imageAtomicAnd(01D20D00D", - "imageAtomicAnd(01E20D00D", - "imageAtomicAnd(01I20D00D", - "imageAtomicAnd(01J20D00D", - "imageAtomicAnd(01K20D00D", - "imageAtomicAnd(01d00D00D", - "imageAtomicAnd(01e00D00D", + "imageAtomicAnd(01N20D00D", + "imageAtomicAnd(01Y20D00D", + "imageAtomicAnd(01J00D00D", + "imageAtomicAnd(01U00D00D", "imageAtomicAnd(01f00D00D", - "imageAtomicAnd(01F20D00D", - "imageAtomicAnd(01G20D00D", - "imageAtomicAnd(01H20D00D", + "imageAtomicAnd(01B20D00D", + "imageAtomicAnd(01M20D00D", "imageAtomicAnd(01X20D00D", - "imageAtomicAnd(01Y20D00D", - "imageAtomicAnd(01Z20D00D", - "imageAtomicAnd(01L00D00D", - "imageAtomicAnd(01M00D00D", - "imageAtomicAnd(01N00D00D", - "imageAtomicAnd(01O10D00D", + "imageAtomicAnd(01H20D00D", + "imageAtomicAnd(01S20D00D", + "imageAtomicAnd(01d20D00D", + "imageAtomicAnd(01D00D00D", + "imageAtomicAnd(01O00D00D", + "imageAtomicAnd(01Z00D00D", + "imageAtomicAnd(01E10D00D", "imageAtomicAnd(01P10D00D", - "imageAtomicAnd(01Q10D00D", "imageAtomicAnd(01a10D00D", - "imageAtomicAnd(01b10D00D", - "imageAtomicAnd(01c10D00D", - "imageAtomicAnd(01R10D00D00D", - "imageAtomicAnd(01S10D00D00D", - "imageAtomicAnd(01T10D00D00D", - "imageAtomicAnd(01U20D00D00D", - "imageAtomicAnd(01V20D00D00D", - "imageAtomicAnd(01W20D00D00D", + "imageAtomicAnd(01I10D00D", + "imageAtomicAnd(01T10D00D", + "imageAtomicAnd(01e10D00D", + "imageAtomicAnd(01F10D00D00D", + "imageAtomicAnd(01Q10D00D00D", + "imageAtomicAnd(01b10D00D00D", + "imageAtomicAnd(01G20D00D00D", + "imageAtomicAnd(01R20D00D00D", + "imageAtomicAnd(01c20D00D00D", "imageAtomicOr(00z10D00E", - "imageAtomicOr(01A10D00E", - "imageAtomicOr(01B10D00E", + "imageAtomicOr(01K10D00E", + "imageAtomicOr(01V10D00E", + "imageAtomicOr(01A20D00E", + "imageAtomicOr(01L20D00E", + "imageAtomicOr(01W20D00E", "imageAtomicOr(01C20D00E", - "imageAtomicOr(01D20D00E", - "imageAtomicOr(01E20D00E", - "imageAtomicOr(01I20D00E", - "imageAtomicOr(01J20D00E", - "imageAtomicOr(01K20D00E", - "imageAtomicOr(01d00D00E", - "imageAtomicOr(01e00D00E", - "imageAtomicOr(01f00D00E", - "imageAtomicOr(01F20D00E", - "imageAtomicOr(01G20D00E", - "imageAtomicOr(01H20D00E", - "imageAtomicOr(01X20D00E", + "imageAtomicOr(01N20D00E", "imageAtomicOr(01Y20D00E", - "imageAtomicOr(01Z20D00E", - "imageAtomicOr(01L00D00E", - "imageAtomicOr(01M00D00E", - "imageAtomicOr(01N00D00E", - "imageAtomicOr(01O10D00E", + "imageAtomicOr(01J00D00E", + "imageAtomicOr(01U00D00E", + "imageAtomicOr(01f00D00E", + "imageAtomicOr(01B20D00E", + "imageAtomicOr(01M20D00E", + "imageAtomicOr(01X20D00E", + "imageAtomicOr(01H20D00E", + "imageAtomicOr(01S20D00E", + "imageAtomicOr(01d20D00E", + "imageAtomicOr(01D00D00E", + "imageAtomicOr(01O00D00E", + "imageAtomicOr(01Z00D00E", + "imageAtomicOr(01E10D00E", "imageAtomicOr(01P10D00E", - "imageAtomicOr(01Q10D00E", "imageAtomicOr(01a10D00E", - "imageAtomicOr(01b10D00E", - "imageAtomicOr(01c10D00E", - "imageAtomicOr(01R10D00D00E", - "imageAtomicOr(01S10D00D00E", - "imageAtomicOr(01T10D00D00E", - "imageAtomicOr(01U20D00D00E", - "imageAtomicOr(01V20D00D00E", - "imageAtomicOr(01W20D00D00E", + "imageAtomicOr(01I10D00E", + "imageAtomicOr(01T10D00E", + "imageAtomicOr(01e10D00E", + "imageAtomicOr(01F10D00D00E", + "imageAtomicOr(01Q10D00D00E", + "imageAtomicOr(01b10D00D00E", + "imageAtomicOr(01G20D00D00E", + "imageAtomicOr(01R20D00D00E", + "imageAtomicOr(01c20D00D00E", "imageAtomicOr(00z10D00D", - "imageAtomicOr(01A10D00D", - "imageAtomicOr(01B10D00D", + "imageAtomicOr(01K10D00D", + "imageAtomicOr(01V10D00D", + "imageAtomicOr(01A20D00D", + "imageAtomicOr(01L20D00D", + "imageAtomicOr(01W20D00D", "imageAtomicOr(01C20D00D", - "imageAtomicOr(01D20D00D", - "imageAtomicOr(01E20D00D", - "imageAtomicOr(01I20D00D", - "imageAtomicOr(01J20D00D", - "imageAtomicOr(01K20D00D", - "imageAtomicOr(01d00D00D", - "imageAtomicOr(01e00D00D", - "imageAtomicOr(01f00D00D", - "imageAtomicOr(01F20D00D", - "imageAtomicOr(01G20D00D", - "imageAtomicOr(01H20D00D", - "imageAtomicOr(01X20D00D", + "imageAtomicOr(01N20D00D", "imageAtomicOr(01Y20D00D", - "imageAtomicOr(01Z20D00D", - "imageAtomicOr(01L00D00D", - "imageAtomicOr(01M00D00D", - "imageAtomicOr(01N00D00D", - "imageAtomicOr(01O10D00D", + "imageAtomicOr(01J00D00D", + "imageAtomicOr(01U00D00D", + "imageAtomicOr(01f00D00D", + "imageAtomicOr(01B20D00D", + "imageAtomicOr(01M20D00D", + "imageAtomicOr(01X20D00D", + "imageAtomicOr(01H20D00D", + "imageAtomicOr(01S20D00D", + "imageAtomicOr(01d20D00D", + "imageAtomicOr(01D00D00D", + "imageAtomicOr(01O00D00D", + "imageAtomicOr(01Z00D00D", + "imageAtomicOr(01E10D00D", "imageAtomicOr(01P10D00D", - "imageAtomicOr(01Q10D00D", "imageAtomicOr(01a10D00D", - "imageAtomicOr(01b10D00D", - "imageAtomicOr(01c10D00D", - "imageAtomicOr(01R10D00D00D", - "imageAtomicOr(01S10D00D00D", - "imageAtomicOr(01T10D00D00D", - "imageAtomicOr(01U20D00D00D", - "imageAtomicOr(01V20D00D00D", - "imageAtomicOr(01W20D00D00D", + "imageAtomicOr(01I10D00D", + "imageAtomicOr(01T10D00D", + "imageAtomicOr(01e10D00D", + "imageAtomicOr(01F10D00D00D", + "imageAtomicOr(01Q10D00D00D", + "imageAtomicOr(01b10D00D00D", + "imageAtomicOr(01G20D00D00D", + "imageAtomicOr(01R20D00D00D", + "imageAtomicOr(01c20D00D00D", "imageAtomicXor(00z10D00E", - "imageAtomicXor(01A10D00E", - "imageAtomicXor(01B10D00E", + "imageAtomicXor(01K10D00E", + "imageAtomicXor(01V10D00E", + "imageAtomicXor(01A20D00E", + "imageAtomicXor(01L20D00E", + "imageAtomicXor(01W20D00E", "imageAtomicXor(01C20D00E", - "imageAtomicXor(01D20D00E", - "imageAtomicXor(01E20D00E", - "imageAtomicXor(01I20D00E", - "imageAtomicXor(01J20D00E", - "imageAtomicXor(01K20D00E", - "imageAtomicXor(01d00D00E", - "imageAtomicXor(01e00D00E", - "imageAtomicXor(01f00D00E", - "imageAtomicXor(01F20D00E", - "imageAtomicXor(01G20D00E", - "imageAtomicXor(01H20D00E", - "imageAtomicXor(01X20D00E", + "imageAtomicXor(01N20D00E", "imageAtomicXor(01Y20D00E", - "imageAtomicXor(01Z20D00E", - "imageAtomicXor(01L00D00E", - "imageAtomicXor(01M00D00E", - "imageAtomicXor(01N00D00E", - "imageAtomicXor(01O10D00E", + "imageAtomicXor(01J00D00E", + "imageAtomicXor(01U00D00E", + "imageAtomicXor(01f00D00E", + "imageAtomicXor(01B20D00E", + "imageAtomicXor(01M20D00E", + "imageAtomicXor(01X20D00E", + "imageAtomicXor(01H20D00E", + "imageAtomicXor(01S20D00E", + "imageAtomicXor(01d20D00E", + "imageAtomicXor(01D00D00E", + "imageAtomicXor(01O00D00E", + "imageAtomicXor(01Z00D00E", + "imageAtomicXor(01E10D00E", "imageAtomicXor(01P10D00E", - "imageAtomicXor(01Q10D00E", "imageAtomicXor(01a10D00E", - "imageAtomicXor(01b10D00E", - "imageAtomicXor(01c10D00E", - "imageAtomicXor(01R10D00D00E", - "imageAtomicXor(01S10D00D00E", - "imageAtomicXor(01T10D00D00E", - "imageAtomicXor(01U20D00D00E", - "imageAtomicXor(01V20D00D00E", - "imageAtomicXor(01W20D00D00E", + "imageAtomicXor(01I10D00E", + "imageAtomicXor(01T10D00E", + "imageAtomicXor(01e10D00E", + "imageAtomicXor(01F10D00D00E", + "imageAtomicXor(01Q10D00D00E", + "imageAtomicXor(01b10D00D00E", + "imageAtomicXor(01G20D00D00E", + "imageAtomicXor(01R20D00D00E", + "imageAtomicXor(01c20D00D00E", "imageAtomicXor(00z10D00D", - "imageAtomicXor(01A10D00D", - "imageAtomicXor(01B10D00D", + "imageAtomicXor(01K10D00D", + "imageAtomicXor(01V10D00D", + "imageAtomicXor(01A20D00D", + "imageAtomicXor(01L20D00D", + "imageAtomicXor(01W20D00D", "imageAtomicXor(01C20D00D", - "imageAtomicXor(01D20D00D", - "imageAtomicXor(01E20D00D", - "imageAtomicXor(01I20D00D", - "imageAtomicXor(01J20D00D", - "imageAtomicXor(01K20D00D", - "imageAtomicXor(01d00D00D", - "imageAtomicXor(01e00D00D", - "imageAtomicXor(01f00D00D", - "imageAtomicXor(01F20D00D", - "imageAtomicXor(01G20D00D", - "imageAtomicXor(01H20D00D", - "imageAtomicXor(01X20D00D", + "imageAtomicXor(01N20D00D", "imageAtomicXor(01Y20D00D", - "imageAtomicXor(01Z20D00D", - "imageAtomicXor(01L00D00D", - "imageAtomicXor(01M00D00D", - "imageAtomicXor(01N00D00D", - "imageAtomicXor(01O10D00D", + "imageAtomicXor(01J00D00D", + "imageAtomicXor(01U00D00D", + "imageAtomicXor(01f00D00D", + "imageAtomicXor(01B20D00D", + "imageAtomicXor(01M20D00D", + "imageAtomicXor(01X20D00D", + "imageAtomicXor(01H20D00D", + "imageAtomicXor(01S20D00D", + "imageAtomicXor(01d20D00D", + "imageAtomicXor(01D00D00D", + "imageAtomicXor(01O00D00D", + "imageAtomicXor(01Z00D00D", + "imageAtomicXor(01E10D00D", "imageAtomicXor(01P10D00D", - "imageAtomicXor(01Q10D00D", "imageAtomicXor(01a10D00D", - "imageAtomicXor(01b10D00D", - "imageAtomicXor(01c10D00D", - "imageAtomicXor(01R10D00D00D", - "imageAtomicXor(01S10D00D00D", - "imageAtomicXor(01T10D00D00D", - "imageAtomicXor(01U20D00D00D", - "imageAtomicXor(01V20D00D00D", - "imageAtomicXor(01W20D00D00D", + "imageAtomicXor(01I10D00D", + "imageAtomicXor(01T10D00D", + "imageAtomicXor(01e10D00D", + "imageAtomicXor(01F10D00D00D", + "imageAtomicXor(01Q10D00D00D", + "imageAtomicXor(01b10D00D00D", + "imageAtomicXor(01G20D00D00D", + "imageAtomicXor(01R20D00D00D", + "imageAtomicXor(01c20D00D00D", "imageAtomicExchange(00z10D00E", - "imageAtomicExchange(01A10D00E", - "imageAtomicExchange(01B10D00E", + "imageAtomicExchange(01K10D00E", + "imageAtomicExchange(01V10D00E", + "imageAtomicExchange(01A20D00E", + "imageAtomicExchange(01L20D00E", + "imageAtomicExchange(01W20D00E", "imageAtomicExchange(01C20D00E", - "imageAtomicExchange(01D20D00E", - "imageAtomicExchange(01E20D00E", - "imageAtomicExchange(01I20D00E", - "imageAtomicExchange(01J20D00E", - "imageAtomicExchange(01K20D00E", - "imageAtomicExchange(01d00D00E", - "imageAtomicExchange(01e00D00E", + "imageAtomicExchange(01N20D00E", + "imageAtomicExchange(01Y20D00E", + "imageAtomicExchange(01J00D00E", + "imageAtomicExchange(01U00D00E", "imageAtomicExchange(01f00D00E", - "imageAtomicExchange(01F20D00E", - "imageAtomicExchange(01G20D00E", - "imageAtomicExchange(01H20D00E", + "imageAtomicExchange(01B20D00E", + "imageAtomicExchange(01M20D00E", "imageAtomicExchange(01X20D00E", - "imageAtomicExchange(01Y20D00E", - "imageAtomicExchange(01Z20D00E", - "imageAtomicExchange(01L00D00E", - "imageAtomicExchange(01M00D00E", - "imageAtomicExchange(01N00D00E", - "imageAtomicExchange(01O10D00E", + "imageAtomicExchange(01H20D00E", + "imageAtomicExchange(01S20D00E", + "imageAtomicExchange(01d20D00E", + "imageAtomicExchange(01D00D00E", + "imageAtomicExchange(01O00D00E", + "imageAtomicExchange(01Z00D00E", + "imageAtomicExchange(01E10D00E", "imageAtomicExchange(01P10D00E", - "imageAtomicExchange(01Q10D00E", "imageAtomicExchange(01a10D00E", - "imageAtomicExchange(01b10D00E", - "imageAtomicExchange(01c10D00E", - "imageAtomicExchange(01R10D00D00E", - "imageAtomicExchange(01S10D00D00E", - "imageAtomicExchange(01T10D00D00E", - "imageAtomicExchange(01U20D00D00E", - "imageAtomicExchange(01V20D00D00E", - "imageAtomicExchange(01W20D00D00E", + "imageAtomicExchange(01I10D00E", + "imageAtomicExchange(01T10D00E", + "imageAtomicExchange(01e10D00E", + "imageAtomicExchange(01F10D00D00E", + "imageAtomicExchange(01Q10D00D00E", + "imageAtomicExchange(01b10D00D00E", + "imageAtomicExchange(01G20D00D00E", + "imageAtomicExchange(01R20D00D00E", + "imageAtomicExchange(01c20D00D00E", "imageAtomicExchange(00z10D00D", - "imageAtomicExchange(01A10D00D", - "imageAtomicExchange(01B10D00D", + "imageAtomicExchange(01K10D00D", + "imageAtomicExchange(01V10D00D", + "imageAtomicExchange(01A20D00D", + "imageAtomicExchange(01L20D00D", + "imageAtomicExchange(01W20D00D", "imageAtomicExchange(01C20D00D", - "imageAtomicExchange(01D20D00D", - "imageAtomicExchange(01E20D00D", - "imageAtomicExchange(01I20D00D", - "imageAtomicExchange(01J20D00D", - "imageAtomicExchange(01K20D00D", - "imageAtomicExchange(01d00D00D", - "imageAtomicExchange(01e00D00D", + "imageAtomicExchange(01N20D00D", + "imageAtomicExchange(01Y20D00D", + "imageAtomicExchange(01J00D00D", + "imageAtomicExchange(01U00D00D", "imageAtomicExchange(01f00D00D", - "imageAtomicExchange(01F20D00D", - "imageAtomicExchange(01G20D00D", - "imageAtomicExchange(01H20D00D", + "imageAtomicExchange(01B20D00D", + "imageAtomicExchange(01M20D00D", "imageAtomicExchange(01X20D00D", - "imageAtomicExchange(01Y20D00D", - "imageAtomicExchange(01Z20D00D", - "imageAtomicExchange(01L00D00D", - "imageAtomicExchange(01M00D00D", - "imageAtomicExchange(01N00D00D", - "imageAtomicExchange(01O10D00D", + "imageAtomicExchange(01H20D00D", + "imageAtomicExchange(01S20D00D", + "imageAtomicExchange(01d20D00D", + "imageAtomicExchange(01D00D00D", + "imageAtomicExchange(01O00D00D", + "imageAtomicExchange(01Z00D00D", + "imageAtomicExchange(01E10D00D", "imageAtomicExchange(01P10D00D", - "imageAtomicExchange(01Q10D00D", "imageAtomicExchange(01a10D00D", - "imageAtomicExchange(01b10D00D", - "imageAtomicExchange(01c10D00D", - "imageAtomicExchange(01R10D00D00D", - "imageAtomicExchange(01S10D00D00D", - "imageAtomicExchange(01T10D00D00D", - "imageAtomicExchange(01U20D00D00D", - "imageAtomicExchange(01V20D00D00D", - "imageAtomicExchange(01W20D00D00D", + "imageAtomicExchange(01I10D00D", + "imageAtomicExchange(01T10D00D", + "imageAtomicExchange(01e10D00D", + "imageAtomicExchange(01F10D00D00D", + "imageAtomicExchange(01Q10D00D00D", + "imageAtomicExchange(01b10D00D00D", + "imageAtomicExchange(01G20D00D00D", + "imageAtomicExchange(01R20D00D00D", + "imageAtomicExchange(01c20D00D00D", "imageAtomicExchange(00z10D00B", - "imageAtomicExchange(01A10D00B", - "imageAtomicExchange(01B10D00B", + "imageAtomicExchange(01K10D00B", + "imageAtomicExchange(01V10D00B", + "imageAtomicExchange(01A20D00B", + "imageAtomicExchange(01L20D00B", + "imageAtomicExchange(01W20D00B", "imageAtomicExchange(01C20D00B", - "imageAtomicExchange(01D20D00B", - "imageAtomicExchange(01E20D00B", - "imageAtomicExchange(01I20D00B", - "imageAtomicExchange(01J20D00B", - "imageAtomicExchange(01K20D00B", - "imageAtomicExchange(01d00D00B", - "imageAtomicExchange(01e00D00B", + "imageAtomicExchange(01N20D00B", + "imageAtomicExchange(01Y20D00B", + "imageAtomicExchange(01J00D00B", + "imageAtomicExchange(01U00D00B", "imageAtomicExchange(01f00D00B", - "imageAtomicExchange(01F20D00B", - "imageAtomicExchange(01G20D00B", - "imageAtomicExchange(01H20D00B", + "imageAtomicExchange(01B20D00B", + "imageAtomicExchange(01M20D00B", "imageAtomicExchange(01X20D00B", - "imageAtomicExchange(01Y20D00B", - "imageAtomicExchange(01Z20D00B", - "imageAtomicExchange(01L00D00B", - "imageAtomicExchange(01M00D00B", - "imageAtomicExchange(01N00D00B", - "imageAtomicExchange(01O10D00B", + "imageAtomicExchange(01H20D00B", + "imageAtomicExchange(01S20D00B", + "imageAtomicExchange(01d20D00B", + "imageAtomicExchange(01D00D00B", + "imageAtomicExchange(01O00D00B", + "imageAtomicExchange(01Z00D00B", + "imageAtomicExchange(01E10D00B", "imageAtomicExchange(01P10D00B", - "imageAtomicExchange(01Q10D00B", "imageAtomicExchange(01a10D00B", - "imageAtomicExchange(01b10D00B", - "imageAtomicExchange(01c10D00B", - "imageAtomicExchange(01R10D00D00B", - "imageAtomicExchange(01S10D00D00B", - "imageAtomicExchange(01T10D00D00B", - "imageAtomicExchange(01U20D00D00B", - "imageAtomicExchange(01V20D00D00B", - "imageAtomicExchange(01W20D00D00B", + "imageAtomicExchange(01I10D00B", + "imageAtomicExchange(01T10D00B", + "imageAtomicExchange(01e10D00B", + "imageAtomicExchange(01F10D00D00B", + "imageAtomicExchange(01Q10D00D00B", + "imageAtomicExchange(01b10D00D00B", + "imageAtomicExchange(01G20D00D00B", + "imageAtomicExchange(01R20D00D00B", + "imageAtomicExchange(01c20D00D00B", "imageAtomicCompSwap(00z10D00E00E", - "imageAtomicCompSwap(01A10D00E00E", - "imageAtomicCompSwap(01B10D00E00E", + "imageAtomicCompSwap(01K10D00E00E", + "imageAtomicCompSwap(01V10D00E00E", + "imageAtomicCompSwap(01A20D00E00E", + "imageAtomicCompSwap(01L20D00E00E", + "imageAtomicCompSwap(01W20D00E00E", "imageAtomicCompSwap(01C20D00E00E", - "imageAtomicCompSwap(01D20D00E00E", - "imageAtomicCompSwap(01E20D00E00E", - "imageAtomicCompSwap(01I20D00E00E", - "imageAtomicCompSwap(01J20D00E00E", - "imageAtomicCompSwap(01K20D00E00E", - "imageAtomicCompSwap(01d00D00E00E", - "imageAtomicCompSwap(01e00D00E00E", + "imageAtomicCompSwap(01N20D00E00E", + "imageAtomicCompSwap(01Y20D00E00E", + "imageAtomicCompSwap(01J00D00E00E", + "imageAtomicCompSwap(01U00D00E00E", "imageAtomicCompSwap(01f00D00E00E", - "imageAtomicCompSwap(01F20D00E00E", - "imageAtomicCompSwap(01G20D00E00E", - "imageAtomicCompSwap(01H20D00E00E", + "imageAtomicCompSwap(01B20D00E00E", + "imageAtomicCompSwap(01M20D00E00E", "imageAtomicCompSwap(01X20D00E00E", - "imageAtomicCompSwap(01Y20D00E00E", - "imageAtomicCompSwap(01Z20D00E00E", - "imageAtomicCompSwap(01L00D00E00E", - "imageAtomicCompSwap(01M00D00E00E", - "imageAtomicCompSwap(01N00D00E00E", - "imageAtomicCompSwap(01O10D00E00E", + "imageAtomicCompSwap(01H20D00E00E", + "imageAtomicCompSwap(01S20D00E00E", + "imageAtomicCompSwap(01d20D00E00E", + "imageAtomicCompSwap(01D00D00E00E", + "imageAtomicCompSwap(01O00D00E00E", + "imageAtomicCompSwap(01Z00D00E00E", + "imageAtomicCompSwap(01E10D00E00E", "imageAtomicCompSwap(01P10D00E00E", - "imageAtomicCompSwap(01Q10D00E00E", "imageAtomicCompSwap(01a10D00E00E", - "imageAtomicCompSwap(01b10D00E00E", - "imageAtomicCompSwap(01c10D00E00E", - "imageAtomicCompSwap(01R10D00D00E00E", - "imageAtomicCompSwap(01S10D00D00E00E", - "imageAtomicCompSwap(01T10D00D00E00E", - "imageAtomicCompSwap(01U20D00D00E00E", - "imageAtomicCompSwap(01V20D00D00E00E", - "imageAtomicCompSwap(01W20D00D00E00E", + "imageAtomicCompSwap(01I10D00E00E", + "imageAtomicCompSwap(01T10D00E00E", + "imageAtomicCompSwap(01e10D00E00E", + "imageAtomicCompSwap(01F10D00D00E00E", + "imageAtomicCompSwap(01Q10D00D00E00E", + "imageAtomicCompSwap(01b10D00D00E00E", + "imageAtomicCompSwap(01G20D00D00E00E", + "imageAtomicCompSwap(01R20D00D00E00E", + "imageAtomicCompSwap(01c20D00D00E00E", "imageAtomicCompSwap(00z10D00D00D", - "imageAtomicCompSwap(01A10D00D00D", - "imageAtomicCompSwap(01B10D00D00D", + "imageAtomicCompSwap(01K10D00D00D", + "imageAtomicCompSwap(01V10D00D00D", + "imageAtomicCompSwap(01A20D00D00D", + "imageAtomicCompSwap(01L20D00D00D", + "imageAtomicCompSwap(01W20D00D00D", "imageAtomicCompSwap(01C20D00D00D", - "imageAtomicCompSwap(01D20D00D00D", - "imageAtomicCompSwap(01E20D00D00D", - "imageAtomicCompSwap(01I20D00D00D", - "imageAtomicCompSwap(01J20D00D00D", - "imageAtomicCompSwap(01K20D00D00D", - "imageAtomicCompSwap(01d00D00D00D", - "imageAtomicCompSwap(01e00D00D00D", + "imageAtomicCompSwap(01N20D00D00D", + "imageAtomicCompSwap(01Y20D00D00D", + "imageAtomicCompSwap(01J00D00D00D", + "imageAtomicCompSwap(01U00D00D00D", "imageAtomicCompSwap(01f00D00D00D", - "imageAtomicCompSwap(01F20D00D00D", - "imageAtomicCompSwap(01G20D00D00D", - "imageAtomicCompSwap(01H20D00D00D", + "imageAtomicCompSwap(01B20D00D00D", + "imageAtomicCompSwap(01M20D00D00D", "imageAtomicCompSwap(01X20D00D00D", - "imageAtomicCompSwap(01Y20D00D00D", - "imageAtomicCompSwap(01Z20D00D00D", - "imageAtomicCompSwap(01L00D00D00D", - "imageAtomicCompSwap(01M00D00D00D", - "imageAtomicCompSwap(01N00D00D00D", - "imageAtomicCompSwap(01O10D00D00D", + "imageAtomicCompSwap(01H20D00D00D", + "imageAtomicCompSwap(01S20D00D00D", + "imageAtomicCompSwap(01d20D00D00D", + "imageAtomicCompSwap(01D00D00D00D", + "imageAtomicCompSwap(01O00D00D00D", + "imageAtomicCompSwap(01Z00D00D00D", + "imageAtomicCompSwap(01E10D00D00D", "imageAtomicCompSwap(01P10D00D00D", - "imageAtomicCompSwap(01Q10D00D00D", "imageAtomicCompSwap(01a10D00D00D", - "imageAtomicCompSwap(01b10D00D00D", - "imageAtomicCompSwap(01c10D00D00D", - "imageAtomicCompSwap(01R10D00D00D00D", - "imageAtomicCompSwap(01S10D00D00D00D", - "imageAtomicCompSwap(01T10D00D00D00D", - "imageAtomicCompSwap(01U20D00D00D00D", - "imageAtomicCompSwap(01V20D00D00D00D", - "imageAtomicCompSwap(01W20D00D00D00D", + "imageAtomicCompSwap(01I10D00D00D", + "imageAtomicCompSwap(01T10D00D00D", + "imageAtomicCompSwap(01e10D00D00D", + "imageAtomicCompSwap(01F10D00D00D00D", + "imageAtomicCompSwap(01Q10D00D00D00D", + "imageAtomicCompSwap(01b10D00D00D00D", + "imageAtomicCompSwap(01G20D00D00D00D", + "imageAtomicCompSwap(01R20D00D00D00D", + "imageAtomicCompSwap(01c20D00D00D00D", "memoryBarrier(", "memoryBarrierAtomicCounter(", "memoryBarrierBuffer(", "memoryBarrierImage(", "barrier(", "memoryBarrierShared(", "groupMemoryBarrier(", "EmitVertex(", "EndPrimitive(", - "textureVideoWEBGL(00y10B", - "texture(00y10B", + "subpassLoad(01g", + "subpassLoad(01h", + "subpassLoad(01i", + "subpassLoad(01j00D", + "subpassLoad(01k00D", + "subpassLoad(01l00D", "gl_DepthRangeParameters", "gl_DepthRange", "gl_NumSamples", "gl_MaxVertexAttribs", "gl_MaxVertexUniformVectors", @@ -22743,1815 +22729,1933 @@ "gl_in", "gl_PatchVerticesIn", "gl_TessLevelOuter", "gl_TessLevelInner", "gl_out", + "gl_BoundingBoxEXT", "gl_TessCoord", "gl_ViewID_OVR"}; // Flat array of offsets from a symbol into the rules table. constexpr uint16_t kMangledOffsets[] = { 0, // radians_00B - 2, // radians_10B - 4, // radians_20B - 6, // radians_30B - 8, // degrees_00B - 10, // degrees_10B - 12, // degrees_20B - 14, // degrees_30B - 16, // sin_00B - 18, // sin_10B - 20, // sin_20B - 22, // sin_30B - 24, // cos_00B - 26, // cos_10B - 28, // cos_20B - 30, // cos_30B - 32, // tan_00B - 34, // tan_10B - 36, // tan_20B - 38, // tan_30B - 40, // asin_00B - 42, // asin_10B - 44, // asin_20B - 46, // asin_30B - 48, // acos_00B - 50, // acos_10B - 52, // acos_20B - 54, // acos_30B - 56, // atan_00B00B - 58, // atan_10B10B - 60, // atan_20B20B - 62, // atan_30B30B - 64, // atan_00B - 66, // atan_10B - 68, // atan_20B - 70, // atan_30B - 72, // sinh_00B - 74, // sinh_10B - 76, // sinh_20B - 78, // sinh_30B - 80, // cosh_00B - 82, // cosh_10B - 84, // cosh_20B - 86, // cosh_30B - 88, // tanh_00B - 90, // tanh_10B - 92, // tanh_20B - 94, // tanh_30B - 96, // asinh_00B - 98, // asinh_10B - 100, // asinh_20B - 102, // asinh_30B - 104, // acosh_00B - 106, // acosh_10B - 108, // acosh_20B - 110, // acosh_30B - 112, // atanh_00B - 114, // atanh_10B - 116, // atanh_20B - 118, // atanh_30B - 120, // pow_00B00B - 122, // pow_10B10B - 124, // pow_20B20B - 126, // pow_30B30B - 128, // exp_00B - 130, // exp_10B - 132, // exp_20B - 134, // exp_30B - 136, // log_00B - 138, // log_10B - 140, // log_20B - 142, // log_30B - 144, // exp2_00B - 146, // exp2_10B - 148, // exp2_20B - 150, // exp2_30B - 152, // log2_00B - 154, // log2_10B - 156, // log2_20B - 158, // log2_30B - 160, // sqrt_00B - 162, // sqrt_10B - 164, // sqrt_20B - 166, // sqrt_30B - 168, // inversesqrt_00B - 170, // inversesqrt_10B - 172, // inversesqrt_20B - 174, // inversesqrt_30B - 176, // abs_00B - 178, // abs_10B - 180, // abs_20B - 182, // abs_30B - 184, // abs_00D - 186, // abs_10D - 188, // abs_20D - 190, // abs_30D - 192, // sign_00B - 194, // sign_10B - 196, // sign_20B - 198, // sign_30B - 200, // sign_00D - 202, // sign_10D - 204, // sign_20D - 206, // sign_30D - 208, // floor_00B - 210, // floor_10B - 212, // floor_20B - 214, // floor_30B - 216, // trunc_00B - 218, // trunc_10B - 220, // trunc_20B - 222, // trunc_30B - 224, // round_00B - 226, // round_10B - 228, // round_20B - 230, // round_30B - 232, // roundEven_00B - 234, // roundEven_10B - 236, // roundEven_20B - 238, // roundEven_30B - 240, // ceil_00B - 242, // ceil_10B - 244, // ceil_20B - 246, // ceil_30B - 248, // fract_00B - 250, // fract_10B - 252, // fract_20B - 254, // fract_30B - 256, // mod_00B00B - 258, // mod_10B00B - 260, // mod_20B00B - 262, // mod_30B00B - 264, // mod_10B10B - 266, // mod_20B20B - 268, // mod_30B30B - 270, // min_00B00B - 272, // min_10B00B - 274, // min_20B00B - 276, // min_30B00B - 278, // min_10B10B - 280, // min_20B20B - 282, // min_30B30B - 284, // min_00D00D - 286, // min_10D10D - 288, // min_20D20D - 290, // min_30D30D - 292, // min_10D00D - 294, // min_20D00D - 296, // min_30D00D - 298, // min_00E00E - 300, // min_10E10E - 302, // min_20E20E - 304, // min_30E30E - 306, // min_10E00E - 308, // min_20E00E - 310, // min_30E00E - 312, // max_00B00B - 314, // max_10B00B - 316, // max_20B00B - 318, // max_30B00B - 320, // max_10B10B - 322, // max_20B20B - 324, // max_30B30B - 326, // max_00D00D - 328, // max_10D10D - 330, // max_20D20D - 332, // max_30D30D - 334, // max_10D00D - 336, // max_20D00D - 338, // max_30D00D - 340, // max_00E00E - 342, // max_10E10E - 344, // max_20E20E - 346, // max_30E30E - 348, // max_10E00E - 350, // max_20E00E - 352, // max_30E00E - 354, // clamp_00B00B00B - 356, // clamp_10B00B00B - 358, // clamp_20B00B00B - 360, // clamp_30B00B00B - 362, // clamp_10B10B10B - 364, // clamp_20B20B20B - 366, // clamp_30B30B30B - 368, // clamp_00D00D00D - 370, // clamp_10D00D00D - 372, // clamp_20D00D00D - 374, // clamp_30D00D00D - 376, // clamp_10D10D10D - 378, // clamp_20D20D20D - 380, // clamp_30D30D30D - 382, // clamp_00E00E00E - 384, // clamp_10E00E00E - 386, // clamp_20E00E00E - 388, // clamp_30E00E00E - 390, // clamp_10E10E10E - 392, // clamp_20E20E20E - 394, // clamp_30E30E30E - 396, // mix_00B00B00B - 398, // mix_10B10B00B - 400, // mix_20B20B00B - 402, // mix_30B30B00B - 404, // mix_10B10B10B - 406, // mix_20B20B20B - 408, // mix_30B30B30B - 410, // mix_00B00B00F - 412, // mix_10B10B10F - 414, // mix_20B20B20F - 416, // mix_30B30B30F - 418, // mix_00D00D00F - 420, // mix_10D10D10F - 422, // mix_20D20D20F - 424, // mix_30D30D30F - 426, // mix_00E00E00F - 428, // mix_10E10E10F - 430, // mix_20E20E20F - 432, // mix_30E30E30F - 434, // mix_00F00F00F - 436, // mix_10F10F10F - 438, // mix_20F20F20F - 440, // mix_30F30F30F - 442, // step_00B00B - 444, // step_10B10B - 446, // step_20B20B - 448, // step_30B30B - 450, // step_00B10B - 452, // step_00B20B - 454, // step_00B30B - 456, // smoothstep_00B00B00B - 458, // smoothstep_10B10B10B - 460, // smoothstep_20B20B20B - 462, // smoothstep_30B30B30B - 464, // smoothstep_00B00B10B - 466, // smoothstep_00B00B20B - 468, // smoothstep_00B00B30B - 470, // modf_00B00B - 472, // modf_10B10B - 474, // modf_20B20B - 476, // modf_30B30B - 478, // isnan_00B - 480, // isnan_10B - 482, // isnan_20B - 484, // isnan_30B - 486, // isinf_00B - 488, // isinf_10B - 490, // isinf_20B - 492, // isinf_30B - 494, // floatBitsToInt_00B - 496, // floatBitsToInt_10B - 498, // floatBitsToInt_20B - 500, // floatBitsToInt_30B - 502, // floatBitsToUint_00B - 504, // floatBitsToUint_10B - 506, // floatBitsToUint_20B - 508, // floatBitsToUint_30B - 510, // intBitsToFloat_00D - 512, // intBitsToFloat_10D - 514, // intBitsToFloat_20D - 516, // intBitsToFloat_30D - 518, // uintBitsToFloat_00E - 520, // uintBitsToFloat_10E - 522, // uintBitsToFloat_20E - 524, // uintBitsToFloat_30E - 526, // fma_00B00B00B - 529, // fma_10B10B10B - 532, // fma_20B20B20B - 535, // fma_30B30B30B - 538, // frexp_00B00D - 540, // frexp_10B10D - 542, // frexp_20B20D - 544, // frexp_30B30D - 546, // ldexp_00B00D - 548, // ldexp_10B10D - 550, // ldexp_20B20D - 552, // ldexp_30B30D - 554, // packSnorm2x16_10B - 556, // packHalf2x16_10B - 558, // unpackSnorm2x16_00E - 560, // unpackHalf2x16_00E - 562, // packUnorm2x16_10B - 564, // unpackUnorm2x16_00E - 566, // packUnorm4x8_30B - 568, // packSnorm4x8_30B - 570, // unpackUnorm4x8_00E - 572, // unpackSnorm4x8_00E - 574, // length_00B - 576, // length_10B - 578, // length_20B - 580, // length_30B - 582, // distance_00B00B - 584, // distance_10B10B - 586, // distance_20B20B - 588, // distance_30B30B - 590, // dot_00B00B - 592, // dot_10B10B - 594, // dot_20B20B - 596, // dot_30B30B - 598, // cross_20B20B - 600, // normalize_00B - 602, // normalize_10B - 604, // normalize_20B - 606, // normalize_30B - 608, // faceforward_00B00B00B - 610, // faceforward_10B10B10B - 612, // faceforward_20B20B20B - 614, // faceforward_30B30B30B - 616, // reflect_00B00B - 618, // reflect_10B10B - 620, // reflect_20B20B - 622, // reflect_30B30B - 624, // refract_00B00B00B - 626, // refract_10B10B00B - 628, // refract_20B20B00B - 630, // refract_30B30B00B - 632, // matrixCompMult_50B50B - 634, // matrixCompMult_A0BA0B - 636, // matrixCompMult_F0BF0B - 638, // matrixCompMult_90B90B - 639, // matrixCompMult_60B60B - 640, // matrixCompMult_D0BD0B - 641, // matrixCompMult_70B70B - 642, // matrixCompMult_E0BE0B - 643, // matrixCompMult_B0BB0B - 644, // outerProduct_10B10B - 646, // outerProduct_20B20B - 648, // outerProduct_30B30B - 650, // outerProduct_20B10B - 652, // outerProduct_10B20B - 654, // outerProduct_30B10B - 656, // outerProduct_10B30B - 658, // outerProduct_30B20B - 660, // outerProduct_20B30B - 662, // transpose_50B - 664, // transpose_A0B - 666, // transpose_F0B - 668, // transpose_60B - 670, // transpose_90B - 672, // transpose_70B - 674, // transpose_D0B - 676, // transpose_B0B - 678, // transpose_E0B - 680, // determinant_50B - 681, // determinant_A0B - 682, // determinant_F0B - 683, // inverse_50B - 685, // inverse_A0B - 687, // inverse_F0B - 689, // lessThan_10B10B - 691, // lessThan_20B20B - 693, // lessThan_30B30B - 695, // lessThan_10D10D - 697, // lessThan_20D20D - 699, // lessThan_30D30D - 701, // lessThan_10E10E - 703, // lessThan_20E20E - 705, // lessThan_30E30E - 707, // lessThanEqual_10B10B - 709, // lessThanEqual_20B20B - 711, // lessThanEqual_30B30B - 713, // lessThanEqual_10D10D - 715, // lessThanEqual_20D20D - 717, // lessThanEqual_30D30D - 719, // lessThanEqual_10E10E - 721, // lessThanEqual_20E20E - 723, // lessThanEqual_30E30E - 725, // greaterThan_10B10B - 727, // greaterThan_20B20B - 729, // greaterThan_30B30B - 731, // greaterThan_10D10D - 733, // greaterThan_20D20D - 735, // greaterThan_30D30D - 737, // greaterThan_10E10E - 739, // greaterThan_20E20E - 741, // greaterThan_30E30E - 743, // greaterThanEqual_10B10B - 745, // greaterThanEqual_20B20B - 747, // greaterThanEqual_30B30B - 749, // greaterThanEqual_10D10D - 751, // greaterThanEqual_20D20D - 753, // greaterThanEqual_30D30D - 755, // greaterThanEqual_10E10E - 757, // greaterThanEqual_20E20E - 759, // greaterThanEqual_30E30E - 761, // equal_10B10B - 763, // equal_20B20B - 765, // equal_30B30B - 767, // equal_10D10D - 769, // equal_20D20D - 771, // equal_30D30D - 773, // equal_10E10E - 775, // equal_20E20E - 777, // equal_30E30E - 779, // equal_10F10F - 781, // equal_20F20F - 783, // equal_30F30F - 785, // notEqual_10B10B - 787, // notEqual_20B20B - 789, // notEqual_30B30B - 791, // notEqual_10D10D - 793, // notEqual_20D20D - 795, // notEqual_30D30D - 797, // notEqual_10E10E - 799, // notEqual_20E20E - 801, // notEqual_30E30E - 803, // notEqual_10F10F - 805, // notEqual_20F20F - 807, // notEqual_30F30F - 809, // any_10F - 811, // any_20F - 813, // any_30F - 815, // all_10F - 817, // all_20F - 819, // all_30F - 821, // not_10F - 823, // not_20F - 825, // not_30F - 827, // bitfieldExtract_00D00D00D - 829, // bitfieldExtract_10D00D00D - 831, // bitfieldExtract_20D00D00D - 833, // bitfieldExtract_30D00D00D - 835, // bitfieldExtract_00E00D00D - 837, // bitfieldExtract_10E00D00D - 839, // bitfieldExtract_20E00D00D - 841, // bitfieldExtract_30E00D00D - 843, // bitfieldInsert_00D00D00D00D - 845, // bitfieldInsert_10D10D00D00D - 847, // bitfieldInsert_20D20D00D00D - 849, // bitfieldInsert_30D30D00D00D - 851, // bitfieldInsert_00E00E00D00D - 853, // bitfieldInsert_10E10E00D00D - 855, // bitfieldInsert_20E20E00D00D - 857, // bitfieldInsert_30E30E00D00D - 859, // bitfieldReverse_00D - 861, // bitfieldReverse_10D - 863, // bitfieldReverse_20D - 865, // bitfieldReverse_30D - 867, // bitfieldReverse_00E - 869, // bitfieldReverse_10E - 871, // bitfieldReverse_20E - 873, // bitfieldReverse_30E - 875, // bitCount_00D - 877, // bitCount_10D - 879, // bitCount_20D - 881, // bitCount_30D - 883, // bitCount_00E - 885, // bitCount_10E - 887, // bitCount_20E - 889, // bitCount_30E - 891, // findLSB_00D - 893, // findLSB_10D - 895, // findLSB_20D - 897, // findLSB_30D - 899, // findLSB_00E - 901, // findLSB_10E - 903, // findLSB_20E - 905, // findLSB_30E - 907, // findMSB_00D - 909, // findMSB_10D - 911, // findMSB_20D - 913, // findMSB_30D - 915, // findMSB_00E - 917, // findMSB_10E - 919, // findMSB_20E - 921, // findMSB_30E - 923, // uaddCarry_00E00E00E - 925, // uaddCarry_10E10E10E - 927, // uaddCarry_20E20E20E - 929, // uaddCarry_30E30E30E - 931, // usubBorrow_00E00E00E - 933, // usubBorrow_10E10E10E - 935, // usubBorrow_20E20E20E - 937, // usubBorrow_30E30E30E - 939, // umulExtended_00E00E00E00E - 941, // umulExtended_10E10E10E10E - 943, // umulExtended_20E20E20E20E - 945, // umulExtended_30E30E30E30E - 947, // imulExtended_00D00D00D00D - 949, // imulExtended_10D10D10D10D - 951, // imulExtended_20D20D20D20D - 953, // imulExtended_30D30D30D30D - 955, // texture2D_00I10B - 957, // texture2DProj_00I20B - 959, // texture2DProj_00I30B - 961, // textureCube_00K20B - 963, // texture2D_00M10B - 964, // texture2DProj_00M20B - 965, // texture2DProj_00M30B - 966, // texture2DRect_00O10B - 967, // texture2DRectProj_00O20B - 968, // texture2DRectProj_00O30B - 969, // texture_00O10B - 970, // textureProj_00O20B - 971, // textureProj_00O30B - 972, // texture2DGradEXT_00I10B10B10B - 973, // texture2DProjGradEXT_00I20B10B10B - 974, // texture2DProjGradEXT_00I30B10B10B - 975, // textureCubeGradEXT_00K20B20B20B - 976, // texture2D_00I10B00B - 978, // texture2DProj_00I20B00B - 980, // texture2DProj_00I30B00B - 982, // textureCube_00K20B00B - 984, // dFdx_00B - 987, // dFdx_10B - 990, // dFdx_20B - 993, // dFdx_30B - 996, // dFdy_00B - 999, // dFdy_10B - 1002, // dFdy_20B - 1005, // dFdy_30B - 1008, // fwidth_00B - 1011, // fwidth_10B - 1014, // fwidth_20B - 1017, // fwidth_30B - 1020, // texture2DLodEXT_00I10B00B - 1021, // texture2DProjLodEXT_00I20B00B - 1022, // texture2DProjLodEXT_00I30B00B - 1023, // textureCubeLodEXT_00K20B00B - 1024, // shadow2DEXT_00d20B - 1025, // shadow2DProjEXT_00d30B - 1026, // texture3D_00J20B - 1027, // texture3DProj_00J30B - 1028, // texture3D_00J20B00B - 1029, // texture3DProj_00J30B00B - 1030, // texture3DLod_00J20B00B - 1031, // texture3DProjLod_00J30B00B - 1032, // texture2DLod_00I10B00B - 1034, // texture2DProjLod_00I20B00B - 1036, // texture2DProjLod_00I30B00B - 1038, // textureCubeLod_00K20B00B - 1040, // texture_00I10B - 1042, // texture_00R10B - 1044, // texture_00X10B - 1046, // texture_00J20B - 1048, // texture_00S20B - 1050, // texture_00Y20B - 1052, // texture_00K20B - 1054, // texture_00T20B - 1056, // texture_00Z20B - 1058, // texture_00L20B - 1060, // texture_00U20B - 1062, // texture_00a20B - 1064, // texture_00d20B - 1066, // texture_00e30B - 1068, // texture_00f30B - 1070, // textureProj_00I20B - 1072, // textureProj_00R20B - 1074, // textureProj_00X20B - 1076, // textureProj_00I30B - 1078, // textureProj_00R30B - 1080, // textureProj_00X30B - 1082, // textureProj_00J30B - 1084, // textureProj_00S30B - 1086, // textureProj_00Y30B - 1088, // textureProj_00d30B - 1090, // textureLod_00I10B00B - 1092, // textureLod_00R10B00B - 1094, // textureLod_00X10B00B - 1096, // textureLod_00J20B00B - 1098, // textureLod_00S20B00B - 1100, // textureLod_00Y20B00B - 1102, // textureLod_00K20B00B - 1104, // textureLod_00T20B00B - 1106, // textureLod_00Z20B00B - 1108, // textureLod_00L20B00B - 1110, // textureLod_00U20B00B - 1112, // textureLod_00a20B00B - 1114, // textureLod_00d20B00B - 1116, // textureSize_00I00D - 1118, // textureSize_00R00D - 1120, // textureSize_00X00D - 1122, // textureSize_00J00D - 1124, // textureSize_00S00D - 1126, // textureSize_00Y00D - 1128, // textureSize_00K00D - 1130, // textureSize_00T00D - 1132, // textureSize_00Z00D - 1134, // textureSize_00L00D - 1136, // textureSize_00U00D - 1138, // textureSize_00a00D - 1140, // textureSize_00d00D - 1142, // textureSize_00e00D - 1144, // textureSize_00f00D - 1146, // textureProjLod_00I20B00B - 1148, // textureProjLod_00R20B00B - 1150, // textureProjLod_00X20B00B - 1152, // textureProjLod_00I30B00B - 1154, // textureProjLod_00R30B00B - 1156, // textureProjLod_00X30B00B - 1158, // textureProjLod_00J30B00B - 1160, // textureProjLod_00S30B00B - 1162, // textureProjLod_00Y30B00B - 1164, // textureProjLod_00d30B00B - 1166, // texelFetch_00I10D00D - 1168, // texelFetch_00R10D00D - 1170, // texelFetch_00X10D00D - 1172, // texelFetch_00J20D00D - 1174, // texelFetch_00S20D00D - 1176, // texelFetch_00Y20D00D - 1178, // texelFetch_00L20D00D - 1180, // texelFetch_00U20D00D - 1182, // texelFetch_00a20D00D - 1184, // textureGrad_00I10B10B10B - 1186, // textureGrad_00R10B10B10B - 1188, // textureGrad_00X10B10B10B - 1190, // textureGrad_00J20B20B20B - 1192, // textureGrad_00S20B20B20B - 1194, // textureGrad_00Y20B20B20B - 1196, // textureGrad_00K20B20B20B - 1198, // textureGrad_00T20B20B20B - 1200, // textureGrad_00Z20B20B20B - 1202, // textureGrad_00d20B10B10B - 1204, // textureGrad_00e30B20B20B - 1206, // textureGrad_00L20B10B10B - 1208, // textureGrad_00U20B10B10B - 1210, // textureGrad_00a20B10B10B - 1212, // textureGrad_00f30B10B10B - 1214, // textureProjGrad_00I20B10B10B - 1216, // textureProjGrad_00R20B10B10B - 1218, // textureProjGrad_00X20B10B10B - 1220, // textureProjGrad_00I30B10B10B - 1222, // textureProjGrad_00R30B10B10B - 1224, // textureProjGrad_00X30B10B10B - 1226, // textureProjGrad_00J30B20B20B - 1228, // textureProjGrad_00S30B20B20B - 1230, // textureProjGrad_00Y30B20B20B - 1232, // textureProjGrad_00d30B10B10B - 1234, // textureSize_00P - 1237, // textureSize_00V - 1240, // textureSize_00b - 1243, // textureSize_00Q - 1244, // textureSize_00W - 1245, // textureSize_00c - 1246, // textureSize_00k00D - 1247, // textureSize_00s00D - 1248, // textureSize_00x00D - 1249, // textureSize_00l00D - 1250, // texture_00k30B - 1251, // texture_00s30B - 1252, // texture_00x30B - 1253, // texture_00k30B00B - 1254, // texture_00s30B00B - 1255, // texture_00x30B00B - 1256, // texture_00l30B00B - 1257, // textureLod_00k30B00B - 1258, // textureLod_00s30B00B - 1259, // textureLod_00x30B00B - 1260, // textureGrad_00k30B20B20B - 1261, // textureGrad_00s30B20B20B - 1262, // textureGrad_00x30B20B20B - 1263, // textureGather_00k30B - 1264, // textureGather_00s30B - 1265, // textureGather_00x30B - 1266, // textureGather_00k30B00D - 1267, // textureGather_00s30B00D - 1268, // textureGather_00x30B00D - 1269, // textureGather_00l30B00B - 1270, // textureSize_00j - 1271, // textureSize_00r - 1272, // textureSize_00w - 1273, // texelFetch_00j00D - 1274, // texelFetch_00r00D - 1275, // texelFetch_00w00D - 1276, // texelFetch_00P10D00D - 1279, // texelFetch_00V10D00D - 1282, // texelFetch_00b10D00D - 1285, // texelFetch_00Q20D00D - 1286, // texelFetch_00W20D00D - 1287, // texelFetch_00c20D00D - 1288, // texture_00I10B00B - 1290, // texture_00R10B00B - 1292, // texture_00X10B00B - 1294, // texture_00J20B00B - 1296, // texture_00S20B00B - 1298, // texture_00Y20B00B - 1300, // texture_00K20B00B - 1302, // texture_00T20B00B - 1304, // texture_00Z20B00B - 1306, // texture_00L20B00B - 1308, // texture_00U20B00B - 1310, // texture_00a20B00B - 1312, // textureProj_00I20B00B - 1314, // textureProj_00R20B00B - 1316, // textureProj_00X20B00B - 1318, // textureProj_00I30B00B - 1320, // textureProj_00R30B00B - 1322, // textureProj_00X30B00B - 1324, // textureProj_00J30B00B - 1326, // textureProj_00S30B00B - 1328, // textureProj_00Y30B00B - 1330, // texture_00d20B00B - 1332, // texture_00e30B00B - 1334, // textureProj_00d30B00B - 1336, // texture_00M10B00B - 1337, // textureProj_00M20B00B - 1338, // textureProj_00M30B00B - 1339, // texture_00N10B00B - 1340, // textureProj_00N20B00B - 1341, // textureProj_00N30B00B - 1342, // textureOffset_00I10B10D - 1344, // textureOffset_00R10B10D - 1346, // textureOffset_00X10B10D - 1348, // textureOffset_00J20B20D - 1350, // textureOffset_00S20B20D - 1352, // textureOffset_00Y20B20D - 1354, // textureOffset_00d20B10D - 1356, // textureOffset_00L20B10D - 1358, // textureOffset_00U20B10D - 1360, // textureOffset_00a20B10D - 1362, // textureProjOffset_00I20B10D - 1364, // textureProjOffset_00R20B10D - 1366, // textureProjOffset_00X20B10D - 1368, // textureProjOffset_00I30B10D - 1370, // textureProjOffset_00R30B10D - 1372, // textureProjOffset_00X30B10D - 1374, // textureProjOffset_00J30B20D - 1376, // textureProjOffset_00S30B20D - 1378, // textureProjOffset_00Y30B20D - 1380, // textureProjOffset_00d30B10D - 1382, // textureLodOffset_00I10B00B10D - 1384, // textureLodOffset_00R10B00B10D - 1386, // textureLodOffset_00X10B00B10D - 1388, // textureLodOffset_00J20B00B20D - 1390, // textureLodOffset_00S20B00B20D - 1392, // textureLodOffset_00Y20B00B20D - 1394, // textureLodOffset_00d20B00B10D - 1396, // textureLodOffset_00L20B00B10D - 1398, // textureLodOffset_00U20B00B10D - 1400, // textureLodOffset_00a20B00B10D - 1402, // textureProjLodOffset_00I20B00B10D - 1404, // textureProjLodOffset_00R20B00B10D - 1406, // textureProjLodOffset_00X20B00B10D - 1408, // textureProjLodOffset_00I30B00B10D - 1410, // textureProjLodOffset_00R30B00B10D - 1412, // textureProjLodOffset_00X30B00B10D - 1414, // textureProjLodOffset_00J30B00B20D - 1416, // textureProjLodOffset_00S30B00B20D - 1418, // textureProjLodOffset_00Y30B00B20D - 1420, // textureProjLodOffset_00d30B00B10D - 1422, // texelFetchOffset_00I10D00D10D - 1424, // texelFetchOffset_00R10D00D10D - 1426, // texelFetchOffset_00X10D00D10D - 1428, // texelFetchOffset_00J20D00D20D - 1430, // texelFetchOffset_00S20D00D20D - 1432, // texelFetchOffset_00Y20D00D20D - 1434, // texelFetchOffset_00L20D00D10D - 1436, // texelFetchOffset_00U20D00D10D - 1438, // texelFetchOffset_00a20D00D10D - 1440, // textureGradOffset_00I10B10B10B10D - 1442, // textureGradOffset_00R10B10B10B10D - 1444, // textureGradOffset_00X10B10B10B10D - 1446, // textureGradOffset_00J20B20B20B20D - 1448, // textureGradOffset_00S20B20B20B20D - 1450, // textureGradOffset_00Y20B20B20B20D - 1452, // textureGradOffset_00d20B10B10B10D - 1454, // textureGradOffset_00L20B10B10B10D - 1456, // textureGradOffset_00U20B10B10B10D - 1458, // textureGradOffset_00a20B10B10B10D - 1460, // textureGradOffset_00f30B10B10B10D - 1462, // textureProjGradOffset_00I20B10B10B10D - 1464, // textureProjGradOffset_00R20B10B10B10D - 1466, // textureProjGradOffset_00X20B10B10B10D - 1468, // textureProjGradOffset_00I30B10B10B10D - 1470, // textureProjGradOffset_00R30B10B10B10D - 1472, // textureProjGradOffset_00X30B10B10B10D - 1474, // textureProjGradOffset_00J30B20B20B20D - 1476, // textureProjGradOffset_00S30B20B20B20D - 1478, // textureProjGradOffset_00Y30B20B20B20D - 1480, // textureProjGradOffset_00d30B10B10B10D - 1482, // textureOffset_00I10B10D00B - 1484, // textureOffset_00R10B10D00B - 1486, // textureOffset_00X10B10D00B - 1488, // textureOffset_00J20B20D00B - 1490, // textureOffset_00S20B20D00B - 1492, // textureOffset_00Y20B20D00B - 1494, // textureOffset_00d20B10D00B - 1496, // textureOffset_00L20B10D00B - 1498, // textureOffset_00U20B10D00B - 1500, // textureOffset_00a20B10D00B - 1502, // textureProjOffset_00I20B10D00B - 1504, // textureProjOffset_00R20B10D00B - 1506, // textureProjOffset_00X20B10D00B - 1508, // textureProjOffset_00I30B10D00B - 1510, // textureProjOffset_00R30B10D00B - 1512, // textureProjOffset_00X30B10D00B - 1514, // textureProjOffset_00J30B20D00B - 1516, // textureProjOffset_00S30B20D00B - 1518, // textureProjOffset_00Y30B20D00B - 1520, // textureProjOffset_00d30B10D00B - 1522, // texture_00M10B - 1523, // textureProj_00M20B - 1524, // textureProj_00M30B - 1525, // textureSize_00M00D - 1526, // texelFetch_00M10D00D - 1527, // texture_00N10B - 1528, // textureProj_00N20B - 1529, // textureProj_00N30B - 1530, // rgb_2_yuv_20B00H - 1531, // yuv_2_rgb_20B00H - 1532, // textureSize_00N00D - 1533, // texelFetch_00N10D00D - 1534, // textureGather_00I10B - 1536, // textureGather_00R10B - 1538, // textureGather_00X10B - 1540, // textureGather_00I10B00D - 1542, // textureGather_00R10B00D - 1544, // textureGather_00X10B00D - 1546, // textureGather_00L20B - 1548, // textureGather_00U20B - 1550, // textureGather_00a20B - 1552, // textureGather_00L20B00D - 1554, // textureGather_00U20B00D - 1556, // textureGather_00a20B00D - 1558, // textureGather_00K20B - 1560, // textureGather_00T20B - 1562, // textureGather_00Z20B - 1564, // textureGather_00K20B00D - 1566, // textureGather_00T20B00D - 1568, // textureGather_00Z20B00D - 1570, // textureGather_00d10B - 1571, // textureGather_00d10B00B - 1573, // textureGather_00f20B - 1574, // textureGather_00f20B00B - 1576, // textureGather_00e20B - 1577, // textureGather_00e20B00B - 1579, // textureGatherOffset_00I10B10D - 1581, // textureGatherOffset_00R10B10D - 1583, // textureGatherOffset_00X10B10D - 1585, // textureGatherOffset_00L20B10D - 1587, // textureGatherOffset_00U20B10D - 1589, // textureGatherOffset_00a20B10D - 1591, // textureGatherOffset_00d10B00B10D - 1593, // textureGatherOffset_00f20B00B10D - 1595, // textureGatherOffset_00I10B10D00D - 1597, // textureGatherOffset_00R10B10D00D - 1599, // textureGatherOffset_00X10B10D00D - 1601, // textureGatherOffset_00L20B10D00D - 1603, // textureGatherOffset_00U20B10D00D - 1605, // textureGatherOffset_00a20B10D00D - 1607, // textureGatherOffsets_00I10B10Dx4 - 1610, // textureGatherOffsets_00R10B10Dx4 - 1613, // textureGatherOffsets_00X10B10Dx4 - 1616, // textureGatherOffsets_00L20B10Dx4 - 1619, // textureGatherOffsets_00U20B10Dx4 - 1622, // textureGatherOffsets_00a20B10Dx4 - 1625, // textureGatherOffsets_00d10B00B10Dx4 - 1628, // textureGatherOffsets_00f20B00B10Dx4 - 1631, // textureGatherOffsets_00I10B10Dx400D - 1634, // textureGatherOffsets_00R10B10Dx400D - 1637, // textureGatherOffsets_00X10B10Dx400D - 1640, // textureGatherOffsets_00L20B10Dx400D - 1643, // textureGatherOffsets_00U20B10Dx400D - 1646, // textureGatherOffsets_00a20B10Dx400D - 1649, // interpolateAtCentroid_00B - 1652, // interpolateAtCentroid_10B - 1655, // interpolateAtCentroid_20B - 1658, // interpolateAtCentroid_30B - 1661, // interpolateAtSample_00B00D - 1664, // interpolateAtSample_10B00D - 1667, // interpolateAtSample_20B00D - 1670, // interpolateAtSample_30B00D - 1673, // interpolateAtOffset_00B10B - 1676, // interpolateAtOffset_10B10B - 1679, // interpolateAtOffset_20B10B - 1682, // interpolateAtOffset_30B10B - 1685, // atomicCounter_00G - 1687, // atomicCounterIncrement_00G - 1689, // atomicCounterDecrement_00G - 1691, // atomicAdd_00E00E - 1693, // atomicAdd_00D00D - 1695, // atomicMin_00E00E - 1697, // atomicMin_00D00D - 1699, // atomicMax_00E00E - 1701, // atomicMax_00D00D - 1703, // atomicAnd_00E00E - 1705, // atomicAnd_00D00D - 1707, // atomicOr_00E00E - 1709, // atomicOr_00D00D - 1711, // atomicXor_00E00E - 1713, // atomicXor_00D00D - 1715, // atomicExchange_00E00E - 1717, // atomicExchange_00D00D - 1719, // atomicCompSwap_00E00E00E - 1721, // atomicCompSwap_00D00D00D - 1723, // imageSize_00z - 1724, // imageSize_01A - 1725, // imageSize_01B - 1726, // imageSize_01C - 1727, // imageSize_01D - 1728, // imageSize_01E - 1729, // imageSize_01F - 1730, // imageSize_01G - 1731, // imageSize_01H - 1732, // imageSize_01I - 1733, // imageSize_01J - 1734, // imageSize_01K - 1735, // imageSize_01X - 1736, // imageSize_01Y - 1737, // imageSize_01Z - 1738, // imageSize_01d - 1739, // imageSize_01e - 1740, // imageSize_01f - 1741, // imageStore_00z10D30B - 1742, // imageStore_01A10D30D - 1743, // imageStore_01B10D30E - 1744, // imageStore_01C20D30B - 1745, // imageStore_01D20D30D - 1746, // imageStore_01E20D30E - 1747, // imageStore_01F20D30B - 1748, // imageStore_01G20D30D - 1749, // imageStore_01H20D30E - 1750, // imageStore_01I20D30B - 1751, // imageStore_01J20D30D - 1752, // imageStore_01K20D30E - 1753, // imageStore_01X20D30B - 1754, // imageStore_01Y20D30D - 1755, // imageStore_01Z20D30E - 1756, // imageStore_01d00D30B - 1757, // imageStore_01e00D30D - 1758, // imageStore_01f00D30E - 1759, // imageLoad_00z10D - 1760, // imageLoad_01A10D - 1761, // imageLoad_01B10D - 1762, // imageLoad_01C20D - 1763, // imageLoad_01D20D - 1764, // imageLoad_01E20D - 1765, // imageLoad_01F20D - 1766, // imageLoad_01G20D - 1767, // imageLoad_01H20D - 1768, // imageLoad_01I20D - 1769, // imageLoad_01J20D - 1770, // imageLoad_01K20D - 1771, // imageLoad_01X20D - 1772, // imageLoad_01Y20D - 1773, // imageLoad_01Z20D - 1774, // imageLoad_01d00D - 1775, // imageLoad_01e00D - 1776, // imageLoad_01f00D - 1777, // imageAtomicAdd_00z10D00E - 1778, // imageAtomicAdd_01A10D00E - 1779, // imageAtomicAdd_01B10D00E - 1780, // imageAtomicAdd_01C20D00E - 1781, // imageAtomicAdd_01D20D00E - 1782, // imageAtomicAdd_01E20D00E - 1783, // imageAtomicAdd_01I20D00E - 1784, // imageAtomicAdd_01J20D00E - 1785, // imageAtomicAdd_01K20D00E - 1786, // imageAtomicAdd_01d00D00E - 1787, // imageAtomicAdd_01e00D00E - 1788, // imageAtomicAdd_01f00D00E - 1789, // imageAtomicAdd_01F20D00E - 1790, // imageAtomicAdd_01G20D00E - 1791, // imageAtomicAdd_01H20D00E - 1792, // imageAtomicAdd_01X20D00E - 1793, // imageAtomicAdd_01Y20D00E - 1794, // imageAtomicAdd_01Z20D00E - 1795, // imageAtomicAdd_01L00D00E - 1796, // imageAtomicAdd_01M00D00E - 1797, // imageAtomicAdd_01N00D00E - 1798, // imageAtomicAdd_01O10D00E - 1799, // imageAtomicAdd_01P10D00E - 1800, // imageAtomicAdd_01Q10D00E - 1801, // imageAtomicAdd_01a10D00E - 1802, // imageAtomicAdd_01b10D00E - 1803, // imageAtomicAdd_01c10D00E - 1804, // imageAtomicAdd_01R10D00D00E - 1805, // imageAtomicAdd_01S10D00D00E - 1806, // imageAtomicAdd_01T10D00D00E - 1807, // imageAtomicAdd_01U20D00D00E - 1808, // imageAtomicAdd_01V20D00D00E - 1809, // imageAtomicAdd_01W20D00D00E - 1810, // imageAtomicAdd_00z10D00D - 1811, // imageAtomicAdd_01A10D00D - 1812, // imageAtomicAdd_01B10D00D - 1813, // imageAtomicAdd_01C20D00D - 1814, // imageAtomicAdd_01D20D00D - 1815, // imageAtomicAdd_01E20D00D - 1816, // imageAtomicAdd_01I20D00D - 1817, // imageAtomicAdd_01J20D00D - 1818, // imageAtomicAdd_01K20D00D - 1819, // imageAtomicAdd_01d00D00D - 1820, // imageAtomicAdd_01e00D00D - 1821, // imageAtomicAdd_01f00D00D - 1822, // imageAtomicAdd_01F20D00D - 1823, // imageAtomicAdd_01G20D00D - 1824, // imageAtomicAdd_01H20D00D - 1825, // imageAtomicAdd_01X20D00D - 1826, // imageAtomicAdd_01Y20D00D - 1827, // imageAtomicAdd_01Z20D00D - 1828, // imageAtomicAdd_01L00D00D - 1829, // imageAtomicAdd_01M00D00D - 1830, // imageAtomicAdd_01N00D00D - 1831, // imageAtomicAdd_01O10D00D - 1832, // imageAtomicAdd_01P10D00D - 1833, // imageAtomicAdd_01Q10D00D - 1834, // imageAtomicAdd_01a10D00D - 1835, // imageAtomicAdd_01b10D00D - 1836, // imageAtomicAdd_01c10D00D - 1837, // imageAtomicAdd_01R10D00D00D - 1838, // imageAtomicAdd_01S10D00D00D - 1839, // imageAtomicAdd_01T10D00D00D - 1840, // imageAtomicAdd_01U20D00D00D - 1841, // imageAtomicAdd_01V20D00D00D - 1842, // imageAtomicAdd_01W20D00D00D - 1843, // imageAtomicMin_00z10D00E - 1844, // imageAtomicMin_01A10D00E - 1845, // imageAtomicMin_01B10D00E - 1846, // imageAtomicMin_01C20D00E - 1847, // imageAtomicMin_01D20D00E - 1848, // imageAtomicMin_01E20D00E - 1849, // imageAtomicMin_01I20D00E - 1850, // imageAtomicMin_01J20D00E - 1851, // imageAtomicMin_01K20D00E - 1852, // imageAtomicMin_01d00D00E - 1853, // imageAtomicMin_01e00D00E - 1854, // imageAtomicMin_01f00D00E - 1855, // imageAtomicMin_01F20D00E - 1856, // imageAtomicMin_01G20D00E - 1857, // imageAtomicMin_01H20D00E - 1858, // imageAtomicMin_01X20D00E - 1859, // imageAtomicMin_01Y20D00E - 1860, // imageAtomicMin_01Z20D00E - 1861, // imageAtomicMin_01L00D00E - 1862, // imageAtomicMin_01M00D00E - 1863, // imageAtomicMin_01N00D00E - 1864, // imageAtomicMin_01O10D00E - 1865, // imageAtomicMin_01P10D00E - 1866, // imageAtomicMin_01Q10D00E - 1867, // imageAtomicMin_01a10D00E - 1868, // imageAtomicMin_01b10D00E - 1869, // imageAtomicMin_01c10D00E - 1870, // imageAtomicMin_01R10D00D00E - 1871, // imageAtomicMin_01S10D00D00E - 1872, // imageAtomicMin_01T10D00D00E - 1873, // imageAtomicMin_01U20D00D00E - 1874, // imageAtomicMin_01V20D00D00E - 1875, // imageAtomicMin_01W20D00D00E - 1876, // imageAtomicMin_00z10D00D - 1877, // imageAtomicMin_01A10D00D - 1878, // imageAtomicMin_01B10D00D - 1879, // imageAtomicMin_01C20D00D - 1880, // imageAtomicMin_01D20D00D - 1881, // imageAtomicMin_01E20D00D - 1882, // imageAtomicMin_01I20D00D - 1883, // imageAtomicMin_01J20D00D - 1884, // imageAtomicMin_01K20D00D - 1885, // imageAtomicMin_01d00D00D - 1886, // imageAtomicMin_01e00D00D - 1887, // imageAtomicMin_01f00D00D - 1888, // imageAtomicMin_01F20D00D - 1889, // imageAtomicMin_01G20D00D - 1890, // imageAtomicMin_01H20D00D - 1891, // imageAtomicMin_01X20D00D - 1892, // imageAtomicMin_01Y20D00D - 1893, // imageAtomicMin_01Z20D00D - 1894, // imageAtomicMin_01L00D00D - 1895, // imageAtomicMin_01M00D00D - 1896, // imageAtomicMin_01N00D00D - 1897, // imageAtomicMin_01O10D00D - 1898, // imageAtomicMin_01P10D00D - 1899, // imageAtomicMin_01Q10D00D - 1900, // imageAtomicMin_01a10D00D - 1901, // imageAtomicMin_01b10D00D - 1902, // imageAtomicMin_01c10D00D - 1903, // imageAtomicMin_01R10D00D00D - 1904, // imageAtomicMin_01S10D00D00D - 1905, // imageAtomicMin_01T10D00D00D - 1906, // imageAtomicMin_01U20D00D00D - 1907, // imageAtomicMin_01V20D00D00D - 1908, // imageAtomicMin_01W20D00D00D - 1909, // imageAtomicMax_00z10D00E - 1910, // imageAtomicMax_01A10D00E - 1911, // imageAtomicMax_01B10D00E - 1912, // imageAtomicMax_01C20D00E - 1913, // imageAtomicMax_01D20D00E - 1914, // imageAtomicMax_01E20D00E - 1915, // imageAtomicMax_01I20D00E - 1916, // imageAtomicMax_01J20D00E - 1917, // imageAtomicMax_01K20D00E - 1918, // imageAtomicMax_01d00D00E - 1919, // imageAtomicMax_01e00D00E - 1920, // imageAtomicMax_01f00D00E - 1921, // imageAtomicMax_01F20D00E - 1922, // imageAtomicMax_01G20D00E - 1923, // imageAtomicMax_01H20D00E - 1924, // imageAtomicMax_01X20D00E - 1925, // imageAtomicMax_01Y20D00E - 1926, // imageAtomicMax_01Z20D00E - 1927, // imageAtomicMax_01L00D00E - 1928, // imageAtomicMax_01M00D00E - 1929, // imageAtomicMax_01N00D00E - 1930, // imageAtomicMax_01O10D00E - 1931, // imageAtomicMax_01P10D00E - 1932, // imageAtomicMax_01Q10D00E - 1933, // imageAtomicMax_01a10D00E - 1934, // imageAtomicMax_01b10D00E - 1935, // imageAtomicMax_01c10D00E - 1936, // imageAtomicMax_01R10D00D00E - 1937, // imageAtomicMax_01S10D00D00E - 1938, // imageAtomicMax_01T10D00D00E - 1939, // imageAtomicMax_01U20D00D00E - 1940, // imageAtomicMax_01V20D00D00E - 1941, // imageAtomicMax_01W20D00D00E - 1942, // imageAtomicMax_00z10D00D - 1943, // imageAtomicMax_01A10D00D - 1944, // imageAtomicMax_01B10D00D - 1945, // imageAtomicMax_01C20D00D - 1946, // imageAtomicMax_01D20D00D - 1947, // imageAtomicMax_01E20D00D - 1948, // imageAtomicMax_01I20D00D - 1949, // imageAtomicMax_01J20D00D - 1950, // imageAtomicMax_01K20D00D - 1951, // imageAtomicMax_01d00D00D - 1952, // imageAtomicMax_01e00D00D - 1953, // imageAtomicMax_01f00D00D - 1954, // imageAtomicMax_01F20D00D - 1955, // imageAtomicMax_01G20D00D - 1956, // imageAtomicMax_01H20D00D - 1957, // imageAtomicMax_01X20D00D - 1958, // imageAtomicMax_01Y20D00D - 1959, // imageAtomicMax_01Z20D00D - 1960, // imageAtomicMax_01L00D00D - 1961, // imageAtomicMax_01M00D00D - 1962, // imageAtomicMax_01N00D00D - 1963, // imageAtomicMax_01O10D00D - 1964, // imageAtomicMax_01P10D00D - 1965, // imageAtomicMax_01Q10D00D - 1966, // imageAtomicMax_01a10D00D - 1967, // imageAtomicMax_01b10D00D - 1968, // imageAtomicMax_01c10D00D - 1969, // imageAtomicMax_01R10D00D00D - 1970, // imageAtomicMax_01S10D00D00D - 1971, // imageAtomicMax_01T10D00D00D - 1972, // imageAtomicMax_01U20D00D00D - 1973, // imageAtomicMax_01V20D00D00D - 1974, // imageAtomicMax_01W20D00D00D - 1975, // imageAtomicAnd_00z10D00E - 1976, // imageAtomicAnd_01A10D00E - 1977, // imageAtomicAnd_01B10D00E - 1978, // imageAtomicAnd_01C20D00E - 1979, // imageAtomicAnd_01D20D00E - 1980, // imageAtomicAnd_01E20D00E - 1981, // imageAtomicAnd_01I20D00E - 1982, // imageAtomicAnd_01J20D00E - 1983, // imageAtomicAnd_01K20D00E - 1984, // imageAtomicAnd_01d00D00E - 1985, // imageAtomicAnd_01e00D00E - 1986, // imageAtomicAnd_01f00D00E - 1987, // imageAtomicAnd_01F20D00E - 1988, // imageAtomicAnd_01G20D00E - 1989, // imageAtomicAnd_01H20D00E - 1990, // imageAtomicAnd_01X20D00E - 1991, // imageAtomicAnd_01Y20D00E - 1992, // imageAtomicAnd_01Z20D00E - 1993, // imageAtomicAnd_01L00D00E - 1994, // imageAtomicAnd_01M00D00E - 1995, // imageAtomicAnd_01N00D00E - 1996, // imageAtomicAnd_01O10D00E - 1997, // imageAtomicAnd_01P10D00E - 1998, // imageAtomicAnd_01Q10D00E - 1999, // imageAtomicAnd_01a10D00E - 2000, // imageAtomicAnd_01b10D00E - 2001, // imageAtomicAnd_01c10D00E - 2002, // imageAtomicAnd_01R10D00D00E - 2003, // imageAtomicAnd_01S10D00D00E - 2004, // imageAtomicAnd_01T10D00D00E - 2005, // imageAtomicAnd_01U20D00D00E - 2006, // imageAtomicAnd_01V20D00D00E - 2007, // imageAtomicAnd_01W20D00D00E - 2008, // imageAtomicAnd_00z10D00D - 2009, // imageAtomicAnd_01A10D00D - 2010, // imageAtomicAnd_01B10D00D - 2011, // imageAtomicAnd_01C20D00D - 2012, // imageAtomicAnd_01D20D00D - 2013, // imageAtomicAnd_01E20D00D - 2014, // imageAtomicAnd_01I20D00D - 2015, // imageAtomicAnd_01J20D00D - 2016, // imageAtomicAnd_01K20D00D - 2017, // imageAtomicAnd_01d00D00D - 2018, // imageAtomicAnd_01e00D00D - 2019, // imageAtomicAnd_01f00D00D - 2020, // imageAtomicAnd_01F20D00D - 2021, // imageAtomicAnd_01G20D00D - 2022, // imageAtomicAnd_01H20D00D - 2023, // imageAtomicAnd_01X20D00D - 2024, // imageAtomicAnd_01Y20D00D - 2025, // imageAtomicAnd_01Z20D00D - 2026, // imageAtomicAnd_01L00D00D - 2027, // imageAtomicAnd_01M00D00D - 2028, // imageAtomicAnd_01N00D00D - 2029, // imageAtomicAnd_01O10D00D - 2030, // imageAtomicAnd_01P10D00D - 2031, // imageAtomicAnd_01Q10D00D - 2032, // imageAtomicAnd_01a10D00D - 2033, // imageAtomicAnd_01b10D00D - 2034, // imageAtomicAnd_01c10D00D - 2035, // imageAtomicAnd_01R10D00D00D - 2036, // imageAtomicAnd_01S10D00D00D - 2037, // imageAtomicAnd_01T10D00D00D - 2038, // imageAtomicAnd_01U20D00D00D - 2039, // imageAtomicAnd_01V20D00D00D - 2040, // imageAtomicAnd_01W20D00D00D - 2041, // imageAtomicOr_00z10D00E - 2042, // imageAtomicOr_01A10D00E - 2043, // imageAtomicOr_01B10D00E - 2044, // imageAtomicOr_01C20D00E - 2045, // imageAtomicOr_01D20D00E - 2046, // imageAtomicOr_01E20D00E - 2047, // imageAtomicOr_01I20D00E - 2048, // imageAtomicOr_01J20D00E - 2049, // imageAtomicOr_01K20D00E - 2050, // imageAtomicOr_01d00D00E - 2051, // imageAtomicOr_01e00D00E - 2052, // imageAtomicOr_01f00D00E - 2053, // imageAtomicOr_01F20D00E - 2054, // imageAtomicOr_01G20D00E - 2055, // imageAtomicOr_01H20D00E - 2056, // imageAtomicOr_01X20D00E - 2057, // imageAtomicOr_01Y20D00E - 2058, // imageAtomicOr_01Z20D00E - 2059, // imageAtomicOr_01L00D00E - 2060, // imageAtomicOr_01M00D00E - 2061, // imageAtomicOr_01N00D00E - 2062, // imageAtomicOr_01O10D00E - 2063, // imageAtomicOr_01P10D00E - 2064, // imageAtomicOr_01Q10D00E - 2065, // imageAtomicOr_01a10D00E - 2066, // imageAtomicOr_01b10D00E - 2067, // imageAtomicOr_01c10D00E - 2068, // imageAtomicOr_01R10D00D00E - 2069, // imageAtomicOr_01S10D00D00E - 2070, // imageAtomicOr_01T10D00D00E - 2071, // imageAtomicOr_01U20D00D00E - 2072, // imageAtomicOr_01V20D00D00E - 2073, // imageAtomicOr_01W20D00D00E - 2074, // imageAtomicOr_00z10D00D - 2075, // imageAtomicOr_01A10D00D - 2076, // imageAtomicOr_01B10D00D - 2077, // imageAtomicOr_01C20D00D - 2078, // imageAtomicOr_01D20D00D - 2079, // imageAtomicOr_01E20D00D - 2080, // imageAtomicOr_01I20D00D - 2081, // imageAtomicOr_01J20D00D - 2082, // imageAtomicOr_01K20D00D - 2083, // imageAtomicOr_01d00D00D - 2084, // imageAtomicOr_01e00D00D - 2085, // imageAtomicOr_01f00D00D - 2086, // imageAtomicOr_01F20D00D - 2087, // imageAtomicOr_01G20D00D - 2088, // imageAtomicOr_01H20D00D - 2089, // imageAtomicOr_01X20D00D - 2090, // imageAtomicOr_01Y20D00D - 2091, // imageAtomicOr_01Z20D00D - 2092, // imageAtomicOr_01L00D00D - 2093, // imageAtomicOr_01M00D00D - 2094, // imageAtomicOr_01N00D00D - 2095, // imageAtomicOr_01O10D00D - 2096, // imageAtomicOr_01P10D00D - 2097, // imageAtomicOr_01Q10D00D - 2098, // imageAtomicOr_01a10D00D - 2099, // imageAtomicOr_01b10D00D - 2100, // imageAtomicOr_01c10D00D - 2101, // imageAtomicOr_01R10D00D00D - 2102, // imageAtomicOr_01S10D00D00D - 2103, // imageAtomicOr_01T10D00D00D - 2104, // imageAtomicOr_01U20D00D00D - 2105, // imageAtomicOr_01V20D00D00D - 2106, // imageAtomicOr_01W20D00D00D - 2107, // imageAtomicXor_00z10D00E - 2108, // imageAtomicXor_01A10D00E - 2109, // imageAtomicXor_01B10D00E - 2110, // imageAtomicXor_01C20D00E - 2111, // imageAtomicXor_01D20D00E - 2112, // imageAtomicXor_01E20D00E - 2113, // imageAtomicXor_01I20D00E - 2114, // imageAtomicXor_01J20D00E - 2115, // imageAtomicXor_01K20D00E - 2116, // imageAtomicXor_01d00D00E - 2117, // imageAtomicXor_01e00D00E - 2118, // imageAtomicXor_01f00D00E - 2119, // imageAtomicXor_01F20D00E - 2120, // imageAtomicXor_01G20D00E - 2121, // imageAtomicXor_01H20D00E - 2122, // imageAtomicXor_01X20D00E - 2123, // imageAtomicXor_01Y20D00E - 2124, // imageAtomicXor_01Z20D00E - 2125, // imageAtomicXor_01L00D00E - 2126, // imageAtomicXor_01M00D00E - 2127, // imageAtomicXor_01N00D00E - 2128, // imageAtomicXor_01O10D00E - 2129, // imageAtomicXor_01P10D00E - 2130, // imageAtomicXor_01Q10D00E - 2131, // imageAtomicXor_01a10D00E - 2132, // imageAtomicXor_01b10D00E - 2133, // imageAtomicXor_01c10D00E - 2134, // imageAtomicXor_01R10D00D00E - 2135, // imageAtomicXor_01S10D00D00E - 2136, // imageAtomicXor_01T10D00D00E - 2137, // imageAtomicXor_01U20D00D00E - 2138, // imageAtomicXor_01V20D00D00E - 2139, // imageAtomicXor_01W20D00D00E - 2140, // imageAtomicXor_00z10D00D - 2141, // imageAtomicXor_01A10D00D - 2142, // imageAtomicXor_01B10D00D - 2143, // imageAtomicXor_01C20D00D - 2144, // imageAtomicXor_01D20D00D - 2145, // imageAtomicXor_01E20D00D - 2146, // imageAtomicXor_01I20D00D - 2147, // imageAtomicXor_01J20D00D - 2148, // imageAtomicXor_01K20D00D - 2149, // imageAtomicXor_01d00D00D - 2150, // imageAtomicXor_01e00D00D - 2151, // imageAtomicXor_01f00D00D - 2152, // imageAtomicXor_01F20D00D - 2153, // imageAtomicXor_01G20D00D - 2154, // imageAtomicXor_01H20D00D - 2155, // imageAtomicXor_01X20D00D - 2156, // imageAtomicXor_01Y20D00D - 2157, // imageAtomicXor_01Z20D00D - 2158, // imageAtomicXor_01L00D00D - 2159, // imageAtomicXor_01M00D00D - 2160, // imageAtomicXor_01N00D00D - 2161, // imageAtomicXor_01O10D00D - 2162, // imageAtomicXor_01P10D00D - 2163, // imageAtomicXor_01Q10D00D - 2164, // imageAtomicXor_01a10D00D - 2165, // imageAtomicXor_01b10D00D - 2166, // imageAtomicXor_01c10D00D - 2167, // imageAtomicXor_01R10D00D00D - 2168, // imageAtomicXor_01S10D00D00D - 2169, // imageAtomicXor_01T10D00D00D - 2170, // imageAtomicXor_01U20D00D00D - 2171, // imageAtomicXor_01V20D00D00D - 2172, // imageAtomicXor_01W20D00D00D - 2173, // imageAtomicExchange_00z10D00E - 2174, // imageAtomicExchange_01A10D00E - 2175, // imageAtomicExchange_01B10D00E - 2176, // imageAtomicExchange_01C20D00E - 2177, // imageAtomicExchange_01D20D00E - 2178, // imageAtomicExchange_01E20D00E - 2179, // imageAtomicExchange_01I20D00E - 2180, // imageAtomicExchange_01J20D00E - 2181, // imageAtomicExchange_01K20D00E - 2182, // imageAtomicExchange_01d00D00E - 2183, // imageAtomicExchange_01e00D00E - 2184, // imageAtomicExchange_01f00D00E - 2185, // imageAtomicExchange_01F20D00E - 2186, // imageAtomicExchange_01G20D00E - 2187, // imageAtomicExchange_01H20D00E - 2188, // imageAtomicExchange_01X20D00E - 2189, // imageAtomicExchange_01Y20D00E - 2190, // imageAtomicExchange_01Z20D00E - 2191, // imageAtomicExchange_01L00D00E - 2192, // imageAtomicExchange_01M00D00E - 2193, // imageAtomicExchange_01N00D00E - 2194, // imageAtomicExchange_01O10D00E - 2195, // imageAtomicExchange_01P10D00E - 2196, // imageAtomicExchange_01Q10D00E - 2197, // imageAtomicExchange_01a10D00E - 2198, // imageAtomicExchange_01b10D00E - 2199, // imageAtomicExchange_01c10D00E - 2200, // imageAtomicExchange_01R10D00D00E - 2201, // imageAtomicExchange_01S10D00D00E - 2202, // imageAtomicExchange_01T10D00D00E - 2203, // imageAtomicExchange_01U20D00D00E - 2204, // imageAtomicExchange_01V20D00D00E - 2205, // imageAtomicExchange_01W20D00D00E - 2206, // imageAtomicExchange_00z10D00D - 2207, // imageAtomicExchange_01A10D00D - 2208, // imageAtomicExchange_01B10D00D - 2209, // imageAtomicExchange_01C20D00D - 2210, // imageAtomicExchange_01D20D00D - 2211, // imageAtomicExchange_01E20D00D - 2212, // imageAtomicExchange_01I20D00D - 2213, // imageAtomicExchange_01J20D00D - 2214, // imageAtomicExchange_01K20D00D - 2215, // imageAtomicExchange_01d00D00D - 2216, // imageAtomicExchange_01e00D00D - 2217, // imageAtomicExchange_01f00D00D - 2218, // imageAtomicExchange_01F20D00D - 2219, // imageAtomicExchange_01G20D00D - 2220, // imageAtomicExchange_01H20D00D - 2221, // imageAtomicExchange_01X20D00D - 2222, // imageAtomicExchange_01Y20D00D - 2223, // imageAtomicExchange_01Z20D00D - 2224, // imageAtomicExchange_01L00D00D - 2225, // imageAtomicExchange_01M00D00D - 2226, // imageAtomicExchange_01N00D00D - 2227, // imageAtomicExchange_01O10D00D - 2228, // imageAtomicExchange_01P10D00D - 2229, // imageAtomicExchange_01Q10D00D - 2230, // imageAtomicExchange_01a10D00D - 2231, // imageAtomicExchange_01b10D00D - 2232, // imageAtomicExchange_01c10D00D - 2233, // imageAtomicExchange_01R10D00D00D - 2234, // imageAtomicExchange_01S10D00D00D - 2235, // imageAtomicExchange_01T10D00D00D - 2236, // imageAtomicExchange_01U20D00D00D - 2237, // imageAtomicExchange_01V20D00D00D - 2238, // imageAtomicExchange_01W20D00D00D - 2239, // imageAtomicExchange_00z10D00B - 2240, // imageAtomicExchange_01A10D00B - 2241, // imageAtomicExchange_01B10D00B - 2242, // imageAtomicExchange_01C20D00B - 2243, // imageAtomicExchange_01D20D00B - 2244, // imageAtomicExchange_01E20D00B - 2245, // imageAtomicExchange_01I20D00B - 2246, // imageAtomicExchange_01J20D00B - 2247, // imageAtomicExchange_01K20D00B - 2248, // imageAtomicExchange_01d00D00B - 2249, // imageAtomicExchange_01e00D00B - 2250, // imageAtomicExchange_01f00D00B - 2251, // imageAtomicExchange_01F20D00B - 2252, // imageAtomicExchange_01G20D00B - 2253, // imageAtomicExchange_01H20D00B - 2254, // imageAtomicExchange_01X20D00B - 2255, // imageAtomicExchange_01Y20D00B - 2256, // imageAtomicExchange_01Z20D00B - 2257, // imageAtomicExchange_01L00D00B - 2258, // imageAtomicExchange_01M00D00B - 2259, // imageAtomicExchange_01N00D00B - 2260, // imageAtomicExchange_01O10D00B - 2261, // imageAtomicExchange_01P10D00B - 2262, // imageAtomicExchange_01Q10D00B - 2263, // imageAtomicExchange_01a10D00B - 2264, // imageAtomicExchange_01b10D00B - 2265, // imageAtomicExchange_01c10D00B - 2266, // imageAtomicExchange_01R10D00D00B - 2267, // imageAtomicExchange_01S10D00D00B - 2268, // imageAtomicExchange_01T10D00D00B - 2269, // imageAtomicExchange_01U20D00D00B - 2270, // imageAtomicExchange_01V20D00D00B - 2271, // imageAtomicExchange_01W20D00D00B - 2272, // imageAtomicCompSwap_00z10D00E00E - 2273, // imageAtomicCompSwap_01A10D00E00E - 2274, // imageAtomicCompSwap_01B10D00E00E - 2275, // imageAtomicCompSwap_01C20D00E00E - 2276, // imageAtomicCompSwap_01D20D00E00E - 2277, // imageAtomicCompSwap_01E20D00E00E - 2278, // imageAtomicCompSwap_01I20D00E00E - 2279, // imageAtomicCompSwap_01J20D00E00E - 2280, // imageAtomicCompSwap_01K20D00E00E - 2281, // imageAtomicCompSwap_01d00D00E00E - 2282, // imageAtomicCompSwap_01e00D00E00E - 2283, // imageAtomicCompSwap_01f00D00E00E - 2284, // imageAtomicCompSwap_01F20D00E00E - 2285, // imageAtomicCompSwap_01G20D00E00E - 2286, // imageAtomicCompSwap_01H20D00E00E - 2287, // imageAtomicCompSwap_01X20D00E00E - 2288, // imageAtomicCompSwap_01Y20D00E00E - 2289, // imageAtomicCompSwap_01Z20D00E00E - 2290, // imageAtomicCompSwap_01L00D00E00E - 2291, // imageAtomicCompSwap_01M00D00E00E - 2292, // imageAtomicCompSwap_01N00D00E00E - 2293, // imageAtomicCompSwap_01O10D00E00E - 2294, // imageAtomicCompSwap_01P10D00E00E - 2295, // imageAtomicCompSwap_01Q10D00E00E - 2296, // imageAtomicCompSwap_01a10D00E00E - 2297, // imageAtomicCompSwap_01b10D00E00E - 2298, // imageAtomicCompSwap_01c10D00E00E - 2299, // imageAtomicCompSwap_01R10D00D00E00E - 2300, // imageAtomicCompSwap_01S10D00D00E00E - 2301, // imageAtomicCompSwap_01T10D00D00E00E - 2302, // imageAtomicCompSwap_01U20D00D00E00E - 2303, // imageAtomicCompSwap_01V20D00D00E00E - 2304, // imageAtomicCompSwap_01W20D00D00E00E - 2305, // imageAtomicCompSwap_00z10D00D00D - 2306, // imageAtomicCompSwap_01A10D00D00D - 2307, // imageAtomicCompSwap_01B10D00D00D - 2308, // imageAtomicCompSwap_01C20D00D00D - 2309, // imageAtomicCompSwap_01D20D00D00D - 2310, // imageAtomicCompSwap_01E20D00D00D - 2311, // imageAtomicCompSwap_01I20D00D00D - 2312, // imageAtomicCompSwap_01J20D00D00D - 2313, // imageAtomicCompSwap_01K20D00D00D - 2314, // imageAtomicCompSwap_01d00D00D00D - 2315, // imageAtomicCompSwap_01e00D00D00D - 2316, // imageAtomicCompSwap_01f00D00D00D - 2317, // imageAtomicCompSwap_01F20D00D00D - 2318, // imageAtomicCompSwap_01G20D00D00D - 2319, // imageAtomicCompSwap_01H20D00D00D - 2320, // imageAtomicCompSwap_01X20D00D00D - 2321, // imageAtomicCompSwap_01Y20D00D00D - 2322, // imageAtomicCompSwap_01Z20D00D00D - 2323, // imageAtomicCompSwap_01L00D00D00D - 2324, // imageAtomicCompSwap_01M00D00D00D - 2325, // imageAtomicCompSwap_01N00D00D00D - 2326, // imageAtomicCompSwap_01O10D00D00D - 2327, // imageAtomicCompSwap_01P10D00D00D - 2328, // imageAtomicCompSwap_01Q10D00D00D - 2329, // imageAtomicCompSwap_01a10D00D00D - 2330, // imageAtomicCompSwap_01b10D00D00D - 2331, // imageAtomicCompSwap_01c10D00D00D - 2332, // imageAtomicCompSwap_01R10D00D00D00D - 2333, // imageAtomicCompSwap_01S10D00D00D00D - 2334, // imageAtomicCompSwap_01T10D00D00D00D - 2335, // imageAtomicCompSwap_01U20D00D00D00D - 2336, // imageAtomicCompSwap_01V20D00D00D00D - 2337, // imageAtomicCompSwap_01W20D00D00D00D - 2338, // memoryBarrier_ - 2340, // memoryBarrierAtomicCounter_ - 2342, // memoryBarrierBuffer_ - 2344, // memoryBarrierImage_ - 2346, // barrier_ - 2350, // memoryBarrierShared_ - 2352, // groupMemoryBarrier_ - 2354, // EmitVertex_ - 2356, // EndPrimitive_ - 2358, // textureVideoWEBGL_00y10B - 2360, // texture_00y10B - 2362, // gl_DepthRangeParameters - 2364, // gl_DepthRange - 2366, // gl_NumSamples - 2369, // gl_MaxVertexAttribs - 2371, // gl_MaxVertexUniformVectors - 2373, // gl_MaxVertexTextureImageUnits - 2375, // gl_MaxCombinedTextureImageUnits - 2377, // gl_MaxTextureImageUnits - 2379, // gl_MaxFragmentUniformVectors - 2381, // gl_MaxVaryingVectors - 2383, // gl_MaxDrawBuffers - 2385, // gl_MaxDualSourceDrawBuffersEXT - 2386, // gl_MaxVertexOutputVectors - 2388, // gl_MaxFragmentInputVectors - 2390, // gl_MinProgramTexelOffset - 2392, // gl_MaxProgramTexelOffset - 2394, // gl_MaxImageUnits - 2396, // gl_MaxVertexImageUniforms - 2398, // gl_MaxFragmentImageUniforms - 2400, // gl_MaxComputeImageUniforms - 2402, // gl_MaxCombinedImageUniforms - 2404, // gl_MaxCombinedShaderOutputResources - 2406, // gl_MaxComputeWorkGroupCount - 2408, // gl_MaxComputeWorkGroupSize - 2410, // gl_MaxComputeUniformComponents - 2412, // gl_MaxComputeTextureImageUnits - 2414, // gl_MaxComputeAtomicCounters - 2416, // gl_MaxComputeAtomicCounterBuffers - 2418, // gl_MaxVertexAtomicCounters - 2420, // gl_MaxFragmentAtomicCounters - 2422, // gl_MaxCombinedAtomicCounters - 2424, // gl_MaxAtomicCounterBindings - 2426, // gl_MaxVertexAtomicCounterBuffers - 2428, // gl_MaxFragmentAtomicCounterBuffers - 2430, // gl_MaxCombinedAtomicCounterBuffers - 2432, // gl_MaxAtomicCounterBufferSize - 2434, // gl_MaxGeometryInputComponents - 2437, // gl_MaxGeometryOutputComponents - 2440, // gl_MaxGeometryImageUniforms - 2443, // gl_MaxGeometryTextureImageUnits - 2446, // gl_MaxGeometryOutputVertices - 2449, // gl_MaxGeometryTotalOutputComponents - 2452, // gl_MaxGeometryUniformComponents - 2455, // gl_MaxGeometryAtomicCounters - 2458, // gl_MaxGeometryAtomicCounterBuffers - 2461, // gl_MaxTessControlInputComponents - 2464, // gl_MaxTessControlOutputComponents - 2467, // gl_MaxTessControlTextureImageUnits - 2470, // gl_MaxTessControlUniformComponents - 2473, // gl_MaxTessControlTotalOutputComponents - 2476, // gl_MaxTessControlImageUniforms - 2479, // gl_MaxTessControlAtomicCounters - 2482, // gl_MaxTessControlAtomicCounterBuffers - 2485, // gl_MaxTessPatchComponents - 2488, // gl_MaxPatchVertices - 2491, // gl_MaxTessGenLevel - 2494, // gl_MaxTessEvaluationInputComponents - 2497, // gl_MaxTessEvaluationOutputComponents - 2500, // gl_MaxTessEvaluationTextureImageUnits - 2503, // gl_MaxTessEvaluationUniformComponents - 2506, // gl_MaxTessEvaluationImageUniforms - 2509, // gl_MaxTessEvaluationAtomicCounters - 2512, // gl_MaxTessEvaluationAtomicCounterBuffers - 2515, // gl_MaxSamples - 2518, // gl_MaxClipDistances - 2519, // gl_MaxCullDistances - 2520, // gl_MaxCombinedClipAndCullDistances - 2521, // gl_FragCoord - 2523, // gl_FrontFacing - 2525, // gl_PointCoord - 2527, // gl_FragColor - 2529, // gl_FragData - 2531, // gl_FragDepth - 2533, // gl_HelperInvocation - 2535, // gl_SecondaryFragColorEXT - 2536, // gl_SecondaryFragDataEXT - 2537, // gl_FragDepthEXT - 2538, // gl_LastFragData - 2541, // gl_LastFragColor - 2542, // gl_LastFragColorARM - 2543, // gl_PrimitiveID - 2555, // gl_Layer - 2561, // gl_SampleID - 2564, // gl_SamplePosition - 2567, // gl_SampleMaskIn - 2570, // gl_SampleMask - 2573, // gl_CullDistance - 2575, // gl_ClipDistance - 2577, // gl_Position - 2588, // gl_PointSize - 2590, // gl_InstanceID - 2592, // Empty - 2592, // gl_VertexID - 2594, // Empty - 2594, // Empty - 2594, // gl_DrawID - 2595, // gl_BaseVertex - 2596, // gl_BaseInstance - 2597, // angle_BaseVertex - 2598, // angle_BaseInstance - 2599, // gl_NumWorkGroups - 2601, // gl_WorkGroupSize - 2603, // gl_WorkGroupID - 2605, // gl_LocalInvocationID - 2607, // gl_GlobalInvocationID - 2609, // gl_LocalInvocationIndex - 2611, // gl_PrimitiveIDIn - 2614, // gl_InvocationID - 2620, // gl_PerVertex - 2629, // gl_in - 2638, // gl_PatchVerticesIn - 2644, // gl_TessLevelOuter - 2650, // gl_TessLevelInner - 2656, // gl_out - 2662, // gl_TessCoord - 2664, // gl_ViewID_OVR + 1, // radians_10B + 2, // radians_20B + 3, // radians_30B + 4, // degrees_00B + 5, // degrees_10B + 6, // degrees_20B + 7, // degrees_30B + 8, // sin_00B + 9, // sin_10B + 10, // sin_20B + 11, // sin_30B + 12, // cos_00B + 13, // cos_10B + 14, // cos_20B + 15, // cos_30B + 16, // tan_00B + 17, // tan_10B + 18, // tan_20B + 19, // tan_30B + 20, // asin_00B + 21, // asin_10B + 22, // asin_20B + 23, // asin_30B + 24, // acos_00B + 25, // acos_10B + 26, // acos_20B + 27, // acos_30B + 28, // atan_00B00B + 29, // atan_10B10B + 30, // atan_20B20B + 31, // atan_30B30B + 32, // atan_00B + 33, // atan_10B + 34, // atan_20B + 35, // atan_30B + 36, // sinh_00B + 37, // sinh_10B + 38, // sinh_20B + 39, // sinh_30B + 40, // cosh_00B + 41, // cosh_10B + 42, // cosh_20B + 43, // cosh_30B + 44, // tanh_00B + 45, // tanh_10B + 46, // tanh_20B + 47, // tanh_30B + 48, // asinh_00B + 49, // asinh_10B + 50, // asinh_20B + 51, // asinh_30B + 52, // acosh_00B + 53, // acosh_10B + 54, // acosh_20B + 55, // acosh_30B + 56, // atanh_00B + 57, // atanh_10B + 58, // atanh_20B + 59, // atanh_30B + 60, // pow_00B00B + 61, // pow_10B10B + 62, // pow_20B20B + 63, // pow_30B30B + 64, // exp_00B + 65, // exp_10B + 66, // exp_20B + 67, // exp_30B + 68, // log_00B + 69, // log_10B + 70, // log_20B + 71, // log_30B + 72, // exp2_00B + 73, // exp2_10B + 74, // exp2_20B + 75, // exp2_30B + 76, // log2_00B + 77, // log2_10B + 78, // log2_20B + 79, // log2_30B + 80, // sqrt_00B + 81, // sqrt_10B + 82, // sqrt_20B + 83, // sqrt_30B + 84, // inversesqrt_00B + 85, // inversesqrt_10B + 86, // inversesqrt_20B + 87, // inversesqrt_30B + 88, // abs_00B + 89, // abs_10B + 90, // abs_20B + 91, // abs_30B + 92, // abs_00D + 93, // abs_10D + 94, // abs_20D + 95, // abs_30D + 96, // sign_00B + 97, // sign_10B + 98, // sign_20B + 99, // sign_30B + 100, // sign_00D + 101, // sign_10D + 102, // sign_20D + 103, // sign_30D + 104, // floor_00B + 105, // floor_10B + 106, // floor_20B + 107, // floor_30B + 108, // trunc_00B + 109, // trunc_10B + 110, // trunc_20B + 111, // trunc_30B + 112, // round_00B + 113, // round_10B + 114, // round_20B + 115, // round_30B + 116, // roundEven_00B + 117, // roundEven_10B + 118, // roundEven_20B + 119, // roundEven_30B + 120, // ceil_00B + 121, // ceil_10B + 122, // ceil_20B + 123, // ceil_30B + 124, // fract_00B + 125, // fract_10B + 126, // fract_20B + 127, // fract_30B + 128, // mod_00B00B + 129, // mod_10B00B + 130, // mod_20B00B + 131, // mod_30B00B + 132, // mod_10B10B + 133, // mod_20B20B + 134, // mod_30B30B + 135, // min_00B00B + 136, // min_10B00B + 137, // min_20B00B + 138, // min_30B00B + 139, // min_10B10B + 140, // min_20B20B + 141, // min_30B30B + 142, // min_00D00D + 143, // min_10D10D + 144, // min_20D20D + 145, // min_30D30D + 146, // min_10D00D + 147, // min_20D00D + 148, // min_30D00D + 149, // min_00E00E + 150, // min_10E10E + 151, // min_20E20E + 152, // min_30E30E + 153, // min_10E00E + 154, // min_20E00E + 155, // min_30E00E + 156, // max_00B00B + 157, // max_10B00B + 158, // max_20B00B + 159, // max_30B00B + 160, // max_10B10B + 161, // max_20B20B + 162, // max_30B30B + 163, // max_00D00D + 164, // max_10D10D + 165, // max_20D20D + 166, // max_30D30D + 167, // max_10D00D + 168, // max_20D00D + 169, // max_30D00D + 170, // max_00E00E + 171, // max_10E10E + 172, // max_20E20E + 173, // max_30E30E + 174, // max_10E00E + 175, // max_20E00E + 176, // max_30E00E + 177, // clamp_00B00B00B + 178, // clamp_10B00B00B + 179, // clamp_20B00B00B + 180, // clamp_30B00B00B + 181, // clamp_10B10B10B + 182, // clamp_20B20B20B + 183, // clamp_30B30B30B + 184, // clamp_00D00D00D + 185, // clamp_10D00D00D + 186, // clamp_20D00D00D + 187, // clamp_30D00D00D + 188, // clamp_10D10D10D + 189, // clamp_20D20D20D + 190, // clamp_30D30D30D + 191, // clamp_00E00E00E + 192, // clamp_10E00E00E + 193, // clamp_20E00E00E + 194, // clamp_30E00E00E + 195, // clamp_10E10E10E + 196, // clamp_20E20E20E + 197, // clamp_30E30E30E + 198, // mix_00B00B00B + 199, // mix_10B10B00B + 200, // mix_20B20B00B + 201, // mix_30B30B00B + 202, // mix_10B10B10B + 203, // mix_20B20B20B + 204, // mix_30B30B30B + 205, // mix_00B00B00F + 206, // mix_10B10B10F + 207, // mix_20B20B20F + 208, // mix_30B30B30F + 209, // mix_00D00D00F + 210, // mix_10D10D10F + 211, // mix_20D20D20F + 212, // mix_30D30D30F + 213, // mix_00E00E00F + 214, // mix_10E10E10F + 215, // mix_20E20E20F + 216, // mix_30E30E30F + 217, // mix_00F00F00F + 218, // mix_10F10F10F + 219, // mix_20F20F20F + 220, // mix_30F30F30F + 221, // step_00B00B + 222, // step_10B10B + 223, // step_20B20B + 224, // step_30B30B + 225, // step_00B10B + 226, // step_00B20B + 227, // step_00B30B + 228, // smoothstep_00B00B00B + 229, // smoothstep_10B10B10B + 230, // smoothstep_20B20B20B + 231, // smoothstep_30B30B30B + 232, // smoothstep_00B00B10B + 233, // smoothstep_00B00B20B + 234, // smoothstep_00B00B30B + 235, // modf_00B00B + 236, // modf_10B10B + 237, // modf_20B20B + 238, // modf_30B30B + 239, // isnan_00B + 240, // isnan_10B + 241, // isnan_20B + 242, // isnan_30B + 243, // isinf_00B + 244, // isinf_10B + 245, // isinf_20B + 246, // isinf_30B + 247, // floatBitsToInt_00B + 248, // floatBitsToInt_10B + 249, // floatBitsToInt_20B + 250, // floatBitsToInt_30B + 251, // floatBitsToUint_00B + 252, // floatBitsToUint_10B + 253, // floatBitsToUint_20B + 254, // floatBitsToUint_30B + 255, // intBitsToFloat_00D + 256, // intBitsToFloat_10D + 257, // intBitsToFloat_20D + 258, // intBitsToFloat_30D + 259, // uintBitsToFloat_00E + 260, // uintBitsToFloat_10E + 261, // uintBitsToFloat_20E + 262, // uintBitsToFloat_30E + 263, // fma_00B00B00B + 265, // fma_10B10B10B + 267, // fma_20B20B20B + 269, // fma_30B30B30B + 271, // frexp_00B00D + 272, // frexp_10B10D + 273, // frexp_20B20D + 274, // frexp_30B30D + 275, // ldexp_00B00D + 276, // ldexp_10B10D + 277, // ldexp_20B20D + 278, // ldexp_30B30D + 279, // packSnorm2x16_10B + 280, // packHalf2x16_10B + 281, // unpackSnorm2x16_00E + 282, // unpackHalf2x16_00E + 283, // packUnorm2x16_10B + 284, // unpackUnorm2x16_00E + 285, // packUnorm4x8_30B + 286, // packSnorm4x8_30B + 287, // unpackUnorm4x8_00E + 288, // unpackSnorm4x8_00E + 289, // length_00B + 290, // length_10B + 291, // length_20B + 292, // length_30B + 293, // distance_00B00B + 294, // distance_10B10B + 295, // distance_20B20B + 296, // distance_30B30B + 297, // dot_00B00B + 298, // dot_10B10B + 299, // dot_20B20B + 300, // dot_30B30B + 301, // cross_20B20B + 302, // normalize_00B + 303, // normalize_10B + 304, // normalize_20B + 305, // normalize_30B + 306, // faceforward_00B00B00B + 307, // faceforward_10B10B10B + 308, // faceforward_20B20B20B + 309, // faceforward_30B30B30B + 310, // reflect_00B00B + 311, // reflect_10B10B + 312, // reflect_20B20B + 313, // reflect_30B30B + 314, // refract_00B00B00B + 315, // refract_10B10B00B + 316, // refract_20B20B00B + 317, // refract_30B30B00B + 318, // matrixCompMult_50B50B + 319, // matrixCompMult_A0BA0B + 320, // matrixCompMult_F0BF0B + 321, // matrixCompMult_90B90B + 322, // matrixCompMult_60B60B + 323, // matrixCompMult_D0BD0B + 324, // matrixCompMult_70B70B + 325, // matrixCompMult_E0BE0B + 326, // matrixCompMult_B0BB0B + 327, // outerProduct_10B10B + 328, // outerProduct_20B20B + 329, // outerProduct_30B30B + 330, // outerProduct_20B10B + 331, // outerProduct_10B20B + 332, // outerProduct_30B10B + 333, // outerProduct_10B30B + 334, // outerProduct_30B20B + 335, // outerProduct_20B30B + 336, // transpose_50B + 337, // transpose_A0B + 338, // transpose_F0B + 339, // transpose_60B + 340, // transpose_90B + 341, // transpose_70B + 342, // transpose_D0B + 343, // transpose_B0B + 344, // transpose_E0B + 345, // determinant_50B + 346, // determinant_A0B + 347, // determinant_F0B + 348, // inverse_50B + 349, // inverse_A0B + 350, // inverse_F0B + 351, // lessThan_10B10B + 352, // lessThan_20B20B + 353, // lessThan_30B30B + 354, // lessThan_10D10D + 355, // lessThan_20D20D + 356, // lessThan_30D30D + 357, // lessThan_10E10E + 358, // lessThan_20E20E + 359, // lessThan_30E30E + 360, // lessThanEqual_10B10B + 361, // lessThanEqual_20B20B + 362, // lessThanEqual_30B30B + 363, // lessThanEqual_10D10D + 364, // lessThanEqual_20D20D + 365, // lessThanEqual_30D30D + 366, // lessThanEqual_10E10E + 367, // lessThanEqual_20E20E + 368, // lessThanEqual_30E30E + 369, // greaterThan_10B10B + 370, // greaterThan_20B20B + 371, // greaterThan_30B30B + 372, // greaterThan_10D10D + 373, // greaterThan_20D20D + 374, // greaterThan_30D30D + 375, // greaterThan_10E10E + 376, // greaterThan_20E20E + 377, // greaterThan_30E30E + 378, // greaterThanEqual_10B10B + 379, // greaterThanEqual_20B20B + 380, // greaterThanEqual_30B30B + 381, // greaterThanEqual_10D10D + 382, // greaterThanEqual_20D20D + 383, // greaterThanEqual_30D30D + 384, // greaterThanEqual_10E10E + 385, // greaterThanEqual_20E20E + 386, // greaterThanEqual_30E30E + 387, // equal_10B10B + 388, // equal_20B20B + 389, // equal_30B30B + 390, // equal_10D10D + 391, // equal_20D20D + 392, // equal_30D30D + 393, // equal_10E10E + 394, // equal_20E20E + 395, // equal_30E30E + 396, // equal_10F10F + 397, // equal_20F20F + 398, // equal_30F30F + 399, // notEqual_10B10B + 400, // notEqual_20B20B + 401, // notEqual_30B30B + 402, // notEqual_10D10D + 403, // notEqual_20D20D + 404, // notEqual_30D30D + 405, // notEqual_10E10E + 406, // notEqual_20E20E + 407, // notEqual_30E30E + 408, // notEqual_10F10F + 409, // notEqual_20F20F + 410, // notEqual_30F30F + 411, // any_10F + 412, // any_20F + 413, // any_30F + 414, // all_10F + 415, // all_20F + 416, // all_30F + 417, // not_10F + 418, // not_20F + 419, // not_30F + 420, // bitfieldExtract_00D00D00D + 421, // bitfieldExtract_10D00D00D + 422, // bitfieldExtract_20D00D00D + 423, // bitfieldExtract_30D00D00D + 424, // bitfieldExtract_00E00D00D + 425, // bitfieldExtract_10E00D00D + 426, // bitfieldExtract_20E00D00D + 427, // bitfieldExtract_30E00D00D + 428, // bitfieldInsert_00D00D00D00D + 429, // bitfieldInsert_10D10D00D00D + 430, // bitfieldInsert_20D20D00D00D + 431, // bitfieldInsert_30D30D00D00D + 432, // bitfieldInsert_00E00E00D00D + 433, // bitfieldInsert_10E10E00D00D + 434, // bitfieldInsert_20E20E00D00D + 435, // bitfieldInsert_30E30E00D00D + 436, // bitfieldReverse_00D + 437, // bitfieldReverse_10D + 438, // bitfieldReverse_20D + 439, // bitfieldReverse_30D + 440, // bitfieldReverse_00E + 441, // bitfieldReverse_10E + 442, // bitfieldReverse_20E + 443, // bitfieldReverse_30E + 444, // bitCount_00D + 445, // bitCount_10D + 446, // bitCount_20D + 447, // bitCount_30D + 448, // bitCount_00E + 449, // bitCount_10E + 450, // bitCount_20E + 451, // bitCount_30E + 452, // findLSB_00D + 453, // findLSB_10D + 454, // findLSB_20D + 455, // findLSB_30D + 456, // findLSB_00E + 457, // findLSB_10E + 458, // findLSB_20E + 459, // findLSB_30E + 460, // findMSB_00D + 461, // findMSB_10D + 462, // findMSB_20D + 463, // findMSB_30D + 464, // findMSB_00E + 465, // findMSB_10E + 466, // findMSB_20E + 467, // findMSB_30E + 468, // uaddCarry_00E00E00E + 469, // uaddCarry_10E10E10E + 470, // uaddCarry_20E20E20E + 471, // uaddCarry_30E30E30E + 472, // usubBorrow_00E00E00E + 473, // usubBorrow_10E10E10E + 474, // usubBorrow_20E20E20E + 475, // usubBorrow_30E30E30E + 476, // umulExtended_00E00E00E00E + 477, // umulExtended_10E10E10E10E + 478, // umulExtended_20E20E20E20E + 479, // umulExtended_30E30E30E30E + 480, // imulExtended_00D00D00D00D + 481, // imulExtended_10D10D10D10D + 482, // imulExtended_20D20D20D20D + 483, // imulExtended_30D30D30D30D + 484, // texture2D_00I10B + 485, // texture2DProj_00I20B + 486, // texture2DProj_00I30B + 487, // textureCube_00K20B + 488, // texture3D_00J20B + 489, // texture3DProj_00J30B + 490, // shadow2DEXT_00d20B + 491, // shadow2DProjEXT_00d30B + 492, // texture2D_00M10B + 494, // texture2DProj_00M20B + 496, // texture2DProj_00M30B + 498, // texture2DRect_00O10B + 499, // texture2DRectProj_00O20B + 500, // texture2DRectProj_00O30B + 501, // texture2DGradEXT_00I10B10B10B + 502, // texture2DProjGradEXT_00I20B10B10B + 503, // texture2DProjGradEXT_00I30B10B10B + 504, // textureCubeGradEXT_00K20B20B20B + 505, // textureVideoWEBGL_00y10B + 506, // texture2D_00I10B00B + 507, // texture2DProj_00I20B00B + 508, // texture2DProj_00I30B00B + 509, // textureCube_00K20B00B + 510, // texture3D_00J20B00B + 511, // texture3DProj_00J30B00B + 512, // texture3DLod_00J20B00B + 513, // texture3DProjLod_00J30B00B + 514, // texture2DLod_00I10B00B + 515, // texture2DProjLod_00I20B00B + 516, // texture2DProjLod_00I30B00B + 517, // textureCubeLod_00K20B00B + 518, // texture2DLodEXT_00I10B00B + 519, // texture2DProjLodEXT_00I20B00B + 520, // texture2DProjLodEXT_00I30B00B + 521, // textureCubeLodEXT_00K20B00B + 522, // texture_00I10B + 523, // texture_00R10B + 524, // texture_00X10B + 525, // texture_00J20B + 526, // texture_00S20B + 527, // texture_00Y20B + 528, // texture_00K20B + 529, // texture_00T20B + 530, // texture_00Z20B + 531, // texture_00L20B + 532, // texture_00U20B + 533, // texture_00a20B + 534, // texture_00d20B + 535, // texture_00e30B + 536, // texture_00f30B + 537, // texture_00k30B + 540, // texture_00s30B + 543, // texture_00x30B + 546, // texture_00l30B00B + 549, // texture_00M10B + 550, // texture_00N10B + 551, // texture_00O10B + 552, // texture_00y10B + 553, // textureProj_00I20B + 554, // textureProj_00R20B + 555, // textureProj_00X20B + 556, // textureProj_00I30B + 557, // textureProj_00R30B + 558, // textureProj_00X30B + 559, // textureProj_00J30B + 560, // textureProj_00S30B + 561, // textureProj_00Y30B + 562, // textureProj_00d30B + 563, // textureProj_00M20B + 564, // textureProj_00M30B + 565, // textureProj_00N20B + 566, // textureProj_00N30B + 567, // textureProj_00O20B + 568, // textureProj_00O30B + 569, // textureLod_00I10B00B + 570, // textureLod_00R10B00B + 571, // textureLod_00X10B00B + 572, // textureLod_00J20B00B + 573, // textureLod_00S20B00B + 574, // textureLod_00Y20B00B + 575, // textureLod_00K20B00B + 576, // textureLod_00T20B00B + 577, // textureLod_00Z20B00B + 578, // textureLod_00L20B00B + 579, // textureLod_00U20B00B + 580, // textureLod_00a20B00B + 581, // textureLod_00d20B00B + 582, // textureLod_00k30B00B + 585, // textureLod_00s30B00B + 588, // textureLod_00x30B00B + 591, // textureSize_00I00D + 592, // textureSize_00R00D + 593, // textureSize_00X00D + 594, // textureSize_00J00D + 595, // textureSize_00S00D + 596, // textureSize_00Y00D + 597, // textureSize_00K00D + 598, // textureSize_00T00D + 599, // textureSize_00Z00D + 600, // textureSize_00L00D + 601, // textureSize_00U00D + 602, // textureSize_00a00D + 603, // textureSize_00d00D + 604, // textureSize_00e00D + 605, // textureSize_00f00D + 606, // textureSize_00k00D + 609, // textureSize_00s00D + 612, // textureSize_00x00D + 615, // textureSize_00l00D + 618, // textureSize_00j + 621, // textureSize_00r + 624, // textureSize_00w + 627, // textureSize_00P + 629, // textureSize_00V + 631, // textureSize_00b + 633, // textureSize_00Q + 634, // textureSize_00W + 635, // textureSize_00c + 636, // textureSize_00M00D + 637, // textureSize_00N00D + 638, // textureProjLod_00I20B00B + 639, // textureProjLod_00R20B00B + 640, // textureProjLod_00X20B00B + 641, // textureProjLod_00I30B00B + 642, // textureProjLod_00R30B00B + 643, // textureProjLod_00X30B00B + 644, // textureProjLod_00J30B00B + 645, // textureProjLod_00S30B00B + 646, // textureProjLod_00Y30B00B + 647, // textureProjLod_00d30B00B + 648, // texelFetch_00I10D00D + 649, // texelFetch_00R10D00D + 650, // texelFetch_00X10D00D + 651, // texelFetch_00J20D00D + 652, // texelFetch_00S20D00D + 653, // texelFetch_00Y20D00D + 654, // texelFetch_00L20D00D + 655, // texelFetch_00U20D00D + 656, // texelFetch_00a20D00D + 657, // texelFetch_00j00D + 660, // texelFetch_00r00D + 663, // texelFetch_00w00D + 666, // texelFetch_00P10D00D + 668, // texelFetch_00V10D00D + 670, // texelFetch_00b10D00D + 672, // texelFetch_00Q20D00D + 673, // texelFetch_00W20D00D + 674, // texelFetch_00c20D00D + 675, // texelFetch_00M10D00D + 676, // texelFetch_00N10D00D + 677, // textureGrad_00I10B10B10B + 678, // textureGrad_00R10B10B10B + 679, // textureGrad_00X10B10B10B + 680, // textureGrad_00J20B20B20B + 681, // textureGrad_00S20B20B20B + 682, // textureGrad_00Y20B20B20B + 683, // textureGrad_00K20B20B20B + 684, // textureGrad_00T20B20B20B + 685, // textureGrad_00Z20B20B20B + 686, // textureGrad_00d20B10B10B + 687, // textureGrad_00e30B20B20B + 688, // textureGrad_00L20B10B10B + 689, // textureGrad_00U20B10B10B + 690, // textureGrad_00a20B10B10B + 691, // textureGrad_00f30B10B10B + 692, // textureGrad_00k30B20B20B + 695, // textureGrad_00s30B20B20B + 698, // textureGrad_00x30B20B20B + 701, // textureProjGrad_00I20B10B10B + 702, // textureProjGrad_00R20B10B10B + 703, // textureProjGrad_00X20B10B10B + 704, // textureProjGrad_00I30B10B10B + 705, // textureProjGrad_00R30B10B10B + 706, // textureProjGrad_00X30B10B10B + 707, // textureProjGrad_00J30B20B20B + 708, // textureProjGrad_00S30B20B20B + 709, // textureProjGrad_00Y30B20B20B + 710, // textureProjGrad_00d30B10B10B + 711, // texture_00I10B00B + 712, // texture_00R10B00B + 713, // texture_00X10B00B + 714, // texture_00J20B00B + 715, // texture_00S20B00B + 716, // texture_00Y20B00B + 717, // texture_00K20B00B + 718, // texture_00T20B00B + 719, // texture_00Z20B00B + 720, // texture_00L20B00B + 721, // texture_00U20B00B + 722, // texture_00a20B00B + 723, // textureProj_00I20B00B + 724, // textureProj_00R20B00B + 725, // textureProj_00X20B00B + 726, // textureProj_00I30B00B + 727, // textureProj_00R30B00B + 728, // textureProj_00X30B00B + 729, // textureProj_00J30B00B + 730, // textureProj_00S30B00B + 731, // textureProj_00Y30B00B + 732, // texture_00d20B00B + 733, // texture_00e30B00B + 734, // textureProj_00d30B00B + 735, // texture_00k30B00B + 738, // texture_00s30B00B + 741, // texture_00x30B00B + 744, // texture_00M10B00B + 745, // textureProj_00M20B00B + 746, // textureProj_00M30B00B + 747, // texture_00N10B00B + 748, // textureProj_00N20B00B + 749, // textureProj_00N30B00B + 750, // textureOffset_00I10B10D + 751, // textureOffset_00R10B10D + 752, // textureOffset_00X10B10D + 753, // textureOffset_00J20B20D + 754, // textureOffset_00S20B20D + 755, // textureOffset_00Y20B20D + 756, // textureOffset_00d20B10D + 757, // textureOffset_00L20B10D + 758, // textureOffset_00U20B10D + 759, // textureOffset_00a20B10D + 760, // textureProjOffset_00I20B10D + 761, // textureProjOffset_00R20B10D + 762, // textureProjOffset_00X20B10D + 763, // textureProjOffset_00I30B10D + 764, // textureProjOffset_00R30B10D + 765, // textureProjOffset_00X30B10D + 766, // textureProjOffset_00J30B20D + 767, // textureProjOffset_00S30B20D + 768, // textureProjOffset_00Y30B20D + 769, // textureProjOffset_00d30B10D + 770, // textureLodOffset_00I10B00B10D + 771, // textureLodOffset_00R10B00B10D + 772, // textureLodOffset_00X10B00B10D + 773, // textureLodOffset_00J20B00B20D + 774, // textureLodOffset_00S20B00B20D + 775, // textureLodOffset_00Y20B00B20D + 776, // textureLodOffset_00d20B00B10D + 777, // textureLodOffset_00L20B00B10D + 778, // textureLodOffset_00U20B00B10D + 779, // textureLodOffset_00a20B00B10D + 780, // textureProjLodOffset_00I20B00B10D + 781, // textureProjLodOffset_00R20B00B10D + 782, // textureProjLodOffset_00X20B00B10D + 783, // textureProjLodOffset_00I30B00B10D + 784, // textureProjLodOffset_00R30B00B10D + 785, // textureProjLodOffset_00X30B00B10D + 786, // textureProjLodOffset_00J30B00B20D + 787, // textureProjLodOffset_00S30B00B20D + 788, // textureProjLodOffset_00Y30B00B20D + 789, // textureProjLodOffset_00d30B00B10D + 790, // texelFetchOffset_00I10D00D10D + 791, // texelFetchOffset_00R10D00D10D + 792, // texelFetchOffset_00X10D00D10D + 793, // texelFetchOffset_00J20D00D20D + 794, // texelFetchOffset_00S20D00D20D + 795, // texelFetchOffset_00Y20D00D20D + 796, // texelFetchOffset_00L20D00D10D + 797, // texelFetchOffset_00U20D00D10D + 798, // texelFetchOffset_00a20D00D10D + 799, // textureGradOffset_00I10B10B10B10D + 800, // textureGradOffset_00R10B10B10B10D + 801, // textureGradOffset_00X10B10B10B10D + 802, // textureGradOffset_00J20B20B20B20D + 803, // textureGradOffset_00S20B20B20B20D + 804, // textureGradOffset_00Y20B20B20B20D + 805, // textureGradOffset_00d20B10B10B10D + 806, // textureGradOffset_00L20B10B10B10D + 807, // textureGradOffset_00U20B10B10B10D + 808, // textureGradOffset_00a20B10B10B10D + 809, // textureGradOffset_00f30B10B10B10D + 810, // textureProjGradOffset_00I20B10B10B10D + 811, // textureProjGradOffset_00R20B10B10B10D + 812, // textureProjGradOffset_00X20B10B10B10D + 813, // textureProjGradOffset_00I30B10B10B10D + 814, // textureProjGradOffset_00R30B10B10B10D + 815, // textureProjGradOffset_00X30B10B10B10D + 816, // textureProjGradOffset_00J30B20B20B20D + 817, // textureProjGradOffset_00S30B20B20B20D + 818, // textureProjGradOffset_00Y30B20B20B20D + 819, // textureProjGradOffset_00d30B10B10B10D + 820, // textureOffset_00I10B10D00B + 821, // textureOffset_00R10B10D00B + 822, // textureOffset_00X10B10D00B + 823, // textureOffset_00J20B20D00B + 824, // textureOffset_00S20B20D00B + 825, // textureOffset_00Y20B20D00B + 826, // textureOffset_00d20B10D00B + 827, // textureOffset_00L20B10D00B + 828, // textureOffset_00U20B10D00B + 829, // textureOffset_00a20B10D00B + 830, // textureProjOffset_00I20B10D00B + 831, // textureProjOffset_00R20B10D00B + 832, // textureProjOffset_00X20B10D00B + 833, // textureProjOffset_00I30B10D00B + 834, // textureProjOffset_00R30B10D00B + 835, // textureProjOffset_00X30B10D00B + 836, // textureProjOffset_00J30B20D00B + 837, // textureProjOffset_00S30B20D00B + 838, // textureProjOffset_00Y30B20D00B + 839, // textureProjOffset_00d30B10D00B + 840, // textureGather_00I10B + 841, // textureGather_00R10B + 842, // textureGather_00X10B + 843, // textureGather_00I10B00D + 844, // textureGather_00R10B00D + 845, // textureGather_00X10B00D + 846, // textureGather_00L20B + 847, // textureGather_00U20B + 848, // textureGather_00a20B + 849, // textureGather_00L20B00D + 850, // textureGather_00U20B00D + 851, // textureGather_00a20B00D + 852, // textureGather_00K20B + 853, // textureGather_00T20B + 854, // textureGather_00Z20B + 855, // textureGather_00K20B00D + 856, // textureGather_00T20B00D + 857, // textureGather_00Z20B00D + 858, // textureGather_00k30B + 861, // textureGather_00s30B + 864, // textureGather_00x30B + 867, // textureGather_00k30B00D + 870, // textureGather_00s30B00D + 873, // textureGather_00x30B00D + 876, // textureGather_00l30B00B + 879, // textureGather_00d10B + 880, // textureGather_00d10B00B + 881, // textureGather_00f20B + 882, // textureGather_00f20B00B + 883, // textureGather_00e20B + 884, // textureGather_00e20B00B + 885, // textureGatherOffset_00I10B10D + 886, // textureGatherOffset_00R10B10D + 887, // textureGatherOffset_00X10B10D + 888, // textureGatherOffset_00L20B10D + 889, // textureGatherOffset_00U20B10D + 890, // textureGatherOffset_00a20B10D + 891, // textureGatherOffset_00d10B00B10D + 892, // textureGatherOffset_00f20B00B10D + 893, // textureGatherOffset_00I10B10D00D + 894, // textureGatherOffset_00R10B10D00D + 895, // textureGatherOffset_00X10B10D00D + 896, // textureGatherOffset_00L20B10D00D + 897, // textureGatherOffset_00U20B10D00D + 898, // textureGatherOffset_00a20B10D00D + 899, // textureGatherOffsets_00I10B10Dx4 + 901, // textureGatherOffsets_00R10B10Dx4 + 903, // textureGatherOffsets_00X10B10Dx4 + 905, // textureGatherOffsets_00L20B10Dx4 + 907, // textureGatherOffsets_00U20B10Dx4 + 909, // textureGatherOffsets_00a20B10Dx4 + 911, // textureGatherOffsets_00d10B00B10Dx4 + 913, // textureGatherOffsets_00f20B00B10Dx4 + 915, // textureGatherOffsets_00I10B10Dx400D + 917, // textureGatherOffsets_00R10B10Dx400D + 919, // textureGatherOffsets_00X10B10Dx400D + 921, // textureGatherOffsets_00L20B10Dx400D + 923, // textureGatherOffsets_00U20B10Dx400D + 925, // textureGatherOffsets_00a20B10Dx400D + 927, // rgb_2_yuv_20B00H + 928, // yuv_2_rgb_20B00H + 929, // dFdx_00B + 931, // dFdx_10B + 933, // dFdx_20B + 935, // dFdx_30B + 937, // dFdy_00B + 939, // dFdy_10B + 941, // dFdy_20B + 943, // dFdy_30B + 945, // fwidth_00B + 947, // fwidth_10B + 949, // fwidth_20B + 951, // fwidth_30B + 953, // interpolateAtCentroid_00B + 955, // interpolateAtCentroid_10B + 957, // interpolateAtCentroid_20B + 959, // interpolateAtCentroid_30B + 961, // interpolateAtSample_00B00D + 963, // interpolateAtSample_10B00D + 965, // interpolateAtSample_20B00D + 967, // interpolateAtSample_30B00D + 969, // interpolateAtOffset_00B10B + 971, // interpolateAtOffset_10B10B + 973, // interpolateAtOffset_20B10B + 975, // interpolateAtOffset_30B10B + 977, // atomicCounter_00G + 978, // atomicCounterIncrement_00G + 979, // atomicCounterDecrement_00G + 980, // atomicAdd_00E00E + 981, // atomicAdd_00D00D + 982, // atomicMin_00E00E + 983, // atomicMin_00D00D + 984, // atomicMax_00E00E + 985, // atomicMax_00D00D + 986, // atomicAnd_00E00E + 987, // atomicAnd_00D00D + 988, // atomicOr_00E00E + 989, // atomicOr_00D00D + 990, // atomicXor_00E00E + 991, // atomicXor_00D00D + 992, // atomicExchange_00E00E + 993, // atomicExchange_00D00D + 994, // atomicCompSwap_00E00E00E + 995, // atomicCompSwap_00D00D00D + 996, // imageSize_00z + 997, // imageSize_01K + 998, // imageSize_01V + 999, // imageSize_01A + 1000, // imageSize_01L + 1001, // imageSize_01W + 1002, // imageSize_01B + 1003, // imageSize_01M + 1004, // imageSize_01X + 1005, // imageSize_01C + 1006, // imageSize_01N + 1007, // imageSize_01Y + 1008, // imageSize_01H + 1011, // imageSize_01S + 1014, // imageSize_01d + 1017, // imageSize_01J + 1020, // imageSize_01U + 1023, // imageSize_01f + 1026, // imageStore_00z10D30B + 1027, // imageStore_01K10D30D + 1028, // imageStore_01V10D30E + 1029, // imageStore_01A20D30B + 1030, // imageStore_01L20D30D + 1031, // imageStore_01W20D30E + 1032, // imageStore_01B20D30B + 1033, // imageStore_01M20D30D + 1034, // imageStore_01X20D30E + 1035, // imageStore_01C20D30B + 1036, // imageStore_01N20D30D + 1037, // imageStore_01Y20D30E + 1038, // imageStore_01H20D30B + 1041, // imageStore_01S20D30D + 1044, // imageStore_01d20D30E + 1047, // imageStore_01J00D30B + 1050, // imageStore_01U00D30D + 1053, // imageStore_01f00D30E + 1056, // imageLoad_00z10D + 1057, // imageLoad_01K10D + 1058, // imageLoad_01V10D + 1059, // imageLoad_01A20D + 1060, // imageLoad_01L20D + 1061, // imageLoad_01W20D + 1062, // imageLoad_01B20D + 1063, // imageLoad_01M20D + 1064, // imageLoad_01X20D + 1065, // imageLoad_01C20D + 1066, // imageLoad_01N20D + 1067, // imageLoad_01Y20D + 1068, // imageLoad_01H20D + 1071, // imageLoad_01S20D + 1074, // imageLoad_01d20D + 1077, // imageLoad_01J00D + 1080, // imageLoad_01U00D + 1083, // imageLoad_01f00D + 1086, // imageAtomicAdd_00z10D00E + 1087, // imageAtomicAdd_01K10D00E + 1088, // imageAtomicAdd_01V10D00E + 1089, // imageAtomicAdd_01A20D00E + 1090, // imageAtomicAdd_01L20D00E + 1091, // imageAtomicAdd_01W20D00E + 1092, // imageAtomicAdd_01C20D00E + 1093, // imageAtomicAdd_01N20D00E + 1094, // imageAtomicAdd_01Y20D00E + 1095, // imageAtomicAdd_01J00D00E + 1096, // imageAtomicAdd_01U00D00E + 1097, // imageAtomicAdd_01f00D00E + 1098, // imageAtomicAdd_01B20D00E + 1099, // imageAtomicAdd_01M20D00E + 1100, // imageAtomicAdd_01X20D00E + 1101, // imageAtomicAdd_01H20D00E + 1102, // imageAtomicAdd_01S20D00E + 1103, // imageAtomicAdd_01d20D00E + 1104, // imageAtomicAdd_01D00D00E + 1105, // imageAtomicAdd_01O00D00E + 1106, // imageAtomicAdd_01Z00D00E + 1107, // imageAtomicAdd_01E10D00E + 1108, // imageAtomicAdd_01P10D00E + 1109, // imageAtomicAdd_01a10D00E + 1110, // imageAtomicAdd_01I10D00E + 1111, // imageAtomicAdd_01T10D00E + 1112, // imageAtomicAdd_01e10D00E + 1113, // imageAtomicAdd_01F10D00D00E + 1114, // imageAtomicAdd_01Q10D00D00E + 1115, // imageAtomicAdd_01b10D00D00E + 1116, // imageAtomicAdd_01G20D00D00E + 1117, // imageAtomicAdd_01R20D00D00E + 1118, // imageAtomicAdd_01c20D00D00E + 1119, // imageAtomicAdd_00z10D00D + 1120, // imageAtomicAdd_01K10D00D + 1121, // imageAtomicAdd_01V10D00D + 1122, // imageAtomicAdd_01A20D00D + 1123, // imageAtomicAdd_01L20D00D + 1124, // imageAtomicAdd_01W20D00D + 1125, // imageAtomicAdd_01C20D00D + 1126, // imageAtomicAdd_01N20D00D + 1127, // imageAtomicAdd_01Y20D00D + 1128, // imageAtomicAdd_01J00D00D + 1129, // imageAtomicAdd_01U00D00D + 1130, // imageAtomicAdd_01f00D00D + 1131, // imageAtomicAdd_01B20D00D + 1132, // imageAtomicAdd_01M20D00D + 1133, // imageAtomicAdd_01X20D00D + 1134, // imageAtomicAdd_01H20D00D + 1135, // imageAtomicAdd_01S20D00D + 1136, // imageAtomicAdd_01d20D00D + 1137, // imageAtomicAdd_01D00D00D + 1138, // imageAtomicAdd_01O00D00D + 1139, // imageAtomicAdd_01Z00D00D + 1140, // imageAtomicAdd_01E10D00D + 1141, // imageAtomicAdd_01P10D00D + 1142, // imageAtomicAdd_01a10D00D + 1143, // imageAtomicAdd_01I10D00D + 1144, // imageAtomicAdd_01T10D00D + 1145, // imageAtomicAdd_01e10D00D + 1146, // imageAtomicAdd_01F10D00D00D + 1147, // imageAtomicAdd_01Q10D00D00D + 1148, // imageAtomicAdd_01b10D00D00D + 1149, // imageAtomicAdd_01G20D00D00D + 1150, // imageAtomicAdd_01R20D00D00D + 1151, // imageAtomicAdd_01c20D00D00D + 1152, // imageAtomicMin_00z10D00E + 1153, // imageAtomicMin_01K10D00E + 1154, // imageAtomicMin_01V10D00E + 1155, // imageAtomicMin_01A20D00E + 1156, // imageAtomicMin_01L20D00E + 1157, // imageAtomicMin_01W20D00E + 1158, // imageAtomicMin_01C20D00E + 1159, // imageAtomicMin_01N20D00E + 1160, // imageAtomicMin_01Y20D00E + 1161, // imageAtomicMin_01J00D00E + 1162, // imageAtomicMin_01U00D00E + 1163, // imageAtomicMin_01f00D00E + 1164, // imageAtomicMin_01B20D00E + 1165, // imageAtomicMin_01M20D00E + 1166, // imageAtomicMin_01X20D00E + 1167, // imageAtomicMin_01H20D00E + 1168, // imageAtomicMin_01S20D00E + 1169, // imageAtomicMin_01d20D00E + 1170, // imageAtomicMin_01D00D00E + 1171, // imageAtomicMin_01O00D00E + 1172, // imageAtomicMin_01Z00D00E + 1173, // imageAtomicMin_01E10D00E + 1174, // imageAtomicMin_01P10D00E + 1175, // imageAtomicMin_01a10D00E + 1176, // imageAtomicMin_01I10D00E + 1177, // imageAtomicMin_01T10D00E + 1178, // imageAtomicMin_01e10D00E + 1179, // imageAtomicMin_01F10D00D00E + 1180, // imageAtomicMin_01Q10D00D00E + 1181, // imageAtomicMin_01b10D00D00E + 1182, // imageAtomicMin_01G20D00D00E + 1183, // imageAtomicMin_01R20D00D00E + 1184, // imageAtomicMin_01c20D00D00E + 1185, // imageAtomicMin_00z10D00D + 1186, // imageAtomicMin_01K10D00D + 1187, // imageAtomicMin_01V10D00D + 1188, // imageAtomicMin_01A20D00D + 1189, // imageAtomicMin_01L20D00D + 1190, // imageAtomicMin_01W20D00D + 1191, // imageAtomicMin_01C20D00D + 1192, // imageAtomicMin_01N20D00D + 1193, // imageAtomicMin_01Y20D00D + 1194, // imageAtomicMin_01J00D00D + 1195, // imageAtomicMin_01U00D00D + 1196, // imageAtomicMin_01f00D00D + 1197, // imageAtomicMin_01B20D00D + 1198, // imageAtomicMin_01M20D00D + 1199, // imageAtomicMin_01X20D00D + 1200, // imageAtomicMin_01H20D00D + 1201, // imageAtomicMin_01S20D00D + 1202, // imageAtomicMin_01d20D00D + 1203, // imageAtomicMin_01D00D00D + 1204, // imageAtomicMin_01O00D00D + 1205, // imageAtomicMin_01Z00D00D + 1206, // imageAtomicMin_01E10D00D + 1207, // imageAtomicMin_01P10D00D + 1208, // imageAtomicMin_01a10D00D + 1209, // imageAtomicMin_01I10D00D + 1210, // imageAtomicMin_01T10D00D + 1211, // imageAtomicMin_01e10D00D + 1212, // imageAtomicMin_01F10D00D00D + 1213, // imageAtomicMin_01Q10D00D00D + 1214, // imageAtomicMin_01b10D00D00D + 1215, // imageAtomicMin_01G20D00D00D + 1216, // imageAtomicMin_01R20D00D00D + 1217, // imageAtomicMin_01c20D00D00D + 1218, // imageAtomicMax_00z10D00E + 1219, // imageAtomicMax_01K10D00E + 1220, // imageAtomicMax_01V10D00E + 1221, // imageAtomicMax_01A20D00E + 1222, // imageAtomicMax_01L20D00E + 1223, // imageAtomicMax_01W20D00E + 1224, // imageAtomicMax_01C20D00E + 1225, // imageAtomicMax_01N20D00E + 1226, // imageAtomicMax_01Y20D00E + 1227, // imageAtomicMax_01J00D00E + 1228, // imageAtomicMax_01U00D00E + 1229, // imageAtomicMax_01f00D00E + 1230, // imageAtomicMax_01B20D00E + 1231, // imageAtomicMax_01M20D00E + 1232, // imageAtomicMax_01X20D00E + 1233, // imageAtomicMax_01H20D00E + 1234, // imageAtomicMax_01S20D00E + 1235, // imageAtomicMax_01d20D00E + 1236, // imageAtomicMax_01D00D00E + 1237, // imageAtomicMax_01O00D00E + 1238, // imageAtomicMax_01Z00D00E + 1239, // imageAtomicMax_01E10D00E + 1240, // imageAtomicMax_01P10D00E + 1241, // imageAtomicMax_01a10D00E + 1242, // imageAtomicMax_01I10D00E + 1243, // imageAtomicMax_01T10D00E + 1244, // imageAtomicMax_01e10D00E + 1245, // imageAtomicMax_01F10D00D00E + 1246, // imageAtomicMax_01Q10D00D00E + 1247, // imageAtomicMax_01b10D00D00E + 1248, // imageAtomicMax_01G20D00D00E + 1249, // imageAtomicMax_01R20D00D00E + 1250, // imageAtomicMax_01c20D00D00E + 1251, // imageAtomicMax_00z10D00D + 1252, // imageAtomicMax_01K10D00D + 1253, // imageAtomicMax_01V10D00D + 1254, // imageAtomicMax_01A20D00D + 1255, // imageAtomicMax_01L20D00D + 1256, // imageAtomicMax_01W20D00D + 1257, // imageAtomicMax_01C20D00D + 1258, // imageAtomicMax_01N20D00D + 1259, // imageAtomicMax_01Y20D00D + 1260, // imageAtomicMax_01J00D00D + 1261, // imageAtomicMax_01U00D00D + 1262, // imageAtomicMax_01f00D00D + 1263, // imageAtomicMax_01B20D00D + 1264, // imageAtomicMax_01M20D00D + 1265, // imageAtomicMax_01X20D00D + 1266, // imageAtomicMax_01H20D00D + 1267, // imageAtomicMax_01S20D00D + 1268, // imageAtomicMax_01d20D00D + 1269, // imageAtomicMax_01D00D00D + 1270, // imageAtomicMax_01O00D00D + 1271, // imageAtomicMax_01Z00D00D + 1272, // imageAtomicMax_01E10D00D + 1273, // imageAtomicMax_01P10D00D + 1274, // imageAtomicMax_01a10D00D + 1275, // imageAtomicMax_01I10D00D + 1276, // imageAtomicMax_01T10D00D + 1277, // imageAtomicMax_01e10D00D + 1278, // imageAtomicMax_01F10D00D00D + 1279, // imageAtomicMax_01Q10D00D00D + 1280, // imageAtomicMax_01b10D00D00D + 1281, // imageAtomicMax_01G20D00D00D + 1282, // imageAtomicMax_01R20D00D00D + 1283, // imageAtomicMax_01c20D00D00D + 1284, // imageAtomicAnd_00z10D00E + 1285, // imageAtomicAnd_01K10D00E + 1286, // imageAtomicAnd_01V10D00E + 1287, // imageAtomicAnd_01A20D00E + 1288, // imageAtomicAnd_01L20D00E + 1289, // imageAtomicAnd_01W20D00E + 1290, // imageAtomicAnd_01C20D00E + 1291, // imageAtomicAnd_01N20D00E + 1292, // imageAtomicAnd_01Y20D00E + 1293, // imageAtomicAnd_01J00D00E + 1294, // imageAtomicAnd_01U00D00E + 1295, // imageAtomicAnd_01f00D00E + 1296, // imageAtomicAnd_01B20D00E + 1297, // imageAtomicAnd_01M20D00E + 1298, // imageAtomicAnd_01X20D00E + 1299, // imageAtomicAnd_01H20D00E + 1300, // imageAtomicAnd_01S20D00E + 1301, // imageAtomicAnd_01d20D00E + 1302, // imageAtomicAnd_01D00D00E + 1303, // imageAtomicAnd_01O00D00E + 1304, // imageAtomicAnd_01Z00D00E + 1305, // imageAtomicAnd_01E10D00E + 1306, // imageAtomicAnd_01P10D00E + 1307, // imageAtomicAnd_01a10D00E + 1308, // imageAtomicAnd_01I10D00E + 1309, // imageAtomicAnd_01T10D00E + 1310, // imageAtomicAnd_01e10D00E + 1311, // imageAtomicAnd_01F10D00D00E + 1312, // imageAtomicAnd_01Q10D00D00E + 1313, // imageAtomicAnd_01b10D00D00E + 1314, // imageAtomicAnd_01G20D00D00E + 1315, // imageAtomicAnd_01R20D00D00E + 1316, // imageAtomicAnd_01c20D00D00E + 1317, // imageAtomicAnd_00z10D00D + 1318, // imageAtomicAnd_01K10D00D + 1319, // imageAtomicAnd_01V10D00D + 1320, // imageAtomicAnd_01A20D00D + 1321, // imageAtomicAnd_01L20D00D + 1322, // imageAtomicAnd_01W20D00D + 1323, // imageAtomicAnd_01C20D00D + 1324, // imageAtomicAnd_01N20D00D + 1325, // imageAtomicAnd_01Y20D00D + 1326, // imageAtomicAnd_01J00D00D + 1327, // imageAtomicAnd_01U00D00D + 1328, // imageAtomicAnd_01f00D00D + 1329, // imageAtomicAnd_01B20D00D + 1330, // imageAtomicAnd_01M20D00D + 1331, // imageAtomicAnd_01X20D00D + 1332, // imageAtomicAnd_01H20D00D + 1333, // imageAtomicAnd_01S20D00D + 1334, // imageAtomicAnd_01d20D00D + 1335, // imageAtomicAnd_01D00D00D + 1336, // imageAtomicAnd_01O00D00D + 1337, // imageAtomicAnd_01Z00D00D + 1338, // imageAtomicAnd_01E10D00D + 1339, // imageAtomicAnd_01P10D00D + 1340, // imageAtomicAnd_01a10D00D + 1341, // imageAtomicAnd_01I10D00D + 1342, // imageAtomicAnd_01T10D00D + 1343, // imageAtomicAnd_01e10D00D + 1344, // imageAtomicAnd_01F10D00D00D + 1345, // imageAtomicAnd_01Q10D00D00D + 1346, // imageAtomicAnd_01b10D00D00D + 1347, // imageAtomicAnd_01G20D00D00D + 1348, // imageAtomicAnd_01R20D00D00D + 1349, // imageAtomicAnd_01c20D00D00D + 1350, // imageAtomicOr_00z10D00E + 1351, // imageAtomicOr_01K10D00E + 1352, // imageAtomicOr_01V10D00E + 1353, // imageAtomicOr_01A20D00E + 1354, // imageAtomicOr_01L20D00E + 1355, // imageAtomicOr_01W20D00E + 1356, // imageAtomicOr_01C20D00E + 1357, // imageAtomicOr_01N20D00E + 1358, // imageAtomicOr_01Y20D00E + 1359, // imageAtomicOr_01J00D00E + 1360, // imageAtomicOr_01U00D00E + 1361, // imageAtomicOr_01f00D00E + 1362, // imageAtomicOr_01B20D00E + 1363, // imageAtomicOr_01M20D00E + 1364, // imageAtomicOr_01X20D00E + 1365, // imageAtomicOr_01H20D00E + 1366, // imageAtomicOr_01S20D00E + 1367, // imageAtomicOr_01d20D00E + 1368, // imageAtomicOr_01D00D00E + 1369, // imageAtomicOr_01O00D00E + 1370, // imageAtomicOr_01Z00D00E + 1371, // imageAtomicOr_01E10D00E + 1372, // imageAtomicOr_01P10D00E + 1373, // imageAtomicOr_01a10D00E + 1374, // imageAtomicOr_01I10D00E + 1375, // imageAtomicOr_01T10D00E + 1376, // imageAtomicOr_01e10D00E + 1377, // imageAtomicOr_01F10D00D00E + 1378, // imageAtomicOr_01Q10D00D00E + 1379, // imageAtomicOr_01b10D00D00E + 1380, // imageAtomicOr_01G20D00D00E + 1381, // imageAtomicOr_01R20D00D00E + 1382, // imageAtomicOr_01c20D00D00E + 1383, // imageAtomicOr_00z10D00D + 1384, // imageAtomicOr_01K10D00D + 1385, // imageAtomicOr_01V10D00D + 1386, // imageAtomicOr_01A20D00D + 1387, // imageAtomicOr_01L20D00D + 1388, // imageAtomicOr_01W20D00D + 1389, // imageAtomicOr_01C20D00D + 1390, // imageAtomicOr_01N20D00D + 1391, // imageAtomicOr_01Y20D00D + 1392, // imageAtomicOr_01J00D00D + 1393, // imageAtomicOr_01U00D00D + 1394, // imageAtomicOr_01f00D00D + 1395, // imageAtomicOr_01B20D00D + 1396, // imageAtomicOr_01M20D00D + 1397, // imageAtomicOr_01X20D00D + 1398, // imageAtomicOr_01H20D00D + 1399, // imageAtomicOr_01S20D00D + 1400, // imageAtomicOr_01d20D00D + 1401, // imageAtomicOr_01D00D00D + 1402, // imageAtomicOr_01O00D00D + 1403, // imageAtomicOr_01Z00D00D + 1404, // imageAtomicOr_01E10D00D + 1405, // imageAtomicOr_01P10D00D + 1406, // imageAtomicOr_01a10D00D + 1407, // imageAtomicOr_01I10D00D + 1408, // imageAtomicOr_01T10D00D + 1409, // imageAtomicOr_01e10D00D + 1410, // imageAtomicOr_01F10D00D00D + 1411, // imageAtomicOr_01Q10D00D00D + 1412, // imageAtomicOr_01b10D00D00D + 1413, // imageAtomicOr_01G20D00D00D + 1414, // imageAtomicOr_01R20D00D00D + 1415, // imageAtomicOr_01c20D00D00D + 1416, // imageAtomicXor_00z10D00E + 1417, // imageAtomicXor_01K10D00E + 1418, // imageAtomicXor_01V10D00E + 1419, // imageAtomicXor_01A20D00E + 1420, // imageAtomicXor_01L20D00E + 1421, // imageAtomicXor_01W20D00E + 1422, // imageAtomicXor_01C20D00E + 1423, // imageAtomicXor_01N20D00E + 1424, // imageAtomicXor_01Y20D00E + 1425, // imageAtomicXor_01J00D00E + 1426, // imageAtomicXor_01U00D00E + 1427, // imageAtomicXor_01f00D00E + 1428, // imageAtomicXor_01B20D00E + 1429, // imageAtomicXor_01M20D00E + 1430, // imageAtomicXor_01X20D00E + 1431, // imageAtomicXor_01H20D00E + 1432, // imageAtomicXor_01S20D00E + 1433, // imageAtomicXor_01d20D00E + 1434, // imageAtomicXor_01D00D00E + 1435, // imageAtomicXor_01O00D00E + 1436, // imageAtomicXor_01Z00D00E + 1437, // imageAtomicXor_01E10D00E + 1438, // imageAtomicXor_01P10D00E + 1439, // imageAtomicXor_01a10D00E + 1440, // imageAtomicXor_01I10D00E + 1441, // imageAtomicXor_01T10D00E + 1442, // imageAtomicXor_01e10D00E + 1443, // imageAtomicXor_01F10D00D00E + 1444, // imageAtomicXor_01Q10D00D00E + 1445, // imageAtomicXor_01b10D00D00E + 1446, // imageAtomicXor_01G20D00D00E + 1447, // imageAtomicXor_01R20D00D00E + 1448, // imageAtomicXor_01c20D00D00E + 1449, // imageAtomicXor_00z10D00D + 1450, // imageAtomicXor_01K10D00D + 1451, // imageAtomicXor_01V10D00D + 1452, // imageAtomicXor_01A20D00D + 1453, // imageAtomicXor_01L20D00D + 1454, // imageAtomicXor_01W20D00D + 1455, // imageAtomicXor_01C20D00D + 1456, // imageAtomicXor_01N20D00D + 1457, // imageAtomicXor_01Y20D00D + 1458, // imageAtomicXor_01J00D00D + 1459, // imageAtomicXor_01U00D00D + 1460, // imageAtomicXor_01f00D00D + 1461, // imageAtomicXor_01B20D00D + 1462, // imageAtomicXor_01M20D00D + 1463, // imageAtomicXor_01X20D00D + 1464, // imageAtomicXor_01H20D00D + 1465, // imageAtomicXor_01S20D00D + 1466, // imageAtomicXor_01d20D00D + 1467, // imageAtomicXor_01D00D00D + 1468, // imageAtomicXor_01O00D00D + 1469, // imageAtomicXor_01Z00D00D + 1470, // imageAtomicXor_01E10D00D + 1471, // imageAtomicXor_01P10D00D + 1472, // imageAtomicXor_01a10D00D + 1473, // imageAtomicXor_01I10D00D + 1474, // imageAtomicXor_01T10D00D + 1475, // imageAtomicXor_01e10D00D + 1476, // imageAtomicXor_01F10D00D00D + 1477, // imageAtomicXor_01Q10D00D00D + 1478, // imageAtomicXor_01b10D00D00D + 1479, // imageAtomicXor_01G20D00D00D + 1480, // imageAtomicXor_01R20D00D00D + 1481, // imageAtomicXor_01c20D00D00D + 1482, // imageAtomicExchange_00z10D00E + 1483, // imageAtomicExchange_01K10D00E + 1484, // imageAtomicExchange_01V10D00E + 1485, // imageAtomicExchange_01A20D00E + 1486, // imageAtomicExchange_01L20D00E + 1487, // imageAtomicExchange_01W20D00E + 1488, // imageAtomicExchange_01C20D00E + 1489, // imageAtomicExchange_01N20D00E + 1490, // imageAtomicExchange_01Y20D00E + 1491, // imageAtomicExchange_01J00D00E + 1492, // imageAtomicExchange_01U00D00E + 1493, // imageAtomicExchange_01f00D00E + 1494, // imageAtomicExchange_01B20D00E + 1495, // imageAtomicExchange_01M20D00E + 1496, // imageAtomicExchange_01X20D00E + 1497, // imageAtomicExchange_01H20D00E + 1498, // imageAtomicExchange_01S20D00E + 1499, // imageAtomicExchange_01d20D00E + 1500, // imageAtomicExchange_01D00D00E + 1501, // imageAtomicExchange_01O00D00E + 1502, // imageAtomicExchange_01Z00D00E + 1503, // imageAtomicExchange_01E10D00E + 1504, // imageAtomicExchange_01P10D00E + 1505, // imageAtomicExchange_01a10D00E + 1506, // imageAtomicExchange_01I10D00E + 1507, // imageAtomicExchange_01T10D00E + 1508, // imageAtomicExchange_01e10D00E + 1509, // imageAtomicExchange_01F10D00D00E + 1510, // imageAtomicExchange_01Q10D00D00E + 1511, // imageAtomicExchange_01b10D00D00E + 1512, // imageAtomicExchange_01G20D00D00E + 1513, // imageAtomicExchange_01R20D00D00E + 1514, // imageAtomicExchange_01c20D00D00E + 1515, // imageAtomicExchange_00z10D00D + 1516, // imageAtomicExchange_01K10D00D + 1517, // imageAtomicExchange_01V10D00D + 1518, // imageAtomicExchange_01A20D00D + 1519, // imageAtomicExchange_01L20D00D + 1520, // imageAtomicExchange_01W20D00D + 1521, // imageAtomicExchange_01C20D00D + 1522, // imageAtomicExchange_01N20D00D + 1523, // imageAtomicExchange_01Y20D00D + 1524, // imageAtomicExchange_01J00D00D + 1525, // imageAtomicExchange_01U00D00D + 1526, // imageAtomicExchange_01f00D00D + 1527, // imageAtomicExchange_01B20D00D + 1528, // imageAtomicExchange_01M20D00D + 1529, // imageAtomicExchange_01X20D00D + 1530, // imageAtomicExchange_01H20D00D + 1531, // imageAtomicExchange_01S20D00D + 1532, // imageAtomicExchange_01d20D00D + 1533, // imageAtomicExchange_01D00D00D + 1534, // imageAtomicExchange_01O00D00D + 1535, // imageAtomicExchange_01Z00D00D + 1536, // imageAtomicExchange_01E10D00D + 1537, // imageAtomicExchange_01P10D00D + 1538, // imageAtomicExchange_01a10D00D + 1539, // imageAtomicExchange_01I10D00D + 1540, // imageAtomicExchange_01T10D00D + 1541, // imageAtomicExchange_01e10D00D + 1542, // imageAtomicExchange_01F10D00D00D + 1543, // imageAtomicExchange_01Q10D00D00D + 1544, // imageAtomicExchange_01b10D00D00D + 1545, // imageAtomicExchange_01G20D00D00D + 1546, // imageAtomicExchange_01R20D00D00D + 1547, // imageAtomicExchange_01c20D00D00D + 1548, // imageAtomicExchange_00z10D00B + 1549, // imageAtomicExchange_01K10D00B + 1550, // imageAtomicExchange_01V10D00B + 1551, // imageAtomicExchange_01A20D00B + 1552, // imageAtomicExchange_01L20D00B + 1553, // imageAtomicExchange_01W20D00B + 1554, // imageAtomicExchange_01C20D00B + 1555, // imageAtomicExchange_01N20D00B + 1556, // imageAtomicExchange_01Y20D00B + 1557, // imageAtomicExchange_01J00D00B + 1558, // imageAtomicExchange_01U00D00B + 1559, // imageAtomicExchange_01f00D00B + 1560, // imageAtomicExchange_01B20D00B + 1561, // imageAtomicExchange_01M20D00B + 1562, // imageAtomicExchange_01X20D00B + 1563, // imageAtomicExchange_01H20D00B + 1564, // imageAtomicExchange_01S20D00B + 1565, // imageAtomicExchange_01d20D00B + 1566, // imageAtomicExchange_01D00D00B + 1567, // imageAtomicExchange_01O00D00B + 1568, // imageAtomicExchange_01Z00D00B + 1569, // imageAtomicExchange_01E10D00B + 1570, // imageAtomicExchange_01P10D00B + 1571, // imageAtomicExchange_01a10D00B + 1572, // imageAtomicExchange_01I10D00B + 1573, // imageAtomicExchange_01T10D00B + 1574, // imageAtomicExchange_01e10D00B + 1575, // imageAtomicExchange_01F10D00D00B + 1576, // imageAtomicExchange_01Q10D00D00B + 1577, // imageAtomicExchange_01b10D00D00B + 1578, // imageAtomicExchange_01G20D00D00B + 1579, // imageAtomicExchange_01R20D00D00B + 1580, // imageAtomicExchange_01c20D00D00B + 1581, // imageAtomicCompSwap_00z10D00E00E + 1582, // imageAtomicCompSwap_01K10D00E00E + 1583, // imageAtomicCompSwap_01V10D00E00E + 1584, // imageAtomicCompSwap_01A20D00E00E + 1585, // imageAtomicCompSwap_01L20D00E00E + 1586, // imageAtomicCompSwap_01W20D00E00E + 1587, // imageAtomicCompSwap_01C20D00E00E + 1588, // imageAtomicCompSwap_01N20D00E00E + 1589, // imageAtomicCompSwap_01Y20D00E00E + 1590, // imageAtomicCompSwap_01J00D00E00E + 1591, // imageAtomicCompSwap_01U00D00E00E + 1592, // imageAtomicCompSwap_01f00D00E00E + 1593, // imageAtomicCompSwap_01B20D00E00E + 1594, // imageAtomicCompSwap_01M20D00E00E + 1595, // imageAtomicCompSwap_01X20D00E00E + 1596, // imageAtomicCompSwap_01H20D00E00E + 1597, // imageAtomicCompSwap_01S20D00E00E + 1598, // imageAtomicCompSwap_01d20D00E00E + 1599, // imageAtomicCompSwap_01D00D00E00E + 1600, // imageAtomicCompSwap_01O00D00E00E + 1601, // imageAtomicCompSwap_01Z00D00E00E + 1602, // imageAtomicCompSwap_01E10D00E00E + 1603, // imageAtomicCompSwap_01P10D00E00E + 1604, // imageAtomicCompSwap_01a10D00E00E + 1605, // imageAtomicCompSwap_01I10D00E00E + 1606, // imageAtomicCompSwap_01T10D00E00E + 1607, // imageAtomicCompSwap_01e10D00E00E + 1608, // imageAtomicCompSwap_01F10D00D00E00E + 1609, // imageAtomicCompSwap_01Q10D00D00E00E + 1610, // imageAtomicCompSwap_01b10D00D00E00E + 1611, // imageAtomicCompSwap_01G20D00D00E00E + 1612, // imageAtomicCompSwap_01R20D00D00E00E + 1613, // imageAtomicCompSwap_01c20D00D00E00E + 1614, // imageAtomicCompSwap_00z10D00D00D + 1615, // imageAtomicCompSwap_01K10D00D00D + 1616, // imageAtomicCompSwap_01V10D00D00D + 1617, // imageAtomicCompSwap_01A20D00D00D + 1618, // imageAtomicCompSwap_01L20D00D00D + 1619, // imageAtomicCompSwap_01W20D00D00D + 1620, // imageAtomicCompSwap_01C20D00D00D + 1621, // imageAtomicCompSwap_01N20D00D00D + 1622, // imageAtomicCompSwap_01Y20D00D00D + 1623, // imageAtomicCompSwap_01J00D00D00D + 1624, // imageAtomicCompSwap_01U00D00D00D + 1625, // imageAtomicCompSwap_01f00D00D00D + 1626, // imageAtomicCompSwap_01B20D00D00D + 1627, // imageAtomicCompSwap_01M20D00D00D + 1628, // imageAtomicCompSwap_01X20D00D00D + 1629, // imageAtomicCompSwap_01H20D00D00D + 1630, // imageAtomicCompSwap_01S20D00D00D + 1631, // imageAtomicCompSwap_01d20D00D00D + 1632, // imageAtomicCompSwap_01D00D00D00D + 1633, // imageAtomicCompSwap_01O00D00D00D + 1634, // imageAtomicCompSwap_01Z00D00D00D + 1635, // imageAtomicCompSwap_01E10D00D00D + 1636, // imageAtomicCompSwap_01P10D00D00D + 1637, // imageAtomicCompSwap_01a10D00D00D + 1638, // imageAtomicCompSwap_01I10D00D00D + 1639, // imageAtomicCompSwap_01T10D00D00D + 1640, // imageAtomicCompSwap_01e10D00D00D + 1641, // imageAtomicCompSwap_01F10D00D00D00D + 1642, // imageAtomicCompSwap_01Q10D00D00D00D + 1643, // imageAtomicCompSwap_01b10D00D00D00D + 1644, // imageAtomicCompSwap_01G20D00D00D00D + 1645, // imageAtomicCompSwap_01R20D00D00D00D + 1646, // imageAtomicCompSwap_01c20D00D00D00D + 1647, // memoryBarrier_ + 1648, // memoryBarrierAtomicCounter_ + 1649, // memoryBarrierBuffer_ + 1650, // memoryBarrierImage_ + 1651, // barrier_ + 1654, // memoryBarrierShared_ + 1655, // groupMemoryBarrier_ + 1656, // EmitVertex_ + 1659, // EndPrimitive_ + 1662, // subpassLoad_01g + 1663, // subpassLoad_01h + 1664, // subpassLoad_01i + 1665, // subpassLoad_01j00D + 1666, // subpassLoad_01k00D + 1667, // subpassLoad_01l00D + 1668, // gl_DepthRangeParameters + 1669, // gl_DepthRange + 1670, // gl_NumSamples + 1672, // gl_MaxVertexAttribs + 1673, // gl_MaxVertexUniformVectors + 1674, // gl_MaxVertexTextureImageUnits + 1675, // gl_MaxCombinedTextureImageUnits + 1676, // gl_MaxTextureImageUnits + 1677, // gl_MaxFragmentUniformVectors + 1678, // gl_MaxVaryingVectors + 1679, // gl_MaxDrawBuffers + 1680, // gl_MaxDualSourceDrawBuffersEXT + 1681, // gl_MaxVertexOutputVectors + 1682, // gl_MaxFragmentInputVectors + 1683, // gl_MinProgramTexelOffset + 1684, // gl_MaxProgramTexelOffset + 1685, // gl_MaxImageUnits + 1686, // gl_MaxVertexImageUniforms + 1687, // gl_MaxFragmentImageUniforms + 1688, // gl_MaxComputeImageUniforms + 1689, // gl_MaxCombinedImageUniforms + 1690, // gl_MaxCombinedShaderOutputResources + 1691, // gl_MaxComputeWorkGroupCount + 1692, // gl_MaxComputeWorkGroupSize + 1693, // gl_MaxComputeUniformComponents + 1694, // gl_MaxComputeTextureImageUnits + 1695, // gl_MaxComputeAtomicCounters + 1696, // gl_MaxComputeAtomicCounterBuffers + 1697, // gl_MaxVertexAtomicCounters + 1698, // gl_MaxFragmentAtomicCounters + 1699, // gl_MaxCombinedAtomicCounters + 1700, // gl_MaxAtomicCounterBindings + 1701, // gl_MaxVertexAtomicCounterBuffers + 1702, // gl_MaxFragmentAtomicCounterBuffers + 1703, // gl_MaxCombinedAtomicCounterBuffers + 1704, // gl_MaxAtomicCounterBufferSize + 1705, // gl_MaxGeometryInputComponents + 1708, // gl_MaxGeometryOutputComponents + 1711, // gl_MaxGeometryImageUniforms + 1714, // gl_MaxGeometryTextureImageUnits + 1717, // gl_MaxGeometryOutputVertices + 1720, // gl_MaxGeometryTotalOutputComponents + 1723, // gl_MaxGeometryUniformComponents + 1726, // gl_MaxGeometryAtomicCounters + 1729, // gl_MaxGeometryAtomicCounterBuffers + 1732, // gl_MaxTessControlInputComponents + 1734, // gl_MaxTessControlOutputComponents + 1736, // gl_MaxTessControlTextureImageUnits + 1738, // gl_MaxTessControlUniformComponents + 1740, // gl_MaxTessControlTotalOutputComponents + 1742, // gl_MaxTessControlImageUniforms + 1744, // gl_MaxTessControlAtomicCounters + 1746, // gl_MaxTessControlAtomicCounterBuffers + 1748, // gl_MaxTessPatchComponents + 1750, // gl_MaxPatchVertices + 1752, // gl_MaxTessGenLevel + 1754, // gl_MaxTessEvaluationInputComponents + 1756, // gl_MaxTessEvaluationOutputComponents + 1758, // gl_MaxTessEvaluationTextureImageUnits + 1760, // gl_MaxTessEvaluationUniformComponents + 1762, // gl_MaxTessEvaluationImageUniforms + 1764, // gl_MaxTessEvaluationAtomicCounters + 1766, // gl_MaxTessEvaluationAtomicCounterBuffers + 1768, // gl_MaxSamples + 1770, // gl_MaxClipDistances + 1771, // gl_MaxCullDistances + 1772, // gl_MaxCombinedClipAndCullDistances + 1773, // gl_FragCoord + 1775, // gl_FrontFacing + 1776, // gl_PointCoord + 1777, // gl_FragColor + 1778, // gl_FragData + 1779, // gl_FragDepth + 1780, // gl_HelperInvocation + 1781, // gl_SecondaryFragColorEXT + 1782, // gl_SecondaryFragDataEXT + 1783, // gl_FragDepthEXT + 1784, // gl_LastFragData + 1787, // gl_LastFragColor + 1788, // gl_LastFragColorARM + 1789, // gl_PrimitiveID + 1799, // gl_Layer + 1805, // gl_SampleID + 1807, // gl_SamplePosition + 1809, // gl_SampleMaskIn + 1811, // gl_SampleMask + 1813, // gl_CullDistance + 1815, // gl_ClipDistance + 1817, // gl_Position + 1825, // gl_PointSize + 1827, // gl_InstanceID + 1828, // Empty + 1828, // gl_VertexID + 1829, // Empty + 1829, // Empty + 1829, // gl_DrawID + 1830, // gl_BaseVertex + 1831, // gl_BaseInstance + 1832, // angle_BaseVertex + 1833, // angle_BaseInstance + 1834, // gl_NumWorkGroups + 1835, // gl_WorkGroupSize + 1836, // gl_WorkGroupID + 1837, // gl_LocalInvocationID + 1838, // gl_GlobalInvocationID + 1839, // gl_LocalInvocationIndex + 1840, // gl_PrimitiveIDIn + 1843, // gl_InvocationID + 1848, // gl_PerVertex + 1855, // gl_in + 1862, // gl_PatchVerticesIn + 1866, // gl_TessLevelOuter + 1870, // gl_TessLevelInner + 1874, // gl_out + 1878, // gl_BoundingBoxEXT + 1880, // gl_TessCoord + 1881, // gl_ViewID_OVR }; using Ext = TExtension; // Flat array of all unmangled name identifiers. constexpr UnmangledEntry unmangled[] = { - {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"abs", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"sign", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"floor", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"round", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"fract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"mod", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"mix", Ext::UNDEFINED, Ext::UNDEFINED, 310, 450, Shader::ALL}, - {"step", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"modf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"fma", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL}, - {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL}, - {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"length", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"distance", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"dot", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"cross", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"refract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL}, - {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL}, - {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL}, - {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT}, - {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT}, - {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL}, - {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"shadow2DEXT", Ext::EXT_shadow_samplers, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"shadow2DProjEXT", Ext::EXT_shadow_samplers, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"textureGatherOffsets", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"interpolateAtCentroid", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, + {"radians", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"degrees", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"sin", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"cos", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"tan", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"asin", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"acos", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"atan", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"sinh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"cosh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"tanh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"asinh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"acosh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"atanh", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"pow", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"exp", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"log", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"exp2", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"log2", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"sqrt", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"inversesqrt", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"abs", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"sign", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"floor", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"trunc", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"round", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"roundEven", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"ceil", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"fract", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"mod", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"min", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"max", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"clamp", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"mix", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 450, Shader::ALL}, + {"step", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"smoothstep", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"modf", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"isnan", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"isinf", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, Shader::ALL}, + {"floatBitsToInt", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 330, + Shader::ALL}, + {"floatBitsToUint", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 330, + Shader::ALL}, + {"intBitsToFloat", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 330, + Shader::ALL}, + {"uintBitsToFloat", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 330, + Shader::ALL}, + {"fma", std::array{{Ext::EXT_gpu_shader5}}, Ext::UNDEFINED, 310, -1, + Shader::ALL}, + {"frexp", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, Shader::ALL}, + {"ldexp", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, Shader::ALL}, + {"packSnorm2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 420, + Shader::ALL}, + {"packHalf2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 420, + Shader::ALL}, + {"unpackSnorm2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 420, + Shader::ALL}, + {"unpackHalf2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 420, + Shader::ALL}, + {"packUnorm2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 400, + Shader::ALL}, + {"unpackUnorm2x16", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 400, + Shader::ALL}, + {"packUnorm4x8", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"packSnorm4x8", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"unpackUnorm4x8", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"unpackSnorm4x8", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"length", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"distance", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"dot", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"cross", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"normalize", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"faceforward", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"reflect", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"refract", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"matrixCompMult", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, -1, + Shader::ALL}, + {"outerProduct", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 120, + Shader::ALL}, + {"transpose", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 120, + Shader::ALL}, + {"determinant", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, -1, + Shader::ALL}, + {"inverse", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 140, Shader::ALL}, + {"lessThan", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"lessThanEqual", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"greaterThan", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"greaterThanEqual", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"equal", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"notEqual", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"any", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"all", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"not", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 0, 0, Shader::ALL}, + {"bitfieldExtract", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"bitfieldInsert", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"bitfieldReverse", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"bitCount", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"findLSB", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, Shader::ALL}, + {"findMSB", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, Shader::ALL}, + {"uaddCarry", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"usubBorrow", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"umulExtended", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"imulExtended", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"texture2D", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, 0, + Shader::FRAGMENT}, + {"texture2DProj", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, 0, + Shader::FRAGMENT}, + {"textureCube", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, 0, + Shader::ALL}, + {"texture3D", std::array{{Ext::OES_texture_3D}}, Ext::UNDEFINED, 100, -1, + Shader::FRAGMENT}, + {"texture3DProj", std::array{{Ext::OES_texture_3D}}, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"interpolateAtSample", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, - Shader::FRAGMENT}, - {"interpolateAtOffset", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, + {"shadow2DEXT", std::array{{Ext::EXT_shadow_samplers}}, Ext::UNDEFINED, 100, -1, + Shader::ALL}, + {"shadow2DProjEXT", std::array{{Ext::EXT_shadow_samplers}}, Ext::UNDEFINED, 100, + -1, Shader::ALL}, + {"texture2DRect", std::array{{Ext::ARB_texture_rectangle}}, Ext::UNDEFINED, 100, + -1, Shader::ALL}, + {"texture2DRectProj", std::array{{Ext::ARB_texture_rectangle}}, Ext::UNDEFINED, + 100, -1, Shader::ALL}, + {"texture2DGradEXT", std::array{{Ext::EXT_shader_texture_lod}}, Ext::UNDEFINED, + 100, -1, Shader::ALL}, + {"texture2DProjGradEXT", std::array{{Ext::EXT_shader_texture_lod}}, + Ext::UNDEFINED, 100, -1, Shader::ALL}, + {"textureCubeGradEXT", std::array{{Ext::EXT_shader_texture_lod}}, Ext::UNDEFINED, + 100, -1, Shader::ALL}, + {"textureVideoWEBGL", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, 0, + Shader::ALL}, + {"texture3DLod", std::array{{Ext::OES_texture_3D}}, Ext::UNDEFINED, 100, -1, + Shader::ALL}, + {"texture3DProjLod", std::array{{Ext::OES_texture_3D}}, Ext::UNDEFINED, 100, -1, + Shader::ALL}, + {"texture2DLod", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, -1, + Shader::VERTEX}, + {"texture2DProjLod", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, -1, + Shader::VERTEX}, + {"textureCubeLod", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 100, -1, + Shader::VERTEX}, + {"texture2DLodEXT", std::array{{Ext::EXT_shader_texture_lod}}, Ext::UNDEFINED, + 100, -1, Shader::FRAGMENT}, + {"texture2DProjLodEXT", std::array{{Ext::EXT_shader_texture_lod}}, + Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, + {"textureCubeLodEXT", std::array{{Ext::EXT_shader_texture_lod}}, Ext::UNDEFINED, + 100, -1, Shader::FRAGMENT}, + {"texture", std::array{{Ext::OES_EGL_image_external_essl3}}, Ext::UNDEFINED, 300, + -1, Shader::FRAGMENT}, + {"textureProj", std::array{{Ext::OES_EGL_image_external_essl3}}, Ext::UNDEFINED, + 300, -1, Shader::FRAGMENT}, + {"textureLod", + std::array{{Ext::OES_texture_cube_map_array, Ext::EXT_texture_cube_map_array}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"textureSize", std::array{{Ext::OES_EGL_image_external_essl3}}, Ext::UNDEFINED, + 300, -1, Shader::ALL}, + {"textureProjLod", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"texelFetch", std::array{{Ext::OES_EGL_image_external_essl3}}, Ext::UNDEFINED, + 300, -1, Shader::ALL}, + {"textureGrad", + std::array{{Ext::OES_texture_cube_map_array, Ext::EXT_texture_cube_map_array}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"textureProjGrad", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureProjOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureLodOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureProjLodOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"texelFetchOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureGradOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureProjGradOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 130, + Shader::ALL}, + {"textureGather", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"textureGatherOffset", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 400, + Shader::ALL}, + {"textureGatherOffsets", std::array{{Ext::EXT_gpu_shader5}}, Ext::UNDEFINED, 310, + -1, Shader::ALL}, + {"rgb_2_yuv", std::array{{Ext::EXT_YUV_target}}, Ext::UNDEFINED, 300, -1, + Shader::ALL}, + {"yuv_2_rgb", std::array{{Ext::EXT_YUV_target}}, Ext::UNDEFINED, 300, -1, + Shader::ALL}, + {"dFdx", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, + {"dFdy", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, + {"fwidth", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicAdd", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicMin", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicMax", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicAnd", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicOr", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicXor", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicExchange", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicCompSwap", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 320, -1, Shader::TESS_CONTROL_EXT}, - {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE}, - {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE}, - {"EmitVertex", Ext::UNDEFINED, Ext::UNDEFINED, 320, -1, Shader::GEOMETRY_EXT}, - {"EndPrimitive", Ext::UNDEFINED, Ext::UNDEFINED, 320, -1, Shader::GEOMETRY_EXT}, - {"textureVideoWEBGL", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL}}; + {"interpolateAtCentroid", + std::array{{Ext::OES_shader_multisample_interpolation}}, Ext::UNDEFINED, 300, + -1, Shader::FRAGMENT}, + {"interpolateAtSample", std::array{{Ext::OES_shader_multisample_interpolation}}, + Ext::UNDEFINED, 300, -1, Shader::FRAGMENT}, + {"interpolateAtOffset", std::array{{Ext::OES_shader_multisample_interpolation}}, + Ext::UNDEFINED, 300, -1, Shader::FRAGMENT}, + {"atomicCounter", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 420, + Shader::ALL}, + {"atomicCounterIncrement", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, + 420, Shader::ALL}, + {"atomicCounterDecrement", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, + 420, Shader::ALL}, + {"atomicAdd", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicMin", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicMax", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicAnd", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicOr", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicXor", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicExchange", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"atomicCompSwap", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"imageSize", std::array{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"imageStore", std::array{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"imageLoad", std::array{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"imageAtomicAdd", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicMin", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicMax", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicAnd", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicOr", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicXor", std::array{{Ext::OES_shader_image_atomic}}, Ext::UNDEFINED, + 310, -1, Shader::ALL}, + {"imageAtomicExchange", std::array{{Ext::OES_shader_image_atomic}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"imageAtomicCompSwap", std::array{{Ext::OES_shader_image_atomic}}, + Ext::UNDEFINED, 310, -1, Shader::ALL}, + {"memoryBarrier", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 420, + Shader::ALL}, + {"memoryBarrierAtomicCounter", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, + 430, Shader::ALL}, + {"memoryBarrierBuffer", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"memoryBarrierImage", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::ALL}, + {"barrier", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 320, -1, + Shader::TESS_CONTROL_EXT}, + {"memoryBarrierShared", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::COMPUTE}, + {"groupMemoryBarrier", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 310, 430, + Shader::COMPUTE}, + {"EmitVertex", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 320, -1, + Shader::GEOMETRY}, + {"EndPrimitive", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, 320, -1, + Shader::GEOMETRY}, + {"subpassLoad", std::array{{Ext::UNDEFINED}}, Ext::UNDEFINED, kESSLVulkanOnly, + 460, Shader::ALL}}; } // namespace BuiltInArray void TSymbolTable::initializeBuiltInVariables(sh::GLenum shaderType, ShShaderSpec spec, @@ -24566,877 +24670,943 @@ new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::far, zeroSourceLoc, SymbolType::BuiltIn)); fields_gl_DepthRangeParameters->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::diff, zeroSourceLoc, SymbolType::BuiltIn)); - TStructure *gl_DepthRangeParameters = - new TStructure(BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters, - TExtension::UNDEFINED, fields_gl_DepthRangeParameters); + TStructure *gl_DepthRangeParameters = new TStructure( + BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters, + std::array{{TExtension::UNDEFINED}}, fields_gl_DepthRangeParameters); m_gl_DepthRangeParameters = gl_DepthRangeParameters; TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false); type_gl_DepthRange->setQualifier(EvqUniform); type_gl_DepthRange->realize(); - m_gl_DepthRange = new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_DepthRange); - m_gl_MaxVertexAttribs = new TVariable( - BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_DepthRange = + new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_DepthRange); + m_gl_MaxVertexAttribs = + new TVariable(BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexAttribs); static_cast(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray); } - m_gl_MaxVertexUniformVectors = - new TVariable(BuiltInId::gl_MaxVertexUniformVectors, - BuiltInName::gl_MaxVertexUniformVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxVertexUniformVectors = new TVariable( + BuiltInId::gl_MaxVertexUniformVectors, BuiltInName::gl_MaxVertexUniformVectors, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexUniformVectors); static_cast(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray); } - m_gl_MaxVertexTextureImageUnits = - new TVariable(BuiltInId::gl_MaxVertexTextureImageUnits, - BuiltInName::gl_MaxVertexTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxVertexTextureImageUnits = new TVariable( + BuiltInId::gl_MaxVertexTextureImageUnits, BuiltInName::gl_MaxVertexTextureImageUnits, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexTextureImageUnits); static_cast(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray); } - m_gl_MaxCombinedTextureImageUnits = - new TVariable(BuiltInId::gl_MaxCombinedTextureImageUnits, - BuiltInName::gl_MaxCombinedTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxCombinedTextureImageUnits = new TVariable( + BuiltInId::gl_MaxCombinedTextureImageUnits, BuiltInName::gl_MaxCombinedTextureImageUnits, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits); static_cast(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray); } m_gl_MaxTextureImageUnits = new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits, - SymbolType::BuiltIn, TExtension::UNDEFINED, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTextureImageUnits); static_cast(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray); } - m_gl_MaxFragmentUniformVectors = - new TVariable(BuiltInId::gl_MaxFragmentUniformVectors, - BuiltInName::gl_MaxFragmentUniformVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxFragmentUniformVectors = new TVariable( + BuiltInId::gl_MaxFragmentUniformVectors, BuiltInName::gl_MaxFragmentUniformVectors, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxFragmentUniformVectors); static_cast(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray); } - m_gl_MaxVaryingVectors = new TVariable( - BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxVaryingVectors = + new TVariable(BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVaryingVectors); static_cast(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray); } - m_gl_MaxDrawBuffers = new TVariable( - BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxDrawBuffers = + new TVariable(BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxDrawBuffers); static_cast(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray); } m_gl_MaxDualSourceDrawBuffersEXT = new TVariable( BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT, - SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, + SymbolType::BuiltIn, std::array{{TExtension::EXT_blend_func_extended}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers); static_cast(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray); } m_gl_MaxVertexOutputVectors = new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors, - SymbolType::BuiltIn, TExtension::UNDEFINED, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexOutputVectors); static_cast(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray); } - m_gl_MaxFragmentInputVectors = - new TVariable(BuiltInId::gl_MaxFragmentInputVectors, - BuiltInName::gl_MaxFragmentInputVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxFragmentInputVectors = new TVariable( + BuiltInId::gl_MaxFragmentInputVectors, BuiltInName::gl_MaxFragmentInputVectors, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxFragmentInputVectors); static_cast(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray); } m_gl_MinProgramTexelOffset = new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset, - SymbolType::BuiltIn, TExtension::UNDEFINED, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MinProgramTexelOffset); static_cast(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray); } m_gl_MaxProgramTexelOffset = new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset, - SymbolType::BuiltIn, TExtension::UNDEFINED, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxProgramTexelOffset); static_cast(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray); } - m_gl_MaxImageUnits = new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); + m_gl_MaxImageUnits = + new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxImageUnits); static_cast(m_gl_MaxImageUnits)->shareConstPointer(unionArray); } m_gl_MaxVertexImageUniforms = new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms, - SymbolType::BuiltIn, TExtension::UNDEFINED, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexImageUniforms); static_cast(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray); } - m_gl_MaxFragmentImageUniforms = - new TVariable(BuiltInId::gl_MaxFragmentImageUniforms, - BuiltInName::gl_MaxFragmentImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxFragmentImageUniforms = new TVariable( + BuiltInId::gl_MaxFragmentImageUniforms, BuiltInName::gl_MaxFragmentImageUniforms, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxFragmentImageUniforms); static_cast(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray); } - m_gl_MaxComputeImageUniforms = - new TVariable(BuiltInId::gl_MaxComputeImageUniforms, - BuiltInName::gl_MaxComputeImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeImageUniforms = new TVariable( + BuiltInId::gl_MaxComputeImageUniforms, BuiltInName::gl_MaxComputeImageUniforms, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxComputeImageUniforms); static_cast(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray); } - m_gl_MaxCombinedImageUniforms = - new TVariable(BuiltInId::gl_MaxCombinedImageUniforms, - BuiltInName::gl_MaxCombinedImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxCombinedImageUniforms = new TVariable( + BuiltInId::gl_MaxCombinedImageUniforms, BuiltInName::gl_MaxCombinedImageUniforms, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedImageUniforms); static_cast(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray); } m_gl_MaxCombinedShaderOutputResources = new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources, BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources); static_cast(m_gl_MaxCombinedShaderOutputResources) ->shareConstPointer(unionArray); } - m_gl_MaxComputeWorkGroupCount = - new TVariable(BuiltInId::gl_MaxComputeWorkGroupCount, - BuiltInName::gl_MaxComputeWorkGroupCount, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeWorkGroupCount = new TVariable( + BuiltInId::gl_MaxComputeWorkGroupCount, BuiltInName::gl_MaxComputeWorkGroupCount, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[3]; for (size_t index = 0u; index < 3; ++index) { unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]); } static_cast(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray); } - m_gl_MaxComputeWorkGroupSize = - new TVariable(BuiltInId::gl_MaxComputeWorkGroupSize, - BuiltInName::gl_MaxComputeWorkGroupSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeWorkGroupSize = new TVariable( + BuiltInId::gl_MaxComputeWorkGroupSize, BuiltInName::gl_MaxComputeWorkGroupSize, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[3]; for (size_t index = 0u; index < 3; ++index) { unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]); } static_cast(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray); } - m_gl_MaxComputeUniformComponents = - new TVariable(BuiltInId::gl_MaxComputeUniformComponents, - BuiltInName::gl_MaxComputeUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeUniformComponents = new TVariable( + BuiltInId::gl_MaxComputeUniformComponents, BuiltInName::gl_MaxComputeUniformComponents, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxComputeUniformComponents); static_cast(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray); } - m_gl_MaxComputeTextureImageUnits = - new TVariable(BuiltInId::gl_MaxComputeTextureImageUnits, - BuiltInName::gl_MaxComputeTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeTextureImageUnits = new TVariable( + BuiltInId::gl_MaxComputeTextureImageUnits, BuiltInName::gl_MaxComputeTextureImageUnits, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxComputeTextureImageUnits); static_cast(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray); } - m_gl_MaxComputeAtomicCounters = - new TVariable(BuiltInId::gl_MaxComputeAtomicCounters, - BuiltInName::gl_MaxComputeAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxComputeAtomicCounters = new TVariable( + BuiltInId::gl_MaxComputeAtomicCounters, BuiltInName::gl_MaxComputeAtomicCounters, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxComputeAtomicCounters); static_cast(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray); } m_gl_MaxComputeAtomicCounterBuffers = new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers, BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers); static_cast(m_gl_MaxComputeAtomicCounterBuffers) ->shareConstPointer(unionArray); } - m_gl_MaxVertexAtomicCounters = - new TVariable(BuiltInId::gl_MaxVertexAtomicCounters, - BuiltInName::gl_MaxVertexAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxVertexAtomicCounters = new TVariable( + BuiltInId::gl_MaxVertexAtomicCounters, BuiltInName::gl_MaxVertexAtomicCounters, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexAtomicCounters); static_cast(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray); } - m_gl_MaxFragmentAtomicCounters = - new TVariable(BuiltInId::gl_MaxFragmentAtomicCounters, - BuiltInName::gl_MaxFragmentAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxFragmentAtomicCounters = new TVariable( + BuiltInId::gl_MaxFragmentAtomicCounters, BuiltInName::gl_MaxFragmentAtomicCounters, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxFragmentAtomicCounters); static_cast(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray); } - m_gl_MaxCombinedAtomicCounters = - new TVariable(BuiltInId::gl_MaxCombinedAtomicCounters, - BuiltInName::gl_MaxCombinedAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxCombinedAtomicCounters = new TVariable( + BuiltInId::gl_MaxCombinedAtomicCounters, BuiltInName::gl_MaxCombinedAtomicCounters, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedAtomicCounters); static_cast(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray); } - m_gl_MaxAtomicCounterBindings = - new TVariable(BuiltInId::gl_MaxAtomicCounterBindings, - BuiltInName::gl_MaxAtomicCounterBindings, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxAtomicCounterBindings = new TVariable( + BuiltInId::gl_MaxAtomicCounterBindings, BuiltInName::gl_MaxAtomicCounterBindings, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxAtomicCounterBindings); static_cast(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray); } - m_gl_MaxVertexAtomicCounterBuffers = - new TVariable(BuiltInId::gl_MaxVertexAtomicCounterBuffers, - BuiltInName::gl_MaxVertexAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxVertexAtomicCounterBuffers = new TVariable( + BuiltInId::gl_MaxVertexAtomicCounterBuffers, BuiltInName::gl_MaxVertexAtomicCounterBuffers, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers); static_cast(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray); } m_gl_MaxFragmentAtomicCounterBuffers = new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers, BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers); static_cast(m_gl_MaxFragmentAtomicCounterBuffers) ->shareConstPointer(unionArray); } m_gl_MaxCombinedAtomicCounterBuffers = new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers, BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers); static_cast(m_gl_MaxCombinedAtomicCounterBuffers) ->shareConstPointer(unionArray); } - m_gl_MaxAtomicCounterBufferSize = - new TVariable(BuiltInId::gl_MaxAtomicCounterBufferSize, - BuiltInName::gl_MaxAtomicCounterBufferSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxAtomicCounterBufferSize = new TVariable( + BuiltInId::gl_MaxAtomicCounterBufferSize, BuiltInName::gl_MaxAtomicCounterBufferSize, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize); static_cast(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray); } - m_gl_MaxGeometryInputComponents = new TVariable( - BuiltInId::gl_MaxGeometryInputComponents, BuiltInName::gl_MaxGeometryInputComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryInputComponents = + new TVariable(BuiltInId::gl_MaxGeometryInputComponents, + BuiltInName::gl_MaxGeometryInputComponents, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryInputComponents); static_cast(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray); } - m_gl_MaxGeometryInputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryInputComponentsES3_2, - BuiltInName::gl_MaxGeometryInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxGeometryInputComponentsES3_2 = new TVariable( + BuiltInId::gl_MaxGeometryInputComponentsES3_2, BuiltInName::gl_MaxGeometryInputComponents, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryInputComponents); static_cast(m_gl_MaxGeometryInputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryOutputComponents = new TVariable( - BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryOutputComponents = + new TVariable(BuiltInId::gl_MaxGeometryOutputComponents, + BuiltInName::gl_MaxGeometryOutputComponents, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryOutputComponents); static_cast(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray); } - m_gl_MaxGeometryOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryOutputComponentsES3_2, - BuiltInName::gl_MaxGeometryOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxGeometryOutputComponentsES3_2 = new TVariable( + BuiltInId::gl_MaxGeometryOutputComponentsES3_2, BuiltInName::gl_MaxGeometryOutputComponents, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryOutputComponents); static_cast(m_gl_MaxGeometryOutputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryImageUniforms = new TVariable( - BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryImageUniforms = + new TVariable(BuiltInId::gl_MaxGeometryImageUniforms, + BuiltInName::gl_MaxGeometryImageUniforms, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryImageUniforms); static_cast(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray); } - m_gl_MaxGeometryImageUniformsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryImageUniformsES3_2, - BuiltInName::gl_MaxGeometryImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxGeometryImageUniformsES3_2 = new TVariable( + BuiltInId::gl_MaxGeometryImageUniformsES3_2, BuiltInName::gl_MaxGeometryImageUniforms, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryImageUniforms); static_cast(m_gl_MaxGeometryImageUniformsES3_2)->shareConstPointer(unionArray); } - m_gl_MaxGeometryTextureImageUnits = new TVariable( - BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryTextureImageUnits = + new TVariable(BuiltInId::gl_MaxGeometryTextureImageUnits, + BuiltInName::gl_MaxGeometryTextureImageUnits, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits); static_cast(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray); } m_gl_MaxGeometryTextureImageUnitsES3_2 = new TVariable(BuiltInId::gl_MaxGeometryTextureImageUnitsES3_2, BuiltInName::gl_MaxGeometryTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits); static_cast(m_gl_MaxGeometryTextureImageUnitsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryOutputVertices = new TVariable( - BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryOutputVertices = + new TVariable(BuiltInId::gl_MaxGeometryOutputVertices, + BuiltInName::gl_MaxGeometryOutputVertices, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryOutputVertices); static_cast(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray); } - m_gl_MaxGeometryOutputVerticesES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryOutputVerticesES3_2, - BuiltInName::gl_MaxGeometryOutputVertices, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxGeometryOutputVerticesES3_2 = new TVariable( + BuiltInId::gl_MaxGeometryOutputVerticesES3_2, BuiltInName::gl_MaxGeometryOutputVertices, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryOutputVertices); static_cast(m_gl_MaxGeometryOutputVerticesES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryTotalOutputComponents = new TVariable( - BuiltInId::gl_MaxGeometryTotalOutputComponents, - BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, StaticType::Get()); + m_gl_MaxGeometryTotalOutputComponents = + new TVariable(BuiltInId::gl_MaxGeometryTotalOutputComponents, + BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents); static_cast(m_gl_MaxGeometryTotalOutputComponents) ->shareConstPointer(unionArray); } m_gl_MaxGeometryTotalOutputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxGeometryTotalOutputComponentsES3_2, BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents); static_cast(m_gl_MaxGeometryTotalOutputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryUniformComponents = new TVariable( - BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryUniformComponents = + new TVariable(BuiltInId::gl_MaxGeometryUniformComponents, + BuiltInName::gl_MaxGeometryUniformComponents, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryUniformComponents); static_cast(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray); } m_gl_MaxGeometryUniformComponentsES3_2 = new TVariable(BuiltInId::gl_MaxGeometryUniformComponentsES3_2, BuiltInName::gl_MaxGeometryUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryUniformComponents); static_cast(m_gl_MaxGeometryUniformComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryAtomicCounters = new TVariable( - BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); + m_gl_MaxGeometryAtomicCounters = + new TVariable(BuiltInId::gl_MaxGeometryAtomicCounters, + BuiltInName::gl_MaxGeometryAtomicCounters, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryAtomicCounters); static_cast(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray); } - m_gl_MaxGeometryAtomicCountersES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryAtomicCountersES3_2, - BuiltInName::gl_MaxGeometryAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxGeometryAtomicCountersES3_2 = new TVariable( + BuiltInId::gl_MaxGeometryAtomicCountersES3_2, BuiltInName::gl_MaxGeometryAtomicCounters, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryAtomicCounters); static_cast(m_gl_MaxGeometryAtomicCountersES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxGeometryAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxGeometryAtomicCounterBuffers, - BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, StaticType::Get()); + m_gl_MaxGeometryAtomicCounterBuffers = + new TVariable(BuiltInId::gl_MaxGeometryAtomicCounterBuffers, + BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn, + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers); static_cast(m_gl_MaxGeometryAtomicCounterBuffers) ->shareConstPointer(unionArray); } m_gl_MaxGeometryAtomicCounterBuffersES3_2 = new TVariable(BuiltInId::gl_MaxGeometryAtomicCounterBuffersES3_2, BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers); static_cast(m_gl_MaxGeometryAtomicCounterBuffersES3_2) ->shareConstPointer(unionArray); } m_gl_MaxTessControlInputComponents = new TVariable( BuiltInId::gl_MaxTessControlInputComponents, BuiltInName::gl_MaxTessControlInputComponents, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, + SymbolType::BuiltIn, std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlInputComponents); static_cast(m_gl_MaxTessControlInputComponents)->shareConstPointer(unionArray); } m_gl_MaxTessControlInputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessControlInputComponentsES3_2, BuiltInName::gl_MaxTessControlInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlInputComponents); static_cast(m_gl_MaxTessControlInputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessControlOutputComponents = new TVariable( - BuiltInId::gl_MaxTessControlOutputComponents, - BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessControlOutputComponents = + new TVariable(BuiltInId::gl_MaxTessControlOutputComponents, + BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlOutputComponents); static_cast(m_gl_MaxTessControlOutputComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessControlOutputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessControlOutputComponentsES3_2, BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlOutputComponents); static_cast(m_gl_MaxTessControlOutputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessControlTextureImageUnits = new TVariable( - BuiltInId::gl_MaxTessControlTextureImageUnits, - BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessControlTextureImageUnits = + new TVariable(BuiltInId::gl_MaxTessControlTextureImageUnits, + BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits); static_cast(m_gl_MaxTessControlTextureImageUnits) ->shareConstPointer(unionArray); } m_gl_MaxTessControlTextureImageUnitsES3_2 = new TVariable(BuiltInId::gl_MaxTessControlTextureImageUnitsES3_2, BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits); static_cast(m_gl_MaxTessControlTextureImageUnitsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessControlUniformComponents = new TVariable( - BuiltInId::gl_MaxTessControlUniformComponents, - BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessControlUniformComponents = + new TVariable(BuiltInId::gl_MaxTessControlUniformComponents, + BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlUniformComponents); static_cast(m_gl_MaxTessControlUniformComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessControlUniformComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessControlUniformComponentsES3_2, BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlUniformComponents); static_cast(m_gl_MaxTessControlUniformComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessControlTotalOutputComponents = new TVariable( - BuiltInId::gl_MaxTessControlTotalOutputComponents, - BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessControlTotalOutputComponents = + new TVariable(BuiltInId::gl_MaxTessControlTotalOutputComponents, + BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents); static_cast(m_gl_MaxTessControlTotalOutputComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessControlTotalOutputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessControlTotalOutputComponentsES3_2, BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents); static_cast(m_gl_MaxTessControlTotalOutputComponentsES3_2) ->shareConstPointer(unionArray); } m_gl_MaxTessControlImageUniforms = new TVariable( BuiltInId::gl_MaxTessControlImageUniforms, BuiltInName::gl_MaxTessControlImageUniforms, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, + SymbolType::BuiltIn, std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlImageUniforms); static_cast(m_gl_MaxTessControlImageUniforms)->shareConstPointer(unionArray); } - m_gl_MaxTessControlImageUniformsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlImageUniformsES3_2, - BuiltInName::gl_MaxTessControlImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxTessControlImageUniformsES3_2 = new TVariable( + BuiltInId::gl_MaxTessControlImageUniformsES3_2, BuiltInName::gl_MaxTessControlImageUniforms, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlImageUniforms); static_cast(m_gl_MaxTessControlImageUniformsES3_2) ->shareConstPointer(unionArray); } m_gl_MaxTessControlAtomicCounters = new TVariable( BuiltInId::gl_MaxTessControlAtomicCounters, BuiltInName::gl_MaxTessControlAtomicCounters, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, + SymbolType::BuiltIn, std::array{{TExtension::EXT_tessellation_shader}}, StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlAtomicCounters); static_cast(m_gl_MaxTessControlAtomicCounters)->shareConstPointer(unionArray); } m_gl_MaxTessControlAtomicCountersES3_2 = new TVariable(BuiltInId::gl_MaxTessControlAtomicCountersES3_2, BuiltInName::gl_MaxTessControlAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlAtomicCounters); static_cast(m_gl_MaxTessControlAtomicCountersES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessControlAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxTessControlAtomicCounterBuffers, - BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessControlAtomicCounterBuffers = + new TVariable(BuiltInId::gl_MaxTessControlAtomicCounterBuffers, + BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers); static_cast(m_gl_MaxTessControlAtomicCounterBuffers) ->shareConstPointer(unionArray); } m_gl_MaxTessControlAtomicCounterBuffersES3_2 = new TVariable(BuiltInId::gl_MaxTessControlAtomicCounterBuffersES3_2, BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers); static_cast(m_gl_MaxTessControlAtomicCounterBuffersES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessPatchComponents = - new TVariable(BuiltInId::gl_MaxTessPatchComponents, BuiltInName::gl_MaxTessPatchComponents, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, - StaticType::Get()); + m_gl_MaxTessPatchComponents = new TVariable( + BuiltInId::gl_MaxTessPatchComponents, BuiltInName::gl_MaxTessPatchComponents, + SymbolType::BuiltIn, std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessPatchComponents); static_cast(m_gl_MaxTessPatchComponents)->shareConstPointer(unionArray); } - m_gl_MaxTessPatchComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessPatchComponentsES3_2, - BuiltInName::gl_MaxTessPatchComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxTessPatchComponentsES3_2 = new TVariable( + BuiltInId::gl_MaxTessPatchComponentsES3_2, BuiltInName::gl_MaxTessPatchComponents, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessPatchComponents); static_cast(m_gl_MaxTessPatchComponentsES3_2)->shareConstPointer(unionArray); } m_gl_MaxPatchVertices = new TVariable( BuiltInId::gl_MaxPatchVertices, BuiltInName::gl_MaxPatchVertices, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxPatchVertices); static_cast(m_gl_MaxPatchVertices)->shareConstPointer(unionArray); } - m_gl_MaxPatchVerticesES3_2 = new TVariable( - BuiltInId::gl_MaxPatchVerticesES3_2, BuiltInName::gl_MaxPatchVertices, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxPatchVerticesES3_2 = + new TVariable(BuiltInId::gl_MaxPatchVerticesES3_2, BuiltInName::gl_MaxPatchVertices, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxPatchVertices); static_cast(m_gl_MaxPatchVerticesES3_2)->shareConstPointer(unionArray); } m_gl_MaxTessGenLevel = new TVariable( BuiltInId::gl_MaxTessGenLevel, BuiltInName::gl_MaxTessGenLevel, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessGenLevel); static_cast(m_gl_MaxTessGenLevel)->shareConstPointer(unionArray); } - m_gl_MaxTessGenLevelES3_2 = new TVariable( - BuiltInId::gl_MaxTessGenLevelES3_2, BuiltInName::gl_MaxTessGenLevel, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + m_gl_MaxTessGenLevelES3_2 = + new TVariable(BuiltInId::gl_MaxTessGenLevelES3_2, BuiltInName::gl_MaxTessGenLevel, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessGenLevel); static_cast(m_gl_MaxTessGenLevelES3_2)->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationInputComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationInputComponents, - BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationInputComponents = + new TVariable(BuiltInId::gl_MaxTessEvaluationInputComponents, + BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents); static_cast(m_gl_MaxTessEvaluationInputComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationInputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationInputComponentsES3_2, BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents); static_cast(m_gl_MaxTessEvaluationInputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationOutputComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationOutputComponents, - BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationOutputComponents = + new TVariable(BuiltInId::gl_MaxTessEvaluationOutputComponents, + BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents); static_cast(m_gl_MaxTessEvaluationOutputComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationOutputComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationOutputComponentsES3_2, BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents); static_cast(m_gl_MaxTessEvaluationOutputComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationTextureImageUnits = new TVariable( - BuiltInId::gl_MaxTessEvaluationTextureImageUnits, - BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationTextureImageUnits = + new TVariable(BuiltInId::gl_MaxTessEvaluationTextureImageUnits, + BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits); static_cast(m_gl_MaxTessEvaluationTextureImageUnits) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationTextureImageUnitsES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationTextureImageUnitsES3_2, BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits); static_cast(m_gl_MaxTessEvaluationTextureImageUnitsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationUniformComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationUniformComponents, - BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationUniformComponents = + new TVariable(BuiltInId::gl_MaxTessEvaluationUniformComponents, + BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents); static_cast(m_gl_MaxTessEvaluationUniformComponents) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationUniformComponentsES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationUniformComponentsES3_2, BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents); static_cast(m_gl_MaxTessEvaluationUniformComponentsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationImageUniforms = new TVariable( - BuiltInId::gl_MaxTessEvaluationImageUniforms, - BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationImageUniforms = + new TVariable(BuiltInId::gl_MaxTessEvaluationImageUniforms, + BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms); static_cast(m_gl_MaxTessEvaluationImageUniforms) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationImageUniformsES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationImageUniformsES3_2, BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms); static_cast(m_gl_MaxTessEvaluationImageUniformsES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationAtomicCounters = new TVariable( - BuiltInId::gl_MaxTessEvaluationAtomicCounters, - BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationAtomicCounters = + new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounters, + BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters); static_cast(m_gl_MaxTessEvaluationAtomicCounters) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationAtomicCountersES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCountersES3_2, BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters); static_cast(m_gl_MaxTessEvaluationAtomicCountersES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxTessEvaluationAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffers, - BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); + m_gl_MaxTessEvaluationAtomicCounterBuffers = + new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffers, + BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers); static_cast(m_gl_MaxTessEvaluationAtomicCounterBuffers) ->shareConstPointer(unionArray); } m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2 = new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffersES3_2, BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); + std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers); static_cast(m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2) ->shareConstPointer(unionArray); } - m_gl_MaxSamples = new TVariable(BuiltInId::gl_MaxSamples, BuiltInName::gl_MaxSamples, - SymbolType::BuiltIn, TExtension::OES_sample_variables, - StaticType::Get()); + m_gl_MaxSamples = + new TVariable(BuiltInId::gl_MaxSamples, BuiltInName::gl_MaxSamples, SymbolType::BuiltIn, + std::array{{TExtension::OES_sample_variables}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxSamples); static_cast(m_gl_MaxSamples)->shareConstPointer(unionArray); } - m_gl_MaxSamplesES3_2 = new TVariable(BuiltInId::gl_MaxSamplesES3_2, BuiltInName::gl_MaxSamples, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); + m_gl_MaxSamplesES3_2 = + new TVariable(BuiltInId::gl_MaxSamplesES3_2, BuiltInName::gl_MaxSamples, + SymbolType::BuiltIn, std::array{{TExtension::UNDEFINED}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxSamples); static_cast(m_gl_MaxSamplesES3_2)->shareConstPointer(unionArray); } m_gl_MaxClipDistancesAPPLE = new TVariable( BuiltInId::gl_MaxClipDistancesAPPLE, BuiltInName::gl_MaxClipDistances, SymbolType::BuiltIn, - TExtension::APPLE_clip_distance, StaticType::Get()); + std::array{{TExtension::APPLE_clip_distance}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxClipDistances); static_cast(m_gl_MaxClipDistancesAPPLE)->shareConstPointer(unionArray); } m_gl_MaxCullDistancesEXT = new TVariable( BuiltInId::gl_MaxCullDistancesEXT, BuiltInName::gl_MaxCullDistances, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, StaticType::Get()); + std::array{{TExtension::EXT_clip_cull_distance}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCullDistances); static_cast(m_gl_MaxCullDistancesEXT)->shareConstPointer(unionArray); } - m_gl_MaxCombinedClipAndCullDistancesEXT = new TVariable( - BuiltInId::gl_MaxCombinedClipAndCullDistancesEXT, - BuiltInName::gl_MaxCombinedClipAndCullDistances, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, StaticType::Get()); + m_gl_MaxCombinedClipAndCullDistancesEXT = + new TVariable(BuiltInId::gl_MaxCombinedClipAndCullDistancesEXT, + BuiltInName::gl_MaxCombinedClipAndCullDistances, SymbolType::BuiltIn, + std::array{{TExtension::EXT_clip_cull_distance}}, + StaticType::Get()); { TConstantUnion *unionArray = new TConstantUnion[1]; unionArray[0].setIConst(resources.MaxCombinedClipAndCullDistances); static_cast(m_gl_MaxCombinedClipAndCullDistancesEXT) ->shareConstPointer(unionArray); @@ -25449,326 +25619,365 @@ else { type_gl_FragData->makeArray(1u); } type_gl_FragData->realize(); - m_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData); + m_gl_FragData = + new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_FragData); TType *type_gl_SecondaryFragDataEXT = new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1); type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers); type_gl_SecondaryFragDataEXT->realize(); m_gl_SecondaryFragDataEXT = new TVariable( BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT, - SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT); - TType *type_gl_FragDepthEXT = new TType( - EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1); + SymbolType::BuiltIn, std::array{{TExtension::EXT_blend_func_extended}}, + type_gl_SecondaryFragDataEXT); + TType *type_gl_FragDepthEXT = + new TType(EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepth, 1); type_gl_FragDepthEXT->realize(); - m_gl_FragDepthEXT = - new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn, - TExtension::EXT_frag_depth, type_gl_FragDepthEXT); + m_gl_FragDepthEXT = new TVariable( + BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn, + std::array{{TExtension::EXT_frag_depth}}, type_gl_FragDepthEXT); TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); type_gl_LastFragData->makeArray(resources.MaxDrawBuffers); type_gl_LastFragData->realize(); m_gl_LastFragData = new TVariable(BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::EXT_shader_framebuffer_fetch, type_gl_LastFragData); + std::array{{TExtension::EXT_shader_framebuffer_fetch}}, + type_gl_LastFragData); TType *type_gl_LastFragDataNonCoherent = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); type_gl_LastFragDataNonCoherent->makeArray(resources.MaxDrawBuffers); type_gl_LastFragDataNonCoherent->realize(); m_gl_LastFragDataNonCoherent = new TVariable( BuiltInId::gl_LastFragDataNonCoherent, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::EXT_shader_framebuffer_fetch_non_coherent, type_gl_LastFragDataNonCoherent); + std::array{{TExtension::EXT_shader_framebuffer_fetch_non_coherent}}, + type_gl_LastFragDataNonCoherent); TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers); type_gl_LastFragDataNV->realize(); m_gl_LastFragDataNV = new TVariable( BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV); + std::array{{TExtension::NV_shader_framebuffer_fetch}}, + type_gl_LastFragDataNV); TType *type_gl_SampleMaskIn = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1); type_gl_SampleMaskIn->makeArray((resources.MaxSamples + 31) / 32); type_gl_SampleMaskIn->realize(); - m_gl_SampleMaskIn = - new TVariable(BuiltInId::gl_SampleMaskIn, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn, - TExtension::OES_sample_variables, type_gl_SampleMaskIn); + m_gl_SampleMaskIn = new TVariable( + BuiltInId::gl_SampleMaskIn, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn, + std::array{{TExtension::OES_sample_variables}}, type_gl_SampleMaskIn); TType *type_gl_SampleMaskInES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1); type_gl_SampleMaskInES3_2->makeArray((resources.MaxSamples + 31) / 32); type_gl_SampleMaskInES3_2->realize(); - m_gl_SampleMaskInES3_2 = - new TVariable(BuiltInId::gl_SampleMaskInES3_2, BuiltInName::gl_SampleMaskIn, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_SampleMaskInES3_2); + m_gl_SampleMaskInES3_2 = new TVariable( + BuiltInId::gl_SampleMaskInES3_2, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_SampleMaskInES3_2); TType *type_gl_SampleMask = new TType(EbtInt, EbpHigh, EvqSampleMask, 1); type_gl_SampleMask->makeArray((resources.MaxSamples + 31) / 32); type_gl_SampleMask->realize(); - m_gl_SampleMask = - new TVariable(BuiltInId::gl_SampleMask, BuiltInName::gl_SampleMask, SymbolType::BuiltIn, - TExtension::OES_sample_variables, type_gl_SampleMask); + m_gl_SampleMask = new TVariable( + BuiltInId::gl_SampleMask, BuiltInName::gl_SampleMask, SymbolType::BuiltIn, + std::array{{TExtension::OES_sample_variables}}, type_gl_SampleMask); TType *type_gl_SampleMaskES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMask, 1); type_gl_SampleMaskES3_2->makeArray((resources.MaxSamples + 31) / 32); type_gl_SampleMaskES3_2->realize(); - m_gl_SampleMaskES3_2 = - new TVariable(BuiltInId::gl_SampleMaskES3_2, BuiltInName::gl_SampleMask, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_SampleMaskES3_2); + m_gl_SampleMaskES3_2 = new TVariable( + BuiltInId::gl_SampleMaskES3_2, BuiltInName::gl_SampleMask, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_SampleMaskES3_2); TType *type_gl_CullDistance = new TType(EbtFloat, EbpHigh, EvqCullDistance, 1); type_gl_CullDistance->makeArray(resources.MaxCullDistances); type_gl_CullDistance->realize(); - m_gl_CullDistance = - new TVariable(BuiltInId::gl_CullDistance, BuiltInName::gl_CullDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_CullDistance); + m_gl_CullDistance = new TVariable( + BuiltInId::gl_CullDistance, BuiltInName::gl_CullDistance, SymbolType::BuiltIn, + std::array{{TExtension::EXT_clip_cull_distance}}, type_gl_CullDistance); TType *type_gl_ClipDistance = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1); type_gl_ClipDistance->makeArray(resources.MaxClipDistances); type_gl_ClipDistance->realize(); - m_gl_ClipDistance = - new TVariable(BuiltInId::gl_ClipDistance, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_ClipDistance); + m_gl_ClipDistance = new TVariable( + BuiltInId::gl_ClipDistance, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn, + std::array{{TExtension::EXT_clip_cull_distance}}, type_gl_ClipDistance); TType *type_gl_ClipDistanceAPPLE = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1); type_gl_ClipDistanceAPPLE->makeArray(resources.MaxClipDistances); type_gl_ClipDistanceAPPLE->realize(); m_gl_ClipDistanceAPPLE = new TVariable( BuiltInId::gl_ClipDistanceAPPLE, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn, - TExtension::APPLE_clip_distance, type_gl_ClipDistanceAPPLE); + std::array{{TExtension::APPLE_clip_distance}}, type_gl_ClipDistanceAPPLE); TType *type_gl_CullDistanceEXT = new TType(EbtFloat, EbpHigh, EvqCullDistance, 1); type_gl_CullDistanceEXT->makeArray(resources.MaxCullDistances); type_gl_CullDistanceEXT->realize(); m_gl_CullDistanceEXT = new TVariable( BuiltInId::gl_CullDistanceEXT, BuiltInName::gl_CullDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_CullDistanceEXT); + std::array{{TExtension::EXT_clip_cull_distance}}, type_gl_CullDistanceEXT); TFieldList *fields_gl_PerVertex = new TFieldList(); fields_gl_PerVertex->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); TInterfaceBlock *gl_PerVertex = new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex, - TExtension::EXT_geometry_shader, fields_gl_PerVertex); + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + fields_gl_PerVertex); m_gl_PerVertex = gl_PerVertex; TFieldList *fields_gl_PerVertexES3_2 = new TFieldList(); fields_gl_PerVertexES3_2->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexES3_2); + TInterfaceBlock *gl_PerVertexES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexES3_2); m_gl_PerVertexES3_2 = gl_PerVertexES3_2; TType *type_gl_in = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_in->makeArray(0u); type_gl_in->realize(); m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, type_gl_in); + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + type_gl_in); TType *type_gl_inES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_inES3_2->makeArray(0u); type_gl_inES3_2->realize(); - m_gl_inES3_2 = new TVariable(BuiltInId::gl_inES3_2, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_inES3_2); + m_gl_inES3_2 = + new TVariable(BuiltInId::gl_inES3_2, BuiltInName::gl_in, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_inES3_2); TFieldList *fields_gl_PerVertexOutBlock = new TFieldList(); fields_gl_PerVertexOutBlock->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); TInterfaceBlock *gl_PerVertexOutBlock = new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_geometry_shader, fields_gl_PerVertexOutBlock); + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + fields_gl_PerVertexOutBlock); TFieldList *fields_gl_PerVertexOutBlockES3_2 = new TFieldList(); fields_gl_PerVertexOutBlockES3_2->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutBlockES3_2); + TInterfaceBlock *gl_PerVertexOutBlockES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexOutBlockES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutBlockES3_2); TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock); type_gl_PositionGS->realize(); m_gl_PositionGS = new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, type_gl_PositionGS); + std::array{ + {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}}, + type_gl_PositionGS); TType *type_gl_PositionGSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionGSES3_2->setInterfaceBlock(gl_PerVertexOutBlockES3_2); type_gl_PositionGSES3_2->realize(); m_gl_PositionGSES3_2 = new TVariable(BuiltInId::gl_PositionGSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionGSES3_2); + std::array{{TExtension::UNDEFINED}}, type_gl_PositionGSES3_2); TType *type_gl_TessLevelOuterTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); type_gl_TessLevelOuterTCS->makeArray(4u); type_gl_TessLevelOuterTCS->realize(); m_gl_TessLevelOuterTCS = new TVariable( BuiltInId::gl_TessLevelOuterTCS, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelOuterTCS); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_TessLevelOuterTCS); TType *type_gl_TessLevelOuterTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); type_gl_TessLevelOuterTCSES3_2->makeArray(4u); type_gl_TessLevelOuterTCSES3_2->realize(); - m_gl_TessLevelOuterTCSES3_2 = - new TVariable(BuiltInId::gl_TessLevelOuterTCSES3_2, BuiltInName::gl_TessLevelOuter, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelOuterTCSES3_2); + m_gl_TessLevelOuterTCSES3_2 = new TVariable( + BuiltInId::gl_TessLevelOuterTCSES3_2, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_TessLevelOuterTCSES3_2); TType *type_gl_TessLevelInnerTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); type_gl_TessLevelInnerTCS->makeArray(2u); type_gl_TessLevelInnerTCS->realize(); m_gl_TessLevelInnerTCS = new TVariable( BuiltInId::gl_TessLevelInnerTCS, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelInnerTCS); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_TessLevelInnerTCS); TType *type_gl_TessLevelInnerTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); type_gl_TessLevelInnerTCSES3_2->makeArray(2u); type_gl_TessLevelInnerTCSES3_2->realize(); - m_gl_TessLevelInnerTCSES3_2 = - new TVariable(BuiltInId::gl_TessLevelInnerTCSES3_2, BuiltInName::gl_TessLevelInner, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelInnerTCSES3_2); + m_gl_TessLevelInnerTCSES3_2 = new TVariable( + BuiltInId::gl_TessLevelInnerTCSES3_2, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_TessLevelInnerTCSES3_2); TFieldList *fields_gl_PerVertexTCS = new TFieldList(); fields_gl_PerVertexTCS->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTCS = - new TInterfaceBlock(BuiltInId::gl_PerVertexTCS, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexTCS); + TInterfaceBlock *gl_PerVertexTCS = new TInterfaceBlock( + BuiltInId::gl_PerVertexTCS, BuiltInName::gl_PerVertex, + std::array{{TExtension::EXT_tessellation_shader}}, fields_gl_PerVertexTCS); m_gl_PerVertexTCS = gl_PerVertexTCS; TFieldList *fields_gl_PerVertexTCSES3_2 = new TFieldList(); fields_gl_PerVertexTCSES3_2->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTCSES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexTCSES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexTCSES3_2); + TInterfaceBlock *gl_PerVertexTCSES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexTCSES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexTCSES3_2); m_gl_PerVertexTCSES3_2 = gl_PerVertexTCSES3_2; TType *type_gl_inTCS = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_inTCS->makeArray(resources.MaxPatchVertices); type_gl_inTCS->realize(); m_gl_inTCS = new TVariable(BuiltInId::gl_inTCS, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_inTCS); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_inTCS); TType *type_gl_inTCSES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_inTCSES3_2->makeArray(resources.MaxPatchVertices); type_gl_inTCSES3_2->realize(); - m_gl_inTCSES3_2 = new TVariable(BuiltInId::gl_inTCSES3_2, BuiltInName::gl_in, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_inTCSES3_2); + m_gl_inTCSES3_2 = + new TVariable(BuiltInId::gl_inTCSES3_2, BuiltInName::gl_in, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_inTCSES3_2); TType *type_gl_outTCS = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); type_gl_outTCS->makeArray(resources.MaxPatchVertices); type_gl_outTCS->realize(); m_gl_outTCS = new TVariable(BuiltInId::gl_outTCS, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_outTCS); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_outTCS); TType *type_gl_outTCSES3_2 = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); type_gl_outTCSES3_2->makeArray(resources.MaxPatchVertices); type_gl_outTCSES3_2->realize(); m_gl_outTCSES3_2 = new TVariable(BuiltInId::gl_outTCSES3_2, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_outTCSES3_2); + std::array{{TExtension::UNDEFINED}}, type_gl_outTCSES3_2); TFieldList *fields_gl_PerVertexOutTcsBlock = new TFieldList(); fields_gl_PerVertexOutTcsBlock->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); TInterfaceBlock *gl_PerVertexOutTcsBlock = new TInterfaceBlock(BuiltInId::gl_PerVertexOutTcsBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexOutTcsBlock); + std::array{{TExtension::EXT_tessellation_shader}}, + fields_gl_PerVertexOutTcsBlock); TFieldList *fields_gl_PerVertexOutTcsBlockES3_2 = new TFieldList(); fields_gl_PerVertexOutTcsBlockES3_2->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTcsBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTcsBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutTcsBlockES3_2); + TInterfaceBlock *gl_PerVertexOutTcsBlockES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexOutTcsBlockES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutTcsBlockES3_2); TType *type_gl_PositionTCS = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionTCS->setInterfaceBlock(gl_PerVertexOutTcsBlock); type_gl_PositionTCS->realize(); - m_gl_PositionTCS = - new TVariable(BuiltInId::gl_PositionTCS, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_PositionTCS); + m_gl_PositionTCS = new TVariable( + BuiltInId::gl_PositionTCS, BuiltInName::gl_Position, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, type_gl_PositionTCS); TType *type_gl_PositionTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionTCSES3_2->setInterfaceBlock(gl_PerVertexOutTcsBlockES3_2); type_gl_PositionTCSES3_2->realize(); - m_gl_PositionTCSES3_2 = - new TVariable(BuiltInId::gl_PositionTCSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionTCSES3_2); + m_gl_PositionTCSES3_2 = new TVariable( + BuiltInId::gl_PositionTCSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_PositionTCSES3_2); + TType *type_gl_BoundingBoxEXTTCS = new TType(EbtFloat, EbpHigh, EvqBoundingBoxEXT, 4); + type_gl_BoundingBoxEXTTCS->makeArray(4u); + type_gl_BoundingBoxEXTTCS->realize(); + m_gl_BoundingBoxEXTTCS = new TVariable( + BuiltInId::gl_BoundingBoxEXTTCS, BuiltInName::gl_BoundingBoxEXT, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_BoundingBoxEXTTCS); + TType *type_gl_BoundingBoxEXTTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqBoundingBoxEXT, 4); + type_gl_BoundingBoxEXTTCSES3_2->makeArray(4u); + type_gl_BoundingBoxEXTTCSES3_2->realize(); + m_gl_BoundingBoxEXTTCSES3_2 = new TVariable( + BuiltInId::gl_BoundingBoxEXTTCSES3_2, BuiltInName::gl_BoundingBoxEXT, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_BoundingBoxEXTTCSES3_2); TType *type_gl_TessLevelOuterTES = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); type_gl_TessLevelOuterTES->makeArray(4u); type_gl_TessLevelOuterTES->realize(); m_gl_TessLevelOuterTES = new TVariable( BuiltInId::gl_TessLevelOuterTES, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelOuterTES); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_TessLevelOuterTES); TType *type_gl_TessLevelOuterTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); type_gl_TessLevelOuterTESES3_2->makeArray(4u); type_gl_TessLevelOuterTESES3_2->realize(); - m_gl_TessLevelOuterTESES3_2 = - new TVariable(BuiltInId::gl_TessLevelOuterTESES3_2, BuiltInName::gl_TessLevelOuter, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelOuterTESES3_2); + m_gl_TessLevelOuterTESES3_2 = new TVariable( + BuiltInId::gl_TessLevelOuterTESES3_2, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_TessLevelOuterTESES3_2); TType *type_gl_TessLevelInnerTES = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); type_gl_TessLevelInnerTES->makeArray(2u); type_gl_TessLevelInnerTES->realize(); m_gl_TessLevelInnerTES = new TVariable( BuiltInId::gl_TessLevelInnerTES, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelInnerTES); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_TessLevelInnerTES); TType *type_gl_TessLevelInnerTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); type_gl_TessLevelInnerTESES3_2->makeArray(2u); type_gl_TessLevelInnerTESES3_2->realize(); - m_gl_TessLevelInnerTESES3_2 = - new TVariable(BuiltInId::gl_TessLevelInnerTESES3_2, BuiltInName::gl_TessLevelInner, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelInnerTESES3_2); + m_gl_TessLevelInnerTESES3_2 = new TVariable( + BuiltInId::gl_TessLevelInnerTESES3_2, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_TessLevelInnerTESES3_2); TFieldList *fields_gl_PerVertexTES = new TFieldList(); fields_gl_PerVertexTES->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTES = - new TInterfaceBlock(BuiltInId::gl_PerVertexTES, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexTES); + TInterfaceBlock *gl_PerVertexTES = new TInterfaceBlock( + BuiltInId::gl_PerVertexTES, BuiltInName::gl_PerVertex, + std::array{{TExtension::EXT_tessellation_shader}}, fields_gl_PerVertexTES); m_gl_PerVertexTES = gl_PerVertexTES; TFieldList *fields_gl_PerVertexTESES3_2 = new TFieldList(); fields_gl_PerVertexTESES3_2->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTESES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexTESES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexTESES3_2); + TInterfaceBlock *gl_PerVertexTESES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexTESES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexTESES3_2); m_gl_PerVertexTESES3_2 = gl_PerVertexTESES3_2; TType *type_gl_inTES = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_inTES->makeArray(resources.MaxPatchVertices); type_gl_inTES->realize(); m_gl_inTES = new TVariable(BuiltInId::gl_inTES, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_inTES); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_inTES); TType *type_gl_inTESES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); type_gl_inTESES3_2->makeArray(resources.MaxPatchVertices); type_gl_inTESES3_2->realize(); - m_gl_inTESES3_2 = new TVariable(BuiltInId::gl_inTESES3_2, BuiltInName::gl_in, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_inTESES3_2); + m_gl_inTESES3_2 = + new TVariable(BuiltInId::gl_inTESES3_2, BuiltInName::gl_in, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_inTESES3_2); TType *type_gl_outTES = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); type_gl_outTES->makeArray(resources.MaxPatchVertices); type_gl_outTES->realize(); m_gl_outTES = new TVariable(BuiltInId::gl_outTES, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_outTES); + std::array{{TExtension::EXT_tessellation_shader}}, + type_gl_outTES); TType *type_gl_outTESES3_2 = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); type_gl_outTESES3_2->makeArray(resources.MaxPatchVertices); type_gl_outTESES3_2->realize(); m_gl_outTESES3_2 = new TVariable(BuiltInId::gl_outTESES3_2, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_outTESES3_2); + std::array{{TExtension::UNDEFINED}}, type_gl_outTESES3_2); TFieldList *fields_gl_PerVertexOutTesBlock = new TFieldList(); fields_gl_PerVertexOutTesBlock->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); TInterfaceBlock *gl_PerVertexOutTesBlock = new TInterfaceBlock(BuiltInId::gl_PerVertexOutTesBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexOutTesBlock); + std::array{{TExtension::EXT_tessellation_shader}}, + fields_gl_PerVertexOutTesBlock); TFieldList *fields_gl_PerVertexOutTesBlockES3_2 = new TFieldList(); fields_gl_PerVertexOutTesBlockES3_2->push_back( new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTesBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTesBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutTesBlockES3_2); + TInterfaceBlock *gl_PerVertexOutTesBlockES3_2 = new TInterfaceBlock( + BuiltInId::gl_PerVertexOutTesBlockES3_2, BuiltInName::gl_PerVertex, + std::array{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutTesBlockES3_2); TType *type_gl_PositionTES = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionTES->setInterfaceBlock(gl_PerVertexOutTesBlock); type_gl_PositionTES->realize(); - m_gl_PositionTES = - new TVariable(BuiltInId::gl_PositionTES, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_PositionTES); + m_gl_PositionTES = new TVariable( + BuiltInId::gl_PositionTES, BuiltInName::gl_Position, SymbolType::BuiltIn, + std::array{{TExtension::EXT_tessellation_shader}}, type_gl_PositionTES); TType *type_gl_PositionTESES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); type_gl_PositionTESES3_2->setInterfaceBlock(gl_PerVertexOutTesBlockES3_2); type_gl_PositionTESES3_2->realize(); - m_gl_PositionTESES3_2 = - new TVariable(BuiltInId::gl_PositionTESES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionTESES3_2); + m_gl_PositionTESES3_2 = new TVariable( + BuiltInId::gl_PositionTESES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, + std::array{{TExtension::UNDEFINED}}, type_gl_PositionTESES3_2); } namespace { uint16_t GetNextRuleIndex(uint32_t nameHash) { - if (nameHash == 1625 - 1) + if (nameHash == 1632 - 1) return ArraySize(BuiltInArray::kRules); return BuiltInArray::kMangledOffsets[nameHash + 1]; } } // namespace @@ -25776,11 +25985,11 @@ { if (name.length() > 40) return nullptr; uint32_t nameHash = name.mangledNameHash(); - if (nameHash >= 1625) + if (nameHash >= 1632) return nullptr; const char *actualName = BuiltInArray::kMangledNames[nameHash]; if (name != actualName) return nullptr; @@ -25798,15 +26007,13 @@ { if (name.length() > 26) return false; uint32_t nameHash = name.unmangledNameHash(); - if (nameHash >= 166) + if (nameHash >= 167) return false; return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType, extensions); } } // namespace sh - -#endif // ANGLE_TRANSLATOR_ESSL_ONLY diff --git a/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.h b/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.h --- a/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.h +++ b/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.h @@ -143,10 +143,12 @@ TSymbol *m_gl_inTCSES3_2 = nullptr; TSymbol *m_gl_outTCS = nullptr; TSymbol *m_gl_outTCSES3_2 = nullptr; TSymbol *m_gl_PositionTCS = nullptr; TSymbol *m_gl_PositionTCSES3_2 = nullptr; + TSymbol *m_gl_BoundingBoxEXTTCS = nullptr; + TSymbol *m_gl_BoundingBoxEXTTCSES3_2 = nullptr; TSymbol *m_gl_TessLevelOuterTES = nullptr; TSymbol *m_gl_TessLevelOuterTESES3_2 = nullptr; TSymbol *m_gl_TessLevelInnerTES = nullptr; TSymbol *m_gl_TessLevelInnerTESES3_2 = nullptr; TSymbol *m_gl_PerVertexTES = nullptr; diff --git a/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.cpp b/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.cpp +++ /dev/null @@ -1,39745 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_builtin_symbols.py using data from builtin_variables.json and -// builtin_function_declarations.txt. -// -// 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. -// -// SymbolTable_autogen.cpp: -// Compile-time initialized built-ins. - -#ifndef ANGLE_TRANSLATOR_ESSL_ONLY - -# include "compiler/translator/SymbolTable.h" - -# include "angle_gl.h" -# include "compiler/translator/ImmutableString.h" -# include "compiler/translator/StaticType.h" -# include "compiler/translator/Symbol.h" -# include "compiler/translator/SymbolTable.h" -# include "compiler/translator/tree_util/BuiltIn.h" - -namespace sh -{ -using Resources = ShBuiltInResources; -using TableBase = TSymbolTableBase; - -// Since some of the BuiltInId declarations are used outside of constexpr expressions, we need to -// have these definitions without an initializer. C++17 should eventually remove the need for this. -constexpr const TSymbolUniqueId BuiltInId::radians_Float1; -constexpr const TSymbolUniqueId BuiltInId::radians_Float2; -constexpr const TSymbolUniqueId BuiltInId::radians_Float3; -constexpr const TSymbolUniqueId BuiltInId::radians_Float4; -constexpr const TSymbolUniqueId BuiltInId::degrees_Float1; -constexpr const TSymbolUniqueId BuiltInId::degrees_Float2; -constexpr const TSymbolUniqueId BuiltInId::degrees_Float3; -constexpr const TSymbolUniqueId BuiltInId::degrees_Float4; -constexpr const TSymbolUniqueId BuiltInId::sin_Float1; -constexpr const TSymbolUniqueId BuiltInId::sin_Float2; -constexpr const TSymbolUniqueId BuiltInId::sin_Float3; -constexpr const TSymbolUniqueId BuiltInId::sin_Float4; -constexpr const TSymbolUniqueId BuiltInId::cos_Float1; -constexpr const TSymbolUniqueId BuiltInId::cos_Float2; -constexpr const TSymbolUniqueId BuiltInId::cos_Float3; -constexpr const TSymbolUniqueId BuiltInId::cos_Float4; -constexpr const TSymbolUniqueId BuiltInId::tan_Float1; -constexpr const TSymbolUniqueId BuiltInId::tan_Float2; -constexpr const TSymbolUniqueId BuiltInId::tan_Float3; -constexpr const TSymbolUniqueId BuiltInId::tan_Float4; -constexpr const TSymbolUniqueId BuiltInId::asin_Float1; -constexpr const TSymbolUniqueId BuiltInId::asin_Float2; -constexpr const TSymbolUniqueId BuiltInId::asin_Float3; -constexpr const TSymbolUniqueId BuiltInId::asin_Float4; -constexpr const TSymbolUniqueId BuiltInId::acos_Float1; -constexpr const TSymbolUniqueId BuiltInId::acos_Float2; -constexpr const TSymbolUniqueId BuiltInId::acos_Float3; -constexpr const TSymbolUniqueId BuiltInId::acos_Float4; -constexpr const TSymbolUniqueId BuiltInId::atan_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::atan_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::atan_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::atan_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::atan_Float1; -constexpr const TSymbolUniqueId BuiltInId::atan_Float2; -constexpr const TSymbolUniqueId BuiltInId::atan_Float3; -constexpr const TSymbolUniqueId BuiltInId::atan_Float4; -constexpr const TSymbolUniqueId BuiltInId::sinh_Float1; -constexpr const TSymbolUniqueId BuiltInId::sinh_Float2; -constexpr const TSymbolUniqueId BuiltInId::sinh_Float3; -constexpr const TSymbolUniqueId BuiltInId::sinh_Float4; -constexpr const TSymbolUniqueId BuiltInId::cosh_Float1; -constexpr const TSymbolUniqueId BuiltInId::cosh_Float2; -constexpr const TSymbolUniqueId BuiltInId::cosh_Float3; -constexpr const TSymbolUniqueId BuiltInId::cosh_Float4; -constexpr const TSymbolUniqueId BuiltInId::tanh_Float1; -constexpr const TSymbolUniqueId BuiltInId::tanh_Float2; -constexpr const TSymbolUniqueId BuiltInId::tanh_Float3; -constexpr const TSymbolUniqueId BuiltInId::tanh_Float4; -constexpr const TSymbolUniqueId BuiltInId::asinh_Float1; -constexpr const TSymbolUniqueId BuiltInId::asinh_Float2; -constexpr const TSymbolUniqueId BuiltInId::asinh_Float3; -constexpr const TSymbolUniqueId BuiltInId::asinh_Float4; -constexpr const TSymbolUniqueId BuiltInId::acosh_Float1; -constexpr const TSymbolUniqueId BuiltInId::acosh_Float2; -constexpr const TSymbolUniqueId BuiltInId::acosh_Float3; -constexpr const TSymbolUniqueId BuiltInId::acosh_Float4; -constexpr const TSymbolUniqueId BuiltInId::atanh_Float1; -constexpr const TSymbolUniqueId BuiltInId::atanh_Float2; -constexpr const TSymbolUniqueId BuiltInId::atanh_Float3; -constexpr const TSymbolUniqueId BuiltInId::atanh_Float4; -constexpr const TSymbolUniqueId BuiltInId::pow_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::pow_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::pow_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::pow_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::exp_Float1; -constexpr const TSymbolUniqueId BuiltInId::exp_Float2; -constexpr const TSymbolUniqueId BuiltInId::exp_Float3; -constexpr const TSymbolUniqueId BuiltInId::exp_Float4; -constexpr const TSymbolUniqueId BuiltInId::log_Float1; -constexpr const TSymbolUniqueId BuiltInId::log_Float2; -constexpr const TSymbolUniqueId BuiltInId::log_Float3; -constexpr const TSymbolUniqueId BuiltInId::log_Float4; -constexpr const TSymbolUniqueId BuiltInId::exp2_Float1; -constexpr const TSymbolUniqueId BuiltInId::exp2_Float2; -constexpr const TSymbolUniqueId BuiltInId::exp2_Float3; -constexpr const TSymbolUniqueId BuiltInId::exp2_Float4; -constexpr const TSymbolUniqueId BuiltInId::log2_Float1; -constexpr const TSymbolUniqueId BuiltInId::log2_Float2; -constexpr const TSymbolUniqueId BuiltInId::log2_Float3; -constexpr const TSymbolUniqueId BuiltInId::log2_Float4; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Float1; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Float2; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Float3; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Float4; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Double1; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Double2; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Double3; -constexpr const TSymbolUniqueId BuiltInId::sqrt_Double4; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float1; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float2; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float3; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float4; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Double1; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Double2; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Double3; -constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Double4; -constexpr const TSymbolUniqueId BuiltInId::abs_Float1; -constexpr const TSymbolUniqueId BuiltInId::abs_Float2; -constexpr const TSymbolUniqueId BuiltInId::abs_Float3; -constexpr const TSymbolUniqueId BuiltInId::abs_Float4; -constexpr const TSymbolUniqueId BuiltInId::abs_Int1; -constexpr const TSymbolUniqueId BuiltInId::abs_Int2; -constexpr const TSymbolUniqueId BuiltInId::abs_Int3; -constexpr const TSymbolUniqueId BuiltInId::abs_Int4; -constexpr const TSymbolUniqueId BuiltInId::abs_Double1; -constexpr const TSymbolUniqueId BuiltInId::abs_Double2; -constexpr const TSymbolUniqueId BuiltInId::abs_Double3; -constexpr const TSymbolUniqueId BuiltInId::abs_Double4; -constexpr const TSymbolUniqueId BuiltInId::sign_Float1; -constexpr const TSymbolUniqueId BuiltInId::sign_Float2; -constexpr const TSymbolUniqueId BuiltInId::sign_Float3; -constexpr const TSymbolUniqueId BuiltInId::sign_Float4; -constexpr const TSymbolUniqueId BuiltInId::sign_Int1; -constexpr const TSymbolUniqueId BuiltInId::sign_Int2; -constexpr const TSymbolUniqueId BuiltInId::sign_Int3; -constexpr const TSymbolUniqueId BuiltInId::sign_Int4; -constexpr const TSymbolUniqueId BuiltInId::sign_Double1; -constexpr const TSymbolUniqueId BuiltInId::sign_Double2; -constexpr const TSymbolUniqueId BuiltInId::sign_Double3; -constexpr const TSymbolUniqueId BuiltInId::sign_Double4; -constexpr const TSymbolUniqueId BuiltInId::floor_Float1; -constexpr const TSymbolUniqueId BuiltInId::floor_Float2; -constexpr const TSymbolUniqueId BuiltInId::floor_Float3; -constexpr const TSymbolUniqueId BuiltInId::floor_Float4; -constexpr const TSymbolUniqueId BuiltInId::floor_Double1; -constexpr const TSymbolUniqueId BuiltInId::floor_Double2; -constexpr const TSymbolUniqueId BuiltInId::floor_Double3; -constexpr const TSymbolUniqueId BuiltInId::floor_Double4; -constexpr const TSymbolUniqueId BuiltInId::trunc_Float1; -constexpr const TSymbolUniqueId BuiltInId::trunc_Float2; -constexpr const TSymbolUniqueId BuiltInId::trunc_Float3; -constexpr const TSymbolUniqueId BuiltInId::trunc_Float4; -constexpr const TSymbolUniqueId BuiltInId::trunc_Double1; -constexpr const TSymbolUniqueId BuiltInId::trunc_Double2; -constexpr const TSymbolUniqueId BuiltInId::trunc_Double3; -constexpr const TSymbolUniqueId BuiltInId::trunc_Double4; -constexpr const TSymbolUniqueId BuiltInId::round_Float1; -constexpr const TSymbolUniqueId BuiltInId::round_Float2; -constexpr const TSymbolUniqueId BuiltInId::round_Float3; -constexpr const TSymbolUniqueId BuiltInId::round_Float4; -constexpr const TSymbolUniqueId BuiltInId::round_Double1; -constexpr const TSymbolUniqueId BuiltInId::round_Double2; -constexpr const TSymbolUniqueId BuiltInId::round_Double3; -constexpr const TSymbolUniqueId BuiltInId::round_Double4; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Float1; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Float2; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Float3; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Float4; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Double1; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Double2; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Double3; -constexpr const TSymbolUniqueId BuiltInId::roundEven_Double4; -constexpr const TSymbolUniqueId BuiltInId::ceil_Float1; -constexpr const TSymbolUniqueId BuiltInId::ceil_Float2; -constexpr const TSymbolUniqueId BuiltInId::ceil_Float3; -constexpr const TSymbolUniqueId BuiltInId::ceil_Float4; -constexpr const TSymbolUniqueId BuiltInId::ceil_Double1; -constexpr const TSymbolUniqueId BuiltInId::ceil_Double2; -constexpr const TSymbolUniqueId BuiltInId::ceil_Double3; -constexpr const TSymbolUniqueId BuiltInId::ceil_Double4; -constexpr const TSymbolUniqueId BuiltInId::fract_Float1; -constexpr const TSymbolUniqueId BuiltInId::fract_Float2; -constexpr const TSymbolUniqueId BuiltInId::fract_Float3; -constexpr const TSymbolUniqueId BuiltInId::fract_Float4; -constexpr const TSymbolUniqueId BuiltInId::fract_Double1; -constexpr const TSymbolUniqueId BuiltInId::fract_Double2; -constexpr const TSymbolUniqueId BuiltInId::fract_Double3; -constexpr const TSymbolUniqueId BuiltInId::fract_Double4; -constexpr const TSymbolUniqueId BuiltInId::mod_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::mod_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::mod_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::mod_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::mod_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::mod_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::mod_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::mod_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::mod_Double2_Double1; -constexpr const TSymbolUniqueId BuiltInId::mod_Double3_Double1; -constexpr const TSymbolUniqueId BuiltInId::mod_Double4_Double1; -constexpr const TSymbolUniqueId BuiltInId::mod_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::mod_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::mod_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::min_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::min_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::min_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::min_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::min_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::min_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::min_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::min_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::min_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::min_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::min_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::min_Double2_Double1; -constexpr const TSymbolUniqueId BuiltInId::min_Double3_Double1; -constexpr const TSymbolUniqueId BuiltInId::min_Double4_Double1; -constexpr const TSymbolUniqueId BuiltInId::min_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::min_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::min_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::min_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::min_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::min_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::min_Int4_Int1; -constexpr const TSymbolUniqueId BuiltInId::min_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::min_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::min_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::min_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::min_UInt2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::min_UInt3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::min_UInt4_UInt1; -constexpr const TSymbolUniqueId BuiltInId::max_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::max_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::max_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::max_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::max_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::max_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::max_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::max_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::max_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::max_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::max_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::max_Double2_Double1; -constexpr const TSymbolUniqueId BuiltInId::max_Double3_Double1; -constexpr const TSymbolUniqueId BuiltInId::max_Double4_Double1; -constexpr const TSymbolUniqueId BuiltInId::max_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::max_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::max_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::max_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::max_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::max_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::max_Int4_Int1; -constexpr const TSymbolUniqueId BuiltInId::max_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::max_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::max_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::max_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::max_UInt2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::max_UInt3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::max_UInt4_UInt1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float3_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float4_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::clamp_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double1_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double2_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double3_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double4_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double2_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double3_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::clamp_Double4_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int4_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int2_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int3_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::clamp_Int4_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::mix_Double1_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::mix_Double2_Double2_Double1; -constexpr const TSymbolUniqueId BuiltInId::mix_Double3_Double3_Double1; -constexpr const TSymbolUniqueId BuiltInId::mix_Double4_Double4_Double1; -constexpr const TSymbolUniqueId BuiltInId::mix_Double2_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::mix_Double3_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::mix_Double4_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Bool1; -constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::mix_Double1_Double1_Bool1; -constexpr const TSymbolUniqueId BuiltInId::mix_Double2_Double2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::mix_Double3_Double3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::mix_Double4_Double4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::mix_Int1_Int1_Bool1; -constexpr const TSymbolUniqueId BuiltInId::mix_Int2_Int2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::mix_Int3_Int3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::mix_Int4_Int4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::mix_UInt1_UInt1_Bool1; -constexpr const TSymbolUniqueId BuiltInId::mix_UInt2_UInt2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::mix_UInt3_UInt3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::mix_UInt4_UInt4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::mix_Bool1_Bool1_Bool1; -constexpr const TSymbolUniqueId BuiltInId::mix_Bool2_Bool2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::mix_Bool3_Bool3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::mix_Bool4_Bool4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::step_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::step_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::step_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float2; -constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float3; -constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float4; -constexpr const TSymbolUniqueId BuiltInId::step_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::step_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::step_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::step_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::step_Double1_Double2; -constexpr const TSymbolUniqueId BuiltInId::step_Double1_Double3; -constexpr const TSymbolUniqueId BuiltInId::step_Double1_Double4; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double1_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double2_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double3_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double4_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double1_Double1_Double2; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double1_Double1_Double3; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Double1_Double1_Double4; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float2; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float3; -constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float4; -constexpr const TSymbolUniqueId BuiltInId::modf_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::modf_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::modf_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::modf_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::modf_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::modf_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::modf_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::modf_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::isnan_Float1; -constexpr const TSymbolUniqueId BuiltInId::isnan_Float2; -constexpr const TSymbolUniqueId BuiltInId::isnan_Float3; -constexpr const TSymbolUniqueId BuiltInId::isnan_Float4; -constexpr const TSymbolUniqueId BuiltInId::isnan_Double1; -constexpr const TSymbolUniqueId BuiltInId::isnan_Double2; -constexpr const TSymbolUniqueId BuiltInId::isnan_Double3; -constexpr const TSymbolUniqueId BuiltInId::isnan_Double4; -constexpr const TSymbolUniqueId BuiltInId::isinf_Float1; -constexpr const TSymbolUniqueId BuiltInId::isinf_Float2; -constexpr const TSymbolUniqueId BuiltInId::isinf_Float3; -constexpr const TSymbolUniqueId BuiltInId::isinf_Float4; -constexpr const TSymbolUniqueId BuiltInId::isinf_Double1; -constexpr const TSymbolUniqueId BuiltInId::isinf_Double2; -constexpr const TSymbolUniqueId BuiltInId::isinf_Double3; -constexpr const TSymbolUniqueId BuiltInId::isinf_Double4; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float1; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float2; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float3; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float4; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float1; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float2; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float3; -constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float4; -constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int1; -constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int2; -constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int3; -constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int4; -constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt1; -constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt2; -constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt3; -constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt4; -constexpr const TSymbolUniqueId BuiltInId::fma_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::fma_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::fma_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::fma_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::fma_Double1_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::fma_Double2_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::fma_Double3_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::fma_Double4_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::frexp_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::frexp_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::frexp_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::frexp_Float4_Int4; -constexpr const TSymbolUniqueId BuiltInId::frexp_Double1_Int1; -constexpr const TSymbolUniqueId BuiltInId::frexp_Double2_Int2; -constexpr const TSymbolUniqueId BuiltInId::frexp_Double3_Int3; -constexpr const TSymbolUniqueId BuiltInId::frexp_Double4_Int4; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Float4_Int4; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Double1_Int1; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Double2_Int2; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Double3_Int3; -constexpr const TSymbolUniqueId BuiltInId::ldexp_Double4_Int4; -constexpr const TSymbolUniqueId BuiltInId::packSnorm2x16_Float2; -constexpr const TSymbolUniqueId BuiltInId::packHalf2x16_Float2; -constexpr const TSymbolUniqueId BuiltInId::unpackSnorm2x16_UInt1; -constexpr const TSymbolUniqueId BuiltInId::unpackHalf2x16_UInt1; -constexpr const TSymbolUniqueId BuiltInId::packUnorm2x16_Float2; -constexpr const TSymbolUniqueId BuiltInId::unpackUnorm2x16_UInt1; -constexpr const TSymbolUniqueId BuiltInId::packUnorm4x8_Float4; -constexpr const TSymbolUniqueId BuiltInId::packSnorm4x8_Float4; -constexpr const TSymbolUniqueId BuiltInId::unpackUnorm4x8_UInt1; -constexpr const TSymbolUniqueId BuiltInId::unpackSnorm4x8_UInt1; -constexpr const TSymbolUniqueId BuiltInId::packDouble2x32_UInt2; -constexpr const TSymbolUniqueId BuiltInId::unpackDouble2x32_Double1; -constexpr const TSymbolUniqueId BuiltInId::length_Float1; -constexpr const TSymbolUniqueId BuiltInId::length_Float2; -constexpr const TSymbolUniqueId BuiltInId::length_Float3; -constexpr const TSymbolUniqueId BuiltInId::length_Float4; -constexpr const TSymbolUniqueId BuiltInId::length_Double1; -constexpr const TSymbolUniqueId BuiltInId::length_Double2; -constexpr const TSymbolUniqueId BuiltInId::length_Double3; -constexpr const TSymbolUniqueId BuiltInId::length_Double4; -constexpr const TSymbolUniqueId BuiltInId::distance_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::distance_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::distance_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::distance_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::distance_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::distance_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::distance_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::distance_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::dot_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::dot_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::dot_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::dot_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::dot_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::dot_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::dot_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::dot_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::cross_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::cross_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::normalize_Float1; -constexpr const TSymbolUniqueId BuiltInId::normalize_Float2; -constexpr const TSymbolUniqueId BuiltInId::normalize_Float3; -constexpr const TSymbolUniqueId BuiltInId::normalize_Float4; -constexpr const TSymbolUniqueId BuiltInId::normalize_Double1; -constexpr const TSymbolUniqueId BuiltInId::normalize_Double2; -constexpr const TSymbolUniqueId BuiltInId::normalize_Double3; -constexpr const TSymbolUniqueId BuiltInId::normalize_Double4; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Float4_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Double1_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Double2_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Double3_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::faceforward_Double4_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::reflect_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::reflect_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::reflect_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::reflect_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::reflect_Double1_Double1; -constexpr const TSymbolUniqueId BuiltInId::reflect_Double2_Double2; -constexpr const TSymbolUniqueId BuiltInId::reflect_Double3_Double3; -constexpr const TSymbolUniqueId BuiltInId::reflect_Double4_Double4; -constexpr const TSymbolUniqueId BuiltInId::refract_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Float2_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Float3_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Float4_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Double1_Double1_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Double2_Double2_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Double3_Double3_Float1; -constexpr const TSymbolUniqueId BuiltInId::refract_Double4_Double4_Float1; -constexpr const TSymbolUniqueId BuiltInId::ftransform; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x2_Float2x2; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x3_Float3x3; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x4_Float4x4; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x3_Float2x3; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x2_Float3x2; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x4_Float2x4; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x2_Float4x2; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x4_Float3x4; -constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x3_Float4x3; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float2; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float3; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float2; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float4; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float3; -constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float4; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x2; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x3; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x4; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x2; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x3; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x2; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x4; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x3; -constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x4; -constexpr const TSymbolUniqueId BuiltInId::determinant_Float2x2; -constexpr const TSymbolUniqueId BuiltInId::determinant_Float3x3; -constexpr const TSymbolUniqueId BuiltInId::determinant_Float4x4; -constexpr const TSymbolUniqueId BuiltInId::inverse_Float2x2; -constexpr const TSymbolUniqueId BuiltInId::inverse_Float3x3; -constexpr const TSymbolUniqueId BuiltInId::inverse_Float4x4; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::lessThan_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::equal_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::equal_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::equal_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::equal_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::equal_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::equal_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::equal_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::equal_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::equal_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::equal_Bool2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::equal_Bool3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::equal_Bool4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Float4_Float4; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool2_Bool2; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool3_Bool3; -constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool4_Bool4; -constexpr const TSymbolUniqueId BuiltInId::any_Bool2; -constexpr const TSymbolUniqueId BuiltInId::any_Bool3; -constexpr const TSymbolUniqueId BuiltInId::any_Bool4; -constexpr const TSymbolUniqueId BuiltInId::all_Bool2; -constexpr const TSymbolUniqueId BuiltInId::all_Bool3; -constexpr const TSymbolUniqueId BuiltInId::all_Bool4; -constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool2; -constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool3; -constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool4; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int4_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt4_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int2; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int3; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int4; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt1; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt2; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt3; -constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt4; -constexpr const TSymbolUniqueId BuiltInId::bitCount_Int1; -constexpr const TSymbolUniqueId BuiltInId::bitCount_Int2; -constexpr const TSymbolUniqueId BuiltInId::bitCount_Int3; -constexpr const TSymbolUniqueId BuiltInId::bitCount_Int4; -constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt1; -constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt2; -constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt3; -constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt4; -constexpr const TSymbolUniqueId BuiltInId::findLSB_Int1; -constexpr const TSymbolUniqueId BuiltInId::findLSB_Int2; -constexpr const TSymbolUniqueId BuiltInId::findLSB_Int3; -constexpr const TSymbolUniqueId BuiltInId::findLSB_Int4; -constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt1; -constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt2; -constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt3; -constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt4; -constexpr const TSymbolUniqueId BuiltInId::findMSB_Int1; -constexpr const TSymbolUniqueId BuiltInId::findMSB_Int2; -constexpr const TSymbolUniqueId BuiltInId::findMSB_Int3; -constexpr const TSymbolUniqueId BuiltInId::findMSB_Int4; -constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt1; -constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt2; -constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt3; -constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt4; -constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt2_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt3_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt4_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt2_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt3_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt4_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2; -constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3; -constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int2_Int2_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int3_Int3_Int3_Int3; -constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int4_Int4_Int4_Int4; -constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture1D_Sampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DProj_Sampler1D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture1DProj_Sampler1D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::shadow1D_Sampler1DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::shadow1DProj_Sampler1DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::shadow2D_Sampler2DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::shadow2DProj_Sampler2DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2D_SamplerExternalOES1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2DRect_Sampler2DRect1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture3DLod_Sampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1D_Sampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DProj_Sampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DProj_Sampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow1D_Sampler1DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow1DProj_Sampler1DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2D_Sampler2DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2DProj_Sampler2DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture2DLod_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DLod_Sampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DProjLod_Sampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture1DProjLod_Sampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow1DLod_Sampler1DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow1DProjLod_Sampler1DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2DLod_Sampler2DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::shadow2DProjLod_Sampler2DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler1DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler1DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DArrayShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DRect1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DRect1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRectShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler1D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler1D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler1D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler1D1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1DShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2DRect1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2DRect1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRectShadow1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler1DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler1DArray1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler1DArray1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler1DArray1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler1DArrayShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler3D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler3D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler3D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCube1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCube1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCube1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArrayShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler1DShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCubeArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DRect1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DRect1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DRect1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DRectShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler1DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler1DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler1DArray1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler1DArrayShadow1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerBuffer1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler1DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USamplerBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DRect1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DRect1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2DRect1_Float2_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DRectShadow1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler1DShadow1_Float3_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler1DArray1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler1DArray1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler1DArray1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler1DArrayShadow1_Float3_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler1D1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler1D1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler1D1_Float2_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler1D1_Float4_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler1D1_Float4_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler1D1_Float4_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler1DShadow1_Float4_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DRect1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2DRect1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2DRect1_Float3_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DRect1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2DRect1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2DRect1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler1D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISampler1D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USampler1D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler2D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISampler2D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USampler2D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler3D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISampler3D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USampler3D1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_SamplerCube1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISamplerCube1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USamplerCube1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler1DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISampler1DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USampler1DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler2DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISampler2DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USampler2DArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_SamplerCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_ISamplerCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_USamplerCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler1DShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler2DShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_SamplerCubeShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler1DArrayShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_Sampler2DArrayShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLevels_SamplerCubeArrayShadow1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_Sampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_ISampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_USampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_Sampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_ISampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSamples_USampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCubeArray1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler1D1_Float1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_ISampler1DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_USampler1DArray1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler1DArrayShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler1D1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler1D1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler1DShadow1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USampler1D1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USampler3D1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_SamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler1DArray1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISampler1DArray1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USampler1DArray1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler2DArray1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISampler2DArray1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USampler2DArray1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_SamplerCubeArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_ISamplerCubeArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_USamplerCubeArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler1DShadow1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler2DShadow1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_SamplerCubeShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler1DArrayShadow1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_Sampler2DArrayShadow1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureQueryLod_SamplerCubeArrayShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1D1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler1D1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler1D1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DRectShadow1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler1DArray1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArrayShadow1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler1D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler1D1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DRect1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2DRect1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2DRect1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DRect1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2DRect1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2DRect1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DRectShadow1_Float4_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler1D1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler1D1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler1D1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler1DArray1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler1DArray1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler1DArray1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler1D1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler1D1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler1D1_Float2_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler1D1_Float4_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler1D1_Float4_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler1D1_Float4_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2DRect1_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2DRect1_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2DRect1_Int2_Int2; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler1D1_Float1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler1D1_Float1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler1D1_Float1_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler2DRectShadow1_Float4_Float2_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1D1_Float1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler1D1_Float1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler1D1_Float1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler1DArray1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler1D1_Float2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler1D1_Float4_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4; -constexpr const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1; -constexpr const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1; -constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1; -constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DRect1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DRect1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DRect1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DRect1_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3; -constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DRectShadow1_Float2_Float1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_4xInt2; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId - BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1; -constexpr const TSymbolUniqueId BuiltInId::dFdx_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdx_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdx_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdx_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdy_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdy_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdy_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdy_Float4; -constexpr const TSymbolUniqueId BuiltInId::fwidth_Float1; -constexpr const TSymbolUniqueId BuiltInId::fwidth_Float2; -constexpr const TSymbolUniqueId BuiltInId::fwidth_Float3; -constexpr const TSymbolUniqueId BuiltInId::fwidth_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdxFine_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxFine_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdxFine_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdxFine_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdyFine_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdyFine_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdyFine_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdyFine_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdxCoarse_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdxCoarse_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdxCoarse_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdxCoarse_Float4; -constexpr const TSymbolUniqueId BuiltInId::dFdyCoarse_Float1; -constexpr const TSymbolUniqueId BuiltInId::dFdyCoarse_Float2; -constexpr const TSymbolUniqueId BuiltInId::dFdyCoarse_Float3; -constexpr const TSymbolUniqueId BuiltInId::dFdyCoarse_Float4; -constexpr const TSymbolUniqueId BuiltInId::fwidthFine_Float1; -constexpr const TSymbolUniqueId BuiltInId::fwidthFine_Float2; -constexpr const TSymbolUniqueId BuiltInId::fwidthFine_Float3; -constexpr const TSymbolUniqueId BuiltInId::fwidthFine_Float4; -constexpr const TSymbolUniqueId BuiltInId::fwidthCoarse_Float1; -constexpr const TSymbolUniqueId BuiltInId::fwidthCoarse_Float2; -constexpr const TSymbolUniqueId BuiltInId::fwidthCoarse_Float3; -constexpr const TSymbolUniqueId BuiltInId::fwidthCoarse_Float4; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroid_Float1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroid_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroid_Float3; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroid_Float4; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSample_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSample_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSample_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSample_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffset_Float1_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffset_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffset_Float3_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffset_Float4_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroidExt_Float1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroidExt_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroidExt_Float3; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtCentroidExt_Float4; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSampleExt_Float1_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSampleExt_Float2_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSampleExt_Float3_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtSampleExt_Float4_Int1; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffsetExt_Float1_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffsetExt_Float2_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffsetExt_Float3_Float2; -constexpr const TSymbolUniqueId BuiltInId::interpolateAtOffsetExt_Float4_Float2; -constexpr const TSymbolUniqueId BuiltInId::atomicCounter_AtomicCounter1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterIncrement_AtomicCounter1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterDecrement_AtomicCounter1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterAdd_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterSubtract_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterMin_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterMax_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterAnd_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterOr_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterXor_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterExchange_AtomicCounter1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCounterCompSwap_AtomicCounter1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicAdd_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicAdd_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicMin_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicMin_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicMax_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicMax_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicAnd_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicAnd_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicOr_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicOr_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicXor_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicXor_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicExchange_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicExchange_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image3D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage3D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage3D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageCube1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCube1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCube1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCubeArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageBuffer1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageBuffer1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageBuffer1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image1D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage1D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage1D1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageRect1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageRect1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageRect1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image1DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage1DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage1DArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_Image2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_IImage2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_UImage2DMS1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_Image2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_IImage2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageSamples_UImage2DMSArray1; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2D1_Int2_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2D1_Int2_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2D1_Int2_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image3D1_Int3_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage3D1_Int3_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage3D1_Int3_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2DArray1_Int3_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2DArray1_Int3_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2DArray1_Int3_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageCube1_Int3_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCube1_Int3_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCube1_Int3_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageCubeArray1_Int3_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCubeArray1_Int3_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageBuffer1_Int1_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageBuffer1_Int1_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageBuffer1_Int1_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image1D1_Int1_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage1D1_Int1_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage1D1_Int1_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image1DArray1_Int2_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage1DArray1_Int2_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage1DArray1_Int2_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageRect1_Int2_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageRect1_Int2_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageRect1_Int2_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2DMS1_Int2_Int1_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2DMS1_Int2_Int1_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2DMS1_Int2_Int1_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2DMSArray1_Int3_Int1_Float4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2DMSArray1_Int3_Int1_Int4; -constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2DMSArray1_Int3_Int1_UInt4; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2D1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2D1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2D1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image3D1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage3D1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage3D1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2DArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2DArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2DArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageCube1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCube1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCube1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageCubeArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCubeArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCubeArray1_Int3; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageBuffer1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage1D1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image1DArray1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage1DArray1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage1DArray1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageRect1_Int2; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2DMS1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2DMSArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_ImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId - BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1; -constexpr const TSymbolUniqueId BuiltInId::noise1_Float1; -constexpr const TSymbolUniqueId BuiltInId::noise1_Float2; -constexpr const TSymbolUniqueId BuiltInId::noise1_Float3; -constexpr const TSymbolUniqueId BuiltInId::noise1_Float4; -constexpr const TSymbolUniqueId BuiltInId::noise2_Float1; -constexpr const TSymbolUniqueId BuiltInId::noise2_Float2; -constexpr const TSymbolUniqueId BuiltInId::noise2_Float3; -constexpr const TSymbolUniqueId BuiltInId::noise2_Float4; -constexpr const TSymbolUniqueId BuiltInId::noise3_Float1; -constexpr const TSymbolUniqueId BuiltInId::noise3_Float2; -constexpr const TSymbolUniqueId BuiltInId::noise3_Float3; -constexpr const TSymbolUniqueId BuiltInId::noise3_Float4; -constexpr const TSymbolUniqueId BuiltInId::noise4_Float1; -constexpr const TSymbolUniqueId BuiltInId::noise4_Float2; -constexpr const TSymbolUniqueId BuiltInId::noise4_Float3; -constexpr const TSymbolUniqueId BuiltInId::noise4_Float4; -constexpr const TSymbolUniqueId BuiltInId::memoryBarrier; -constexpr const TSymbolUniqueId BuiltInId::memoryBarrierAtomicCounter; -constexpr const TSymbolUniqueId BuiltInId::memoryBarrierBuffer; -constexpr const TSymbolUniqueId BuiltInId::memoryBarrierImage; -constexpr const TSymbolUniqueId BuiltInId::barrier; -constexpr const TSymbolUniqueId BuiltInId::memoryBarrierShared; -constexpr const TSymbolUniqueId BuiltInId::groupMemoryBarrier; -constexpr const TSymbolUniqueId BuiltInId::barrierES3_2; -constexpr const TSymbolUniqueId BuiltInId::EmitVertex; -constexpr const TSymbolUniqueId BuiltInId::EmitVertexES3_2; -constexpr const TSymbolUniqueId BuiltInId::EndPrimitive; -constexpr const TSymbolUniqueId BuiltInId::EndPrimitiveES3_2; -constexpr const TSymbolUniqueId BuiltInId::EmitStreamVertex_Int1; -constexpr const TSymbolUniqueId BuiltInId::EndStreamPrimitive_Int1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_SubpassInput1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_ISubpassInput1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_USubpassInput1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_SubpassInputMS1_Int1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_ISubpassInputMS1_Int1; -constexpr const TSymbolUniqueId BuiltInId::subpassLoad_USubpassInputMS1_Int1; -constexpr const TSymbolUniqueId BuiltInId::anyInvocation_Bool1; -constexpr const TSymbolUniqueId BuiltInId::allInvocations_Bool1; -constexpr const TSymbolUniqueId BuiltInId::allInvocationsEqual_Bool1; -constexpr const TSymbolUniqueId BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2; -constexpr const TSymbolUniqueId BuiltInId::texture_SamplerVideoWEBGL1_Float2; -constexpr const TSymbolUniqueId BuiltInId::gl_DepthRangeParameters; -constexpr const TSymbolUniqueId BuiltInId::gl_DepthRange; -constexpr const TSymbolUniqueId BuiltInId::gl_NumSamples; -constexpr const TSymbolUniqueId BuiltInId::gl_NumSamplesES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAttribs; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexUniformVectors; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentUniformVectors; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVaryingVectors; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxDrawBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxDualSourceDrawBuffersEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexOutputVectors; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentInputVectors; -constexpr const TSymbolUniqueId BuiltInId::gl_MinProgramTexelOffset; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxProgramTexelOffset; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedShaderOutputResources; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupCount; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupSize; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeUniformComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBindings; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBufferSize; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryInputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryInputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryImageUniformsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTextureImageUnitsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputVertices; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputVerticesES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTotalOutputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTotalOutputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryUniformComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryUniformComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCountersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounterBuffersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlInputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlInputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlOutputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlOutputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlTextureImageUnitsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlUniformComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlUniformComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlTotalOutputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlTotalOutputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlImageUniformsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlAtomicCountersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessControlAtomicCounterBuffersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessPatchComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessPatchComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxPatchVertices; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxPatchVerticesES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessGenLevel; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessGenLevelES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationInputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationInputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationOutputComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationOutputComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationTextureImageUnits; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationTextureImageUnitsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationUniformComponents; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationUniformComponentsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationImageUniforms; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationImageUniformsES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationAtomicCounters; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationAtomicCountersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffers; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffersES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxSamples; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxSamplesES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxClipDistancesAPPLE; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCullDistancesEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedClipAndCullDistancesEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_FragCoord; -constexpr const TSymbolUniqueId BuiltInId::gl_FrontFacing; -constexpr const TSymbolUniqueId BuiltInId::gl_PointCoord; -constexpr const TSymbolUniqueId BuiltInId::gl_FragColor; -constexpr const TSymbolUniqueId BuiltInId::gl_FragData; -constexpr const TSymbolUniqueId BuiltInId::gl_FragDepth; -constexpr const TSymbolUniqueId BuiltInId::gl_HelperInvocation; -constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragColorEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragDataEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_FragDepthEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_LastFragData; -constexpr const TSymbolUniqueId BuiltInId::gl_LastFragDataNonCoherent; -constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColor; -constexpr const TSymbolUniqueId BuiltInId::gl_LastFragDataNV; -constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColorARM; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveID; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_Layer; -constexpr const TSymbolUniqueId BuiltInId::gl_LayerES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleID; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleIDES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_SamplePosition; -constexpr const TSymbolUniqueId BuiltInId::gl_SamplePositionES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleMaskIn; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleMaskInES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleMask; -constexpr const TSymbolUniqueId BuiltInId::gl_SampleMaskES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_CullDistance; -constexpr const TSymbolUniqueId BuiltInId::gl_ClipDistance; -constexpr const TSymbolUniqueId BuiltInId::gl_Position; -constexpr const TSymbolUniqueId BuiltInId::gl_PointSize; -constexpr const TSymbolUniqueId BuiltInId::gl_InstanceID; -constexpr const TSymbolUniqueId BuiltInId::gl_InstanceIndex; -constexpr const TSymbolUniqueId BuiltInId::gl_VertexID; -constexpr const TSymbolUniqueId BuiltInId::gl_VertexIndex; -constexpr const TSymbolUniqueId BuiltInId::gl_ViewportIndex; -constexpr const TSymbolUniqueId BuiltInId::gl_LayerVS; -constexpr const TSymbolUniqueId BuiltInId::gl_DrawID; -constexpr const TSymbolUniqueId BuiltInId::gl_BaseVertex; -constexpr const TSymbolUniqueId BuiltInId::gl_BaseInstance; -constexpr const TSymbolUniqueId BuiltInId::angle_BaseVertex; -constexpr const TSymbolUniqueId BuiltInId::angle_BaseInstance; -constexpr const TSymbolUniqueId BuiltInId::gl_ClipDistanceAPPLE; -constexpr const TSymbolUniqueId BuiltInId::gl_CullDistanceEXT; -constexpr const TSymbolUniqueId BuiltInId::gl_NumWorkGroups; -constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupSize; -constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupID; -constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationID; -constexpr const TSymbolUniqueId BuiltInId::gl_GlobalInvocationID; -constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationIndex; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDIn; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDInES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_InvocationID; -constexpr const TSymbolUniqueId BuiltInId::gl_InvocationIDES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDGS; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDGSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_LayerGS; -constexpr const TSymbolUniqueId BuiltInId::gl_LayerGSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertex; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_in; -constexpr const TSymbolUniqueId BuiltInId::gl_inES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutBlock; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutBlockES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionGS; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionGSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_InvocationIDTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_InvocationIDTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelOuterTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelOuterTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelInnerTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelInnerTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_inTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_inTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_outTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_outTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTcsBlock; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTcsBlockES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionTCS; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionTCSES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTES; -constexpr const TSymbolUniqueId BuiltInId::gl_PatchVerticesInTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTES; -constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_TessCoord; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelOuterTES; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelOuterTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelInnerTES; -constexpr const TSymbolUniqueId BuiltInId::gl_TessLevelInnerTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexTES; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_inTES; -constexpr const TSymbolUniqueId BuiltInId::gl_inTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_outTES; -constexpr const TSymbolUniqueId BuiltInId::gl_outTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTesBlock; -constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutTesBlockES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionTES; -constexpr const TSymbolUniqueId BuiltInId::gl_PositionTESES3_2; -constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVR; - -const int TSymbolTable::kLastBuiltInId = 3015; - -namespace BuiltInName -{ - -constexpr const ImmutableString _empty(""); -constexpr const ImmutableString EmitStreamVertex("EmitStreamVertex"); -constexpr const ImmutableString EmitVertex("EmitVertex"); -constexpr const ImmutableString EmitVertexES3_2("EmitVertex"); -constexpr const ImmutableString EndPrimitive("EndPrimitive"); -constexpr const ImmutableString EndPrimitiveES3_2("EndPrimitive"); -constexpr const ImmutableString EndStreamPrimitive("EndStreamPrimitive"); -constexpr const ImmutableString abs("abs"); -constexpr const ImmutableString acos("acos"); -constexpr const ImmutableString acosh("acosh"); -constexpr const ImmutableString all("all"); -constexpr const ImmutableString allInvocations("allInvocations"); -constexpr const ImmutableString allInvocationsEqual("allInvocationsEqual"); -constexpr const ImmutableString angle_BaseInstance("angle_BaseInstance"); -constexpr const ImmutableString angle_BaseVertex("angle_BaseVertex"); -constexpr const ImmutableString any("any"); -constexpr const ImmutableString anyInvocation("anyInvocation"); -constexpr const ImmutableString asin("asin"); -constexpr const ImmutableString asinh("asinh"); -constexpr const ImmutableString atan("atan"); -constexpr const ImmutableString atanh("atanh"); -constexpr const ImmutableString atomicAdd("atomicAdd"); -constexpr const ImmutableString atomicAnd("atomicAnd"); -constexpr const ImmutableString atomicCompSwap("atomicCompSwap"); -constexpr const ImmutableString atomicCounter("atomicCounter"); -constexpr const ImmutableString atomicCounterAdd("atomicCounterAdd"); -constexpr const ImmutableString atomicCounterAnd("atomicCounterAnd"); -constexpr const ImmutableString atomicCounterCompSwap("atomicCounterCompSwap"); -constexpr const ImmutableString atomicCounterDecrement("atomicCounterDecrement"); -constexpr const ImmutableString atomicCounterExchange("atomicCounterExchange"); -constexpr const ImmutableString atomicCounterIncrement("atomicCounterIncrement"); -constexpr const ImmutableString atomicCounterMax("atomicCounterMax"); -constexpr const ImmutableString atomicCounterMin("atomicCounterMin"); -constexpr const ImmutableString atomicCounterOr("atomicCounterOr"); -constexpr const ImmutableString atomicCounterSubtract("atomicCounterSubtract"); -constexpr const ImmutableString atomicCounterXor("atomicCounterXor"); -constexpr const ImmutableString atomicExchange("atomicExchange"); -constexpr const ImmutableString atomicMax("atomicMax"); -constexpr const ImmutableString atomicMin("atomicMin"); -constexpr const ImmutableString atomicOr("atomicOr"); -constexpr const ImmutableString atomicXor("atomicXor"); -constexpr const ImmutableString barrier("barrier"); -constexpr const ImmutableString barrierES3_2("barrier"); -constexpr const ImmutableString bitCount("bitCount"); -constexpr const ImmutableString bitfieldExtract("bitfieldExtract"); -constexpr const ImmutableString bitfieldInsert("bitfieldInsert"); -constexpr const ImmutableString bitfieldReverse("bitfieldReverse"); -constexpr const ImmutableString ceil("ceil"); -constexpr const ImmutableString clamp("clamp"); -constexpr const ImmutableString cos("cos"); -constexpr const ImmutableString cosh("cosh"); -constexpr const ImmutableString cross("cross"); -constexpr const ImmutableString dFdx("dFdx"); -constexpr const ImmutableString dFdxCoarse("dFdxCoarse"); -constexpr const ImmutableString dFdxExt("dFdx"); -constexpr const ImmutableString dFdxFine("dFdxFine"); -constexpr const ImmutableString dFdy("dFdy"); -constexpr const ImmutableString dFdyCoarse("dFdyCoarse"); -constexpr const ImmutableString dFdyExt("dFdy"); -constexpr const ImmutableString dFdyFine("dFdyFine"); -constexpr const ImmutableString degrees("degrees"); -constexpr const ImmutableString determinant("determinant"); -constexpr const ImmutableString diff("diff"); -constexpr const ImmutableString distance("distance"); -constexpr const ImmutableString dot("dot"); -constexpr const ImmutableString equal("equal"); -constexpr const ImmutableString exp("exp"); -constexpr const ImmutableString exp2("exp2"); -constexpr const ImmutableString faceforward("faceforward"); -constexpr const ImmutableString far("far"); -constexpr const ImmutableString findLSB("findLSB"); -constexpr const ImmutableString findMSB("findMSB"); -constexpr const ImmutableString floatBitsToInt("floatBitsToInt"); -constexpr const ImmutableString floatBitsToUint("floatBitsToUint"); -constexpr const ImmutableString floor("floor"); -constexpr const ImmutableString fma("fma"); -constexpr const ImmutableString fmaExt("fma"); -constexpr const ImmutableString fract("fract"); -constexpr const ImmutableString frexp("frexp"); -constexpr const ImmutableString ftransform("ftransform"); -constexpr const ImmutableString fwidth("fwidth"); -constexpr const ImmutableString fwidthCoarse("fwidthCoarse"); -constexpr const ImmutableString fwidthExt("fwidth"); -constexpr const ImmutableString fwidthFine("fwidthFine"); -constexpr const ImmutableString gl_BaseInstance("gl_BaseInstance"); -constexpr const ImmutableString gl_BaseVertex("gl_BaseVertex"); -constexpr const ImmutableString gl_ClipDistance("gl_ClipDistance"); -constexpr const ImmutableString gl_CullDistance("gl_CullDistance"); -constexpr const ImmutableString gl_DepthRange("gl_DepthRange"); -constexpr const ImmutableString gl_DepthRangeParameters("gl_DepthRangeParameters"); -constexpr const ImmutableString gl_DrawID("gl_DrawID"); -constexpr const ImmutableString gl_FragColor("gl_FragColor"); -constexpr const ImmutableString gl_FragCoord("gl_FragCoord"); -constexpr const ImmutableString gl_FragData("gl_FragData"); -constexpr const ImmutableString gl_FragDepth("gl_FragDepth"); -constexpr const ImmutableString gl_FragDepthEXT("gl_FragDepthEXT"); -constexpr const ImmutableString gl_FrontFacing("gl_FrontFacing"); -constexpr const ImmutableString gl_GlobalInvocationID("gl_GlobalInvocationID"); -constexpr const ImmutableString gl_HelperInvocation("gl_HelperInvocation"); -constexpr const ImmutableString gl_InstanceID("gl_InstanceID"); -constexpr const ImmutableString gl_InstanceIndex("gl_InstanceIndex"); -constexpr const ImmutableString gl_InvocationID("gl_InvocationID"); -constexpr const ImmutableString gl_LastFragColor("gl_LastFragColor"); -constexpr const ImmutableString gl_LastFragColorARM("gl_LastFragColorARM"); -constexpr const ImmutableString gl_LastFragData("gl_LastFragData"); -constexpr const ImmutableString gl_Layer("gl_Layer"); -constexpr const ImmutableString gl_LocalInvocationID("gl_LocalInvocationID"); -constexpr const ImmutableString gl_LocalInvocationIndex("gl_LocalInvocationIndex"); -constexpr const ImmutableString gl_MaxAtomicCounterBindings("gl_MaxAtomicCounterBindings"); -constexpr const ImmutableString gl_MaxAtomicCounterBufferSize("gl_MaxAtomicCounterBufferSize"); -constexpr const ImmutableString gl_MaxClipDistances("gl_MaxClipDistances"); -constexpr const ImmutableString gl_MaxCombinedAtomicCounterBuffers( - "gl_MaxCombinedAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxCombinedAtomicCounters("gl_MaxCombinedAtomicCounters"); -constexpr const ImmutableString gl_MaxCombinedClipAndCullDistances( - "gl_MaxCombinedClipAndCullDistances"); -constexpr const ImmutableString gl_MaxCombinedImageUniforms("gl_MaxCombinedImageUniforms"); -constexpr const ImmutableString gl_MaxCombinedShaderOutputResources( - "gl_MaxCombinedShaderOutputResources"); -constexpr const ImmutableString gl_MaxCombinedTextureImageUnits("gl_MaxCombinedTextureImageUnits"); -constexpr const ImmutableString gl_MaxComputeAtomicCounterBuffers( - "gl_MaxComputeAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxComputeAtomicCounters("gl_MaxComputeAtomicCounters"); -constexpr const ImmutableString gl_MaxComputeImageUniforms("gl_MaxComputeImageUniforms"); -constexpr const ImmutableString gl_MaxComputeTextureImageUnits("gl_MaxComputeTextureImageUnits"); -constexpr const ImmutableString gl_MaxComputeUniformComponents("gl_MaxComputeUniformComponents"); -constexpr const ImmutableString gl_MaxComputeWorkGroupCount("gl_MaxComputeWorkGroupCount"); -constexpr const ImmutableString gl_MaxComputeWorkGroupSize("gl_MaxComputeWorkGroupSize"); -constexpr const ImmutableString gl_MaxCullDistances("gl_MaxCullDistances"); -constexpr const ImmutableString gl_MaxDrawBuffers("gl_MaxDrawBuffers"); -constexpr const ImmutableString gl_MaxDualSourceDrawBuffersEXT("gl_MaxDualSourceDrawBuffersEXT"); -constexpr const ImmutableString gl_MaxFragmentAtomicCounterBuffers( - "gl_MaxFragmentAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxFragmentAtomicCounters("gl_MaxFragmentAtomicCounters"); -constexpr const ImmutableString gl_MaxFragmentImageUniforms("gl_MaxFragmentImageUniforms"); -constexpr const ImmutableString gl_MaxFragmentInputVectors("gl_MaxFragmentInputVectors"); -constexpr const ImmutableString gl_MaxFragmentUniformVectors("gl_MaxFragmentUniformVectors"); -constexpr const ImmutableString gl_MaxGeometryAtomicCounterBuffers( - "gl_MaxGeometryAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxGeometryAtomicCounters("gl_MaxGeometryAtomicCounters"); -constexpr const ImmutableString gl_MaxGeometryImageUniforms("gl_MaxGeometryImageUniforms"); -constexpr const ImmutableString gl_MaxGeometryInputComponents("gl_MaxGeometryInputComponents"); -constexpr const ImmutableString gl_MaxGeometryOutputComponents("gl_MaxGeometryOutputComponents"); -constexpr const ImmutableString gl_MaxGeometryOutputVertices("gl_MaxGeometryOutputVertices"); -constexpr const ImmutableString gl_MaxGeometryTextureImageUnits("gl_MaxGeometryTextureImageUnits"); -constexpr const ImmutableString gl_MaxGeometryTotalOutputComponents( - "gl_MaxGeometryTotalOutputComponents"); -constexpr const ImmutableString gl_MaxGeometryUniformComponents("gl_MaxGeometryUniformComponents"); -constexpr const ImmutableString gl_MaxImageUnits("gl_MaxImageUnits"); -constexpr const ImmutableString gl_MaxPatchVertices("gl_MaxPatchVertices"); -constexpr const ImmutableString gl_MaxProgramTexelOffset("gl_MaxProgramTexelOffset"); -constexpr const ImmutableString gl_MaxSamples("gl_MaxSamples"); -constexpr const ImmutableString gl_MaxTessControlAtomicCounterBuffers( - "gl_MaxTessControlAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxTessControlAtomicCounters("gl_MaxTessControlAtomicCounters"); -constexpr const ImmutableString gl_MaxTessControlImageUniforms("gl_MaxTessControlImageUniforms"); -constexpr const ImmutableString gl_MaxTessControlInputComponents( - "gl_MaxTessControlInputComponents"); -constexpr const ImmutableString gl_MaxTessControlOutputComponents( - "gl_MaxTessControlOutputComponents"); -constexpr const ImmutableString gl_MaxTessControlTextureImageUnits( - "gl_MaxTessControlTextureImageUnits"); -constexpr const ImmutableString gl_MaxTessControlTotalOutputComponents( - "gl_MaxTessControlTotalOutputComponents"); -constexpr const ImmutableString gl_MaxTessControlUniformComponents( - "gl_MaxTessControlUniformComponents"); -constexpr const ImmutableString gl_MaxTessEvaluationAtomicCounterBuffers( - "gl_MaxTessEvaluationAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxTessEvaluationAtomicCounters( - "gl_MaxTessEvaluationAtomicCounters"); -constexpr const ImmutableString gl_MaxTessEvaluationImageUniforms( - "gl_MaxTessEvaluationImageUniforms"); -constexpr const ImmutableString gl_MaxTessEvaluationInputComponents( - "gl_MaxTessEvaluationInputComponents"); -constexpr const ImmutableString gl_MaxTessEvaluationOutputComponents( - "gl_MaxTessEvaluationOutputComponents"); -constexpr const ImmutableString gl_MaxTessEvaluationTextureImageUnits( - "gl_MaxTessEvaluationTextureImageUnits"); -constexpr const ImmutableString gl_MaxTessEvaluationUniformComponents( - "gl_MaxTessEvaluationUniformComponents"); -constexpr const ImmutableString gl_MaxTessGenLevel("gl_MaxTessGenLevel"); -constexpr const ImmutableString gl_MaxTessPatchComponents("gl_MaxTessPatchComponents"); -constexpr const ImmutableString gl_MaxTextureImageUnits("gl_MaxTextureImageUnits"); -constexpr const ImmutableString gl_MaxVaryingVectors("gl_MaxVaryingVectors"); -constexpr const ImmutableString gl_MaxVertexAtomicCounterBuffers( - "gl_MaxVertexAtomicCounterBuffers"); -constexpr const ImmutableString gl_MaxVertexAtomicCounters("gl_MaxVertexAtomicCounters"); -constexpr const ImmutableString gl_MaxVertexAttribs("gl_MaxVertexAttribs"); -constexpr const ImmutableString gl_MaxVertexImageUniforms("gl_MaxVertexImageUniforms"); -constexpr const ImmutableString gl_MaxVertexOutputVectors("gl_MaxVertexOutputVectors"); -constexpr const ImmutableString gl_MaxVertexTextureImageUnits("gl_MaxVertexTextureImageUnits"); -constexpr const ImmutableString gl_MaxVertexUniformVectors("gl_MaxVertexUniformVectors"); -constexpr const ImmutableString gl_MinProgramTexelOffset("gl_MinProgramTexelOffset"); -constexpr const ImmutableString gl_NumSamples("gl_NumSamples"); -constexpr const ImmutableString gl_NumWorkGroups("gl_NumWorkGroups"); -constexpr const ImmutableString gl_PatchVerticesIn("gl_PatchVerticesIn"); -constexpr const ImmutableString gl_PerVertex("gl_PerVertex"); -constexpr const ImmutableString gl_PointCoord("gl_PointCoord"); -constexpr const ImmutableString gl_PointSize("gl_PointSize"); -constexpr const ImmutableString gl_Position("gl_Position"); -constexpr const ImmutableString gl_PrimitiveID("gl_PrimitiveID"); -constexpr const ImmutableString gl_PrimitiveIDIn("gl_PrimitiveIDIn"); -constexpr const ImmutableString gl_SampleID("gl_SampleID"); -constexpr const ImmutableString gl_SampleMask("gl_SampleMask"); -constexpr const ImmutableString gl_SampleMaskIn("gl_SampleMaskIn"); -constexpr const ImmutableString gl_SamplePosition("gl_SamplePosition"); -constexpr const ImmutableString gl_SecondaryFragColorEXT("gl_SecondaryFragColorEXT"); -constexpr const ImmutableString gl_SecondaryFragDataEXT("gl_SecondaryFragDataEXT"); -constexpr const ImmutableString gl_TessCoord("gl_TessCoord"); -constexpr const ImmutableString gl_TessLevelInner("gl_TessLevelInner"); -constexpr const ImmutableString gl_TessLevelOuter("gl_TessLevelOuter"); -constexpr const ImmutableString gl_VertexID("gl_VertexID"); -constexpr const ImmutableString gl_VertexIndex("gl_VertexIndex"); -constexpr const ImmutableString gl_ViewID_OVR("gl_ViewID_OVR"); -constexpr const ImmutableString gl_ViewportIndex("gl_ViewportIndex"); -constexpr const ImmutableString gl_WorkGroupID("gl_WorkGroupID"); -constexpr const ImmutableString gl_WorkGroupSize("gl_WorkGroupSize"); -constexpr const ImmutableString gl_in("gl_in"); -constexpr const ImmutableString gl_out("gl_out"); -constexpr const ImmutableString greaterThan("greaterThan"); -constexpr const ImmutableString greaterThanEqual("greaterThanEqual"); -constexpr const ImmutableString groupMemoryBarrier("groupMemoryBarrier"); -constexpr const ImmutableString imageAtomicAdd("imageAtomicAdd"); -constexpr const ImmutableString imageAtomicAddExt("imageAtomicAdd"); -constexpr const ImmutableString imageAtomicAnd("imageAtomicAnd"); -constexpr const ImmutableString imageAtomicAndExt("imageAtomicAnd"); -constexpr const ImmutableString imageAtomicCompSwap("imageAtomicCompSwap"); -constexpr const ImmutableString imageAtomicCompSwapExt("imageAtomicCompSwap"); -constexpr const ImmutableString imageAtomicExchange("imageAtomicExchange"); -constexpr const ImmutableString imageAtomicExchangeExt("imageAtomicExchange"); -constexpr const ImmutableString imageAtomicMax("imageAtomicMax"); -constexpr const ImmutableString imageAtomicMaxExt("imageAtomicMax"); -constexpr const ImmutableString imageAtomicMin("imageAtomicMin"); -constexpr const ImmutableString imageAtomicMinExt("imageAtomicMin"); -constexpr const ImmutableString imageAtomicOr("imageAtomicOr"); -constexpr const ImmutableString imageAtomicOrExt("imageAtomicOr"); -constexpr const ImmutableString imageAtomicXor("imageAtomicXor"); -constexpr const ImmutableString imageAtomicXorExt("imageAtomicXor"); -constexpr const ImmutableString imageLoad("imageLoad"); -constexpr const ImmutableString imageSamples("imageSamples"); -constexpr const ImmutableString imageSize("imageSize"); -constexpr const ImmutableString imageStore("imageStore"); -constexpr const ImmutableString imulExtended("imulExtended"); -constexpr const ImmutableString intBitsToFloat("intBitsToFloat"); -constexpr const ImmutableString interpolateAtCentroid("interpolateAtCentroid"); -constexpr const ImmutableString interpolateAtCentroidExt("interpolateAtCentroid"); -constexpr const ImmutableString interpolateAtOffset("interpolateAtOffset"); -constexpr const ImmutableString interpolateAtOffsetExt("interpolateAtOffset"); -constexpr const ImmutableString interpolateAtSample("interpolateAtSample"); -constexpr const ImmutableString interpolateAtSampleExt("interpolateAtSample"); -constexpr const ImmutableString inverse("inverse"); -constexpr const ImmutableString inversesqrt("inversesqrt"); -constexpr const ImmutableString isinf("isinf"); -constexpr const ImmutableString isnan("isnan"); -constexpr const ImmutableString ldexp("ldexp"); -constexpr const ImmutableString length("length"); -constexpr const ImmutableString lessThan("lessThan"); -constexpr const ImmutableString lessThanEqual("lessThanEqual"); -constexpr const ImmutableString log("log"); -constexpr const ImmutableString log2("log2"); -constexpr const ImmutableString matrixCompMult("matrixCompMult"); -constexpr const ImmutableString max("max"); -constexpr const ImmutableString memoryBarrier("memoryBarrier"); -constexpr const ImmutableString memoryBarrierAtomicCounter("memoryBarrierAtomicCounter"); -constexpr const ImmutableString memoryBarrierBuffer("memoryBarrierBuffer"); -constexpr const ImmutableString memoryBarrierImage("memoryBarrierImage"); -constexpr const ImmutableString memoryBarrierShared("memoryBarrierShared"); -constexpr const ImmutableString min("min"); -constexpr const ImmutableString mix("mix"); -constexpr const ImmutableString mod("mod"); -constexpr const ImmutableString modf("modf"); -constexpr const ImmutableString near("near"); -constexpr const ImmutableString noise1("noise1"); -constexpr const ImmutableString noise2("noise2"); -constexpr const ImmutableString noise3("noise3"); -constexpr const ImmutableString noise4("noise4"); -constexpr const ImmutableString normalize("normalize"); -constexpr const ImmutableString notEqual("notEqual"); -constexpr const ImmutableString notFunc("not"); -constexpr const ImmutableString outerProduct("outerProduct"); -constexpr const ImmutableString packDouble2x32("packDouble2x32"); -constexpr const ImmutableString packHalf2x16("packHalf2x16"); -constexpr const ImmutableString packSnorm2x16("packSnorm2x16"); -constexpr const ImmutableString packSnorm4x8("packSnorm4x8"); -constexpr const ImmutableString packUnorm2x16("packUnorm2x16"); -constexpr const ImmutableString packUnorm4x8("packUnorm4x8"); -constexpr const ImmutableString pow("pow"); -constexpr const ImmutableString radians("radians"); -constexpr const ImmutableString reflect("reflect"); -constexpr const ImmutableString refract("refract"); -constexpr const ImmutableString rgb_2_yuv("rgb_2_yuv"); -constexpr const ImmutableString round("round"); -constexpr const ImmutableString roundEven("roundEven"); -constexpr const ImmutableString shadow1D("shadow1D"); -constexpr const ImmutableString shadow1DLod("shadow1DLod"); -constexpr const ImmutableString shadow1DProj("shadow1DProj"); -constexpr const ImmutableString shadow1DProjLod("shadow1DProjLod"); -constexpr const ImmutableString shadow2D("shadow2D"); -constexpr const ImmutableString shadow2DEXT("shadow2DEXT"); -constexpr const ImmutableString shadow2DLod("shadow2DLod"); -constexpr const ImmutableString shadow2DProj("shadow2DProj"); -constexpr const ImmutableString shadow2DProjEXT("shadow2DProjEXT"); -constexpr const ImmutableString shadow2DProjLod("shadow2DProjLod"); -constexpr const ImmutableString sign("sign"); -constexpr const ImmutableString sin("sin"); -constexpr const ImmutableString sinh("sinh"); -constexpr const ImmutableString smoothstep("smoothstep"); -constexpr const ImmutableString sqrt("sqrt"); -constexpr const ImmutableString step("step"); -constexpr const ImmutableString subpassLoad("subpassLoad"); -constexpr const ImmutableString tan("tan"); -constexpr const ImmutableString tanh("tanh"); -constexpr const ImmutableString texelFetch("texelFetch"); -constexpr const ImmutableString texelFetchExt("texelFetch"); -constexpr const ImmutableString texelFetchOffset("texelFetchOffset"); -constexpr const ImmutableString texture("texture"); -constexpr const ImmutableString texture1D("texture1D"); -constexpr const ImmutableString texture1DLod("texture1DLod"); -constexpr const ImmutableString texture1DProj("texture1DProj"); -constexpr const ImmutableString texture1DProjLod("texture1DProjLod"); -constexpr const ImmutableString texture2D("texture2D"); -constexpr const ImmutableString texture2DGradEXT("texture2DGradEXT"); -constexpr const ImmutableString texture2DLod("texture2DLod"); -constexpr const ImmutableString texture2DLodEXT("texture2DLodEXT"); -constexpr const ImmutableString texture2DProj("texture2DProj"); -constexpr const ImmutableString texture2DProjGradEXT("texture2DProjGradEXT"); -constexpr const ImmutableString texture2DProjLod("texture2DProjLod"); -constexpr const ImmutableString texture2DProjLodEXT("texture2DProjLodEXT"); -constexpr const ImmutableString texture2DRect("texture2DRect"); -constexpr const ImmutableString texture2DRectProj("texture2DRectProj"); -constexpr const ImmutableString texture3D("texture3D"); -constexpr const ImmutableString texture3DLod("texture3DLod"); -constexpr const ImmutableString texture3DProj("texture3DProj"); -constexpr const ImmutableString texture3DProjLod("texture3DProjLod"); -constexpr const ImmutableString textureCube("textureCube"); -constexpr const ImmutableString textureCubeGradEXT("textureCubeGradEXT"); -constexpr const ImmutableString textureCubeLod("textureCubeLod"); -constexpr const ImmutableString textureCubeLodEXT("textureCubeLodEXT"); -constexpr const ImmutableString textureGather("textureGather"); -constexpr const ImmutableString textureGatherOffset("textureGatherOffset"); -constexpr const ImmutableString textureGatherOffsets("textureGatherOffsets"); -constexpr const ImmutableString textureGatherOffsetsExt("textureGatherOffsets"); -constexpr const ImmutableString textureGrad("textureGrad"); -constexpr const ImmutableString textureGradOffset("textureGradOffset"); -constexpr const ImmutableString textureLod("textureLod"); -constexpr const ImmutableString textureLodOffset("textureLodOffset"); -constexpr const ImmutableString textureOffset("textureOffset"); -constexpr const ImmutableString textureProj("textureProj"); -constexpr const ImmutableString textureProjGrad("textureProjGrad"); -constexpr const ImmutableString textureProjGradOffset("textureProjGradOffset"); -constexpr const ImmutableString textureProjLod("textureProjLod"); -constexpr const ImmutableString textureProjLodOffset("textureProjLodOffset"); -constexpr const ImmutableString textureProjOffset("textureProjOffset"); -constexpr const ImmutableString textureQueryLevels("textureQueryLevels"); -constexpr const ImmutableString textureQueryLod("textureQueryLod"); -constexpr const ImmutableString textureSamples("textureSamples"); -constexpr const ImmutableString textureSize("textureSize"); -constexpr const ImmutableString textureSizeExt("textureSize"); -constexpr const ImmutableString textureVideoWEBGL("textureVideoWEBGL"); -constexpr const ImmutableString transpose("transpose"); -constexpr const ImmutableString trunc("trunc"); -constexpr const ImmutableString uaddCarry("uaddCarry"); -constexpr const ImmutableString uintBitsToFloat("uintBitsToFloat"); -constexpr const ImmutableString umulExtended("umulExtended"); -constexpr const ImmutableString unpackDouble2x32("unpackDouble2x32"); -constexpr const ImmutableString unpackHalf2x16("unpackHalf2x16"); -constexpr const ImmutableString unpackSnorm2x16("unpackSnorm2x16"); -constexpr const ImmutableString unpackSnorm4x8("unpackSnorm4x8"); -constexpr const ImmutableString unpackUnorm2x16("unpackUnorm2x16"); -constexpr const ImmutableString unpackUnorm4x8("unpackUnorm4x8"); -constexpr const ImmutableString usubBorrow("usubBorrow"); -constexpr const ImmutableString yuv_2_rgb("yuv_2_rgb"); - -} // namespace BuiltInName - -// TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend -// this from TVariable. Now symbol constructors taking an id have to be public even though they're -// not supposed to be accessible from outside of here. http://anglebug.com/2390 -namespace BuiltInVariable -{ - -constexpr const unsigned int kArraySize4[1] = {4}; - -constexpr const TVariable kangle_BaseInstance(BuiltInId::angle_BaseInstance, - BuiltInName::angle_BaseInstance, - SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, - StaticType::Get()); -constexpr const TVariable kangle_BaseVertex(BuiltInId::angle_BaseVertex, - BuiltInName::angle_BaseVertex, - SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, - StaticType::Get()); -constexpr const TVariable kgl_BaseInstance(BuiltInId::gl_BaseInstance, - BuiltInName::gl_BaseInstance, - SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, - StaticType::Get()); -constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex, - BuiltInName::gl_BaseVertex, - SymbolType::BuiltIn, - TExtension::ANGLE_base_vertex_base_instance, - StaticType::Get()); -constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID, - BuiltInName::gl_DrawID, - SymbolType::BuiltIn, - TExtension::ANGLE_multi_draw, - StaticType::Get()); -constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor, - BuiltInName::gl_FragColor, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord, - BuiltInName::gl_FragCoord, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth, - BuiltInName::gl_FragDepth, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_FrontFacing( - BuiltInId::gl_FrontFacing, - BuiltInName::gl_FrontFacing, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_GlobalInvocationID( - BuiltInId::gl_GlobalInvocationID, - BuiltInName::gl_GlobalInvocationID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_HelperInvocation( - BuiltInId::gl_HelperInvocation, - BuiltInName::gl_HelperInvocation, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID, - BuiltInName::gl_InstanceID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_InstanceIndex( - BuiltInId::gl_InstanceIndex, - BuiltInName::gl_InstanceIndex, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_InvocationID( - BuiltInId::gl_InvocationID, - BuiltInName::gl_InvocationID, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_InvocationIDES3_2( - BuiltInId::gl_InvocationIDES3_2, - BuiltInName::gl_InvocationID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_InvocationIDTCS( - BuiltInId::gl_InvocationIDTCS, - BuiltInName::gl_InvocationID, - SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, - StaticType::Get()); -constexpr const TVariable kgl_InvocationIDTCSES3_2( - BuiltInId::gl_InvocationIDTCSES3_2, - BuiltInName::gl_InvocationID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_LastFragColor( - BuiltInId::gl_LastFragColor, - BuiltInName::gl_LastFragColor, - SymbolType::BuiltIn, - TExtension::NV_shader_framebuffer_fetch, - StaticType::Get()); -constexpr const TVariable kgl_LastFragColorARM( - BuiltInId::gl_LastFragColorARM, - BuiltInName::gl_LastFragColorARM, - SymbolType::BuiltIn, - TExtension::ARM_shader_framebuffer_fetch, - StaticType::Get()); -constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer, - BuiltInName::gl_Layer, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_LayerES3_2(BuiltInId::gl_LayerES3_2, - BuiltInName::gl_Layer, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS, - BuiltInName::gl_Layer, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_LayerGSES3_2(BuiltInId::gl_LayerGSES3_2, - BuiltInName::gl_Layer, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS, - BuiltInName::gl_Layer, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_LocalInvocationID( - BuiltInId::gl_LocalInvocationID, - BuiltInName::gl_LocalInvocationID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_LocalInvocationIndex( - BuiltInId::gl_LocalInvocationIndex, - BuiltInName::gl_LocalInvocationIndex, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_NumSamples(BuiltInId::gl_NumSamples, - BuiltInName::gl_NumSamples, - SymbolType::BuiltIn, - TExtension::OES_sample_variables, - StaticType::Get()); -constexpr const TVariable kgl_NumSamplesES3_2(BuiltInId::gl_NumSamplesES3_2, - BuiltInName::gl_NumSamples, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_NumWorkGroups( - BuiltInId::gl_NumWorkGroups, - BuiltInName::gl_NumWorkGroups, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PatchVerticesInTCS( - BuiltInId::gl_PatchVerticesInTCS, - BuiltInName::gl_PatchVerticesIn, - SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, - StaticType::Get()); -constexpr const TVariable kgl_PatchVerticesInTCSES3_2( - BuiltInId::gl_PatchVerticesInTCSES3_2, - BuiltInName::gl_PatchVerticesIn, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PatchVerticesInTES( - BuiltInId::gl_PatchVerticesInTES, - BuiltInName::gl_PatchVerticesIn, - SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, - StaticType::Get()); -constexpr const TVariable kgl_PatchVerticesInTESES3_2( - BuiltInId::gl_PatchVerticesInTESES3_2, - BuiltInName::gl_PatchVerticesIn, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PointCoord( - BuiltInId::gl_PointCoord, - BuiltInName::gl_PointCoord, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize, - BuiltInName::gl_PointSize, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_Position(BuiltInId::gl_Position, - BuiltInName::gl_Position, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDES3_2( - BuiltInId::gl_PrimitiveIDES3_2, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDGS( - BuiltInId::gl_PrimitiveIDGS, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDGSES3_2( - BuiltInId::gl_PrimitiveIDGSES3_2, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDIn( - BuiltInId::gl_PrimitiveIDIn, - BuiltInName::gl_PrimitiveIDIn, - SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDInES3_2( - BuiltInId::gl_PrimitiveIDInES3_2, - BuiltInName::gl_PrimitiveIDIn, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDTCS( - BuiltInId::gl_PrimitiveIDTCS, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDTCSES3_2( - BuiltInId::gl_PrimitiveIDTCSES3_2, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDTES( - BuiltInId::gl_PrimitiveIDTES, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, - StaticType::Get()); -constexpr const TVariable kgl_PrimitiveIDTESES3_2( - BuiltInId::gl_PrimitiveIDTESES3_2, - BuiltInName::gl_PrimitiveID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_SampleID(BuiltInId::gl_SampleID, - BuiltInName::gl_SampleID, - SymbolType::BuiltIn, - TExtension::OES_sample_variables, - StaticType::Get()); -constexpr const TVariable kgl_SampleIDES3_2(BuiltInId::gl_SampleIDES3_2, - BuiltInName::gl_SampleID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_SamplePosition( - BuiltInId::gl_SamplePosition, - BuiltInName::gl_SamplePosition, - SymbolType::BuiltIn, - TExtension::OES_sample_variables, - StaticType::Get()); -constexpr const TVariable kgl_SamplePositionES3_2( - BuiltInId::gl_SamplePositionES3_2, - BuiltInName::gl_SamplePosition, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_SecondaryFragColorEXT( - BuiltInId::gl_SecondaryFragColorEXT, - BuiltInName::gl_SecondaryFragColorEXT, - SymbolType::BuiltIn, - TExtension::EXT_blend_func_extended, - StaticType::Get()); -constexpr const TVariable kgl_TessCoord(BuiltInId::gl_TessCoord, - BuiltInName::gl_TessCoord, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID, - BuiltInName::gl_VertexID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex, - BuiltInName::gl_VertexIndex, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR, - BuiltInName::gl_ViewID_OVR, - SymbolType::BuiltIn, - TExtension::OVR_multiview, - StaticType::Get()); -constexpr const TVariable kgl_ViewportIndex( - BuiltInId::gl_ViewportIndex, - BuiltInName::gl_ViewportIndex, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_WorkGroupID( - BuiltInId::gl_WorkGroupID, - BuiltInName::gl_WorkGroupID, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kgl_WorkGroupSize( - BuiltInId::gl_WorkGroupSize, - BuiltInName::gl_WorkGroupSize, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00B(BuiltInId::pt00B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00C(BuiltInId::pt00C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00D(BuiltInId::pt00D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00E(BuiltInId::pt00E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00F(BuiltInId::pt00F, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00G( - BuiltInId::pt00G, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00H( - BuiltInId::pt00H, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00I(BuiltInId::pt00I, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00J(BuiltInId::pt00J, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00K(BuiltInId::pt00K, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00L( - BuiltInId::pt00L, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00M( - BuiltInId::pt00M, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00N( - BuiltInId::pt00N, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00O( - BuiltInId::pt00O, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00P(BuiltInId::pt00P, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00Q( - BuiltInId::pt00Q, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00R(BuiltInId::pt00R, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00S(BuiltInId::pt00S, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00T(BuiltInId::pt00T, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00U( - BuiltInId::pt00U, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00V(BuiltInId::pt00V, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00W( - BuiltInId::pt00W, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00X(BuiltInId::pt00X, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00Y(BuiltInId::pt00Y, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00Z(BuiltInId::pt00Z, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00a( - BuiltInId::pt00a, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00b(BuiltInId::pt00b, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00c( - BuiltInId::pt00c, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00d( - BuiltInId::pt00d, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00e( - BuiltInId::pt00e, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00f( - BuiltInId::pt00f, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00g(BuiltInId::pt00g, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00h( - BuiltInId::pt00h, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00i( - BuiltInId::pt00i, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00j( - BuiltInId::pt00j, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00k( - BuiltInId::pt00k, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00l( - BuiltInId::pt00l, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00m( - BuiltInId::pt00m, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00n( - BuiltInId::pt00n, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00o(BuiltInId::pt00o, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00p( - BuiltInId::pt00p, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00q( - BuiltInId::pt00q, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00r( - BuiltInId::pt00r, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00s( - BuiltInId::pt00s, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00t(BuiltInId::pt00t, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00u( - BuiltInId::pt00u, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00v( - BuiltInId::pt00v, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00w( - BuiltInId::pt00w, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00x( - BuiltInId::pt00x, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00y( - BuiltInId::pt00y, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt00z(BuiltInId::pt00z, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01A(BuiltInId::pt01A, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01B(BuiltInId::pt01B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01C(BuiltInId::pt01C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01D(BuiltInId::pt01D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01E(BuiltInId::pt01E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01F(BuiltInId::pt01F, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01G( - BuiltInId::pt01G, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01H( - BuiltInId::pt01H, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01I(BuiltInId::pt01I, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01J(BuiltInId::pt01J, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01K(BuiltInId::pt01K, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01L(BuiltInId::pt01L, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01M(BuiltInId::pt01M, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01N(BuiltInId::pt01N, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01O(BuiltInId::pt01O, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01P( - BuiltInId::pt01P, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01Q( - BuiltInId::pt01Q, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01R(BuiltInId::pt01R, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01S(BuiltInId::pt01S, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01T(BuiltInId::pt01T, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01U( - BuiltInId::pt01U, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01V( - BuiltInId::pt01V, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01W( - BuiltInId::pt01W, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01X( - BuiltInId::pt01X, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01Y( - BuiltInId::pt01Y, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01Z( - BuiltInId::pt01Z, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01a(BuiltInId::pt01a, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01b(BuiltInId::pt01b, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01c(BuiltInId::pt01c, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01d(BuiltInId::pt01d, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01e(BuiltInId::pt01e, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01f(BuiltInId::pt01f, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01g(BuiltInId::pt01g, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01h( - BuiltInId::pt01h, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01i( - BuiltInId::pt01i, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01j( - BuiltInId::pt01j, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01k( - BuiltInId::pt01k, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt01l( - BuiltInId::pt01l, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt10B(BuiltInId::pt10B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt10C(BuiltInId::pt10C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt10D(BuiltInId::pt10D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt10Dx4( - BuiltInId::pt10Dx4, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::GetArray()); -constexpr const TVariable kpt10E(BuiltInId::pt10E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt10F(BuiltInId::pt10F, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt20B(BuiltInId::pt20B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt20C(BuiltInId::pt20C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt20D(BuiltInId::pt20D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt20E(BuiltInId::pt20E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt20F(BuiltInId::pt20F, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt30B(BuiltInId::pt30B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt30C(BuiltInId::pt30C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt30D(BuiltInId::pt30D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt30E(BuiltInId::pt30E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt30F(BuiltInId::pt30F, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt50B(BuiltInId::pt50B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt60B(BuiltInId::pt60B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt70B(BuiltInId::pt70B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt90B(BuiltInId::pt90B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kptA0B(BuiltInId::ptA0B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kptB0B(BuiltInId::ptB0B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kptD0B(BuiltInId::ptD0B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kptE0B(BuiltInId::ptE0B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kptF0B(BuiltInId::ptF0B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_io_00E(BuiltInId::pt_io_00E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_00C(BuiltInId::pt_o_00C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_00E(BuiltInId::pt_o_00E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_10C(BuiltInId::pt_o_10C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_10E(BuiltInId::pt_o_10E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_20C(BuiltInId::pt_o_20C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_20E(BuiltInId::pt_o_20E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_30C(BuiltInId::pt_o_30C, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); -constexpr const TVariable kpt_o_30E(BuiltInId::pt_o_30E, - BuiltInName::_empty, - SymbolType::BuiltIn, - TExtension::UNDEFINED, - StaticType::Get()); - -const TVariable *angle_BaseInstance() -{ - return &kangle_BaseInstance; -} - -const TVariable *angle_BaseVertex() -{ - return &kangle_BaseVertex; -} - -const TVariable *gl_BaseInstance() -{ - return &kgl_BaseInstance; -} - -const TVariable *gl_BaseVertex() -{ - return &kgl_BaseVertex; -} - -const TVariable *gl_DrawID() -{ - return &kgl_DrawID; -} - -const TVariable *gl_FragColor() -{ - return &kgl_FragColor; -} - -const TVariable *gl_FragCoord() -{ - return &kgl_FragCoord; -} - -const TVariable *gl_FragDepth() -{ - return &kgl_FragDepth; -} - -const TVariable *gl_FrontFacing() -{ - return &kgl_FrontFacing; -} - -const TVariable *gl_GlobalInvocationID() -{ - return &kgl_GlobalInvocationID; -} - -const TVariable *gl_HelperInvocation() -{ - return &kgl_HelperInvocation; -} - -const TVariable *gl_InstanceID() -{ - return &kgl_InstanceID; -} - -const TVariable *gl_InstanceIndex() -{ - return &kgl_InstanceIndex; -} - -const TVariable *gl_InvocationID() -{ - return &kgl_InvocationID; -} - -const TVariable *gl_InvocationIDES3_2() -{ - return &kgl_InvocationIDES3_2; -} - -const TVariable *gl_InvocationIDTCS() -{ - return &kgl_InvocationIDTCS; -} - -const TVariable *gl_InvocationIDTCSES3_2() -{ - return &kgl_InvocationIDTCSES3_2; -} - -const TVariable *gl_LastFragColor() -{ - return &kgl_LastFragColor; -} - -const TVariable *gl_LastFragColorARM() -{ - return &kgl_LastFragColorARM; -} - -const TVariable *gl_Layer() -{ - return &kgl_Layer; -} - -const TVariable *gl_LayerES3_2() -{ - return &kgl_LayerES3_2; -} - -const TVariable *gl_LayerGS() -{ - return &kgl_LayerGS; -} - -const TVariable *gl_LayerGSES3_2() -{ - return &kgl_LayerGSES3_2; -} - -const TVariable *gl_LayerVS() -{ - return &kgl_LayerVS; -} - -const TVariable *gl_LocalInvocationID() -{ - return &kgl_LocalInvocationID; -} - -const TVariable *gl_LocalInvocationIndex() -{ - return &kgl_LocalInvocationIndex; -} - -const TVariable *gl_NumSamples() -{ - return &kgl_NumSamples; -} - -const TVariable *gl_NumSamplesES3_2() -{ - return &kgl_NumSamplesES3_2; -} - -const TVariable *gl_NumWorkGroups() -{ - return &kgl_NumWorkGroups; -} - -const TVariable *gl_PatchVerticesInTCS() -{ - return &kgl_PatchVerticesInTCS; -} - -const TVariable *gl_PatchVerticesInTCSES3_2() -{ - return &kgl_PatchVerticesInTCSES3_2; -} - -const TVariable *gl_PatchVerticesInTES() -{ - return &kgl_PatchVerticesInTES; -} - -const TVariable *gl_PatchVerticesInTESES3_2() -{ - return &kgl_PatchVerticesInTESES3_2; -} - -const TVariable *gl_PointCoord() -{ - return &kgl_PointCoord; -} - -const TVariable *gl_PointSize() -{ - return &kgl_PointSize; -} - -const TVariable *gl_Position() -{ - return &kgl_Position; -} - -const TVariable *gl_PrimitiveID() -{ - return &kgl_PrimitiveID; -} - -const TVariable *gl_PrimitiveIDES3_2() -{ - return &kgl_PrimitiveIDES3_2; -} - -const TVariable *gl_PrimitiveIDGS() -{ - return &kgl_PrimitiveIDGS; -} - -const TVariable *gl_PrimitiveIDGSES3_2() -{ - return &kgl_PrimitiveIDGSES3_2; -} - -const TVariable *gl_PrimitiveIDIn() -{ - return &kgl_PrimitiveIDIn; -} - -const TVariable *gl_PrimitiveIDInES3_2() -{ - return &kgl_PrimitiveIDInES3_2; -} - -const TVariable *gl_PrimitiveIDTCS() -{ - return &kgl_PrimitiveIDTCS; -} - -const TVariable *gl_PrimitiveIDTCSES3_2() -{ - return &kgl_PrimitiveIDTCSES3_2; -} - -const TVariable *gl_PrimitiveIDTES() -{ - return &kgl_PrimitiveIDTES; -} - -const TVariable *gl_PrimitiveIDTESES3_2() -{ - return &kgl_PrimitiveIDTESES3_2; -} - -const TVariable *gl_SampleID() -{ - return &kgl_SampleID; -} - -const TVariable *gl_SampleIDES3_2() -{ - return &kgl_SampleIDES3_2; -} - -const TVariable *gl_SamplePosition() -{ - return &kgl_SamplePosition; -} - -const TVariable *gl_SamplePositionES3_2() -{ - return &kgl_SamplePositionES3_2; -} - -const TVariable *gl_SecondaryFragColorEXT() -{ - return &kgl_SecondaryFragColorEXT; -} - -const TVariable *gl_TessCoord() -{ - return &kgl_TessCoord; -} - -const TVariable *gl_VertexID() -{ - return &kgl_VertexID; -} - -const TVariable *gl_VertexIndex() -{ - return &kgl_VertexIndex; -} - -const TVariable *gl_ViewID_OVR() -{ - return &kgl_ViewID_OVR; -} - -const TVariable *gl_ViewportIndex() -{ - return &kgl_ViewportIndex; -} - -const TVariable *gl_WorkGroupID() -{ - return &kgl_WorkGroupID; -} - -const TVariable *gl_WorkGroupSize() -{ - return &kgl_WorkGroupSize; -} - -} // namespace BuiltInVariable - -namespace BuiltInParameters -{ - -constexpr const TVariable **empty = nullptr; -constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00F}; -constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p00B00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00B10B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00B20B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00B30B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B}; -constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D}; -constexpr const TVariable *p00C00C00B[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00C00C00C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p00C00C00F[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00F}; -constexpr const TVariable *p00C00C10C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt10C}; -constexpr const TVariable *p00C00C20C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt20C}; -constexpr const TVariable *p00C00C30C[3] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt30C}; -constexpr const TVariable *p00C00D[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00C10C[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C}; -constexpr const TVariable *p00C20C[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt20C}; -constexpr const TVariable *p00C30C[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt30C}; -constexpr const TVariable *p00C_o_00C[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt_o_00C}; -constexpr const TVariable *p00C_o_00D[2] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt_o_00D}; -constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00D00D00F[3] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00F}; -constexpr const TVariable *p00D00D_o_00D_o_00D[4] = { - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D, - &BuiltInVariable::kpt_o_00D}; -constexpr const TVariable *p00E00D00D[3] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00E00E00D00D[4] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00E00E00E[3] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00E}; -constexpr const TVariable *p00E00E00F[3] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00F}; -constexpr const TVariable *p00E00E_o_00E_o_00E[4] = { - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E, - &BuiltInVariable::kpt_o_00E}; -constexpr const TVariable *p00F00F00F[3] = {&BuiltInVariable::kpt00F, &BuiltInVariable::kpt00F, - &BuiltInVariable::kpt00F}; -constexpr const TVariable *p00G00E00E[3] = {&BuiltInVariable::kpt00G, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00E}; -constexpr const TVariable *p00I00B00B00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00I00D[2] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00I10B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I10B00D[3] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00I10B10B10B10D[5] = { - &BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I10B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00I10B10D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00I10B10Dx400D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00I10D00D10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I20B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I20B10B10B10D[5] = { - &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I20B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00I30B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I30B10B10B10D[5] = { - &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00I30B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00J00D[2] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00J20B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00J20B20B20B20D[5] = { - &BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00J20B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00J20D00D20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00J30B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00J30B20B20B20D[5] = { - &BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00J30B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00K00D[2] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00K20B00B[3] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00K20B00D[3] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00K20B20B20B[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00L00D[2] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00L10B[2] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00L20B00B10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00L20B00D[3] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00L20B10B10B10D[5] = { - &BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00L20B10D00B[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00L20B10D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00L20B10Dx400D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00L20D00D10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00M00D[2] = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00M10B00B[3] = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00M10D00D[3] = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00M20B00B[3] = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00M30B00B[3] = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00N00D[2] = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00N10B00B[3] = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00N10D00D[3] = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00N20B00B[3] = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00N30B00B[3] = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00O10B10B10B10D[5] = { - &BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00O10B10D00D[4] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00O10B10Dx400D[4] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00O10D10D[3] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00O20B00D[3] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00O20B10B10B10D[5] = { - &BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00O20B10D[3] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00O30B10B10B10D[5] = { - &BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00O30B10D[3] = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00P10D00D[3] = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00Q20D00D[3] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00R00B00B00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00R00D[2] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00R10B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R10B00D[3] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00R10B10B10B10D[5] = { - &BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R10B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00R10B10D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00R10B10Dx400D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00R10D00D10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R20B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R20B10B10B10D[5] = { - &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R20B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00R30B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R30B10B10B10D[5] = { - &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00R30B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00S00D[2] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00S20B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00S20B20B20B20D[5] = { - &BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00S20B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00S20D00D20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00S30B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00S30B20B20B20D[5] = { - &BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00S30B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00T00D[2] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00T20B00B[3] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00T20B00D[3] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00T20B20B20B[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00U00D[2] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00U10B[2] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00U20B00B10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00U20B00D[3] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00U20B10B10B10D[5] = { - &BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00U20B10D00B[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00U20B10D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00U20B10Dx400D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00U20D00D10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00V10D00D[3] = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00W20D00D[3] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00X00B00B00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00X00D[2] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00X10B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X10B00D[3] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00X10B10B10B10D[5] = { - &BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X10B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00X10B10D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00X10B10Dx400D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00X10D00D10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X20B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X20B10B10B10D[5] = { - &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X20B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00X30B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X30B10B10B10D[5] = { - &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00X30B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00Y00D[2] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00Y20B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00Y20B20B20B20D[5] = { - &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00Y20B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00Y20D00D20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00Y30B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00Y30B20B20B20D[5] = { - &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p00Y30B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00Z00D[2] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00Z20B00B[3] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00Z20B00D[3] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00Z20B20B20B[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00a00D[2] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00a10B[2] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00a20B00B10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00a20B00D[3] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00a20B10B10B10D[5] = { - &BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00a20B10D00B[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00a20B10D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00a20B10Dx400D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00a20D00D10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00b10D00D[3] = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00c20D00D[3] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00d00D[2] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00d10B00B10Dx4[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt10Dx4}; -constexpr const TVariable *p00d20B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00d20B10B10B10D[5] = { - &BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00d20B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00d30B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00d30B10B10B10D[5] = { - &BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00d30B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00e00D[2] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00e20B00B[3] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00e30B00B[3] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00e30B20B20B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00f00D[2] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00f10B[2] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00f20B00B10Dx4[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt10Dx4}; -constexpr const TVariable *p00f30B00B[3] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00f30B10B10B10D[5] = { - &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00f30B10D[3] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00g00B00B00B00D[5] = { - &BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g00B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g00B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00g00D00D00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g10B00B00B00D[5] = { - &BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g10B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g10B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00g30B00B00B00D[5] = { - &BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g30B00B00D[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00g30B00D00B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00h00B[2] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00h00D[2] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00h10B00B00B00D[5] = { - &BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00h10B00B00D[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00h10B00D00B[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00h10D00D00D[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00h20B00B[3] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00i00B[2] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00i00D[2] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00i20B00B00B00D[5] = { - &BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00i20B00B00D[4] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00i20B00D00B[4] = {&BuiltInVariable::kpt00i, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00j00D[2] = {&BuiltInVariable::kpt00j, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00k00D[2] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00k20B[2] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00k30B00B[3] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00k30B00D[3] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00k30B20B20B[4] = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00l00D[2] = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00l20B[2] = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00l30B00B[3] = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00m00B[2] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00m00D[2] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00m20B00B00B00D[5] = { - &BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00m20B00B00D[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00m20B00D00B[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00m30B00B00B00D[5] = { - &BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00m30B00B00D[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00m30B00D00B[4] = {&BuiltInVariable::kpt00m, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00n10B00B10Dx4[4] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt10Dx4}; -constexpr const TVariable *p00n20B10B10B10D[5] = { - &BuiltInVariable::kpt00n, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00n20B10D[3] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00n30B10B10B10D[5] = { - &BuiltInVariable::kpt00n, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00n30B10D[3] = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00o00B00B00B00D[5] = { - &BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o00B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o00B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00o00D00D00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o10B00B00B00D[5] = { - &BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o10B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o10B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00o30B00B00B00D[5] = { - &BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o30B00B00D[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00o30B00D00B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00p00B[2] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00p00D[2] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00p10B00B00B00D[5] = { - &BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00p10B00B00D[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00p10B00D00B[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00p10D00D00D[4] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00p20B00B[3] = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00q10B10B10B10D[5] = { - &BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00q10B10D00D[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00q10B10Dx400D[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00q10D10D[3] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00q20B00D[3] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00q20B10B10B10D[5] = { - &BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00q20B10D[3] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00q30B10B10B10D[5] = { - &BuiltInVariable::kpt00q, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00q30B10D[3] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00r00D[2] = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00s00D[2] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00s20B[2] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00s30B00B[3] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00s30B00D[3] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00s30B20B20B[4] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00t00B00B00B00D[5] = { - &BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t00B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t00B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00t00D00D00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t10B00B00B00D[5] = { - &BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t10B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t10B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00t30B00B00B00D[5] = { - &BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t30B00B00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00t30B00D00B[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00u00B[2] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00u00D[2] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00u10B00B00B00D[5] = { - &BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00u10B00B00D[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00u10B00D00B[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00u10D00D00D[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00u20B00B[3] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00v10B10B10B10D[5] = { - &BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00v10B10D00D[4] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00v10B10Dx400D[4] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10Dx4, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00v10D10D[3] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00v20B00D[3] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00v20B10B10B10D[5] = { - &BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00v20B10D[3] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00v30B10B10B10D[5] = { - &BuiltInVariable::kpt00v, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00v30B10D[3] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p00w00D[2] = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00x00D[2] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00x20B[2] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00x30B00B[3] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00x30B00D[3] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00x30B20B20B[4] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p00y10B[2] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p00z10D00B[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p00z10D00D00D[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p00z10D00E00E[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p00z10D30B[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01A10D00B[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01A10D00D00D[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01A10D00E00E[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01A10D30D[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01B10D00B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01B10D00D00D[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01B10D00E00E[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01B10D30E[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01C20D00B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01C20D00D00D[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01C20D00E00E[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01C20D30B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01D20D00B[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01D20D00D00D[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01D20D00E00E[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01D20D30D[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01E20D00B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01E20D00D00D[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01E20D00E00E[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01E20D30E[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01F20D00B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01F20D00D00D[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01F20D00E00E[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01F20D30B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01G20D00B[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01G20D00D00D[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01G20D00E00E[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01G20D30D[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01H20D00B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01H20D00D00D[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01H20D00E00E[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01H20D30E[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01I20D00B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01I20D00D00D[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01I20D00E00E[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01I20D30B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01J20D00B[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01J20D00D00D[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01J20D00E00E[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01J20D30D[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01K20D00B[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01K20D00D00D[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01K20D00E00E[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01K20D30E[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01L00D00B[3] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01L00D00D00D[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01L00D00E00E[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01L00D30B[3] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01M00D00B[3] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01M00D00D00D[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01M00D00E00E[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01M00D30D[3] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01N00D00B[3] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01N00D00D00D[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01N00D00E00E[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01N00D30E[3] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01O10D00B[3] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01O10D00D00D[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01O10D00E00E[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01O10D30B[3] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01P10D00B[3] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01P10D00D00D[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01P10D00E00E[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01P10D30D[3] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01Q10D00B[3] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01Q10D00D00D[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01Q10D00E00E[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Q10D30E[3] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01R10D00D00B[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01R10D00D00D00D[5] = { - &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01R10D00D00E00E[5] = { - &BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01R10D00D30B[4] = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01S10D00D00B[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01S10D00D00D00D[5] = { - &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01S10D00D00E00E[5] = { - &BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01S10D00D30D[4] = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01T10D00D00B[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01T10D00D00D00D[5] = { - &BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01T10D00D00E00E[5] = { - &BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01T10D00D30E[4] = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01U20D00D00B[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01U20D00D00D00D[5] = { - &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01U20D00D00E00E[5] = { - &BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01U20D00D30B[4] = {&BuiltInVariable::kpt01U, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01V20D00D00B[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01V20D00D00D00D[5] = { - &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01V20D00D00E00E[5] = { - &BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01V20D00D30D[4] = {&BuiltInVariable::kpt01V, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01W20D00D00B[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01W20D00D00D00D[5] = { - &BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01W20D00D00E00E[5] = { - &BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01W20D00D30E[4] = {&BuiltInVariable::kpt01W, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01X20D00B[3] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01X20D00D00D[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01X20D00E00E[4] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01X20D30B[3] = {&BuiltInVariable::kpt01X, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01Y20D00B[3] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01Y20D00D00D[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01Y20D00E00E[4] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Y20D30D[3] = {&BuiltInVariable::kpt01Y, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01Z20D00B[3] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01Z20D00D00D[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01Z20D00E00E[4] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01Z20D30E[3] = {&BuiltInVariable::kpt01Z, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01a10D00B[3] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01a10D00D00D[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01a10D00E00E[4] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01a10D30B[3] = {&BuiltInVariable::kpt01a, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01b10D00B[3] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01b10D00D00D[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01b10D00E00E[4] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01b10D30D[3] = {&BuiltInVariable::kpt01b, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01c10D00B[3] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01c10D00D00D[4] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01c10D00E00E[4] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01c10D30E[3] = {&BuiltInVariable::kpt01c, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01d00D00B[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01d00D00D00D[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01d00D00E00E[4] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01d00D30B[3] = {&BuiltInVariable::kpt01d, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p01e00D00B[3] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01e00D00D00D[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01e00D00E00E[4] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01e00D30D[3] = {&BuiltInVariable::kpt01e, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p01f00D00B[3] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p01f00D00D00D[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01f00D00E00E[4] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; -constexpr const TVariable *p01f00D30E[3] = {&BuiltInVariable::kpt01f, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p01g[1] = {&BuiltInVariable::kpt01g}; -constexpr const TVariable *p01h[1] = {&BuiltInVariable::kpt01h}; -constexpr const TVariable *p01i[1] = {&BuiltInVariable::kpt01i}; -constexpr const TVariable *p01j00D[2] = {&BuiltInVariable::kpt01j, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01k00D[2] = {&BuiltInVariable::kpt01k, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p01l00D[2] = {&BuiltInVariable::kpt01l, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p10B00D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10B10B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p10B10B10B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10B}; -constexpr const TVariable *p10B10B10F[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B, - &BuiltInVariable::kpt10F}; -constexpr const TVariable *p10B10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p10B20B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p10B30B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B}; -constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D}; -constexpr const TVariable *p10C00C00C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p10C10C00B[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p10C10C00C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p10C10C10C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C, - &BuiltInVariable::kpt10C}; -constexpr const TVariable *p10C10C10F[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C, - &BuiltInVariable::kpt10F}; -constexpr const TVariable *p10C10D[2] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10D}; -constexpr const TVariable *p10C_o_10C[2] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt_o_10C}; -constexpr const TVariable *p10C_o_10D[2] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt_o_10D}; -constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10D10D10D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt10D}; -constexpr const TVariable *p10D10D10F[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, - &BuiltInVariable::kpt10F}; -constexpr const TVariable *p10D10D_o_10D_o_10D[4] = { - &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D, - &BuiltInVariable::kpt_o_10D}; -constexpr const TVariable *p10E00D00D[3] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10E00E00E[3] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00E}; -constexpr const TVariable *p10E10E00D00D[4] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p10E10E10E[3] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, - &BuiltInVariable::kpt10E}; -constexpr const TVariable *p10E10E10F[3] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, - &BuiltInVariable::kpt10F}; -constexpr const TVariable *p10E10E_o_10E_o_10E[4] = { - &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E, - &BuiltInVariable::kpt_o_10E}; -constexpr const TVariable *p10F10F10F[3] = {&BuiltInVariable::kpt10F, &BuiltInVariable::kpt10F, - &BuiltInVariable::kpt10F}; -constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p20B00D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p20B00H[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00H}; -constexpr const TVariable *p20B10B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p20B20B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p20B20B20B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20B}; -constexpr const TVariable *p20B20B20F[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B, - &BuiltInVariable::kpt20F}; -constexpr const TVariable *p20B20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p20B30B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt30B}; -constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20B}; -constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20D}; -constexpr const TVariable *p20C00C00C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p20C20C00B[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p20C20C00C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p20C20C20C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C, - &BuiltInVariable::kpt20C}; -constexpr const TVariable *p20C20C20F[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C, - &BuiltInVariable::kpt20F}; -constexpr const TVariable *p20C20D[2] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20D}; -constexpr const TVariable *p20C_o_20C[2] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt_o_20C}; -constexpr const TVariable *p20C_o_20D[2] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt_o_20D}; -constexpr const TVariable *p20D00D00D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p20D20D00D00D[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p20D20D20D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt20D}; -constexpr const TVariable *p20D20D20F[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, - &BuiltInVariable::kpt20F}; -constexpr const TVariable *p20D20D_o_20D_o_20D[4] = { - &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D, - &BuiltInVariable::kpt_o_20D}; -constexpr const TVariable *p20E00D00D[3] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p20E00E00E[3] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00E}; -constexpr const TVariable *p20E20E00D00D[4] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p20E20E20E[3] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, - &BuiltInVariable::kpt20E}; -constexpr const TVariable *p20E20E20F[3] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, - &BuiltInVariable::kpt20F}; -constexpr const TVariable *p20E20E_o_20E_o_20E[4] = { - &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E, - &BuiltInVariable::kpt_o_20E}; -constexpr const TVariable *p20F20F20F[3] = {&BuiltInVariable::kpt20F, &BuiltInVariable::kpt20F, - &BuiltInVariable::kpt20F}; -constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p30B00D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p30B10B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B}; -constexpr const TVariable *p30B20B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B}; -constexpr const TVariable *p30B30B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p30B30B30B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt30B}; -constexpr const TVariable *p30B30B30F[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B, - &BuiltInVariable::kpt30F}; -constexpr const TVariable *p30B30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30D}; -constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B}; -constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30D}; -constexpr const TVariable *p30C00C00C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt00C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p30C30C00B[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C, - &BuiltInVariable::kpt00B}; -constexpr const TVariable *p30C30C00C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C, - &BuiltInVariable::kpt00C}; -constexpr const TVariable *p30C30C30C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C, - &BuiltInVariable::kpt30C}; -constexpr const TVariable *p30C30C30F[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C, - &BuiltInVariable::kpt30F}; -constexpr const TVariable *p30C30D[2] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30D}; -constexpr const TVariable *p30C_o_30C[2] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt_o_30C}; -constexpr const TVariable *p30C_o_30D[2] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt_o_30D}; -constexpr const TVariable *p30D00D00D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p30D30D00D00D[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p30D30D30D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, - &BuiltInVariable::kpt30D}; -constexpr const TVariable *p30D30D30F[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, - &BuiltInVariable::kpt30F}; -constexpr const TVariable *p30D30D_o_30D_o_30D[4] = { - &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D, - &BuiltInVariable::kpt_o_30D}; -constexpr const TVariable *p30E00D00D[3] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00D, - &BuiltInVariable::kpt00D}; -constexpr const TVariable *p30E00E00E[3] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00E, - &BuiltInVariable::kpt00E}; -constexpr const TVariable *p30E30E00D00D[4] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p30E30E30E[3] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, - &BuiltInVariable::kpt30E}; -constexpr const TVariable *p30E30E30F[3] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, - &BuiltInVariable::kpt30F}; -constexpr const TVariable *p30E30E_o_30E_o_30E[4] = { - &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E, - &BuiltInVariable::kpt_o_30E}; -constexpr const TVariable *p30F30F30F[3] = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F, - &BuiltInVariable::kpt30F}; -constexpr const TVariable *p50B50B[2] = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B}; -constexpr const TVariable *p60B60B[2] = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B}; -constexpr const TVariable *p70B70B[2] = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B}; -constexpr const TVariable *p90B90B[2] = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B}; -constexpr const TVariable *pA0BA0B[2] = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B}; -constexpr const TVariable *pB0BB0B[2] = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B}; -constexpr const TVariable *pD0BD0B[2] = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B}; -constexpr const TVariable *pE0BE0B[2] = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B}; -constexpr const TVariable *pF0BF0B[2] = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B}; -constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D, - &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D}; -constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E, - &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E}; - -} // namespace BuiltInParameters - -// TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend -// this from TFunction. Now symbol constructors taking an id have to be public even though they're -// not supposed to be accessible from outside of here. http://anglebug.com/2390 -namespace Func -{ - -constexpr const TFunction radians_00B(BuiltInId::radians_Float1, - BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpRadians, - true); -constexpr const TFunction radians_10B(BuiltInId::radians_Float2, - BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpRadians, - true); -constexpr const TFunction radians_20B(BuiltInId::radians_Float3, - BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpRadians, - true); -constexpr const TFunction radians_30B(BuiltInId::radians_Float4, - BuiltInName::radians, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpRadians, - true); -constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1, - BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpDegrees, - true); -constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2, - BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpDegrees, - true); -constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3, - BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpDegrees, - true); -constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4, - BuiltInName::degrees, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpDegrees, - true); -constexpr const TFunction sin_00B(BuiltInId::sin_Float1, - BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpSin, - true); -constexpr const TFunction sin_10B(BuiltInId::sin_Float2, - BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpSin, - true); -constexpr const TFunction sin_20B(BuiltInId::sin_Float3, - BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpSin, - true); -constexpr const TFunction sin_30B(BuiltInId::sin_Float4, - BuiltInName::sin, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpSin, - true); -constexpr const TFunction cos_00B(BuiltInId::cos_Float1, - BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCos, - true); -constexpr const TFunction cos_10B(BuiltInId::cos_Float2, - BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCos, - true); -constexpr const TFunction cos_20B(BuiltInId::cos_Float3, - BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCos, - true); -constexpr const TFunction cos_30B(BuiltInId::cos_Float4, - BuiltInName::cos, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCos, - true); -constexpr const TFunction tan_00B(BuiltInId::tan_Float1, - BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpTan, - true); -constexpr const TFunction tan_10B(BuiltInId::tan_Float2, - BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpTan, - true); -constexpr const TFunction tan_20B(BuiltInId::tan_Float3, - BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpTan, - true); -constexpr const TFunction tan_30B(BuiltInId::tan_Float4, - BuiltInName::tan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpTan, - true); -constexpr const TFunction asin_00B(BuiltInId::asin_Float1, - BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAsin, - true); -constexpr const TFunction asin_10B(BuiltInId::asin_Float2, - BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAsin, - true); -constexpr const TFunction asin_20B(BuiltInId::asin_Float3, - BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAsin, - true); -constexpr const TFunction asin_30B(BuiltInId::asin_Float4, - BuiltInName::asin, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAsin, - true); -constexpr const TFunction acos_00B(BuiltInId::acos_Float1, - BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAcos, - true); -constexpr const TFunction acos_10B(BuiltInId::acos_Float2, - BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAcos, - true); -constexpr const TFunction acos_20B(BuiltInId::acos_Float3, - BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAcos, - true); -constexpr const TFunction acos_30B(BuiltInId::acos_Float4, - BuiltInName::acos, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAcos, - true); -constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_00B(BuiltInId::atan_Float1, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_10B(BuiltInId::atan_Float2, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_20B(BuiltInId::atan_Float3, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction atan_30B(BuiltInId::atan_Float4, - BuiltInName::atan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAtan, - true); -constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1, - BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpSinh, - true); -constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2, - BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpSinh, - true); -constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3, - BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpSinh, - true); -constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4, - BuiltInName::sinh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpSinh, - true); -constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1, - BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCosh, - true); -constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2, - BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCosh, - true); -constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3, - BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCosh, - true); -constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4, - BuiltInName::cosh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCosh, - true); -constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1, - BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpTanh, - true); -constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2, - BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpTanh, - true); -constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3, - BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpTanh, - true); -constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4, - BuiltInName::tanh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpTanh, - true); -constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1, - BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAsinh, - true); -constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2, - BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAsinh, - true); -constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3, - BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAsinh, - true); -constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4, - BuiltInName::asinh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAsinh, - true); -constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1, - BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAcosh, - true); -constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2, - BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAcosh, - true); -constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3, - BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAcosh, - true); -constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4, - BuiltInName::acosh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAcosh, - true); -constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1, - BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAtanh, - true); -constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2, - BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAtanh, - true); -constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3, - BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAtanh, - true); -constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4, - BuiltInName::atanh, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAtanh, - true); -constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1, - BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpPow, - true); -constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2, - BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpPow, - true); -constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3, - BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpPow, - true); -constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4, - BuiltInName::pow, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpPow, - true); -constexpr const TFunction exp_00B(BuiltInId::exp_Float1, - BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpExp, - true); -constexpr const TFunction exp_10B(BuiltInId::exp_Float2, - BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpExp, - true); -constexpr const TFunction exp_20B(BuiltInId::exp_Float3, - BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpExp, - true); -constexpr const TFunction exp_30B(BuiltInId::exp_Float4, - BuiltInName::exp, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpExp, - true); -constexpr const TFunction log_00B(BuiltInId::log_Float1, - BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpLog, - true); -constexpr const TFunction log_10B(BuiltInId::log_Float2, - BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpLog, - true); -constexpr const TFunction log_20B(BuiltInId::log_Float3, - BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpLog, - true); -constexpr const TFunction log_30B(BuiltInId::log_Float4, - BuiltInName::log, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpLog, - true); -constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1, - BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpExp2, - true); -constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2, - BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpExp2, - true); -constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3, - BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpExp2, - true); -constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4, - BuiltInName::exp2, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpExp2, - true); -constexpr const TFunction log2_00B(BuiltInId::log2_Float1, - BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpLog2, - true); -constexpr const TFunction log2_10B(BuiltInId::log2_Float2, - BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpLog2, - true); -constexpr const TFunction log2_20B(BuiltInId::log2_Float3, - BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpLog2, - true); -constexpr const TFunction log2_30B(BuiltInId::log2_Float4, - BuiltInName::log2, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpLog2, - true); -constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_00C(BuiltInId::sqrt_Double1, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_10C(BuiltInId::sqrt_Double2, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_20C(BuiltInId::sqrt_Double3, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction sqrt_30C(BuiltInId::sqrt_Double4, - BuiltInName::sqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpSqrt, - true); -constexpr const TFunction inversesqrt_00B( - BuiltInId::inversesqrt_Float1, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_10B( - BuiltInId::inversesqrt_Float2, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_20B( - BuiltInId::inversesqrt_Float3, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_30B( - BuiltInId::inversesqrt_Float4, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_00C( - BuiltInId::inversesqrt_Double1, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_10C( - BuiltInId::inversesqrt_Double2, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_20C( - BuiltInId::inversesqrt_Double3, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction inversesqrt_30C( - BuiltInId::inversesqrt_Double4, - BuiltInName::inversesqrt, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpInversesqrt, - true); -constexpr const TFunction abs_00B(BuiltInId::abs_Float1, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_10B(BuiltInId::abs_Float2, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_20B(BuiltInId::abs_Float3, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_30B(BuiltInId::abs_Float4, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_00D(BuiltInId::abs_Int1, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_10D(BuiltInId::abs_Int2, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_20D(BuiltInId::abs_Int3, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_30D(BuiltInId::abs_Int4, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_00C(BuiltInId::abs_Double1, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_10C(BuiltInId::abs_Double2, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_20C(BuiltInId::abs_Double3, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction abs_30C(BuiltInId::abs_Double4, - BuiltInName::abs, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpAbs, - true); -constexpr const TFunction sign_00B(BuiltInId::sign_Float1, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_10B(BuiltInId::sign_Float2, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_20B(BuiltInId::sign_Float3, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_30B(BuiltInId::sign_Float4, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_00D(BuiltInId::sign_Int1, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_10D(BuiltInId::sign_Int2, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_20D(BuiltInId::sign_Int3, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_30D(BuiltInId::sign_Int4, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_00C(BuiltInId::sign_Double1, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_10C(BuiltInId::sign_Double2, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_20C(BuiltInId::sign_Double3, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction sign_30C(BuiltInId::sign_Double4, - BuiltInName::sign, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpSign, - true); -constexpr const TFunction floor_00B(BuiltInId::floor_Float1, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_10B(BuiltInId::floor_Float2, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_20B(BuiltInId::floor_Float3, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_30B(BuiltInId::floor_Float4, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_00C(BuiltInId::floor_Double1, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_10C(BuiltInId::floor_Double2, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_20C(BuiltInId::floor_Double3, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction floor_30C(BuiltInId::floor_Double4, - BuiltInName::floor, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpFloor, - true); -constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_00C(BuiltInId::trunc_Double1, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_10C(BuiltInId::trunc_Double2, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_20C(BuiltInId::trunc_Double3, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction trunc_30C(BuiltInId::trunc_Double4, - BuiltInName::trunc, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpTrunc, - true); -constexpr const TFunction round_00B(BuiltInId::round_Float1, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_10B(BuiltInId::round_Float2, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_20B(BuiltInId::round_Float3, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_30B(BuiltInId::round_Float4, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_00C(BuiltInId::round_Double1, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_10C(BuiltInId::round_Double2, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_20C(BuiltInId::round_Double3, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction round_30C(BuiltInId::round_Double4, - BuiltInName::round, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpRound, - true); -constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_00C(BuiltInId::roundEven_Double1, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_10C(BuiltInId::roundEven_Double2, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_20C(BuiltInId::roundEven_Double3, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction roundEven_30C(BuiltInId::roundEven_Double4, - BuiltInName::roundEven, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpRoundEven, - true); -constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_00C(BuiltInId::ceil_Double1, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_10C(BuiltInId::ceil_Double2, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_20C(BuiltInId::ceil_Double3, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction ceil_30C(BuiltInId::ceil_Double4, - BuiltInName::ceil, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpCeil, - true); -constexpr const TFunction fract_00B(BuiltInId::fract_Float1, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_10B(BuiltInId::fract_Float2, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_20B(BuiltInId::fract_Float3, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_30B(BuiltInId::fract_Float4, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_00C(BuiltInId::fract_Double1, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_10C(BuiltInId::fract_Double2, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_20C(BuiltInId::fract_Double3, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction fract_30C(BuiltInId::fract_Double4, - BuiltInName::fract, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpFract, - true); -constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p20B00B00B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p30B00B00B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_00C00C(BuiltInId::mod_Double1_Double1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_10C00C(BuiltInId::mod_Double2_Double1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p10C00C00C, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_20C00C(BuiltInId::mod_Double3_Double1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p20C00C00C, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_30C00C(BuiltInId::mod_Double4_Double1, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p30C00C00C, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_10C10C(BuiltInId::mod_Double2_Double2, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_20C20C(BuiltInId::mod_Double3_Double3, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction mod_30C30C(BuiltInId::mod_Double4_Double4, - BuiltInName::mod, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpMod, - true); -constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20B00B00B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30B00B00B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_00C00C(BuiltInId::min_Double1_Double1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10C10C(BuiltInId::min_Double2_Double2, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20C20C(BuiltInId::min_Double3_Double3, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30C30C(BuiltInId::min_Double4_Double4, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10C00C(BuiltInId::min_Double2_Double1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10C00C00C, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20C00C(BuiltInId::min_Double3_Double1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20C00C00C, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30C00C(BuiltInId::min_Double4_Double1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30C00C00C, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10D10D(BuiltInId::min_Int2_Int2, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20D20D(BuiltInId::min_Int3_Int3, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30D30D(BuiltInId::min_Int4_Int4, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10D00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30D00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p10E00E00E, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1, - BuiltInName::min, - TExtension::UNDEFINED, - BuiltInParameters::p30E00E00E, - 2, - StaticType::Get(), - EOpMin, - true); -constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20B00B00B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30B00B00B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_00C00C(BuiltInId::max_Double1_Double1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10C10C(BuiltInId::max_Double2_Double2, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20C20C(BuiltInId::max_Double3_Double3, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30C30C(BuiltInId::max_Double4_Double4, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10C00C(BuiltInId::max_Double2_Double1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10C00C00C, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20C00C(BuiltInId::max_Double3_Double1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20C00C00C, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30C00C(BuiltInId::max_Double4_Double1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30C00C00C, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10D10D(BuiltInId::max_Int2_Int2, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20D20D(BuiltInId::max_Int3_Int3, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30D30D(BuiltInId::max_Int4_Int4, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10D00D(BuiltInId::max_Int2_Int1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10D00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20D00D(BuiltInId::max_Int3_Int1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30D00D(BuiltInId::max_Int4_Int1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30D00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p10E00E00E, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1, - BuiltInName::max, - TExtension::UNDEFINED, - BuiltInParameters::p30E00E00E, - 2, - StaticType::Get(), - EOpMax, - true); -constexpr const TFunction clamp_00B00B00B( - BuiltInId::clamp_Float1_Float1_Float1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10B00B00B( - BuiltInId::clamp_Float2_Float1_Float1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20B00B00B( - BuiltInId::clamp_Float3_Float1_Float1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20B00B00B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30B00B00B( - BuiltInId::clamp_Float4_Float1_Float1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30B00B00B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10B10B10B( - BuiltInId::clamp_Float2_Float2_Float2, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20B20B20B( - BuiltInId::clamp_Float3_Float3_Float3, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30B30B30B( - BuiltInId::clamp_Float4_Float4_Float4, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_00C00C00C( - BuiltInId::clamp_Double1_Double1_Double1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10C00C00C( - BuiltInId::clamp_Double2_Double1_Double1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10C00C00C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20C00C00C( - BuiltInId::clamp_Double3_Double1_Double1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20C00C00C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30C00C00C( - BuiltInId::clamp_Double4_Double1_Double1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30C00C00C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10C10C10C( - BuiltInId::clamp_Double2_Double2_Double2, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20C20C20C( - BuiltInId::clamp_Double3_Double3_Double3, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30C30C30C( - BuiltInId::clamp_Double4_Double4_Double4, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_Int1_Int1_Int1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_Int2_Int1_Int1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10D00D00D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_Int3_Int1_Int1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_Int4_Int1_Int1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30D00D00D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_Int2_Int2_Int2, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_Int3_Int3_Int3, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_Int4_Int4_Int4, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D30D, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_00E00E00E(BuiltInId::clamp_UInt1_UInt1_UInt1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10E00E00E(BuiltInId::clamp_UInt2_UInt1_UInt1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10E00E00E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20E00E00E(BuiltInId::clamp_UInt3_UInt1_UInt1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30E00E00E(BuiltInId::clamp_UInt4_UInt1_UInt1, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30E00E00E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_10E10E10E(BuiltInId::clamp_UInt2_UInt2_UInt2, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_20E20E20E(BuiltInId::clamp_UInt3_UInt3_UInt3, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction clamp_30E30E30E(BuiltInId::clamp_UInt4_UInt4_UInt4, - BuiltInName::clamp, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E30E, - 3, - StaticType::Get(), - EOpClamp, - true); -constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10B10B00B(BuiltInId::mix_Float2_Float2_Float1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B00B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20B20B00B(BuiltInId::mix_Float3_Float3_Float1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B00B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30B30B00B(BuiltInId::mix_Float4_Float4_Float1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10B10B10B(BuiltInId::mix_Float2_Float2_Float2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20B20B20B(BuiltInId::mix_Float3_Float3_Float3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30B30B30B(BuiltInId::mix_Float4_Float4_Float4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00C00C00C(BuiltInId::mix_Double1_Double1_Double1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10C10C00C(BuiltInId::mix_Double2_Double2_Double1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C00C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20C20C00C(BuiltInId::mix_Double3_Double3_Double1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30C30C00C(BuiltInId::mix_Double4_Double4_Double1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C00C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10C10C10C(BuiltInId::mix_Double2_Double2_Double2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20C20C20C(BuiltInId::mix_Double3_Double3_Double3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30C30C30C(BuiltInId::mix_Double4_Double4_Double4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00B00B00F(BuiltInId::mix_Float1_Float1_Bool1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10B10B10F(BuiltInId::mix_Float2_Float2_Bool2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20B20B20F(BuiltInId::mix_Float3_Float3_Bool3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30B30B30F(BuiltInId::mix_Float4_Float4_Bool4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00C00C00F(BuiltInId::mix_Double1_Double1_Bool1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10C10C10F(BuiltInId::mix_Double2_Double2_Bool2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20C20C20F(BuiltInId::mix_Double3_Double3_Bool3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30C30C30F(BuiltInId::mix_Double4_Double4_Bool4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00D00D00F(BuiltInId::mix_Int1_Int1_Bool1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10D10D10F(BuiltInId::mix_Int2_Int2_Bool2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20D20D20F(BuiltInId::mix_Int3_Int3_Bool3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30D30D30F(BuiltInId::mix_Int4_Int4_Bool4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D30F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00E00E00F(BuiltInId::mix_UInt1_UInt1_Bool1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10E10E10F(BuiltInId::mix_UInt2_UInt2_Bool2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20E20E20F(BuiltInId::mix_UInt3_UInt3_Bool3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30E30E30F(BuiltInId::mix_UInt4_UInt4_Bool4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E30F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_00F00F00F(BuiltInId::mix_Bool1_Bool1_Bool1, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p00F00F00F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_10F10F10F(BuiltInId::mix_Bool2_Bool2_Bool2, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_20F20F20F(BuiltInId::mix_Bool3_Bool3_Bool3, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction mix_30F30F30F(BuiltInId::mix_Bool4_Bool4_Bool4, - BuiltInName::mix, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 3, - StaticType::Get(), - EOpMix, - true); -constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00B10B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00B20B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00B30B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00C00C(BuiltInId::step_Double1_Double1, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_10C10C(BuiltInId::step_Double2_Double2, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_20C20C(BuiltInId::step_Double3_Double3, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_30C30C(BuiltInId::step_Double4_Double4, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00C10C(BuiltInId::step_Double1_Double2, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00C10C, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00C20C(BuiltInId::step_Double1_Double3, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00C20C, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction step_00C30C(BuiltInId::step_Double1_Double4, - BuiltInName::step, - TExtension::UNDEFINED, - BuiltInParameters::p00C30C, - 2, - StaticType::Get(), - EOpStep, - true); -constexpr const TFunction smoothstep_00C00C00C( - BuiltInId::smoothstep_Double1_Double1_Double1, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_10C10C10C( - BuiltInId::smoothstep_Double2_Double2_Double2, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_20C20C20C( - BuiltInId::smoothstep_Double3_Double3_Double3, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_30C30C30C( - BuiltInId::smoothstep_Double4_Double4_Double4, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00C00C10C( - BuiltInId::smoothstep_Double1_Double1_Double2, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C10C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00C00C20C( - BuiltInId::smoothstep_Double1_Double1_Double3, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C20C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00C00C30C( - BuiltInId::smoothstep_Double1_Double1_Double4, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C30C, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00B00B00B( - BuiltInId::smoothstep_Float1_Float1_Float1, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_10B10B10B( - BuiltInId::smoothstep_Float2_Float2_Float2, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_20B20B20B( - BuiltInId::smoothstep_Float3_Float3_Float3, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_30B30B30B( - BuiltInId::smoothstep_Float4_Float4_Float4, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00B00B10B( - BuiltInId::smoothstep_Float1_Float1_Float2, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B10B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00B00B20B( - BuiltInId::smoothstep_Float1_Float1_Float3, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction smoothstep_00B00B30B( - BuiltInId::smoothstep_Float1_Float1_Float4, - BuiltInName::smoothstep, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B30B, - 3, - StaticType::Get(), - EOpSmoothstep, - true); -constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p00B_o_00B, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p10B_o_10B, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p20B_o_20B, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p30B_o_30B, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_00C00C(BuiltInId::modf_Double1_Double1, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p00C_o_00C, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_10C10C(BuiltInId::modf_Double2_Double2, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p10C_o_10C, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_20C20C(BuiltInId::modf_Double3_Double3, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p20C_o_20C, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction modf_30C30C(BuiltInId::modf_Double4_Double4, - BuiltInName::modf, - TExtension::UNDEFINED, - BuiltInParameters::p30C_o_30C, - 2, - StaticType::Get(), - EOpModf, - false); -constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_00C(BuiltInId::isnan_Double1, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_10C(BuiltInId::isnan_Double2, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_20C(BuiltInId::isnan_Double3, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isnan_30C(BuiltInId::isnan_Double4, - BuiltInName::isnan, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpIsnan, - true); -constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_00C(BuiltInId::isinf_Double1, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_10C(BuiltInId::isinf_Double2, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_20C(BuiltInId::isinf_Double3, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction isinf_30C(BuiltInId::isinf_Double4, - BuiltInName::isinf, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpIsinf, - true); -constexpr const TFunction floatBitsToInt_00B( - BuiltInId::floatBitsToInt_Float1, - BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFloatBitsToInt, - true); -constexpr const TFunction floatBitsToInt_10B( - BuiltInId::floatBitsToInt_Float2, - BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFloatBitsToInt, - true); -constexpr const TFunction floatBitsToInt_20B( - BuiltInId::floatBitsToInt_Float3, - BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFloatBitsToInt, - true); -constexpr const TFunction floatBitsToInt_30B( - BuiltInId::floatBitsToInt_Float4, - BuiltInName::floatBitsToInt, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFloatBitsToInt, - true); -constexpr const TFunction floatBitsToUint_00B( - BuiltInId::floatBitsToUint_Float1, - BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFloatBitsToUint, - true); -constexpr const TFunction floatBitsToUint_10B( - BuiltInId::floatBitsToUint_Float2, - BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFloatBitsToUint, - true); -constexpr const TFunction floatBitsToUint_20B( - BuiltInId::floatBitsToUint_Float3, - BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFloatBitsToUint, - true); -constexpr const TFunction floatBitsToUint_30B( - BuiltInId::floatBitsToUint_Float4, - BuiltInName::floatBitsToUint, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFloatBitsToUint, - true); -constexpr const TFunction intBitsToFloat_00D( - BuiltInId::intBitsToFloat_Int1, - BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpIntBitsToFloat, - true); -constexpr const TFunction intBitsToFloat_10D( - BuiltInId::intBitsToFloat_Int2, - BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpIntBitsToFloat, - true); -constexpr const TFunction intBitsToFloat_20D( - BuiltInId::intBitsToFloat_Int3, - BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpIntBitsToFloat, - true); -constexpr const TFunction intBitsToFloat_30D( - BuiltInId::intBitsToFloat_Int4, - BuiltInName::intBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpIntBitsToFloat, - true); -constexpr const TFunction uintBitsToFloat_00E( - BuiltInId::uintBitsToFloat_UInt1, - BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUintBitsToFloat, - true); -constexpr const TFunction uintBitsToFloat_10E( - BuiltInId::uintBitsToFloat_UInt2, - BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpUintBitsToFloat, - true); -constexpr const TFunction uintBitsToFloat_20E( - BuiltInId::uintBitsToFloat_UInt3, - BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 1, - StaticType::Get(), - EOpUintBitsToFloat, - true); -constexpr const TFunction uintBitsToFloat_30E( - BuiltInId::uintBitsToFloat_UInt4, - BuiltInName::uintBitsToFloat, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 1, - StaticType::Get(), - EOpUintBitsToFloat, - true); -constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_10B10B10B(BuiltInId::fma_Float2_Float2_Float2, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_20B20B20B(BuiltInId::fma_Float3_Float3_Float3, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_30B30B30B(BuiltInId::fma_Float4_Float4_Float4, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fmaExt_00B00B00B( - BuiltInId::fmaExt_Float1_Float1_Float1, - BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fmaExt_10B10B10B( - BuiltInId::fmaExt_Float2_Float2_Float2, - BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fmaExt_20B20B20B( - BuiltInId::fmaExt_Float3_Float3_Float3, - BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fmaExt_30B30B30B( - BuiltInId::fmaExt_Float4_Float4_Float4, - BuiltInName::fmaExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_00C00C00C(BuiltInId::fma_Double1_Double1_Double1, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00C, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_10C10C10C(BuiltInId::fma_Double2_Double2_Double2, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10C, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_20C20C20C(BuiltInId::fma_Double3_Double3_Double3, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20C, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction fma_30C30C30C(BuiltInId::fma_Double4_Double4_Double4, - BuiltInName::fma, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 3, - StaticType::Get(), - EOpFma, - true); -constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p00B_o_00D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p10B_o_10D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p20B_o_20D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p30B_o_30D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_00C00D(BuiltInId::frexp_Double1_Int1, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p00C_o_00D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_10C10D(BuiltInId::frexp_Double2_Int2, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p10C_o_10D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_20C20D(BuiltInId::frexp_Double3_Int3, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p20C_o_20D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction frexp_30C30D(BuiltInId::frexp_Double4_Int4, - BuiltInName::frexp, - TExtension::UNDEFINED, - BuiltInParameters::p30C_o_30D, - 2, - StaticType::Get(), - EOpFrexp, - false); -constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p00B00D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p10B10D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_00C00D(BuiltInId::ldexp_Double1_Int1, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p00C00D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_10C10D(BuiltInId::ldexp_Double2_Int2, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p10C10D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_20C20D(BuiltInId::ldexp_Double3_Int3, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p20C20D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction ldexp_30C30D(BuiltInId::ldexp_Double4_Int4, - BuiltInName::ldexp, - TExtension::UNDEFINED, - BuiltInParameters::p30C30D, - 2, - StaticType::Get(), - EOpLdexp, - true); -constexpr const TFunction packSnorm2x16_10B( - BuiltInId::packSnorm2x16_Float2, - BuiltInName::packSnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpPackSnorm2x16, - true); -constexpr const TFunction packHalf2x16_10B( - BuiltInId::packHalf2x16_Float2, - BuiltInName::packHalf2x16, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpPackHalf2x16, - true); -constexpr const TFunction unpackSnorm2x16_00E( - BuiltInId::unpackSnorm2x16_UInt1, - BuiltInName::unpackSnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUnpackSnorm2x16, - true); -constexpr const TFunction unpackHalf2x16_00E( - BuiltInId::unpackHalf2x16_UInt1, - BuiltInName::unpackHalf2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUnpackHalf2x16, - true); -constexpr const TFunction packUnorm2x16_10B( - BuiltInId::packUnorm2x16_Float2, - BuiltInName::packUnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpPackUnorm2x16, - true); -constexpr const TFunction unpackUnorm2x16_00E( - BuiltInId::unpackUnorm2x16_UInt1, - BuiltInName::unpackUnorm2x16, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUnpackUnorm2x16, - true); -constexpr const TFunction packUnorm4x8_30B( - BuiltInId::packUnorm4x8_Float4, - BuiltInName::packUnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpPackUnorm4x8, - true); -constexpr const TFunction packSnorm4x8_30B( - BuiltInId::packSnorm4x8_Float4, - BuiltInName::packSnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpPackSnorm4x8, - true); -constexpr const TFunction unpackUnorm4x8_00E( - BuiltInId::unpackUnorm4x8_UInt1, - BuiltInName::unpackUnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUnpackUnorm4x8, - true); -constexpr const TFunction unpackSnorm4x8_00E( - BuiltInId::unpackSnorm4x8_UInt1, - BuiltInName::unpackSnorm4x8, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpUnpackSnorm4x8, - true); -constexpr const TFunction packDouble2x32_10E( - BuiltInId::packDouble2x32_UInt2, - BuiltInName::packDouble2x32, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpPackDouble2x32, - true); -constexpr const TFunction unpackDouble2x32_00C( - BuiltInId::unpackDouble2x32_Double1, - BuiltInName::unpackDouble2x32, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpUnpackDouble2x32, - true); -constexpr const TFunction length_00B(BuiltInId::length_Float1, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_10B(BuiltInId::length_Float2, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_20B(BuiltInId::length_Float3, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_30B(BuiltInId::length_Float4, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_00C(BuiltInId::length_Double1, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_10C(BuiltInId::length_Double2, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_20C(BuiltInId::length_Double3, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction length_30C(BuiltInId::length_Double4, - BuiltInName::length, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpLength, - true); -constexpr const TFunction distance_00B00B( - BuiltInId::distance_Float1_Float1, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_10B10B( - BuiltInId::distance_Float2_Float2, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_20B20B( - BuiltInId::distance_Float3_Float3, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_30B30B( - BuiltInId::distance_Float4_Float4, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_00C00C( - BuiltInId::distance_Double1_Double1, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_10C10C( - BuiltInId::distance_Double2_Double2, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_20C20C( - BuiltInId::distance_Double3_Double3, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction distance_30C30C( - BuiltInId::distance_Double4_Double4, - BuiltInName::distance, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpDistance, - true); -constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_00C00C(BuiltInId::dot_Double1_Double1, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_10C10C(BuiltInId::dot_Double2_Double2, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_20C20C(BuiltInId::dot_Double3_Double3, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction dot_30C30C(BuiltInId::dot_Double4_Double4, - BuiltInName::dot, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpDot, - true); -constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3, - BuiltInName::cross, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpCross, - true); -constexpr const TFunction cross_20C20C(BuiltInId::cross_Double3_Double3, - BuiltInName::cross, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpCross, - true); -constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_00C(BuiltInId::normalize_Double1, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_10C(BuiltInId::normalize_Double2, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_20C(BuiltInId::normalize_Double3, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction normalize_30C(BuiltInId::normalize_Double4, - BuiltInName::normalize, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 1, - StaticType::Get(), - EOpNormalize, - true); -constexpr const TFunction faceforward_00B00B00B( - BuiltInId::faceforward_Float1_Float1_Float1, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_10B10B10B( - BuiltInId::faceforward_Float2_Float2_Float2, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_20B20B20B( - BuiltInId::faceforward_Float3_Float3_Float3, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_30B30B30B( - BuiltInId::faceforward_Float4_Float4_Float4, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B30B, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_00C00C00C( - BuiltInId::faceforward_Double1_Double1_Double1, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00C, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_10C10C10C( - BuiltInId::faceforward_Double2_Double2_Double2, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10C, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_20C20C20C( - BuiltInId::faceforward_Double3_Double3_Double3, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C20C, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction faceforward_30C30C30C( - BuiltInId::faceforward_Double4_Double4_Double4, - BuiltInName::faceforward, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 3, - StaticType::Get(), - EOpFaceforward, - true); -constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_00C00C( - BuiltInId::reflect_Double1_Double1, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_10C10C( - BuiltInId::reflect_Double2_Double2, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C10F, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_20C20C( - BuiltInId::reflect_Double3_Double3, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00C, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction reflect_30C30C( - BuiltInId::reflect_Double4_Double4, - BuiltInName::reflect, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C30C, - 2, - StaticType::Get(), - EOpReflect, - true); -constexpr const TFunction refract_00B00B00B( - BuiltInId::refract_Float1_Float1_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_10B10B00B( - BuiltInId::refract_Float2_Float2_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_20B20B00B( - BuiltInId::refract_Float3_Float3_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_30B30B00B( - BuiltInId::refract_Float4_Float4_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_00C00C00B( - BuiltInId::refract_Double1_Double1_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p00C00C00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_10C10C00B( - BuiltInId::refract_Double2_Double2_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p10C10C00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_20C20C00B( - BuiltInId::refract_Double3_Double3_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p20C20C00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction refract_30C30C00B( - BuiltInId::refract_Double4_Double4_Float1, - BuiltInName::refract, - TExtension::UNDEFINED, - BuiltInParameters::p30C30C00B, - 3, - StaticType::Get(), - EOpRefract, - true); -constexpr const TFunction ftransform_(BuiltInId::ftransform, - BuiltInName::ftransform, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction matrixCompMult_50B50B( - BuiltInId::matrixCompMult_Float2x2_Float2x2, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::p50B50B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_A0BA0B( - BuiltInId::matrixCompMult_Float3x3_Float3x3, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::pA0BA0B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_F0BF0B( - BuiltInId::matrixCompMult_Float4x4_Float4x4, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::pF0BF0B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_90B90B( - BuiltInId::matrixCompMult_Float2x3_Float2x3, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::p90B90B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_60B60B( - BuiltInId::matrixCompMult_Float3x2_Float3x2, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::p60B60B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_D0BD0B( - BuiltInId::matrixCompMult_Float2x4_Float2x4, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::pD0BD0B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_70B70B( - BuiltInId::matrixCompMult_Float4x2_Float4x2, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::p70B70B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_E0BE0B( - BuiltInId::matrixCompMult_Float3x4_Float3x4, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::pE0BE0B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction matrixCompMult_B0BB0B( - BuiltInId::matrixCompMult_Float4x3_Float4x3, - BuiltInName::matrixCompMult, - TExtension::UNDEFINED, - BuiltInParameters::pB0BB0B, - 2, - StaticType::Get(), - EOpMulMatrixComponentWise, - true); -constexpr const TFunction outerProduct_10B10B( - BuiltInId::outerProduct_Float2_Float2, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_20B20B( - BuiltInId::outerProduct_Float3_Float3, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_30B30B( - BuiltInId::outerProduct_Float4_Float4, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_20B10B( - BuiltInId::outerProduct_Float3_Float2, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p20B10B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_10B20B( - BuiltInId::outerProduct_Float2_Float3, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p10B20B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_30B10B( - BuiltInId::outerProduct_Float4_Float2, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p30B10B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_10B30B( - BuiltInId::outerProduct_Float2_Float4, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p10B30B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_30B20B( - BuiltInId::outerProduct_Float4_Float3, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p30B20B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction outerProduct_20B30B( - BuiltInId::outerProduct_Float3_Float4, - BuiltInName::outerProduct, - TExtension::UNDEFINED, - BuiltInParameters::p20B30B, - 2, - StaticType::Get(), - EOpOuterProduct, - true); -constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::p50B50B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::pA0BA0B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::pF0BF0B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::p60B60B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::p90B90B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::p70B70B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::pD0BD0B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::pB0BB0B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4, - BuiltInName::transpose, - TExtension::UNDEFINED, - BuiltInParameters::pE0BE0B, - 1, - StaticType::Get(), - EOpTranspose, - true); -constexpr const TFunction determinant_50B( - BuiltInId::determinant_Float2x2, - BuiltInName::determinant, - TExtension::UNDEFINED, - BuiltInParameters::p50B50B, - 1, - StaticType::Get(), - EOpDeterminant, - true); -constexpr const TFunction determinant_A0B( - BuiltInId::determinant_Float3x3, - BuiltInName::determinant, - TExtension::UNDEFINED, - BuiltInParameters::pA0BA0B, - 1, - StaticType::Get(), - EOpDeterminant, - true); -constexpr const TFunction determinant_F0B( - BuiltInId::determinant_Float4x4, - BuiltInName::determinant, - TExtension::UNDEFINED, - BuiltInParameters::pF0BF0B, - 1, - StaticType::Get(), - EOpDeterminant, - true); -constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2, - BuiltInName::inverse, - TExtension::UNDEFINED, - BuiltInParameters::p50B50B, - 1, - StaticType::Get(), - EOpInverse, - true); -constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3, - BuiltInName::inverse, - TExtension::UNDEFINED, - BuiltInParameters::pA0BA0B, - 1, - StaticType::Get(), - EOpInverse, - true); -constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4, - BuiltInName::inverse, - TExtension::UNDEFINED, - BuiltInParameters::pF0BF0B, - 1, - StaticType::Get(), - EOpInverse, - true); -constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4, - BuiltInName::lessThan, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpLessThanComponentWise, - true); -constexpr const TFunction lessThanEqual_10B10B( - BuiltInId::lessThanEqual_Float2_Float2, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_20B20B( - BuiltInId::lessThanEqual_Float3_Float3, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_30B30B( - BuiltInId::lessThanEqual_Float4_Float4, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_10D10D( - BuiltInId::lessThanEqual_Int2_Int2, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_20D20D( - BuiltInId::lessThanEqual_Int3_Int3, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_30D30D( - BuiltInId::lessThanEqual_Int4_Int4, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_10E10E( - BuiltInId::lessThanEqual_UInt2_UInt2, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_20E20E( - BuiltInId::lessThanEqual_UInt3_UInt3, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction lessThanEqual_30E30E( - BuiltInId::lessThanEqual_UInt4_UInt4, - BuiltInName::lessThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpLessThanEqualComponentWise, - true); -constexpr const TFunction greaterThan_10B10B( - BuiltInId::greaterThan_Float2_Float2, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_20B20B( - BuiltInId::greaterThan_Float3_Float3, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_30B30B( - BuiltInId::greaterThan_Float4_Float4, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_10D10D( - BuiltInId::greaterThan_Int2_Int2, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_20D20D( - BuiltInId::greaterThan_Int3_Int3, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_30D30D( - BuiltInId::greaterThan_Int4_Int4, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_10E10E( - BuiltInId::greaterThan_UInt2_UInt2, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_20E20E( - BuiltInId::greaterThan_UInt3_UInt3, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThan_30E30E( - BuiltInId::greaterThan_UInt4_UInt4, - BuiltInName::greaterThan, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpGreaterThanComponentWise, - true); -constexpr const TFunction greaterThanEqual_10B10B( - BuiltInId::greaterThanEqual_Float2_Float2, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_20B20B( - BuiltInId::greaterThanEqual_Float3_Float3, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_30B30B( - BuiltInId::greaterThanEqual_Float4_Float4, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_10D10D( - BuiltInId::greaterThanEqual_Int2_Int2, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_20D20D( - BuiltInId::greaterThanEqual_Int3_Int3, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_30D30D( - BuiltInId::greaterThanEqual_Int4_Int4, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_10E10E( - BuiltInId::greaterThanEqual_UInt2_UInt2, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_20E20E( - BuiltInId::greaterThanEqual_UInt3_UInt3, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction greaterThanEqual_30E30E( - BuiltInId::greaterThanEqual_UInt4_UInt4, - BuiltInName::greaterThanEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpGreaterThanEqualComponentWise, - true); -constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4, - BuiltInName::equal, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 2, - StaticType::Get(), - EOpEqualComponentWise, - true); -constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20B20B20B, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30B30B00B, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D20D, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E20F, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4, - BuiltInName::notEqual, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 2, - StaticType::Get(), - EOpNotEqualComponentWise, - true); -constexpr const TFunction any_10F(BuiltInId::any_Bool2, - BuiltInName::any, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 1, - StaticType::Get(), - EOpAny, - true); -constexpr const TFunction any_20F(BuiltInId::any_Bool3, - BuiltInName::any, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 1, - StaticType::Get(), - EOpAny, - true); -constexpr const TFunction any_30F(BuiltInId::any_Bool4, - BuiltInName::any, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 1, - StaticType::Get(), - EOpAny, - true); -constexpr const TFunction all_10F(BuiltInId::all_Bool2, - BuiltInName::all, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 1, - StaticType::Get(), - EOpAll, - true); -constexpr const TFunction all_20F(BuiltInId::all_Bool3, - BuiltInName::all, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 1, - StaticType::Get(), - EOpAll, - true); -constexpr const TFunction all_30F(BuiltInId::all_Bool4, - BuiltInName::all, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 1, - StaticType::Get(), - EOpAll, - true); -constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2, - BuiltInName::notFunc, - TExtension::UNDEFINED, - BuiltInParameters::p10F10F10F, - 1, - StaticType::Get(), - EOpLogicalNotComponentWise, - true); -constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3, - BuiltInName::notFunc, - TExtension::UNDEFINED, - BuiltInParameters::p20F20F20F, - 1, - StaticType::Get(), - EOpLogicalNotComponentWise, - true); -constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4, - BuiltInName::notFunc, - TExtension::UNDEFINED, - BuiltInParameters::p30F30F30F, - 1, - StaticType::Get(), - EOpLogicalNotComponentWise, - true); -constexpr const TFunction bitfieldExtract_00D00D00D( - BuiltInId::bitfieldExtract_Int1_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_10D00D00D( - BuiltInId::bitfieldExtract_Int2_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p10D00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_20D00D00D( - BuiltInId::bitfieldExtract_Int3_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_30D00D00D( - BuiltInId::bitfieldExtract_Int4_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p30D00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_00E00D00D( - BuiltInId::bitfieldExtract_UInt1_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p00E00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_10E00D00D( - BuiltInId::bitfieldExtract_UInt2_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p10E00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_20E00D00D( - BuiltInId::bitfieldExtract_UInt3_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p20E00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldExtract_30E00D00D( - BuiltInId::bitfieldExtract_UInt4_Int1_Int1, - BuiltInName::bitfieldExtract, - TExtension::UNDEFINED, - BuiltInParameters::p30E00D00D, - 3, - StaticType::Get(), - EOpBitfieldExtract, - true); -constexpr const TFunction bitfieldInsert_00D00D00D00D( - BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_10D10D00D00D( - BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_20D20D00D00D( - BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_30D30D00D00D( - BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_00E00E00D00D( - BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_10E10E00D00D( - BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_20E20E00D00D( - BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldInsert_30E30E00D00D( - BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1, - BuiltInName::bitfieldInsert, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 4, - StaticType::Get(), - EOpBitfieldInsert, - true); -constexpr const TFunction bitfieldReverse_00D( - BuiltInId::bitfieldReverse_Int1, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_10D( - BuiltInId::bitfieldReverse_Int2, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_20D( - BuiltInId::bitfieldReverse_Int3, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_30D( - BuiltInId::bitfieldReverse_Int4, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_00E( - BuiltInId::bitfieldReverse_UInt1, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_10E( - BuiltInId::bitfieldReverse_UInt2, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_20E( - BuiltInId::bitfieldReverse_UInt3, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitfieldReverse_30E( - BuiltInId::bitfieldReverse_UInt4, - BuiltInName::bitfieldReverse, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 1, - StaticType::Get(), - EOpBitfieldReverse, - true); -constexpr const TFunction bitCount_00D(BuiltInId::bitCount_Int1, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_10D(BuiltInId::bitCount_Int2, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_20D(BuiltInId::bitCount_Int3, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_30D(BuiltInId::bitCount_Int4, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_00E(BuiltInId::bitCount_UInt1, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_10E(BuiltInId::bitCount_UInt2, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_20E(BuiltInId::bitCount_UInt3, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction bitCount_30E(BuiltInId::bitCount_UInt4, - BuiltInName::bitCount, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 1, - StaticType::Get(), - EOpBitCount, - true); -constexpr const TFunction findLSB_00D(BuiltInId::findLSB_Int1, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_10D(BuiltInId::findLSB_Int2, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_20D(BuiltInId::findLSB_Int3, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_30D(BuiltInId::findLSB_Int4, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_00E(BuiltInId::findLSB_UInt1, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_10E(BuiltInId::findLSB_UInt2, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_20E(BuiltInId::findLSB_UInt3, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findLSB_30E(BuiltInId::findLSB_UInt4, - BuiltInName::findLSB, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 1, - StaticType::Get(), - EOpFindLSB, - true); -constexpr const TFunction findMSB_00D(BuiltInId::findMSB_Int1, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_10D(BuiltInId::findMSB_Int2, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D10D, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_20D(BuiltInId::findMSB_Int3, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p20D00D00D, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_30D(BuiltInId::findMSB_Int4, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D00D00D, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E00F, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E10E, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p20E00E00E, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4, - BuiltInName::findMSB, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E00D00D, - 1, - StaticType::Get(), - EOpFindMSB, - true); -constexpr const TFunction uaddCarry_00E00E00E( - BuiltInId::uaddCarry_UInt1_UInt1_UInt1, - BuiltInName::uaddCarry, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E_o_00E_o_00E, - 3, - StaticType::Get(), - EOpUaddCarry, - false); -constexpr const TFunction uaddCarry_10E10E10E( - BuiltInId::uaddCarry_UInt2_UInt2_UInt2, - BuiltInName::uaddCarry, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E_o_10E_o_10E, - 3, - StaticType::Get(), - EOpUaddCarry, - false); -constexpr const TFunction uaddCarry_20E20E20E( - BuiltInId::uaddCarry_UInt3_UInt3_UInt3, - BuiltInName::uaddCarry, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E_o_20E_o_20E, - 3, - StaticType::Get(), - EOpUaddCarry, - false); -constexpr const TFunction uaddCarry_30E30E30E( - BuiltInId::uaddCarry_UInt4_UInt4_UInt4, - BuiltInName::uaddCarry, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E_o_30E_o_30E, - 3, - StaticType::Get(), - EOpUaddCarry, - false); -constexpr const TFunction usubBorrow_00E00E00E( - BuiltInId::usubBorrow_UInt1_UInt1_UInt1, - BuiltInName::usubBorrow, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E_o_00E_o_00E, - 3, - StaticType::Get(), - EOpUsubBorrow, - false); -constexpr const TFunction usubBorrow_10E10E10E( - BuiltInId::usubBorrow_UInt2_UInt2_UInt2, - BuiltInName::usubBorrow, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E_o_10E_o_10E, - 3, - StaticType::Get(), - EOpUsubBorrow, - false); -constexpr const TFunction usubBorrow_20E20E20E( - BuiltInId::usubBorrow_UInt3_UInt3_UInt3, - BuiltInName::usubBorrow, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E_o_20E_o_20E, - 3, - StaticType::Get(), - EOpUsubBorrow, - false); -constexpr const TFunction usubBorrow_30E30E30E( - BuiltInId::usubBorrow_UInt4_UInt4_UInt4, - BuiltInName::usubBorrow, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E_o_30E_o_30E, - 3, - StaticType::Get(), - EOpUsubBorrow, - false); -constexpr const TFunction umulExtended_00E00E00E00E( - BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1, - BuiltInName::umulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p00E00E_o_00E_o_00E, - 4, - StaticType::Get(), - EOpUmulExtended, - false); -constexpr const TFunction umulExtended_10E10E10E10E( - BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2, - BuiltInName::umulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p10E10E_o_10E_o_10E, - 4, - StaticType::Get(), - EOpUmulExtended, - false); -constexpr const TFunction umulExtended_20E20E20E20E( - BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3, - BuiltInName::umulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p20E20E_o_20E_o_20E, - 4, - StaticType::Get(), - EOpUmulExtended, - false); -constexpr const TFunction umulExtended_30E30E30E30E( - BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4, - BuiltInName::umulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p30E30E_o_30E_o_30E, - 4, - StaticType::Get(), - EOpUmulExtended, - false); -constexpr const TFunction imulExtended_00D00D00D00D( - BuiltInId::imulExtended_Int1_Int1_Int1_Int1, - BuiltInName::imulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D_o_00D_o_00D, - 4, - StaticType::Get(), - EOpImulExtended, - false); -constexpr const TFunction imulExtended_10D10D10D10D( - BuiltInId::imulExtended_Int2_Int2_Int2_Int2, - BuiltInName::imulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p10D10D_o_10D_o_10D, - 4, - StaticType::Get(), - EOpImulExtended, - false); -constexpr const TFunction imulExtended_20D20D20D20D( - BuiltInId::imulExtended_Int3_Int3_Int3_Int3, - BuiltInName::imulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p20D20D_o_20D_o_20D, - 4, - StaticType::Get(), - EOpImulExtended, - false); -constexpr const TFunction imulExtended_30D30D30D30D( - BuiltInId::imulExtended_Int4_Int4_Int4_Int4, - BuiltInName::imulExtended, - TExtension::UNDEFINED, - BuiltInParameters::p30D30D_o_30D_o_30D, - 4, - StaticType::Get(), - EOpImulExtended, - false); -constexpr const TFunction texture2D_00I10B( - BuiltInId::texture2D_Sampler2D1_Float2, - BuiltInName::texture2D, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00I20B( - BuiltInId::texture2DProj_Sampler2D1_Float3, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00I30B( - BuiltInId::texture2DProj_Sampler2D1_Float4, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCube_00K20B( - BuiltInId::textureCube_SamplerCube1_Float3, - BuiltInName::textureCube, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1D_00g00B( - BuiltInId::texture1D_Sampler1D1_Float1, - BuiltInName::texture1D, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProj_00g10B( - BuiltInId::texture1DProj_Sampler1D1_Float2, - BuiltInName::texture1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProj_00g30B( - BuiltInId::texture1DProj_Sampler1D1_Float4, - BuiltInName::texture1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3D_00J20B( - BuiltInId::texture3D_Sampler3D1_Float3, - BuiltInName::texture3D, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProj_00J30B( - BuiltInId::texture3DProj_Sampler3D1_Float4, - BuiltInName::texture3DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1D_00m20B( - BuiltInId::shadow1D_Sampler1DShadow1_Float3, - BuiltInName::shadow1D, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1DProj_00m30B( - BuiltInId::shadow1DProj_Sampler1DShadow1_Float4, - BuiltInName::shadow1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2D_00d20B( - BuiltInId::shadow2D_Sampler2DShadow1_Float3, - BuiltInName::shadow2D, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DProj_00d30B( - BuiltInId::shadow2DProj_Sampler2DShadow1_Float4, - BuiltInName::shadow2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2D_00M10B( - BuiltInId::texture2D_SamplerExternalOES1_Float2, - BuiltInName::texture2D, - TExtension::UNDEFINED, - BuiltInParameters::p00M10B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00M20B( - BuiltInId::texture2DProj_SamplerExternalOES1_Float3, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00M20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00M30B( - BuiltInId::texture2DProj_SamplerExternalOES1_Float4, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00M30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DRect_00O10B( - BuiltInId::texture2DRect_Sampler2DRect1_Float2, - BuiltInName::texture2DRect, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DRectProj_00O20B( - BuiltInId::texture2DRectProj_Sampler2DRect1_Float3, - BuiltInName::texture2DRectProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O20B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DRectProj_00O30B( - BuiltInId::texture2DRectProj_Sampler2DRect1_Float4, - BuiltInName::texture2DRectProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O30B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2, - BuiltInName::texture, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00O20B( - BuiltInId::textureProj_Sampler2DRect1_Float3, - BuiltInName::textureProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O20B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00O30B( - BuiltInId::textureProj_Sampler2DRect1_Float4, - BuiltInName::textureProj, - TExtension::ARB_texture_rectangle, - BuiltInParameters::p00O30B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DGradEXT_00I10B10B10B( - BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2, - BuiltInName::texture2DGradEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjGradEXT_00I20B10B10B( - BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2, - BuiltInName::texture2DProjGradEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjGradEXT_00I30B10B10B( - BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2, - BuiltInName::texture2DProjGradEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCubeGradEXT_00K20B20B20B( - BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3, - BuiltInName::textureCubeGradEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00K20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2D_00I10B00B( - BuiltInId::texture2D_Sampler2D1_Float2_Float1, - BuiltInName::texture2D, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00I20B00B( - BuiltInId::texture2DProj_Sampler2D1_Float3_Float1, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProj_00I30B00B( - BuiltInId::texture2DProj_Sampler2D1_Float4_Float1, - BuiltInName::texture2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCube_00K20B00B( - BuiltInId::textureCube_SamplerCube1_Float3_Float1, - BuiltInName::textureCube, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3D_00J20B00B( - BuiltInId::texture3D_Sampler3D1_Float3_Float1, - BuiltInName::texture3D, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProj_00J30B00B( - BuiltInId::texture3DProj_Sampler3D1_Float4_Float1, - BuiltInName::texture3DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DLod_00J20B00B( - BuiltInId::texture3DLod_Sampler3D1_Float3_Float1, - BuiltInName::texture3DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture3DProjLod_00J30B00B( - BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1, - BuiltInName::texture3DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1D_00g00B00B( - BuiltInId::texture1D_Sampler1D1_Float1_Float1, - BuiltInName::texture1D, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProj_00g10B00B( - BuiltInId::texture1DProj_Sampler1D1_Float2_Float1, - BuiltInName::texture1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProj_00g30B00B( - BuiltInId::texture1DProj_Sampler1D1_Float4_Float1, - BuiltInName::texture1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1D_00m20B00B( - BuiltInId::shadow1D_Sampler1DShadow1_Float3_Float1, - BuiltInName::shadow1D, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1DProj_00m30B00B( - BuiltInId::shadow1DProj_Sampler1DShadow1_Float4_Float1, - BuiltInName::shadow1DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2D_00d20B00B( - BuiltInId::shadow2D_Sampler2DShadow1_Float3_Float1, - BuiltInName::shadow2D, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DProj_00d30B00B( - BuiltInId::shadow2DProj_Sampler2DShadow1_Float4_Float1, - BuiltInName::shadow2DProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1, - BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2, - BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3, - BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4, - BuiltInName::dFdxExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1, - BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2, - BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3, - BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4, - BuiltInName::dFdyExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1, - BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2, - BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3, - BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4, - BuiltInName::fwidthExt, - TExtension::OES_standard_derivatives, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction texture2DLodEXT_00I10B00B( - BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1, - BuiltInName::texture2DLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLodEXT_00I20B00B( - BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1, - BuiltInName::texture2DProjLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLodEXT_00I30B00B( - BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1, - BuiltInName::texture2DProjLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCubeLodEXT_00K20B00B( - BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1, - BuiltInName::textureCubeLodEXT, - TExtension::EXT_shader_texture_lod, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DEXT_00d20B( - BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3, - BuiltInName::shadow2DEXT, - TExtension::EXT_shadow_samplers, - BuiltInParameters::p00d20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DProjEXT_00d30B( - BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4, - BuiltInName::shadow2DProjEXT, - TExtension::EXT_shadow_samplers, - BuiltInParameters::p00d30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DLod_00I10B00B( - BuiltInId::texture2DLod_Sampler2D1_Float2_Float1, - BuiltInName::texture2DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLod_00I20B00B( - BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1, - BuiltInName::texture2DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture2DProjLod_00I30B00B( - BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1, - BuiltInName::texture2DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureCubeLod_00K20B00B( - BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1, - BuiltInName::textureCubeLod, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DLod_00g00B00B( - BuiltInId::texture1DLod_Sampler1D1_Float1_Float1, - BuiltInName::texture1DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProjLod_00g10B00B( - BuiltInId::texture1DProjLod_Sampler1D1_Float2_Float1, - BuiltInName::texture1DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture1DProjLod_00g30B00B( - BuiltInId::texture1DProjLod_Sampler1D1_Float4_Float1, - BuiltInName::texture1DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1DLod_00m20B00B( - BuiltInId::shadow1DLod_Sampler1DShadow1_Float3_Float1, - BuiltInName::shadow1DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow1DProjLod_00m30B00B( - BuiltInId::shadow1DProjLod_Sampler1DShadow1_Float4_Float1, - BuiltInName::shadow1DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DLod_00d20B00B( - BuiltInId::shadow2DLod_Sampler2DShadow1_Float3_Float1, - BuiltInName::shadow2DLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction shadow2DProjLod_00d30B00B( - BuiltInId::shadow2DProjLod_Sampler2DShadow1_Float4_Float1, - BuiltInName::shadow2DProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00g00B(BuiltInId::texture_Sampler1D1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00o00B(BuiltInId::texture_ISampler1D1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00t00B(BuiltInId::texture_USampler1D1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00m20B(BuiltInId::texture_Sampler1DShadow1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00h20B(BuiltInId::texture_Sampler1DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00h20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00p20B(BuiltInId::texture_ISampler1DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00p20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00u20B(BuiltInId::texture_USampler1DArray1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00u20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00i20B(BuiltInId::texture_Sampler1DArrayShadow1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00q10B(BuiltInId::texture_ISampler2DRect1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00v10B(BuiltInId::texture_USampler2DRect1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00n20B(BuiltInId::texture_Sampler2DRectShadow1_Float3, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00n20B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00l30B00B( - BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00l30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I20B( - BuiltInId::textureProj_Sampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R20B( - BuiltInId::textureProj_ISampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X20B( - BuiltInId::textureProj_USampler2D1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I30B( - BuiltInId::textureProj_Sampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R30B( - BuiltInId::textureProj_ISampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X30B( - BuiltInId::textureProj_USampler2D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00J30B( - BuiltInId::textureProj_Sampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00S30B( - BuiltInId::textureProj_ISampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00Y30B( - BuiltInId::textureProj_USampler3D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00d30B( - BuiltInId::textureProj_Sampler2DShadow1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00g10B( - BuiltInId::textureProj_Sampler1D1_Float2, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00o10B( - BuiltInId::textureProj_ISampler1D1_Float2, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00t10B( - BuiltInId::textureProj_USampler1D1_Float2, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00g30B( - BuiltInId::textureProj_Sampler1D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00o30B( - BuiltInId::textureProj_ISampler1D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00t30B( - BuiltInId::textureProj_USampler1D1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00m30B( - BuiltInId::textureProj_Sampler1DShadow1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00q20B( - BuiltInId::textureProj_ISampler2DRect1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00v20B( - BuiltInId::textureProj_USampler2DRect1_Float3, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00q30B( - BuiltInId::textureProj_ISampler2DRect1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00q30B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00v30B( - BuiltInId::textureProj_USampler2DRect1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00v30B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00n30B( - BuiltInId::textureProj_Sampler2DRectShadow1_Float4, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00n30B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00I10B00B( - BuiltInId::textureLod_Sampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00R10B00B( - BuiltInId::textureLod_ISampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00X10B00B( - BuiltInId::textureLod_USampler2D1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00J20B00B( - BuiltInId::textureLod_Sampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00S20B00B( - BuiltInId::textureLod_ISampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00Y20B00B( - BuiltInId::textureLod_USampler3D1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00K20B00B( - BuiltInId::textureLod_SamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00T20B00B( - BuiltInId::textureLod_ISamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00Z20B00B( - BuiltInId::textureLod_USamplerCube1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00L20B00B( - BuiltInId::textureLod_Sampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00U20B00B( - BuiltInId::textureLod_ISampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00a20B00B( - BuiltInId::textureLod_USampler2DArray1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00d20B00B( - BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00g00B00B( - BuiltInId::textureLod_Sampler1D1_Float1_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00o00B00B( - BuiltInId::textureLod_ISampler1D1_Float1_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00t00B00B( - BuiltInId::textureLod_USampler1D1_Float1_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00m20B00B( - BuiltInId::textureLod_Sampler1DShadow1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00h10B00B( - BuiltInId::textureLod_Sampler1DArray1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00p10B00B( - BuiltInId::textureLod_ISampler1DArray1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00u10B00B( - BuiltInId::textureLod_USampler1DArray1_Float2_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00i20B00B( - BuiltInId::textureLod_Sampler1DArrayShadow1_Float3_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00k30B00B( - BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00s30B00B( - BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLod_00x30B00B( - BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1, - BuiltInName::textureLod, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00I00D( - BuiltInId::textureSize_Sampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00I00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00R00D( - BuiltInId::textureSize_ISampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00R00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00X00D( - BuiltInId::textureSize_USampler2D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00X00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00J00D( - BuiltInId::textureSize_Sampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00J00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00S00D( - BuiltInId::textureSize_ISampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00S00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00Y00D( - BuiltInId::textureSize_USampler3D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00Y00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00K00D( - BuiltInId::textureSize_SamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00K00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00T00D( - BuiltInId::textureSize_ISamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00T00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00Z00D( - BuiltInId::textureSize_USamplerCube1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00Z00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00L00D( - BuiltInId::textureSize_Sampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00L00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00U00D( - BuiltInId::textureSize_ISampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00U00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00a00D( - BuiltInId::textureSize_USampler2DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00a00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00d00D( - BuiltInId::textureSize_Sampler2DShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00d00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00e00D( - BuiltInId::textureSize_SamplerCubeShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00e00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00f00D( - BuiltInId::textureSize_Sampler2DArrayShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00f00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00g00D( - BuiltInId::textureSize_Sampler1D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00g00D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00o00D( - BuiltInId::textureSize_ISampler1D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00o00D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00t00D( - BuiltInId::textureSize_USampler1D1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00t00D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00m00D( - BuiltInId::textureSize_Sampler1DShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00m00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00k00D( - BuiltInId::textureSize_SamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00k00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00s00D( - BuiltInId::textureSize_ISamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00s00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00x00D( - BuiltInId::textureSize_USamplerCubeArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00x00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00l00D( - BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00l00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00O(BuiltInId::textureSize_Sampler2DRect1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00O10D10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00q(BuiltInId::textureSize_ISampler2DRect1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00v(BuiltInId::textureSize_USampler2DRect1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00n(BuiltInId::textureSize_Sampler2DRectShadow1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00n20B10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00h00D( - BuiltInId::textureSize_Sampler1DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00h00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00p00D( - BuiltInId::textureSize_ISampler1DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00p00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00u00D( - BuiltInId::textureSize_USampler1DArray1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00u00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00i00D( - BuiltInId::textureSize_Sampler1DArrayShadow1_Int1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00i00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00j(BuiltInId::textureSize_SamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00j00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00r(BuiltInId::textureSize_ISamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00r00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00w(BuiltInId::textureSize_USamplerBuffer1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00w00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00I20B00B( - BuiltInId::textureProjLod_Sampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00R20B00B( - BuiltInId::textureProjLod_ISampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00X20B00B( - BuiltInId::textureProjLod_USampler2D1_Float3_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00I30B00B( - BuiltInId::textureProjLod_Sampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00R30B00B( - BuiltInId::textureProjLod_ISampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00X30B00B( - BuiltInId::textureProjLod_USampler2D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00J30B00B( - BuiltInId::textureProjLod_Sampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00S30B00B( - BuiltInId::textureProjLod_ISampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00Y30B00B( - BuiltInId::textureProjLod_USampler3D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00d30B00B( - BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00g10B00B( - BuiltInId::textureProjLod_Sampler1D1_Float2_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00o10B00B( - BuiltInId::textureProjLod_ISampler1D1_Float2_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00t10B00B( - BuiltInId::textureProjLod_USampler1D1_Float2_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00g30B00B( - BuiltInId::textureProjLod_Sampler1D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00o30B00B( - BuiltInId::textureProjLod_ISampler1D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00t30B00B( - BuiltInId::textureProjLod_USampler1D1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLod_00m30B00B( - BuiltInId::textureProjLod_Sampler1DShadow1_Float4_Float1, - BuiltInName::textureProjLod, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00I10D00D( - BuiltInId::texelFetch_Sampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00I10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00R10D00D( - BuiltInId::texelFetch_ISampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00R10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00X10D00D( - BuiltInId::texelFetch_USampler2D1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00X10D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00J20D00D( - BuiltInId::texelFetch_Sampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00J20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00S20D00D( - BuiltInId::texelFetch_ISampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00S20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00Y20D00D( - BuiltInId::texelFetch_USampler3D1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20D00D20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00L20D00D( - BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00L20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00U20D00D( - BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00U20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00a20D00D( - BuiltInId::texelFetch_USampler2DArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00a20D00D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00g00D00D( - BuiltInId::texelFetch_Sampler1D1_Int1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00g00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00o00D00D( - BuiltInId::texelFetch_ISampler1D1_Int1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00o00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00t00D00D( - BuiltInId::texelFetch_USampler1D1_Int1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00t00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00O10D( - BuiltInId::texelFetch_Sampler2DRect1_Int2, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00O10D10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00q10D( - BuiltInId::texelFetch_ISampler2DRect1_Int2, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00q10D10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00v10D( - BuiltInId::texelFetch_USampler2DRect1_Int2, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00v10D10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00h10D00D( - BuiltInId::texelFetch_Sampler1DArray1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00h10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00p10D00D( - BuiltInId::texelFetch_ISampler1DArray1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00p10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00u10D00D( - BuiltInId::texelFetch_USampler1DArray1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00u10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00j00D( - BuiltInId::texelFetch_SamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00j00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00r00D( - BuiltInId::texelFetch_ISamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00r00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00w00D( - BuiltInId::texelFetch_USamplerBuffer1_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00w00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00I10B10B10B( - BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00R10B10B10B( - BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00X10B10B10B( - BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00J20B20B20B( - BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00S20B20B20B( - BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00Y20B20B20B( - BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00K20B20B20B( - BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00T20B20B20B( - BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00Z20B20B20B( - BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00I00B00B00B( - BuiltInId::textureGrad_Sampler2D1_Float1_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I00B00B00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00R00B00B00B( - BuiltInId::textureGrad_ISampler2D1_Float1_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R00B00B00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00X00B00B00B( - BuiltInId::textureGrad_USampler2D1_Float1_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X00B00B00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00O10B10B10B( - BuiltInId::textureGrad_Sampler2DRect1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00q10B10B10B( - BuiltInId::textureGrad_ISampler2DRect1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00v10B10B10B( - BuiltInId::textureGrad_USampler2DRect1_Float2_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00n20B10B10B( - BuiltInId::textureGrad_Sampler2DRectShadow1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00n20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00d20B10B10B( - BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00e30B20B20B( - BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00L20B10B10B( - BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00U20B10B10B( - BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00a20B10B10B( - BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00f30B10B10B( - BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00m20B00B00B( - BuiltInId::textureGrad_Sampler1DShadow1_Float3_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00h10B00B00B( - BuiltInId::textureGrad_Sampler1DArray1_Float2_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00p10B00B00B( - BuiltInId::textureGrad_ISampler1DArray1_Float2_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00u10B00B00B( - BuiltInId::textureGrad_USampler1DArray1_Float2_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00i20B00B00B( - BuiltInId::textureGrad_Sampler1DArrayShadow1_Float3_Float1_Float1, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00k30B20B20B( - BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00s30B20B20B( - BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGrad_00x30B20B20B( - BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3, - BuiltInName::textureGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B20B20B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00I20B10B10B( - BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00R20B10B10B( - BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00X20B10B10B( - BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00I30B10B10B( - BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00R30B10B10B( - BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00X30B10B10B( - BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00J30B20B20B( - BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00S30B20B20B( - BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00Y30B20B20B( - BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20B20B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00d30B10B10B( - BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00g10B00B00B( - BuiltInId::textureProjGrad_Sampler1D1_Float2_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00o10B00B00B( - BuiltInId::textureProjGrad_ISampler1D1_Float2_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00t10B00B00B( - BuiltInId::textureProjGrad_USampler1D1_Float2_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00g30B00B00B( - BuiltInId::textureProjGrad_Sampler1D1_Float4_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00o30B00B00B( - BuiltInId::textureProjGrad_ISampler1D1_Float4_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00t30B00B00B( - BuiltInId::textureProjGrad_USampler1D1_Float4_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00m30B00B00B( - BuiltInId::textureProjGrad_Sampler1DShadow1_Float4_Float1_Float1, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00O20B10B10B( - BuiltInId::textureProjGrad_Sampler2DRect1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00O20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00q20B10B10B( - BuiltInId::textureProjGrad_ISampler2DRect1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00v20B10B10B( - BuiltInId::textureProjGrad_USampler2DRect1_Float3_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00O30B10B10B( - BuiltInId::textureProjGrad_Sampler2DRect1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00O30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00q30B10B10B( - BuiltInId::textureProjGrad_ISampler2DRect1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00q30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00v30B10B10B( - BuiltInId::textureProjGrad_USampler2DRect1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00v30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGrad_00n30B10B10B( - BuiltInId::textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2, - BuiltInName::textureProjGrad, - TExtension::UNDEFINED, - BuiltInParameters::p00n30B10B10B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00g( - BuiltInId::textureQueryLevels_Sampler1D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00o( - BuiltInId::textureQueryLevels_ISampler1D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00t( - BuiltInId::textureQueryLevels_USampler1D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00I( - BuiltInId::textureQueryLevels_Sampler2D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00R( - BuiltInId::textureQueryLevels_ISampler2D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00X( - BuiltInId::textureQueryLevels_USampler2D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00J( - BuiltInId::textureQueryLevels_Sampler3D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00S( - BuiltInId::textureQueryLevels_ISampler3D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00S20D00D20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00Y( - BuiltInId::textureQueryLevels_USampler3D1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00K( - BuiltInId::textureQueryLevels_SamplerCube1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00T( - BuiltInId::textureQueryLevels_ISamplerCube1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00Z( - BuiltInId::textureQueryLevels_USamplerCube1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00h( - BuiltInId::textureQueryLevels_Sampler1DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00h20B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00p( - BuiltInId::textureQueryLevels_ISampler1DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00p00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00u( - BuiltInId::textureQueryLevels_USampler1DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00u00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00L( - BuiltInId::textureQueryLevels_Sampler2DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00U( - BuiltInId::textureQueryLevels_ISampler2DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00U20D00D10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00a( - BuiltInId::textureQueryLevels_USampler2DArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00k( - BuiltInId::textureQueryLevels_SamplerCubeArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00s( - BuiltInId::textureQueryLevels_ISamplerCubeArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00x( - BuiltInId::textureQueryLevels_USamplerCubeArray1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00m( - BuiltInId::textureQueryLevels_Sampler1DShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00d( - BuiltInId::textureQueryLevels_Sampler2DShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00e( - BuiltInId::textureQueryLevels_SamplerCubeShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00i( - BuiltInId::textureQueryLevels_Sampler1DArrayShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00f( - BuiltInId::textureQueryLevels_Sampler2DArrayShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00f10B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLevels_00l( - BuiltInId::textureQueryLevels_SamplerCubeArrayShadow1, - BuiltInName::textureQueryLevels, - TExtension::UNDEFINED, - BuiltInParameters::p00l20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00P( - BuiltInId::textureSamples_Sampler2DMS1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00P10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00V( - BuiltInId::textureSamples_ISampler2DMS1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00V10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00b( - BuiltInId::textureSamples_USampler2DMS1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00b10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00Q( - BuiltInId::textureSamples_Sampler2DMSArray1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00Q20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00W( - BuiltInId::textureSamples_ISampler2DMSArray1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00W20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSamples_00c( - BuiltInId::textureSamples_USampler2DMSArray1, - BuiltInName::textureSamples, - TExtension::UNDEFINED, - BuiltInParameters::p00c20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00P10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00V10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00b10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00P( - BuiltInId::textureSizeExt_Sampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00P10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00V( - BuiltInId::textureSizeExt_ISampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00V10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00b( - BuiltInId::textureSizeExt_USampler2DMS1, - BuiltInName::textureSizeExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00b10D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00Q(BuiltInId::textureSize_Sampler2DMSArray1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00Q20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00W(BuiltInId::textureSize_ISampler2DMSArray1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00W20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00c(BuiltInId::textureSize_USampler2DMSArray1, - BuiltInName::textureSize, - TExtension::UNDEFINED, - BuiltInParameters::p00c20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00Q( - BuiltInId::textureSizeExt_Sampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00Q20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00W( - BuiltInId::textureSizeExt_ISampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00W20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSizeExt_00c( - BuiltInId::textureSizeExt_USampler2DMSArray1, - BuiltInName::textureSizeExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00c20D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00k30B(BuiltInId::texture_SamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00s30B(BuiltInId::texture_ISamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00x30B(BuiltInId::texture_USamplerCubeArray1_Float4, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00k30B00B( - BuiltInId::texture_SamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00s30B00B( - BuiltInId::texture_ISamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00x30B00B( - BuiltInId::texture_USamplerCubeArray1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00k30B( - BuiltInId::textureGather_SamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00s30B( - BuiltInId::textureGather_ISamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00x30B( - BuiltInId::textureGather_USamplerCubeArray1_Float4, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00k30B00D( - BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00k30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00s30B00D( - BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00s30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00x30B00D( - BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00x30B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00l30B00B( - BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00l30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00P10D00D( - BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00P10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00V10D00D( - BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00V10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00b10D00D( - BuiltInId::texelFetch_USampler2DMS1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00b10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00P10D00D( - BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00P10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00V10D00D( - BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00V10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00b10D00D( - BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1, - BuiltInName::texelFetchExt, - TExtension::ANGLE_texture_multisample, - BuiltInParameters::p00b10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00Q20D00D( - BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00Q20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00W20D00D( - BuiltInId::texelFetch_ISampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00W20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00c20D00D( - BuiltInId::texelFetch_USampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetch, - TExtension::UNDEFINED, - BuiltInParameters::p00c20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00Q20D00D( - BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00Q20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00W20D00D( - BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00W20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchExt_00c20D00D( - BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1, - BuiltInName::texelFetchExt, - TExtension::OES_texture_storage_multisample_2d_array, - BuiltInParameters::p00c20D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00I10B00B( - BuiltInId::texture_Sampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00R10B00B( - BuiltInId::texture_ISampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00X10B00B( - BuiltInId::texture_USampler2D1_Float2_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00J20B00B( - BuiltInId::texture_Sampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00S20B00B( - BuiltInId::texture_ISampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Y20B00B( - BuiltInId::texture_USampler3D1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00K20B00B( - BuiltInId::texture_SamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00T20B00B( - BuiltInId::texture_ISamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00Z20B00B( - BuiltInId::texture_USamplerCube1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00L20B00B( - BuiltInId::texture_Sampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00U20B00B( - BuiltInId::texture_ISampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00a20B00B( - BuiltInId::texture_USampler2DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I20B00B( - BuiltInId::textureProj_Sampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R20B00B( - BuiltInId::textureProj_ISampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X20B00B( - BuiltInId::textureProj_USampler2D1_Float3_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00I30B00B( - BuiltInId::textureProj_Sampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00R30B00B( - BuiltInId::textureProj_ISampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00X30B00B( - BuiltInId::textureProj_USampler2D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00J30B00B( - BuiltInId::textureProj_Sampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00S30B00B( - BuiltInId::textureProj_ISampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00Y30B00B( - BuiltInId::textureProj_USampler3D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00d20B00B( - BuiltInId::texture_Sampler2DShadow1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00e30B00B( - BuiltInId::texture_SamplerCubeShadow1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00e30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00d30B00B( - BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00g00B00B( - BuiltInId::texture_Sampler1D1_Float1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00o00B00B( - BuiltInId::texture_ISampler1D1_Float1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00t00B00B( - BuiltInId::texture_USampler1D1_Float1_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00m20B00B( - BuiltInId::texture_Sampler1DShadow1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00h20B00B( - BuiltInId::texture_Sampler1DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00h20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00p20B00B( - BuiltInId::texture_ISampler1DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00p20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00u20B00B( - BuiltInId::texture_USampler1DArray1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00u20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00i20B00B( - BuiltInId::texture_Sampler1DArrayShadow1_Float3_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00f30B00B( - BuiltInId::texture_Sampler2DArrayShadow1_Float4_Float1, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00g10B00B( - BuiltInId::textureProj_Sampler1D1_Float2_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00o10B00B( - BuiltInId::textureProj_ISampler1D1_Float2_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00t10B00B( - BuiltInId::textureProj_USampler1D1_Float2_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00g30B00B( - BuiltInId::textureProj_Sampler1D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00o30B00B( - BuiltInId::textureProj_ISampler1D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00t30B00B( - BuiltInId::textureProj_USampler1D1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00m30B00B( - BuiltInId::textureProj_Sampler1DShadow1_Float4_Float1, - BuiltInName::textureProj, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00M10B00B( - BuiltInId::texture_SamplerExternalOES1_Float2_Float1, - BuiltInName::texture, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M20B00B( - BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M30B00B( - BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00N10B00B( - BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1, - BuiltInName::texture, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N20B00B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N30B00B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N30B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00g00B( - BuiltInId::textureQueryLod_Sampler1D1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00o00B( - BuiltInId::textureQueryLod_ISampler1D1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00t00B( - BuiltInId::textureQueryLod_USampler1D1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00I10B( - BuiltInId::textureQueryLod_Sampler2D1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00R10B( - BuiltInId::textureQueryLod_ISampler2D1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00X10B( - BuiltInId::textureQueryLod_USampler2D1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00J20B( - BuiltInId::textureQueryLod_Sampler3D1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00S20B( - BuiltInId::textureQueryLod_ISampler3D1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00Y20B( - BuiltInId::textureQueryLod_USampler3D1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00K20B( - BuiltInId::textureQueryLod_SamplerCube1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00T20B( - BuiltInId::textureQueryLod_ISamplerCube1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00Z20B( - BuiltInId::textureQueryLod_USamplerCube1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00h00B( - BuiltInId::textureQueryLod_Sampler1DArray1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00h00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00p00B( - BuiltInId::textureQueryLod_ISampler1DArray1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00p00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00u00B( - BuiltInId::textureQueryLod_USampler1DArray1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00u00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00L10B( - BuiltInId::textureQueryLod_Sampler2DArray1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00L10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00U10B( - BuiltInId::textureQueryLod_ISampler2DArray1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00U10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00a10B( - BuiltInId::textureQueryLod_USampler2DArray1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00a10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00k20B( - BuiltInId::textureQueryLod_SamplerCubeArray1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00k20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00s20B( - BuiltInId::textureQueryLod_ISamplerCubeArray1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00s20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00x20B( - BuiltInId::textureQueryLod_USamplerCubeArray1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00x20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00m00B( - BuiltInId::textureQueryLod_Sampler1DShadow1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00m00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00d10B( - BuiltInId::textureQueryLod_Sampler2DShadow1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00e20B( - BuiltInId::textureQueryLod_SamplerCubeShadow1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00i00B( - BuiltInId::textureQueryLod_Sampler1DArrayShadow1_Float1, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00i00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00f10B( - BuiltInId::textureQueryLod_Sampler2DArrayShadow1_Float2, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00f10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureQueryLod_00l20B( - BuiltInId::textureQueryLod_SamplerCubeArrayShadow1_Float3, - BuiltInName::textureQueryLod, - TExtension::UNDEFINED, - BuiltInParameters::p00l20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00I10B10D( - BuiltInId::textureOffset_Sampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00R10B10D( - BuiltInId::textureOffset_ISampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00X10B10D( - BuiltInId::textureOffset_USampler2D1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00J20B20D( - BuiltInId::textureOffset_Sampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00S20B20D( - BuiltInId::textureOffset_ISampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00Y20B20D( - BuiltInId::textureOffset_USampler3D1_Float3_Int3, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00d20B10D( - BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00L20B10D( - BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00U20B10D( - BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00a20B10D( - BuiltInId::textureOffset_USampler2DArray1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00g00B00D( - BuiltInId::textureOffset_Sampler1D1_Float1_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00o00B00D( - BuiltInId::textureOffset_ISampler1D1_Float1_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00t00B00D( - BuiltInId::textureOffset_USampler1D1_Float1_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00O10B10D( - BuiltInId::textureOffset_Sampler2DRect1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00q10B10D( - BuiltInId::textureOffset_ISampler2DRect1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00v10B10D( - BuiltInId::textureOffset_USampler2DRect1_Float2_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00n20B10D( - BuiltInId::textureOffset_Sampler2DRectShadow1_Float3_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00n20B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00m20B00D( - BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00h10B00D( - BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00p10B00D( - BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00u10B00D( - BuiltInId::textureOffset_USampler1DArray1_Float2_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00i20B00D( - BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00f30B10D( - BuiltInId::textureOffset_Sampler2DArrayShadow1_Float4_Int2, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I20B10D( - BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R20B10D( - BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X20B10D( - BuiltInId::textureProjOffset_USampler2D1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I30B10D( - BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R30B10D( - BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X30B10D( - BuiltInId::textureProjOffset_USampler2D1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00J30B20D( - BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00S30B20D( - BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00Y30B20D( - BuiltInId::textureProjOffset_USampler3D1_Float4_Int3, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00d30B10D( - BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00g10B00D( - BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00o10B00D( - BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00t10B00D( - BuiltInId::textureProjOffset_USampler1D1_Float2_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00g30B00D( - BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00o30B00D( - BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00t30B00D( - BuiltInId::textureProjOffset_USampler1D1_Float4_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00O20B10D( - BuiltInId::textureProjOffset_Sampler2DRect1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O20B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00q20B10D( - BuiltInId::textureProjOffset_ISampler2DRect1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00v20B10D( - BuiltInId::textureProjOffset_USampler2DRect1_Float3_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00O30B10D( - BuiltInId::textureProjOffset_Sampler2DRect1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O30B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00q30B10D( - BuiltInId::textureProjOffset_ISampler2DRect1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q30B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00v30B10D( - BuiltInId::textureProjOffset_USampler2DRect1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v30B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00n30B10D( - BuiltInId::textureProjOffset_Sampler2DRectShadow1_Float4_Int2, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00n30B10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00m30B00D( - BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00I10B00B10D( - BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00R10B00B10D( - BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00X10B00B10D( - BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00J20B00B20D( - BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00S20B00B20D( - BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00Y20B00B20D( - BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00d20B00B10D( - BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00L20B00B10D( - BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00U20B00B10D( - BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00a20B00B10D( - BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00g00B00B00D( - BuiltInId::textureLodOffset_Sampler1D1_Float1_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00o00B00B00D( - BuiltInId::textureLodOffset_ISampler1D1_Float1_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00t00B00B00D( - BuiltInId::textureLodOffset_USampler1D1_Float1_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00m20B00B00D( - BuiltInId::textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00h10B00B00D( - BuiltInId::textureLodOffset_Sampler1DArray1_Float2_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00p10B00B00D( - BuiltInId::textureLodOffset_ISampler1DArray1_Float2_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00u10B00B00D( - BuiltInId::textureLodOffset_USampler1DArray1_Float2_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureLodOffset_00i20B00B00D( - BuiltInId::textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1, - BuiltInName::textureLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00I20B00B10D( - BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00R20B00B10D( - BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00X20B00B10D( - BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00I30B00B10D( - BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00R30B00B10D( - BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00X30B00B10D( - BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00J30B00B20D( - BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00S30B00B20D( - BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00Y30B00B20D( - BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B00B20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00d30B00B10D( - BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B00B10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00g10B00B00D( - BuiltInId::textureProjLodOffset_Sampler1D1_Float2_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00o10B00B00D( - BuiltInId::textureProjLodOffset_ISampler1D1_Float2_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00t10B00B00D( - BuiltInId::textureProjLodOffset_USampler1D1_Float2_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00g30B00B00D( - BuiltInId::textureProjLodOffset_Sampler1D1_Float4_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00o30B00B00D( - BuiltInId::textureProjLodOffset_ISampler1D1_Float4_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00t30B00B00D( - BuiltInId::textureProjLodOffset_USampler1D1_Float4_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjLodOffset_00m30B00B00D( - BuiltInId::textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1, - BuiltInName::textureProjLodOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00I10D00D10D( - BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00R10D00D10D( - BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00X10D00D10D( - BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00J20D00D20D( - BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00S20D00D20D( - BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00Y20D00D20D( - BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20D00D20D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00L20D00D10D( - BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00U20D00D10D( - BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00a20D00D10D( - BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20D00D10D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00g00D00D00D( - BuiltInId::texelFetchOffset_Sampler1D1_Int1_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00o00D00D00D( - BuiltInId::texelFetchOffset_ISampler1D1_Int1_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00t00D00D00D( - BuiltInId::texelFetchOffset_USampler1D1_Int1_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00O10D10D( - BuiltInId::texelFetchOffset_Sampler2DRect1_Int2_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O10D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00q10D10D( - BuiltInId::texelFetchOffset_ISampler2DRect1_Int2_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q10D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00v10D10D( - BuiltInId::texelFetchOffset_USampler2DRect1_Int2_Int2, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v10D10D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00h10D00D00D( - BuiltInId::texelFetchOffset_Sampler1DArray1_Int2_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00h10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00p10D00D00D( - BuiltInId::texelFetchOffset_ISampler1DArray1_Int2_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00p10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetchOffset_00u10D00D00D( - BuiltInId::texelFetchOffset_USampler1DArray1_Int2_Int1_Int1, - BuiltInName::texelFetchOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00u10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00I10B10B10B10D( - BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00R10B10B10B10D( - BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00X10B10B10B10D( - BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00J20B20B20B20D( - BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00S20B20B20B20D( - BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00Y20B20B20B20D( - BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00d20B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00L20B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00U20B10B10B10D( - BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00a20B10B10B10D( - BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00f30B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00f30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00g00B00B00B00D( - BuiltInId::textureGradOffset_Sampler1D1_Float1_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00o00B00B00B00D( - BuiltInId::textureGradOffset_ISampler1D1_Float1_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00t00B00B00B00D( - BuiltInId::textureGradOffset_USampler1D1_Float1_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00O10B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00q10B10B10B10D( - BuiltInId::textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00v10B10B10B10D( - BuiltInId::textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00n20B10B10B10D( - BuiltInId::textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00n20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00m20B00B00B00D( - BuiltInId::textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00h10B00B00B00D( - BuiltInId::textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00p10B00B00B00D( - BuiltInId::textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00u10B00B00B00D( - BuiltInId::textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGradOffset_00i20B00B00B00D( - BuiltInId::textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1, - BuiltInName::textureGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00I20B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00R20B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00X20B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00I30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00R30B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00X30B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00J30B20B20B20D( - BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00S30B20B20B20D( - BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D( - BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20B20B20D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00d30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00g10B00B00B00D( - BuiltInId::textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00o10B00B00B00D( - BuiltInId::textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00t10B00B00B00D( - BuiltInId::textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00g30B00B00B00D( - BuiltInId::textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00o30B00B00B00D( - BuiltInId::textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00t30B00B00B00D( - BuiltInId::textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00O20B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00q20B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00v20B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00O30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00q30B10B10B10D( - BuiltInId::textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00v30B10B10B10D( - BuiltInId::textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00n30B10B10B10D( - BuiltInId::textureProjGradOffset_Sampler2DRectShadow1_Float4_Float2_Float2_Int2, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00n30B10B10B10D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjGradOffset_00m30B00B00B00D( - BuiltInId::textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1, - BuiltInName::textureProjGradOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00B00B00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00I10B10D00B( - BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00R10B10D00B( - BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00X10B10D00B( - BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00J20B20D00B( - BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00S20B20D00B( - BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00Y20B20D00B( - BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y20B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00d20B10D00B( - BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00L20B10D00B( - BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00U20B10D00B( - BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00a20B10D00B( - BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00g00B00D00B( - BuiltInId::textureOffset_Sampler1D1_Float1_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g00B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00o00B00D00B( - BuiltInId::textureOffset_ISampler1D1_Float1_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o00B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00t00B00D00B( - BuiltInId::textureOffset_USampler1D1_Float1_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t00B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00m20B00D00B( - BuiltInId::textureOffset_Sampler1DShadow1_Float3_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m20B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00h10B00D00B( - BuiltInId::textureOffset_Sampler1DArray1_Float2_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00h10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00p10B00D00B( - BuiltInId::textureOffset_ISampler1DArray1_Float2_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00p10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00u10B00D00B( - BuiltInId::textureOffset_USampler1DArray1_Float2_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00u10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureOffset_00i20B00D00B( - BuiltInId::textureOffset_Sampler1DArrayShadow1_Float3_Int1_Float1, - BuiltInName::textureOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00i20B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I20B10D00B( - BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R20B10D00B( - BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X20B10D00B( - BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X20B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00I30B10D00B( - BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00R30B10D00B( - BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00X30B10D00B( - BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00J30B20D00B( - BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00J30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00S30B20D00B( - BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00S30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00Y30B20D00B( - BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00Y30B20D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00d30B10D00B( - BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d30B10D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00g10B00D00B( - BuiltInId::textureProjOffset_Sampler1D1_Float2_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00o10B00D00B( - BuiltInId::textureProjOffset_ISampler1D1_Float2_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00t10B00D00B( - BuiltInId::textureProjOffset_USampler1D1_Float2_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t10B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00g30B00D00B( - BuiltInId::textureProjOffset_Sampler1D1_Float4_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00g30B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00o30B00D00B( - BuiltInId::textureProjOffset_ISampler1D1_Float4_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00o30B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00t30B00D00B( - BuiltInId::textureProjOffset_USampler1D1_Float4_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00t30B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProjOffset_00m30B00D00B( - BuiltInId::textureProjOffset_Sampler1DShadow1_Float4_Int1_Float1, - BuiltInName::textureProjOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00m30B00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2, - BuiltInName::texture, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M20B( - BuiltInId::textureProj_SamplerExternalOES1_Float3, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00M30B( - BuiltInId::textureProj_SamplerExternalOES1_Float4, - BuiltInName::textureProj, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00M00D( - BuiltInId::textureSize_SamplerExternalOES1_Int1, - BuiltInName::textureSize, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00M10D00D( - BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::OES_EGL_image_external_essl3, - BuiltInParameters::p00M10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2, - BuiltInName::texture, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N20B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureProj_00N30B( - BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4, - BuiltInName::textureProj, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N30B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction rgb_2_yuv_20B00H( - BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1, - BuiltInName::rgb_2_yuv, - TExtension::EXT_YUV_target, - BuiltInParameters::p20B00H, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction yuv_2_rgb_20B00H( - BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1, - BuiltInName::yuv_2_rgb, - TExtension::EXT_YUV_target, - BuiltInParameters::p20B00H, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureSize_00N00D( - BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1, - BuiltInName::textureSize, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texelFetch_00N10D00D( - BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1, - BuiltInName::texelFetch, - TExtension::EXT_YUV_target, - BuiltInParameters::p00N10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00I10B( - BuiltInId::textureGather_Sampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00R10B( - BuiltInId::textureGather_ISampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00X10B( - BuiltInId::textureGather_USampler2D1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00I10B00D( - BuiltInId::textureGather_Sampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00R10B00D( - BuiltInId::textureGather_ISampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00X10B00D( - BuiltInId::textureGather_USampler2D1_Float2_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00L20B( - BuiltInId::textureGather_Sampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00U20B( - BuiltInId::textureGather_ISampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00a20B( - BuiltInId::textureGather_USampler2DArray1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00L20B00D( - BuiltInId::textureGather_Sampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00U20B00D( - BuiltInId::textureGather_ISampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00a20B00D( - BuiltInId::textureGather_USampler2DArray1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00K20B( - BuiltInId::textureGather_SamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00T20B( - BuiltInId::textureGather_ISamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00Z20B( - BuiltInId::textureGather_USamplerCube1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B20B20B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00K20B00D( - BuiltInId::textureGather_SamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00K20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00T20B00D( - BuiltInId::textureGather_ISamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00T20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00Z20B00D( - BuiltInId::textureGather_USamplerCube1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00Z20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00O20B( - BuiltInId::textureGather_Sampler2DRect1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00O20B10B10B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00q20B( - BuiltInId::textureGather_ISampler2DRect1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00v20B( - BuiltInId::textureGather_USampler2DRect1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B10D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00O20B00D( - BuiltInId::textureGather_Sampler2DRect1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00O20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00q20B00D( - BuiltInId::textureGather_ISampler2DRect1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00q20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00v20B00D( - BuiltInId::textureGather_USampler2DRect1_Float3_Int1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00v20B00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00d10B( - BuiltInId::textureGather_Sampler2DShadow1_Float2, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00d10B00B( - BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00f20B( - BuiltInId::textureGather_Sampler2DArrayShadow1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00f20B00B( - BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00e20B( - BuiltInId::textureGather_SamplerCubeShadow1_Float3, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00e20B00B( - BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00e20B00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGather_00n10B00B( - BuiltInId::textureGather_Sampler2DRectShadow1_Float2_Float1, - BuiltInName::textureGather, - TExtension::UNDEFINED, - BuiltInParameters::p00n10B00B10Dx4, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00I10B10D( - BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00R10B10D( - BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00X10B10D( - BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00L20B10D( - BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00U20B10D( - BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00a20B10D( - BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00d10B00B10D( - BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00f20B00B10D( - BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00O10B10D( - BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00q10B10D( - BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00v10B10D( - BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00n10B00B10D( - BuiltInId::textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00n10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00I10B10D00D( - BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00R10B10D00D( - BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00X10B10D00D( - BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00L20B10D00D( - BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00U20B10D00D( - BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00a20B10D00D( - BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00O10B10D00D( - BuiltInId::textureGatherOffset_Sampler2DRect1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00q10B10D00D( - BuiltInId::textureGatherOffset_ISampler2DRect1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffset_00v10B10D00D( - BuiltInId::textureGatherOffset_USampler2DRect1_Float2_Int2_Int1, - BuiltInName::textureGatherOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00I10B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00R10B10Dx4( - BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00X10B10Dx4( - BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00L20B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00U20B10Dx4( - BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00a20B10Dx4( - BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00d10B00B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00f20B00B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00I10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx4( - BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00R10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx4( - BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00X10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00L20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx4( - BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00U20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx4( - BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00a20B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00d10B00B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00d10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00f20B00B10Dx4( - BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00f20B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00O10B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00q10B10Dx4( - BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00v10B10Dx4( - BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10Dx400D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00n10B00B10Dx4( - BuiltInId::textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00n10B00B10Dx4, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00I10B10Dx400D( - BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00I10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00R10B10Dx400D( - BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00R10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00X10B10Dx400D( - BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00X10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00L20B10Dx400D( - BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00L20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00U20B10Dx400D( - BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00U20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00a20B10Dx400D( - BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00a20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00I10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00R10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx400D( - BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00X10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00L20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00U20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx400D( - BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1, - BuiltInName::textureGatherOffsetsExt, - TExtension::EXT_gpu_shader5, - BuiltInParameters::p00a20B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00O10B10Dx400D( - BuiltInId::textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00O10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00q10B10Dx400D( - BuiltInId::textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00q10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureGatherOffsets_00v10B10Dx400D( - BuiltInId::textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1, - BuiltInName::textureGatherOffsets, - TExtension::UNDEFINED, - BuiltInParameters::p00v10B10Dx400D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1, - BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2, - BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3, - BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4, - BuiltInName::dFdx, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpDFdx, - false); -constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1, - BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2, - BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3, - BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4, - BuiltInName::dFdy, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpDFdy, - false); -constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1, - BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2, - BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3, - BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4, - BuiltInName::fwidth, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpFwidth, - false); -constexpr const TFunction dFdxFine_00B(BuiltInId::dFdxFine_Float1, - BuiltInName::dFdxFine, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxFine_10B(BuiltInId::dFdxFine_Float2, - BuiltInName::dFdxFine, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxFine_20B(BuiltInId::dFdxFine_Float3, - BuiltInName::dFdxFine, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxFine_30B(BuiltInId::dFdxFine_Float4, - BuiltInName::dFdxFine, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyFine_00B(BuiltInId::dFdyFine_Float1, - BuiltInName::dFdyFine, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyFine_10B(BuiltInId::dFdyFine_Float2, - BuiltInName::dFdyFine, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyFine_20B(BuiltInId::dFdyFine_Float3, - BuiltInName::dFdyFine, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyFine_30B(BuiltInId::dFdyFine_Float4, - BuiltInName::dFdyFine, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxCoarse_00B(BuiltInId::dFdxCoarse_Float1, - BuiltInName::dFdxCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxCoarse_10B(BuiltInId::dFdxCoarse_Float2, - BuiltInName::dFdxCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxCoarse_20B(BuiltInId::dFdxCoarse_Float3, - BuiltInName::dFdxCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdxCoarse_30B(BuiltInId::dFdxCoarse_Float4, - BuiltInName::dFdxCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyCoarse_00B(BuiltInId::dFdyCoarse_Float1, - BuiltInName::dFdyCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyCoarse_10B(BuiltInId::dFdyCoarse_Float2, - BuiltInName::dFdyCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyCoarse_20B(BuiltInId::dFdyCoarse_Float3, - BuiltInName::dFdyCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction dFdyCoarse_30B(BuiltInId::dFdyCoarse_Float4, - BuiltInName::dFdyCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthFine_00B(BuiltInId::fwidthFine_Float1, - BuiltInName::fwidthFine, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthFine_10B(BuiltInId::fwidthFine_Float2, - BuiltInName::fwidthFine, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthFine_20B(BuiltInId::fwidthFine_Float3, - BuiltInName::fwidthFine, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthFine_30B(BuiltInId::fwidthFine_Float4, - BuiltInName::fwidthFine, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthCoarse_00B( - BuiltInId::fwidthCoarse_Float1, - BuiltInName::fwidthCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthCoarse_10B( - BuiltInId::fwidthCoarse_Float2, - BuiltInName::fwidthCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthCoarse_20B( - BuiltInId::fwidthCoarse_Float3, - BuiltInName::fwidthCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction fwidthCoarse_30B( - BuiltInId::fwidthCoarse_Float4, - BuiltInName::fwidthCoarse, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroid_00B( - BuiltInId::interpolateAtCentroid_Float1, - BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroid_10B( - BuiltInId::interpolateAtCentroid_Float2, - BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroid_20B( - BuiltInId::interpolateAtCentroid_Float3, - BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroid_30B( - BuiltInId::interpolateAtCentroid_Float4, - BuiltInName::interpolateAtCentroid, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSample_00B00D( - BuiltInId::interpolateAtSample_Float1_Int1, - BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, - BuiltInParameters::p00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSample_10B00D( - BuiltInId::interpolateAtSample_Float2_Int1, - BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, - BuiltInParameters::p10B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSample_20B00D( - BuiltInId::interpolateAtSample_Float3_Int1, - BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, - BuiltInParameters::p20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSample_30B00D( - BuiltInId::interpolateAtSample_Float4_Int1, - BuiltInName::interpolateAtSample, - TExtension::UNDEFINED, - BuiltInParameters::p30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffset_00B10B( - BuiltInId::interpolateAtOffset_Float1_Float2, - BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, - BuiltInParameters::p00B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffset_10B10B( - BuiltInId::interpolateAtOffset_Float2_Float2, - BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffset_20B10B( - BuiltInId::interpolateAtOffset_Float3_Float2, - BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, - BuiltInParameters::p20B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffset_30B10B( - BuiltInId::interpolateAtOffset_Float4_Float2, - BuiltInName::interpolateAtOffset, - TExtension::UNDEFINED, - BuiltInParameters::p30B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroidExt_00B( - BuiltInId::interpolateAtCentroidExt_Float1, - BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroidExt_10B( - BuiltInId::interpolateAtCentroidExt_Float2, - BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroidExt_20B( - BuiltInId::interpolateAtCentroidExt_Float3, - BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtCentroidExt_30B( - BuiltInId::interpolateAtCentroidExt_Float4, - BuiltInName::interpolateAtCentroidExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSampleExt_00B00D( - BuiltInId::interpolateAtSampleExt_Float1_Int1, - BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p00B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSampleExt_10B00D( - BuiltInId::interpolateAtSampleExt_Float2_Int1, - BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p10B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSampleExt_20B00D( - BuiltInId::interpolateAtSampleExt_Float3_Int1, - BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p20B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtSampleExt_30B00D( - BuiltInId::interpolateAtSampleExt_Float4_Int1, - BuiltInName::interpolateAtSampleExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p30B00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffsetExt_00B10B( - BuiltInId::interpolateAtOffsetExt_Float1_Float2, - BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p00B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffsetExt_10B10B( - BuiltInId::interpolateAtOffsetExt_Float2_Float2, - BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p10B10B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffsetExt_20B10B( - BuiltInId::interpolateAtOffsetExt_Float3_Float2, - BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p20B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction interpolateAtOffsetExt_30B10B( - BuiltInId::interpolateAtOffsetExt_Float4_Float2, - BuiltInName::interpolateAtOffsetExt, - TExtension::OES_shader_multisample_interpolation, - BuiltInParameters::p30B10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounter_00G( - BuiltInId::atomicCounter_AtomicCounter1, - BuiltInName::atomicCounter, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterIncrement_00G( - BuiltInId::atomicCounterIncrement_AtomicCounter1, - BuiltInName::atomicCounterIncrement, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterDecrement_00G( - BuiltInId::atomicCounterDecrement_AtomicCounter1, - BuiltInName::atomicCounterDecrement, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterAdd_00G00E( - BuiltInId::atomicCounterAdd_AtomicCounter1_UInt1, - BuiltInName::atomicCounterAdd, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterSubtract_00G00E( - BuiltInId::atomicCounterSubtract_AtomicCounter1_UInt1, - BuiltInName::atomicCounterSubtract, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterMin_00G00E( - BuiltInId::atomicCounterMin_AtomicCounter1_UInt1, - BuiltInName::atomicCounterMin, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterMax_00G00E( - BuiltInId::atomicCounterMax_AtomicCounter1_UInt1, - BuiltInName::atomicCounterMax, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterAnd_00G00E( - BuiltInId::atomicCounterAnd_AtomicCounter1_UInt1, - BuiltInName::atomicCounterAnd, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterOr_00G00E( - BuiltInId::atomicCounterOr_AtomicCounter1_UInt1, - BuiltInName::atomicCounterOr, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterXor_00G00E( - BuiltInId::atomicCounterXor_AtomicCounter1_UInt1, - BuiltInName::atomicCounterXor, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterExchange_00G00E( - BuiltInId::atomicCounterExchange_AtomicCounter1_UInt1, - BuiltInName::atomicCounterExchange, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicCounterCompSwap_00G00E00E( - BuiltInId::atomicCounterCompSwap_AtomicCounter1_UInt1_UInt1, - BuiltInName::atomicCounterCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p00G00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction atomicAdd_00E00E( - BuiltInId::atomicAdd_UInt1_UInt1, - BuiltInName::atomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicAdd, - false); -constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1, - BuiltInName::atomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicAdd, - false); -constexpr const TFunction atomicMin_00E00E( - BuiltInId::atomicMin_UInt1_UInt1, - BuiltInName::atomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicMin, - false); -constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1, - BuiltInName::atomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicMin, - false); -constexpr const TFunction atomicMax_00E00E( - BuiltInId::atomicMax_UInt1_UInt1, - BuiltInName::atomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicMax, - false); -constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1, - BuiltInName::atomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicMax, - false); -constexpr const TFunction atomicAnd_00E00E( - BuiltInId::atomicAnd_UInt1_UInt1, - BuiltInName::atomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicAnd, - false); -constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1, - BuiltInName::atomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicAnd, - false); -constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1, - BuiltInName::atomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicOr, - false); -constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1, - BuiltInName::atomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicOr, - false); -constexpr const TFunction atomicXor_00E00E( - BuiltInId::atomicXor_UInt1_UInt1, - BuiltInName::atomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicXor, - false); -constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1, - BuiltInName::atomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicXor, - false); -constexpr const TFunction atomicExchange_00E00E( - BuiltInId::atomicExchange_UInt1_UInt1, - BuiltInName::atomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 2, - StaticType::Get(), - EOpAtomicExchange, - false); -constexpr const TFunction atomicExchange_00D00D( - BuiltInId::atomicExchange_Int1_Int1, - BuiltInName::atomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 2, - StaticType::Get(), - EOpAtomicExchange, - false); -constexpr const TFunction atomicCompSwap_00E00E00E( - BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1, - BuiltInName::atomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00E00E00E, - 3, - StaticType::Get(), - EOpAtomicCompSwap, - false); -constexpr const TFunction atomicCompSwap_00D00D00D( - BuiltInId::atomicCompSwap_Int1_Int1_Int1, - BuiltInName::atomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p_io_00D00D00D, - 3, - StaticType::Get(), - EOpAtomicCompSwap, - false); -constexpr const TFunction imageSize_00z(BuiltInId::imageSize_Image2D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01A(BuiltInId::imageSize_IImage2D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01B(BuiltInId::imageSize_UImage2D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01C(BuiltInId::imageSize_Image3D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01D(BuiltInId::imageSize_IImage3D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01E(BuiltInId::imageSize_UImage3D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01F(BuiltInId::imageSize_Image2DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01G(BuiltInId::imageSize_IImage2DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01H(BuiltInId::imageSize_UImage2DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01I(BuiltInId::imageSize_ImageCube1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01J(BuiltInId::imageSize_IImageCube1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01K(BuiltInId::imageSize_UImageCube1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01X(BuiltInId::imageSize_ImageCubeArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01Y(BuiltInId::imageSize_IImageCubeArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01Z(BuiltInId::imageSize_UImageCubeArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01d(BuiltInId::imageSize_ImageBuffer1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01e(BuiltInId::imageSize_IImageBuffer1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01f(BuiltInId::imageSize_UImageBuffer1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01L(BuiltInId::imageSize_Image1D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D30B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01M(BuiltInId::imageSize_IImage1D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01N(BuiltInId::imageSize_UImage1D1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01a(BuiltInId::imageSize_ImageRect1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01b(BuiltInId::imageSize_IImageRect1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01c(BuiltInId::imageSize_UImageRect1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01O(BuiltInId::imageSize_Image1DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01P(BuiltInId::imageSize_IImage1DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01Q(BuiltInId::imageSize_UImage1DArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01R(BuiltInId::imageSize_Image2DMS1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01S(BuiltInId::imageSize_IImage2DMS1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01T(BuiltInId::imageSize_UImage2DMS1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01U(BuiltInId::imageSize_Image2DMSArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01V(BuiltInId::imageSize_IImage2DMSArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSize_01W(BuiltInId::imageSize_UImage2DMSArray1, - BuiltInName::imageSize, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01R(BuiltInId::imageSamples_Image2DMS1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01S(BuiltInId::imageSamples_IImage2DMS1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01T(BuiltInId::imageSamples_UImage2DMS1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01U(BuiltInId::imageSamples_Image2DMSArray1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01V(BuiltInId::imageSamples_IImage2DMSArray1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageSamples_01W(BuiltInId::imageSamples_UImage2DMSArray1, - BuiltInName::imageSamples, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D30E, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_00z10D30B( - BuiltInId::imageStore_Image2D1_Int2_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01A10D30D( - BuiltInId::imageStore_IImage2D1_Int2_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01B10D30E( - BuiltInId::imageStore_UImage2D1_Int2_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01C20D30B( - BuiltInId::imageStore_Image3D1_Int3_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01D20D30D( - BuiltInId::imageStore_IImage3D1_Int3_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01E20D30E( - BuiltInId::imageStore_UImage3D1_Int3_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01F20D30B( - BuiltInId::imageStore_Image2DArray1_Int3_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01G20D30D( - BuiltInId::imageStore_IImage2DArray1_Int3_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01H20D30E( - BuiltInId::imageStore_UImage2DArray1_Int3_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01I20D30B( - BuiltInId::imageStore_ImageCube1_Int3_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01J20D30D( - BuiltInId::imageStore_IImageCube1_Int3_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01K20D30E( - BuiltInId::imageStore_UImageCube1_Int3_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01X20D30B( - BuiltInId::imageStore_ImageCubeArray1_Int3_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01Y20D30D( - BuiltInId::imageStore_IImageCubeArray1_Int3_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01Z20D30E( - BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01d00D30B( - BuiltInId::imageStore_ImageBuffer1_Int1_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01e00D30D( - BuiltInId::imageStore_IImageBuffer1_Int1_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01f00D30E( - BuiltInId::imageStore_UImageBuffer1_Int1_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01L00D30B( - BuiltInId::imageStore_Image1D1_Int1_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01M00D30D( - BuiltInId::imageStore_IImage1D1_Int1_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01N00D30E( - BuiltInId::imageStore_UImage1D1_Int1_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01O10D30B( - BuiltInId::imageStore_Image1DArray1_Int2_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01P10D30D( - BuiltInId::imageStore_IImage1DArray1_Int2_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01Q10D30E( - BuiltInId::imageStore_UImage1DArray1_Int2_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01a10D30B( - BuiltInId::imageStore_ImageRect1_Int2_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D30B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01b10D30D( - BuiltInId::imageStore_IImageRect1_Int2_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01c10D30E( - BuiltInId::imageStore_UImageRect1_Int2_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01R10D00D30B( - BuiltInId::imageStore_Image2DMS1_Int2_Int1_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D30B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01S10D00D30D( - BuiltInId::imageStore_IImage2DMS1_Int2_Int1_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D30D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01T10D00D30E( - BuiltInId::imageStore_UImage2DMS1_Int2_Int1_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D30E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01U20D00D30B( - BuiltInId::imageStore_Image2DMSArray1_Int3_Int1_Float4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D30B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01V20D00D30D( - BuiltInId::imageStore_IImage2DMSArray1_Int3_Int1_Int4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D30D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageStore_01W20D00D30E( - BuiltInId::imageStore_UImage2DMSArray1_Int3_Int1_UInt4, - BuiltInName::imageStore, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D30E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_00z10D( - BuiltInId::imageLoad_Image2D1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01A10D(BuiltInId::imageLoad_IImage2D1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01B10D( - BuiltInId::imageLoad_UImage2D1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01C20D( - BuiltInId::imageLoad_Image3D1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01D20D(BuiltInId::imageLoad_IImage3D1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01E20D( - BuiltInId::imageLoad_UImage3D1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01F20D( - BuiltInId::imageLoad_Image2DArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01G20D(BuiltInId::imageLoad_IImage2DArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01H20D( - BuiltInId::imageLoad_UImage2DArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01I20D( - BuiltInId::imageLoad_ImageCube1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01J20D(BuiltInId::imageLoad_IImageCube1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01K20D( - BuiltInId::imageLoad_UImageCube1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01X20D( - BuiltInId::imageLoad_ImageCubeArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01Y20D(BuiltInId::imageLoad_IImageCubeArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01Z20D( - BuiltInId::imageLoad_UImageCubeArray1_Int3, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D30E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01d00D( - BuiltInId::imageLoad_ImageBuffer1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01e00D(BuiltInId::imageLoad_IImageBuffer1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D30D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01f00D( - BuiltInId::imageLoad_UImageBuffer1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01L00D( - BuiltInId::imageLoad_Image1D1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D30B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01M00D(BuiltInId::imageLoad_IImage1D1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01N00D( - BuiltInId::imageLoad_UImage1D1_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01O10D( - BuiltInId::imageLoad_Image1DArray1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01P10D(BuiltInId::imageLoad_IImage1DArray1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01Q10D( - BuiltInId::imageLoad_UImage1DArray1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01a10D( - BuiltInId::imageLoad_ImageRect1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01b10D(BuiltInId::imageLoad_IImageRect1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01c10D( - BuiltInId::imageLoad_UImageRect1_Int2, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01R10D00D( - BuiltInId::imageLoad_Image2DMS1_Int2_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01S10D00D( - BuiltInId::imageLoad_IImage2DMS1_Int2_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01T10D00D( - BuiltInId::imageLoad_UImage2DMS1_Int2_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01U20D00D( - BuiltInId::imageLoad_Image2DMSArray1_Int3_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01V20D00D( - BuiltInId::imageLoad_IImage2DMSArray1_Int3_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D30D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageLoad_01W20D00D( - BuiltInId::imageLoad_UImage2DMSArray1_Int3_Int1, - BuiltInName::imageLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D30E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_00z10D00E( - BuiltInId::imageAtomicAdd_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01A10D00E( - BuiltInId::imageAtomicAdd_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01B10D00E( - BuiltInId::imageAtomicAdd_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01C20D00E( - BuiltInId::imageAtomicAdd_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01D20D00E( - BuiltInId::imageAtomicAdd_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01E20D00E( - BuiltInId::imageAtomicAdd_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01I20D00E( - BuiltInId::imageAtomicAdd_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01J20D00E( - BuiltInId::imageAtomicAdd_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01K20D00E( - BuiltInId::imageAtomicAdd_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01d00D00E( - BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01e00D00E( - BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01f00D00E( - BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01F20D00E( - BuiltInId::imageAtomicAdd_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01G20D00E( - BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01H20D00E( - BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01X20D00E( - BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Y20D00E( - BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Z20D00E( - BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01L00D00E( - BuiltInId::imageAtomicAdd_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01M00D00E( - BuiltInId::imageAtomicAdd_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01N00D00E( - BuiltInId::imageAtomicAdd_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01O10D00E( - BuiltInId::imageAtomicAdd_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01P10D00E( - BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Q10D00E( - BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01a10D00E( - BuiltInId::imageAtomicAdd_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01b10D00E( - BuiltInId::imageAtomicAdd_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01c10D00E( - BuiltInId::imageAtomicAdd_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01R10D00D00E( - BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01S10D00D00E( - BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01T10D00D00E( - BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01U20D00D00E( - BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01V20D00D00E( - BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01W20D00D00E( - BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_00z10D00D( - BuiltInId::imageAtomicAdd_Image2D1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01A10D00D( - BuiltInId::imageAtomicAdd_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01B10D00D( - BuiltInId::imageAtomicAdd_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01C20D00D( - BuiltInId::imageAtomicAdd_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01D20D00D( - BuiltInId::imageAtomicAdd_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01E20D00D( - BuiltInId::imageAtomicAdd_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01I20D00D( - BuiltInId::imageAtomicAdd_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01J20D00D( - BuiltInId::imageAtomicAdd_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01K20D00D( - BuiltInId::imageAtomicAdd_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01d00D00D( - BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01e00D00D( - BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01f00D00D( - BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01F20D00D( - BuiltInId::imageAtomicAdd_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01G20D00D( - BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01H20D00D( - BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01X20D00D( - BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Y20D00D( - BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Z20D00D( - BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01L00D00D( - BuiltInId::imageAtomicAdd_Image1D1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01M00D00D( - BuiltInId::imageAtomicAdd_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01N00D00D( - BuiltInId::imageAtomicAdd_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01O10D00D( - BuiltInId::imageAtomicAdd_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01P10D00D( - BuiltInId::imageAtomicAdd_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01Q10D00D( - BuiltInId::imageAtomicAdd_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01a10D00D( - BuiltInId::imageAtomicAdd_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01b10D00D( - BuiltInId::imageAtomicAdd_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01c10D00D( - BuiltInId::imageAtomicAdd_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01R10D00D00D( - BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01S10D00D00D( - BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01T10D00D00D( - BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01U20D00D00D( - BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01V20D00D00D( - BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAdd_01W20D00D00D( - BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAdd, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_00z10D00E( - BuiltInId::imageAtomicMin_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01A10D00E( - BuiltInId::imageAtomicMin_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01B10D00E( - BuiltInId::imageAtomicMin_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01C20D00E( - BuiltInId::imageAtomicMin_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01D20D00E( - BuiltInId::imageAtomicMin_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01E20D00E( - BuiltInId::imageAtomicMin_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01I20D00E( - BuiltInId::imageAtomicMin_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01J20D00E( - BuiltInId::imageAtomicMin_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01K20D00E( - BuiltInId::imageAtomicMin_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01d00D00E( - BuiltInId::imageAtomicMin_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01e00D00E( - BuiltInId::imageAtomicMin_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01f00D00E( - BuiltInId::imageAtomicMin_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01F20D00E( - BuiltInId::imageAtomicMin_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01G20D00E( - BuiltInId::imageAtomicMin_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01H20D00E( - BuiltInId::imageAtomicMin_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01X20D00E( - BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Y20D00E( - BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Z20D00E( - BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01L00D00E( - BuiltInId::imageAtomicMin_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01M00D00E( - BuiltInId::imageAtomicMin_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01N00D00E( - BuiltInId::imageAtomicMin_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01O10D00E( - BuiltInId::imageAtomicMin_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01P10D00E( - BuiltInId::imageAtomicMin_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Q10D00E( - BuiltInId::imageAtomicMin_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01a10D00E( - BuiltInId::imageAtomicMin_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01b10D00E( - BuiltInId::imageAtomicMin_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01c10D00E( - BuiltInId::imageAtomicMin_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01R10D00D00E( - BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01S10D00D00E( - BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01T10D00D00E( - BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01U20D00D00E( - BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01V20D00D00E( - BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01W20D00D00E( - BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_00z10D00D( - BuiltInId::imageAtomicMin_Image2D1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01A10D00D( - BuiltInId::imageAtomicMin_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01B10D00D( - BuiltInId::imageAtomicMin_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01C20D00D( - BuiltInId::imageAtomicMin_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01D20D00D( - BuiltInId::imageAtomicMin_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01E20D00D( - BuiltInId::imageAtomicMin_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01I20D00D( - BuiltInId::imageAtomicMin_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01J20D00D( - BuiltInId::imageAtomicMin_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01K20D00D( - BuiltInId::imageAtomicMin_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01d00D00D( - BuiltInId::imageAtomicMin_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01e00D00D( - BuiltInId::imageAtomicMin_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01f00D00D( - BuiltInId::imageAtomicMin_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01F20D00D( - BuiltInId::imageAtomicMin_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01G20D00D( - BuiltInId::imageAtomicMin_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01H20D00D( - BuiltInId::imageAtomicMin_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01X20D00D( - BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Y20D00D( - BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Z20D00D( - BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01L00D00D( - BuiltInId::imageAtomicMin_Image1D1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01M00D00D( - BuiltInId::imageAtomicMin_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01N00D00D( - BuiltInId::imageAtomicMin_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01O10D00D( - BuiltInId::imageAtomicMin_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01P10D00D( - BuiltInId::imageAtomicMin_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01Q10D00D( - BuiltInId::imageAtomicMin_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01a10D00D( - BuiltInId::imageAtomicMin_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01b10D00D( - BuiltInId::imageAtomicMin_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01c10D00D( - BuiltInId::imageAtomicMin_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01R10D00D00D( - BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01S10D00D00D( - BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01T10D00D00D( - BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01U20D00D00D( - BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01V20D00D00D( - BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMin_01W20D00D00D( - BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMin, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_00z10D00E( - BuiltInId::imageAtomicMax_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01A10D00E( - BuiltInId::imageAtomicMax_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01B10D00E( - BuiltInId::imageAtomicMax_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01C20D00E( - BuiltInId::imageAtomicMax_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01D20D00E( - BuiltInId::imageAtomicMax_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01E20D00E( - BuiltInId::imageAtomicMax_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01I20D00E( - BuiltInId::imageAtomicMax_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01J20D00E( - BuiltInId::imageAtomicMax_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01K20D00E( - BuiltInId::imageAtomicMax_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01d00D00E( - BuiltInId::imageAtomicMax_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01e00D00E( - BuiltInId::imageAtomicMax_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01f00D00E( - BuiltInId::imageAtomicMax_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01F20D00E( - BuiltInId::imageAtomicMax_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01G20D00E( - BuiltInId::imageAtomicMax_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01H20D00E( - BuiltInId::imageAtomicMax_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01X20D00E( - BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Y20D00E( - BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Z20D00E( - BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01L00D00E( - BuiltInId::imageAtomicMax_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01M00D00E( - BuiltInId::imageAtomicMax_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01N00D00E( - BuiltInId::imageAtomicMax_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01O10D00E( - BuiltInId::imageAtomicMax_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01P10D00E( - BuiltInId::imageAtomicMax_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Q10D00E( - BuiltInId::imageAtomicMax_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01a10D00E( - BuiltInId::imageAtomicMax_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01b10D00E( - BuiltInId::imageAtomicMax_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01c10D00E( - BuiltInId::imageAtomicMax_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01R10D00D00E( - BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01S10D00D00E( - BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01T10D00D00E( - BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01U20D00D00E( - BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01V20D00D00E( - BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01W20D00D00E( - BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_00z10D00D( - BuiltInId::imageAtomicMax_Image2D1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01A10D00D( - BuiltInId::imageAtomicMax_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01B10D00D( - BuiltInId::imageAtomicMax_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01C20D00D( - BuiltInId::imageAtomicMax_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01D20D00D( - BuiltInId::imageAtomicMax_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01E20D00D( - BuiltInId::imageAtomicMax_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01I20D00D( - BuiltInId::imageAtomicMax_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01J20D00D( - BuiltInId::imageAtomicMax_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01K20D00D( - BuiltInId::imageAtomicMax_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01d00D00D( - BuiltInId::imageAtomicMax_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01e00D00D( - BuiltInId::imageAtomicMax_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01f00D00D( - BuiltInId::imageAtomicMax_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01F20D00D( - BuiltInId::imageAtomicMax_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01G20D00D( - BuiltInId::imageAtomicMax_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01H20D00D( - BuiltInId::imageAtomicMax_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01X20D00D( - BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Y20D00D( - BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Z20D00D( - BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01L00D00D( - BuiltInId::imageAtomicMax_Image1D1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01M00D00D( - BuiltInId::imageAtomicMax_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01N00D00D( - BuiltInId::imageAtomicMax_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01O10D00D( - BuiltInId::imageAtomicMax_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01P10D00D( - BuiltInId::imageAtomicMax_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01Q10D00D( - BuiltInId::imageAtomicMax_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01a10D00D( - BuiltInId::imageAtomicMax_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01b10D00D( - BuiltInId::imageAtomicMax_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01c10D00D( - BuiltInId::imageAtomicMax_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01R10D00D00D( - BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01S10D00D00D( - BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01T10D00D00D( - BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01U20D00D00D( - BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01V20D00D00D( - BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMax_01W20D00D00D( - BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMax, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_00z10D00E( - BuiltInId::imageAtomicAnd_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01A10D00E( - BuiltInId::imageAtomicAnd_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01B10D00E( - BuiltInId::imageAtomicAnd_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01C20D00E( - BuiltInId::imageAtomicAnd_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01D20D00E( - BuiltInId::imageAtomicAnd_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01E20D00E( - BuiltInId::imageAtomicAnd_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01I20D00E( - BuiltInId::imageAtomicAnd_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01J20D00E( - BuiltInId::imageAtomicAnd_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01K20D00E( - BuiltInId::imageAtomicAnd_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01d00D00E( - BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01e00D00E( - BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01f00D00E( - BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01F20D00E( - BuiltInId::imageAtomicAnd_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01G20D00E( - BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01H20D00E( - BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01X20D00E( - BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Y20D00E( - BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Z20D00E( - BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01L00D00E( - BuiltInId::imageAtomicAnd_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01M00D00E( - BuiltInId::imageAtomicAnd_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01N00D00E( - BuiltInId::imageAtomicAnd_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01O10D00E( - BuiltInId::imageAtomicAnd_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01P10D00E( - BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Q10D00E( - BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01a10D00E( - BuiltInId::imageAtomicAnd_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01b10D00E( - BuiltInId::imageAtomicAnd_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01c10D00E( - BuiltInId::imageAtomicAnd_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01R10D00D00E( - BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01S10D00D00E( - BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01T10D00D00E( - BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01U20D00D00E( - BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01V20D00D00E( - BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01W20D00D00E( - BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_00z10D00D( - BuiltInId::imageAtomicAnd_Image2D1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01A10D00D( - BuiltInId::imageAtomicAnd_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01B10D00D( - BuiltInId::imageAtomicAnd_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01C20D00D( - BuiltInId::imageAtomicAnd_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01D20D00D( - BuiltInId::imageAtomicAnd_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01E20D00D( - BuiltInId::imageAtomicAnd_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01I20D00D( - BuiltInId::imageAtomicAnd_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01J20D00D( - BuiltInId::imageAtomicAnd_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01K20D00D( - BuiltInId::imageAtomicAnd_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01d00D00D( - BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01e00D00D( - BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01f00D00D( - BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01F20D00D( - BuiltInId::imageAtomicAnd_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01G20D00D( - BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01H20D00D( - BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01X20D00D( - BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Y20D00D( - BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Z20D00D( - BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01L00D00D( - BuiltInId::imageAtomicAnd_Image1D1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01M00D00D( - BuiltInId::imageAtomicAnd_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01N00D00D( - BuiltInId::imageAtomicAnd_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01O10D00D( - BuiltInId::imageAtomicAnd_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01P10D00D( - BuiltInId::imageAtomicAnd_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01Q10D00D( - BuiltInId::imageAtomicAnd_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01a10D00D( - BuiltInId::imageAtomicAnd_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01b10D00D( - BuiltInId::imageAtomicAnd_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01c10D00D( - BuiltInId::imageAtomicAnd_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01R10D00D00D( - BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01S10D00D00D( - BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01T10D00D00D( - BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01U20D00D00D( - BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01V20D00D00D( - BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAnd_01W20D00D00D( - BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAnd, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_00z10D00E( - BuiltInId::imageAtomicOr_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01A10D00E( - BuiltInId::imageAtomicOr_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01B10D00E( - BuiltInId::imageAtomicOr_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01C20D00E( - BuiltInId::imageAtomicOr_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01D20D00E( - BuiltInId::imageAtomicOr_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01E20D00E( - BuiltInId::imageAtomicOr_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01I20D00E( - BuiltInId::imageAtomicOr_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01J20D00E( - BuiltInId::imageAtomicOr_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01K20D00E( - BuiltInId::imageAtomicOr_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01d00D00E( - BuiltInId::imageAtomicOr_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01e00D00E( - BuiltInId::imageAtomicOr_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01f00D00E( - BuiltInId::imageAtomicOr_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01F20D00E( - BuiltInId::imageAtomicOr_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01G20D00E( - BuiltInId::imageAtomicOr_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01H20D00E( - BuiltInId::imageAtomicOr_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01X20D00E( - BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Y20D00E( - BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Z20D00E( - BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01L00D00E( - BuiltInId::imageAtomicOr_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01M00D00E( - BuiltInId::imageAtomicOr_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01N00D00E( - BuiltInId::imageAtomicOr_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01O10D00E( - BuiltInId::imageAtomicOr_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01P10D00E( - BuiltInId::imageAtomicOr_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Q10D00E( - BuiltInId::imageAtomicOr_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01a10D00E( - BuiltInId::imageAtomicOr_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01b10D00E( - BuiltInId::imageAtomicOr_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01c10D00E( - BuiltInId::imageAtomicOr_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01R10D00D00E( - BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01S10D00D00E( - BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01T10D00D00E( - BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01U20D00D00E( - BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01V20D00D00E( - BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01W20D00D00E( - BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_00z10D00D( - BuiltInId::imageAtomicOr_Image2D1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01A10D00D( - BuiltInId::imageAtomicOr_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01B10D00D( - BuiltInId::imageAtomicOr_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01C20D00D( - BuiltInId::imageAtomicOr_Image3D1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01D20D00D( - BuiltInId::imageAtomicOr_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01E20D00D( - BuiltInId::imageAtomicOr_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01I20D00D( - BuiltInId::imageAtomicOr_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01J20D00D( - BuiltInId::imageAtomicOr_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01K20D00D( - BuiltInId::imageAtomicOr_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01d00D00D( - BuiltInId::imageAtomicOr_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01e00D00D( - BuiltInId::imageAtomicOr_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01f00D00D( - BuiltInId::imageAtomicOr_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01F20D00D( - BuiltInId::imageAtomicOr_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01G20D00D( - BuiltInId::imageAtomicOr_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01H20D00D( - BuiltInId::imageAtomicOr_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01X20D00D( - BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Y20D00D( - BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Z20D00D( - BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01L00D00D( - BuiltInId::imageAtomicOr_Image1D1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01M00D00D( - BuiltInId::imageAtomicOr_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01N00D00D( - BuiltInId::imageAtomicOr_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01O10D00D( - BuiltInId::imageAtomicOr_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01P10D00D( - BuiltInId::imageAtomicOr_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01Q10D00D( - BuiltInId::imageAtomicOr_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01a10D00D( - BuiltInId::imageAtomicOr_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01b10D00D( - BuiltInId::imageAtomicOr_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01c10D00D( - BuiltInId::imageAtomicOr_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01R10D00D00D( - BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01S10D00D00D( - BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01T10D00D00D( - BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01U20D00D00D( - BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01V20D00D00D( - BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOr_01W20D00D00D( - BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOr, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_00z10D00E( - BuiltInId::imageAtomicXor_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01A10D00E( - BuiltInId::imageAtomicXor_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01B10D00E( - BuiltInId::imageAtomicXor_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01C20D00E( - BuiltInId::imageAtomicXor_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01D20D00E( - BuiltInId::imageAtomicXor_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01E20D00E( - BuiltInId::imageAtomicXor_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01I20D00E( - BuiltInId::imageAtomicXor_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01J20D00E( - BuiltInId::imageAtomicXor_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01K20D00E( - BuiltInId::imageAtomicXor_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01d00D00E( - BuiltInId::imageAtomicXor_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01e00D00E( - BuiltInId::imageAtomicXor_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01f00D00E( - BuiltInId::imageAtomicXor_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01F20D00E( - BuiltInId::imageAtomicXor_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01G20D00E( - BuiltInId::imageAtomicXor_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01H20D00E( - BuiltInId::imageAtomicXor_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01X20D00E( - BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Y20D00E( - BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Z20D00E( - BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01L00D00E( - BuiltInId::imageAtomicXor_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01M00D00E( - BuiltInId::imageAtomicXor_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01N00D00E( - BuiltInId::imageAtomicXor_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01O10D00E( - BuiltInId::imageAtomicXor_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01P10D00E( - BuiltInId::imageAtomicXor_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Q10D00E( - BuiltInId::imageAtomicXor_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01a10D00E( - BuiltInId::imageAtomicXor_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01b10D00E( - BuiltInId::imageAtomicXor_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01c10D00E( - BuiltInId::imageAtomicXor_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01R10D00D00E( - BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01S10D00D00E( - BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01T10D00D00E( - BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01U20D00D00E( - BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01V20D00D00E( - BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01W20D00D00E( - BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_00z10D00D( - BuiltInId::imageAtomicXor_Image2D1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01A10D00D( - BuiltInId::imageAtomicXor_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01B10D00D( - BuiltInId::imageAtomicXor_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01C20D00D( - BuiltInId::imageAtomicXor_Image3D1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01D20D00D( - BuiltInId::imageAtomicXor_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01E20D00D( - BuiltInId::imageAtomicXor_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01I20D00D( - BuiltInId::imageAtomicXor_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01J20D00D( - BuiltInId::imageAtomicXor_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01K20D00D( - BuiltInId::imageAtomicXor_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01d00D00D( - BuiltInId::imageAtomicXor_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01e00D00D( - BuiltInId::imageAtomicXor_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01f00D00D( - BuiltInId::imageAtomicXor_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01F20D00D( - BuiltInId::imageAtomicXor_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01G20D00D( - BuiltInId::imageAtomicXor_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01H20D00D( - BuiltInId::imageAtomicXor_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01X20D00D( - BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Y20D00D( - BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Z20D00D( - BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01L00D00D( - BuiltInId::imageAtomicXor_Image1D1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01M00D00D( - BuiltInId::imageAtomicXor_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01N00D00D( - BuiltInId::imageAtomicXor_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01O10D00D( - BuiltInId::imageAtomicXor_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01P10D00D( - BuiltInId::imageAtomicXor_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01Q10D00D( - BuiltInId::imageAtomicXor_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01a10D00D( - BuiltInId::imageAtomicXor_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01b10D00D( - BuiltInId::imageAtomicXor_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01c10D00D( - BuiltInId::imageAtomicXor_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01R10D00D00D( - BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01S10D00D00D( - BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01T10D00D00D( - BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01U20D00D00D( - BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01V20D00D00D( - BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXor_01W20D00D00D( - BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXor, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_00z10D00E( - BuiltInId::imageAtomicExchange_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01A10D00E( - BuiltInId::imageAtomicExchange_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01B10D00E( - BuiltInId::imageAtomicExchange_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01C20D00E( - BuiltInId::imageAtomicExchange_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01D20D00E( - BuiltInId::imageAtomicExchange_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01E20D00E( - BuiltInId::imageAtomicExchange_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01I20D00E( - BuiltInId::imageAtomicExchange_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01J20D00E( - BuiltInId::imageAtomicExchange_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01K20D00E( - BuiltInId::imageAtomicExchange_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01d00D00E( - BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01e00D00E( - BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01f00D00E( - BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01F20D00E( - BuiltInId::imageAtomicExchange_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01G20D00E( - BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01H20D00E( - BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01X20D00E( - BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Y20D00E( - BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Z20D00E( - BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01L00D00E( - BuiltInId::imageAtomicExchange_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01M00D00E( - BuiltInId::imageAtomicExchange_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01N00D00E( - BuiltInId::imageAtomicExchange_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01O10D00E( - BuiltInId::imageAtomicExchange_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01P10D00E( - BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Q10D00E( - BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01a10D00E( - BuiltInId::imageAtomicExchange_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01b10D00E( - BuiltInId::imageAtomicExchange_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01c10D00E( - BuiltInId::imageAtomicExchange_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01R10D00D00E( - BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01S10D00D00E( - BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01T10D00D00E( - BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01U20D00D00E( - BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01V20D00D00E( - BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01W20D00D00E( - BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_00z10D00D( - BuiltInId::imageAtomicExchange_Image2D1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01A10D00D( - BuiltInId::imageAtomicExchange_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01B10D00D( - BuiltInId::imageAtomicExchange_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01C20D00D( - BuiltInId::imageAtomicExchange_Image3D1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01D20D00D( - BuiltInId::imageAtomicExchange_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01E20D00D( - BuiltInId::imageAtomicExchange_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01I20D00D( - BuiltInId::imageAtomicExchange_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01J20D00D( - BuiltInId::imageAtomicExchange_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01K20D00D( - BuiltInId::imageAtomicExchange_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01d00D00D( - BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01e00D00D( - BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01f00D00D( - BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01F20D00D( - BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01G20D00D( - BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01H20D00D( - BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01X20D00D( - BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Y20D00D( - BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Z20D00D( - BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01L00D00D( - BuiltInId::imageAtomicExchange_Image1D1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01M00D00D( - BuiltInId::imageAtomicExchange_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01N00D00D( - BuiltInId::imageAtomicExchange_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01O10D00D( - BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01P10D00D( - BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Q10D00D( - BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01a10D00D( - BuiltInId::imageAtomicExchange_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01b10D00D( - BuiltInId::imageAtomicExchange_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01c10D00D( - BuiltInId::imageAtomicExchange_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01R10D00D00D( - BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01S10D00D00D( - BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01T10D00D00D( - BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01U20D00D00D( - BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01V20D00D00D( - BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01W20D00D00D( - BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_00z10D00B( - BuiltInId::imageAtomicExchange_Image2D1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01A10D00B( - BuiltInId::imageAtomicExchange_IImage2D1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01B10D00B( - BuiltInId::imageAtomicExchange_UImage2D1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01C20D00B( - BuiltInId::imageAtomicExchange_Image3D1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01D20D00B( - BuiltInId::imageAtomicExchange_IImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01E20D00B( - BuiltInId::imageAtomicExchange_UImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01I20D00B( - BuiltInId::imageAtomicExchange_ImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01J20D00B( - BuiltInId::imageAtomicExchange_IImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01K20D00B( - BuiltInId::imageAtomicExchange_UImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01d00D00B( - BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01e00D00B( - BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01f00D00B( - BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01F20D00B( - BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01G20D00B( - BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01H20D00B( - BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01X20D00B( - BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Y20D00B( - BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Z20D00B( - BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01L00D00B( - BuiltInId::imageAtomicExchange_Image1D1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01M00D00B( - BuiltInId::imageAtomicExchange_IImage1D1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01N00D00B( - BuiltInId::imageAtomicExchange_UImage1D1_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01O10D00B( - BuiltInId::imageAtomicExchange_Image1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01P10D00B( - BuiltInId::imageAtomicExchange_IImage1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01Q10D00B( - BuiltInId::imageAtomicExchange_UImage1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01a10D00B( - BuiltInId::imageAtomicExchange_ImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01b10D00B( - BuiltInId::imageAtomicExchange_IImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01c10D00B( - BuiltInId::imageAtomicExchange_UImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01R10D00D00B( - BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01S10D00D00B( - BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01T10D00D00B( - BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01U20D00D00B( - BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01V20D00D00B( - BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchange_01W20D00D00B( - BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchange, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_00z10D00E00E( - BuiltInId::imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01A10D00E00E( - BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01B10D00E00E( - BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01C20D00E00E( - BuiltInId::imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01D20D00E00E( - BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01E20D00E00E( - BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01I20D00E00E( - BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01J20D00E00E( - BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01K20D00E00E( - BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01d00D00E00E( - BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01e00D00E00E( - BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01f00D00E00E( - BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01F20D00E00E( - BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01G20D00E00E( - BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01H20D00E00E( - BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01X20D00E00E( - BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Y20D00E00E( - BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Z20D00E00E( - BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01L00D00E00E( - BuiltInId::imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01M00D00E00E( - BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01N00D00E00E( - BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01O10D00E00E( - BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01P10D00E00E( - BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Q10D00E00E( - BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01a10D00E00E( - BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01b10D00E00E( - BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01c10D00E00E( - BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01R10D00D00E00E( - BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01S10D00D00E00E( - BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01T10D00D00E00E( - BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01U20D00D00E00E( - BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01V20D00D00E00E( - BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01W20D00D00E00E( - BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_00z10D00D00D( - BuiltInId::imageAtomicCompSwap_Image2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p00z10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01A10D00D00D( - BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01A10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01B10D00D00D( - BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01B10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01C20D00D00D( - BuiltInId::imageAtomicCompSwap_Image3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01C20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01D20D00D00D( - BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01D20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01E20D00D00D( - BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01E20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01I20D00D00D( - BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01I20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01J20D00D00D( - BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01J20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01K20D00D00D( - BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01K20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01d00D00D00D( - BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01d00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01e00D00D00D( - BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01e00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01f00D00D00D( - BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01f00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01F20D00D00D( - BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01F20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01G20D00D00D( - BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01G20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01H20D00D00D( - BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01H20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01X20D00D00D( - BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01X20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Y20D00D00D( - BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Y20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Z20D00D00D( - BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Z20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01L00D00D00D( - BuiltInId::imageAtomicCompSwap_Image1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01L00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01M00D00D00D( - BuiltInId::imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01M00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01N00D00D00D( - BuiltInId::imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01N00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01O10D00D00D( - BuiltInId::imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01O10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01P10D00D00D( - BuiltInId::imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01P10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01Q10D00D00D( - BuiltInId::imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01Q10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01a10D00D00D( - BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01a10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01b10D00D00D( - BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01b10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01c10D00D00D( - BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01c10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01R10D00D00D00D( - BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01R10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01S10D00D00D00D( - BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01S10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01T10D00D00D00D( - BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01T10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01U20D00D00D00D( - BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01U20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01V20D00D00D00D( - BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01V20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwap_01W20D00D00D00D( - BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwap, - TExtension::UNDEFINED, - BuiltInParameters::p01W20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_00z10D00E( - BuiltInId::imageAtomicAddExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01A10D00E( - BuiltInId::imageAtomicAddExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01B10D00E( - BuiltInId::imageAtomicAddExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01C20D00E( - BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01D20D00E( - BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01E20D00E( - BuiltInId::imageAtomicAddExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01I20D00E( - BuiltInId::imageAtomicAddExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01J20D00E( - BuiltInId::imageAtomicAddExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01K20D00E( - BuiltInId::imageAtomicAddExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01d00D00E( - BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01e00D00E( - BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01f00D00E( - BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01F20D00E( - BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01G20D00E( - BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01H20D00E( - BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01X20D00E( - BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Y20D00E( - BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Z20D00E( - BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01L00D00E( - BuiltInId::imageAtomicAddExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01M00D00E( - BuiltInId::imageAtomicAddExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01N00D00E( - BuiltInId::imageAtomicAddExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01O10D00E( - BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01P10D00E( - BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Q10D00E( - BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01a10D00E( - BuiltInId::imageAtomicAddExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01b10D00E( - BuiltInId::imageAtomicAddExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01c10D00E( - BuiltInId::imageAtomicAddExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01R10D00D00E( - BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01S10D00D00E( - BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01T10D00D00E( - BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01U20D00D00E( - BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01V20D00D00E( - BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01W20D00D00E( - BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_00z10D00D( - BuiltInId::imageAtomicAddExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01A10D00D( - BuiltInId::imageAtomicAddExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01B10D00D( - BuiltInId::imageAtomicAddExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01C20D00D( - BuiltInId::imageAtomicAddExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01D20D00D( - BuiltInId::imageAtomicAddExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01E20D00D( - BuiltInId::imageAtomicAddExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01I20D00D( - BuiltInId::imageAtomicAddExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01J20D00D( - BuiltInId::imageAtomicAddExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01K20D00D( - BuiltInId::imageAtomicAddExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01d00D00D( - BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01e00D00D( - BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01f00D00D( - BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01F20D00D( - BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01G20D00D( - BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01H20D00D( - BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01X20D00D( - BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Y20D00D( - BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Z20D00D( - BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01L00D00D( - BuiltInId::imageAtomicAddExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01M00D00D( - BuiltInId::imageAtomicAddExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01N00D00D( - BuiltInId::imageAtomicAddExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01O10D00D( - BuiltInId::imageAtomicAddExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01P10D00D( - BuiltInId::imageAtomicAddExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01Q10D00D( - BuiltInId::imageAtomicAddExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01a10D00D( - BuiltInId::imageAtomicAddExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01b10D00D( - BuiltInId::imageAtomicAddExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01c10D00D( - BuiltInId::imageAtomicAddExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01R10D00D00D( - BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01S10D00D00D( - BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01T10D00D00D( - BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01U20D00D00D( - BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01V20D00D00D( - BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAddExt_01W20D00D00D( - BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAddExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_00z10D00E( - BuiltInId::imageAtomicMinExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01A10D00E( - BuiltInId::imageAtomicMinExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01B10D00E( - BuiltInId::imageAtomicMinExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01C20D00E( - BuiltInId::imageAtomicMinExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01D20D00E( - BuiltInId::imageAtomicMinExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01E20D00E( - BuiltInId::imageAtomicMinExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01I20D00E( - BuiltInId::imageAtomicMinExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01J20D00E( - BuiltInId::imageAtomicMinExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01K20D00E( - BuiltInId::imageAtomicMinExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01d00D00E( - BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01e00D00E( - BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01f00D00E( - BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01F20D00E( - BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01G20D00E( - BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01H20D00E( - BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01X20D00E( - BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Y20D00E( - BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Z20D00E( - BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01L00D00E( - BuiltInId::imageAtomicMinExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01M00D00E( - BuiltInId::imageAtomicMinExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01N00D00E( - BuiltInId::imageAtomicMinExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01O10D00E( - BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01P10D00E( - BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Q10D00E( - BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01a10D00E( - BuiltInId::imageAtomicMinExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01b10D00E( - BuiltInId::imageAtomicMinExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01c10D00E( - BuiltInId::imageAtomicMinExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01R10D00D00E( - BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01S10D00D00E( - BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01T10D00D00E( - BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01U20D00D00E( - BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01V20D00D00E( - BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01W20D00D00E( - BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_00z10D00D( - BuiltInId::imageAtomicMinExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01A10D00D( - BuiltInId::imageAtomicMinExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01B10D00D( - BuiltInId::imageAtomicMinExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01C20D00D( - BuiltInId::imageAtomicMinExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01D20D00D( - BuiltInId::imageAtomicMinExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01E20D00D( - BuiltInId::imageAtomicMinExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01I20D00D( - BuiltInId::imageAtomicMinExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01J20D00D( - BuiltInId::imageAtomicMinExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01K20D00D( - BuiltInId::imageAtomicMinExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01d00D00D( - BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01e00D00D( - BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01f00D00D( - BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01F20D00D( - BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01G20D00D( - BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01H20D00D( - BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01X20D00D( - BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Y20D00D( - BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Z20D00D( - BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01L00D00D( - BuiltInId::imageAtomicMinExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01M00D00D( - BuiltInId::imageAtomicMinExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01N00D00D( - BuiltInId::imageAtomicMinExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01O10D00D( - BuiltInId::imageAtomicMinExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01P10D00D( - BuiltInId::imageAtomicMinExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01Q10D00D( - BuiltInId::imageAtomicMinExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01a10D00D( - BuiltInId::imageAtomicMinExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01b10D00D( - BuiltInId::imageAtomicMinExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01c10D00D( - BuiltInId::imageAtomicMinExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01R10D00D00D( - BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01S10D00D00D( - BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01T10D00D00D( - BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01U20D00D00D( - BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01V20D00D00D( - BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMinExt_01W20D00D00D( - BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMinExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_00z10D00E( - BuiltInId::imageAtomicMaxExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01A10D00E( - BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01B10D00E( - BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01C20D00E( - BuiltInId::imageAtomicMaxExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01D20D00E( - BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01E20D00E( - BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01I20D00E( - BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01J20D00E( - BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01K20D00E( - BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01d00D00E( - BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01e00D00E( - BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01f00D00E( - BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01F20D00E( - BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01G20D00E( - BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01H20D00E( - BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01X20D00E( - BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Y20D00E( - BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Z20D00E( - BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01L00D00E( - BuiltInId::imageAtomicMaxExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01M00D00E( - BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01N00D00E( - BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01O10D00E( - BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01P10D00E( - BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Q10D00E( - BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01a10D00E( - BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01b10D00E( - BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01c10D00E( - BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01R10D00D00E( - BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01S10D00D00E( - BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01T10D00D00E( - BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01U20D00D00E( - BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01V20D00D00E( - BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01W20D00D00E( - BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_00z10D00D( - BuiltInId::imageAtomicMaxExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01A10D00D( - BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01B10D00D( - BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01C20D00D( - BuiltInId::imageAtomicMaxExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01D20D00D( - BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01E20D00D( - BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01I20D00D( - BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01J20D00D( - BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01K20D00D( - BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01d00D00D( - BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01e00D00D( - BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01f00D00D( - BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01F20D00D( - BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01G20D00D( - BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01H20D00D( - BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01X20D00D( - BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Y20D00D( - BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Z20D00D( - BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01L00D00D( - BuiltInId::imageAtomicMaxExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01M00D00D( - BuiltInId::imageAtomicMaxExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01N00D00D( - BuiltInId::imageAtomicMaxExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01O10D00D( - BuiltInId::imageAtomicMaxExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01P10D00D( - BuiltInId::imageAtomicMaxExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01Q10D00D( - BuiltInId::imageAtomicMaxExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01a10D00D( - BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01b10D00D( - BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01c10D00D( - BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01R10D00D00D( - BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01S10D00D00D( - BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01T10D00D00D( - BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01U20D00D00D( - BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01V20D00D00D( - BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicMaxExt_01W20D00D00D( - BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicMaxExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_00z10D00E( - BuiltInId::imageAtomicAndExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01A10D00E( - BuiltInId::imageAtomicAndExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01B10D00E( - BuiltInId::imageAtomicAndExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01C20D00E( - BuiltInId::imageAtomicAndExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01D20D00E( - BuiltInId::imageAtomicAndExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01E20D00E( - BuiltInId::imageAtomicAndExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01I20D00E( - BuiltInId::imageAtomicAndExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01J20D00E( - BuiltInId::imageAtomicAndExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01K20D00E( - BuiltInId::imageAtomicAndExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01d00D00E( - BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01e00D00E( - BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01f00D00E( - BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01F20D00E( - BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01G20D00E( - BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01H20D00E( - BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01X20D00E( - BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Y20D00E( - BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Z20D00E( - BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01L00D00E( - BuiltInId::imageAtomicAndExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01M00D00E( - BuiltInId::imageAtomicAndExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01N00D00E( - BuiltInId::imageAtomicAndExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01O10D00E( - BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01P10D00E( - BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Q10D00E( - BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01a10D00E( - BuiltInId::imageAtomicAndExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01b10D00E( - BuiltInId::imageAtomicAndExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01c10D00E( - BuiltInId::imageAtomicAndExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01R10D00D00E( - BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01S10D00D00E( - BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01T10D00D00E( - BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01U20D00D00E( - BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01V20D00D00E( - BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01W20D00D00E( - BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_00z10D00D( - BuiltInId::imageAtomicAndExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01A10D00D( - BuiltInId::imageAtomicAndExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01B10D00D( - BuiltInId::imageAtomicAndExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01C20D00D( - BuiltInId::imageAtomicAndExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01D20D00D( - BuiltInId::imageAtomicAndExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01E20D00D( - BuiltInId::imageAtomicAndExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01I20D00D( - BuiltInId::imageAtomicAndExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01J20D00D( - BuiltInId::imageAtomicAndExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01K20D00D( - BuiltInId::imageAtomicAndExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01d00D00D( - BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01e00D00D( - BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01f00D00D( - BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01F20D00D( - BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01G20D00D( - BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01H20D00D( - BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01X20D00D( - BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Y20D00D( - BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Z20D00D( - BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01L00D00D( - BuiltInId::imageAtomicAndExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01M00D00D( - BuiltInId::imageAtomicAndExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01N00D00D( - BuiltInId::imageAtomicAndExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01O10D00D( - BuiltInId::imageAtomicAndExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01P10D00D( - BuiltInId::imageAtomicAndExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01Q10D00D( - BuiltInId::imageAtomicAndExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01a10D00D( - BuiltInId::imageAtomicAndExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01b10D00D( - BuiltInId::imageAtomicAndExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01c10D00D( - BuiltInId::imageAtomicAndExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01R10D00D00D( - BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01S10D00D00D( - BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01T10D00D00D( - BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01U20D00D00D( - BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01V20D00D00D( - BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicAndExt_01W20D00D00D( - BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicAndExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_00z10D00E( - BuiltInId::imageAtomicOrExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01A10D00E( - BuiltInId::imageAtomicOrExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01B10D00E( - BuiltInId::imageAtomicOrExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01C20D00E( - BuiltInId::imageAtomicOrExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01D20D00E( - BuiltInId::imageAtomicOrExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01E20D00E( - BuiltInId::imageAtomicOrExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01I20D00E( - BuiltInId::imageAtomicOrExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01J20D00E( - BuiltInId::imageAtomicOrExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01K20D00E( - BuiltInId::imageAtomicOrExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01d00D00E( - BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01e00D00E( - BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01f00D00E( - BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01F20D00E( - BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01G20D00E( - BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01H20D00E( - BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01X20D00E( - BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Y20D00E( - BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Z20D00E( - BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01L00D00E( - BuiltInId::imageAtomicOrExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01M00D00E( - BuiltInId::imageAtomicOrExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01N00D00E( - BuiltInId::imageAtomicOrExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01O10D00E( - BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01P10D00E( - BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Q10D00E( - BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01a10D00E( - BuiltInId::imageAtomicOrExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01b10D00E( - BuiltInId::imageAtomicOrExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01c10D00E( - BuiltInId::imageAtomicOrExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01R10D00D00E( - BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01S10D00D00E( - BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01T10D00D00E( - BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01U20D00D00E( - BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01V20D00D00E( - BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01W20D00D00E( - BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_00z10D00D( - BuiltInId::imageAtomicOrExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01A10D00D( - BuiltInId::imageAtomicOrExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01B10D00D( - BuiltInId::imageAtomicOrExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01C20D00D( - BuiltInId::imageAtomicOrExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01D20D00D( - BuiltInId::imageAtomicOrExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01E20D00D( - BuiltInId::imageAtomicOrExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01I20D00D( - BuiltInId::imageAtomicOrExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01J20D00D( - BuiltInId::imageAtomicOrExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01K20D00D( - BuiltInId::imageAtomicOrExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01d00D00D( - BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01e00D00D( - BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01f00D00D( - BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01F20D00D( - BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01G20D00D( - BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01H20D00D( - BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01X20D00D( - BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Y20D00D( - BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Z20D00D( - BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01L00D00D( - BuiltInId::imageAtomicOrExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01M00D00D( - BuiltInId::imageAtomicOrExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01N00D00D( - BuiltInId::imageAtomicOrExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01O10D00D( - BuiltInId::imageAtomicOrExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01P10D00D( - BuiltInId::imageAtomicOrExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01Q10D00D( - BuiltInId::imageAtomicOrExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01a10D00D( - BuiltInId::imageAtomicOrExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01b10D00D( - BuiltInId::imageAtomicOrExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01c10D00D( - BuiltInId::imageAtomicOrExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01R10D00D00D( - BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01S10D00D00D( - BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01T10D00D00D( - BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01U20D00D00D( - BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01V20D00D00D( - BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicOrExt_01W20D00D00D( - BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicOrExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_00z10D00E( - BuiltInId::imageAtomicXorExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01A10D00E( - BuiltInId::imageAtomicXorExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01B10D00E( - BuiltInId::imageAtomicXorExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01C20D00E( - BuiltInId::imageAtomicXorExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01D20D00E( - BuiltInId::imageAtomicXorExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01E20D00E( - BuiltInId::imageAtomicXorExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01I20D00E( - BuiltInId::imageAtomicXorExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01J20D00E( - BuiltInId::imageAtomicXorExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01K20D00E( - BuiltInId::imageAtomicXorExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01d00D00E( - BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01e00D00E( - BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01f00D00E( - BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01F20D00E( - BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01G20D00E( - BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01H20D00E( - BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01X20D00E( - BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Y20D00E( - BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Z20D00E( - BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01L00D00E( - BuiltInId::imageAtomicXorExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01M00D00E( - BuiltInId::imageAtomicXorExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01N00D00E( - BuiltInId::imageAtomicXorExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01O10D00E( - BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01P10D00E( - BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Q10D00E( - BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01a10D00E( - BuiltInId::imageAtomicXorExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01b10D00E( - BuiltInId::imageAtomicXorExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01c10D00E( - BuiltInId::imageAtomicXorExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01R10D00D00E( - BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01S10D00D00E( - BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01T10D00D00E( - BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01U20D00D00E( - BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01V20D00D00E( - BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01W20D00D00E( - BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_00z10D00D( - BuiltInId::imageAtomicXorExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01A10D00D( - BuiltInId::imageAtomicXorExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01B10D00D( - BuiltInId::imageAtomicXorExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01C20D00D( - BuiltInId::imageAtomicXorExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01D20D00D( - BuiltInId::imageAtomicXorExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01E20D00D( - BuiltInId::imageAtomicXorExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01I20D00D( - BuiltInId::imageAtomicXorExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01J20D00D( - BuiltInId::imageAtomicXorExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01K20D00D( - BuiltInId::imageAtomicXorExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01d00D00D( - BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01e00D00D( - BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01f00D00D( - BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01F20D00D( - BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01G20D00D( - BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01H20D00D( - BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01X20D00D( - BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Y20D00D( - BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Z20D00D( - BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01L00D00D( - BuiltInId::imageAtomicXorExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01M00D00D( - BuiltInId::imageAtomicXorExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01N00D00D( - BuiltInId::imageAtomicXorExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01O10D00D( - BuiltInId::imageAtomicXorExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01P10D00D( - BuiltInId::imageAtomicXorExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01Q10D00D( - BuiltInId::imageAtomicXorExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01a10D00D( - BuiltInId::imageAtomicXorExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01b10D00D( - BuiltInId::imageAtomicXorExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01c10D00D( - BuiltInId::imageAtomicXorExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01R10D00D00D( - BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01S10D00D00D( - BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01T10D00D00D( - BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01U20D00D00D( - BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01V20D00D00D( - BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicXorExt_01W20D00D00D( - BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicXorExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_00z10D00E( - BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00E( - BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00E( - BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01C20D00E( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00E( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00E( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00E( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00E( - BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00E( - BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00E( - BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00E( - BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01f00D00E( - BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00E( - BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00E( - BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00E( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01X20D00E( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00E( - BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00E( - BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00E( - BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00E( - BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00E( - BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00E( - BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01P10D00E( - BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00E( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01a10D00E( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00E( - BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00E( - BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00E( - BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00E( - BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00E( - BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00E( - BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00E( - BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00E( - BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_00z10D00D( - BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00D( - BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00D( - BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01C20D00D( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00D( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00D( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00D( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00D( - BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00D( - BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00D( - BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00D( - BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01f00D00D( - BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00D( - BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00D( - BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00D( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01X20D00D( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00D( - BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00D( - BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00D( - BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00D( - BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00D( - BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00D( - BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01P10D00D( - BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00D( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01a10D00D( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00D( - BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00D( - BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00D( - BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00D( - BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00D( - BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00D( - BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00D( - BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00D( - BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_00z10D00B( - BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01A10D00B( - BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01B10D00B( - BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01C20D00B( - BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01D20D00B( - BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01E20D00B( - BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01I20D00B( - BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01J20D00B( - BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01K20D00B( - BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01d00D00B( - BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01e00D00B( - BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01f00D00B( - BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01F20D00B( - BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01G20D00B( - BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01H20D00B( - BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01X20D00B( - BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Y20D00B( - BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Z20D00B( - BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01L00D00B( - BuiltInId::imageAtomicExchangeExt_Image1D1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01M00D00B( - BuiltInId::imageAtomicExchangeExt_IImage1D1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01N00D00B( - BuiltInId::imageAtomicExchangeExt_UImage1D1_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01O10D00B( - BuiltInId::imageAtomicExchangeExt_Image1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01P10D00B( - BuiltInId::imageAtomicExchangeExt_IImage1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01Q10D00B( - BuiltInId::imageAtomicExchangeExt_UImage1DArray1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01a10D00B( - BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01b10D00B( - BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01c10D00B( - BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00B, - 3, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01R10D00D00B( - BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01S10D00D00B( - BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01T10D00D00B( - BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01U20D00D00B( - BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01V20D00D00B( - BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicExchangeExt_01W20D00D00B( - BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1, - BuiltInName::imageAtomicExchangeExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00B, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_00z10D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01A10D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01B10D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01C20D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01D20D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01E20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01I20D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01J20D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01K20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01d00D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01e00D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01f00D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01F20D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01G20D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01H20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01X20D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Y20D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Z20D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01L00D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01M00D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01N00D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01O10D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01P10D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Q10D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01a10D00E00E( - BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01b10D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01c10D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00E00E, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01R10D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01S10D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01T10D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01U20D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01V20D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01W20D00D00E00E( - BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00E00E, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_00z10D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p00z10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01A10D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01A10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01B10D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01B10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01C20D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01C20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01D20D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01D20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01E20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01E20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01I20D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01I20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01J20D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01J20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01K20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01K20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01d00D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01d00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01e00D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01e00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01f00D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01f00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01F20D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01F20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01G20D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01G20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01H20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01H20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01X20D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01X20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Y20D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Y20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Z20D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Z20D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01L00D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01L00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01M00D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01M00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01N00D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01N00D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01O10D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01O10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01P10D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01P10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01Q10D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01Q10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01a10D00D00D( - BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01a10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01b10D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01b10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01c10D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01c10D00D00D, - 4, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01R10D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01R10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01S10D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01S10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01T10D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01T10D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01U20D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01U20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01V20D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01V20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction imageAtomicCompSwapExt_01W20D00D00D00D( - BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1, - BuiltInName::imageAtomicCompSwapExt, - TExtension::OES_shader_image_atomic, - BuiltInParameters::p01W20D00D00D00D, - 5, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise1_00B(BuiltInId::noise1_Float1, - BuiltInName::noise1, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise1_10B(BuiltInId::noise1_Float2, - BuiltInName::noise1, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise1_20B(BuiltInId::noise1_Float3, - BuiltInName::noise1, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise1_30B(BuiltInId::noise1_Float4, - BuiltInName::noise1, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise2_00B(BuiltInId::noise2_Float1, - BuiltInName::noise2, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise2_10B(BuiltInId::noise2_Float2, - BuiltInName::noise2, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise2_20B(BuiltInId::noise2_Float3, - BuiltInName::noise2, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise2_30B(BuiltInId::noise2_Float4, - BuiltInName::noise2, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise3_00B(BuiltInId::noise3_Float1, - BuiltInName::noise3, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise3_10B(BuiltInId::noise3_Float2, - BuiltInName::noise3, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise3_20B(BuiltInId::noise3_Float3, - BuiltInName::noise3, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise3_30B(BuiltInId::noise3_Float4, - BuiltInName::noise3, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise4_00B(BuiltInId::noise4_Float1, - BuiltInName::noise4, - TExtension::UNDEFINED, - BuiltInParameters::p00B00B20B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise4_10B(BuiltInId::noise4_Float2, - BuiltInName::noise4, - TExtension::UNDEFINED, - BuiltInParameters::p10B00B00B, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise4_20B(BuiltInId::noise4_Float3, - BuiltInName::noise4, - TExtension::UNDEFINED, - BuiltInParameters::p20B20D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction noise4_30B(BuiltInId::noise4_Float4, - BuiltInName::noise4, - TExtension::UNDEFINED, - BuiltInParameters::p30B30D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier, - BuiltInName::memoryBarrier, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpMemoryBarrier, - false); -constexpr const TFunction memoryBarrierAtomicCounter_( - BuiltInId::memoryBarrierAtomicCounter, - BuiltInName::memoryBarrierAtomicCounter, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpMemoryBarrierAtomicCounter, - false); -constexpr const TFunction memoryBarrierBuffer_( - BuiltInId::memoryBarrierBuffer, - BuiltInName::memoryBarrierBuffer, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpMemoryBarrierBuffer, - false); -constexpr const TFunction memoryBarrierImage_( - BuiltInId::memoryBarrierImage, - BuiltInName::memoryBarrierImage, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpMemoryBarrierImage, - false); -constexpr const TFunction barrier_(BuiltInId::barrier, - BuiltInName::barrier, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpBarrier, - false); -constexpr const TFunction memoryBarrierShared_( - BuiltInId::memoryBarrierShared, - BuiltInName::memoryBarrierShared, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpMemoryBarrierShared, - false); -constexpr const TFunction groupMemoryBarrier_( - BuiltInId::groupMemoryBarrier, - BuiltInName::groupMemoryBarrier, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpGroupMemoryBarrier, - false); -constexpr const TFunction barrierES3_2_(BuiltInId::barrierES3_2, - BuiltInName::barrierES3_2, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpBarrier, - false); -constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex, - BuiltInName::EmitVertex, - TExtension::EXT_geometry_shader, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpEmitVertex, - false); -constexpr const TFunction EmitVertexES3_2_( - BuiltInId::EmitVertexES3_2, - BuiltInName::EmitVertexES3_2, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpEmitVertex, - false); -constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive, - BuiltInName::EndPrimitive, - TExtension::EXT_geometry_shader, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpEndPrimitive, - false); -constexpr const TFunction EndPrimitiveES3_2_( - BuiltInId::EndPrimitiveES3_2, - BuiltInName::EndPrimitiveES3_2, - TExtension::UNDEFINED, - BuiltInParameters::empty, - 0, - StaticType::Get(), - EOpEndPrimitive, - false); -constexpr const TFunction EmitStreamVertex_00D( - BuiltInId::EmitStreamVertex_Int1, - BuiltInName::EmitStreamVertex, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction EndStreamPrimitive_00D( - BuiltInId::EndStreamPrimitive_Int1, - BuiltInName::EndStreamPrimitive, - TExtension::UNDEFINED, - BuiltInParameters::p00D00D00D00D, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01g( - BuiltInId::subpassLoad_SubpassInput1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01g, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01h(BuiltInId::subpassLoad_ISubpassInput1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01h, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01i(BuiltInId::subpassLoad_USubpassInput1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01i, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01j00D( - BuiltInId::subpassLoad_SubpassInputMS1_Int1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01j00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01k00D( - BuiltInId::subpassLoad_ISubpassInputMS1_Int1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01k00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction subpassLoad_01l00D( - BuiltInId::subpassLoad_USubpassInputMS1_Int1, - BuiltInName::subpassLoad, - TExtension::UNDEFINED, - BuiltInParameters::p01l00D, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction anyInvocation_00F( - BuiltInId::anyInvocation_Bool1, - BuiltInName::anyInvocation, - TExtension::UNDEFINED, - BuiltInParameters::p00F00F00F, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction allInvocations_00F( - BuiltInId::allInvocations_Bool1, - BuiltInName::allInvocations, - TExtension::UNDEFINED, - BuiltInParameters::p00F00F00F, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction allInvocationsEqual_00F( - BuiltInId::allInvocationsEqual_Bool1, - BuiltInName::allInvocationsEqual, - TExtension::UNDEFINED, - BuiltInParameters::p00F00F00F, - 1, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction textureVideoWEBGL_00y10B( - BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2, - BuiltInName::textureVideoWEBGL, - TExtension::UNDEFINED, - BuiltInParameters::p00y10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); -constexpr const TFunction texture_00y10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2, - BuiltInName::texture, - TExtension::UNDEFINED, - BuiltInParameters::p00y10B, - 2, - StaticType::Get(), - EOpCallBuiltInFunction, - false); - -} // namespace Func - -namespace BuiltInArray -{ -using namespace Func; -using Rule = SymbolRule; - -// Rules used to initialize the mangled name array. -constexpr SymbolRule kRules[] = { - Rule::Get(&radians_00B), - Rule::Get(&radians_00B), - Rule::Get(&radians_10B), - Rule::Get(&radians_10B), - Rule::Get(&radians_20B), - Rule::Get(&radians_20B), - Rule::Get(&radians_30B), - Rule::Get(&radians_30B), - Rule::Get(°rees_00B), - Rule::Get(°rees_00B), - Rule::Get(°rees_10B), - Rule::Get(°rees_10B), - Rule::Get(°rees_20B), - Rule::Get(°rees_20B), - Rule::Get(°rees_30B), - Rule::Get(°rees_30B), - Rule::Get(&sin_00B), - Rule::Get(&sin_00B), - Rule::Get(&sin_10B), - Rule::Get(&sin_10B), - Rule::Get(&sin_20B), - Rule::Get(&sin_20B), - Rule::Get(&sin_30B), - Rule::Get(&sin_30B), - Rule::Get(&cos_00B), - Rule::Get(&cos_00B), - Rule::Get(&cos_10B), - Rule::Get(&cos_10B), - Rule::Get(&cos_20B), - Rule::Get(&cos_20B), - Rule::Get(&cos_30B), - Rule::Get(&cos_30B), - Rule::Get(&tan_00B), - Rule::Get(&tan_00B), - Rule::Get(&tan_10B), - Rule::Get(&tan_10B), - Rule::Get(&tan_20B), - Rule::Get(&tan_20B), - Rule::Get(&tan_30B), - Rule::Get(&tan_30B), - Rule::Get(&asin_00B), - Rule::Get(&asin_00B), - Rule::Get(&asin_10B), - Rule::Get(&asin_10B), - Rule::Get(&asin_20B), - Rule::Get(&asin_20B), - Rule::Get(&asin_30B), - Rule::Get(&asin_30B), - Rule::Get(&acos_00B), - Rule::Get(&acos_00B), - Rule::Get(&acos_10B), - Rule::Get(&acos_10B), - Rule::Get(&acos_20B), - Rule::Get(&acos_20B), - Rule::Get(&acos_30B), - Rule::Get(&acos_30B), - Rule::Get(&atan_00B00B), - Rule::Get(&atan_00B00B), - Rule::Get(&atan_10B10B), - Rule::Get(&atan_10B10B), - Rule::Get(&atan_20B20B), - Rule::Get(&atan_20B20B), - Rule::Get(&atan_30B30B), - Rule::Get(&atan_30B30B), - Rule::Get(&atan_00B), - Rule::Get(&atan_00B), - Rule::Get(&atan_10B), - Rule::Get(&atan_10B), - Rule::Get(&atan_20B), - Rule::Get(&atan_20B), - Rule::Get(&atan_30B), - Rule::Get(&atan_30B), - Rule::Get(&sinh_00B), - Rule::Get(&sinh_00B), - Rule::Get(&sinh_10B), - Rule::Get(&sinh_10B), - Rule::Get(&sinh_20B), - Rule::Get(&sinh_20B), - Rule::Get(&sinh_30B), - Rule::Get(&sinh_30B), - Rule::Get(&cosh_00B), - Rule::Get(&cosh_00B), - Rule::Get(&cosh_10B), - Rule::Get(&cosh_10B), - Rule::Get(&cosh_20B), - Rule::Get(&cosh_20B), - Rule::Get(&cosh_30B), - Rule::Get(&cosh_30B), - Rule::Get(&tanh_00B), - Rule::Get(&tanh_00B), - Rule::Get(&tanh_10B), - Rule::Get(&tanh_10B), - Rule::Get(&tanh_20B), - Rule::Get(&tanh_20B), - Rule::Get(&tanh_30B), - Rule::Get(&tanh_30B), - Rule::Get(&asinh_00B), - Rule::Get(&asinh_00B), - Rule::Get(&asinh_10B), - Rule::Get(&asinh_10B), - Rule::Get(&asinh_20B), - Rule::Get(&asinh_20B), - Rule::Get(&asinh_30B), - Rule::Get(&asinh_30B), - Rule::Get(&acosh_00B), - Rule::Get(&acosh_00B), - Rule::Get(&acosh_10B), - Rule::Get(&acosh_10B), - Rule::Get(&acosh_20B), - Rule::Get(&acosh_20B), - Rule::Get(&acosh_30B), - Rule::Get(&acosh_30B), - Rule::Get(&atanh_00B), - Rule::Get(&atanh_00B), - Rule::Get(&atanh_10B), - Rule::Get(&atanh_10B), - Rule::Get(&atanh_20B), - Rule::Get(&atanh_20B), - Rule::Get(&atanh_30B), - Rule::Get(&atanh_30B), - Rule::Get(&pow_00B00B), - Rule::Get(&pow_00B00B), - Rule::Get(&pow_10B10B), - Rule::Get(&pow_10B10B), - Rule::Get(&pow_20B20B), - Rule::Get(&pow_20B20B), - Rule::Get(&pow_30B30B), - Rule::Get(&pow_30B30B), - Rule::Get(&exp_00B), - Rule::Get(&exp_00B), - Rule::Get(&exp_10B), - Rule::Get(&exp_10B), - Rule::Get(&exp_20B), - Rule::Get(&exp_20B), - Rule::Get(&exp_30B), - Rule::Get(&exp_30B), - Rule::Get(&log_00B), - Rule::Get(&log_00B), - Rule::Get(&log_10B), - Rule::Get(&log_10B), - Rule::Get(&log_20B), - Rule::Get(&log_20B), - Rule::Get(&log_30B), - Rule::Get(&log_30B), - Rule::Get(&exp2_00B), - Rule::Get(&exp2_00B), - Rule::Get(&exp2_10B), - Rule::Get(&exp2_10B), - Rule::Get(&exp2_20B), - Rule::Get(&exp2_20B), - Rule::Get(&exp2_30B), - Rule::Get(&exp2_30B), - Rule::Get(&log2_00B), - Rule::Get(&log2_00B), - Rule::Get(&log2_10B), - Rule::Get(&log2_10B), - Rule::Get(&log2_20B), - Rule::Get(&log2_20B), - Rule::Get(&log2_30B), - Rule::Get(&log2_30B), - Rule::Get(&sqrt_00B), - Rule::Get(&sqrt_00B), - Rule::Get(&sqrt_10B), - Rule::Get(&sqrt_10B), - Rule::Get(&sqrt_20B), - Rule::Get(&sqrt_20B), - Rule::Get(&sqrt_30B), - Rule::Get(&sqrt_30B), - Rule::Get(&sqrt_00C), - Rule::Get(&sqrt_10C), - Rule::Get(&sqrt_20C), - Rule::Get(&sqrt_30C), - Rule::Get(&inversesqrt_00B), - Rule::Get(&inversesqrt_00B), - Rule::Get(&inversesqrt_10B), - Rule::Get(&inversesqrt_10B), - Rule::Get(&inversesqrt_20B), - Rule::Get(&inversesqrt_20B), - Rule::Get(&inversesqrt_30B), - Rule::Get(&inversesqrt_30B), - Rule::Get(&inversesqrt_00C), - Rule::Get(&inversesqrt_10C), - Rule::Get(&inversesqrt_20C), - Rule::Get(&inversesqrt_30C), - Rule::Get(&abs_00B), - Rule::Get(&abs_00B), - Rule::Get(&abs_10B), - Rule::Get(&abs_10B), - Rule::Get(&abs_20B), - Rule::Get(&abs_20B), - Rule::Get(&abs_30B), - Rule::Get(&abs_30B), - Rule::Get(&abs_00D), - Rule::Get(&abs_00D), - Rule::Get(&abs_10D), - Rule::Get(&abs_10D), - Rule::Get(&abs_20D), - Rule::Get(&abs_20D), - Rule::Get(&abs_30D), - Rule::Get(&abs_30D), - Rule::Get(&abs_00C), - Rule::Get(&abs_10C), - Rule::Get(&abs_20C), - Rule::Get(&abs_30C), - Rule::Get(&sign_00B), - Rule::Get(&sign_00B), - Rule::Get(&sign_10B), - Rule::Get(&sign_10B), - Rule::Get(&sign_20B), - Rule::Get(&sign_20B), - Rule::Get(&sign_30B), - Rule::Get(&sign_30B), - Rule::Get(&sign_00D), - Rule::Get(&sign_00D), - Rule::Get(&sign_10D), - Rule::Get(&sign_10D), - Rule::Get(&sign_20D), - Rule::Get(&sign_20D), - Rule::Get(&sign_30D), - Rule::Get(&sign_30D), - Rule::Get(&sign_00C), - Rule::Get(&sign_10C), - Rule::Get(&sign_20C), - Rule::Get(&sign_30C), - Rule::Get(&floor_00B), - Rule::Get(&floor_00B), - Rule::Get(&floor_10B), - Rule::Get(&floor_10B), - Rule::Get(&floor_20B), - Rule::Get(&floor_20B), - Rule::Get(&floor_30B), - Rule::Get(&floor_30B), - Rule::Get(&floor_00C), - Rule::Get(&floor_10C), - Rule::Get(&floor_20C), - Rule::Get(&floor_30C), - Rule::Get(&trunc_00B), - Rule::Get(&trunc_00B), - Rule::Get(&trunc_10B), - Rule::Get(&trunc_10B), - Rule::Get(&trunc_20B), - Rule::Get(&trunc_20B), - Rule::Get(&trunc_30B), - Rule::Get(&trunc_30B), - Rule::Get(&trunc_00C), - Rule::Get(&trunc_10C), - Rule::Get(&trunc_20C), - Rule::Get(&trunc_30C), - Rule::Get(&round_00B), - Rule::Get(&round_00B), - Rule::Get(&round_10B), - Rule::Get(&round_10B), - Rule::Get(&round_20B), - Rule::Get(&round_20B), - Rule::Get(&round_30B), - Rule::Get(&round_30B), - Rule::Get(&round_00C), - Rule::Get(&round_10C), - Rule::Get(&round_20C), - Rule::Get(&round_30C), - Rule::Get(&roundEven_00B), - Rule::Get(&roundEven_00B), - Rule::Get(&roundEven_10B), - Rule::Get(&roundEven_10B), - Rule::Get(&roundEven_20B), - Rule::Get(&roundEven_20B), - Rule::Get(&roundEven_30B), - Rule::Get(&roundEven_30B), - Rule::Get(&roundEven_00C), - Rule::Get(&roundEven_10C), - Rule::Get(&roundEven_20C), - Rule::Get(&roundEven_30C), - Rule::Get(&ceil_00B), - Rule::Get(&ceil_00B), - Rule::Get(&ceil_10B), - Rule::Get(&ceil_10B), - Rule::Get(&ceil_20B), - Rule::Get(&ceil_20B), - Rule::Get(&ceil_30B), - Rule::Get(&ceil_30B), - Rule::Get(&ceil_00C), - Rule::Get(&ceil_10C), - Rule::Get(&ceil_20C), - Rule::Get(&ceil_30C), - Rule::Get(&fract_00B), - Rule::Get(&fract_00B), - Rule::Get(&fract_10B), - Rule::Get(&fract_10B), - Rule::Get(&fract_20B), - Rule::Get(&fract_20B), - Rule::Get(&fract_30B), - Rule::Get(&fract_30B), - Rule::Get(&fract_00C), - Rule::Get(&fract_10C), - Rule::Get(&fract_20C), - Rule::Get(&fract_30C), - Rule::Get(&mod_00B00B), - Rule::Get(&mod_00B00B), - Rule::Get(&mod_10B00B), - Rule::Get(&mod_10B00B), - Rule::Get(&mod_20B00B), - Rule::Get(&mod_20B00B), - Rule::Get(&mod_30B00B), - Rule::Get(&mod_30B00B), - Rule::Get(&mod_10B10B), - Rule::Get(&mod_10B10B), - Rule::Get(&mod_20B20B), - Rule::Get(&mod_20B20B), - Rule::Get(&mod_30B30B), - Rule::Get(&mod_30B30B), - Rule::Get(&mod_00C00C), - Rule::Get(&mod_10C00C), - Rule::Get(&mod_20C00C), - Rule::Get(&mod_30C00C), - Rule::Get(&mod_10C10C), - Rule::Get(&mod_20C20C), - Rule::Get(&mod_30C30C), - Rule::Get(&min_00B00B), - Rule::Get(&min_00B00B), - Rule::Get(&min_10B00B), - Rule::Get(&min_10B00B), - Rule::Get(&min_20B00B), - Rule::Get(&min_20B00B), - Rule::Get(&min_30B00B), - Rule::Get(&min_30B00B), - Rule::Get(&min_10B10B), - Rule::Get(&min_10B10B), - Rule::Get(&min_20B20B), - Rule::Get(&min_20B20B), - Rule::Get(&min_30B30B), - Rule::Get(&min_30B30B), - Rule::Get(&min_00C00C), - Rule::Get(&min_10C10C), - Rule::Get(&min_20C20C), - Rule::Get(&min_30C30C), - Rule::Get(&min_10C00C), - Rule::Get(&min_20C00C), - Rule::Get(&min_30C00C), - Rule::Get(&min_00D00D), - Rule::Get(&min_00D00D), - Rule::Get(&min_10D10D), - Rule::Get(&min_10D10D), - Rule::Get(&min_20D20D), - Rule::Get(&min_20D20D), - Rule::Get(&min_30D30D), - Rule::Get(&min_30D30D), - Rule::Get(&min_10D00D), - Rule::Get(&min_10D00D), - Rule::Get(&min_20D00D), - Rule::Get(&min_20D00D), - Rule::Get(&min_30D00D), - Rule::Get(&min_30D00D), - Rule::Get(&min_00E00E), - Rule::Get(&min_00E00E), - Rule::Get(&min_10E10E), - Rule::Get(&min_10E10E), - Rule::Get(&min_20E20E), - Rule::Get(&min_20E20E), - Rule::Get(&min_30E30E), - Rule::Get(&min_30E30E), - Rule::Get(&min_10E00E), - Rule::Get(&min_10E00E), - Rule::Get(&min_20E00E), - Rule::Get(&min_20E00E), - Rule::Get(&min_30E00E), - Rule::Get(&min_30E00E), - Rule::Get(&max_00B00B), - Rule::Get(&max_00B00B), - Rule::Get(&max_10B00B), - Rule::Get(&max_10B00B), - Rule::Get(&max_20B00B), - Rule::Get(&max_20B00B), - Rule::Get(&max_30B00B), - Rule::Get(&max_30B00B), - Rule::Get(&max_10B10B), - Rule::Get(&max_10B10B), - Rule::Get(&max_20B20B), - Rule::Get(&max_20B20B), - Rule::Get(&max_30B30B), - Rule::Get(&max_30B30B), - Rule::Get(&max_00C00C), - Rule::Get(&max_10C10C), - Rule::Get(&max_20C20C), - Rule::Get(&max_30C30C), - Rule::Get(&max_10C00C), - Rule::Get(&max_20C00C), - Rule::Get(&max_30C00C), - Rule::Get(&max_00D00D), - Rule::Get(&max_00D00D), - Rule::Get(&max_10D10D), - Rule::Get(&max_10D10D), - Rule::Get(&max_20D20D), - Rule::Get(&max_20D20D), - Rule::Get(&max_30D30D), - Rule::Get(&max_30D30D), - Rule::Get(&max_10D00D), - Rule::Get(&max_10D00D), - Rule::Get(&max_20D00D), - Rule::Get(&max_20D00D), - Rule::Get(&max_30D00D), - Rule::Get(&max_30D00D), - Rule::Get(&max_00E00E), - Rule::Get(&max_00E00E), - Rule::Get(&max_10E10E), - Rule::Get(&max_10E10E), - Rule::Get(&max_20E20E), - Rule::Get(&max_20E20E), - Rule::Get(&max_30E30E), - Rule::Get(&max_30E30E), - Rule::Get(&max_10E00E), - Rule::Get(&max_10E00E), - Rule::Get(&max_20E00E), - Rule::Get(&max_20E00E), - Rule::Get(&max_30E00E), - Rule::Get(&max_30E00E), - Rule::Get(&clamp_00B00B00B), - Rule::Get(&clamp_00B00B00B), - Rule::Get(&clamp_10B00B00B), - Rule::Get(&clamp_10B00B00B), - Rule::Get(&clamp_20B00B00B), - Rule::Get(&clamp_20B00B00B), - Rule::Get(&clamp_30B00B00B), - Rule::Get(&clamp_30B00B00B), - Rule::Get(&clamp_10B10B10B), - Rule::Get(&clamp_10B10B10B), - Rule::Get(&clamp_20B20B20B), - Rule::Get(&clamp_20B20B20B), - Rule::Get(&clamp_30B30B30B), - Rule::Get(&clamp_30B30B30B), - Rule::Get(&clamp_00C00C00C), - Rule::Get(&clamp_10C00C00C), - Rule::Get(&clamp_20C00C00C), - Rule::Get(&clamp_30C00C00C), - Rule::Get(&clamp_10C10C10C), - Rule::Get(&clamp_20C20C20C), - Rule::Get(&clamp_30C30C30C), - Rule::Get(&clamp_00D00D00D), - Rule::Get(&clamp_00D00D00D), - Rule::Get(&clamp_10D00D00D), - Rule::Get(&clamp_10D00D00D), - Rule::Get(&clamp_20D00D00D), - Rule::Get(&clamp_20D00D00D), - Rule::Get(&clamp_30D00D00D), - Rule::Get(&clamp_30D00D00D), - Rule::Get(&clamp_10D10D10D), - Rule::Get(&clamp_10D10D10D), - Rule::Get(&clamp_20D20D20D), - Rule::Get(&clamp_20D20D20D), - Rule::Get(&clamp_30D30D30D), - Rule::Get(&clamp_30D30D30D), - Rule::Get(&clamp_00E00E00E), - Rule::Get(&clamp_00E00E00E), - Rule::Get(&clamp_10E00E00E), - Rule::Get(&clamp_10E00E00E), - Rule::Get(&clamp_20E00E00E), - Rule::Get(&clamp_20E00E00E), - Rule::Get(&clamp_30E00E00E), - Rule::Get(&clamp_30E00E00E), - Rule::Get(&clamp_10E10E10E), - Rule::Get(&clamp_10E10E10E), - Rule::Get(&clamp_20E20E20E), - Rule::Get(&clamp_20E20E20E), - Rule::Get(&clamp_30E30E30E), - Rule::Get(&clamp_30E30E30E), - Rule::Get(&mix_00B00B00B), - Rule::Get(&mix_00B00B00B), - Rule::Get(&mix_10B10B00B), - Rule::Get(&mix_10B10B00B), - Rule::Get(&mix_20B20B00B), - Rule::Get(&mix_20B20B00B), - Rule::Get(&mix_30B30B00B), - Rule::Get(&mix_30B30B00B), - Rule::Get(&mix_10B10B10B), - Rule::Get(&mix_10B10B10B), - Rule::Get(&mix_20B20B20B), - Rule::Get(&mix_20B20B20B), - Rule::Get(&mix_30B30B30B), - Rule::Get(&mix_30B30B30B), - Rule::Get(&mix_00C00C00C), - Rule::Get(&mix_10C10C00C), - Rule::Get(&mix_20C20C00C), - Rule::Get(&mix_30C30C00C), - Rule::Get(&mix_10C10C10C), - Rule::Get(&mix_20C20C20C), - Rule::Get(&mix_30C30C30C), - Rule::Get(&mix_00B00B00F), - Rule::Get(&mix_00B00B00F), - Rule::Get(&mix_10B10B10F), - Rule::Get(&mix_10B10B10F), - Rule::Get(&mix_20B20B20F), - Rule::Get(&mix_20B20B20F), - Rule::Get(&mix_30B30B30F), - Rule::Get(&mix_30B30B30F), - Rule::Get(&mix_00C00C00F), - Rule::Get(&mix_10C10C10F), - Rule::Get(&mix_20C20C20F), - Rule::Get(&mix_30C30C30F), - Rule::Get(&mix_00D00D00F), - Rule::Get(&mix_00D00D00F), - Rule::Get(&mix_10D10D10F), - Rule::Get(&mix_10D10D10F), - Rule::Get(&mix_20D20D20F), - Rule::Get(&mix_20D20D20F), - Rule::Get(&mix_30D30D30F), - Rule::Get(&mix_30D30D30F), - Rule::Get(&mix_00E00E00F), - Rule::Get(&mix_00E00E00F), - Rule::Get(&mix_10E10E10F), - Rule::Get(&mix_10E10E10F), - Rule::Get(&mix_20E20E20F), - Rule::Get(&mix_20E20E20F), - Rule::Get(&mix_30E30E30F), - Rule::Get(&mix_30E30E30F), - Rule::Get(&mix_00F00F00F), - Rule::Get(&mix_00F00F00F), - Rule::Get(&mix_10F10F10F), - Rule::Get(&mix_10F10F10F), - Rule::Get(&mix_20F20F20F), - Rule::Get(&mix_20F20F20F), - Rule::Get(&mix_30F30F30F), - Rule::Get(&mix_30F30F30F), - Rule::Get(&step_00B00B), - Rule::Get(&step_00B00B), - Rule::Get(&step_10B10B), - Rule::Get(&step_10B10B), - Rule::Get(&step_20B20B), - Rule::Get(&step_20B20B), - Rule::Get(&step_30B30B), - Rule::Get(&step_30B30B), - Rule::Get(&step_00B10B), - Rule::Get(&step_00B10B), - Rule::Get(&step_00B20B), - Rule::Get(&step_00B20B), - Rule::Get(&step_00B30B), - Rule::Get(&step_00B30B), - Rule::Get(&step_00C00C), - Rule::Get(&step_10C10C), - Rule::Get(&step_20C20C), - Rule::Get(&step_30C30C), - Rule::Get(&step_00C10C), - Rule::Get(&step_00C20C), - Rule::Get(&step_00C30C), - Rule::Get(&smoothstep_00C00C00C), - Rule::Get(&smoothstep_10C10C10C), - Rule::Get(&smoothstep_20C20C20C), - Rule::Get(&smoothstep_30C30C30C), - Rule::Get(&smoothstep_00C00C10C), - Rule::Get(&smoothstep_00C00C20C), - Rule::Get(&smoothstep_00C00C30C), - Rule::Get(&smoothstep_00B00B00B), - Rule::Get(&smoothstep_00B00B00B), - Rule::Get(&smoothstep_10B10B10B), - Rule::Get(&smoothstep_10B10B10B), - Rule::Get(&smoothstep_20B20B20B), - Rule::Get(&smoothstep_20B20B20B), - Rule::Get(&smoothstep_30B30B30B), - Rule::Get(&smoothstep_30B30B30B), - Rule::Get(&smoothstep_00B00B10B), - Rule::Get(&smoothstep_00B00B10B), - Rule::Get(&smoothstep_00B00B20B), - Rule::Get(&smoothstep_00B00B20B), - Rule::Get(&smoothstep_00B00B30B), - Rule::Get(&smoothstep_00B00B30B), - Rule::Get(&modf_00B00B), - Rule::Get(&modf_00B00B), - Rule::Get(&modf_10B10B), - Rule::Get(&modf_10B10B), - Rule::Get(&modf_20B20B), - Rule::Get(&modf_20B20B), - Rule::Get(&modf_30B30B), - Rule::Get(&modf_30B30B), - Rule::Get(&modf_00C00C), - Rule::Get(&modf_10C10C), - Rule::Get(&modf_20C20C), - Rule::Get(&modf_30C30C), - Rule::Get(&isnan_00B), - Rule::Get(&isnan_00B), - Rule::Get(&isnan_10B), - Rule::Get(&isnan_10B), - Rule::Get(&isnan_20B), - Rule::Get(&isnan_20B), - Rule::Get(&isnan_30B), - Rule::Get(&isnan_30B), - Rule::Get(&isnan_00C), - Rule::Get(&isnan_10C), - Rule::Get(&isnan_20C), - Rule::Get(&isnan_30C), - Rule::Get(&isinf_00B), - Rule::Get(&isinf_00B), - Rule::Get(&isinf_10B), - Rule::Get(&isinf_10B), - Rule::Get(&isinf_20B), - Rule::Get(&isinf_20B), - Rule::Get(&isinf_30B), - Rule::Get(&isinf_30B), - Rule::Get(&isinf_00C), - Rule::Get(&isinf_10C), - Rule::Get(&isinf_20C), - Rule::Get(&isinf_30C), - Rule::Get(&floatBitsToInt_00B), - Rule::Get(&floatBitsToInt_00B), - Rule::Get(&floatBitsToInt_10B), - Rule::Get(&floatBitsToInt_10B), - Rule::Get(&floatBitsToInt_20B), - Rule::Get(&floatBitsToInt_20B), - Rule::Get(&floatBitsToInt_30B), - Rule::Get(&floatBitsToInt_30B), - Rule::Get(&floatBitsToUint_00B), - Rule::Get(&floatBitsToUint_00B), - Rule::Get(&floatBitsToUint_10B), - Rule::Get(&floatBitsToUint_10B), - Rule::Get(&floatBitsToUint_20B), - Rule::Get(&floatBitsToUint_20B), - Rule::Get(&floatBitsToUint_30B), - Rule::Get(&floatBitsToUint_30B), - Rule::Get(&intBitsToFloat_00D), - Rule::Get(&intBitsToFloat_00D), - Rule::Get(&intBitsToFloat_10D), - Rule::Get(&intBitsToFloat_10D), - Rule::Get(&intBitsToFloat_20D), - Rule::Get(&intBitsToFloat_20D), - Rule::Get(&intBitsToFloat_30D), - Rule::Get(&intBitsToFloat_30D), - Rule::Get(&uintBitsToFloat_00E), - Rule::Get(&uintBitsToFloat_00E), - Rule::Get(&uintBitsToFloat_10E), - Rule::Get(&uintBitsToFloat_10E), - Rule::Get(&uintBitsToFloat_20E), - Rule::Get(&uintBitsToFloat_20E), - Rule::Get(&uintBitsToFloat_30E), - Rule::Get(&uintBitsToFloat_30E), - Rule::Get(&fma_00B00B00B), - Rule::Get(&fma_00B00B00B), - Rule::Get(&fmaExt_00B00B00B), - Rule::Get(&fma_10B10B10B), - Rule::Get(&fma_10B10B10B), - Rule::Get(&fmaExt_10B10B10B), - Rule::Get(&fma_20B20B20B), - Rule::Get(&fma_20B20B20B), - Rule::Get(&fmaExt_20B20B20B), - Rule::Get(&fma_30B30B30B), - Rule::Get(&fma_30B30B30B), - Rule::Get(&fmaExt_30B30B30B), - Rule::Get(&fma_00C00C00C), - Rule::Get(&fma_10C10C10C), - Rule::Get(&fma_20C20C20C), - Rule::Get(&fma_30C30C30C), - Rule::Get(&frexp_00B00D), - Rule::Get(&frexp_00B00D), - Rule::Get(&frexp_10B10D), - Rule::Get(&frexp_10B10D), - Rule::Get(&frexp_20B20D), - Rule::Get(&frexp_20B20D), - Rule::Get(&frexp_30B30D), - Rule::Get(&frexp_30B30D), - Rule::Get(&frexp_00C00D), - Rule::Get(&frexp_10C10D), - Rule::Get(&frexp_20C20D), - Rule::Get(&frexp_30C30D), - Rule::Get(&ldexp_00B00D), - Rule::Get(&ldexp_00B00D), - Rule::Get(&ldexp_10B10D), - Rule::Get(&ldexp_10B10D), - Rule::Get(&ldexp_20B20D), - Rule::Get(&ldexp_20B20D), - Rule::Get(&ldexp_30B30D), - Rule::Get(&ldexp_30B30D), - Rule::Get(&ldexp_00C00D), - Rule::Get(&ldexp_10C10D), - Rule::Get(&ldexp_20C20D), - Rule::Get(&ldexp_30C30D), - Rule::Get(&packSnorm2x16_10B), - Rule::Get(&packSnorm2x16_10B), - Rule::Get(&packHalf2x16_10B), - Rule::Get(&packHalf2x16_10B), - Rule::Get(&unpackSnorm2x16_00E), - Rule::Get(&unpackSnorm2x16_00E), - Rule::Get(&unpackHalf2x16_00E), - Rule::Get(&unpackHalf2x16_00E), - Rule::Get(&packUnorm2x16_10B), - Rule::Get(&packUnorm2x16_10B), - Rule::Get(&unpackUnorm2x16_00E), - Rule::Get(&unpackUnorm2x16_00E), - Rule::Get(&packUnorm4x8_30B), - Rule::Get(&packUnorm4x8_30B), - Rule::Get(&packSnorm4x8_30B), - Rule::Get(&packSnorm4x8_30B), - Rule::Get(&unpackUnorm4x8_00E), - Rule::Get(&unpackUnorm4x8_00E), - Rule::Get(&unpackSnorm4x8_00E), - Rule::Get(&unpackSnorm4x8_00E), - Rule::Get(&packDouble2x32_10E), - Rule::Get(&unpackDouble2x32_00C), - Rule::Get(&length_00B), - Rule::Get(&length_00B), - Rule::Get(&length_10B), - Rule::Get(&length_10B), - Rule::Get(&length_20B), - Rule::Get(&length_20B), - Rule::Get(&length_30B), - Rule::Get(&length_30B), - Rule::Get(&length_00C), - Rule::Get(&length_10C), - Rule::Get(&length_20C), - Rule::Get(&length_30C), - Rule::Get(&distance_00B00B), - Rule::Get(&distance_00B00B), - Rule::Get(&distance_10B10B), - Rule::Get(&distance_10B10B), - Rule::Get(&distance_20B20B), - Rule::Get(&distance_20B20B), - Rule::Get(&distance_30B30B), - Rule::Get(&distance_30B30B), - Rule::Get(&distance_00C00C), - Rule::Get(&distance_10C10C), - Rule::Get(&distance_20C20C), - Rule::Get(&distance_30C30C), - Rule::Get(&dot_00B00B), - Rule::Get(&dot_00B00B), - Rule::Get(&dot_10B10B), - Rule::Get(&dot_10B10B), - Rule::Get(&dot_20B20B), - Rule::Get(&dot_20B20B), - Rule::Get(&dot_30B30B), - Rule::Get(&dot_30B30B), - Rule::Get(&dot_00C00C), - Rule::Get(&dot_10C10C), - Rule::Get(&dot_20C20C), - Rule::Get(&dot_30C30C), - Rule::Get(&cross_20B20B), - Rule::Get(&cross_20B20B), - Rule::Get(&cross_20C20C), - Rule::Get(&normalize_00B), - Rule::Get(&normalize_00B), - Rule::Get(&normalize_10B), - Rule::Get(&normalize_10B), - Rule::Get(&normalize_20B), - Rule::Get(&normalize_20B), - Rule::Get(&normalize_30B), - Rule::Get(&normalize_30B), - Rule::Get(&normalize_00C), - Rule::Get(&normalize_10C), - Rule::Get(&normalize_20C), - Rule::Get(&normalize_30C), - Rule::Get(&faceforward_00B00B00B), - Rule::Get(&faceforward_00B00B00B), - Rule::Get(&faceforward_10B10B10B), - Rule::Get(&faceforward_10B10B10B), - Rule::Get(&faceforward_20B20B20B), - Rule::Get(&faceforward_20B20B20B), - Rule::Get(&faceforward_30B30B30B), - Rule::Get(&faceforward_30B30B30B), - Rule::Get(&faceforward_00C00C00C), - Rule::Get(&faceforward_10C10C10C), - Rule::Get(&faceforward_20C20C20C), - Rule::Get(&faceforward_30C30C30C), - Rule::Get(&reflect_00B00B), - Rule::Get(&reflect_00B00B), - Rule::Get(&reflect_10B10B), - Rule::Get(&reflect_10B10B), - Rule::Get(&reflect_20B20B), - Rule::Get(&reflect_20B20B), - Rule::Get(&reflect_30B30B), - Rule::Get(&reflect_30B30B), - Rule::Get(&reflect_00C00C), - Rule::Get(&reflect_10C10C), - Rule::Get(&reflect_20C20C), - Rule::Get(&reflect_30C30C), - Rule::Get(&refract_00B00B00B), - Rule::Get(&refract_00B00B00B), - Rule::Get(&refract_10B10B00B), - Rule::Get(&refract_10B10B00B), - Rule::Get(&refract_20B20B00B), - Rule::Get(&refract_20B20B00B), - Rule::Get(&refract_30B30B00B), - Rule::Get(&refract_30B30B00B), - Rule::Get(&refract_00C00C00B), - Rule::Get(&refract_10C10C00B), - Rule::Get(&refract_20C20C00B), - Rule::Get(&refract_30C30C00B), - Rule::Get(&ftransform_), - Rule::Get(&matrixCompMult_50B50B), - Rule::Get(&matrixCompMult_50B50B), - Rule::Get(&matrixCompMult_A0BA0B), - Rule::Get(&matrixCompMult_A0BA0B), - Rule::Get(&matrixCompMult_F0BF0B), - Rule::Get(&matrixCompMult_F0BF0B), - Rule::Get(&matrixCompMult_90B90B), - Rule::Get(&matrixCompMult_60B60B), - Rule::Get(&matrixCompMult_D0BD0B), - Rule::Get(&matrixCompMult_70B70B), - Rule::Get(&matrixCompMult_E0BE0B), - Rule::Get(&matrixCompMult_B0BB0B), - Rule::Get(&outerProduct_10B10B), - Rule::Get(&outerProduct_10B10B), - Rule::Get(&outerProduct_20B20B), - Rule::Get(&outerProduct_20B20B), - Rule::Get(&outerProduct_30B30B), - Rule::Get(&outerProduct_30B30B), - Rule::Get(&outerProduct_20B10B), - Rule::Get(&outerProduct_20B10B), - Rule::Get(&outerProduct_10B20B), - Rule::Get(&outerProduct_10B20B), - Rule::Get(&outerProduct_30B10B), - Rule::Get(&outerProduct_30B10B), - Rule::Get(&outerProduct_10B30B), - Rule::Get(&outerProduct_10B30B), - Rule::Get(&outerProduct_30B20B), - Rule::Get(&outerProduct_30B20B), - Rule::Get(&outerProduct_20B30B), - Rule::Get(&outerProduct_20B30B), - Rule::Get(&transpose_50B), - Rule::Get(&transpose_50B), - Rule::Get(&transpose_A0B), - Rule::Get(&transpose_A0B), - Rule::Get(&transpose_F0B), - Rule::Get(&transpose_F0B), - Rule::Get(&transpose_60B), - Rule::Get(&transpose_60B), - Rule::Get(&transpose_90B), - Rule::Get(&transpose_90B), - Rule::Get(&transpose_70B), - Rule::Get(&transpose_70B), - Rule::Get(&transpose_D0B), - Rule::Get(&transpose_D0B), - Rule::Get(&transpose_B0B), - Rule::Get(&transpose_B0B), - Rule::Get(&transpose_E0B), - Rule::Get(&transpose_E0B), - Rule::Get(&determinant_50B), - Rule::Get(&determinant_A0B), - Rule::Get(&determinant_F0B), - Rule::Get(&inverse_50B), - Rule::Get(&inverse_50B), - Rule::Get(&inverse_A0B), - Rule::Get(&inverse_A0B), - Rule::Get(&inverse_F0B), - Rule::Get(&inverse_F0B), - Rule::Get(&lessThan_10B10B), - Rule::Get(&lessThan_10B10B), - Rule::Get(&lessThan_20B20B), - Rule::Get(&lessThan_20B20B), - Rule::Get(&lessThan_30B30B), - Rule::Get(&lessThan_30B30B), - Rule::Get(&lessThan_10D10D), - Rule::Get(&lessThan_10D10D), - Rule::Get(&lessThan_20D20D), - Rule::Get(&lessThan_20D20D), - Rule::Get(&lessThan_30D30D), - Rule::Get(&lessThan_30D30D), - Rule::Get(&lessThan_10E10E), - Rule::Get(&lessThan_10E10E), - Rule::Get(&lessThan_20E20E), - Rule::Get(&lessThan_20E20E), - Rule::Get(&lessThan_30E30E), - Rule::Get(&lessThan_30E30E), - Rule::Get(&lessThanEqual_10B10B), - Rule::Get(&lessThanEqual_10B10B), - Rule::Get(&lessThanEqual_20B20B), - Rule::Get(&lessThanEqual_20B20B), - Rule::Get(&lessThanEqual_30B30B), - Rule::Get(&lessThanEqual_30B30B), - Rule::Get(&lessThanEqual_10D10D), - Rule::Get(&lessThanEqual_10D10D), - Rule::Get(&lessThanEqual_20D20D), - Rule::Get(&lessThanEqual_20D20D), - Rule::Get(&lessThanEqual_30D30D), - Rule::Get(&lessThanEqual_30D30D), - Rule::Get(&lessThanEqual_10E10E), - Rule::Get(&lessThanEqual_10E10E), - Rule::Get(&lessThanEqual_20E20E), - Rule::Get(&lessThanEqual_20E20E), - Rule::Get(&lessThanEqual_30E30E), - Rule::Get(&lessThanEqual_30E30E), - Rule::Get(&greaterThan_10B10B), - Rule::Get(&greaterThan_10B10B), - Rule::Get(&greaterThan_20B20B), - Rule::Get(&greaterThan_20B20B), - Rule::Get(&greaterThan_30B30B), - Rule::Get(&greaterThan_30B30B), - Rule::Get(&greaterThan_10D10D), - Rule::Get(&greaterThan_10D10D), - Rule::Get(&greaterThan_20D20D), - Rule::Get(&greaterThan_20D20D), - Rule::Get(&greaterThan_30D30D), - Rule::Get(&greaterThan_30D30D), - Rule::Get(&greaterThan_10E10E), - Rule::Get(&greaterThan_10E10E), - Rule::Get(&greaterThan_20E20E), - Rule::Get(&greaterThan_20E20E), - Rule::Get(&greaterThan_30E30E), - Rule::Get(&greaterThan_30E30E), - Rule::Get(&greaterThanEqual_10B10B), - Rule::Get(&greaterThanEqual_10B10B), - Rule::Get(&greaterThanEqual_20B20B), - Rule::Get(&greaterThanEqual_20B20B), - Rule::Get(&greaterThanEqual_30B30B), - Rule::Get(&greaterThanEqual_30B30B), - Rule::Get(&greaterThanEqual_10D10D), - Rule::Get(&greaterThanEqual_10D10D), - Rule::Get(&greaterThanEqual_20D20D), - Rule::Get(&greaterThanEqual_20D20D), - Rule::Get(&greaterThanEqual_30D30D), - Rule::Get(&greaterThanEqual_30D30D), - Rule::Get(&greaterThanEqual_10E10E), - Rule::Get(&greaterThanEqual_10E10E), - Rule::Get(&greaterThanEqual_20E20E), - Rule::Get(&greaterThanEqual_20E20E), - Rule::Get(&greaterThanEqual_30E30E), - Rule::Get(&greaterThanEqual_30E30E), - Rule::Get(&equal_10B10B), - Rule::Get(&equal_10B10B), - Rule::Get(&equal_20B20B), - Rule::Get(&equal_20B20B), - Rule::Get(&equal_30B30B), - Rule::Get(&equal_30B30B), - Rule::Get(&equal_10D10D), - Rule::Get(&equal_10D10D), - Rule::Get(&equal_20D20D), - Rule::Get(&equal_20D20D), - Rule::Get(&equal_30D30D), - Rule::Get(&equal_30D30D), - Rule::Get(&equal_10E10E), - Rule::Get(&equal_10E10E), - Rule::Get(&equal_20E20E), - Rule::Get(&equal_20E20E), - Rule::Get(&equal_30E30E), - Rule::Get(&equal_30E30E), - Rule::Get(&equal_10F10F), - Rule::Get(&equal_10F10F), - Rule::Get(&equal_20F20F), - Rule::Get(&equal_20F20F), - Rule::Get(&equal_30F30F), - Rule::Get(&equal_30F30F), - Rule::Get(¬Equal_10B10B), - Rule::Get(¬Equal_10B10B), - Rule::Get(¬Equal_20B20B), - Rule::Get(¬Equal_20B20B), - Rule::Get(¬Equal_30B30B), - Rule::Get(¬Equal_30B30B), - Rule::Get(¬Equal_10D10D), - Rule::Get(¬Equal_10D10D), - Rule::Get(¬Equal_20D20D), - Rule::Get(¬Equal_20D20D), - Rule::Get(¬Equal_30D30D), - Rule::Get(¬Equal_30D30D), - Rule::Get(¬Equal_10E10E), - Rule::Get(¬Equal_10E10E), - Rule::Get(¬Equal_20E20E), - Rule::Get(¬Equal_20E20E), - Rule::Get(¬Equal_30E30E), - Rule::Get(¬Equal_30E30E), - Rule::Get(¬Equal_10F10F), - Rule::Get(¬Equal_10F10F), - Rule::Get(¬Equal_20F20F), - Rule::Get(¬Equal_20F20F), - Rule::Get(¬Equal_30F30F), - Rule::Get(¬Equal_30F30F), - Rule::Get(&any_10F), - Rule::Get(&any_10F), - Rule::Get(&any_20F), - Rule::Get(&any_20F), - Rule::Get(&any_30F), - Rule::Get(&any_30F), - Rule::Get(&all_10F), - Rule::Get(&all_10F), - Rule::Get(&all_20F), - Rule::Get(&all_20F), - Rule::Get(&all_30F), - Rule::Get(&all_30F), - Rule::Get(¬Func_10F), - Rule::Get(¬Func_10F), - Rule::Get(¬Func_20F), - Rule::Get(¬Func_20F), - Rule::Get(¬Func_30F), - Rule::Get(¬Func_30F), - Rule::Get(&bitfieldExtract_00D00D00D), - Rule::Get(&bitfieldExtract_00D00D00D), - Rule::Get(&bitfieldExtract_10D00D00D), - Rule::Get(&bitfieldExtract_10D00D00D), - Rule::Get(&bitfieldExtract_20D00D00D), - Rule::Get(&bitfieldExtract_20D00D00D), - Rule::Get(&bitfieldExtract_30D00D00D), - Rule::Get(&bitfieldExtract_30D00D00D), - Rule::Get(&bitfieldExtract_00E00D00D), - Rule::Get(&bitfieldExtract_00E00D00D), - Rule::Get(&bitfieldExtract_10E00D00D), - Rule::Get(&bitfieldExtract_10E00D00D), - Rule::Get(&bitfieldExtract_20E00D00D), - Rule::Get(&bitfieldExtract_20E00D00D), - Rule::Get(&bitfieldExtract_30E00D00D), - Rule::Get(&bitfieldExtract_30E00D00D), - Rule::Get(&bitfieldInsert_00D00D00D00D), - Rule::Get(&bitfieldInsert_00D00D00D00D), - Rule::Get(&bitfieldInsert_10D10D00D00D), - Rule::Get(&bitfieldInsert_10D10D00D00D), - Rule::Get(&bitfieldInsert_20D20D00D00D), - Rule::Get(&bitfieldInsert_20D20D00D00D), - Rule::Get(&bitfieldInsert_30D30D00D00D), - Rule::Get(&bitfieldInsert_30D30D00D00D), - Rule::Get(&bitfieldInsert_00E00E00D00D), - Rule::Get(&bitfieldInsert_00E00E00D00D), - Rule::Get(&bitfieldInsert_10E10E00D00D), - Rule::Get(&bitfieldInsert_10E10E00D00D), - Rule::Get(&bitfieldInsert_20E20E00D00D), - Rule::Get(&bitfieldInsert_20E20E00D00D), - Rule::Get(&bitfieldInsert_30E30E00D00D), - Rule::Get(&bitfieldInsert_30E30E00D00D), - Rule::Get(&bitfieldReverse_00D), - Rule::Get(&bitfieldReverse_00D), - Rule::Get(&bitfieldReverse_10D), - Rule::Get(&bitfieldReverse_10D), - Rule::Get(&bitfieldReverse_20D), - Rule::Get(&bitfieldReverse_20D), - Rule::Get(&bitfieldReverse_30D), - Rule::Get(&bitfieldReverse_30D), - Rule::Get(&bitfieldReverse_00E), - Rule::Get(&bitfieldReverse_00E), - Rule::Get(&bitfieldReverse_10E), - Rule::Get(&bitfieldReverse_10E), - Rule::Get(&bitfieldReverse_20E), - Rule::Get(&bitfieldReverse_20E), - Rule::Get(&bitfieldReverse_30E), - Rule::Get(&bitfieldReverse_30E), - Rule::Get(&bitCount_00D), - Rule::Get(&bitCount_00D), - Rule::Get(&bitCount_10D), - Rule::Get(&bitCount_10D), - Rule::Get(&bitCount_20D), - Rule::Get(&bitCount_20D), - Rule::Get(&bitCount_30D), - Rule::Get(&bitCount_30D), - Rule::Get(&bitCount_00E), - Rule::Get(&bitCount_00E), - Rule::Get(&bitCount_10E), - Rule::Get(&bitCount_10E), - Rule::Get(&bitCount_20E), - Rule::Get(&bitCount_20E), - Rule::Get(&bitCount_30E), - Rule::Get(&bitCount_30E), - Rule::Get(&findLSB_00D), - Rule::Get(&findLSB_00D), - Rule::Get(&findLSB_10D), - Rule::Get(&findLSB_10D), - Rule::Get(&findLSB_20D), - Rule::Get(&findLSB_20D), - Rule::Get(&findLSB_30D), - Rule::Get(&findLSB_30D), - Rule::Get(&findLSB_00E), - Rule::Get(&findLSB_00E), - Rule::Get(&findLSB_10E), - Rule::Get(&findLSB_10E), - Rule::Get(&findLSB_20E), - Rule::Get(&findLSB_20E), - Rule::Get(&findLSB_30E), - Rule::Get(&findLSB_30E), - Rule::Get(&findMSB_00D), - Rule::Get(&findMSB_00D), - Rule::Get(&findMSB_10D), - Rule::Get(&findMSB_10D), - Rule::Get(&findMSB_20D), - Rule::Get(&findMSB_20D), - Rule::Get(&findMSB_30D), - Rule::Get(&findMSB_30D), - Rule::Get(&findMSB_00E), - Rule::Get(&findMSB_00E), - Rule::Get(&findMSB_10E), - Rule::Get(&findMSB_10E), - Rule::Get(&findMSB_20E), - Rule::Get(&findMSB_20E), - Rule::Get(&findMSB_30E), - Rule::Get(&findMSB_30E), - Rule::Get(&uaddCarry_00E00E00E), - Rule::Get(&uaddCarry_00E00E00E), - Rule::Get(&uaddCarry_10E10E10E), - Rule::Get(&uaddCarry_10E10E10E), - Rule::Get(&uaddCarry_20E20E20E), - Rule::Get(&uaddCarry_20E20E20E), - Rule::Get(&uaddCarry_30E30E30E), - Rule::Get(&uaddCarry_30E30E30E), - Rule::Get(&usubBorrow_00E00E00E), - Rule::Get(&usubBorrow_00E00E00E), - Rule::Get(&usubBorrow_10E10E10E), - Rule::Get(&usubBorrow_10E10E10E), - Rule::Get(&usubBorrow_20E20E20E), - Rule::Get(&usubBorrow_20E20E20E), - Rule::Get(&usubBorrow_30E30E30E), - Rule::Get(&usubBorrow_30E30E30E), - Rule::Get(&umulExtended_00E00E00E00E), - Rule::Get(&umulExtended_00E00E00E00E), - Rule::Get(&umulExtended_10E10E10E10E), - Rule::Get(&umulExtended_10E10E10E10E), - Rule::Get(&umulExtended_20E20E20E20E), - Rule::Get(&umulExtended_20E20E20E20E), - Rule::Get(&umulExtended_30E30E30E30E), - Rule::Get(&umulExtended_30E30E30E30E), - Rule::Get(&imulExtended_00D00D00D00D), - Rule::Get(&imulExtended_00D00D00D00D), - Rule::Get(&imulExtended_10D10D10D10D), - Rule::Get(&imulExtended_10D10D10D10D), - Rule::Get(&imulExtended_20D20D20D20D), - Rule::Get(&imulExtended_20D20D20D20D), - Rule::Get(&imulExtended_30D30D30D30D), - Rule::Get(&imulExtended_30D30D30D30D), - Rule::Get(&texture2D_00I10B), - Rule::Get(&texture2D_00I10B), - Rule::Get(&texture2DProj_00I20B), - Rule::Get(&texture2DProj_00I20B), - Rule::Get(&texture2DProj_00I30B), - Rule::Get(&texture2DProj_00I30B), - Rule::Get(&textureCube_00K20B), - Rule::Get(&textureCube_00K20B), - Rule::Get(&texture1D_00g00B), - Rule::Get(&texture1DProj_00g10B), - Rule::Get(&texture1DProj_00g30B), - Rule::Get(&texture3D_00J20B), - Rule::Get(&texture3D_00J20B), - Rule::Get(&texture3DProj_00J30B), - Rule::Get(&texture3DProj_00J30B), - Rule::Get(&shadow1D_00m20B), - Rule::Get(&shadow1DProj_00m30B), - Rule::Get(&shadow2D_00d20B), - Rule::Get(&shadow2DProj_00d30B), - Rule::Get(&texture2D_00M10B), - Rule::Get(&texture2DProj_00M20B), - Rule::Get(&texture2DProj_00M30B), - Rule::Get( - &texture2DRect_00O10B), - Rule::Get( - &texture2DRectProj_00O20B), - Rule::Get( - &texture2DRectProj_00O30B), - Rule::Get(&texture_00O10B), - Rule::Get(&texture_00O10B), - Rule::Get(&textureProj_00O20B), - Rule::Get(&textureProj_00O20B), - Rule::Get(&textureProj_00O30B), - Rule::Get(&textureProj_00O30B), - Rule::Get( - &texture2DGradEXT_00I10B10B10B), - Rule::Get( - &texture2DProjGradEXT_00I20B10B10B), - Rule::Get( - &texture2DProjGradEXT_00I30B10B10B), - Rule::Get( - &textureCubeGradEXT_00K20B20B20B), - Rule::Get(&texture2D_00I10B00B), - Rule::Get(&texture2D_00I10B00B), - Rule::Get(&texture2DProj_00I20B00B), - Rule::Get(&texture2DProj_00I20B00B), - Rule::Get(&texture2DProj_00I30B00B), - Rule::Get(&texture2DProj_00I30B00B), - Rule::Get(&textureCube_00K20B00B), - Rule::Get(&textureCube_00K20B00B), - Rule::Get(&texture3D_00J20B00B), - Rule::Get(&texture3D_00J20B00B), - Rule::Get(&texture3DProj_00J30B00B), - Rule::Get( - &texture3DProj_00J30B00B), - Rule::Get(&texture3DLod_00J20B00B), - Rule::Get( - &texture3DLod_00J20B00B), - Rule::Get(&texture3DProjLod_00J30B00B), - Rule::Get( - &texture3DProjLod_00J30B00B), - Rule::Get(&texture1D_00g00B00B), - Rule::Get(&texture1DProj_00g10B00B), - Rule::Get(&texture1DProj_00g30B00B), - Rule::Get(&shadow1D_00m20B00B), - Rule::Get(&shadow1DProj_00m30B00B), - Rule::Get(&shadow2D_00d20B00B), - Rule::Get(&shadow2DProj_00d30B00B), - Rule::Get(&dFdx_00B), - Rule::Get(&dFdx_00B), - Rule::Get(&dFdxExt_00B), - Rule::Get(&dFdx_10B), - Rule::Get(&dFdx_10B), - Rule::Get(&dFdxExt_10B), - Rule::Get(&dFdx_20B), - Rule::Get(&dFdx_20B), - Rule::Get(&dFdxExt_20B), - Rule::Get(&dFdx_30B), - Rule::Get(&dFdx_30B), - Rule::Get(&dFdxExt_30B), - Rule::Get(&dFdy_00B), - Rule::Get(&dFdy_00B), - Rule::Get(&dFdyExt_00B), - Rule::Get(&dFdy_10B), - Rule::Get(&dFdy_10B), - Rule::Get(&dFdyExt_10B), - Rule::Get(&dFdy_20B), - Rule::Get(&dFdy_20B), - Rule::Get(&dFdyExt_20B), - Rule::Get(&dFdy_30B), - Rule::Get(&dFdy_30B), - Rule::Get(&dFdyExt_30B), - Rule::Get(&fwidth_00B), - Rule::Get(&fwidth_00B), - Rule::Get( - &fwidthExt_00B), - Rule::Get(&fwidth_10B), - Rule::Get(&fwidth_10B), - Rule::Get( - &fwidthExt_10B), - Rule::Get(&fwidth_20B), - Rule::Get(&fwidth_20B), - Rule::Get( - &fwidthExt_20B), - Rule::Get(&fwidth_30B), - Rule::Get(&fwidth_30B), - Rule::Get( - &fwidthExt_30B), - Rule::Get( - &texture2DLodEXT_00I10B00B), - Rule::Get( - &texture2DProjLodEXT_00I20B00B), - Rule::Get( - &texture2DProjLodEXT_00I30B00B), - Rule::Get( - &textureCubeLodEXT_00K20B00B), - Rule::Get( - &shadow2DEXT_00d20B), - Rule::Get( - &shadow2DProjEXT_00d30B), - Rule::Get(&texture2DLod_00I10B00B), - Rule::Get(&texture2DLod_00I10B00B), - Rule::Get(&texture2DProjLod_00I20B00B), - Rule::Get(&texture2DProjLod_00I20B00B), - Rule::Get(&texture2DProjLod_00I30B00B), - Rule::Get(&texture2DProjLod_00I30B00B), - Rule::Get(&textureCubeLod_00K20B00B), - Rule::Get(&textureCubeLod_00K20B00B), - Rule::Get(&texture1DLod_00g00B00B), - Rule::Get(&texture1DProjLod_00g10B00B), - Rule::Get(&texture1DProjLod_00g30B00B), - Rule::Get(&shadow1DLod_00m20B00B), - Rule::Get(&shadow1DProjLod_00m30B00B), - Rule::Get(&shadow2DLod_00d20B00B), - Rule::Get(&shadow2DProjLod_00d30B00B), - Rule::Get(&texture_00I10B), - Rule::Get(&texture_00I10B), - Rule::Get(&texture_00R10B), - Rule::Get(&texture_00R10B), - Rule::Get(&texture_00X10B), - Rule::Get(&texture_00X10B), - Rule::Get(&texture_00J20B), - Rule::Get(&texture_00J20B), - Rule::Get(&texture_00S20B), - Rule::Get(&texture_00S20B), - Rule::Get(&texture_00Y20B), - Rule::Get(&texture_00Y20B), - Rule::Get(&texture_00K20B), - Rule::Get(&texture_00K20B), - Rule::Get(&texture_00T20B), - Rule::Get(&texture_00T20B), - Rule::Get(&texture_00Z20B), - Rule::Get(&texture_00Z20B), - Rule::Get(&texture_00L20B), - Rule::Get(&texture_00L20B), - Rule::Get(&texture_00U20B), - Rule::Get(&texture_00U20B), - Rule::Get(&texture_00a20B), - Rule::Get(&texture_00a20B), - Rule::Get(&texture_00d20B), - Rule::Get(&texture_00d20B), - Rule::Get(&texture_00e30B), - Rule::Get(&texture_00e30B), - Rule::Get(&texture_00f30B), - Rule::Get(&texture_00f30B), - Rule::Get(&texture_00g00B), - Rule::Get(&texture_00o00B), - Rule::Get(&texture_00t00B), - Rule::Get(&texture_00m20B), - Rule::Get(&texture_00h20B), - Rule::Get(&texture_00p20B), - Rule::Get(&texture_00u20B), - Rule::Get(&texture_00i20B), - Rule::Get(&texture_00q10B), - Rule::Get(&texture_00v10B), - Rule::Get(&texture_00n20B), - Rule::Get(&texture_00l30B00B), - Rule::Get(&texture_00l30B00B), - Rule::Get(&textureProj_00I20B), - Rule::Get(&textureProj_00I20B), - Rule::Get(&textureProj_00R20B), - Rule::Get(&textureProj_00R20B), - Rule::Get(&textureProj_00X20B), - Rule::Get(&textureProj_00X20B), - Rule::Get(&textureProj_00I30B), - Rule::Get(&textureProj_00I30B), - Rule::Get(&textureProj_00R30B), - Rule::Get(&textureProj_00R30B), - Rule::Get(&textureProj_00X30B), - Rule::Get(&textureProj_00X30B), - Rule::Get(&textureProj_00J30B), - Rule::Get(&textureProj_00J30B), - Rule::Get(&textureProj_00S30B), - Rule::Get(&textureProj_00S30B), - Rule::Get(&textureProj_00Y30B), - Rule::Get(&textureProj_00Y30B), - Rule::Get(&textureProj_00d30B), - Rule::Get(&textureProj_00d30B), - Rule::Get(&textureProj_00g10B), - Rule::Get(&textureProj_00o10B), - Rule::Get(&textureProj_00t10B), - Rule::Get(&textureProj_00g30B), - Rule::Get(&textureProj_00o30B), - Rule::Get(&textureProj_00t30B), - Rule::Get(&textureProj_00m30B), - Rule::Get(&textureProj_00q20B), - Rule::Get(&textureProj_00v20B), - Rule::Get(&textureProj_00q30B), - Rule::Get(&textureProj_00v30B), - Rule::Get(&textureProj_00n30B), - Rule::Get(&textureLod_00I10B00B), - Rule::Get(&textureLod_00I10B00B), - Rule::Get(&textureLod_00R10B00B), - Rule::Get(&textureLod_00R10B00B), - Rule::Get(&textureLod_00X10B00B), - Rule::Get(&textureLod_00X10B00B), - Rule::Get(&textureLod_00J20B00B), - Rule::Get(&textureLod_00J20B00B), - Rule::Get(&textureLod_00S20B00B), - Rule::Get(&textureLod_00S20B00B), - Rule::Get(&textureLod_00Y20B00B), - Rule::Get(&textureLod_00Y20B00B), - Rule::Get(&textureLod_00K20B00B), - Rule::Get(&textureLod_00K20B00B), - Rule::Get(&textureLod_00T20B00B), - Rule::Get(&textureLod_00T20B00B), - Rule::Get(&textureLod_00Z20B00B), - Rule::Get(&textureLod_00Z20B00B), - Rule::Get(&textureLod_00L20B00B), - Rule::Get(&textureLod_00L20B00B), - Rule::Get(&textureLod_00U20B00B), - Rule::Get(&textureLod_00U20B00B), - Rule::Get(&textureLod_00a20B00B), - Rule::Get(&textureLod_00a20B00B), - Rule::Get(&textureLod_00d20B00B), - Rule::Get(&textureLod_00d20B00B), - Rule::Get(&textureLod_00g00B00B), - Rule::Get(&textureLod_00o00B00B), - Rule::Get(&textureLod_00t00B00B), - Rule::Get(&textureLod_00m20B00B), - Rule::Get(&textureLod_00h10B00B), - Rule::Get(&textureLod_00p10B00B), - Rule::Get(&textureLod_00u10B00B), - Rule::Get(&textureLod_00i20B00B), - Rule::Get(&textureLod_00k30B00B), - Rule::Get(&textureLod_00k30B00B), - Rule::Get(&textureLod_00s30B00B), - Rule::Get(&textureLod_00s30B00B), - Rule::Get(&textureLod_00x30B00B), - Rule::Get(&textureLod_00x30B00B), - Rule::Get(&textureSize_00I00D), - Rule::Get(&textureSize_00I00D), - Rule::Get(&textureSize_00R00D), - Rule::Get(&textureSize_00R00D), - Rule::Get(&textureSize_00X00D), - Rule::Get(&textureSize_00X00D), - Rule::Get(&textureSize_00J00D), - Rule::Get(&textureSize_00J00D), - Rule::Get(&textureSize_00S00D), - Rule::Get(&textureSize_00S00D), - Rule::Get(&textureSize_00Y00D), - Rule::Get(&textureSize_00Y00D), - Rule::Get(&textureSize_00K00D), - Rule::Get(&textureSize_00K00D), - Rule::Get(&textureSize_00T00D), - Rule::Get(&textureSize_00T00D), - Rule::Get(&textureSize_00Z00D), - Rule::Get(&textureSize_00Z00D), - Rule::Get(&textureSize_00L00D), - Rule::Get(&textureSize_00L00D), - Rule::Get(&textureSize_00U00D), - Rule::Get(&textureSize_00U00D), - Rule::Get(&textureSize_00a00D), - Rule::Get(&textureSize_00a00D), - Rule::Get(&textureSize_00d00D), - Rule::Get(&textureSize_00d00D), - Rule::Get(&textureSize_00e00D), - Rule::Get(&textureSize_00e00D), - Rule::Get(&textureSize_00f00D), - Rule::Get(&textureSize_00f00D), - Rule::Get(&textureSize_00g00D), - Rule::Get(&textureSize_00o00D), - Rule::Get(&textureSize_00t00D), - Rule::Get(&textureSize_00m00D), - Rule::Get(&textureSize_00k00D), - Rule::Get(&textureSize_00k00D), - Rule::Get(&textureSize_00s00D), - Rule::Get(&textureSize_00s00D), - Rule::Get(&textureSize_00x00D), - Rule::Get(&textureSize_00x00D), - Rule::Get(&textureSize_00l00D), - Rule::Get(&textureSize_00l00D), - Rule::Get(&textureSize_00O), - Rule::Get(&textureSize_00q), - Rule::Get(&textureSize_00v), - Rule::Get(&textureSize_00n), - Rule::Get(&textureSize_00h00D), - Rule::Get(&textureSize_00p00D), - Rule::Get(&textureSize_00u00D), - Rule::Get(&textureSize_00i00D), - Rule::Get(&textureSize_00j), - Rule::Get(&textureSize_00j), - Rule::Get(&textureSize_00r), - Rule::Get(&textureSize_00r), - Rule::Get(&textureSize_00w), - Rule::Get(&textureSize_00w), - Rule::Get(&textureProjLod_00I20B00B), - Rule::Get(&textureProjLod_00I20B00B), - Rule::Get(&textureProjLod_00R20B00B), - Rule::Get(&textureProjLod_00R20B00B), - Rule::Get(&textureProjLod_00X20B00B), - Rule::Get(&textureProjLod_00X20B00B), - Rule::Get(&textureProjLod_00I30B00B), - Rule::Get(&textureProjLod_00I30B00B), - Rule::Get(&textureProjLod_00R30B00B), - Rule::Get(&textureProjLod_00R30B00B), - Rule::Get(&textureProjLod_00X30B00B), - Rule::Get(&textureProjLod_00X30B00B), - Rule::Get(&textureProjLod_00J30B00B), - Rule::Get(&textureProjLod_00J30B00B), - Rule::Get(&textureProjLod_00S30B00B), - Rule::Get(&textureProjLod_00S30B00B), - Rule::Get(&textureProjLod_00Y30B00B), - Rule::Get(&textureProjLod_00Y30B00B), - Rule::Get(&textureProjLod_00d30B00B), - Rule::Get(&textureProjLod_00d30B00B), - Rule::Get(&textureProjLod_00g10B00B), - Rule::Get(&textureProjLod_00o10B00B), - Rule::Get(&textureProjLod_00t10B00B), - Rule::Get(&textureProjLod_00g30B00B), - Rule::Get(&textureProjLod_00o30B00B), - Rule::Get(&textureProjLod_00t30B00B), - Rule::Get(&textureProjLod_00m30B00B), - Rule::Get(&texelFetch_00I10D00D), - Rule::Get(&texelFetch_00I10D00D), - Rule::Get(&texelFetch_00R10D00D), - Rule::Get(&texelFetch_00R10D00D), - Rule::Get(&texelFetch_00X10D00D), - Rule::Get(&texelFetch_00X10D00D), - Rule::Get(&texelFetch_00J20D00D), - Rule::Get(&texelFetch_00J20D00D), - Rule::Get(&texelFetch_00S20D00D), - Rule::Get(&texelFetch_00S20D00D), - Rule::Get(&texelFetch_00Y20D00D), - Rule::Get(&texelFetch_00Y20D00D), - Rule::Get(&texelFetch_00L20D00D), - Rule::Get(&texelFetch_00L20D00D), - Rule::Get(&texelFetch_00U20D00D), - Rule::Get(&texelFetch_00U20D00D), - Rule::Get(&texelFetch_00a20D00D), - Rule::Get(&texelFetch_00a20D00D), - Rule::Get(&texelFetch_00g00D00D), - Rule::Get(&texelFetch_00o00D00D), - Rule::Get(&texelFetch_00t00D00D), - Rule::Get(&texelFetch_00O10D), - Rule::Get(&texelFetch_00q10D), - Rule::Get(&texelFetch_00v10D), - Rule::Get(&texelFetch_00h10D00D), - Rule::Get(&texelFetch_00p10D00D), - Rule::Get(&texelFetch_00u10D00D), - Rule::Get(&texelFetch_00j00D), - Rule::Get(&texelFetch_00j00D), - Rule::Get(&texelFetch_00r00D), - Rule::Get(&texelFetch_00r00D), - Rule::Get(&texelFetch_00w00D), - Rule::Get(&texelFetch_00w00D), - Rule::Get(&textureGrad_00I10B10B10B), - Rule::Get(&textureGrad_00I10B10B10B), - Rule::Get(&textureGrad_00R10B10B10B), - Rule::Get(&textureGrad_00R10B10B10B), - Rule::Get(&textureGrad_00X10B10B10B), - Rule::Get(&textureGrad_00X10B10B10B), - Rule::Get(&textureGrad_00J20B20B20B), - Rule::Get(&textureGrad_00J20B20B20B), - Rule::Get(&textureGrad_00S20B20B20B), - Rule::Get(&textureGrad_00S20B20B20B), - Rule::Get(&textureGrad_00Y20B20B20B), - Rule::Get(&textureGrad_00Y20B20B20B), - Rule::Get(&textureGrad_00K20B20B20B), - Rule::Get(&textureGrad_00K20B20B20B), - Rule::Get(&textureGrad_00T20B20B20B), - Rule::Get(&textureGrad_00T20B20B20B), - Rule::Get(&textureGrad_00Z20B20B20B), - Rule::Get(&textureGrad_00Z20B20B20B), - Rule::Get(&textureGrad_00I00B00B00B), - Rule::Get(&textureGrad_00R00B00B00B), - Rule::Get(&textureGrad_00X00B00B00B), - Rule::Get(&textureGrad_00O10B10B10B), - Rule::Get(&textureGrad_00q10B10B10B), - Rule::Get(&textureGrad_00v10B10B10B), - Rule::Get(&textureGrad_00n20B10B10B), - Rule::Get(&textureGrad_00d20B10B10B), - Rule::Get(&textureGrad_00d20B10B10B), - Rule::Get(&textureGrad_00e30B20B20B), - Rule::Get(&textureGrad_00e30B20B20B), - Rule::Get(&textureGrad_00L20B10B10B), - Rule::Get(&textureGrad_00L20B10B10B), - Rule::Get(&textureGrad_00U20B10B10B), - Rule::Get(&textureGrad_00U20B10B10B), - Rule::Get(&textureGrad_00a20B10B10B), - Rule::Get(&textureGrad_00a20B10B10B), - Rule::Get(&textureGrad_00f30B10B10B), - Rule::Get(&textureGrad_00f30B10B10B), - Rule::Get(&textureGrad_00m20B00B00B), - Rule::Get(&textureGrad_00h10B00B00B), - Rule::Get(&textureGrad_00p10B00B00B), - Rule::Get(&textureGrad_00u10B00B00B), - Rule::Get(&textureGrad_00i20B00B00B), - Rule::Get(&textureGrad_00k30B20B20B), - Rule::Get(&textureGrad_00k30B20B20B), - Rule::Get(&textureGrad_00s30B20B20B), - Rule::Get(&textureGrad_00s30B20B20B), - Rule::Get(&textureGrad_00x30B20B20B), - Rule::Get(&textureGrad_00x30B20B20B), - Rule::Get(&textureProjGrad_00I20B10B10B), - Rule::Get(&textureProjGrad_00I20B10B10B), - Rule::Get(&textureProjGrad_00R20B10B10B), - Rule::Get(&textureProjGrad_00R20B10B10B), - Rule::Get(&textureProjGrad_00X20B10B10B), - Rule::Get(&textureProjGrad_00X20B10B10B), - Rule::Get(&textureProjGrad_00I30B10B10B), - Rule::Get(&textureProjGrad_00I30B10B10B), - Rule::Get(&textureProjGrad_00R30B10B10B), - Rule::Get(&textureProjGrad_00R30B10B10B), - Rule::Get(&textureProjGrad_00X30B10B10B), - Rule::Get(&textureProjGrad_00X30B10B10B), - Rule::Get(&textureProjGrad_00J30B20B20B), - Rule::Get(&textureProjGrad_00J30B20B20B), - Rule::Get(&textureProjGrad_00S30B20B20B), - Rule::Get(&textureProjGrad_00S30B20B20B), - Rule::Get(&textureProjGrad_00Y30B20B20B), - Rule::Get(&textureProjGrad_00Y30B20B20B), - Rule::Get(&textureProjGrad_00d30B10B10B), - Rule::Get(&textureProjGrad_00d30B10B10B), - Rule::Get(&textureProjGrad_00g10B00B00B), - Rule::Get(&textureProjGrad_00o10B00B00B), - Rule::Get(&textureProjGrad_00t10B00B00B), - Rule::Get(&textureProjGrad_00g30B00B00B), - Rule::Get(&textureProjGrad_00o30B00B00B), - Rule::Get(&textureProjGrad_00t30B00B00B), - Rule::Get(&textureProjGrad_00m30B00B00B), - Rule::Get(&textureProjGrad_00O20B10B10B), - Rule::Get(&textureProjGrad_00q20B10B10B), - Rule::Get(&textureProjGrad_00v20B10B10B), - Rule::Get(&textureProjGrad_00O30B10B10B), - Rule::Get(&textureProjGrad_00q30B10B10B), - Rule::Get(&textureProjGrad_00v30B10B10B), - Rule::Get(&textureProjGrad_00n30B10B10B), - Rule::Get(&textureQueryLevels_00g), - Rule::Get(&textureQueryLevels_00o), - Rule::Get(&textureQueryLevels_00t), - Rule::Get(&textureQueryLevels_00I), - Rule::Get(&textureQueryLevels_00R), - Rule::Get(&textureQueryLevels_00X), - Rule::Get(&textureQueryLevels_00J), - Rule::Get(&textureQueryLevels_00S), - Rule::Get(&textureQueryLevels_00Y), - Rule::Get(&textureQueryLevels_00K), - Rule::Get(&textureQueryLevels_00T), - Rule::Get(&textureQueryLevels_00Z), - Rule::Get(&textureQueryLevels_00h), - Rule::Get(&textureQueryLevels_00p), - Rule::Get(&textureQueryLevels_00u), - Rule::Get(&textureQueryLevels_00L), - Rule::Get(&textureQueryLevels_00U), - Rule::Get(&textureQueryLevels_00a), - Rule::Get(&textureQueryLevels_00k), - Rule::Get(&textureQueryLevels_00s), - Rule::Get(&textureQueryLevels_00x), - Rule::Get(&textureQueryLevels_00m), - Rule::Get(&textureQueryLevels_00d), - Rule::Get(&textureQueryLevels_00e), - Rule::Get(&textureQueryLevels_00i), - Rule::Get(&textureQueryLevels_00f), - Rule::Get(&textureQueryLevels_00l), - Rule::Get(&textureSamples_00P), - Rule::Get(&textureSamples_00V), - Rule::Get(&textureSamples_00b), - Rule::Get(&textureSamples_00Q), - Rule::Get(&textureSamples_00W), - Rule::Get(&textureSamples_00c), - Rule::Get(&textureSize_00P), - Rule::Get(&textureSize_00P), - Rule::Get( - &textureSizeExt_00P), - Rule::Get(&textureSize_00V), - Rule::Get(&textureSize_00V), - Rule::Get( - &textureSizeExt_00V), - Rule::Get(&textureSize_00b), - Rule::Get(&textureSize_00b), - Rule::Get( - &textureSizeExt_00b), - Rule::Get(&textureSize_00Q), - Rule::Get( - &textureSizeExt_00Q), - Rule::Get(&textureSize_00W), - Rule::Get( - &textureSizeExt_00W), - Rule::Get(&textureSize_00c), - Rule::Get( - &textureSizeExt_00c), - Rule::Get(&texture_00k30B), - Rule::Get(&texture_00s30B), - Rule::Get(&texture_00x30B), - Rule::Get(&texture_00k30B00B), - Rule::Get(&texture_00s30B00B), - Rule::Get(&texture_00x30B00B), - Rule::Get(&textureGather_00k30B), - Rule::Get(&textureGather_00k30B), - Rule::Get(&textureGather_00s30B), - Rule::Get(&textureGather_00s30B), - Rule::Get(&textureGather_00x30B), - Rule::Get(&textureGather_00x30B), - Rule::Get(&textureGather_00k30B00D), - Rule::Get(&textureGather_00k30B00D), - Rule::Get(&textureGather_00s30B00D), - Rule::Get(&textureGather_00s30B00D), - Rule::Get(&textureGather_00x30B00D), - Rule::Get(&textureGather_00x30B00D), - Rule::Get(&textureGather_00l30B00B), - Rule::Get(&textureGather_00l30B00B), - Rule::Get(&texelFetch_00P10D00D), - Rule::Get(&texelFetch_00P10D00D), - Rule::Get( - &texelFetchExt_00P10D00D), - Rule::Get(&texelFetch_00V10D00D), - Rule::Get(&texelFetch_00V10D00D), - Rule::Get( - &texelFetchExt_00V10D00D), - Rule::Get(&texelFetch_00b10D00D), - Rule::Get(&texelFetch_00b10D00D), - Rule::Get( - &texelFetchExt_00b10D00D), - Rule::Get(&texelFetch_00Q20D00D), - Rule::Get( - &texelFetchExt_00Q20D00D), - Rule::Get(&texelFetch_00W20D00D), - Rule::Get( - &texelFetchExt_00W20D00D), - Rule::Get(&texelFetch_00c20D00D), - Rule::Get( - &texelFetchExt_00c20D00D), - Rule::Get(&texture_00I10B00B), - Rule::Get(&texture_00I10B00B), - Rule::Get(&texture_00R10B00B), - Rule::Get(&texture_00R10B00B), - Rule::Get(&texture_00X10B00B), - Rule::Get(&texture_00X10B00B), - Rule::Get(&texture_00J20B00B), - Rule::Get(&texture_00J20B00B), - Rule::Get(&texture_00S20B00B), - Rule::Get(&texture_00S20B00B), - Rule::Get(&texture_00Y20B00B), - Rule::Get(&texture_00Y20B00B), - Rule::Get(&texture_00K20B00B), - Rule::Get(&texture_00K20B00B), - Rule::Get(&texture_00T20B00B), - Rule::Get(&texture_00T20B00B), - Rule::Get(&texture_00Z20B00B), - Rule::Get(&texture_00Z20B00B), - Rule::Get(&texture_00L20B00B), - Rule::Get(&texture_00L20B00B), - Rule::Get(&texture_00U20B00B), - Rule::Get(&texture_00U20B00B), - Rule::Get(&texture_00a20B00B), - Rule::Get(&texture_00a20B00B), - Rule::Get(&textureProj_00I20B00B), - Rule::Get(&textureProj_00I20B00B), - Rule::Get(&textureProj_00R20B00B), - Rule::Get(&textureProj_00R20B00B), - Rule::Get(&textureProj_00X20B00B), - Rule::Get(&textureProj_00X20B00B), - Rule::Get(&textureProj_00I30B00B), - Rule::Get(&textureProj_00I30B00B), - Rule::Get(&textureProj_00R30B00B), - Rule::Get(&textureProj_00R30B00B), - Rule::Get(&textureProj_00X30B00B), - Rule::Get(&textureProj_00X30B00B), - Rule::Get(&textureProj_00J30B00B), - Rule::Get(&textureProj_00J30B00B), - Rule::Get(&textureProj_00S30B00B), - Rule::Get(&textureProj_00S30B00B), - Rule::Get(&textureProj_00Y30B00B), - Rule::Get(&textureProj_00Y30B00B), - Rule::Get(&texture_00d20B00B), - Rule::Get(&texture_00d20B00B), - Rule::Get(&texture_00e30B00B), - Rule::Get(&texture_00e30B00B), - Rule::Get(&textureProj_00d30B00B), - Rule::Get(&textureProj_00d30B00B), - Rule::Get(&texture_00g00B00B), - Rule::Get(&texture_00o00B00B), - Rule::Get(&texture_00t00B00B), - Rule::Get(&texture_00m20B00B), - Rule::Get(&texture_00h20B00B), - Rule::Get(&texture_00p20B00B), - Rule::Get(&texture_00u20B00B), - Rule::Get(&texture_00i20B00B), - Rule::Get(&texture_00f30B00B), - Rule::Get(&textureProj_00g10B00B), - Rule::Get(&textureProj_00o10B00B), - Rule::Get(&textureProj_00t10B00B), - Rule::Get(&textureProj_00g30B00B), - Rule::Get(&textureProj_00o30B00B), - Rule::Get(&textureProj_00t30B00B), - Rule::Get(&textureProj_00m30B00B), - Rule::Get( - &texture_00M10B00B), - Rule::Get( - &textureProj_00M20B00B), - Rule::Get( - &textureProj_00M30B00B), - Rule::Get(&texture_00N10B00B), - Rule::Get(&textureProj_00N20B00B), - Rule::Get(&textureProj_00N30B00B), - Rule::Get(&textureQueryLod_00g00B), - Rule::Get(&textureQueryLod_00o00B), - Rule::Get(&textureQueryLod_00t00B), - Rule::Get(&textureQueryLod_00I10B), - Rule::Get(&textureQueryLod_00R10B), - Rule::Get(&textureQueryLod_00X10B), - Rule::Get(&textureQueryLod_00J20B), - Rule::Get(&textureQueryLod_00S20B), - Rule::Get(&textureQueryLod_00Y20B), - Rule::Get(&textureQueryLod_00K20B), - Rule::Get(&textureQueryLod_00T20B), - Rule::Get(&textureQueryLod_00Z20B), - Rule::Get(&textureQueryLod_00h00B), - Rule::Get(&textureQueryLod_00p00B), - Rule::Get(&textureQueryLod_00u00B), - Rule::Get(&textureQueryLod_00L10B), - Rule::Get(&textureQueryLod_00U10B), - Rule::Get(&textureQueryLod_00a10B), - Rule::Get(&textureQueryLod_00k20B), - Rule::Get(&textureQueryLod_00s20B), - Rule::Get(&textureQueryLod_00x20B), - Rule::Get(&textureQueryLod_00m00B), - Rule::Get(&textureQueryLod_00d10B), - Rule::Get(&textureQueryLod_00e20B), - Rule::Get(&textureQueryLod_00i00B), - Rule::Get(&textureQueryLod_00f10B), - Rule::Get(&textureQueryLod_00l20B), - Rule::Get(&textureOffset_00I10B10D), - Rule::Get(&textureOffset_00I10B10D), - Rule::Get(&textureOffset_00R10B10D), - Rule::Get(&textureOffset_00R10B10D), - Rule::Get(&textureOffset_00X10B10D), - Rule::Get(&textureOffset_00X10B10D), - Rule::Get(&textureOffset_00J20B20D), - Rule::Get(&textureOffset_00J20B20D), - Rule::Get(&textureOffset_00S20B20D), - Rule::Get(&textureOffset_00S20B20D), - Rule::Get(&textureOffset_00Y20B20D), - Rule::Get(&textureOffset_00Y20B20D), - Rule::Get(&textureOffset_00d20B10D), - Rule::Get(&textureOffset_00d20B10D), - Rule::Get(&textureOffset_00L20B10D), - Rule::Get(&textureOffset_00L20B10D), - Rule::Get(&textureOffset_00U20B10D), - Rule::Get(&textureOffset_00U20B10D), - Rule::Get(&textureOffset_00a20B10D), - Rule::Get(&textureOffset_00a20B10D), - Rule::Get(&textureOffset_00g00B00D), - Rule::Get(&textureOffset_00o00B00D), - Rule::Get(&textureOffset_00t00B00D), - Rule::Get(&textureOffset_00O10B10D), - Rule::Get(&textureOffset_00q10B10D), - Rule::Get(&textureOffset_00v10B10D), - Rule::Get(&textureOffset_00n20B10D), - Rule::Get(&textureOffset_00m20B00D), - Rule::Get(&textureOffset_00h10B00D), - Rule::Get(&textureOffset_00p10B00D), - Rule::Get(&textureOffset_00u10B00D), - Rule::Get(&textureOffset_00i20B00D), - Rule::Get(&textureOffset_00f30B10D), - Rule::Get(&textureProjOffset_00I20B10D), - Rule::Get(&textureProjOffset_00I20B10D), - Rule::Get(&textureProjOffset_00R20B10D), - Rule::Get(&textureProjOffset_00R20B10D), - Rule::Get(&textureProjOffset_00X20B10D), - Rule::Get(&textureProjOffset_00X20B10D), - Rule::Get(&textureProjOffset_00I30B10D), - Rule::Get(&textureProjOffset_00I30B10D), - Rule::Get(&textureProjOffset_00R30B10D), - Rule::Get(&textureProjOffset_00R30B10D), - Rule::Get(&textureProjOffset_00X30B10D), - Rule::Get(&textureProjOffset_00X30B10D), - Rule::Get(&textureProjOffset_00J30B20D), - Rule::Get(&textureProjOffset_00J30B20D), - Rule::Get(&textureProjOffset_00S30B20D), - Rule::Get(&textureProjOffset_00S30B20D), - Rule::Get(&textureProjOffset_00Y30B20D), - Rule::Get(&textureProjOffset_00Y30B20D), - Rule::Get(&textureProjOffset_00d30B10D), - Rule::Get(&textureProjOffset_00d30B10D), - Rule::Get(&textureProjOffset_00g10B00D), - Rule::Get(&textureProjOffset_00o10B00D), - Rule::Get(&textureProjOffset_00t10B00D), - Rule::Get(&textureProjOffset_00g30B00D), - Rule::Get(&textureProjOffset_00o30B00D), - Rule::Get(&textureProjOffset_00t30B00D), - Rule::Get(&textureProjOffset_00O20B10D), - Rule::Get(&textureProjOffset_00q20B10D), - Rule::Get(&textureProjOffset_00v20B10D), - Rule::Get(&textureProjOffset_00O30B10D), - Rule::Get(&textureProjOffset_00q30B10D), - Rule::Get(&textureProjOffset_00v30B10D), - Rule::Get(&textureProjOffset_00n30B10D), - Rule::Get(&textureProjOffset_00m30B00D), - Rule::Get(&textureLodOffset_00I10B00B10D), - Rule::Get(&textureLodOffset_00I10B00B10D), - Rule::Get(&textureLodOffset_00R10B00B10D), - Rule::Get(&textureLodOffset_00R10B00B10D), - Rule::Get(&textureLodOffset_00X10B00B10D), - Rule::Get(&textureLodOffset_00X10B00B10D), - Rule::Get(&textureLodOffset_00J20B00B20D), - Rule::Get(&textureLodOffset_00J20B00B20D), - Rule::Get(&textureLodOffset_00S20B00B20D), - Rule::Get(&textureLodOffset_00S20B00B20D), - Rule::Get(&textureLodOffset_00Y20B00B20D), - Rule::Get(&textureLodOffset_00Y20B00B20D), - Rule::Get(&textureLodOffset_00d20B00B10D), - Rule::Get(&textureLodOffset_00d20B00B10D), - Rule::Get(&textureLodOffset_00L20B00B10D), - Rule::Get(&textureLodOffset_00L20B00B10D), - Rule::Get(&textureLodOffset_00U20B00B10D), - Rule::Get(&textureLodOffset_00U20B00B10D), - Rule::Get(&textureLodOffset_00a20B00B10D), - Rule::Get(&textureLodOffset_00a20B00B10D), - Rule::Get(&textureLodOffset_00g00B00B00D), - Rule::Get(&textureLodOffset_00o00B00B00D), - Rule::Get(&textureLodOffset_00t00B00B00D), - Rule::Get(&textureLodOffset_00m20B00B00D), - Rule::Get(&textureLodOffset_00h10B00B00D), - Rule::Get(&textureLodOffset_00p10B00B00D), - Rule::Get(&textureLodOffset_00u10B00B00D), - Rule::Get(&textureLodOffset_00i20B00B00D), - Rule::Get(&textureProjLodOffset_00I20B00B10D), - Rule::Get(&textureProjLodOffset_00I20B00B10D), - Rule::Get(&textureProjLodOffset_00R20B00B10D), - Rule::Get(&textureProjLodOffset_00R20B00B10D), - Rule::Get(&textureProjLodOffset_00X20B00B10D), - Rule::Get(&textureProjLodOffset_00X20B00B10D), - Rule::Get(&textureProjLodOffset_00I30B00B10D), - Rule::Get(&textureProjLodOffset_00I30B00B10D), - Rule::Get(&textureProjLodOffset_00R30B00B10D), - Rule::Get(&textureProjLodOffset_00R30B00B10D), - Rule::Get(&textureProjLodOffset_00X30B00B10D), - Rule::Get(&textureProjLodOffset_00X30B00B10D), - Rule::Get(&textureProjLodOffset_00J30B00B20D), - Rule::Get(&textureProjLodOffset_00J30B00B20D), - Rule::Get(&textureProjLodOffset_00S30B00B20D), - Rule::Get(&textureProjLodOffset_00S30B00B20D), - Rule::Get(&textureProjLodOffset_00Y30B00B20D), - Rule::Get(&textureProjLodOffset_00Y30B00B20D), - Rule::Get(&textureProjLodOffset_00d30B00B10D), - Rule::Get(&textureProjLodOffset_00d30B00B10D), - Rule::Get(&textureProjLodOffset_00g10B00B00D), - Rule::Get(&textureProjLodOffset_00o10B00B00D), - Rule::Get(&textureProjLodOffset_00t10B00B00D), - Rule::Get(&textureProjLodOffset_00g30B00B00D), - Rule::Get(&textureProjLodOffset_00o30B00B00D), - Rule::Get(&textureProjLodOffset_00t30B00B00D), - Rule::Get(&textureProjLodOffset_00m30B00B00D), - Rule::Get(&texelFetchOffset_00I10D00D10D), - Rule::Get(&texelFetchOffset_00I10D00D10D), - Rule::Get(&texelFetchOffset_00R10D00D10D), - Rule::Get(&texelFetchOffset_00R10D00D10D), - Rule::Get(&texelFetchOffset_00X10D00D10D), - Rule::Get(&texelFetchOffset_00X10D00D10D), - Rule::Get(&texelFetchOffset_00J20D00D20D), - Rule::Get(&texelFetchOffset_00J20D00D20D), - Rule::Get(&texelFetchOffset_00S20D00D20D), - Rule::Get(&texelFetchOffset_00S20D00D20D), - Rule::Get(&texelFetchOffset_00Y20D00D20D), - Rule::Get(&texelFetchOffset_00Y20D00D20D), - Rule::Get(&texelFetchOffset_00L20D00D10D), - Rule::Get(&texelFetchOffset_00L20D00D10D), - Rule::Get(&texelFetchOffset_00U20D00D10D), - Rule::Get(&texelFetchOffset_00U20D00D10D), - Rule::Get(&texelFetchOffset_00a20D00D10D), - Rule::Get(&texelFetchOffset_00a20D00D10D), - Rule::Get(&texelFetchOffset_00g00D00D00D), - Rule::Get(&texelFetchOffset_00o00D00D00D), - Rule::Get(&texelFetchOffset_00t00D00D00D), - Rule::Get(&texelFetchOffset_00O10D10D), - Rule::Get(&texelFetchOffset_00q10D10D), - Rule::Get(&texelFetchOffset_00v10D10D), - Rule::Get(&texelFetchOffset_00h10D00D00D), - Rule::Get(&texelFetchOffset_00p10D00D00D), - Rule::Get(&texelFetchOffset_00u10D00D00D), - Rule::Get(&textureGradOffset_00I10B10B10B10D), - Rule::Get(&textureGradOffset_00I10B10B10B10D), - Rule::Get(&textureGradOffset_00R10B10B10B10D), - Rule::Get(&textureGradOffset_00R10B10B10B10D), - Rule::Get(&textureGradOffset_00X10B10B10B10D), - Rule::Get(&textureGradOffset_00X10B10B10B10D), - Rule::Get(&textureGradOffset_00J20B20B20B20D), - Rule::Get(&textureGradOffset_00J20B20B20B20D), - Rule::Get(&textureGradOffset_00S20B20B20B20D), - Rule::Get(&textureGradOffset_00S20B20B20B20D), - Rule::Get(&textureGradOffset_00Y20B20B20B20D), - Rule::Get(&textureGradOffset_00Y20B20B20B20D), - Rule::Get(&textureGradOffset_00d20B10B10B10D), - Rule::Get(&textureGradOffset_00d20B10B10B10D), - Rule::Get(&textureGradOffset_00L20B10B10B10D), - Rule::Get(&textureGradOffset_00L20B10B10B10D), - Rule::Get(&textureGradOffset_00U20B10B10B10D), - Rule::Get(&textureGradOffset_00U20B10B10B10D), - Rule::Get(&textureGradOffset_00a20B10B10B10D), - Rule::Get(&textureGradOffset_00a20B10B10B10D), - Rule::Get(&textureGradOffset_00f30B10B10B10D), - Rule::Get(&textureGradOffset_00f30B10B10B10D), - Rule::Get(&textureGradOffset_00g00B00B00B00D), - Rule::Get(&textureGradOffset_00o00B00B00B00D), - Rule::Get(&textureGradOffset_00t00B00B00B00D), - Rule::Get(&textureGradOffset_00O10B10B10B10D), - Rule::Get(&textureGradOffset_00q10B10B10B10D), - Rule::Get(&textureGradOffset_00v10B10B10B10D), - Rule::Get(&textureGradOffset_00n20B10B10B10D), - Rule::Get(&textureGradOffset_00m20B00B00B00D), - Rule::Get(&textureGradOffset_00h10B00B00B00D), - Rule::Get(&textureGradOffset_00p10B00B00B00D), - Rule::Get(&textureGradOffset_00u10B00B00B00D), - Rule::Get(&textureGradOffset_00i20B00B00B00D), - Rule::Get(&textureProjGradOffset_00I20B10B10B10D), - Rule::Get(&textureProjGradOffset_00I20B10B10B10D), - Rule::Get(&textureProjGradOffset_00R20B10B10B10D), - Rule::Get(&textureProjGradOffset_00R20B10B10B10D), - Rule::Get(&textureProjGradOffset_00X20B10B10B10D), - Rule::Get(&textureProjGradOffset_00X20B10B10B10D), - Rule::Get(&textureProjGradOffset_00I30B10B10B10D), - Rule::Get(&textureProjGradOffset_00I30B10B10B10D), - Rule::Get(&textureProjGradOffset_00R30B10B10B10D), - Rule::Get(&textureProjGradOffset_00R30B10B10B10D), - Rule::Get(&textureProjGradOffset_00X30B10B10B10D), - Rule::Get(&textureProjGradOffset_00X30B10B10B10D), - Rule::Get(&textureProjGradOffset_00J30B20B20B20D), - Rule::Get(&textureProjGradOffset_00J30B20B20B20D), - Rule::Get(&textureProjGradOffset_00S30B20B20B20D), - Rule::Get(&textureProjGradOffset_00S30B20B20B20D), - Rule::Get(&textureProjGradOffset_00Y30B20B20B20D), - Rule::Get(&textureProjGradOffset_00Y30B20B20B20D), - Rule::Get(&textureProjGradOffset_00d30B10B10B10D), - Rule::Get(&textureProjGradOffset_00d30B10B10B10D), - Rule::Get(&textureProjGradOffset_00g10B00B00B00D), - Rule::Get(&textureProjGradOffset_00o10B00B00B00D), - Rule::Get(&textureProjGradOffset_00t10B00B00B00D), - Rule::Get(&textureProjGradOffset_00g30B00B00B00D), - Rule::Get(&textureProjGradOffset_00o30B00B00B00D), - Rule::Get(&textureProjGradOffset_00t30B00B00B00D), - Rule::Get(&textureProjGradOffset_00O20B10B10B10D), - Rule::Get(&textureProjGradOffset_00q20B10B10B10D), - Rule::Get(&textureProjGradOffset_00v20B10B10B10D), - Rule::Get(&textureProjGradOffset_00O30B10B10B10D), - Rule::Get(&textureProjGradOffset_00q30B10B10B10D), - Rule::Get(&textureProjGradOffset_00v30B10B10B10D), - Rule::Get(&textureProjGradOffset_00n30B10B10B10D), - Rule::Get(&textureProjGradOffset_00m30B00B00B00D), - Rule::Get(&textureOffset_00I10B10D00B), - Rule::Get(&textureOffset_00I10B10D00B), - Rule::Get(&textureOffset_00R10B10D00B), - Rule::Get(&textureOffset_00R10B10D00B), - Rule::Get(&textureOffset_00X10B10D00B), - Rule::Get(&textureOffset_00X10B10D00B), - Rule::Get(&textureOffset_00J20B20D00B), - Rule::Get(&textureOffset_00J20B20D00B), - Rule::Get(&textureOffset_00S20B20D00B), - Rule::Get(&textureOffset_00S20B20D00B), - Rule::Get(&textureOffset_00Y20B20D00B), - Rule::Get(&textureOffset_00Y20B20D00B), - Rule::Get(&textureOffset_00d20B10D00B), - Rule::Get(&textureOffset_00d20B10D00B), - Rule::Get(&textureOffset_00L20B10D00B), - Rule::Get(&textureOffset_00L20B10D00B), - Rule::Get(&textureOffset_00U20B10D00B), - Rule::Get(&textureOffset_00U20B10D00B), - Rule::Get(&textureOffset_00a20B10D00B), - Rule::Get(&textureOffset_00a20B10D00B), - Rule::Get(&textureOffset_00g00B00D00B), - Rule::Get(&textureOffset_00o00B00D00B), - Rule::Get(&textureOffset_00t00B00D00B), - Rule::Get(&textureOffset_00m20B00D00B), - Rule::Get(&textureOffset_00h10B00D00B), - Rule::Get(&textureOffset_00p10B00D00B), - Rule::Get(&textureOffset_00u10B00D00B), - Rule::Get(&textureOffset_00i20B00D00B), - Rule::Get(&textureProjOffset_00I20B10D00B), - Rule::Get(&textureProjOffset_00I20B10D00B), - Rule::Get(&textureProjOffset_00R20B10D00B), - Rule::Get(&textureProjOffset_00R20B10D00B), - Rule::Get(&textureProjOffset_00X20B10D00B), - Rule::Get(&textureProjOffset_00X20B10D00B), - Rule::Get(&textureProjOffset_00I30B10D00B), - Rule::Get(&textureProjOffset_00I30B10D00B), - Rule::Get(&textureProjOffset_00R30B10D00B), - Rule::Get(&textureProjOffset_00R30B10D00B), - Rule::Get(&textureProjOffset_00X30B10D00B), - Rule::Get(&textureProjOffset_00X30B10D00B), - Rule::Get(&textureProjOffset_00J30B20D00B), - Rule::Get(&textureProjOffset_00J30B20D00B), - Rule::Get(&textureProjOffset_00S30B20D00B), - Rule::Get(&textureProjOffset_00S30B20D00B), - Rule::Get(&textureProjOffset_00Y30B20D00B), - Rule::Get(&textureProjOffset_00Y30B20D00B), - Rule::Get(&textureProjOffset_00d30B10D00B), - Rule::Get(&textureProjOffset_00d30B10D00B), - Rule::Get(&textureProjOffset_00g10B00D00B), - Rule::Get(&textureProjOffset_00o10B00D00B), - Rule::Get(&textureProjOffset_00t10B00D00B), - Rule::Get(&textureProjOffset_00g30B00D00B), - Rule::Get(&textureProjOffset_00o30B00D00B), - Rule::Get(&textureProjOffset_00t30B00D00B), - Rule::Get(&textureProjOffset_00m30B00D00B), - Rule::Get( - &texture_00M10B), - Rule::Get( - &textureProj_00M20B), - Rule::Get( - &textureProj_00M30B), - Rule::Get( - &textureSize_00M00D), - Rule::Get( - &texelFetch_00M10D00D), - Rule::Get(&texture_00N10B), - Rule::Get(&textureProj_00N20B), - Rule::Get(&textureProj_00N30B), - Rule::Get(&rgb_2_yuv_20B00H), - Rule::Get(&yuv_2_rgb_20B00H), - Rule::Get(&textureSize_00N00D), - Rule::Get(&texelFetch_00N10D00D), - Rule::Get(&textureGather_00I10B), - Rule::Get(&textureGather_00I10B), - Rule::Get(&textureGather_00R10B), - Rule::Get(&textureGather_00R10B), - Rule::Get(&textureGather_00X10B), - Rule::Get(&textureGather_00X10B), - Rule::Get(&textureGather_00I10B00D), - Rule::Get(&textureGather_00I10B00D), - Rule::Get(&textureGather_00R10B00D), - Rule::Get(&textureGather_00R10B00D), - Rule::Get(&textureGather_00X10B00D), - Rule::Get(&textureGather_00X10B00D), - Rule::Get(&textureGather_00L20B), - Rule::Get(&textureGather_00L20B), - Rule::Get(&textureGather_00U20B), - Rule::Get(&textureGather_00U20B), - Rule::Get(&textureGather_00a20B), - Rule::Get(&textureGather_00a20B), - Rule::Get(&textureGather_00L20B00D), - Rule::Get(&textureGather_00L20B00D), - Rule::Get(&textureGather_00U20B00D), - Rule::Get(&textureGather_00U20B00D), - Rule::Get(&textureGather_00a20B00D), - Rule::Get(&textureGather_00a20B00D), - Rule::Get(&textureGather_00K20B), - Rule::Get(&textureGather_00K20B), - Rule::Get(&textureGather_00T20B), - Rule::Get(&textureGather_00T20B), - Rule::Get(&textureGather_00Z20B), - Rule::Get(&textureGather_00Z20B), - Rule::Get(&textureGather_00K20B00D), - Rule::Get(&textureGather_00K20B00D), - Rule::Get(&textureGather_00T20B00D), - Rule::Get(&textureGather_00T20B00D), - Rule::Get(&textureGather_00Z20B00D), - Rule::Get(&textureGather_00Z20B00D), - Rule::Get(&textureGather_00O20B), - Rule::Get(&textureGather_00q20B), - Rule::Get(&textureGather_00v20B), - Rule::Get(&textureGather_00O20B00D), - Rule::Get(&textureGather_00q20B00D), - Rule::Get(&textureGather_00v20B00D), - Rule::Get(&textureGather_00d10B), - Rule::Get(&textureGather_00d10B00B), - Rule::Get(&textureGather_00d10B00B), - Rule::Get(&textureGather_00f20B), - Rule::Get(&textureGather_00f20B00B), - Rule::Get(&textureGather_00f20B00B), - Rule::Get(&textureGather_00e20B), - Rule::Get(&textureGather_00e20B00B), - Rule::Get(&textureGather_00e20B00B), - Rule::Get(&textureGather_00n10B00B), - Rule::Get(&textureGatherOffset_00I10B10D), - Rule::Get(&textureGatherOffset_00I10B10D), - Rule::Get(&textureGatherOffset_00R10B10D), - Rule::Get(&textureGatherOffset_00R10B10D), - Rule::Get(&textureGatherOffset_00X10B10D), - Rule::Get(&textureGatherOffset_00X10B10D), - Rule::Get(&textureGatherOffset_00L20B10D), - Rule::Get(&textureGatherOffset_00L20B10D), - Rule::Get(&textureGatherOffset_00U20B10D), - Rule::Get(&textureGatherOffset_00U20B10D), - Rule::Get(&textureGatherOffset_00a20B10D), - Rule::Get(&textureGatherOffset_00a20B10D), - Rule::Get(&textureGatherOffset_00d10B00B10D), - Rule::Get(&textureGatherOffset_00d10B00B10D), - Rule::Get(&textureGatherOffset_00f20B00B10D), - Rule::Get(&textureGatherOffset_00f20B00B10D), - Rule::Get(&textureGatherOffset_00O10B10D), - Rule::Get(&textureGatherOffset_00q10B10D), - Rule::Get(&textureGatherOffset_00v10B10D), - Rule::Get(&textureGatherOffset_00n10B00B10D), - Rule::Get(&textureGatherOffset_00I10B10D00D), - Rule::Get(&textureGatherOffset_00I10B10D00D), - Rule::Get(&textureGatherOffset_00R10B10D00D), - Rule::Get(&textureGatherOffset_00R10B10D00D), - Rule::Get(&textureGatherOffset_00X10B10D00D), - Rule::Get(&textureGatherOffset_00X10B10D00D), - Rule::Get(&textureGatherOffset_00L20B10D00D), - Rule::Get(&textureGatherOffset_00L20B10D00D), - Rule::Get(&textureGatherOffset_00U20B10D00D), - Rule::Get(&textureGatherOffset_00U20B10D00D), - Rule::Get(&textureGatherOffset_00a20B10D00D), - Rule::Get(&textureGatherOffset_00a20B10D00D), - Rule::Get(&textureGatherOffset_00O10B10D00D), - Rule::Get(&textureGatherOffset_00q10B10D00D), - Rule::Get(&textureGatherOffset_00v10B10D00D), - Rule::Get(&textureGatherOffsets_00I10B10Dx4), - Rule::Get(&textureGatherOffsets_00I10B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00I10B10Dx4), - Rule::Get(&textureGatherOffsets_00R10B10Dx4), - Rule::Get(&textureGatherOffsets_00R10B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00R10B10Dx4), - Rule::Get(&textureGatherOffsets_00X10B10Dx4), - Rule::Get(&textureGatherOffsets_00X10B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00X10B10Dx4), - Rule::Get(&textureGatherOffsets_00L20B10Dx4), - Rule::Get(&textureGatherOffsets_00L20B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00L20B10Dx4), - Rule::Get(&textureGatherOffsets_00U20B10Dx4), - Rule::Get(&textureGatherOffsets_00U20B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00U20B10Dx4), - Rule::Get(&textureGatherOffsets_00a20B10Dx4), - Rule::Get(&textureGatherOffsets_00a20B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00a20B10Dx4), - Rule::Get(&textureGatherOffsets_00d10B00B10Dx4), - Rule::Get(&textureGatherOffsets_00d10B00B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00d10B00B10Dx4), - Rule::Get(&textureGatherOffsets_00f20B00B10Dx4), - Rule::Get(&textureGatherOffsets_00f20B00B10Dx4), - Rule::Get( - &textureGatherOffsetsExt_00f20B00B10Dx4), - Rule::Get(&textureGatherOffsets_00O10B10Dx4), - Rule::Get(&textureGatherOffsets_00q10B10Dx4), - Rule::Get(&textureGatherOffsets_00v10B10Dx4), - Rule::Get(&textureGatherOffsets_00n10B00B10Dx4), - Rule::Get(&textureGatherOffsets_00I10B10Dx400D), - Rule::Get(&textureGatherOffsets_00I10B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00I10B10Dx400D), - Rule::Get(&textureGatherOffsets_00R10B10Dx400D), - Rule::Get(&textureGatherOffsets_00R10B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00R10B10Dx400D), - Rule::Get(&textureGatherOffsets_00X10B10Dx400D), - Rule::Get(&textureGatherOffsets_00X10B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00X10B10Dx400D), - Rule::Get(&textureGatherOffsets_00L20B10Dx400D), - Rule::Get(&textureGatherOffsets_00L20B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00L20B10Dx400D), - Rule::Get(&textureGatherOffsets_00U20B10Dx400D), - Rule::Get(&textureGatherOffsets_00U20B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00U20B10Dx400D), - Rule::Get(&textureGatherOffsets_00a20B10Dx400D), - Rule::Get(&textureGatherOffsets_00a20B10Dx400D), - Rule::Get( - &textureGatherOffsetsExt_00a20B10Dx400D), - Rule::Get(&textureGatherOffsets_00O10B10Dx400D), - Rule::Get(&textureGatherOffsets_00q10B10Dx400D), - Rule::Get(&textureGatherOffsets_00v10B10Dx400D), - Rule::Get(&dFdxFine_00B), - Rule::Get(&dFdxFine_10B), - Rule::Get(&dFdxFine_20B), - Rule::Get(&dFdxFine_30B), - Rule::Get(&dFdyFine_00B), - Rule::Get(&dFdyFine_10B), - Rule::Get(&dFdyFine_20B), - Rule::Get(&dFdyFine_30B), - Rule::Get(&dFdxCoarse_00B), - Rule::Get(&dFdxCoarse_10B), - Rule::Get(&dFdxCoarse_20B), - Rule::Get(&dFdxCoarse_30B), - Rule::Get(&dFdyCoarse_00B), - Rule::Get(&dFdyCoarse_10B), - Rule::Get(&dFdyCoarse_20B), - Rule::Get(&dFdyCoarse_30B), - Rule::Get(&fwidthFine_00B), - Rule::Get(&fwidthFine_10B), - Rule::Get(&fwidthFine_20B), - Rule::Get(&fwidthFine_30B), - Rule::Get(&fwidthCoarse_00B), - Rule::Get(&fwidthCoarse_10B), - Rule::Get(&fwidthCoarse_20B), - Rule::Get(&fwidthCoarse_30B), - Rule::Get(&interpolateAtCentroid_00B), - Rule::Get(&interpolateAtCentroid_00B), - Rule::Get( - &interpolateAtCentroidExt_00B), - Rule::Get(&interpolateAtCentroid_10B), - Rule::Get(&interpolateAtCentroid_10B), - Rule::Get( - &interpolateAtCentroidExt_10B), - Rule::Get(&interpolateAtCentroid_20B), - Rule::Get(&interpolateAtCentroid_20B), - Rule::Get( - &interpolateAtCentroidExt_20B), - Rule::Get(&interpolateAtCentroid_30B), - Rule::Get(&interpolateAtCentroid_30B), - Rule::Get( - &interpolateAtCentroidExt_30B), - Rule::Get(&interpolateAtSample_00B00D), - Rule::Get(&interpolateAtSample_00B00D), - Rule::Get( - &interpolateAtSampleExt_00B00D), - Rule::Get(&interpolateAtSample_10B00D), - Rule::Get(&interpolateAtSample_10B00D), - Rule::Get( - &interpolateAtSampleExt_10B00D), - Rule::Get(&interpolateAtSample_20B00D), - Rule::Get(&interpolateAtSample_20B00D), - Rule::Get( - &interpolateAtSampleExt_20B00D), - Rule::Get(&interpolateAtSample_30B00D), - Rule::Get(&interpolateAtSample_30B00D), - Rule::Get( - &interpolateAtSampleExt_30B00D), - Rule::Get(&interpolateAtOffset_00B10B), - Rule::Get(&interpolateAtOffset_00B10B), - Rule::Get( - &interpolateAtOffsetExt_00B10B), - Rule::Get(&interpolateAtOffset_10B10B), - Rule::Get(&interpolateAtOffset_10B10B), - Rule::Get( - &interpolateAtOffsetExt_10B10B), - Rule::Get(&interpolateAtOffset_20B10B), - Rule::Get(&interpolateAtOffset_20B10B), - Rule::Get( - &interpolateAtOffsetExt_20B10B), - Rule::Get(&interpolateAtOffset_30B10B), - Rule::Get(&interpolateAtOffset_30B10B), - Rule::Get( - &interpolateAtOffsetExt_30B10B), - Rule::Get(&atomicCounter_00G), - Rule::Get(&atomicCounter_00G), - Rule::Get(&atomicCounterIncrement_00G), - Rule::Get(&atomicCounterIncrement_00G), - Rule::Get(&atomicCounterDecrement_00G), - Rule::Get(&atomicCounterDecrement_00G), - Rule::Get(&atomicCounterAdd_00G00E), - Rule::Get(&atomicCounterSubtract_00G00E), - Rule::Get(&atomicCounterMin_00G00E), - Rule::Get(&atomicCounterMax_00G00E), - Rule::Get(&atomicCounterAnd_00G00E), - Rule::Get(&atomicCounterOr_00G00E), - Rule::Get(&atomicCounterXor_00G00E), - Rule::Get(&atomicCounterExchange_00G00E), - Rule::Get(&atomicCounterCompSwap_00G00E00E), - Rule::Get(&atomicAdd_00E00E), - Rule::Get(&atomicAdd_00E00E), - Rule::Get(&atomicAdd_00D00D), - Rule::Get(&atomicAdd_00D00D), - Rule::Get(&atomicMin_00E00E), - Rule::Get(&atomicMin_00E00E), - Rule::Get(&atomicMin_00D00D), - Rule::Get(&atomicMin_00D00D), - Rule::Get(&atomicMax_00E00E), - Rule::Get(&atomicMax_00E00E), - Rule::Get(&atomicMax_00D00D), - Rule::Get(&atomicMax_00D00D), - Rule::Get(&atomicAnd_00E00E), - Rule::Get(&atomicAnd_00E00E), - Rule::Get(&atomicAnd_00D00D), - Rule::Get(&atomicAnd_00D00D), - Rule::Get(&atomicOr_00E00E), - Rule::Get(&atomicOr_00E00E), - Rule::Get(&atomicOr_00D00D), - Rule::Get(&atomicOr_00D00D), - Rule::Get(&atomicXor_00E00E), - Rule::Get(&atomicXor_00E00E), - Rule::Get(&atomicXor_00D00D), - Rule::Get(&atomicXor_00D00D), - Rule::Get(&atomicExchange_00E00E), - Rule::Get(&atomicExchange_00E00E), - Rule::Get(&atomicExchange_00D00D), - Rule::Get(&atomicExchange_00D00D), - Rule::Get(&atomicCompSwap_00E00E00E), - Rule::Get(&atomicCompSwap_00E00E00E), - Rule::Get(&atomicCompSwap_00D00D00D), - Rule::Get(&atomicCompSwap_00D00D00D), - Rule::Get(&imageSize_00z), - Rule::Get(&imageSize_00z), - Rule::Get(&imageSize_01A), - Rule::Get(&imageSize_01A), - Rule::Get(&imageSize_01B), - Rule::Get(&imageSize_01B), - Rule::Get(&imageSize_01C), - Rule::Get(&imageSize_01C), - Rule::Get(&imageSize_01D), - Rule::Get(&imageSize_01D), - Rule::Get(&imageSize_01E), - Rule::Get(&imageSize_01E), - Rule::Get(&imageSize_01F), - Rule::Get(&imageSize_01F), - Rule::Get(&imageSize_01G), - Rule::Get(&imageSize_01G), - Rule::Get(&imageSize_01H), - Rule::Get(&imageSize_01H), - Rule::Get(&imageSize_01I), - Rule::Get(&imageSize_01I), - Rule::Get(&imageSize_01J), - Rule::Get(&imageSize_01J), - Rule::Get(&imageSize_01K), - Rule::Get(&imageSize_01K), - Rule::Get(&imageSize_01X), - Rule::Get(&imageSize_01X), - Rule::Get(&imageSize_01Y), - Rule::Get(&imageSize_01Y), - Rule::Get(&imageSize_01Z), - Rule::Get(&imageSize_01Z), - Rule::Get(&imageSize_01d), - Rule::Get(&imageSize_01d), - Rule::Get(&imageSize_01e), - Rule::Get(&imageSize_01e), - Rule::Get(&imageSize_01f), - Rule::Get(&imageSize_01f), - Rule::Get(&imageSize_01L), - Rule::Get(&imageSize_01M), - Rule::Get(&imageSize_01N), - Rule::Get(&imageSize_01a), - Rule::Get(&imageSize_01b), - Rule::Get(&imageSize_01c), - Rule::Get(&imageSize_01O), - Rule::Get(&imageSize_01P), - Rule::Get(&imageSize_01Q), - Rule::Get(&imageSize_01R), - Rule::Get(&imageSize_01S), - Rule::Get(&imageSize_01T), - Rule::Get(&imageSize_01U), - Rule::Get(&imageSize_01V), - Rule::Get(&imageSize_01W), - Rule::Get(&imageSamples_01R), - Rule::Get(&imageSamples_01S), - Rule::Get(&imageSamples_01T), - Rule::Get(&imageSamples_01U), - Rule::Get(&imageSamples_01V), - Rule::Get(&imageSamples_01W), - Rule::Get(&imageStore_00z10D30B), - Rule::Get(&imageStore_00z10D30B), - Rule::Get(&imageStore_01A10D30D), - Rule::Get(&imageStore_01A10D30D), - Rule::Get(&imageStore_01B10D30E), - Rule::Get(&imageStore_01B10D30E), - Rule::Get(&imageStore_01C20D30B), - Rule::Get(&imageStore_01C20D30B), - Rule::Get(&imageStore_01D20D30D), - Rule::Get(&imageStore_01D20D30D), - Rule::Get(&imageStore_01E20D30E), - Rule::Get(&imageStore_01E20D30E), - Rule::Get(&imageStore_01F20D30B), - Rule::Get(&imageStore_01F20D30B), - Rule::Get(&imageStore_01G20D30D), - Rule::Get(&imageStore_01G20D30D), - Rule::Get(&imageStore_01H20D30E), - Rule::Get(&imageStore_01H20D30E), - Rule::Get(&imageStore_01I20D30B), - Rule::Get(&imageStore_01I20D30B), - Rule::Get(&imageStore_01J20D30D), - Rule::Get(&imageStore_01J20D30D), - Rule::Get(&imageStore_01K20D30E), - Rule::Get(&imageStore_01K20D30E), - Rule::Get(&imageStore_01X20D30B), - Rule::Get(&imageStore_01X20D30B), - Rule::Get(&imageStore_01Y20D30D), - Rule::Get(&imageStore_01Y20D30D), - Rule::Get(&imageStore_01Z20D30E), - Rule::Get(&imageStore_01Z20D30E), - Rule::Get(&imageStore_01d00D30B), - Rule::Get(&imageStore_01d00D30B), - Rule::Get(&imageStore_01e00D30D), - Rule::Get(&imageStore_01e00D30D), - Rule::Get(&imageStore_01f00D30E), - Rule::Get(&imageStore_01f00D30E), - Rule::Get(&imageStore_01L00D30B), - Rule::Get(&imageStore_01M00D30D), - Rule::Get(&imageStore_01N00D30E), - Rule::Get(&imageStore_01O10D30B), - Rule::Get(&imageStore_01P10D30D), - Rule::Get(&imageStore_01Q10D30E), - Rule::Get(&imageStore_01a10D30B), - Rule::Get(&imageStore_01b10D30D), - Rule::Get(&imageStore_01c10D30E), - Rule::Get(&imageStore_01R10D00D30B), - Rule::Get(&imageStore_01S10D00D30D), - Rule::Get(&imageStore_01T10D00D30E), - Rule::Get(&imageStore_01U20D00D30B), - Rule::Get(&imageStore_01V20D00D30D), - Rule::Get(&imageStore_01W20D00D30E), - Rule::Get(&imageLoad_00z10D), - Rule::Get(&imageLoad_00z10D), - Rule::Get(&imageLoad_01A10D), - Rule::Get(&imageLoad_01A10D), - Rule::Get(&imageLoad_01B10D), - Rule::Get(&imageLoad_01B10D), - Rule::Get(&imageLoad_01C20D), - Rule::Get(&imageLoad_01C20D), - Rule::Get(&imageLoad_01D20D), - Rule::Get(&imageLoad_01D20D), - Rule::Get(&imageLoad_01E20D), - Rule::Get(&imageLoad_01E20D), - Rule::Get(&imageLoad_01F20D), - Rule::Get(&imageLoad_01F20D), - Rule::Get(&imageLoad_01G20D), - Rule::Get(&imageLoad_01G20D), - Rule::Get(&imageLoad_01H20D), - Rule::Get(&imageLoad_01H20D), - Rule::Get(&imageLoad_01I20D), - Rule::Get(&imageLoad_01I20D), - Rule::Get(&imageLoad_01J20D), - Rule::Get(&imageLoad_01J20D), - Rule::Get(&imageLoad_01K20D), - Rule::Get(&imageLoad_01K20D), - Rule::Get(&imageLoad_01X20D), - Rule::Get(&imageLoad_01X20D), - Rule::Get(&imageLoad_01Y20D), - Rule::Get(&imageLoad_01Y20D), - Rule::Get(&imageLoad_01Z20D), - Rule::Get(&imageLoad_01Z20D), - Rule::Get(&imageLoad_01d00D), - Rule::Get(&imageLoad_01d00D), - Rule::Get(&imageLoad_01e00D), - Rule::Get(&imageLoad_01e00D), - Rule::Get(&imageLoad_01f00D), - Rule::Get(&imageLoad_01f00D), - Rule::Get(&imageLoad_01L00D), - Rule::Get(&imageLoad_01M00D), - Rule::Get(&imageLoad_01N00D), - Rule::Get(&imageLoad_01O10D), - Rule::Get(&imageLoad_01P10D), - Rule::Get(&imageLoad_01Q10D), - Rule::Get(&imageLoad_01a10D), - Rule::Get(&imageLoad_01b10D), - Rule::Get(&imageLoad_01c10D), - Rule::Get(&imageLoad_01R10D00D), - Rule::Get(&imageLoad_01S10D00D), - Rule::Get(&imageLoad_01T10D00D), - Rule::Get(&imageLoad_01U20D00D), - Rule::Get(&imageLoad_01V20D00D), - Rule::Get(&imageLoad_01W20D00D), - Rule::Get(&imageAtomicAdd_00z10D00E), - Rule::Get( - &imageAtomicAddExt_00z10D00E), - Rule::Get(&imageAtomicAdd_01A10D00E), - Rule::Get( - &imageAtomicAddExt_01A10D00E), - Rule::Get(&imageAtomicAdd_01B10D00E), - Rule::Get( - &imageAtomicAddExt_01B10D00E), - Rule::Get(&imageAtomicAdd_01C20D00E), - Rule::Get( - &imageAtomicAddExt_01C20D00E), - Rule::Get(&imageAtomicAdd_01D20D00E), - Rule::Get( - &imageAtomicAddExt_01D20D00E), - Rule::Get(&imageAtomicAdd_01E20D00E), - Rule::Get( - &imageAtomicAddExt_01E20D00E), - Rule::Get(&imageAtomicAdd_01I20D00E), - Rule::Get( - &imageAtomicAddExt_01I20D00E), - Rule::Get(&imageAtomicAdd_01J20D00E), - Rule::Get( - &imageAtomicAddExt_01J20D00E), - Rule::Get(&imageAtomicAdd_01K20D00E), - Rule::Get( - &imageAtomicAddExt_01K20D00E), - Rule::Get(&imageAtomicAdd_01d00D00E), - Rule::Get( - &imageAtomicAddExt_01d00D00E), - Rule::Get(&imageAtomicAdd_01e00D00E), - Rule::Get( - &imageAtomicAddExt_01e00D00E), - Rule::Get(&imageAtomicAdd_01f00D00E), - Rule::Get( - &imageAtomicAddExt_01f00D00E), - Rule::Get(&imageAtomicAdd_01F20D00E), - Rule::Get( - &imageAtomicAddExt_01F20D00E), - Rule::Get(&imageAtomicAdd_01G20D00E), - Rule::Get( - &imageAtomicAddExt_01G20D00E), - Rule::Get(&imageAtomicAdd_01H20D00E), - Rule::Get( - &imageAtomicAddExt_01H20D00E), - Rule::Get(&imageAtomicAdd_01X20D00E), - Rule::Get( - &imageAtomicAddExt_01X20D00E), - Rule::Get(&imageAtomicAdd_01Y20D00E), - Rule::Get( - &imageAtomicAddExt_01Y20D00E), - Rule::Get(&imageAtomicAdd_01Z20D00E), - Rule::Get( - &imageAtomicAddExt_01Z20D00E), - Rule::Get(&imageAtomicAdd_01L00D00E), - Rule::Get( - &imageAtomicAddExt_01L00D00E), - Rule::Get(&imageAtomicAdd_01M00D00E), - Rule::Get( - &imageAtomicAddExt_01M00D00E), - Rule::Get(&imageAtomicAdd_01N00D00E), - Rule::Get( - &imageAtomicAddExt_01N00D00E), - Rule::Get(&imageAtomicAdd_01O10D00E), - Rule::Get( - &imageAtomicAddExt_01O10D00E), - Rule::Get(&imageAtomicAdd_01P10D00E), - Rule::Get( - &imageAtomicAddExt_01P10D00E), - Rule::Get(&imageAtomicAdd_01Q10D00E), - Rule::Get( - &imageAtomicAddExt_01Q10D00E), - Rule::Get(&imageAtomicAdd_01a10D00E), - Rule::Get( - &imageAtomicAddExt_01a10D00E), - Rule::Get(&imageAtomicAdd_01b10D00E), - Rule::Get( - &imageAtomicAddExt_01b10D00E), - Rule::Get(&imageAtomicAdd_01c10D00E), - Rule::Get( - &imageAtomicAddExt_01c10D00E), - Rule::Get(&imageAtomicAdd_01R10D00D00E), - Rule::Get( - &imageAtomicAddExt_01R10D00D00E), - Rule::Get(&imageAtomicAdd_01S10D00D00E), - Rule::Get( - &imageAtomicAddExt_01S10D00D00E), - Rule::Get(&imageAtomicAdd_01T10D00D00E), - Rule::Get( - &imageAtomicAddExt_01T10D00D00E), - Rule::Get(&imageAtomicAdd_01U20D00D00E), - Rule::Get( - &imageAtomicAddExt_01U20D00D00E), - Rule::Get(&imageAtomicAdd_01V20D00D00E), - Rule::Get( - &imageAtomicAddExt_01V20D00D00E), - Rule::Get(&imageAtomicAdd_01W20D00D00E), - Rule::Get( - &imageAtomicAddExt_01W20D00D00E), - Rule::Get(&imageAtomicAdd_00z10D00D), - Rule::Get( - &imageAtomicAddExt_00z10D00D), - Rule::Get(&imageAtomicAdd_01A10D00D), - Rule::Get( - &imageAtomicAddExt_01A10D00D), - Rule::Get(&imageAtomicAdd_01B10D00D), - Rule::Get( - &imageAtomicAddExt_01B10D00D), - Rule::Get(&imageAtomicAdd_01C20D00D), - Rule::Get( - &imageAtomicAddExt_01C20D00D), - Rule::Get(&imageAtomicAdd_01D20D00D), - Rule::Get( - &imageAtomicAddExt_01D20D00D), - Rule::Get(&imageAtomicAdd_01E20D00D), - Rule::Get( - &imageAtomicAddExt_01E20D00D), - Rule::Get(&imageAtomicAdd_01I20D00D), - Rule::Get( - &imageAtomicAddExt_01I20D00D), - Rule::Get(&imageAtomicAdd_01J20D00D), - Rule::Get( - &imageAtomicAddExt_01J20D00D), - Rule::Get(&imageAtomicAdd_01K20D00D), - Rule::Get( - &imageAtomicAddExt_01K20D00D), - Rule::Get(&imageAtomicAdd_01d00D00D), - Rule::Get( - &imageAtomicAddExt_01d00D00D), - Rule::Get(&imageAtomicAdd_01e00D00D), - Rule::Get( - &imageAtomicAddExt_01e00D00D), - Rule::Get(&imageAtomicAdd_01f00D00D), - Rule::Get( - &imageAtomicAddExt_01f00D00D), - Rule::Get(&imageAtomicAdd_01F20D00D), - Rule::Get( - &imageAtomicAddExt_01F20D00D), - Rule::Get(&imageAtomicAdd_01G20D00D), - Rule::Get( - &imageAtomicAddExt_01G20D00D), - Rule::Get(&imageAtomicAdd_01H20D00D), - Rule::Get( - &imageAtomicAddExt_01H20D00D), - Rule::Get(&imageAtomicAdd_01X20D00D), - Rule::Get( - &imageAtomicAddExt_01X20D00D), - Rule::Get(&imageAtomicAdd_01Y20D00D), - Rule::Get( - &imageAtomicAddExt_01Y20D00D), - Rule::Get(&imageAtomicAdd_01Z20D00D), - Rule::Get( - &imageAtomicAddExt_01Z20D00D), - Rule::Get(&imageAtomicAdd_01L00D00D), - Rule::Get( - &imageAtomicAddExt_01L00D00D), - Rule::Get(&imageAtomicAdd_01M00D00D), - Rule::Get( - &imageAtomicAddExt_01M00D00D), - Rule::Get(&imageAtomicAdd_01N00D00D), - Rule::Get( - &imageAtomicAddExt_01N00D00D), - Rule::Get(&imageAtomicAdd_01O10D00D), - Rule::Get( - &imageAtomicAddExt_01O10D00D), - Rule::Get(&imageAtomicAdd_01P10D00D), - Rule::Get( - &imageAtomicAddExt_01P10D00D), - Rule::Get(&imageAtomicAdd_01Q10D00D), - Rule::Get( - &imageAtomicAddExt_01Q10D00D), - Rule::Get(&imageAtomicAdd_01a10D00D), - Rule::Get( - &imageAtomicAddExt_01a10D00D), - Rule::Get(&imageAtomicAdd_01b10D00D), - Rule::Get( - &imageAtomicAddExt_01b10D00D), - Rule::Get(&imageAtomicAdd_01c10D00D), - Rule::Get( - &imageAtomicAddExt_01c10D00D), - Rule::Get(&imageAtomicAdd_01R10D00D00D), - Rule::Get( - &imageAtomicAddExt_01R10D00D00D), - Rule::Get(&imageAtomicAdd_01S10D00D00D), - Rule::Get( - &imageAtomicAddExt_01S10D00D00D), - Rule::Get(&imageAtomicAdd_01T10D00D00D), - Rule::Get( - &imageAtomicAddExt_01T10D00D00D), - Rule::Get(&imageAtomicAdd_01U20D00D00D), - Rule::Get( - &imageAtomicAddExt_01U20D00D00D), - Rule::Get(&imageAtomicAdd_01V20D00D00D), - Rule::Get( - &imageAtomicAddExt_01V20D00D00D), - Rule::Get(&imageAtomicAdd_01W20D00D00D), - Rule::Get( - &imageAtomicAddExt_01W20D00D00D), - Rule::Get(&imageAtomicMin_00z10D00E), - Rule::Get( - &imageAtomicMinExt_00z10D00E), - Rule::Get(&imageAtomicMin_01A10D00E), - Rule::Get( - &imageAtomicMinExt_01A10D00E), - Rule::Get(&imageAtomicMin_01B10D00E), - Rule::Get( - &imageAtomicMinExt_01B10D00E), - Rule::Get(&imageAtomicMin_01C20D00E), - Rule::Get( - &imageAtomicMinExt_01C20D00E), - Rule::Get(&imageAtomicMin_01D20D00E), - Rule::Get( - &imageAtomicMinExt_01D20D00E), - Rule::Get(&imageAtomicMin_01E20D00E), - Rule::Get( - &imageAtomicMinExt_01E20D00E), - Rule::Get(&imageAtomicMin_01I20D00E), - Rule::Get( - &imageAtomicMinExt_01I20D00E), - Rule::Get(&imageAtomicMin_01J20D00E), - Rule::Get( - &imageAtomicMinExt_01J20D00E), - Rule::Get(&imageAtomicMin_01K20D00E), - Rule::Get( - &imageAtomicMinExt_01K20D00E), - Rule::Get(&imageAtomicMin_01d00D00E), - Rule::Get( - &imageAtomicMinExt_01d00D00E), - Rule::Get(&imageAtomicMin_01e00D00E), - Rule::Get( - &imageAtomicMinExt_01e00D00E), - Rule::Get(&imageAtomicMin_01f00D00E), - Rule::Get( - &imageAtomicMinExt_01f00D00E), - Rule::Get(&imageAtomicMin_01F20D00E), - Rule::Get( - &imageAtomicMinExt_01F20D00E), - Rule::Get(&imageAtomicMin_01G20D00E), - Rule::Get( - &imageAtomicMinExt_01G20D00E), - Rule::Get(&imageAtomicMin_01H20D00E), - Rule::Get( - &imageAtomicMinExt_01H20D00E), - Rule::Get(&imageAtomicMin_01X20D00E), - Rule::Get( - &imageAtomicMinExt_01X20D00E), - Rule::Get(&imageAtomicMin_01Y20D00E), - Rule::Get( - &imageAtomicMinExt_01Y20D00E), - Rule::Get(&imageAtomicMin_01Z20D00E), - Rule::Get( - &imageAtomicMinExt_01Z20D00E), - Rule::Get(&imageAtomicMin_01L00D00E), - Rule::Get( - &imageAtomicMinExt_01L00D00E), - Rule::Get(&imageAtomicMin_01M00D00E), - Rule::Get( - &imageAtomicMinExt_01M00D00E), - Rule::Get(&imageAtomicMin_01N00D00E), - Rule::Get( - &imageAtomicMinExt_01N00D00E), - Rule::Get(&imageAtomicMin_01O10D00E), - Rule::Get( - &imageAtomicMinExt_01O10D00E), - Rule::Get(&imageAtomicMin_01P10D00E), - Rule::Get( - &imageAtomicMinExt_01P10D00E), - Rule::Get(&imageAtomicMin_01Q10D00E), - Rule::Get( - &imageAtomicMinExt_01Q10D00E), - Rule::Get(&imageAtomicMin_01a10D00E), - Rule::Get( - &imageAtomicMinExt_01a10D00E), - Rule::Get(&imageAtomicMin_01b10D00E), - Rule::Get( - &imageAtomicMinExt_01b10D00E), - Rule::Get(&imageAtomicMin_01c10D00E), - Rule::Get( - &imageAtomicMinExt_01c10D00E), - Rule::Get(&imageAtomicMin_01R10D00D00E), - Rule::Get( - &imageAtomicMinExt_01R10D00D00E), - Rule::Get(&imageAtomicMin_01S10D00D00E), - Rule::Get( - &imageAtomicMinExt_01S10D00D00E), - Rule::Get(&imageAtomicMin_01T10D00D00E), - Rule::Get( - &imageAtomicMinExt_01T10D00D00E), - Rule::Get(&imageAtomicMin_01U20D00D00E), - Rule::Get( - &imageAtomicMinExt_01U20D00D00E), - Rule::Get(&imageAtomicMin_01V20D00D00E), - Rule::Get( - &imageAtomicMinExt_01V20D00D00E), - Rule::Get(&imageAtomicMin_01W20D00D00E), - Rule::Get( - &imageAtomicMinExt_01W20D00D00E), - Rule::Get(&imageAtomicMin_00z10D00D), - Rule::Get( - &imageAtomicMinExt_00z10D00D), - Rule::Get(&imageAtomicMin_01A10D00D), - Rule::Get( - &imageAtomicMinExt_01A10D00D), - Rule::Get(&imageAtomicMin_01B10D00D), - Rule::Get( - &imageAtomicMinExt_01B10D00D), - Rule::Get(&imageAtomicMin_01C20D00D), - Rule::Get( - &imageAtomicMinExt_01C20D00D), - Rule::Get(&imageAtomicMin_01D20D00D), - Rule::Get( - &imageAtomicMinExt_01D20D00D), - Rule::Get(&imageAtomicMin_01E20D00D), - Rule::Get( - &imageAtomicMinExt_01E20D00D), - Rule::Get(&imageAtomicMin_01I20D00D), - Rule::Get( - &imageAtomicMinExt_01I20D00D), - Rule::Get(&imageAtomicMin_01J20D00D), - Rule::Get( - &imageAtomicMinExt_01J20D00D), - Rule::Get(&imageAtomicMin_01K20D00D), - Rule::Get( - &imageAtomicMinExt_01K20D00D), - Rule::Get(&imageAtomicMin_01d00D00D), - Rule::Get( - &imageAtomicMinExt_01d00D00D), - Rule::Get(&imageAtomicMin_01e00D00D), - Rule::Get( - &imageAtomicMinExt_01e00D00D), - Rule::Get(&imageAtomicMin_01f00D00D), - Rule::Get( - &imageAtomicMinExt_01f00D00D), - Rule::Get(&imageAtomicMin_01F20D00D), - Rule::Get( - &imageAtomicMinExt_01F20D00D), - Rule::Get(&imageAtomicMin_01G20D00D), - Rule::Get( - &imageAtomicMinExt_01G20D00D), - Rule::Get(&imageAtomicMin_01H20D00D), - Rule::Get( - &imageAtomicMinExt_01H20D00D), - Rule::Get(&imageAtomicMin_01X20D00D), - Rule::Get( - &imageAtomicMinExt_01X20D00D), - Rule::Get(&imageAtomicMin_01Y20D00D), - Rule::Get( - &imageAtomicMinExt_01Y20D00D), - Rule::Get(&imageAtomicMin_01Z20D00D), - Rule::Get( - &imageAtomicMinExt_01Z20D00D), - Rule::Get(&imageAtomicMin_01L00D00D), - Rule::Get( - &imageAtomicMinExt_01L00D00D), - Rule::Get(&imageAtomicMin_01M00D00D), - Rule::Get( - &imageAtomicMinExt_01M00D00D), - Rule::Get(&imageAtomicMin_01N00D00D), - Rule::Get( - &imageAtomicMinExt_01N00D00D), - Rule::Get(&imageAtomicMin_01O10D00D), - Rule::Get( - &imageAtomicMinExt_01O10D00D), - Rule::Get(&imageAtomicMin_01P10D00D), - Rule::Get( - &imageAtomicMinExt_01P10D00D), - Rule::Get(&imageAtomicMin_01Q10D00D), - Rule::Get( - &imageAtomicMinExt_01Q10D00D), - Rule::Get(&imageAtomicMin_01a10D00D), - Rule::Get( - &imageAtomicMinExt_01a10D00D), - Rule::Get(&imageAtomicMin_01b10D00D), - Rule::Get( - &imageAtomicMinExt_01b10D00D), - Rule::Get(&imageAtomicMin_01c10D00D), - Rule::Get( - &imageAtomicMinExt_01c10D00D), - Rule::Get(&imageAtomicMin_01R10D00D00D), - Rule::Get( - &imageAtomicMinExt_01R10D00D00D), - Rule::Get(&imageAtomicMin_01S10D00D00D), - Rule::Get( - &imageAtomicMinExt_01S10D00D00D), - Rule::Get(&imageAtomicMin_01T10D00D00D), - Rule::Get( - &imageAtomicMinExt_01T10D00D00D), - Rule::Get(&imageAtomicMin_01U20D00D00D), - Rule::Get( - &imageAtomicMinExt_01U20D00D00D), - Rule::Get(&imageAtomicMin_01V20D00D00D), - Rule::Get( - &imageAtomicMinExt_01V20D00D00D), - Rule::Get(&imageAtomicMin_01W20D00D00D), - Rule::Get( - &imageAtomicMinExt_01W20D00D00D), - Rule::Get(&imageAtomicMax_00z10D00E), - Rule::Get( - &imageAtomicMaxExt_00z10D00E), - Rule::Get(&imageAtomicMax_01A10D00E), - Rule::Get( - &imageAtomicMaxExt_01A10D00E), - Rule::Get(&imageAtomicMax_01B10D00E), - Rule::Get( - &imageAtomicMaxExt_01B10D00E), - Rule::Get(&imageAtomicMax_01C20D00E), - Rule::Get( - &imageAtomicMaxExt_01C20D00E), - Rule::Get(&imageAtomicMax_01D20D00E), - Rule::Get( - &imageAtomicMaxExt_01D20D00E), - Rule::Get(&imageAtomicMax_01E20D00E), - Rule::Get( - &imageAtomicMaxExt_01E20D00E), - Rule::Get(&imageAtomicMax_01I20D00E), - Rule::Get( - &imageAtomicMaxExt_01I20D00E), - Rule::Get(&imageAtomicMax_01J20D00E), - Rule::Get( - &imageAtomicMaxExt_01J20D00E), - Rule::Get(&imageAtomicMax_01K20D00E), - Rule::Get( - &imageAtomicMaxExt_01K20D00E), - Rule::Get(&imageAtomicMax_01d00D00E), - Rule::Get( - &imageAtomicMaxExt_01d00D00E), - Rule::Get(&imageAtomicMax_01e00D00E), - Rule::Get( - &imageAtomicMaxExt_01e00D00E), - Rule::Get(&imageAtomicMax_01f00D00E), - Rule::Get( - &imageAtomicMaxExt_01f00D00E), - Rule::Get(&imageAtomicMax_01F20D00E), - Rule::Get( - &imageAtomicMaxExt_01F20D00E), - Rule::Get(&imageAtomicMax_01G20D00E), - Rule::Get( - &imageAtomicMaxExt_01G20D00E), - Rule::Get(&imageAtomicMax_01H20D00E), - Rule::Get( - &imageAtomicMaxExt_01H20D00E), - Rule::Get(&imageAtomicMax_01X20D00E), - Rule::Get( - &imageAtomicMaxExt_01X20D00E), - Rule::Get(&imageAtomicMax_01Y20D00E), - Rule::Get( - &imageAtomicMaxExt_01Y20D00E), - Rule::Get(&imageAtomicMax_01Z20D00E), - Rule::Get( - &imageAtomicMaxExt_01Z20D00E), - Rule::Get(&imageAtomicMax_01L00D00E), - Rule::Get( - &imageAtomicMaxExt_01L00D00E), - Rule::Get(&imageAtomicMax_01M00D00E), - Rule::Get( - &imageAtomicMaxExt_01M00D00E), - Rule::Get(&imageAtomicMax_01N00D00E), - Rule::Get( - &imageAtomicMaxExt_01N00D00E), - Rule::Get(&imageAtomicMax_01O10D00E), - Rule::Get( - &imageAtomicMaxExt_01O10D00E), - Rule::Get(&imageAtomicMax_01P10D00E), - Rule::Get( - &imageAtomicMaxExt_01P10D00E), - Rule::Get(&imageAtomicMax_01Q10D00E), - Rule::Get( - &imageAtomicMaxExt_01Q10D00E), - Rule::Get(&imageAtomicMax_01a10D00E), - Rule::Get( - &imageAtomicMaxExt_01a10D00E), - Rule::Get(&imageAtomicMax_01b10D00E), - Rule::Get( - &imageAtomicMaxExt_01b10D00E), - Rule::Get(&imageAtomicMax_01c10D00E), - Rule::Get( - &imageAtomicMaxExt_01c10D00E), - Rule::Get(&imageAtomicMax_01R10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01R10D00D00E), - Rule::Get(&imageAtomicMax_01S10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01S10D00D00E), - Rule::Get(&imageAtomicMax_01T10D00D00E), - Rule::Get( - &imageAtomicMaxExt_01T10D00D00E), - Rule::Get(&imageAtomicMax_01U20D00D00E), - Rule::Get( - &imageAtomicMaxExt_01U20D00D00E), - Rule::Get(&imageAtomicMax_01V20D00D00E), - Rule::Get( - &imageAtomicMaxExt_01V20D00D00E), - Rule::Get(&imageAtomicMax_01W20D00D00E), - Rule::Get( - &imageAtomicMaxExt_01W20D00D00E), - Rule::Get(&imageAtomicMax_00z10D00D), - Rule::Get( - &imageAtomicMaxExt_00z10D00D), - Rule::Get(&imageAtomicMax_01A10D00D), - Rule::Get( - &imageAtomicMaxExt_01A10D00D), - Rule::Get(&imageAtomicMax_01B10D00D), - Rule::Get( - &imageAtomicMaxExt_01B10D00D), - Rule::Get(&imageAtomicMax_01C20D00D), - Rule::Get( - &imageAtomicMaxExt_01C20D00D), - Rule::Get(&imageAtomicMax_01D20D00D), - Rule::Get( - &imageAtomicMaxExt_01D20D00D), - Rule::Get(&imageAtomicMax_01E20D00D), - Rule::Get( - &imageAtomicMaxExt_01E20D00D), - Rule::Get(&imageAtomicMax_01I20D00D), - Rule::Get( - &imageAtomicMaxExt_01I20D00D), - Rule::Get(&imageAtomicMax_01J20D00D), - Rule::Get( - &imageAtomicMaxExt_01J20D00D), - Rule::Get(&imageAtomicMax_01K20D00D), - Rule::Get( - &imageAtomicMaxExt_01K20D00D), - Rule::Get(&imageAtomicMax_01d00D00D), - Rule::Get( - &imageAtomicMaxExt_01d00D00D), - Rule::Get(&imageAtomicMax_01e00D00D), - Rule::Get( - &imageAtomicMaxExt_01e00D00D), - Rule::Get(&imageAtomicMax_01f00D00D), - Rule::Get( - &imageAtomicMaxExt_01f00D00D), - Rule::Get(&imageAtomicMax_01F20D00D), - Rule::Get( - &imageAtomicMaxExt_01F20D00D), - Rule::Get(&imageAtomicMax_01G20D00D), - Rule::Get( - &imageAtomicMaxExt_01G20D00D), - Rule::Get(&imageAtomicMax_01H20D00D), - Rule::Get( - &imageAtomicMaxExt_01H20D00D), - Rule::Get(&imageAtomicMax_01X20D00D), - Rule::Get( - &imageAtomicMaxExt_01X20D00D), - Rule::Get(&imageAtomicMax_01Y20D00D), - Rule::Get( - &imageAtomicMaxExt_01Y20D00D), - Rule::Get(&imageAtomicMax_01Z20D00D), - Rule::Get( - &imageAtomicMaxExt_01Z20D00D), - Rule::Get(&imageAtomicMax_01L00D00D), - Rule::Get( - &imageAtomicMaxExt_01L00D00D), - Rule::Get(&imageAtomicMax_01M00D00D), - Rule::Get( - &imageAtomicMaxExt_01M00D00D), - Rule::Get(&imageAtomicMax_01N00D00D), - Rule::Get( - &imageAtomicMaxExt_01N00D00D), - Rule::Get(&imageAtomicMax_01O10D00D), - Rule::Get( - &imageAtomicMaxExt_01O10D00D), - Rule::Get(&imageAtomicMax_01P10D00D), - Rule::Get( - &imageAtomicMaxExt_01P10D00D), - Rule::Get(&imageAtomicMax_01Q10D00D), - Rule::Get( - &imageAtomicMaxExt_01Q10D00D), - Rule::Get(&imageAtomicMax_01a10D00D), - Rule::Get( - &imageAtomicMaxExt_01a10D00D), - Rule::Get(&imageAtomicMax_01b10D00D), - Rule::Get( - &imageAtomicMaxExt_01b10D00D), - Rule::Get(&imageAtomicMax_01c10D00D), - Rule::Get( - &imageAtomicMaxExt_01c10D00D), - Rule::Get(&imageAtomicMax_01R10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01R10D00D00D), - Rule::Get(&imageAtomicMax_01S10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01S10D00D00D), - Rule::Get(&imageAtomicMax_01T10D00D00D), - Rule::Get( - &imageAtomicMaxExt_01T10D00D00D), - Rule::Get(&imageAtomicMax_01U20D00D00D), - Rule::Get( - &imageAtomicMaxExt_01U20D00D00D), - Rule::Get(&imageAtomicMax_01V20D00D00D), - Rule::Get( - &imageAtomicMaxExt_01V20D00D00D), - Rule::Get(&imageAtomicMax_01W20D00D00D), - Rule::Get( - &imageAtomicMaxExt_01W20D00D00D), - Rule::Get(&imageAtomicAnd_00z10D00E), - Rule::Get( - &imageAtomicAndExt_00z10D00E), - Rule::Get(&imageAtomicAnd_01A10D00E), - Rule::Get( - &imageAtomicAndExt_01A10D00E), - Rule::Get(&imageAtomicAnd_01B10D00E), - Rule::Get( - &imageAtomicAndExt_01B10D00E), - Rule::Get(&imageAtomicAnd_01C20D00E), - Rule::Get( - &imageAtomicAndExt_01C20D00E), - Rule::Get(&imageAtomicAnd_01D20D00E), - Rule::Get( - &imageAtomicAndExt_01D20D00E), - Rule::Get(&imageAtomicAnd_01E20D00E), - Rule::Get( - &imageAtomicAndExt_01E20D00E), - Rule::Get(&imageAtomicAnd_01I20D00E), - Rule::Get( - &imageAtomicAndExt_01I20D00E), - Rule::Get(&imageAtomicAnd_01J20D00E), - Rule::Get( - &imageAtomicAndExt_01J20D00E), - Rule::Get(&imageAtomicAnd_01K20D00E), - Rule::Get( - &imageAtomicAndExt_01K20D00E), - Rule::Get(&imageAtomicAnd_01d00D00E), - Rule::Get( - &imageAtomicAndExt_01d00D00E), - Rule::Get(&imageAtomicAnd_01e00D00E), - Rule::Get( - &imageAtomicAndExt_01e00D00E), - Rule::Get(&imageAtomicAnd_01f00D00E), - Rule::Get( - &imageAtomicAndExt_01f00D00E), - Rule::Get(&imageAtomicAnd_01F20D00E), - Rule::Get( - &imageAtomicAndExt_01F20D00E), - Rule::Get(&imageAtomicAnd_01G20D00E), - Rule::Get( - &imageAtomicAndExt_01G20D00E), - Rule::Get(&imageAtomicAnd_01H20D00E), - Rule::Get( - &imageAtomicAndExt_01H20D00E), - Rule::Get(&imageAtomicAnd_01X20D00E), - Rule::Get( - &imageAtomicAndExt_01X20D00E), - Rule::Get(&imageAtomicAnd_01Y20D00E), - Rule::Get( - &imageAtomicAndExt_01Y20D00E), - Rule::Get(&imageAtomicAnd_01Z20D00E), - Rule::Get( - &imageAtomicAndExt_01Z20D00E), - Rule::Get(&imageAtomicAnd_01L00D00E), - Rule::Get( - &imageAtomicAndExt_01L00D00E), - Rule::Get(&imageAtomicAnd_01M00D00E), - Rule::Get( - &imageAtomicAndExt_01M00D00E), - Rule::Get(&imageAtomicAnd_01N00D00E), - Rule::Get( - &imageAtomicAndExt_01N00D00E), - Rule::Get(&imageAtomicAnd_01O10D00E), - Rule::Get( - &imageAtomicAndExt_01O10D00E), - Rule::Get(&imageAtomicAnd_01P10D00E), - Rule::Get( - &imageAtomicAndExt_01P10D00E), - Rule::Get(&imageAtomicAnd_01Q10D00E), - Rule::Get( - &imageAtomicAndExt_01Q10D00E), - Rule::Get(&imageAtomicAnd_01a10D00E), - Rule::Get( - &imageAtomicAndExt_01a10D00E), - Rule::Get(&imageAtomicAnd_01b10D00E), - Rule::Get( - &imageAtomicAndExt_01b10D00E), - Rule::Get(&imageAtomicAnd_01c10D00E), - Rule::Get( - &imageAtomicAndExt_01c10D00E), - Rule::Get(&imageAtomicAnd_01R10D00D00E), - Rule::Get( - &imageAtomicAndExt_01R10D00D00E), - Rule::Get(&imageAtomicAnd_01S10D00D00E), - Rule::Get( - &imageAtomicAndExt_01S10D00D00E), - Rule::Get(&imageAtomicAnd_01T10D00D00E), - Rule::Get( - &imageAtomicAndExt_01T10D00D00E), - Rule::Get(&imageAtomicAnd_01U20D00D00E), - Rule::Get( - &imageAtomicAndExt_01U20D00D00E), - Rule::Get(&imageAtomicAnd_01V20D00D00E), - Rule::Get( - &imageAtomicAndExt_01V20D00D00E), - Rule::Get(&imageAtomicAnd_01W20D00D00E), - Rule::Get( - &imageAtomicAndExt_01W20D00D00E), - Rule::Get(&imageAtomicAnd_00z10D00D), - Rule::Get( - &imageAtomicAndExt_00z10D00D), - Rule::Get(&imageAtomicAnd_01A10D00D), - Rule::Get( - &imageAtomicAndExt_01A10D00D), - Rule::Get(&imageAtomicAnd_01B10D00D), - Rule::Get( - &imageAtomicAndExt_01B10D00D), - Rule::Get(&imageAtomicAnd_01C20D00D), - Rule::Get( - &imageAtomicAndExt_01C20D00D), - Rule::Get(&imageAtomicAnd_01D20D00D), - Rule::Get( - &imageAtomicAndExt_01D20D00D), - Rule::Get(&imageAtomicAnd_01E20D00D), - Rule::Get( - &imageAtomicAndExt_01E20D00D), - Rule::Get(&imageAtomicAnd_01I20D00D), - Rule::Get( - &imageAtomicAndExt_01I20D00D), - Rule::Get(&imageAtomicAnd_01J20D00D), - Rule::Get( - &imageAtomicAndExt_01J20D00D), - Rule::Get(&imageAtomicAnd_01K20D00D), - Rule::Get( - &imageAtomicAndExt_01K20D00D), - Rule::Get(&imageAtomicAnd_01d00D00D), - Rule::Get( - &imageAtomicAndExt_01d00D00D), - Rule::Get(&imageAtomicAnd_01e00D00D), - Rule::Get( - &imageAtomicAndExt_01e00D00D), - Rule::Get(&imageAtomicAnd_01f00D00D), - Rule::Get( - &imageAtomicAndExt_01f00D00D), - Rule::Get(&imageAtomicAnd_01F20D00D), - Rule::Get( - &imageAtomicAndExt_01F20D00D), - Rule::Get(&imageAtomicAnd_01G20D00D), - Rule::Get( - &imageAtomicAndExt_01G20D00D), - Rule::Get(&imageAtomicAnd_01H20D00D), - Rule::Get( - &imageAtomicAndExt_01H20D00D), - Rule::Get(&imageAtomicAnd_01X20D00D), - Rule::Get( - &imageAtomicAndExt_01X20D00D), - Rule::Get(&imageAtomicAnd_01Y20D00D), - Rule::Get( - &imageAtomicAndExt_01Y20D00D), - Rule::Get(&imageAtomicAnd_01Z20D00D), - Rule::Get( - &imageAtomicAndExt_01Z20D00D), - Rule::Get(&imageAtomicAnd_01L00D00D), - Rule::Get( - &imageAtomicAndExt_01L00D00D), - Rule::Get(&imageAtomicAnd_01M00D00D), - Rule::Get( - &imageAtomicAndExt_01M00D00D), - Rule::Get(&imageAtomicAnd_01N00D00D), - Rule::Get( - &imageAtomicAndExt_01N00D00D), - Rule::Get(&imageAtomicAnd_01O10D00D), - Rule::Get( - &imageAtomicAndExt_01O10D00D), - Rule::Get(&imageAtomicAnd_01P10D00D), - Rule::Get( - &imageAtomicAndExt_01P10D00D), - Rule::Get(&imageAtomicAnd_01Q10D00D), - Rule::Get( - &imageAtomicAndExt_01Q10D00D), - Rule::Get(&imageAtomicAnd_01a10D00D), - Rule::Get( - &imageAtomicAndExt_01a10D00D), - Rule::Get(&imageAtomicAnd_01b10D00D), - Rule::Get( - &imageAtomicAndExt_01b10D00D), - Rule::Get(&imageAtomicAnd_01c10D00D), - Rule::Get( - &imageAtomicAndExt_01c10D00D), - Rule::Get(&imageAtomicAnd_01R10D00D00D), - Rule::Get( - &imageAtomicAndExt_01R10D00D00D), - Rule::Get(&imageAtomicAnd_01S10D00D00D), - Rule::Get( - &imageAtomicAndExt_01S10D00D00D), - Rule::Get(&imageAtomicAnd_01T10D00D00D), - Rule::Get( - &imageAtomicAndExt_01T10D00D00D), - Rule::Get(&imageAtomicAnd_01U20D00D00D), - Rule::Get( - &imageAtomicAndExt_01U20D00D00D), - Rule::Get(&imageAtomicAnd_01V20D00D00D), - Rule::Get( - &imageAtomicAndExt_01V20D00D00D), - Rule::Get(&imageAtomicAnd_01W20D00D00D), - Rule::Get( - &imageAtomicAndExt_01W20D00D00D), - Rule::Get(&imageAtomicOr_00z10D00E), - Rule::Get( - &imageAtomicOrExt_00z10D00E), - Rule::Get(&imageAtomicOr_01A10D00E), - Rule::Get( - &imageAtomicOrExt_01A10D00E), - Rule::Get(&imageAtomicOr_01B10D00E), - Rule::Get( - &imageAtomicOrExt_01B10D00E), - Rule::Get(&imageAtomicOr_01C20D00E), - Rule::Get( - &imageAtomicOrExt_01C20D00E), - Rule::Get(&imageAtomicOr_01D20D00E), - Rule::Get( - &imageAtomicOrExt_01D20D00E), - Rule::Get(&imageAtomicOr_01E20D00E), - Rule::Get( - &imageAtomicOrExt_01E20D00E), - Rule::Get(&imageAtomicOr_01I20D00E), - Rule::Get( - &imageAtomicOrExt_01I20D00E), - Rule::Get(&imageAtomicOr_01J20D00E), - Rule::Get( - &imageAtomicOrExt_01J20D00E), - Rule::Get(&imageAtomicOr_01K20D00E), - Rule::Get( - &imageAtomicOrExt_01K20D00E), - Rule::Get(&imageAtomicOr_01d00D00E), - Rule::Get( - &imageAtomicOrExt_01d00D00E), - Rule::Get(&imageAtomicOr_01e00D00E), - Rule::Get( - &imageAtomicOrExt_01e00D00E), - Rule::Get(&imageAtomicOr_01f00D00E), - Rule::Get( - &imageAtomicOrExt_01f00D00E), - Rule::Get(&imageAtomicOr_01F20D00E), - Rule::Get( - &imageAtomicOrExt_01F20D00E), - Rule::Get(&imageAtomicOr_01G20D00E), - Rule::Get( - &imageAtomicOrExt_01G20D00E), - Rule::Get(&imageAtomicOr_01H20D00E), - Rule::Get( - &imageAtomicOrExt_01H20D00E), - Rule::Get(&imageAtomicOr_01X20D00E), - Rule::Get( - &imageAtomicOrExt_01X20D00E), - Rule::Get(&imageAtomicOr_01Y20D00E), - Rule::Get( - &imageAtomicOrExt_01Y20D00E), - Rule::Get(&imageAtomicOr_01Z20D00E), - Rule::Get( - &imageAtomicOrExt_01Z20D00E), - Rule::Get(&imageAtomicOr_01L00D00E), - Rule::Get( - &imageAtomicOrExt_01L00D00E), - Rule::Get(&imageAtomicOr_01M00D00E), - Rule::Get( - &imageAtomicOrExt_01M00D00E), - Rule::Get(&imageAtomicOr_01N00D00E), - Rule::Get( - &imageAtomicOrExt_01N00D00E), - Rule::Get(&imageAtomicOr_01O10D00E), - Rule::Get( - &imageAtomicOrExt_01O10D00E), - Rule::Get(&imageAtomicOr_01P10D00E), - Rule::Get( - &imageAtomicOrExt_01P10D00E), - Rule::Get(&imageAtomicOr_01Q10D00E), - Rule::Get( - &imageAtomicOrExt_01Q10D00E), - Rule::Get(&imageAtomicOr_01a10D00E), - Rule::Get( - &imageAtomicOrExt_01a10D00E), - Rule::Get(&imageAtomicOr_01b10D00E), - Rule::Get( - &imageAtomicOrExt_01b10D00E), - Rule::Get(&imageAtomicOr_01c10D00E), - Rule::Get( - &imageAtomicOrExt_01c10D00E), - Rule::Get(&imageAtomicOr_01R10D00D00E), - Rule::Get( - &imageAtomicOrExt_01R10D00D00E), - Rule::Get(&imageAtomicOr_01S10D00D00E), - Rule::Get( - &imageAtomicOrExt_01S10D00D00E), - Rule::Get(&imageAtomicOr_01T10D00D00E), - Rule::Get( - &imageAtomicOrExt_01T10D00D00E), - Rule::Get(&imageAtomicOr_01U20D00D00E), - Rule::Get( - &imageAtomicOrExt_01U20D00D00E), - Rule::Get(&imageAtomicOr_01V20D00D00E), - Rule::Get( - &imageAtomicOrExt_01V20D00D00E), - Rule::Get(&imageAtomicOr_01W20D00D00E), - Rule::Get( - &imageAtomicOrExt_01W20D00D00E), - Rule::Get(&imageAtomicOr_00z10D00D), - Rule::Get( - &imageAtomicOrExt_00z10D00D), - Rule::Get(&imageAtomicOr_01A10D00D), - Rule::Get( - &imageAtomicOrExt_01A10D00D), - Rule::Get(&imageAtomicOr_01B10D00D), - Rule::Get( - &imageAtomicOrExt_01B10D00D), - Rule::Get(&imageAtomicOr_01C20D00D), - Rule::Get( - &imageAtomicOrExt_01C20D00D), - Rule::Get(&imageAtomicOr_01D20D00D), - Rule::Get( - &imageAtomicOrExt_01D20D00D), - Rule::Get(&imageAtomicOr_01E20D00D), - Rule::Get( - &imageAtomicOrExt_01E20D00D), - Rule::Get(&imageAtomicOr_01I20D00D), - Rule::Get( - &imageAtomicOrExt_01I20D00D), - Rule::Get(&imageAtomicOr_01J20D00D), - Rule::Get( - &imageAtomicOrExt_01J20D00D), - Rule::Get(&imageAtomicOr_01K20D00D), - Rule::Get( - &imageAtomicOrExt_01K20D00D), - Rule::Get(&imageAtomicOr_01d00D00D), - Rule::Get( - &imageAtomicOrExt_01d00D00D), - Rule::Get(&imageAtomicOr_01e00D00D), - Rule::Get( - &imageAtomicOrExt_01e00D00D), - Rule::Get(&imageAtomicOr_01f00D00D), - Rule::Get( - &imageAtomicOrExt_01f00D00D), - Rule::Get(&imageAtomicOr_01F20D00D), - Rule::Get( - &imageAtomicOrExt_01F20D00D), - Rule::Get(&imageAtomicOr_01G20D00D), - Rule::Get( - &imageAtomicOrExt_01G20D00D), - Rule::Get(&imageAtomicOr_01H20D00D), - Rule::Get( - &imageAtomicOrExt_01H20D00D), - Rule::Get(&imageAtomicOr_01X20D00D), - Rule::Get( - &imageAtomicOrExt_01X20D00D), - Rule::Get(&imageAtomicOr_01Y20D00D), - Rule::Get( - &imageAtomicOrExt_01Y20D00D), - Rule::Get(&imageAtomicOr_01Z20D00D), - Rule::Get( - &imageAtomicOrExt_01Z20D00D), - Rule::Get(&imageAtomicOr_01L00D00D), - Rule::Get( - &imageAtomicOrExt_01L00D00D), - Rule::Get(&imageAtomicOr_01M00D00D), - Rule::Get( - &imageAtomicOrExt_01M00D00D), - Rule::Get(&imageAtomicOr_01N00D00D), - Rule::Get( - &imageAtomicOrExt_01N00D00D), - Rule::Get(&imageAtomicOr_01O10D00D), - Rule::Get( - &imageAtomicOrExt_01O10D00D), - Rule::Get(&imageAtomicOr_01P10D00D), - Rule::Get( - &imageAtomicOrExt_01P10D00D), - Rule::Get(&imageAtomicOr_01Q10D00D), - Rule::Get( - &imageAtomicOrExt_01Q10D00D), - Rule::Get(&imageAtomicOr_01a10D00D), - Rule::Get( - &imageAtomicOrExt_01a10D00D), - Rule::Get(&imageAtomicOr_01b10D00D), - Rule::Get( - &imageAtomicOrExt_01b10D00D), - Rule::Get(&imageAtomicOr_01c10D00D), - Rule::Get( - &imageAtomicOrExt_01c10D00D), - Rule::Get(&imageAtomicOr_01R10D00D00D), - Rule::Get( - &imageAtomicOrExt_01R10D00D00D), - Rule::Get(&imageAtomicOr_01S10D00D00D), - Rule::Get( - &imageAtomicOrExt_01S10D00D00D), - Rule::Get(&imageAtomicOr_01T10D00D00D), - Rule::Get( - &imageAtomicOrExt_01T10D00D00D), - Rule::Get(&imageAtomicOr_01U20D00D00D), - Rule::Get( - &imageAtomicOrExt_01U20D00D00D), - Rule::Get(&imageAtomicOr_01V20D00D00D), - Rule::Get( - &imageAtomicOrExt_01V20D00D00D), - Rule::Get(&imageAtomicOr_01W20D00D00D), - Rule::Get( - &imageAtomicOrExt_01W20D00D00D), - Rule::Get(&imageAtomicXor_00z10D00E), - Rule::Get( - &imageAtomicXorExt_00z10D00E), - Rule::Get(&imageAtomicXor_01A10D00E), - Rule::Get( - &imageAtomicXorExt_01A10D00E), - Rule::Get(&imageAtomicXor_01B10D00E), - Rule::Get( - &imageAtomicXorExt_01B10D00E), - Rule::Get(&imageAtomicXor_01C20D00E), - Rule::Get( - &imageAtomicXorExt_01C20D00E), - Rule::Get(&imageAtomicXor_01D20D00E), - Rule::Get( - &imageAtomicXorExt_01D20D00E), - Rule::Get(&imageAtomicXor_01E20D00E), - Rule::Get( - &imageAtomicXorExt_01E20D00E), - Rule::Get(&imageAtomicXor_01I20D00E), - Rule::Get( - &imageAtomicXorExt_01I20D00E), - Rule::Get(&imageAtomicXor_01J20D00E), - Rule::Get( - &imageAtomicXorExt_01J20D00E), - Rule::Get(&imageAtomicXor_01K20D00E), - Rule::Get( - &imageAtomicXorExt_01K20D00E), - Rule::Get(&imageAtomicXor_01d00D00E), - Rule::Get( - &imageAtomicXorExt_01d00D00E), - Rule::Get(&imageAtomicXor_01e00D00E), - Rule::Get( - &imageAtomicXorExt_01e00D00E), - Rule::Get(&imageAtomicXor_01f00D00E), - Rule::Get( - &imageAtomicXorExt_01f00D00E), - Rule::Get(&imageAtomicXor_01F20D00E), - Rule::Get( - &imageAtomicXorExt_01F20D00E), - Rule::Get(&imageAtomicXor_01G20D00E), - Rule::Get( - &imageAtomicXorExt_01G20D00E), - Rule::Get(&imageAtomicXor_01H20D00E), - Rule::Get( - &imageAtomicXorExt_01H20D00E), - Rule::Get(&imageAtomicXor_01X20D00E), - Rule::Get( - &imageAtomicXorExt_01X20D00E), - Rule::Get(&imageAtomicXor_01Y20D00E), - Rule::Get( - &imageAtomicXorExt_01Y20D00E), - Rule::Get(&imageAtomicXor_01Z20D00E), - Rule::Get( - &imageAtomicXorExt_01Z20D00E), - Rule::Get(&imageAtomicXor_01L00D00E), - Rule::Get( - &imageAtomicXorExt_01L00D00E), - Rule::Get(&imageAtomicXor_01M00D00E), - Rule::Get( - &imageAtomicXorExt_01M00D00E), - Rule::Get(&imageAtomicXor_01N00D00E), - Rule::Get( - &imageAtomicXorExt_01N00D00E), - Rule::Get(&imageAtomicXor_01O10D00E), - Rule::Get( - &imageAtomicXorExt_01O10D00E), - Rule::Get(&imageAtomicXor_01P10D00E), - Rule::Get( - &imageAtomicXorExt_01P10D00E), - Rule::Get(&imageAtomicXor_01Q10D00E), - Rule::Get( - &imageAtomicXorExt_01Q10D00E), - Rule::Get(&imageAtomicXor_01a10D00E), - Rule::Get( - &imageAtomicXorExt_01a10D00E), - Rule::Get(&imageAtomicXor_01b10D00E), - Rule::Get( - &imageAtomicXorExt_01b10D00E), - Rule::Get(&imageAtomicXor_01c10D00E), - Rule::Get( - &imageAtomicXorExt_01c10D00E), - Rule::Get(&imageAtomicXor_01R10D00D00E), - Rule::Get( - &imageAtomicXorExt_01R10D00D00E), - Rule::Get(&imageAtomicXor_01S10D00D00E), - Rule::Get( - &imageAtomicXorExt_01S10D00D00E), - Rule::Get(&imageAtomicXor_01T10D00D00E), - Rule::Get( - &imageAtomicXorExt_01T10D00D00E), - Rule::Get(&imageAtomicXor_01U20D00D00E), - Rule::Get( - &imageAtomicXorExt_01U20D00D00E), - Rule::Get(&imageAtomicXor_01V20D00D00E), - Rule::Get( - &imageAtomicXorExt_01V20D00D00E), - Rule::Get(&imageAtomicXor_01W20D00D00E), - Rule::Get( - &imageAtomicXorExt_01W20D00D00E), - Rule::Get(&imageAtomicXor_00z10D00D), - Rule::Get( - &imageAtomicXorExt_00z10D00D), - Rule::Get(&imageAtomicXor_01A10D00D), - Rule::Get( - &imageAtomicXorExt_01A10D00D), - Rule::Get(&imageAtomicXor_01B10D00D), - Rule::Get( - &imageAtomicXorExt_01B10D00D), - Rule::Get(&imageAtomicXor_01C20D00D), - Rule::Get( - &imageAtomicXorExt_01C20D00D), - Rule::Get(&imageAtomicXor_01D20D00D), - Rule::Get( - &imageAtomicXorExt_01D20D00D), - Rule::Get(&imageAtomicXor_01E20D00D), - Rule::Get( - &imageAtomicXorExt_01E20D00D), - Rule::Get(&imageAtomicXor_01I20D00D), - Rule::Get( - &imageAtomicXorExt_01I20D00D), - Rule::Get(&imageAtomicXor_01J20D00D), - Rule::Get( - &imageAtomicXorExt_01J20D00D), - Rule::Get(&imageAtomicXor_01K20D00D), - Rule::Get( - &imageAtomicXorExt_01K20D00D), - Rule::Get(&imageAtomicXor_01d00D00D), - Rule::Get( - &imageAtomicXorExt_01d00D00D), - Rule::Get(&imageAtomicXor_01e00D00D), - Rule::Get( - &imageAtomicXorExt_01e00D00D), - Rule::Get(&imageAtomicXor_01f00D00D), - Rule::Get( - &imageAtomicXorExt_01f00D00D), - Rule::Get(&imageAtomicXor_01F20D00D), - Rule::Get( - &imageAtomicXorExt_01F20D00D), - Rule::Get(&imageAtomicXor_01G20D00D), - Rule::Get( - &imageAtomicXorExt_01G20D00D), - Rule::Get(&imageAtomicXor_01H20D00D), - Rule::Get( - &imageAtomicXorExt_01H20D00D), - Rule::Get(&imageAtomicXor_01X20D00D), - Rule::Get( - &imageAtomicXorExt_01X20D00D), - Rule::Get(&imageAtomicXor_01Y20D00D), - Rule::Get( - &imageAtomicXorExt_01Y20D00D), - Rule::Get(&imageAtomicXor_01Z20D00D), - Rule::Get( - &imageAtomicXorExt_01Z20D00D), - Rule::Get(&imageAtomicXor_01L00D00D), - Rule::Get( - &imageAtomicXorExt_01L00D00D), - Rule::Get(&imageAtomicXor_01M00D00D), - Rule::Get( - &imageAtomicXorExt_01M00D00D), - Rule::Get(&imageAtomicXor_01N00D00D), - Rule::Get( - &imageAtomicXorExt_01N00D00D), - Rule::Get(&imageAtomicXor_01O10D00D), - Rule::Get( - &imageAtomicXorExt_01O10D00D), - Rule::Get(&imageAtomicXor_01P10D00D), - Rule::Get( - &imageAtomicXorExt_01P10D00D), - Rule::Get(&imageAtomicXor_01Q10D00D), - Rule::Get( - &imageAtomicXorExt_01Q10D00D), - Rule::Get(&imageAtomicXor_01a10D00D), - Rule::Get( - &imageAtomicXorExt_01a10D00D), - Rule::Get(&imageAtomicXor_01b10D00D), - Rule::Get( - &imageAtomicXorExt_01b10D00D), - Rule::Get(&imageAtomicXor_01c10D00D), - Rule::Get( - &imageAtomicXorExt_01c10D00D), - Rule::Get(&imageAtomicXor_01R10D00D00D), - Rule::Get( - &imageAtomicXorExt_01R10D00D00D), - Rule::Get(&imageAtomicXor_01S10D00D00D), - Rule::Get( - &imageAtomicXorExt_01S10D00D00D), - Rule::Get(&imageAtomicXor_01T10D00D00D), - Rule::Get( - &imageAtomicXorExt_01T10D00D00D), - Rule::Get(&imageAtomicXor_01U20D00D00D), - Rule::Get( - &imageAtomicXorExt_01U20D00D00D), - Rule::Get(&imageAtomicXor_01V20D00D00D), - Rule::Get( - &imageAtomicXorExt_01V20D00D00D), - Rule::Get(&imageAtomicXor_01W20D00D00D), - Rule::Get( - &imageAtomicXorExt_01W20D00D00D), - Rule::Get(&imageAtomicExchange_00z10D00E), - Rule::Get( - &imageAtomicExchangeExt_00z10D00E), - Rule::Get(&imageAtomicExchange_01A10D00E), - Rule::Get( - &imageAtomicExchangeExt_01A10D00E), - Rule::Get(&imageAtomicExchange_01B10D00E), - Rule::Get( - &imageAtomicExchangeExt_01B10D00E), - Rule::Get(&imageAtomicExchange_01C20D00E), - Rule::Get( - &imageAtomicExchangeExt_01C20D00E), - Rule::Get(&imageAtomicExchange_01D20D00E), - Rule::Get( - &imageAtomicExchangeExt_01D20D00E), - Rule::Get(&imageAtomicExchange_01E20D00E), - Rule::Get( - &imageAtomicExchangeExt_01E20D00E), - Rule::Get(&imageAtomicExchange_01I20D00E), - Rule::Get( - &imageAtomicExchangeExt_01I20D00E), - Rule::Get(&imageAtomicExchange_01J20D00E), - Rule::Get( - &imageAtomicExchangeExt_01J20D00E), - Rule::Get(&imageAtomicExchange_01K20D00E), - Rule::Get( - &imageAtomicExchangeExt_01K20D00E), - Rule::Get(&imageAtomicExchange_01d00D00E), - Rule::Get( - &imageAtomicExchangeExt_01d00D00E), - Rule::Get(&imageAtomicExchange_01e00D00E), - Rule::Get( - &imageAtomicExchangeExt_01e00D00E), - Rule::Get(&imageAtomicExchange_01f00D00E), - Rule::Get( - &imageAtomicExchangeExt_01f00D00E), - Rule::Get(&imageAtomicExchange_01F20D00E), - Rule::Get( - &imageAtomicExchangeExt_01F20D00E), - Rule::Get(&imageAtomicExchange_01G20D00E), - Rule::Get( - &imageAtomicExchangeExt_01G20D00E), - Rule::Get(&imageAtomicExchange_01H20D00E), - Rule::Get( - &imageAtomicExchangeExt_01H20D00E), - Rule::Get(&imageAtomicExchange_01X20D00E), - Rule::Get( - &imageAtomicExchangeExt_01X20D00E), - Rule::Get(&imageAtomicExchange_01Y20D00E), - Rule::Get( - &imageAtomicExchangeExt_01Y20D00E), - Rule::Get(&imageAtomicExchange_01Z20D00E), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00E), - Rule::Get(&imageAtomicExchange_01L00D00E), - Rule::Get( - &imageAtomicExchangeExt_01L00D00E), - Rule::Get(&imageAtomicExchange_01M00D00E), - Rule::Get( - &imageAtomicExchangeExt_01M00D00E), - Rule::Get(&imageAtomicExchange_01N00D00E), - Rule::Get( - &imageAtomicExchangeExt_01N00D00E), - Rule::Get(&imageAtomicExchange_01O10D00E), - Rule::Get( - &imageAtomicExchangeExt_01O10D00E), - Rule::Get(&imageAtomicExchange_01P10D00E), - Rule::Get( - &imageAtomicExchangeExt_01P10D00E), - Rule::Get(&imageAtomicExchange_01Q10D00E), - Rule::Get( - &imageAtomicExchangeExt_01Q10D00E), - Rule::Get(&imageAtomicExchange_01a10D00E), - Rule::Get( - &imageAtomicExchangeExt_01a10D00E), - Rule::Get(&imageAtomicExchange_01b10D00E), - Rule::Get( - &imageAtomicExchangeExt_01b10D00E), - Rule::Get(&imageAtomicExchange_01c10D00E), - Rule::Get( - &imageAtomicExchangeExt_01c10D00E), - Rule::Get(&imageAtomicExchange_01R10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00E), - Rule::Get(&imageAtomicExchange_01S10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00E), - Rule::Get(&imageAtomicExchange_01T10D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00E), - Rule::Get(&imageAtomicExchange_01U20D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00E), - Rule::Get(&imageAtomicExchange_01V20D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00E), - Rule::Get(&imageAtomicExchange_01W20D00D00E), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00E), - Rule::Get(&imageAtomicExchange_00z10D00D), - Rule::Get( - &imageAtomicExchangeExt_00z10D00D), - Rule::Get(&imageAtomicExchange_01A10D00D), - Rule::Get( - &imageAtomicExchangeExt_01A10D00D), - Rule::Get(&imageAtomicExchange_01B10D00D), - Rule::Get( - &imageAtomicExchangeExt_01B10D00D), - Rule::Get(&imageAtomicExchange_01C20D00D), - Rule::Get( - &imageAtomicExchangeExt_01C20D00D), - Rule::Get(&imageAtomicExchange_01D20D00D), - Rule::Get( - &imageAtomicExchangeExt_01D20D00D), - Rule::Get(&imageAtomicExchange_01E20D00D), - Rule::Get( - &imageAtomicExchangeExt_01E20D00D), - Rule::Get(&imageAtomicExchange_01I20D00D), - Rule::Get( - &imageAtomicExchangeExt_01I20D00D), - Rule::Get(&imageAtomicExchange_01J20D00D), - Rule::Get( - &imageAtomicExchangeExt_01J20D00D), - Rule::Get(&imageAtomicExchange_01K20D00D), - Rule::Get( - &imageAtomicExchangeExt_01K20D00D), - Rule::Get(&imageAtomicExchange_01d00D00D), - Rule::Get( - &imageAtomicExchangeExt_01d00D00D), - Rule::Get(&imageAtomicExchange_01e00D00D), - Rule::Get( - &imageAtomicExchangeExt_01e00D00D), - Rule::Get(&imageAtomicExchange_01f00D00D), - Rule::Get( - &imageAtomicExchangeExt_01f00D00D), - Rule::Get(&imageAtomicExchange_01F20D00D), - Rule::Get( - &imageAtomicExchangeExt_01F20D00D), - Rule::Get(&imageAtomicExchange_01G20D00D), - Rule::Get( - &imageAtomicExchangeExt_01G20D00D), - Rule::Get(&imageAtomicExchange_01H20D00D), - Rule::Get( - &imageAtomicExchangeExt_01H20D00D), - Rule::Get(&imageAtomicExchange_01X20D00D), - Rule::Get( - &imageAtomicExchangeExt_01X20D00D), - Rule::Get(&imageAtomicExchange_01Y20D00D), - Rule::Get( - &imageAtomicExchangeExt_01Y20D00D), - Rule::Get(&imageAtomicExchange_01Z20D00D), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00D), - Rule::Get(&imageAtomicExchange_01L00D00D), - Rule::Get( - &imageAtomicExchangeExt_01L00D00D), - Rule::Get(&imageAtomicExchange_01M00D00D), - Rule::Get( - &imageAtomicExchangeExt_01M00D00D), - Rule::Get(&imageAtomicExchange_01N00D00D), - Rule::Get( - &imageAtomicExchangeExt_01N00D00D), - Rule::Get(&imageAtomicExchange_01O10D00D), - Rule::Get( - &imageAtomicExchangeExt_01O10D00D), - Rule::Get(&imageAtomicExchange_01P10D00D), - Rule::Get( - &imageAtomicExchangeExt_01P10D00D), - Rule::Get(&imageAtomicExchange_01Q10D00D), - Rule::Get( - &imageAtomicExchangeExt_01Q10D00D), - Rule::Get(&imageAtomicExchange_01a10D00D), - Rule::Get( - &imageAtomicExchangeExt_01a10D00D), - Rule::Get(&imageAtomicExchange_01b10D00D), - Rule::Get( - &imageAtomicExchangeExt_01b10D00D), - Rule::Get(&imageAtomicExchange_01c10D00D), - Rule::Get( - &imageAtomicExchangeExt_01c10D00D), - Rule::Get(&imageAtomicExchange_01R10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00D), - Rule::Get(&imageAtomicExchange_01S10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00D), - Rule::Get(&imageAtomicExchange_01T10D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00D), - Rule::Get(&imageAtomicExchange_01U20D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00D), - Rule::Get(&imageAtomicExchange_01V20D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00D), - Rule::Get(&imageAtomicExchange_01W20D00D00D), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00D), - Rule::Get(&imageAtomicExchange_00z10D00B), - Rule::Get( - &imageAtomicExchangeExt_00z10D00B), - Rule::Get(&imageAtomicExchange_01A10D00B), - Rule::Get( - &imageAtomicExchangeExt_01A10D00B), - Rule::Get(&imageAtomicExchange_01B10D00B), - Rule::Get( - &imageAtomicExchangeExt_01B10D00B), - Rule::Get(&imageAtomicExchange_01C20D00B), - Rule::Get( - &imageAtomicExchangeExt_01C20D00B), - Rule::Get(&imageAtomicExchange_01D20D00B), - Rule::Get( - &imageAtomicExchangeExt_01D20D00B), - Rule::Get(&imageAtomicExchange_01E20D00B), - Rule::Get( - &imageAtomicExchangeExt_01E20D00B), - Rule::Get(&imageAtomicExchange_01I20D00B), - Rule::Get( - &imageAtomicExchangeExt_01I20D00B), - Rule::Get(&imageAtomicExchange_01J20D00B), - Rule::Get( - &imageAtomicExchangeExt_01J20D00B), - Rule::Get(&imageAtomicExchange_01K20D00B), - Rule::Get( - &imageAtomicExchangeExt_01K20D00B), - Rule::Get(&imageAtomicExchange_01d00D00B), - Rule::Get( - &imageAtomicExchangeExt_01d00D00B), - Rule::Get(&imageAtomicExchange_01e00D00B), - Rule::Get( - &imageAtomicExchangeExt_01e00D00B), - Rule::Get(&imageAtomicExchange_01f00D00B), - Rule::Get( - &imageAtomicExchangeExt_01f00D00B), - Rule::Get(&imageAtomicExchange_01F20D00B), - Rule::Get( - &imageAtomicExchangeExt_01F20D00B), - Rule::Get(&imageAtomicExchange_01G20D00B), - Rule::Get( - &imageAtomicExchangeExt_01G20D00B), - Rule::Get(&imageAtomicExchange_01H20D00B), - Rule::Get( - &imageAtomicExchangeExt_01H20D00B), - Rule::Get(&imageAtomicExchange_01X20D00B), - Rule::Get( - &imageAtomicExchangeExt_01X20D00B), - Rule::Get(&imageAtomicExchange_01Y20D00B), - Rule::Get( - &imageAtomicExchangeExt_01Y20D00B), - Rule::Get(&imageAtomicExchange_01Z20D00B), - Rule::Get( - &imageAtomicExchangeExt_01Z20D00B), - Rule::Get(&imageAtomicExchange_01L00D00B), - Rule::Get( - &imageAtomicExchangeExt_01L00D00B), - Rule::Get(&imageAtomicExchange_01M00D00B), - Rule::Get( - &imageAtomicExchangeExt_01M00D00B), - Rule::Get(&imageAtomicExchange_01N00D00B), - Rule::Get( - &imageAtomicExchangeExt_01N00D00B), - Rule::Get(&imageAtomicExchange_01O10D00B), - Rule::Get( - &imageAtomicExchangeExt_01O10D00B), - Rule::Get(&imageAtomicExchange_01P10D00B), - Rule::Get( - &imageAtomicExchangeExt_01P10D00B), - Rule::Get(&imageAtomicExchange_01Q10D00B), - Rule::Get( - &imageAtomicExchangeExt_01Q10D00B), - Rule::Get(&imageAtomicExchange_01a10D00B), - Rule::Get( - &imageAtomicExchangeExt_01a10D00B), - Rule::Get(&imageAtomicExchange_01b10D00B), - Rule::Get( - &imageAtomicExchangeExt_01b10D00B), - Rule::Get(&imageAtomicExchange_01c10D00B), - Rule::Get( - &imageAtomicExchangeExt_01c10D00B), - Rule::Get(&imageAtomicExchange_01R10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01R10D00D00B), - Rule::Get(&imageAtomicExchange_01S10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01S10D00D00B), - Rule::Get(&imageAtomicExchange_01T10D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01T10D00D00B), - Rule::Get(&imageAtomicExchange_01U20D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01U20D00D00B), - Rule::Get(&imageAtomicExchange_01V20D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01V20D00D00B), - Rule::Get(&imageAtomicExchange_01W20D00D00B), - Rule::Get( - &imageAtomicExchangeExt_01W20D00D00B), - Rule::Get(&imageAtomicCompSwap_00z10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_00z10D00E00E), - Rule::Get(&imageAtomicCompSwap_01A10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01A10D00E00E), - Rule::Get(&imageAtomicCompSwap_01B10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01B10D00E00E), - Rule::Get(&imageAtomicCompSwap_01C20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01C20D00E00E), - Rule::Get(&imageAtomicCompSwap_01D20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01D20D00E00E), - Rule::Get(&imageAtomicCompSwap_01E20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01E20D00E00E), - Rule::Get(&imageAtomicCompSwap_01I20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01I20D00E00E), - Rule::Get(&imageAtomicCompSwap_01J20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01J20D00E00E), - Rule::Get(&imageAtomicCompSwap_01K20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01K20D00E00E), - Rule::Get(&imageAtomicCompSwap_01d00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01d00D00E00E), - Rule::Get(&imageAtomicCompSwap_01e00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01e00D00E00E), - Rule::Get(&imageAtomicCompSwap_01f00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01f00D00E00E), - Rule::Get(&imageAtomicCompSwap_01F20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01F20D00E00E), - Rule::Get(&imageAtomicCompSwap_01G20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01G20D00E00E), - Rule::Get(&imageAtomicCompSwap_01H20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01H20D00E00E), - Rule::Get(&imageAtomicCompSwap_01X20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01X20D00E00E), - Rule::Get(&imageAtomicCompSwap_01Y20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01Y20D00E00E), - Rule::Get(&imageAtomicCompSwap_01Z20D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01Z20D00E00E), - Rule::Get(&imageAtomicCompSwap_01L00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01L00D00E00E), - Rule::Get(&imageAtomicCompSwap_01M00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01M00D00E00E), - Rule::Get(&imageAtomicCompSwap_01N00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01N00D00E00E), - Rule::Get(&imageAtomicCompSwap_01O10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01O10D00E00E), - Rule::Get(&imageAtomicCompSwap_01P10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01P10D00E00E), - Rule::Get(&imageAtomicCompSwap_01Q10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01Q10D00E00E), - Rule::Get(&imageAtomicCompSwap_01a10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01a10D00E00E), - Rule::Get(&imageAtomicCompSwap_01b10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01b10D00E00E), - Rule::Get(&imageAtomicCompSwap_01c10D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01c10D00E00E), - Rule::Get(&imageAtomicCompSwap_01R10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01R10D00D00E00E), - Rule::Get(&imageAtomicCompSwap_01S10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01S10D00D00E00E), - Rule::Get(&imageAtomicCompSwap_01T10D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01T10D00D00E00E), - Rule::Get(&imageAtomicCompSwap_01U20D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01U20D00D00E00E), - Rule::Get(&imageAtomicCompSwap_01V20D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01V20D00D00E00E), - Rule::Get(&imageAtomicCompSwap_01W20D00D00E00E), - Rule::Get( - &imageAtomicCompSwapExt_01W20D00D00E00E), - Rule::Get(&imageAtomicCompSwap_00z10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_00z10D00D00D), - Rule::Get(&imageAtomicCompSwap_01A10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01A10D00D00D), - Rule::Get(&imageAtomicCompSwap_01B10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01B10D00D00D), - Rule::Get(&imageAtomicCompSwap_01C20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01C20D00D00D), - Rule::Get(&imageAtomicCompSwap_01D20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01D20D00D00D), - Rule::Get(&imageAtomicCompSwap_01E20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01E20D00D00D), - Rule::Get(&imageAtomicCompSwap_01I20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01I20D00D00D), - Rule::Get(&imageAtomicCompSwap_01J20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01J20D00D00D), - Rule::Get(&imageAtomicCompSwap_01K20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01K20D00D00D), - Rule::Get(&imageAtomicCompSwap_01d00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01d00D00D00D), - Rule::Get(&imageAtomicCompSwap_01e00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01e00D00D00D), - Rule::Get(&imageAtomicCompSwap_01f00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01f00D00D00D), - Rule::Get(&imageAtomicCompSwap_01F20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01F20D00D00D), - Rule::Get(&imageAtomicCompSwap_01G20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01G20D00D00D), - Rule::Get(&imageAtomicCompSwap_01H20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01H20D00D00D), - Rule::Get(&imageAtomicCompSwap_01X20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01X20D00D00D), - Rule::Get(&imageAtomicCompSwap_01Y20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01Y20D00D00D), - Rule::Get(&imageAtomicCompSwap_01Z20D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01Z20D00D00D), - Rule::Get(&imageAtomicCompSwap_01L00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01L00D00D00D), - Rule::Get(&imageAtomicCompSwap_01M00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01M00D00D00D), - Rule::Get(&imageAtomicCompSwap_01N00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01N00D00D00D), - Rule::Get(&imageAtomicCompSwap_01O10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01O10D00D00D), - Rule::Get(&imageAtomicCompSwap_01P10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01P10D00D00D), - Rule::Get(&imageAtomicCompSwap_01Q10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01Q10D00D00D), - Rule::Get(&imageAtomicCompSwap_01a10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01a10D00D00D), - Rule::Get(&imageAtomicCompSwap_01b10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01b10D00D00D), - Rule::Get(&imageAtomicCompSwap_01c10D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01c10D00D00D), - Rule::Get(&imageAtomicCompSwap_01R10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01R10D00D00D00D), - Rule::Get(&imageAtomicCompSwap_01S10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01S10D00D00D00D), - Rule::Get(&imageAtomicCompSwap_01T10D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01T10D00D00D00D), - Rule::Get(&imageAtomicCompSwap_01U20D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01U20D00D00D00D), - Rule::Get(&imageAtomicCompSwap_01V20D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01V20D00D00D00D), - Rule::Get(&imageAtomicCompSwap_01W20D00D00D00D), - Rule::Get( - &imageAtomicCompSwapExt_01W20D00D00D00D), - Rule::Get(&noise1_00B), - Rule::Get(&noise1_10B), - Rule::Get(&noise1_20B), - Rule::Get(&noise1_30B), - Rule::Get(&noise2_00B), - Rule::Get(&noise2_10B), - Rule::Get(&noise2_20B), - Rule::Get(&noise2_30B), - Rule::Get(&noise3_00B), - Rule::Get(&noise3_10B), - Rule::Get(&noise3_20B), - Rule::Get(&noise3_30B), - Rule::Get(&noise4_00B), - Rule::Get(&noise4_10B), - Rule::Get(&noise4_20B), - Rule::Get(&noise4_30B), - Rule::Get(&memoryBarrier_), - Rule::Get(&memoryBarrier_), - Rule::Get(&memoryBarrierAtomicCounter_), - Rule::Get(&memoryBarrierAtomicCounter_), - Rule::Get(&memoryBarrierBuffer_), - Rule::Get(&memoryBarrierBuffer_), - Rule::Get(&memoryBarrierImage_), - Rule::Get(&memoryBarrierImage_), - Rule::Get(&barrier_), - Rule::Get(&barrier_), - Rule::Get(&barrierES3_2_), - Rule::Get( - &barrier_), - Rule::Get(&memoryBarrierShared_), - Rule::Get(&memoryBarrierShared_), - Rule::Get(&groupMemoryBarrier_), - Rule::Get(&groupMemoryBarrier_), - Rule::Get(&EmitVertexES3_2_), - Rule::Get(&EmitVertex_), - Rule::Get(&EmitVertex_), - Rule::Get(&EndPrimitiveES3_2_), - Rule::Get(&EndPrimitive_), - Rule::Get( - &EndPrimitive_), - Rule::Get(&EmitStreamVertex_00D), - Rule::Get(&EndStreamPrimitive_00D), - Rule::Get(&subpassLoad_01g), - Rule::Get(&subpassLoad_01h), - Rule::Get(&subpassLoad_01i), - Rule::Get(&subpassLoad_01j00D), - Rule::Get(&subpassLoad_01k00D), - Rule::Get(&subpassLoad_01l00D), - Rule::Get(&anyInvocation_00F), - Rule::Get(&allInvocations_00F), - Rule::Get(&allInvocationsEqual_00F), - Rule::Get(&textureVideoWEBGL_00y10B), - Rule::Get(&textureVideoWEBGL_00y10B), - Rule::Get(&texture_00y10B), - Rule::Get(&texture_00y10B), - Rule::Get(&TableBase::m_gl_DepthRangeParameters), - Rule::Get(&TableBase::m_gl_DepthRangeParameters), - Rule::Get(&TableBase::m_gl_DepthRange), - Rule::Get(&TableBase::m_gl_DepthRange), - Rule::Get(&BuiltInVariable::kgl_NumSamplesES3_2), - Rule::Get(&BuiltInVariable::kgl_NumSamplesES3_2), - Rule::Get( - &BuiltInVariable::kgl_NumSamples), - Rule::Get(&TableBase::m_gl_MaxVertexAttribs), - Rule::Get(&TableBase::m_gl_MaxVertexAttribs), - Rule::Get(&TableBase::m_gl_MaxVertexUniformVectors), - Rule::Get(&TableBase::m_gl_MaxVertexUniformVectors), - Rule::Get(&TableBase::m_gl_MaxVertexTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxVertexTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxCombinedTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxCombinedTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxFragmentUniformVectors), - Rule::Get(&TableBase::m_gl_MaxFragmentUniformVectors), - Rule::Get(&TableBase::m_gl_MaxVaryingVectors), - Rule::Get(&TableBase::m_gl_MaxVaryingVectors), - Rule::Get(&TableBase::m_gl_MaxDrawBuffers), - Rule::Get(&TableBase::m_gl_MaxDrawBuffers), - Rule::Get( - &TableBase::m_gl_MaxDualSourceDrawBuffersEXT), - Rule::Get(&TableBase::m_gl_MaxVertexOutputVectors), - Rule::Get(&TableBase::m_gl_MaxVertexOutputVectors), - Rule::Get(&TableBase::m_gl_MaxFragmentInputVectors), - Rule::Get(&TableBase::m_gl_MaxFragmentInputVectors), - Rule::Get(&TableBase::m_gl_MinProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MinProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MaxProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MaxProgramTexelOffset), - Rule::Get(&TableBase::m_gl_MaxImageUnits), - Rule::Get(&TableBase::m_gl_MaxImageUnits), - Rule::Get(&TableBase::m_gl_MaxVertexImageUniforms), - Rule::Get(&TableBase::m_gl_MaxVertexImageUniforms), - Rule::Get(&TableBase::m_gl_MaxFragmentImageUniforms), - Rule::Get(&TableBase::m_gl_MaxFragmentImageUniforms), - Rule::Get(&TableBase::m_gl_MaxComputeImageUniforms), - Rule::Get(&TableBase::m_gl_MaxComputeImageUniforms), - Rule::Get(&TableBase::m_gl_MaxCombinedImageUniforms), - Rule::Get(&TableBase::m_gl_MaxCombinedImageUniforms), - Rule::Get(&TableBase::m_gl_MaxCombinedShaderOutputResources), - Rule::Get(&TableBase::m_gl_MaxCombinedShaderOutputResources), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupCount), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupCount), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupSize), - Rule::Get(&TableBase::m_gl_MaxComputeWorkGroupSize), - Rule::Get(&TableBase::m_gl_MaxComputeUniformComponents), - Rule::Get(&TableBase::m_gl_MaxComputeUniformComponents), - Rule::Get(&TableBase::m_gl_MaxComputeTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxComputeTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxComputeAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounters), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBindings), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBindings), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxVertexAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBufferSize), - Rule::Get(&TableBase::m_gl_MaxAtomicCounterBufferSize), - Rule::Get(&TableBase::m_gl_MaxGeometryInputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryInputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryInputComponents), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryOutputComponents), - Rule::Get(&TableBase::m_gl_MaxGeometryImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryImageUniformsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryImageUniforms), - Rule::Get(&TableBase::m_gl_MaxGeometryTextureImageUnitsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryTextureImageUnitsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryTextureImageUnits), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputVerticesES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryOutputVerticesES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryOutputVertices), - Rule::Get( - &TableBase::m_gl_MaxGeometryTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryTotalOutputComponents), - Rule::Get(&TableBase::m_gl_MaxGeometryUniformComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryUniformComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryUniformComponents), - Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCountersES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryAtomicCounters), - Rule::Get( - &TableBase::m_gl_MaxGeometryAtomicCounterBuffersES3_2), - Rule::Get(&TableBase::m_gl_MaxGeometryAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxGeometryAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxTessControlInputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlInputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlInputComponents), - Rule::Get( - &TableBase::m_gl_MaxTessControlOutputComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlOutputComponents), - Rule::Get( - &TableBase::m_gl_MaxTessControlTextureImageUnitsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlTextureImageUnitsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlTextureImageUnits), - Rule::Get( - &TableBase::m_gl_MaxTessControlUniformComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlUniformComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlUniformComponents), - Rule::Get( - &TableBase::m_gl_MaxTessControlTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlTotalOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlTotalOutputComponents), - Rule::Get(&TableBase::m_gl_MaxTessControlImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlImageUniformsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlImageUniforms), - Rule::Get(&TableBase::m_gl_MaxTessControlAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxTessControlAtomicCountersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlAtomicCounters), - Rule::Get( - &TableBase::m_gl_MaxTessControlAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessControlAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxTessPatchComponentsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessPatchComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessPatchComponents), - Rule::Get(&TableBase::m_gl_MaxPatchVerticesES3_2), - Rule::Get(&TableBase::m_gl_MaxPatchVerticesES3_2), - Rule::Get( - &TableBase::m_gl_MaxPatchVertices), - Rule::Get(&TableBase::m_gl_MaxTessGenLevelES3_2), - Rule::Get(&TableBase::m_gl_MaxTessGenLevelES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessGenLevel), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationInputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationInputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationInputComponents), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationOutputComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationOutputComponents), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationTextureImageUnitsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationTextureImageUnitsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationTextureImageUnits), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationUniformComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationUniformComponentsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationUniformComponents), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationImageUniformsES3_2), - Rule::Get(&TableBase::m_gl_MaxTessEvaluationImageUniformsES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationImageUniforms), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCountersES3_2), - Rule::Get(&TableBase::m_gl_MaxTessEvaluationAtomicCountersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCounters), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2), - Rule::Get( - &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffers), - Rule::Get(&TableBase::m_gl_MaxSamplesES3_2), - Rule::Get(&TableBase::m_gl_MaxSamplesES3_2), - Rule::Get( - &TableBase::m_gl_MaxSamples), - Rule::Get( - &TableBase::m_gl_MaxClipDistancesAPPLE), - Rule::Get( - &TableBase::m_gl_MaxCullDistancesEXT), - Rule::Get( - &TableBase::m_gl_MaxCombinedClipAndCullDistancesEXT), - Rule::Get(&BuiltInVariable::kgl_FragCoord), - Rule::Get(&BuiltInVariable::kgl_FragCoord), - Rule::Get(&BuiltInVariable::kgl_FrontFacing), - Rule::Get(&BuiltInVariable::kgl_FrontFacing), - Rule::Get(&BuiltInVariable::kgl_PointCoord), - Rule::Get(&BuiltInVariable::kgl_PointCoord), - Rule::Get(&BuiltInVariable::kgl_FragColor), - Rule::Get(&BuiltInVariable::kgl_FragColor), - Rule::Get(&TableBase::m_gl_FragData), - Rule::Get(&TableBase::m_gl_FragData), - Rule::Get(&BuiltInVariable::kgl_FragDepth), - Rule::Get(&BuiltInVariable::kgl_FragDepth), - Rule::Get(&BuiltInVariable::kgl_HelperInvocation), - Rule::Get(&BuiltInVariable::kgl_HelperInvocation), - Rule::Get( - &BuiltInVariable::kgl_SecondaryFragColorEXT), - Rule::Get( - &TableBase::m_gl_SecondaryFragDataEXT), - Rule::Get( - &TableBase::m_gl_FragDepthEXT), - Rule::Get( - &TableBase::m_gl_LastFragData), - Rule::Get( - &TableBase::m_gl_LastFragDataNonCoherent), - Rule::Get( - &TableBase::m_gl_LastFragDataNV), - Rule::Get( - &BuiltInVariable::kgl_LastFragColor), - Rule::Get( - &BuiltInVariable::kgl_LastFragColorARM), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDGSES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDGSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveID), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDGS), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTCS), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDTES), - Rule::Get(&BuiltInVariable::kgl_LayerES3_2), - Rule::Get(&BuiltInVariable::kgl_LayerES3_2), - Rule::Get(&BuiltInVariable::kgl_LayerGSES3_2), - Rule::Get(&BuiltInVariable::kgl_LayerGSES3_2), - Rule::Get( - &BuiltInVariable::kgl_Layer), - Rule::Get( - &BuiltInVariable::kgl_LayerGS), - Rule::Get(&BuiltInVariable::kgl_SampleIDES3_2), - Rule::Get(&BuiltInVariable::kgl_SampleIDES3_2), - Rule::Get( - &BuiltInVariable::kgl_SampleID), - Rule::Get(&BuiltInVariable::kgl_SamplePositionES3_2), - Rule::Get(&BuiltInVariable::kgl_SamplePositionES3_2), - Rule::Get( - &BuiltInVariable::kgl_SamplePosition), - Rule::Get(&TableBase::m_gl_SampleMaskInES3_2), - Rule::Get(&TableBase::m_gl_SampleMaskInES3_2), - Rule::Get( - &TableBase::m_gl_SampleMaskIn), - Rule::Get(&TableBase::m_gl_SampleMaskES3_2), - Rule::Get(&TableBase::m_gl_SampleMaskES3_2), - Rule::Get( - &TableBase::m_gl_SampleMask), - Rule::Get( - &TableBase::m_gl_CullDistance), - Rule::Get( - &TableBase::m_gl_CullDistanceEXT), - Rule::Get( - &TableBase::m_gl_ClipDistance), - Rule::Get( - &TableBase::m_gl_ClipDistanceAPPLE), - Rule::Get(&BuiltInVariable::kgl_Position), - Rule::Get(&BuiltInVariable::kgl_Position), - Rule::Get(&TableBase::m_gl_PositionGSES3_2), - Rule::Get(&TableBase::m_gl_PositionGSES3_2), - Rule::Get(&TableBase::m_gl_PositionTCSES3_2), - Rule::Get(&TableBase::m_gl_PositionTCSES3_2), - Rule::Get(&TableBase::m_gl_PositionTESES3_2), - Rule::Get(&TableBase::m_gl_PositionTESES3_2), - Rule::Get( - &TableBase::m_gl_PositionGS), - Rule::Get( - &TableBase::m_gl_PositionTCS), - Rule::Get( - &TableBase::m_gl_PositionTES), - Rule::Get(&BuiltInVariable::kgl_PointSize), - Rule::Get(&BuiltInVariable::kgl_PointSize), - Rule::Get(&BuiltInVariable::kgl_InstanceID), - Rule::Get(&BuiltInVariable::kgl_InstanceID), - Rule::Get(&BuiltInVariable::kgl_VertexID), - Rule::Get(&BuiltInVariable::kgl_VertexID), - Rule::Get( - &BuiltInVariable::kgl_DrawID), - Rule::Get( - &BuiltInVariable::kgl_BaseVertex), - Rule::Get( - &BuiltInVariable::kgl_BaseInstance), - Rule::Get( - &BuiltInVariable::kangle_BaseVertex), - Rule::Get( - &BuiltInVariable::kangle_BaseInstance), - Rule::Get(&BuiltInVariable::kgl_NumWorkGroups), - Rule::Get(&BuiltInVariable::kgl_NumWorkGroups), - Rule::Get(&BuiltInVariable::kgl_WorkGroupSize), - Rule::Get(&BuiltInVariable::kgl_WorkGroupSize), - Rule::Get(&BuiltInVariable::kgl_WorkGroupID), - Rule::Get(&BuiltInVariable::kgl_WorkGroupID), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationID), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationID), - Rule::Get(&BuiltInVariable::kgl_GlobalInvocationID), - Rule::Get(&BuiltInVariable::kgl_GlobalInvocationID), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationIndex), - Rule::Get(&BuiltInVariable::kgl_LocalInvocationIndex), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDInES3_2), - Rule::Get(&BuiltInVariable::kgl_PrimitiveIDInES3_2), - Rule::Get( - &BuiltInVariable::kgl_PrimitiveIDIn), - Rule::Get(&BuiltInVariable::kgl_InvocationIDES3_2), - Rule::Get(&BuiltInVariable::kgl_InvocationIDES3_2), - Rule::Get( - &BuiltInVariable::kgl_InvocationIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_InvocationIDTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_InvocationID), - Rule::Get( - &BuiltInVariable::kgl_InvocationIDTCS), - Rule::Get(&TableBase::m_gl_PerVertexES3_2), - Rule::Get(&TableBase::m_gl_PerVertexES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTCSES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTCSES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTESES3_2), - Rule::Get(&TableBase::m_gl_PerVertexTESES3_2), - Rule::Get( - &TableBase::m_gl_PerVertex), - Rule::Get( - &TableBase::m_gl_PerVertexTCS), - Rule::Get( - &TableBase::m_gl_PerVertexTES), - Rule::Get(&TableBase::m_gl_inES3_2), - Rule::Get(&TableBase::m_gl_inES3_2), - Rule::Get(&TableBase::m_gl_inTCSES3_2), - Rule::Get(&TableBase::m_gl_inTCSES3_2), - Rule::Get(&TableBase::m_gl_inTESES3_2), - Rule::Get(&TableBase::m_gl_inTESES3_2), - Rule::Get( - &TableBase::m_gl_in), - Rule::Get( - &TableBase::m_gl_inTCS), - Rule::Get( - &TableBase::m_gl_inTES), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTCSES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTESES3_2), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTCS), - Rule::Get( - &BuiltInVariable::kgl_PatchVerticesInTES), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTCSES3_2), - Rule::Get(&TableBase::m_gl_TessLevelOuterTCSES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTCS), - Rule::Get( - &TableBase::m_gl_TessLevelOuterTES), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTCSES3_2), - Rule::Get(&TableBase::m_gl_TessLevelInnerTCSES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTESES3_2), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTCS), - Rule::Get( - &TableBase::m_gl_TessLevelInnerTES), - Rule::Get(&TableBase::m_gl_outTCSES3_2), - Rule::Get(&TableBase::m_gl_outTCSES3_2), - Rule::Get(&TableBase::m_gl_outTESES3_2), - Rule::Get(&TableBase::m_gl_outTESES3_2), - Rule::Get( - &TableBase::m_gl_outTCS), - Rule::Get( - &TableBase::m_gl_outTES), - Rule::Get(&BuiltInVariable::kgl_TessCoord), - Rule::Get(&BuiltInVariable::kgl_TessCoord), - Rule::Get( - &BuiltInVariable::kgl_ViewID_OVR)}; - -// Flat array of all mangled names. -constexpr const char *kMangledNames[] = {"radians(00B", - "radians(10B", - "radians(20B", - "radians(30B", - "degrees(00B", - "degrees(10B", - "degrees(20B", - "degrees(30B", - "sin(00B", - "sin(10B", - "sin(20B", - "sin(30B", - "cos(00B", - "cos(10B", - "cos(20B", - "cos(30B", - "tan(00B", - "tan(10B", - "tan(20B", - "tan(30B", - "asin(00B", - "asin(10B", - "asin(20B", - "asin(30B", - "acos(00B", - "acos(10B", - "acos(20B", - "acos(30B", - "atan(00B00B", - "atan(10B10B", - "atan(20B20B", - "atan(30B30B", - "atan(00B", - "atan(10B", - "atan(20B", - "atan(30B", - "sinh(00B", - "sinh(10B", - "sinh(20B", - "sinh(30B", - "cosh(00B", - "cosh(10B", - "cosh(20B", - "cosh(30B", - "tanh(00B", - "tanh(10B", - "tanh(20B", - "tanh(30B", - "asinh(00B", - "asinh(10B", - "asinh(20B", - "asinh(30B", - "acosh(00B", - "acosh(10B", - "acosh(20B", - "acosh(30B", - "atanh(00B", - "atanh(10B", - "atanh(20B", - "atanh(30B", - "pow(00B00B", - "pow(10B10B", - "pow(20B20B", - "pow(30B30B", - "exp(00B", - "exp(10B", - "exp(20B", - "exp(30B", - "log(00B", - "log(10B", - "log(20B", - "log(30B", - "exp2(00B", - "exp2(10B", - "exp2(20B", - "exp2(30B", - "log2(00B", - "log2(10B", - "log2(20B", - "log2(30B", - "sqrt(00B", - "sqrt(10B", - "sqrt(20B", - "sqrt(30B", - "sqrt(00C", - "sqrt(10C", - "sqrt(20C", - "sqrt(30C", - "inversesqrt(00B", - "inversesqrt(10B", - "inversesqrt(20B", - "inversesqrt(30B", - "inversesqrt(00C", - "inversesqrt(10C", - "inversesqrt(20C", - "inversesqrt(30C", - "abs(00B", - "abs(10B", - "abs(20B", - "abs(30B", - "abs(00D", - "abs(10D", - "abs(20D", - "abs(30D", - "abs(00C", - "abs(10C", - "abs(20C", - "abs(30C", - "sign(00B", - "sign(10B", - "sign(20B", - "sign(30B", - "sign(00D", - "sign(10D", - "sign(20D", - "sign(30D", - "sign(00C", - "sign(10C", - "sign(20C", - "sign(30C", - "floor(00B", - "floor(10B", - "floor(20B", - "floor(30B", - "floor(00C", - "floor(10C", - "floor(20C", - "floor(30C", - "trunc(00B", - "trunc(10B", - "trunc(20B", - "trunc(30B", - "trunc(00C", - "trunc(10C", - "trunc(20C", - "trunc(30C", - "round(00B", - "round(10B", - "round(20B", - "round(30B", - "round(00C", - "round(10C", - "round(20C", - "round(30C", - "roundEven(00B", - "roundEven(10B", - "roundEven(20B", - "roundEven(30B", - "roundEven(00C", - "roundEven(10C", - "roundEven(20C", - "roundEven(30C", - "ceil(00B", - "ceil(10B", - "ceil(20B", - "ceil(30B", - "ceil(00C", - "ceil(10C", - "ceil(20C", - "ceil(30C", - "fract(00B", - "fract(10B", - "fract(20B", - "fract(30B", - "fract(00C", - "fract(10C", - "fract(20C", - "fract(30C", - "mod(00B00B", - "mod(10B00B", - "mod(20B00B", - "mod(30B00B", - "mod(10B10B", - "mod(20B20B", - "mod(30B30B", - "mod(00C00C", - "mod(10C00C", - "mod(20C00C", - "mod(30C00C", - "mod(10C10C", - "mod(20C20C", - "mod(30C30C", - "min(00B00B", - "min(10B00B", - "min(20B00B", - "min(30B00B", - "min(10B10B", - "min(20B20B", - "min(30B30B", - "min(00C00C", - "min(10C10C", - "min(20C20C", - "min(30C30C", - "min(10C00C", - "min(20C00C", - "min(30C00C", - "min(00D00D", - "min(10D10D", - "min(20D20D", - "min(30D30D", - "min(10D00D", - "min(20D00D", - "min(30D00D", - "min(00E00E", - "min(10E10E", - "min(20E20E", - "min(30E30E", - "min(10E00E", - "min(20E00E", - "min(30E00E", - "max(00B00B", - "max(10B00B", - "max(20B00B", - "max(30B00B", - "max(10B10B", - "max(20B20B", - "max(30B30B", - "max(00C00C", - "max(10C10C", - "max(20C20C", - "max(30C30C", - "max(10C00C", - "max(20C00C", - "max(30C00C", - "max(00D00D", - "max(10D10D", - "max(20D20D", - "max(30D30D", - "max(10D00D", - "max(20D00D", - "max(30D00D", - "max(00E00E", - "max(10E10E", - "max(20E20E", - "max(30E30E", - "max(10E00E", - "max(20E00E", - "max(30E00E", - "clamp(00B00B00B", - "clamp(10B00B00B", - "clamp(20B00B00B", - "clamp(30B00B00B", - "clamp(10B10B10B", - "clamp(20B20B20B", - "clamp(30B30B30B", - "clamp(00C00C00C", - "clamp(10C00C00C", - "clamp(20C00C00C", - "clamp(30C00C00C", - "clamp(10C10C10C", - "clamp(20C20C20C", - "clamp(30C30C30C", - "clamp(00D00D00D", - "clamp(10D00D00D", - "clamp(20D00D00D", - "clamp(30D00D00D", - "clamp(10D10D10D", - "clamp(20D20D20D", - "clamp(30D30D30D", - "clamp(00E00E00E", - "clamp(10E00E00E", - "clamp(20E00E00E", - "clamp(30E00E00E", - "clamp(10E10E10E", - "clamp(20E20E20E", - "clamp(30E30E30E", - "mix(00B00B00B", - "mix(10B10B00B", - "mix(20B20B00B", - "mix(30B30B00B", - "mix(10B10B10B", - "mix(20B20B20B", - "mix(30B30B30B", - "mix(00C00C00C", - "mix(10C10C00C", - "mix(20C20C00C", - "mix(30C30C00C", - "mix(10C10C10C", - "mix(20C20C20C", - "mix(30C30C30C", - "mix(00B00B00F", - "mix(10B10B10F", - "mix(20B20B20F", - "mix(30B30B30F", - "mix(00C00C00F", - "mix(10C10C10F", - "mix(20C20C20F", - "mix(30C30C30F", - "mix(00D00D00F", - "mix(10D10D10F", - "mix(20D20D20F", - "mix(30D30D30F", - "mix(00E00E00F", - "mix(10E10E10F", - "mix(20E20E20F", - "mix(30E30E30F", - "mix(00F00F00F", - "mix(10F10F10F", - "mix(20F20F20F", - "mix(30F30F30F", - "step(00B00B", - "step(10B10B", - "step(20B20B", - "step(30B30B", - "step(00B10B", - "step(00B20B", - "step(00B30B", - "step(00C00C", - "step(10C10C", - "step(20C20C", - "step(30C30C", - "step(00C10C", - "step(00C20C", - "step(00C30C", - "smoothstep(00C00C00C", - "smoothstep(10C10C10C", - "smoothstep(20C20C20C", - "smoothstep(30C30C30C", - "smoothstep(00C00C10C", - "smoothstep(00C00C20C", - "smoothstep(00C00C30C", - "smoothstep(00B00B00B", - "smoothstep(10B10B10B", - "smoothstep(20B20B20B", - "smoothstep(30B30B30B", - "smoothstep(00B00B10B", - "smoothstep(00B00B20B", - "smoothstep(00B00B30B", - "modf(00B00B", - "modf(10B10B", - "modf(20B20B", - "modf(30B30B", - "modf(00C00C", - "modf(10C10C", - "modf(20C20C", - "modf(30C30C", - "isnan(00B", - "isnan(10B", - "isnan(20B", - "isnan(30B", - "isnan(00C", - "isnan(10C", - "isnan(20C", - "isnan(30C", - "isinf(00B", - "isinf(10B", - "isinf(20B", - "isinf(30B", - "isinf(00C", - "isinf(10C", - "isinf(20C", - "isinf(30C", - "floatBitsToInt(00B", - "floatBitsToInt(10B", - "floatBitsToInt(20B", - "floatBitsToInt(30B", - "floatBitsToUint(00B", - "floatBitsToUint(10B", - "floatBitsToUint(20B", - "floatBitsToUint(30B", - "intBitsToFloat(00D", - "intBitsToFloat(10D", - "intBitsToFloat(20D", - "intBitsToFloat(30D", - "uintBitsToFloat(00E", - "uintBitsToFloat(10E", - "uintBitsToFloat(20E", - "uintBitsToFloat(30E", - "fma(00B00B00B", - "fma(10B10B10B", - "fma(20B20B20B", - "fma(30B30B30B", - "fma(00C00C00C", - "fma(10C10C10C", - "fma(20C20C20C", - "fma(30C30C30C", - "frexp(00B00D", - "frexp(10B10D", - "frexp(20B20D", - "frexp(30B30D", - "frexp(00C00D", - "frexp(10C10D", - "frexp(20C20D", - "frexp(30C30D", - "ldexp(00B00D", - "ldexp(10B10D", - "ldexp(20B20D", - "ldexp(30B30D", - "ldexp(00C00D", - "ldexp(10C10D", - "ldexp(20C20D", - "ldexp(30C30D", - "packSnorm2x16(10B", - "packHalf2x16(10B", - "unpackSnorm2x16(00E", - "unpackHalf2x16(00E", - "packUnorm2x16(10B", - "unpackUnorm2x16(00E", - "packUnorm4x8(30B", - "packSnorm4x8(30B", - "unpackUnorm4x8(00E", - "unpackSnorm4x8(00E", - "packDouble2x32(10E", - "unpackDouble2x32(00C", - "length(00B", - "length(10B", - "length(20B", - "length(30B", - "length(00C", - "length(10C", - "length(20C", - "length(30C", - "distance(00B00B", - "distance(10B10B", - "distance(20B20B", - "distance(30B30B", - "distance(00C00C", - "distance(10C10C", - "distance(20C20C", - "distance(30C30C", - "dot(00B00B", - "dot(10B10B", - "dot(20B20B", - "dot(30B30B", - "dot(00C00C", - "dot(10C10C", - "dot(20C20C", - "dot(30C30C", - "cross(20B20B", - "cross(20C20C", - "normalize(00B", - "normalize(10B", - "normalize(20B", - "normalize(30B", - "normalize(00C", - "normalize(10C", - "normalize(20C", - "normalize(30C", - "faceforward(00B00B00B", - "faceforward(10B10B10B", - "faceforward(20B20B20B", - "faceforward(30B30B30B", - "faceforward(00C00C00C", - "faceforward(10C10C10C", - "faceforward(20C20C20C", - "faceforward(30C30C30C", - "reflect(00B00B", - "reflect(10B10B", - "reflect(20B20B", - "reflect(30B30B", - "reflect(00C00C", - "reflect(10C10C", - "reflect(20C20C", - "reflect(30C30C", - "refract(00B00B00B", - "refract(10B10B00B", - "refract(20B20B00B", - "refract(30B30B00B", - "refract(00C00C00B", - "refract(10C10C00B", - "refract(20C20C00B", - "refract(30C30C00B", - "ftransform(", - "matrixCompMult(50B50B", - "matrixCompMult(A0BA0B", - "matrixCompMult(F0BF0B", - "matrixCompMult(90B90B", - "matrixCompMult(60B60B", - "matrixCompMult(D0BD0B", - "matrixCompMult(70B70B", - "matrixCompMult(E0BE0B", - "matrixCompMult(B0BB0B", - "outerProduct(10B10B", - "outerProduct(20B20B", - "outerProduct(30B30B", - "outerProduct(20B10B", - "outerProduct(10B20B", - "outerProduct(30B10B", - "outerProduct(10B30B", - "outerProduct(30B20B", - "outerProduct(20B30B", - "transpose(50B", - "transpose(A0B", - "transpose(F0B", - "transpose(60B", - "transpose(90B", - "transpose(70B", - "transpose(D0B", - "transpose(B0B", - "transpose(E0B", - "determinant(50B", - "determinant(A0B", - "determinant(F0B", - "inverse(50B", - "inverse(A0B", - "inverse(F0B", - "lessThan(10B10B", - "lessThan(20B20B", - "lessThan(30B30B", - "lessThan(10D10D", - "lessThan(20D20D", - "lessThan(30D30D", - "lessThan(10E10E", - "lessThan(20E20E", - "lessThan(30E30E", - "lessThanEqual(10B10B", - "lessThanEqual(20B20B", - "lessThanEqual(30B30B", - "lessThanEqual(10D10D", - "lessThanEqual(20D20D", - "lessThanEqual(30D30D", - "lessThanEqual(10E10E", - "lessThanEqual(20E20E", - "lessThanEqual(30E30E", - "greaterThan(10B10B", - "greaterThan(20B20B", - "greaterThan(30B30B", - "greaterThan(10D10D", - "greaterThan(20D20D", - "greaterThan(30D30D", - "greaterThan(10E10E", - "greaterThan(20E20E", - "greaterThan(30E30E", - "greaterThanEqual(10B10B", - "greaterThanEqual(20B20B", - "greaterThanEqual(30B30B", - "greaterThanEqual(10D10D", - "greaterThanEqual(20D20D", - "greaterThanEqual(30D30D", - "greaterThanEqual(10E10E", - "greaterThanEqual(20E20E", - "greaterThanEqual(30E30E", - "equal(10B10B", - "equal(20B20B", - "equal(30B30B", - "equal(10D10D", - "equal(20D20D", - "equal(30D30D", - "equal(10E10E", - "equal(20E20E", - "equal(30E30E", - "equal(10F10F", - "equal(20F20F", - "equal(30F30F", - "notEqual(10B10B", - "notEqual(20B20B", - "notEqual(30B30B", - "notEqual(10D10D", - "notEqual(20D20D", - "notEqual(30D30D", - "notEqual(10E10E", - "notEqual(20E20E", - "notEqual(30E30E", - "notEqual(10F10F", - "notEqual(20F20F", - "notEqual(30F30F", - "any(10F", - "any(20F", - "any(30F", - "all(10F", - "all(20F", - "all(30F", - "not(10F", - "not(20F", - "not(30F", - "bitfieldExtract(00D00D00D", - "bitfieldExtract(10D00D00D", - "bitfieldExtract(20D00D00D", - "bitfieldExtract(30D00D00D", - "bitfieldExtract(00E00D00D", - "bitfieldExtract(10E00D00D", - "bitfieldExtract(20E00D00D", - "bitfieldExtract(30E00D00D", - "bitfieldInsert(00D00D00D00D", - "bitfieldInsert(10D10D00D00D", - "bitfieldInsert(20D20D00D00D", - "bitfieldInsert(30D30D00D00D", - "bitfieldInsert(00E00E00D00D", - "bitfieldInsert(10E10E00D00D", - "bitfieldInsert(20E20E00D00D", - "bitfieldInsert(30E30E00D00D", - "bitfieldReverse(00D", - "bitfieldReverse(10D", - "bitfieldReverse(20D", - "bitfieldReverse(30D", - "bitfieldReverse(00E", - "bitfieldReverse(10E", - "bitfieldReverse(20E", - "bitfieldReverse(30E", - "bitCount(00D", - "bitCount(10D", - "bitCount(20D", - "bitCount(30D", - "bitCount(00E", - "bitCount(10E", - "bitCount(20E", - "bitCount(30E", - "findLSB(00D", - "findLSB(10D", - "findLSB(20D", - "findLSB(30D", - "findLSB(00E", - "findLSB(10E", - "findLSB(20E", - "findLSB(30E", - "findMSB(00D", - "findMSB(10D", - "findMSB(20D", - "findMSB(30D", - "findMSB(00E", - "findMSB(10E", - "findMSB(20E", - "findMSB(30E", - "uaddCarry(00E00E00E", - "uaddCarry(10E10E10E", - "uaddCarry(20E20E20E", - "uaddCarry(30E30E30E", - "usubBorrow(00E00E00E", - "usubBorrow(10E10E10E", - "usubBorrow(20E20E20E", - "usubBorrow(30E30E30E", - "umulExtended(00E00E00E00E", - "umulExtended(10E10E10E10E", - "umulExtended(20E20E20E20E", - "umulExtended(30E30E30E30E", - "imulExtended(00D00D00D00D", - "imulExtended(10D10D10D10D", - "imulExtended(20D20D20D20D", - "imulExtended(30D30D30D30D", - "texture2D(00I10B", - "texture2DProj(00I20B", - "texture2DProj(00I30B", - "textureCube(00K20B", - "texture1D(00g00B", - "texture1DProj(00g10B", - "texture1DProj(00g30B", - "texture3D(00J20B", - "texture3DProj(00J30B", - "shadow1D(00m20B", - "shadow1DProj(00m30B", - "shadow2D(00d20B", - "shadow2DProj(00d30B", - "texture2D(00M10B", - "texture2DProj(00M20B", - "texture2DProj(00M30B", - "texture2DRect(00O10B", - "texture2DRectProj(00O20B", - "texture2DRectProj(00O30B", - "texture(00O10B", - "textureProj(00O20B", - "textureProj(00O30B", - "texture2DGradEXT(00I10B10B10B", - "texture2DProjGradEXT(00I20B10B10B", - "texture2DProjGradEXT(00I30B10B10B", - "textureCubeGradEXT(00K20B20B20B", - "texture2D(00I10B00B", - "texture2DProj(00I20B00B", - "texture2DProj(00I30B00B", - "textureCube(00K20B00B", - "texture3D(00J20B00B", - "texture3DProj(00J30B00B", - "texture3DLod(00J20B00B", - "texture3DProjLod(00J30B00B", - "texture1D(00g00B00B", - "texture1DProj(00g10B00B", - "texture1DProj(00g30B00B", - "shadow1D(00m20B00B", - "shadow1DProj(00m30B00B", - "shadow2D(00d20B00B", - "shadow2DProj(00d30B00B", - "dFdx(00B", - "dFdx(10B", - "dFdx(20B", - "dFdx(30B", - "dFdy(00B", - "dFdy(10B", - "dFdy(20B", - "dFdy(30B", - "fwidth(00B", - "fwidth(10B", - "fwidth(20B", - "fwidth(30B", - "texture2DLodEXT(00I10B00B", - "texture2DProjLodEXT(00I20B00B", - "texture2DProjLodEXT(00I30B00B", - "textureCubeLodEXT(00K20B00B", - "shadow2DEXT(00d20B", - "shadow2DProjEXT(00d30B", - "texture2DLod(00I10B00B", - "texture2DProjLod(00I20B00B", - "texture2DProjLod(00I30B00B", - "textureCubeLod(00K20B00B", - "texture1DLod(00g00B00B", - "texture1DProjLod(00g10B00B", - "texture1DProjLod(00g30B00B", - "shadow1DLod(00m20B00B", - "shadow1DProjLod(00m30B00B", - "shadow2DLod(00d20B00B", - "shadow2DProjLod(00d30B00B", - "texture(00I10B", - "texture(00R10B", - "texture(00X10B", - "texture(00J20B", - "texture(00S20B", - "texture(00Y20B", - "texture(00K20B", - "texture(00T20B", - "texture(00Z20B", - "texture(00L20B", - "texture(00U20B", - "texture(00a20B", - "texture(00d20B", - "texture(00e30B", - "texture(00f30B", - "texture(00g00B", - "texture(00o00B", - "texture(00t00B", - "texture(00m20B", - "texture(00h20B", - "texture(00p20B", - "texture(00u20B", - "texture(00i20B", - "texture(00q10B", - "texture(00v10B", - "texture(00n20B", - "texture(00l30B00B", - "textureProj(00I20B", - "textureProj(00R20B", - "textureProj(00X20B", - "textureProj(00I30B", - "textureProj(00R30B", - "textureProj(00X30B", - "textureProj(00J30B", - "textureProj(00S30B", - "textureProj(00Y30B", - "textureProj(00d30B", - "textureProj(00g10B", - "textureProj(00o10B", - "textureProj(00t10B", - "textureProj(00g30B", - "textureProj(00o30B", - "textureProj(00t30B", - "textureProj(00m30B", - "textureProj(00q20B", - "textureProj(00v20B", - "textureProj(00q30B", - "textureProj(00v30B", - "textureProj(00n30B", - "textureLod(00I10B00B", - "textureLod(00R10B00B", - "textureLod(00X10B00B", - "textureLod(00J20B00B", - "textureLod(00S20B00B", - "textureLod(00Y20B00B", - "textureLod(00K20B00B", - "textureLod(00T20B00B", - "textureLod(00Z20B00B", - "textureLod(00L20B00B", - "textureLod(00U20B00B", - "textureLod(00a20B00B", - "textureLod(00d20B00B", - "textureLod(00g00B00B", - "textureLod(00o00B00B", - "textureLod(00t00B00B", - "textureLod(00m20B00B", - "textureLod(00h10B00B", - "textureLod(00p10B00B", - "textureLod(00u10B00B", - "textureLod(00i20B00B", - "textureLod(00k30B00B", - "textureLod(00s30B00B", - "textureLod(00x30B00B", - "textureSize(00I00D", - "textureSize(00R00D", - "textureSize(00X00D", - "textureSize(00J00D", - "textureSize(00S00D", - "textureSize(00Y00D", - "textureSize(00K00D", - "textureSize(00T00D", - "textureSize(00Z00D", - "textureSize(00L00D", - "textureSize(00U00D", - "textureSize(00a00D", - "textureSize(00d00D", - "textureSize(00e00D", - "textureSize(00f00D", - "textureSize(00g00D", - "textureSize(00o00D", - "textureSize(00t00D", - "textureSize(00m00D", - "textureSize(00k00D", - "textureSize(00s00D", - "textureSize(00x00D", - "textureSize(00l00D", - "textureSize(00O", - "textureSize(00q", - "textureSize(00v", - "textureSize(00n", - "textureSize(00h00D", - "textureSize(00p00D", - "textureSize(00u00D", - "textureSize(00i00D", - "textureSize(00j", - "textureSize(00r", - "textureSize(00w", - "textureProjLod(00I20B00B", - "textureProjLod(00R20B00B", - "textureProjLod(00X20B00B", - "textureProjLod(00I30B00B", - "textureProjLod(00R30B00B", - "textureProjLod(00X30B00B", - "textureProjLod(00J30B00B", - "textureProjLod(00S30B00B", - "textureProjLod(00Y30B00B", - "textureProjLod(00d30B00B", - "textureProjLod(00g10B00B", - "textureProjLod(00o10B00B", - "textureProjLod(00t10B00B", - "textureProjLod(00g30B00B", - "textureProjLod(00o30B00B", - "textureProjLod(00t30B00B", - "textureProjLod(00m30B00B", - "texelFetch(00I10D00D", - "texelFetch(00R10D00D", - "texelFetch(00X10D00D", - "texelFetch(00J20D00D", - "texelFetch(00S20D00D", - "texelFetch(00Y20D00D", - "texelFetch(00L20D00D", - "texelFetch(00U20D00D", - "texelFetch(00a20D00D", - "texelFetch(00g00D00D", - "texelFetch(00o00D00D", - "texelFetch(00t00D00D", - "texelFetch(00O10D", - "texelFetch(00q10D", - "texelFetch(00v10D", - "texelFetch(00h10D00D", - "texelFetch(00p10D00D", - "texelFetch(00u10D00D", - "texelFetch(00j00D", - "texelFetch(00r00D", - "texelFetch(00w00D", - "textureGrad(00I10B10B10B", - "textureGrad(00R10B10B10B", - "textureGrad(00X10B10B10B", - "textureGrad(00J20B20B20B", - "textureGrad(00S20B20B20B", - "textureGrad(00Y20B20B20B", - "textureGrad(00K20B20B20B", - "textureGrad(00T20B20B20B", - "textureGrad(00Z20B20B20B", - "textureGrad(00I00B00B00B", - "textureGrad(00R00B00B00B", - "textureGrad(00X00B00B00B", - "textureGrad(00O10B10B10B", - "textureGrad(00q10B10B10B", - "textureGrad(00v10B10B10B", - "textureGrad(00n20B10B10B", - "textureGrad(00d20B10B10B", - "textureGrad(00e30B20B20B", - "textureGrad(00L20B10B10B", - "textureGrad(00U20B10B10B", - "textureGrad(00a20B10B10B", - "textureGrad(00f30B10B10B", - "textureGrad(00m20B00B00B", - "textureGrad(00h10B00B00B", - "textureGrad(00p10B00B00B", - "textureGrad(00u10B00B00B", - "textureGrad(00i20B00B00B", - "textureGrad(00k30B20B20B", - "textureGrad(00s30B20B20B", - "textureGrad(00x30B20B20B", - "textureProjGrad(00I20B10B10B", - "textureProjGrad(00R20B10B10B", - "textureProjGrad(00X20B10B10B", - "textureProjGrad(00I30B10B10B", - "textureProjGrad(00R30B10B10B", - "textureProjGrad(00X30B10B10B", - "textureProjGrad(00J30B20B20B", - "textureProjGrad(00S30B20B20B", - "textureProjGrad(00Y30B20B20B", - "textureProjGrad(00d30B10B10B", - "textureProjGrad(00g10B00B00B", - "textureProjGrad(00o10B00B00B", - "textureProjGrad(00t10B00B00B", - "textureProjGrad(00g30B00B00B", - "textureProjGrad(00o30B00B00B", - "textureProjGrad(00t30B00B00B", - "textureProjGrad(00m30B00B00B", - "textureProjGrad(00O20B10B10B", - "textureProjGrad(00q20B10B10B", - "textureProjGrad(00v20B10B10B", - "textureProjGrad(00O30B10B10B", - "textureProjGrad(00q30B10B10B", - "textureProjGrad(00v30B10B10B", - "textureProjGrad(00n30B10B10B", - "textureQueryLevels(00g", - "textureQueryLevels(00o", - "textureQueryLevels(00t", - "textureQueryLevels(00I", - "textureQueryLevels(00R", - "textureQueryLevels(00X", - "textureQueryLevels(00J", - "textureQueryLevels(00S", - "textureQueryLevels(00Y", - "textureQueryLevels(00K", - "textureQueryLevels(00T", - "textureQueryLevels(00Z", - "textureQueryLevels(00h", - "textureQueryLevels(00p", - "textureQueryLevels(00u", - "textureQueryLevels(00L", - "textureQueryLevels(00U", - "textureQueryLevels(00a", - "textureQueryLevels(00k", - "textureQueryLevels(00s", - "textureQueryLevels(00x", - "textureQueryLevels(00m", - "textureQueryLevels(00d", - "textureQueryLevels(00e", - "textureQueryLevels(00i", - "textureQueryLevels(00f", - "textureQueryLevels(00l", - "textureSamples(00P", - "textureSamples(00V", - "textureSamples(00b", - "textureSamples(00Q", - "textureSamples(00W", - "textureSamples(00c", - "textureSize(00P", - "textureSize(00V", - "textureSize(00b", - "textureSize(00Q", - "textureSize(00W", - "textureSize(00c", - "texture(00k30B", - "texture(00s30B", - "texture(00x30B", - "texture(00k30B00B", - "texture(00s30B00B", - "texture(00x30B00B", - "textureGather(00k30B", - "textureGather(00s30B", - "textureGather(00x30B", - "textureGather(00k30B00D", - "textureGather(00s30B00D", - "textureGather(00x30B00D", - "textureGather(00l30B00B", - "texelFetch(00P10D00D", - "texelFetch(00V10D00D", - "texelFetch(00b10D00D", - "texelFetch(00Q20D00D", - "texelFetch(00W20D00D", - "texelFetch(00c20D00D", - "texture(00I10B00B", - "texture(00R10B00B", - "texture(00X10B00B", - "texture(00J20B00B", - "texture(00S20B00B", - "texture(00Y20B00B", - "texture(00K20B00B", - "texture(00T20B00B", - "texture(00Z20B00B", - "texture(00L20B00B", - "texture(00U20B00B", - "texture(00a20B00B", - "textureProj(00I20B00B", - "textureProj(00R20B00B", - "textureProj(00X20B00B", - "textureProj(00I30B00B", - "textureProj(00R30B00B", - "textureProj(00X30B00B", - "textureProj(00J30B00B", - "textureProj(00S30B00B", - "textureProj(00Y30B00B", - "texture(00d20B00B", - "texture(00e30B00B", - "textureProj(00d30B00B", - "texture(00g00B00B", - "texture(00o00B00B", - "texture(00t00B00B", - "texture(00m20B00B", - "texture(00h20B00B", - "texture(00p20B00B", - "texture(00u20B00B", - "texture(00i20B00B", - "texture(00f30B00B", - "textureProj(00g10B00B", - "textureProj(00o10B00B", - "textureProj(00t10B00B", - "textureProj(00g30B00B", - "textureProj(00o30B00B", - "textureProj(00t30B00B", - "textureProj(00m30B00B", - "texture(00M10B00B", - "textureProj(00M20B00B", - "textureProj(00M30B00B", - "texture(00N10B00B", - "textureProj(00N20B00B", - "textureProj(00N30B00B", - "textureQueryLod(00g00B", - "textureQueryLod(00o00B", - "textureQueryLod(00t00B", - "textureQueryLod(00I10B", - "textureQueryLod(00R10B", - "textureQueryLod(00X10B", - "textureQueryLod(00J20B", - "textureQueryLod(00S20B", - "textureQueryLod(00Y20B", - "textureQueryLod(00K20B", - "textureQueryLod(00T20B", - "textureQueryLod(00Z20B", - "textureQueryLod(00h00B", - "textureQueryLod(00p00B", - "textureQueryLod(00u00B", - "textureQueryLod(00L10B", - "textureQueryLod(00U10B", - "textureQueryLod(00a10B", - "textureQueryLod(00k20B", - "textureQueryLod(00s20B", - "textureQueryLod(00x20B", - "textureQueryLod(00m00B", - "textureQueryLod(00d10B", - "textureQueryLod(00e20B", - "textureQueryLod(00i00B", - "textureQueryLod(00f10B", - "textureQueryLod(00l20B", - "textureOffset(00I10B10D", - "textureOffset(00R10B10D", - "textureOffset(00X10B10D", - "textureOffset(00J20B20D", - "textureOffset(00S20B20D", - "textureOffset(00Y20B20D", - "textureOffset(00d20B10D", - "textureOffset(00L20B10D", - "textureOffset(00U20B10D", - "textureOffset(00a20B10D", - "textureOffset(00g00B00D", - "textureOffset(00o00B00D", - "textureOffset(00t00B00D", - "textureOffset(00O10B10D", - "textureOffset(00q10B10D", - "textureOffset(00v10B10D", - "textureOffset(00n20B10D", - "textureOffset(00m20B00D", - "textureOffset(00h10B00D", - "textureOffset(00p10B00D", - "textureOffset(00u10B00D", - "textureOffset(00i20B00D", - "textureOffset(00f30B10D", - "textureProjOffset(00I20B10D", - "textureProjOffset(00R20B10D", - "textureProjOffset(00X20B10D", - "textureProjOffset(00I30B10D", - "textureProjOffset(00R30B10D", - "textureProjOffset(00X30B10D", - "textureProjOffset(00J30B20D", - "textureProjOffset(00S30B20D", - "textureProjOffset(00Y30B20D", - "textureProjOffset(00d30B10D", - "textureProjOffset(00g10B00D", - "textureProjOffset(00o10B00D", - "textureProjOffset(00t10B00D", - "textureProjOffset(00g30B00D", - "textureProjOffset(00o30B00D", - "textureProjOffset(00t30B00D", - "textureProjOffset(00O20B10D", - "textureProjOffset(00q20B10D", - "textureProjOffset(00v20B10D", - "textureProjOffset(00O30B10D", - "textureProjOffset(00q30B10D", - "textureProjOffset(00v30B10D", - "textureProjOffset(00n30B10D", - "textureProjOffset(00m30B00D", - "textureLodOffset(00I10B00B10D", - "textureLodOffset(00R10B00B10D", - "textureLodOffset(00X10B00B10D", - "textureLodOffset(00J20B00B20D", - "textureLodOffset(00S20B00B20D", - "textureLodOffset(00Y20B00B20D", - "textureLodOffset(00d20B00B10D", - "textureLodOffset(00L20B00B10D", - "textureLodOffset(00U20B00B10D", - "textureLodOffset(00a20B00B10D", - "textureLodOffset(00g00B00B00D", - "textureLodOffset(00o00B00B00D", - "textureLodOffset(00t00B00B00D", - "textureLodOffset(00m20B00B00D", - "textureLodOffset(00h10B00B00D", - "textureLodOffset(00p10B00B00D", - "textureLodOffset(00u10B00B00D", - "textureLodOffset(00i20B00B00D", - "textureProjLodOffset(00I20B00B10D", - "textureProjLodOffset(00R20B00B10D", - "textureProjLodOffset(00X20B00B10D", - "textureProjLodOffset(00I30B00B10D", - "textureProjLodOffset(00R30B00B10D", - "textureProjLodOffset(00X30B00B10D", - "textureProjLodOffset(00J30B00B20D", - "textureProjLodOffset(00S30B00B20D", - "textureProjLodOffset(00Y30B00B20D", - "textureProjLodOffset(00d30B00B10D", - "textureProjLodOffset(00g10B00B00D", - "textureProjLodOffset(00o10B00B00D", - "textureProjLodOffset(00t10B00B00D", - "textureProjLodOffset(00g30B00B00D", - "textureProjLodOffset(00o30B00B00D", - "textureProjLodOffset(00t30B00B00D", - "textureProjLodOffset(00m30B00B00D", - "texelFetchOffset(00I10D00D10D", - "texelFetchOffset(00R10D00D10D", - "texelFetchOffset(00X10D00D10D", - "texelFetchOffset(00J20D00D20D", - "texelFetchOffset(00S20D00D20D", - "texelFetchOffset(00Y20D00D20D", - "texelFetchOffset(00L20D00D10D", - "texelFetchOffset(00U20D00D10D", - "texelFetchOffset(00a20D00D10D", - "texelFetchOffset(00g00D00D00D", - "texelFetchOffset(00o00D00D00D", - "texelFetchOffset(00t00D00D00D", - "texelFetchOffset(00O10D10D", - "texelFetchOffset(00q10D10D", - "texelFetchOffset(00v10D10D", - "texelFetchOffset(00h10D00D00D", - "texelFetchOffset(00p10D00D00D", - "texelFetchOffset(00u10D00D00D", - "textureGradOffset(00I10B10B10B10D", - "textureGradOffset(00R10B10B10B10D", - "textureGradOffset(00X10B10B10B10D", - "textureGradOffset(00J20B20B20B20D", - "textureGradOffset(00S20B20B20B20D", - "textureGradOffset(00Y20B20B20B20D", - "textureGradOffset(00d20B10B10B10D", - "textureGradOffset(00L20B10B10B10D", - "textureGradOffset(00U20B10B10B10D", - "textureGradOffset(00a20B10B10B10D", - "textureGradOffset(00f30B10B10B10D", - "textureGradOffset(00g00B00B00B00D", - "textureGradOffset(00o00B00B00B00D", - "textureGradOffset(00t00B00B00B00D", - "textureGradOffset(00O10B10B10B10D", - "textureGradOffset(00q10B10B10B10D", - "textureGradOffset(00v10B10B10B10D", - "textureGradOffset(00n20B10B10B10D", - "textureGradOffset(00m20B00B00B00D", - "textureGradOffset(00h10B00B00B00D", - "textureGradOffset(00p10B00B00B00D", - "textureGradOffset(00u10B00B00B00D", - "textureGradOffset(00i20B00B00B00D", - "textureProjGradOffset(00I20B10B10B10D", - "textureProjGradOffset(00R20B10B10B10D", - "textureProjGradOffset(00X20B10B10B10D", - "textureProjGradOffset(00I30B10B10B10D", - "textureProjGradOffset(00R30B10B10B10D", - "textureProjGradOffset(00X30B10B10B10D", - "textureProjGradOffset(00J30B20B20B20D", - "textureProjGradOffset(00S30B20B20B20D", - "textureProjGradOffset(00Y30B20B20B20D", - "textureProjGradOffset(00d30B10B10B10D", - "textureProjGradOffset(00g10B00B00B00D", - "textureProjGradOffset(00o10B00B00B00D", - "textureProjGradOffset(00t10B00B00B00D", - "textureProjGradOffset(00g30B00B00B00D", - "textureProjGradOffset(00o30B00B00B00D", - "textureProjGradOffset(00t30B00B00B00D", - "textureProjGradOffset(00O20B10B10B10D", - "textureProjGradOffset(00q20B10B10B10D", - "textureProjGradOffset(00v20B10B10B10D", - "textureProjGradOffset(00O30B10B10B10D", - "textureProjGradOffset(00q30B10B10B10D", - "textureProjGradOffset(00v30B10B10B10D", - "textureProjGradOffset(00n30B10B10B10D", - "textureProjGradOffset(00m30B00B00B00D", - "textureOffset(00I10B10D00B", - "textureOffset(00R10B10D00B", - "textureOffset(00X10B10D00B", - "textureOffset(00J20B20D00B", - "textureOffset(00S20B20D00B", - "textureOffset(00Y20B20D00B", - "textureOffset(00d20B10D00B", - "textureOffset(00L20B10D00B", - "textureOffset(00U20B10D00B", - "textureOffset(00a20B10D00B", - "textureOffset(00g00B00D00B", - "textureOffset(00o00B00D00B", - "textureOffset(00t00B00D00B", - "textureOffset(00m20B00D00B", - "textureOffset(00h10B00D00B", - "textureOffset(00p10B00D00B", - "textureOffset(00u10B00D00B", - "textureOffset(00i20B00D00B", - "textureProjOffset(00I20B10D00B", - "textureProjOffset(00R20B10D00B", - "textureProjOffset(00X20B10D00B", - "textureProjOffset(00I30B10D00B", - "textureProjOffset(00R30B10D00B", - "textureProjOffset(00X30B10D00B", - "textureProjOffset(00J30B20D00B", - "textureProjOffset(00S30B20D00B", - "textureProjOffset(00Y30B20D00B", - "textureProjOffset(00d30B10D00B", - "textureProjOffset(00g10B00D00B", - "textureProjOffset(00o10B00D00B", - "textureProjOffset(00t10B00D00B", - "textureProjOffset(00g30B00D00B", - "textureProjOffset(00o30B00D00B", - "textureProjOffset(00t30B00D00B", - "textureProjOffset(00m30B00D00B", - "texture(00M10B", - "textureProj(00M20B", - "textureProj(00M30B", - "textureSize(00M00D", - "texelFetch(00M10D00D", - "texture(00N10B", - "textureProj(00N20B", - "textureProj(00N30B", - "rgb_2_yuv(20B00H", - "yuv_2_rgb(20B00H", - "textureSize(00N00D", - "texelFetch(00N10D00D", - "textureGather(00I10B", - "textureGather(00R10B", - "textureGather(00X10B", - "textureGather(00I10B00D", - "textureGather(00R10B00D", - "textureGather(00X10B00D", - "textureGather(00L20B", - "textureGather(00U20B", - "textureGather(00a20B", - "textureGather(00L20B00D", - "textureGather(00U20B00D", - "textureGather(00a20B00D", - "textureGather(00K20B", - "textureGather(00T20B", - "textureGather(00Z20B", - "textureGather(00K20B00D", - "textureGather(00T20B00D", - "textureGather(00Z20B00D", - "textureGather(00O20B", - "textureGather(00q20B", - "textureGather(00v20B", - "textureGather(00O20B00D", - "textureGather(00q20B00D", - "textureGather(00v20B00D", - "textureGather(00d10B", - "textureGather(00d10B00B", - "textureGather(00f20B", - "textureGather(00f20B00B", - "textureGather(00e20B", - "textureGather(00e20B00B", - "textureGather(00n10B00B", - "textureGatherOffset(00I10B10D", - "textureGatherOffset(00R10B10D", - "textureGatherOffset(00X10B10D", - "textureGatherOffset(00L20B10D", - "textureGatherOffset(00U20B10D", - "textureGatherOffset(00a20B10D", - "textureGatherOffset(00d10B00B10D", - "textureGatherOffset(00f20B00B10D", - "textureGatherOffset(00O10B10D", - "textureGatherOffset(00q10B10D", - "textureGatherOffset(00v10B10D", - "textureGatherOffset(00n10B00B10D", - "textureGatherOffset(00I10B10D00D", - "textureGatherOffset(00R10B10D00D", - "textureGatherOffset(00X10B10D00D", - "textureGatherOffset(00L20B10D00D", - "textureGatherOffset(00U20B10D00D", - "textureGatherOffset(00a20B10D00D", - "textureGatherOffset(00O10B10D00D", - "textureGatherOffset(00q10B10D00D", - "textureGatherOffset(00v10B10D00D", - "textureGatherOffsets(00I10B10Dx4", - "textureGatherOffsets(00R10B10Dx4", - "textureGatherOffsets(00X10B10Dx4", - "textureGatherOffsets(00L20B10Dx4", - "textureGatherOffsets(00U20B10Dx4", - "textureGatherOffsets(00a20B10Dx4", - "textureGatherOffsets(00d10B00B10Dx4", - "textureGatherOffsets(00f20B00B10Dx4", - "textureGatherOffsets(00O10B10Dx4", - "textureGatherOffsets(00q10B10Dx4", - "textureGatherOffsets(00v10B10Dx4", - "textureGatherOffsets(00n10B00B10Dx4", - "textureGatherOffsets(00I10B10Dx400D", - "textureGatherOffsets(00R10B10Dx400D", - "textureGatherOffsets(00X10B10Dx400D", - "textureGatherOffsets(00L20B10Dx400D", - "textureGatherOffsets(00U20B10Dx400D", - "textureGatherOffsets(00a20B10Dx400D", - "textureGatherOffsets(00O10B10Dx400D", - "textureGatherOffsets(00q10B10Dx400D", - "textureGatherOffsets(00v10B10Dx400D", - "dFdxFine(00B", - "dFdxFine(10B", - "dFdxFine(20B", - "dFdxFine(30B", - "dFdyFine(00B", - "dFdyFine(10B", - "dFdyFine(20B", - "dFdyFine(30B", - "dFdxCoarse(00B", - "dFdxCoarse(10B", - "dFdxCoarse(20B", - "dFdxCoarse(30B", - "dFdyCoarse(00B", - "dFdyCoarse(10B", - "dFdyCoarse(20B", - "dFdyCoarse(30B", - "fwidthFine(00B", - "fwidthFine(10B", - "fwidthFine(20B", - "fwidthFine(30B", - "fwidthCoarse(00B", - "fwidthCoarse(10B", - "fwidthCoarse(20B", - "fwidthCoarse(30B", - "interpolateAtCentroid(00B", - "interpolateAtCentroid(10B", - "interpolateAtCentroid(20B", - "interpolateAtCentroid(30B", - "interpolateAtSample(00B00D", - "interpolateAtSample(10B00D", - "interpolateAtSample(20B00D", - "interpolateAtSample(30B00D", - "interpolateAtOffset(00B10B", - "interpolateAtOffset(10B10B", - "interpolateAtOffset(20B10B", - "interpolateAtOffset(30B10B", - "atomicCounter(00G", - "atomicCounterIncrement(00G", - "atomicCounterDecrement(00G", - "atomicCounterAdd(00G00E", - "atomicCounterSubtract(00G00E", - "atomicCounterMin(00G00E", - "atomicCounterMax(00G00E", - "atomicCounterAnd(00G00E", - "atomicCounterOr(00G00E", - "atomicCounterXor(00G00E", - "atomicCounterExchange(00G00E", - "atomicCounterCompSwap(00G00E00E", - "atomicAdd(00E00E", - "atomicAdd(00D00D", - "atomicMin(00E00E", - "atomicMin(00D00D", - "atomicMax(00E00E", - "atomicMax(00D00D", - "atomicAnd(00E00E", - "atomicAnd(00D00D", - "atomicOr(00E00E", - "atomicOr(00D00D", - "atomicXor(00E00E", - "atomicXor(00D00D", - "atomicExchange(00E00E", - "atomicExchange(00D00D", - "atomicCompSwap(00E00E00E", - "atomicCompSwap(00D00D00D", - "imageSize(00z", - "imageSize(01A", - "imageSize(01B", - "imageSize(01C", - "imageSize(01D", - "imageSize(01E", - "imageSize(01F", - "imageSize(01G", - "imageSize(01H", - "imageSize(01I", - "imageSize(01J", - "imageSize(01K", - "imageSize(01X", - "imageSize(01Y", - "imageSize(01Z", - "imageSize(01d", - "imageSize(01e", - "imageSize(01f", - "imageSize(01L", - "imageSize(01M", - "imageSize(01N", - "imageSize(01a", - "imageSize(01b", - "imageSize(01c", - "imageSize(01O", - "imageSize(01P", - "imageSize(01Q", - "imageSize(01R", - "imageSize(01S", - "imageSize(01T", - "imageSize(01U", - "imageSize(01V", - "imageSize(01W", - "imageSamples(01R", - "imageSamples(01S", - "imageSamples(01T", - "imageSamples(01U", - "imageSamples(01V", - "imageSamples(01W", - "imageStore(00z10D30B", - "imageStore(01A10D30D", - "imageStore(01B10D30E", - "imageStore(01C20D30B", - "imageStore(01D20D30D", - "imageStore(01E20D30E", - "imageStore(01F20D30B", - "imageStore(01G20D30D", - "imageStore(01H20D30E", - "imageStore(01I20D30B", - "imageStore(01J20D30D", - "imageStore(01K20D30E", - "imageStore(01X20D30B", - "imageStore(01Y20D30D", - "imageStore(01Z20D30E", - "imageStore(01d00D30B", - "imageStore(01e00D30D", - "imageStore(01f00D30E", - "imageStore(01L00D30B", - "imageStore(01M00D30D", - "imageStore(01N00D30E", - "imageStore(01O10D30B", - "imageStore(01P10D30D", - "imageStore(01Q10D30E", - "imageStore(01a10D30B", - "imageStore(01b10D30D", - "imageStore(01c10D30E", - "imageStore(01R10D00D30B", - "imageStore(01S10D00D30D", - "imageStore(01T10D00D30E", - "imageStore(01U20D00D30B", - "imageStore(01V20D00D30D", - "imageStore(01W20D00D30E", - "imageLoad(00z10D", - "imageLoad(01A10D", - "imageLoad(01B10D", - "imageLoad(01C20D", - "imageLoad(01D20D", - "imageLoad(01E20D", - "imageLoad(01F20D", - "imageLoad(01G20D", - "imageLoad(01H20D", - "imageLoad(01I20D", - "imageLoad(01J20D", - "imageLoad(01K20D", - "imageLoad(01X20D", - "imageLoad(01Y20D", - "imageLoad(01Z20D", - "imageLoad(01d00D", - "imageLoad(01e00D", - "imageLoad(01f00D", - "imageLoad(01L00D", - "imageLoad(01M00D", - "imageLoad(01N00D", - "imageLoad(01O10D", - "imageLoad(01P10D", - "imageLoad(01Q10D", - "imageLoad(01a10D", - "imageLoad(01b10D", - "imageLoad(01c10D", - "imageLoad(01R10D00D", - "imageLoad(01S10D00D", - "imageLoad(01T10D00D", - "imageLoad(01U20D00D", - "imageLoad(01V20D00D", - "imageLoad(01W20D00D", - "imageAtomicAdd(00z10D00E", - "imageAtomicAdd(01A10D00E", - "imageAtomicAdd(01B10D00E", - "imageAtomicAdd(01C20D00E", - "imageAtomicAdd(01D20D00E", - "imageAtomicAdd(01E20D00E", - "imageAtomicAdd(01I20D00E", - "imageAtomicAdd(01J20D00E", - "imageAtomicAdd(01K20D00E", - "imageAtomicAdd(01d00D00E", - "imageAtomicAdd(01e00D00E", - "imageAtomicAdd(01f00D00E", - "imageAtomicAdd(01F20D00E", - "imageAtomicAdd(01G20D00E", - "imageAtomicAdd(01H20D00E", - "imageAtomicAdd(01X20D00E", - "imageAtomicAdd(01Y20D00E", - "imageAtomicAdd(01Z20D00E", - "imageAtomicAdd(01L00D00E", - "imageAtomicAdd(01M00D00E", - "imageAtomicAdd(01N00D00E", - "imageAtomicAdd(01O10D00E", - "imageAtomicAdd(01P10D00E", - "imageAtomicAdd(01Q10D00E", - "imageAtomicAdd(01a10D00E", - "imageAtomicAdd(01b10D00E", - "imageAtomicAdd(01c10D00E", - "imageAtomicAdd(01R10D00D00E", - "imageAtomicAdd(01S10D00D00E", - "imageAtomicAdd(01T10D00D00E", - "imageAtomicAdd(01U20D00D00E", - "imageAtomicAdd(01V20D00D00E", - "imageAtomicAdd(01W20D00D00E", - "imageAtomicAdd(00z10D00D", - "imageAtomicAdd(01A10D00D", - "imageAtomicAdd(01B10D00D", - "imageAtomicAdd(01C20D00D", - "imageAtomicAdd(01D20D00D", - "imageAtomicAdd(01E20D00D", - "imageAtomicAdd(01I20D00D", - "imageAtomicAdd(01J20D00D", - "imageAtomicAdd(01K20D00D", - "imageAtomicAdd(01d00D00D", - "imageAtomicAdd(01e00D00D", - "imageAtomicAdd(01f00D00D", - "imageAtomicAdd(01F20D00D", - "imageAtomicAdd(01G20D00D", - "imageAtomicAdd(01H20D00D", - "imageAtomicAdd(01X20D00D", - "imageAtomicAdd(01Y20D00D", - "imageAtomicAdd(01Z20D00D", - "imageAtomicAdd(01L00D00D", - "imageAtomicAdd(01M00D00D", - "imageAtomicAdd(01N00D00D", - "imageAtomicAdd(01O10D00D", - "imageAtomicAdd(01P10D00D", - "imageAtomicAdd(01Q10D00D", - "imageAtomicAdd(01a10D00D", - "imageAtomicAdd(01b10D00D", - "imageAtomicAdd(01c10D00D", - "imageAtomicAdd(01R10D00D00D", - "imageAtomicAdd(01S10D00D00D", - "imageAtomicAdd(01T10D00D00D", - "imageAtomicAdd(01U20D00D00D", - "imageAtomicAdd(01V20D00D00D", - "imageAtomicAdd(01W20D00D00D", - "imageAtomicMin(00z10D00E", - "imageAtomicMin(01A10D00E", - "imageAtomicMin(01B10D00E", - "imageAtomicMin(01C20D00E", - "imageAtomicMin(01D20D00E", - "imageAtomicMin(01E20D00E", - "imageAtomicMin(01I20D00E", - "imageAtomicMin(01J20D00E", - "imageAtomicMin(01K20D00E", - "imageAtomicMin(01d00D00E", - "imageAtomicMin(01e00D00E", - "imageAtomicMin(01f00D00E", - "imageAtomicMin(01F20D00E", - "imageAtomicMin(01G20D00E", - "imageAtomicMin(01H20D00E", - "imageAtomicMin(01X20D00E", - "imageAtomicMin(01Y20D00E", - "imageAtomicMin(01Z20D00E", - "imageAtomicMin(01L00D00E", - "imageAtomicMin(01M00D00E", - "imageAtomicMin(01N00D00E", - "imageAtomicMin(01O10D00E", - "imageAtomicMin(01P10D00E", - "imageAtomicMin(01Q10D00E", - "imageAtomicMin(01a10D00E", - "imageAtomicMin(01b10D00E", - "imageAtomicMin(01c10D00E", - "imageAtomicMin(01R10D00D00E", - "imageAtomicMin(01S10D00D00E", - "imageAtomicMin(01T10D00D00E", - "imageAtomicMin(01U20D00D00E", - "imageAtomicMin(01V20D00D00E", - "imageAtomicMin(01W20D00D00E", - "imageAtomicMin(00z10D00D", - "imageAtomicMin(01A10D00D", - "imageAtomicMin(01B10D00D", - "imageAtomicMin(01C20D00D", - "imageAtomicMin(01D20D00D", - "imageAtomicMin(01E20D00D", - "imageAtomicMin(01I20D00D", - "imageAtomicMin(01J20D00D", - "imageAtomicMin(01K20D00D", - "imageAtomicMin(01d00D00D", - "imageAtomicMin(01e00D00D", - "imageAtomicMin(01f00D00D", - "imageAtomicMin(01F20D00D", - "imageAtomicMin(01G20D00D", - "imageAtomicMin(01H20D00D", - "imageAtomicMin(01X20D00D", - "imageAtomicMin(01Y20D00D", - "imageAtomicMin(01Z20D00D", - "imageAtomicMin(01L00D00D", - "imageAtomicMin(01M00D00D", - "imageAtomicMin(01N00D00D", - "imageAtomicMin(01O10D00D", - "imageAtomicMin(01P10D00D", - "imageAtomicMin(01Q10D00D", - "imageAtomicMin(01a10D00D", - "imageAtomicMin(01b10D00D", - "imageAtomicMin(01c10D00D", - "imageAtomicMin(01R10D00D00D", - "imageAtomicMin(01S10D00D00D", - "imageAtomicMin(01T10D00D00D", - "imageAtomicMin(01U20D00D00D", - "imageAtomicMin(01V20D00D00D", - "imageAtomicMin(01W20D00D00D", - "imageAtomicMax(00z10D00E", - "imageAtomicMax(01A10D00E", - "imageAtomicMax(01B10D00E", - "imageAtomicMax(01C20D00E", - "imageAtomicMax(01D20D00E", - "imageAtomicMax(01E20D00E", - "imageAtomicMax(01I20D00E", - "imageAtomicMax(01J20D00E", - "imageAtomicMax(01K20D00E", - "imageAtomicMax(01d00D00E", - "imageAtomicMax(01e00D00E", - "imageAtomicMax(01f00D00E", - "imageAtomicMax(01F20D00E", - "imageAtomicMax(01G20D00E", - "imageAtomicMax(01H20D00E", - "imageAtomicMax(01X20D00E", - "imageAtomicMax(01Y20D00E", - "imageAtomicMax(01Z20D00E", - "imageAtomicMax(01L00D00E", - "imageAtomicMax(01M00D00E", - "imageAtomicMax(01N00D00E", - "imageAtomicMax(01O10D00E", - "imageAtomicMax(01P10D00E", - "imageAtomicMax(01Q10D00E", - "imageAtomicMax(01a10D00E", - "imageAtomicMax(01b10D00E", - "imageAtomicMax(01c10D00E", - "imageAtomicMax(01R10D00D00E", - "imageAtomicMax(01S10D00D00E", - "imageAtomicMax(01T10D00D00E", - "imageAtomicMax(01U20D00D00E", - "imageAtomicMax(01V20D00D00E", - "imageAtomicMax(01W20D00D00E", - "imageAtomicMax(00z10D00D", - "imageAtomicMax(01A10D00D", - "imageAtomicMax(01B10D00D", - "imageAtomicMax(01C20D00D", - "imageAtomicMax(01D20D00D", - "imageAtomicMax(01E20D00D", - "imageAtomicMax(01I20D00D", - "imageAtomicMax(01J20D00D", - "imageAtomicMax(01K20D00D", - "imageAtomicMax(01d00D00D", - "imageAtomicMax(01e00D00D", - "imageAtomicMax(01f00D00D", - "imageAtomicMax(01F20D00D", - "imageAtomicMax(01G20D00D", - "imageAtomicMax(01H20D00D", - "imageAtomicMax(01X20D00D", - "imageAtomicMax(01Y20D00D", - "imageAtomicMax(01Z20D00D", - "imageAtomicMax(01L00D00D", - "imageAtomicMax(01M00D00D", - "imageAtomicMax(01N00D00D", - "imageAtomicMax(01O10D00D", - "imageAtomicMax(01P10D00D", - "imageAtomicMax(01Q10D00D", - "imageAtomicMax(01a10D00D", - "imageAtomicMax(01b10D00D", - "imageAtomicMax(01c10D00D", - "imageAtomicMax(01R10D00D00D", - "imageAtomicMax(01S10D00D00D", - "imageAtomicMax(01T10D00D00D", - "imageAtomicMax(01U20D00D00D", - "imageAtomicMax(01V20D00D00D", - "imageAtomicMax(01W20D00D00D", - "imageAtomicAnd(00z10D00E", - "imageAtomicAnd(01A10D00E", - "imageAtomicAnd(01B10D00E", - "imageAtomicAnd(01C20D00E", - "imageAtomicAnd(01D20D00E", - "imageAtomicAnd(01E20D00E", - "imageAtomicAnd(01I20D00E", - "imageAtomicAnd(01J20D00E", - "imageAtomicAnd(01K20D00E", - "imageAtomicAnd(01d00D00E", - "imageAtomicAnd(01e00D00E", - "imageAtomicAnd(01f00D00E", - "imageAtomicAnd(01F20D00E", - "imageAtomicAnd(01G20D00E", - "imageAtomicAnd(01H20D00E", - "imageAtomicAnd(01X20D00E", - "imageAtomicAnd(01Y20D00E", - "imageAtomicAnd(01Z20D00E", - "imageAtomicAnd(01L00D00E", - "imageAtomicAnd(01M00D00E", - "imageAtomicAnd(01N00D00E", - "imageAtomicAnd(01O10D00E", - "imageAtomicAnd(01P10D00E", - "imageAtomicAnd(01Q10D00E", - "imageAtomicAnd(01a10D00E", - "imageAtomicAnd(01b10D00E", - "imageAtomicAnd(01c10D00E", - "imageAtomicAnd(01R10D00D00E", - "imageAtomicAnd(01S10D00D00E", - "imageAtomicAnd(01T10D00D00E", - "imageAtomicAnd(01U20D00D00E", - "imageAtomicAnd(01V20D00D00E", - "imageAtomicAnd(01W20D00D00E", - "imageAtomicAnd(00z10D00D", - "imageAtomicAnd(01A10D00D", - "imageAtomicAnd(01B10D00D", - "imageAtomicAnd(01C20D00D", - "imageAtomicAnd(01D20D00D", - "imageAtomicAnd(01E20D00D", - "imageAtomicAnd(01I20D00D", - "imageAtomicAnd(01J20D00D", - "imageAtomicAnd(01K20D00D", - "imageAtomicAnd(01d00D00D", - "imageAtomicAnd(01e00D00D", - "imageAtomicAnd(01f00D00D", - "imageAtomicAnd(01F20D00D", - "imageAtomicAnd(01G20D00D", - "imageAtomicAnd(01H20D00D", - "imageAtomicAnd(01X20D00D", - "imageAtomicAnd(01Y20D00D", - "imageAtomicAnd(01Z20D00D", - "imageAtomicAnd(01L00D00D", - "imageAtomicAnd(01M00D00D", - "imageAtomicAnd(01N00D00D", - "imageAtomicAnd(01O10D00D", - "imageAtomicAnd(01P10D00D", - "imageAtomicAnd(01Q10D00D", - "imageAtomicAnd(01a10D00D", - "imageAtomicAnd(01b10D00D", - "imageAtomicAnd(01c10D00D", - "imageAtomicAnd(01R10D00D00D", - "imageAtomicAnd(01S10D00D00D", - "imageAtomicAnd(01T10D00D00D", - "imageAtomicAnd(01U20D00D00D", - "imageAtomicAnd(01V20D00D00D", - "imageAtomicAnd(01W20D00D00D", - "imageAtomicOr(00z10D00E", - "imageAtomicOr(01A10D00E", - "imageAtomicOr(01B10D00E", - "imageAtomicOr(01C20D00E", - "imageAtomicOr(01D20D00E", - "imageAtomicOr(01E20D00E", - "imageAtomicOr(01I20D00E", - "imageAtomicOr(01J20D00E", - "imageAtomicOr(01K20D00E", - "imageAtomicOr(01d00D00E", - "imageAtomicOr(01e00D00E", - "imageAtomicOr(01f00D00E", - "imageAtomicOr(01F20D00E", - "imageAtomicOr(01G20D00E", - "imageAtomicOr(01H20D00E", - "imageAtomicOr(01X20D00E", - "imageAtomicOr(01Y20D00E", - "imageAtomicOr(01Z20D00E", - "imageAtomicOr(01L00D00E", - "imageAtomicOr(01M00D00E", - "imageAtomicOr(01N00D00E", - "imageAtomicOr(01O10D00E", - "imageAtomicOr(01P10D00E", - "imageAtomicOr(01Q10D00E", - "imageAtomicOr(01a10D00E", - "imageAtomicOr(01b10D00E", - "imageAtomicOr(01c10D00E", - "imageAtomicOr(01R10D00D00E", - "imageAtomicOr(01S10D00D00E", - "imageAtomicOr(01T10D00D00E", - "imageAtomicOr(01U20D00D00E", - "imageAtomicOr(01V20D00D00E", - "imageAtomicOr(01W20D00D00E", - "imageAtomicOr(00z10D00D", - "imageAtomicOr(01A10D00D", - "imageAtomicOr(01B10D00D", - "imageAtomicOr(01C20D00D", - "imageAtomicOr(01D20D00D", - "imageAtomicOr(01E20D00D", - "imageAtomicOr(01I20D00D", - "imageAtomicOr(01J20D00D", - "imageAtomicOr(01K20D00D", - "imageAtomicOr(01d00D00D", - "imageAtomicOr(01e00D00D", - "imageAtomicOr(01f00D00D", - "imageAtomicOr(01F20D00D", - "imageAtomicOr(01G20D00D", - "imageAtomicOr(01H20D00D", - "imageAtomicOr(01X20D00D", - "imageAtomicOr(01Y20D00D", - "imageAtomicOr(01Z20D00D", - "imageAtomicOr(01L00D00D", - "imageAtomicOr(01M00D00D", - "imageAtomicOr(01N00D00D", - "imageAtomicOr(01O10D00D", - "imageAtomicOr(01P10D00D", - "imageAtomicOr(01Q10D00D", - "imageAtomicOr(01a10D00D", - "imageAtomicOr(01b10D00D", - "imageAtomicOr(01c10D00D", - "imageAtomicOr(01R10D00D00D", - "imageAtomicOr(01S10D00D00D", - "imageAtomicOr(01T10D00D00D", - "imageAtomicOr(01U20D00D00D", - "imageAtomicOr(01V20D00D00D", - "imageAtomicOr(01W20D00D00D", - "imageAtomicXor(00z10D00E", - "imageAtomicXor(01A10D00E", - "imageAtomicXor(01B10D00E", - "imageAtomicXor(01C20D00E", - "imageAtomicXor(01D20D00E", - "imageAtomicXor(01E20D00E", - "imageAtomicXor(01I20D00E", - "imageAtomicXor(01J20D00E", - "imageAtomicXor(01K20D00E", - "imageAtomicXor(01d00D00E", - "imageAtomicXor(01e00D00E", - "imageAtomicXor(01f00D00E", - "imageAtomicXor(01F20D00E", - "imageAtomicXor(01G20D00E", - "imageAtomicXor(01H20D00E", - "imageAtomicXor(01X20D00E", - "imageAtomicXor(01Y20D00E", - "imageAtomicXor(01Z20D00E", - "imageAtomicXor(01L00D00E", - "imageAtomicXor(01M00D00E", - "imageAtomicXor(01N00D00E", - "imageAtomicXor(01O10D00E", - "imageAtomicXor(01P10D00E", - "imageAtomicXor(01Q10D00E", - "imageAtomicXor(01a10D00E", - "imageAtomicXor(01b10D00E", - "imageAtomicXor(01c10D00E", - "imageAtomicXor(01R10D00D00E", - "imageAtomicXor(01S10D00D00E", - "imageAtomicXor(01T10D00D00E", - "imageAtomicXor(01U20D00D00E", - "imageAtomicXor(01V20D00D00E", - "imageAtomicXor(01W20D00D00E", - "imageAtomicXor(00z10D00D", - "imageAtomicXor(01A10D00D", - "imageAtomicXor(01B10D00D", - "imageAtomicXor(01C20D00D", - "imageAtomicXor(01D20D00D", - "imageAtomicXor(01E20D00D", - "imageAtomicXor(01I20D00D", - "imageAtomicXor(01J20D00D", - "imageAtomicXor(01K20D00D", - "imageAtomicXor(01d00D00D", - "imageAtomicXor(01e00D00D", - "imageAtomicXor(01f00D00D", - "imageAtomicXor(01F20D00D", - "imageAtomicXor(01G20D00D", - "imageAtomicXor(01H20D00D", - "imageAtomicXor(01X20D00D", - "imageAtomicXor(01Y20D00D", - "imageAtomicXor(01Z20D00D", - "imageAtomicXor(01L00D00D", - "imageAtomicXor(01M00D00D", - "imageAtomicXor(01N00D00D", - "imageAtomicXor(01O10D00D", - "imageAtomicXor(01P10D00D", - "imageAtomicXor(01Q10D00D", - "imageAtomicXor(01a10D00D", - "imageAtomicXor(01b10D00D", - "imageAtomicXor(01c10D00D", - "imageAtomicXor(01R10D00D00D", - "imageAtomicXor(01S10D00D00D", - "imageAtomicXor(01T10D00D00D", - "imageAtomicXor(01U20D00D00D", - "imageAtomicXor(01V20D00D00D", - "imageAtomicXor(01W20D00D00D", - "imageAtomicExchange(00z10D00E", - "imageAtomicExchange(01A10D00E", - "imageAtomicExchange(01B10D00E", - "imageAtomicExchange(01C20D00E", - "imageAtomicExchange(01D20D00E", - "imageAtomicExchange(01E20D00E", - "imageAtomicExchange(01I20D00E", - "imageAtomicExchange(01J20D00E", - "imageAtomicExchange(01K20D00E", - "imageAtomicExchange(01d00D00E", - "imageAtomicExchange(01e00D00E", - "imageAtomicExchange(01f00D00E", - "imageAtomicExchange(01F20D00E", - "imageAtomicExchange(01G20D00E", - "imageAtomicExchange(01H20D00E", - "imageAtomicExchange(01X20D00E", - "imageAtomicExchange(01Y20D00E", - "imageAtomicExchange(01Z20D00E", - "imageAtomicExchange(01L00D00E", - "imageAtomicExchange(01M00D00E", - "imageAtomicExchange(01N00D00E", - "imageAtomicExchange(01O10D00E", - "imageAtomicExchange(01P10D00E", - "imageAtomicExchange(01Q10D00E", - "imageAtomicExchange(01a10D00E", - "imageAtomicExchange(01b10D00E", - "imageAtomicExchange(01c10D00E", - "imageAtomicExchange(01R10D00D00E", - "imageAtomicExchange(01S10D00D00E", - "imageAtomicExchange(01T10D00D00E", - "imageAtomicExchange(01U20D00D00E", - "imageAtomicExchange(01V20D00D00E", - "imageAtomicExchange(01W20D00D00E", - "imageAtomicExchange(00z10D00D", - "imageAtomicExchange(01A10D00D", - "imageAtomicExchange(01B10D00D", - "imageAtomicExchange(01C20D00D", - "imageAtomicExchange(01D20D00D", - "imageAtomicExchange(01E20D00D", - "imageAtomicExchange(01I20D00D", - "imageAtomicExchange(01J20D00D", - "imageAtomicExchange(01K20D00D", - "imageAtomicExchange(01d00D00D", - "imageAtomicExchange(01e00D00D", - "imageAtomicExchange(01f00D00D", - "imageAtomicExchange(01F20D00D", - "imageAtomicExchange(01G20D00D", - "imageAtomicExchange(01H20D00D", - "imageAtomicExchange(01X20D00D", - "imageAtomicExchange(01Y20D00D", - "imageAtomicExchange(01Z20D00D", - "imageAtomicExchange(01L00D00D", - "imageAtomicExchange(01M00D00D", - "imageAtomicExchange(01N00D00D", - "imageAtomicExchange(01O10D00D", - "imageAtomicExchange(01P10D00D", - "imageAtomicExchange(01Q10D00D", - "imageAtomicExchange(01a10D00D", - "imageAtomicExchange(01b10D00D", - "imageAtomicExchange(01c10D00D", - "imageAtomicExchange(01R10D00D00D", - "imageAtomicExchange(01S10D00D00D", - "imageAtomicExchange(01T10D00D00D", - "imageAtomicExchange(01U20D00D00D", - "imageAtomicExchange(01V20D00D00D", - "imageAtomicExchange(01W20D00D00D", - "imageAtomicExchange(00z10D00B", - "imageAtomicExchange(01A10D00B", - "imageAtomicExchange(01B10D00B", - "imageAtomicExchange(01C20D00B", - "imageAtomicExchange(01D20D00B", - "imageAtomicExchange(01E20D00B", - "imageAtomicExchange(01I20D00B", - "imageAtomicExchange(01J20D00B", - "imageAtomicExchange(01K20D00B", - "imageAtomicExchange(01d00D00B", - "imageAtomicExchange(01e00D00B", - "imageAtomicExchange(01f00D00B", - "imageAtomicExchange(01F20D00B", - "imageAtomicExchange(01G20D00B", - "imageAtomicExchange(01H20D00B", - "imageAtomicExchange(01X20D00B", - "imageAtomicExchange(01Y20D00B", - "imageAtomicExchange(01Z20D00B", - "imageAtomicExchange(01L00D00B", - "imageAtomicExchange(01M00D00B", - "imageAtomicExchange(01N00D00B", - "imageAtomicExchange(01O10D00B", - "imageAtomicExchange(01P10D00B", - "imageAtomicExchange(01Q10D00B", - "imageAtomicExchange(01a10D00B", - "imageAtomicExchange(01b10D00B", - "imageAtomicExchange(01c10D00B", - "imageAtomicExchange(01R10D00D00B", - "imageAtomicExchange(01S10D00D00B", - "imageAtomicExchange(01T10D00D00B", - "imageAtomicExchange(01U20D00D00B", - "imageAtomicExchange(01V20D00D00B", - "imageAtomicExchange(01W20D00D00B", - "imageAtomicCompSwap(00z10D00E00E", - "imageAtomicCompSwap(01A10D00E00E", - "imageAtomicCompSwap(01B10D00E00E", - "imageAtomicCompSwap(01C20D00E00E", - "imageAtomicCompSwap(01D20D00E00E", - "imageAtomicCompSwap(01E20D00E00E", - "imageAtomicCompSwap(01I20D00E00E", - "imageAtomicCompSwap(01J20D00E00E", - "imageAtomicCompSwap(01K20D00E00E", - "imageAtomicCompSwap(01d00D00E00E", - "imageAtomicCompSwap(01e00D00E00E", - "imageAtomicCompSwap(01f00D00E00E", - "imageAtomicCompSwap(01F20D00E00E", - "imageAtomicCompSwap(01G20D00E00E", - "imageAtomicCompSwap(01H20D00E00E", - "imageAtomicCompSwap(01X20D00E00E", - "imageAtomicCompSwap(01Y20D00E00E", - "imageAtomicCompSwap(01Z20D00E00E", - "imageAtomicCompSwap(01L00D00E00E", - "imageAtomicCompSwap(01M00D00E00E", - "imageAtomicCompSwap(01N00D00E00E", - "imageAtomicCompSwap(01O10D00E00E", - "imageAtomicCompSwap(01P10D00E00E", - "imageAtomicCompSwap(01Q10D00E00E", - "imageAtomicCompSwap(01a10D00E00E", - "imageAtomicCompSwap(01b10D00E00E", - "imageAtomicCompSwap(01c10D00E00E", - "imageAtomicCompSwap(01R10D00D00E00E", - "imageAtomicCompSwap(01S10D00D00E00E", - "imageAtomicCompSwap(01T10D00D00E00E", - "imageAtomicCompSwap(01U20D00D00E00E", - "imageAtomicCompSwap(01V20D00D00E00E", - "imageAtomicCompSwap(01W20D00D00E00E", - "imageAtomicCompSwap(00z10D00D00D", - "imageAtomicCompSwap(01A10D00D00D", - "imageAtomicCompSwap(01B10D00D00D", - "imageAtomicCompSwap(01C20D00D00D", - "imageAtomicCompSwap(01D20D00D00D", - "imageAtomicCompSwap(01E20D00D00D", - "imageAtomicCompSwap(01I20D00D00D", - "imageAtomicCompSwap(01J20D00D00D", - "imageAtomicCompSwap(01K20D00D00D", - "imageAtomicCompSwap(01d00D00D00D", - "imageAtomicCompSwap(01e00D00D00D", - "imageAtomicCompSwap(01f00D00D00D", - "imageAtomicCompSwap(01F20D00D00D", - "imageAtomicCompSwap(01G20D00D00D", - "imageAtomicCompSwap(01H20D00D00D", - "imageAtomicCompSwap(01X20D00D00D", - "imageAtomicCompSwap(01Y20D00D00D", - "imageAtomicCompSwap(01Z20D00D00D", - "imageAtomicCompSwap(01L00D00D00D", - "imageAtomicCompSwap(01M00D00D00D", - "imageAtomicCompSwap(01N00D00D00D", - "imageAtomicCompSwap(01O10D00D00D", - "imageAtomicCompSwap(01P10D00D00D", - "imageAtomicCompSwap(01Q10D00D00D", - "imageAtomicCompSwap(01a10D00D00D", - "imageAtomicCompSwap(01b10D00D00D", - "imageAtomicCompSwap(01c10D00D00D", - "imageAtomicCompSwap(01R10D00D00D00D", - "imageAtomicCompSwap(01S10D00D00D00D", - "imageAtomicCompSwap(01T10D00D00D00D", - "imageAtomicCompSwap(01U20D00D00D00D", - "imageAtomicCompSwap(01V20D00D00D00D", - "imageAtomicCompSwap(01W20D00D00D00D", - "noise1(00B", - "noise1(10B", - "noise1(20B", - "noise1(30B", - "noise2(00B", - "noise2(10B", - "noise2(20B", - "noise2(30B", - "noise3(00B", - "noise3(10B", - "noise3(20B", - "noise3(30B", - "noise4(00B", - "noise4(10B", - "noise4(20B", - "noise4(30B", - "memoryBarrier(", - "memoryBarrierAtomicCounter(", - "memoryBarrierBuffer(", - "memoryBarrierImage(", - "barrier(", - "memoryBarrierShared(", - "groupMemoryBarrier(", - "EmitVertex(", - "EndPrimitive(", - "EmitStreamVertex(00D", - "EndStreamPrimitive(00D", - "subpassLoad(01g", - "subpassLoad(01h", - "subpassLoad(01i", - "subpassLoad(01j00D", - "subpassLoad(01k00D", - "subpassLoad(01l00D", - "anyInvocation(00F", - "allInvocations(00F", - "allInvocationsEqual(00F", - "textureVideoWEBGL(00y10B", - "texture(00y10B", - "gl_DepthRangeParameters", - "gl_DepthRange", - "gl_NumSamples", - "gl_MaxVertexAttribs", - "gl_MaxVertexUniformVectors", - "gl_MaxVertexTextureImageUnits", - "gl_MaxCombinedTextureImageUnits", - "gl_MaxTextureImageUnits", - "gl_MaxFragmentUniformVectors", - "gl_MaxVaryingVectors", - "gl_MaxDrawBuffers", - "gl_MaxDualSourceDrawBuffersEXT", - "gl_MaxVertexOutputVectors", - "gl_MaxFragmentInputVectors", - "gl_MinProgramTexelOffset", - "gl_MaxProgramTexelOffset", - "gl_MaxImageUnits", - "gl_MaxVertexImageUniforms", - "gl_MaxFragmentImageUniforms", - "gl_MaxComputeImageUniforms", - "gl_MaxCombinedImageUniforms", - "gl_MaxCombinedShaderOutputResources", - "gl_MaxComputeWorkGroupCount", - "gl_MaxComputeWorkGroupSize", - "gl_MaxComputeUniformComponents", - "gl_MaxComputeTextureImageUnits", - "gl_MaxComputeAtomicCounters", - "gl_MaxComputeAtomicCounterBuffers", - "gl_MaxVertexAtomicCounters", - "gl_MaxFragmentAtomicCounters", - "gl_MaxCombinedAtomicCounters", - "gl_MaxAtomicCounterBindings", - "gl_MaxVertexAtomicCounterBuffers", - "gl_MaxFragmentAtomicCounterBuffers", - "gl_MaxCombinedAtomicCounterBuffers", - "gl_MaxAtomicCounterBufferSize", - "gl_MaxGeometryInputComponents", - "gl_MaxGeometryOutputComponents", - "gl_MaxGeometryImageUniforms", - "gl_MaxGeometryTextureImageUnits", - "gl_MaxGeometryOutputVertices", - "gl_MaxGeometryTotalOutputComponents", - "gl_MaxGeometryUniformComponents", - "gl_MaxGeometryAtomicCounters", - "gl_MaxGeometryAtomicCounterBuffers", - "gl_MaxTessControlInputComponents", - "gl_MaxTessControlOutputComponents", - "gl_MaxTessControlTextureImageUnits", - "gl_MaxTessControlUniformComponents", - "gl_MaxTessControlTotalOutputComponents", - "gl_MaxTessControlImageUniforms", - "gl_MaxTessControlAtomicCounters", - "gl_MaxTessControlAtomicCounterBuffers", - "gl_MaxTessPatchComponents", - "gl_MaxPatchVertices", - "gl_MaxTessGenLevel", - "gl_MaxTessEvaluationInputComponents", - "gl_MaxTessEvaluationOutputComponents", - "gl_MaxTessEvaluationTextureImageUnits", - "gl_MaxTessEvaluationUniformComponents", - "gl_MaxTessEvaluationImageUniforms", - "gl_MaxTessEvaluationAtomicCounters", - "gl_MaxTessEvaluationAtomicCounterBuffers", - "gl_MaxSamples", - "gl_MaxClipDistances", - "gl_MaxCullDistances", - "gl_MaxCombinedClipAndCullDistances", - "gl_FragCoord", - "gl_FrontFacing", - "gl_PointCoord", - "gl_FragColor", - "gl_FragData", - "gl_FragDepth", - "gl_HelperInvocation", - "gl_SecondaryFragColorEXT", - "gl_SecondaryFragDataEXT", - "gl_FragDepthEXT", - "gl_LastFragData", - "gl_LastFragColor", - "gl_LastFragColorARM", - "gl_PrimitiveID", - "gl_Layer", - "gl_SampleID", - "gl_SamplePosition", - "gl_SampleMaskIn", - "gl_SampleMask", - "gl_CullDistance", - "gl_ClipDistance", - "gl_Position", - "gl_PointSize", - "gl_InstanceID", - "", - "gl_VertexID", - "", - "", - "gl_DrawID", - "gl_BaseVertex", - "gl_BaseInstance", - "angle_BaseVertex", - "angle_BaseInstance", - "gl_NumWorkGroups", - "gl_WorkGroupSize", - "gl_WorkGroupID", - "gl_LocalInvocationID", - "gl_GlobalInvocationID", - "gl_LocalInvocationIndex", - "gl_PrimitiveIDIn", - "gl_InvocationID", - "gl_PerVertex", - "gl_in", - "gl_PatchVerticesIn", - "gl_TessLevelOuter", - "gl_TessLevelInner", - "gl_out", - "gl_TessCoord", - "gl_ViewID_OVR"}; - -// Flat array of offsets from a symbol into the rules table. -constexpr uint16_t kMangledOffsets[] = { - 0, // radians_00B - 2, // radians_10B - 4, // radians_20B - 6, // radians_30B - 8, // degrees_00B - 10, // degrees_10B - 12, // degrees_20B - 14, // degrees_30B - 16, // sin_00B - 18, // sin_10B - 20, // sin_20B - 22, // sin_30B - 24, // cos_00B - 26, // cos_10B - 28, // cos_20B - 30, // cos_30B - 32, // tan_00B - 34, // tan_10B - 36, // tan_20B - 38, // tan_30B - 40, // asin_00B - 42, // asin_10B - 44, // asin_20B - 46, // asin_30B - 48, // acos_00B - 50, // acos_10B - 52, // acos_20B - 54, // acos_30B - 56, // atan_00B00B - 58, // atan_10B10B - 60, // atan_20B20B - 62, // atan_30B30B - 64, // atan_00B - 66, // atan_10B - 68, // atan_20B - 70, // atan_30B - 72, // sinh_00B - 74, // sinh_10B - 76, // sinh_20B - 78, // sinh_30B - 80, // cosh_00B - 82, // cosh_10B - 84, // cosh_20B - 86, // cosh_30B - 88, // tanh_00B - 90, // tanh_10B - 92, // tanh_20B - 94, // tanh_30B - 96, // asinh_00B - 98, // asinh_10B - 100, // asinh_20B - 102, // asinh_30B - 104, // acosh_00B - 106, // acosh_10B - 108, // acosh_20B - 110, // acosh_30B - 112, // atanh_00B - 114, // atanh_10B - 116, // atanh_20B - 118, // atanh_30B - 120, // pow_00B00B - 122, // pow_10B10B - 124, // pow_20B20B - 126, // pow_30B30B - 128, // exp_00B - 130, // exp_10B - 132, // exp_20B - 134, // exp_30B - 136, // log_00B - 138, // log_10B - 140, // log_20B - 142, // log_30B - 144, // exp2_00B - 146, // exp2_10B - 148, // exp2_20B - 150, // exp2_30B - 152, // log2_00B - 154, // log2_10B - 156, // log2_20B - 158, // log2_30B - 160, // sqrt_00B - 162, // sqrt_10B - 164, // sqrt_20B - 166, // sqrt_30B - 168, // sqrt_00C - 169, // sqrt_10C - 170, // sqrt_20C - 171, // sqrt_30C - 172, // inversesqrt_00B - 174, // inversesqrt_10B - 176, // inversesqrt_20B - 178, // inversesqrt_30B - 180, // inversesqrt_00C - 181, // inversesqrt_10C - 182, // inversesqrt_20C - 183, // inversesqrt_30C - 184, // abs_00B - 186, // abs_10B - 188, // abs_20B - 190, // abs_30B - 192, // abs_00D - 194, // abs_10D - 196, // abs_20D - 198, // abs_30D - 200, // abs_00C - 201, // abs_10C - 202, // abs_20C - 203, // abs_30C - 204, // sign_00B - 206, // sign_10B - 208, // sign_20B - 210, // sign_30B - 212, // sign_00D - 214, // sign_10D - 216, // sign_20D - 218, // sign_30D - 220, // sign_00C - 221, // sign_10C - 222, // sign_20C - 223, // sign_30C - 224, // floor_00B - 226, // floor_10B - 228, // floor_20B - 230, // floor_30B - 232, // floor_00C - 233, // floor_10C - 234, // floor_20C - 235, // floor_30C - 236, // trunc_00B - 238, // trunc_10B - 240, // trunc_20B - 242, // trunc_30B - 244, // trunc_00C - 245, // trunc_10C - 246, // trunc_20C - 247, // trunc_30C - 248, // round_00B - 250, // round_10B - 252, // round_20B - 254, // round_30B - 256, // round_00C - 257, // round_10C - 258, // round_20C - 259, // round_30C - 260, // roundEven_00B - 262, // roundEven_10B - 264, // roundEven_20B - 266, // roundEven_30B - 268, // roundEven_00C - 269, // roundEven_10C - 270, // roundEven_20C - 271, // roundEven_30C - 272, // ceil_00B - 274, // ceil_10B - 276, // ceil_20B - 278, // ceil_30B - 280, // ceil_00C - 281, // ceil_10C - 282, // ceil_20C - 283, // ceil_30C - 284, // fract_00B - 286, // fract_10B - 288, // fract_20B - 290, // fract_30B - 292, // fract_00C - 293, // fract_10C - 294, // fract_20C - 295, // fract_30C - 296, // mod_00B00B - 298, // mod_10B00B - 300, // mod_20B00B - 302, // mod_30B00B - 304, // mod_10B10B - 306, // mod_20B20B - 308, // mod_30B30B - 310, // mod_00C00C - 311, // mod_10C00C - 312, // mod_20C00C - 313, // mod_30C00C - 314, // mod_10C10C - 315, // mod_20C20C - 316, // mod_30C30C - 317, // min_00B00B - 319, // min_10B00B - 321, // min_20B00B - 323, // min_30B00B - 325, // min_10B10B - 327, // min_20B20B - 329, // min_30B30B - 331, // min_00C00C - 332, // min_10C10C - 333, // min_20C20C - 334, // min_30C30C - 335, // min_10C00C - 336, // min_20C00C - 337, // min_30C00C - 338, // min_00D00D - 340, // min_10D10D - 342, // min_20D20D - 344, // min_30D30D - 346, // min_10D00D - 348, // min_20D00D - 350, // min_30D00D - 352, // min_00E00E - 354, // min_10E10E - 356, // min_20E20E - 358, // min_30E30E - 360, // min_10E00E - 362, // min_20E00E - 364, // min_30E00E - 366, // max_00B00B - 368, // max_10B00B - 370, // max_20B00B - 372, // max_30B00B - 374, // max_10B10B - 376, // max_20B20B - 378, // max_30B30B - 380, // max_00C00C - 381, // max_10C10C - 382, // max_20C20C - 383, // max_30C30C - 384, // max_10C00C - 385, // max_20C00C - 386, // max_30C00C - 387, // max_00D00D - 389, // max_10D10D - 391, // max_20D20D - 393, // max_30D30D - 395, // max_10D00D - 397, // max_20D00D - 399, // max_30D00D - 401, // max_00E00E - 403, // max_10E10E - 405, // max_20E20E - 407, // max_30E30E - 409, // max_10E00E - 411, // max_20E00E - 413, // max_30E00E - 415, // clamp_00B00B00B - 417, // clamp_10B00B00B - 419, // clamp_20B00B00B - 421, // clamp_30B00B00B - 423, // clamp_10B10B10B - 425, // clamp_20B20B20B - 427, // clamp_30B30B30B - 429, // clamp_00C00C00C - 430, // clamp_10C00C00C - 431, // clamp_20C00C00C - 432, // clamp_30C00C00C - 433, // clamp_10C10C10C - 434, // clamp_20C20C20C - 435, // clamp_30C30C30C - 436, // clamp_00D00D00D - 438, // clamp_10D00D00D - 440, // clamp_20D00D00D - 442, // clamp_30D00D00D - 444, // clamp_10D10D10D - 446, // clamp_20D20D20D - 448, // clamp_30D30D30D - 450, // clamp_00E00E00E - 452, // clamp_10E00E00E - 454, // clamp_20E00E00E - 456, // clamp_30E00E00E - 458, // clamp_10E10E10E - 460, // clamp_20E20E20E - 462, // clamp_30E30E30E - 464, // mix_00B00B00B - 466, // mix_10B10B00B - 468, // mix_20B20B00B - 470, // mix_30B30B00B - 472, // mix_10B10B10B - 474, // mix_20B20B20B - 476, // mix_30B30B30B - 478, // mix_00C00C00C - 479, // mix_10C10C00C - 480, // mix_20C20C00C - 481, // mix_30C30C00C - 482, // mix_10C10C10C - 483, // mix_20C20C20C - 484, // mix_30C30C30C - 485, // mix_00B00B00F - 487, // mix_10B10B10F - 489, // mix_20B20B20F - 491, // mix_30B30B30F - 493, // mix_00C00C00F - 494, // mix_10C10C10F - 495, // mix_20C20C20F - 496, // mix_30C30C30F - 497, // mix_00D00D00F - 499, // mix_10D10D10F - 501, // mix_20D20D20F - 503, // mix_30D30D30F - 505, // mix_00E00E00F - 507, // mix_10E10E10F - 509, // mix_20E20E20F - 511, // mix_30E30E30F - 513, // mix_00F00F00F - 515, // mix_10F10F10F - 517, // mix_20F20F20F - 519, // mix_30F30F30F - 521, // step_00B00B - 523, // step_10B10B - 525, // step_20B20B - 527, // step_30B30B - 529, // step_00B10B - 531, // step_00B20B - 533, // step_00B30B - 535, // step_00C00C - 536, // step_10C10C - 537, // step_20C20C - 538, // step_30C30C - 539, // step_00C10C - 540, // step_00C20C - 541, // step_00C30C - 542, // smoothstep_00C00C00C - 543, // smoothstep_10C10C10C - 544, // smoothstep_20C20C20C - 545, // smoothstep_30C30C30C - 546, // smoothstep_00C00C10C - 547, // smoothstep_00C00C20C - 548, // smoothstep_00C00C30C - 549, // smoothstep_00B00B00B - 551, // smoothstep_10B10B10B - 553, // smoothstep_20B20B20B - 555, // smoothstep_30B30B30B - 557, // smoothstep_00B00B10B - 559, // smoothstep_00B00B20B - 561, // smoothstep_00B00B30B - 563, // modf_00B00B - 565, // modf_10B10B - 567, // modf_20B20B - 569, // modf_30B30B - 571, // modf_00C00C - 572, // modf_10C10C - 573, // modf_20C20C - 574, // modf_30C30C - 575, // isnan_00B - 577, // isnan_10B - 579, // isnan_20B - 581, // isnan_30B - 583, // isnan_00C - 584, // isnan_10C - 585, // isnan_20C - 586, // isnan_30C - 587, // isinf_00B - 589, // isinf_10B - 591, // isinf_20B - 593, // isinf_30B - 595, // isinf_00C - 596, // isinf_10C - 597, // isinf_20C - 598, // isinf_30C - 599, // floatBitsToInt_00B - 601, // floatBitsToInt_10B - 603, // floatBitsToInt_20B - 605, // floatBitsToInt_30B - 607, // floatBitsToUint_00B - 609, // floatBitsToUint_10B - 611, // floatBitsToUint_20B - 613, // floatBitsToUint_30B - 615, // intBitsToFloat_00D - 617, // intBitsToFloat_10D - 619, // intBitsToFloat_20D - 621, // intBitsToFloat_30D - 623, // uintBitsToFloat_00E - 625, // uintBitsToFloat_10E - 627, // uintBitsToFloat_20E - 629, // uintBitsToFloat_30E - 631, // fma_00B00B00B - 634, // fma_10B10B10B - 637, // fma_20B20B20B - 640, // fma_30B30B30B - 643, // fma_00C00C00C - 644, // fma_10C10C10C - 645, // fma_20C20C20C - 646, // fma_30C30C30C - 647, // frexp_00B00D - 649, // frexp_10B10D - 651, // frexp_20B20D - 653, // frexp_30B30D - 655, // frexp_00C00D - 656, // frexp_10C10D - 657, // frexp_20C20D - 658, // frexp_30C30D - 659, // ldexp_00B00D - 661, // ldexp_10B10D - 663, // ldexp_20B20D - 665, // ldexp_30B30D - 667, // ldexp_00C00D - 668, // ldexp_10C10D - 669, // ldexp_20C20D - 670, // ldexp_30C30D - 671, // packSnorm2x16_10B - 673, // packHalf2x16_10B - 675, // unpackSnorm2x16_00E - 677, // unpackHalf2x16_00E - 679, // packUnorm2x16_10B - 681, // unpackUnorm2x16_00E - 683, // packUnorm4x8_30B - 685, // packSnorm4x8_30B - 687, // unpackUnorm4x8_00E - 689, // unpackSnorm4x8_00E - 691, // packDouble2x32_10E - 692, // unpackDouble2x32_00C - 693, // length_00B - 695, // length_10B - 697, // length_20B - 699, // length_30B - 701, // length_00C - 702, // length_10C - 703, // length_20C - 704, // length_30C - 705, // distance_00B00B - 707, // distance_10B10B - 709, // distance_20B20B - 711, // distance_30B30B - 713, // distance_00C00C - 714, // distance_10C10C - 715, // distance_20C20C - 716, // distance_30C30C - 717, // dot_00B00B - 719, // dot_10B10B - 721, // dot_20B20B - 723, // dot_30B30B - 725, // dot_00C00C - 726, // dot_10C10C - 727, // dot_20C20C - 728, // dot_30C30C - 729, // cross_20B20B - 731, // cross_20C20C - 732, // normalize_00B - 734, // normalize_10B - 736, // normalize_20B - 738, // normalize_30B - 740, // normalize_00C - 741, // normalize_10C - 742, // normalize_20C - 743, // normalize_30C - 744, // faceforward_00B00B00B - 746, // faceforward_10B10B10B - 748, // faceforward_20B20B20B - 750, // faceforward_30B30B30B - 752, // faceforward_00C00C00C - 753, // faceforward_10C10C10C - 754, // faceforward_20C20C20C - 755, // faceforward_30C30C30C - 756, // reflect_00B00B - 758, // reflect_10B10B - 760, // reflect_20B20B - 762, // reflect_30B30B - 764, // reflect_00C00C - 765, // reflect_10C10C - 766, // reflect_20C20C - 767, // reflect_30C30C - 768, // refract_00B00B00B - 770, // refract_10B10B00B - 772, // refract_20B20B00B - 774, // refract_30B30B00B - 776, // refract_00C00C00B - 777, // refract_10C10C00B - 778, // refract_20C20C00B - 779, // refract_30C30C00B - 780, // ftransform_ - 781, // matrixCompMult_50B50B - 783, // matrixCompMult_A0BA0B - 785, // matrixCompMult_F0BF0B - 787, // matrixCompMult_90B90B - 788, // matrixCompMult_60B60B - 789, // matrixCompMult_D0BD0B - 790, // matrixCompMult_70B70B - 791, // matrixCompMult_E0BE0B - 792, // matrixCompMult_B0BB0B - 793, // outerProduct_10B10B - 795, // outerProduct_20B20B - 797, // outerProduct_30B30B - 799, // outerProduct_20B10B - 801, // outerProduct_10B20B - 803, // outerProduct_30B10B - 805, // outerProduct_10B30B - 807, // outerProduct_30B20B - 809, // outerProduct_20B30B - 811, // transpose_50B - 813, // transpose_A0B - 815, // transpose_F0B - 817, // transpose_60B - 819, // transpose_90B - 821, // transpose_70B - 823, // transpose_D0B - 825, // transpose_B0B - 827, // transpose_E0B - 829, // determinant_50B - 830, // determinant_A0B - 831, // determinant_F0B - 832, // inverse_50B - 834, // inverse_A0B - 836, // inverse_F0B - 838, // lessThan_10B10B - 840, // lessThan_20B20B - 842, // lessThan_30B30B - 844, // lessThan_10D10D - 846, // lessThan_20D20D - 848, // lessThan_30D30D - 850, // lessThan_10E10E - 852, // lessThan_20E20E - 854, // lessThan_30E30E - 856, // lessThanEqual_10B10B - 858, // lessThanEqual_20B20B - 860, // lessThanEqual_30B30B - 862, // lessThanEqual_10D10D - 864, // lessThanEqual_20D20D - 866, // lessThanEqual_30D30D - 868, // lessThanEqual_10E10E - 870, // lessThanEqual_20E20E - 872, // lessThanEqual_30E30E - 874, // greaterThan_10B10B - 876, // greaterThan_20B20B - 878, // greaterThan_30B30B - 880, // greaterThan_10D10D - 882, // greaterThan_20D20D - 884, // greaterThan_30D30D - 886, // greaterThan_10E10E - 888, // greaterThan_20E20E - 890, // greaterThan_30E30E - 892, // greaterThanEqual_10B10B - 894, // greaterThanEqual_20B20B - 896, // greaterThanEqual_30B30B - 898, // greaterThanEqual_10D10D - 900, // greaterThanEqual_20D20D - 902, // greaterThanEqual_30D30D - 904, // greaterThanEqual_10E10E - 906, // greaterThanEqual_20E20E - 908, // greaterThanEqual_30E30E - 910, // equal_10B10B - 912, // equal_20B20B - 914, // equal_30B30B - 916, // equal_10D10D - 918, // equal_20D20D - 920, // equal_30D30D - 922, // equal_10E10E - 924, // equal_20E20E - 926, // equal_30E30E - 928, // equal_10F10F - 930, // equal_20F20F - 932, // equal_30F30F - 934, // notEqual_10B10B - 936, // notEqual_20B20B - 938, // notEqual_30B30B - 940, // notEqual_10D10D - 942, // notEqual_20D20D - 944, // notEqual_30D30D - 946, // notEqual_10E10E - 948, // notEqual_20E20E - 950, // notEqual_30E30E - 952, // notEqual_10F10F - 954, // notEqual_20F20F - 956, // notEqual_30F30F - 958, // any_10F - 960, // any_20F - 962, // any_30F - 964, // all_10F - 966, // all_20F - 968, // all_30F - 970, // not_10F - 972, // not_20F - 974, // not_30F - 976, // bitfieldExtract_00D00D00D - 978, // bitfieldExtract_10D00D00D - 980, // bitfieldExtract_20D00D00D - 982, // bitfieldExtract_30D00D00D - 984, // bitfieldExtract_00E00D00D - 986, // bitfieldExtract_10E00D00D - 988, // bitfieldExtract_20E00D00D - 990, // bitfieldExtract_30E00D00D - 992, // bitfieldInsert_00D00D00D00D - 994, // bitfieldInsert_10D10D00D00D - 996, // bitfieldInsert_20D20D00D00D - 998, // bitfieldInsert_30D30D00D00D - 1000, // bitfieldInsert_00E00E00D00D - 1002, // bitfieldInsert_10E10E00D00D - 1004, // bitfieldInsert_20E20E00D00D - 1006, // bitfieldInsert_30E30E00D00D - 1008, // bitfieldReverse_00D - 1010, // bitfieldReverse_10D - 1012, // bitfieldReverse_20D - 1014, // bitfieldReverse_30D - 1016, // bitfieldReverse_00E - 1018, // bitfieldReverse_10E - 1020, // bitfieldReverse_20E - 1022, // bitfieldReverse_30E - 1024, // bitCount_00D - 1026, // bitCount_10D - 1028, // bitCount_20D - 1030, // bitCount_30D - 1032, // bitCount_00E - 1034, // bitCount_10E - 1036, // bitCount_20E - 1038, // bitCount_30E - 1040, // findLSB_00D - 1042, // findLSB_10D - 1044, // findLSB_20D - 1046, // findLSB_30D - 1048, // findLSB_00E - 1050, // findLSB_10E - 1052, // findLSB_20E - 1054, // findLSB_30E - 1056, // findMSB_00D - 1058, // findMSB_10D - 1060, // findMSB_20D - 1062, // findMSB_30D - 1064, // findMSB_00E - 1066, // findMSB_10E - 1068, // findMSB_20E - 1070, // findMSB_30E - 1072, // uaddCarry_00E00E00E - 1074, // uaddCarry_10E10E10E - 1076, // uaddCarry_20E20E20E - 1078, // uaddCarry_30E30E30E - 1080, // usubBorrow_00E00E00E - 1082, // usubBorrow_10E10E10E - 1084, // usubBorrow_20E20E20E - 1086, // usubBorrow_30E30E30E - 1088, // umulExtended_00E00E00E00E - 1090, // umulExtended_10E10E10E10E - 1092, // umulExtended_20E20E20E20E - 1094, // umulExtended_30E30E30E30E - 1096, // imulExtended_00D00D00D00D - 1098, // imulExtended_10D10D10D10D - 1100, // imulExtended_20D20D20D20D - 1102, // imulExtended_30D30D30D30D - 1104, // texture2D_00I10B - 1106, // texture2DProj_00I20B - 1108, // texture2DProj_00I30B - 1110, // textureCube_00K20B - 1112, // texture1D_00g00B - 1113, // texture1DProj_00g10B - 1114, // texture1DProj_00g30B - 1115, // texture3D_00J20B - 1117, // texture3DProj_00J30B - 1119, // shadow1D_00m20B - 1120, // shadow1DProj_00m30B - 1121, // shadow2D_00d20B - 1122, // shadow2DProj_00d30B - 1123, // texture2D_00M10B - 1124, // texture2DProj_00M20B - 1125, // texture2DProj_00M30B - 1126, // texture2DRect_00O10B - 1127, // texture2DRectProj_00O20B - 1128, // texture2DRectProj_00O30B - 1129, // texture_00O10B - 1131, // textureProj_00O20B - 1133, // textureProj_00O30B - 1135, // texture2DGradEXT_00I10B10B10B - 1136, // texture2DProjGradEXT_00I20B10B10B - 1137, // texture2DProjGradEXT_00I30B10B10B - 1138, // textureCubeGradEXT_00K20B20B20B - 1139, // texture2D_00I10B00B - 1141, // texture2DProj_00I20B00B - 1143, // texture2DProj_00I30B00B - 1145, // textureCube_00K20B00B - 1147, // texture3D_00J20B00B - 1149, // texture3DProj_00J30B00B - 1151, // texture3DLod_00J20B00B - 1153, // texture3DProjLod_00J30B00B - 1155, // texture1D_00g00B00B - 1156, // texture1DProj_00g10B00B - 1157, // texture1DProj_00g30B00B - 1158, // shadow1D_00m20B00B - 1159, // shadow1DProj_00m30B00B - 1160, // shadow2D_00d20B00B - 1161, // shadow2DProj_00d30B00B - 1162, // dFdx_00B - 1165, // dFdx_10B - 1168, // dFdx_20B - 1171, // dFdx_30B - 1174, // dFdy_00B - 1177, // dFdy_10B - 1180, // dFdy_20B - 1183, // dFdy_30B - 1186, // fwidth_00B - 1189, // fwidth_10B - 1192, // fwidth_20B - 1195, // fwidth_30B - 1198, // texture2DLodEXT_00I10B00B - 1199, // texture2DProjLodEXT_00I20B00B - 1200, // texture2DProjLodEXT_00I30B00B - 1201, // textureCubeLodEXT_00K20B00B - 1202, // shadow2DEXT_00d20B - 1203, // shadow2DProjEXT_00d30B - 1204, // texture2DLod_00I10B00B - 1206, // texture2DProjLod_00I20B00B - 1208, // texture2DProjLod_00I30B00B - 1210, // textureCubeLod_00K20B00B - 1212, // texture1DLod_00g00B00B - 1213, // texture1DProjLod_00g10B00B - 1214, // texture1DProjLod_00g30B00B - 1215, // shadow1DLod_00m20B00B - 1216, // shadow1DProjLod_00m30B00B - 1217, // shadow2DLod_00d20B00B - 1218, // shadow2DProjLod_00d30B00B - 1219, // texture_00I10B - 1221, // texture_00R10B - 1223, // texture_00X10B - 1225, // texture_00J20B - 1227, // texture_00S20B - 1229, // texture_00Y20B - 1231, // texture_00K20B - 1233, // texture_00T20B - 1235, // texture_00Z20B - 1237, // texture_00L20B - 1239, // texture_00U20B - 1241, // texture_00a20B - 1243, // texture_00d20B - 1245, // texture_00e30B - 1247, // texture_00f30B - 1249, // texture_00g00B - 1250, // texture_00o00B - 1251, // texture_00t00B - 1252, // texture_00m20B - 1253, // texture_00h20B - 1254, // texture_00p20B - 1255, // texture_00u20B - 1256, // texture_00i20B - 1257, // texture_00q10B - 1258, // texture_00v10B - 1259, // texture_00n20B - 1260, // texture_00l30B00B - 1262, // textureProj_00I20B - 1264, // textureProj_00R20B - 1266, // textureProj_00X20B - 1268, // textureProj_00I30B - 1270, // textureProj_00R30B - 1272, // textureProj_00X30B - 1274, // textureProj_00J30B - 1276, // textureProj_00S30B - 1278, // textureProj_00Y30B - 1280, // textureProj_00d30B - 1282, // textureProj_00g10B - 1283, // textureProj_00o10B - 1284, // textureProj_00t10B - 1285, // textureProj_00g30B - 1286, // textureProj_00o30B - 1287, // textureProj_00t30B - 1288, // textureProj_00m30B - 1289, // textureProj_00q20B - 1290, // textureProj_00v20B - 1291, // textureProj_00q30B - 1292, // textureProj_00v30B - 1293, // textureProj_00n30B - 1294, // textureLod_00I10B00B - 1296, // textureLod_00R10B00B - 1298, // textureLod_00X10B00B - 1300, // textureLod_00J20B00B - 1302, // textureLod_00S20B00B - 1304, // textureLod_00Y20B00B - 1306, // textureLod_00K20B00B - 1308, // textureLod_00T20B00B - 1310, // textureLod_00Z20B00B - 1312, // textureLod_00L20B00B - 1314, // textureLod_00U20B00B - 1316, // textureLod_00a20B00B - 1318, // textureLod_00d20B00B - 1320, // textureLod_00g00B00B - 1321, // textureLod_00o00B00B - 1322, // textureLod_00t00B00B - 1323, // textureLod_00m20B00B - 1324, // textureLod_00h10B00B - 1325, // textureLod_00p10B00B - 1326, // textureLod_00u10B00B - 1327, // textureLod_00i20B00B - 1328, // textureLod_00k30B00B - 1330, // textureLod_00s30B00B - 1332, // textureLod_00x30B00B - 1334, // textureSize_00I00D - 1336, // textureSize_00R00D - 1338, // textureSize_00X00D - 1340, // textureSize_00J00D - 1342, // textureSize_00S00D - 1344, // textureSize_00Y00D - 1346, // textureSize_00K00D - 1348, // textureSize_00T00D - 1350, // textureSize_00Z00D - 1352, // textureSize_00L00D - 1354, // textureSize_00U00D - 1356, // textureSize_00a00D - 1358, // textureSize_00d00D - 1360, // textureSize_00e00D - 1362, // textureSize_00f00D - 1364, // textureSize_00g00D - 1365, // textureSize_00o00D - 1366, // textureSize_00t00D - 1367, // textureSize_00m00D - 1368, // textureSize_00k00D - 1370, // textureSize_00s00D - 1372, // textureSize_00x00D - 1374, // textureSize_00l00D - 1376, // textureSize_00O - 1377, // textureSize_00q - 1378, // textureSize_00v - 1379, // textureSize_00n - 1380, // textureSize_00h00D - 1381, // textureSize_00p00D - 1382, // textureSize_00u00D - 1383, // textureSize_00i00D - 1384, // textureSize_00j - 1386, // textureSize_00r - 1388, // textureSize_00w - 1390, // textureProjLod_00I20B00B - 1392, // textureProjLod_00R20B00B - 1394, // textureProjLod_00X20B00B - 1396, // textureProjLod_00I30B00B - 1398, // textureProjLod_00R30B00B - 1400, // textureProjLod_00X30B00B - 1402, // textureProjLod_00J30B00B - 1404, // textureProjLod_00S30B00B - 1406, // textureProjLod_00Y30B00B - 1408, // textureProjLod_00d30B00B - 1410, // textureProjLod_00g10B00B - 1411, // textureProjLod_00o10B00B - 1412, // textureProjLod_00t10B00B - 1413, // textureProjLod_00g30B00B - 1414, // textureProjLod_00o30B00B - 1415, // textureProjLod_00t30B00B - 1416, // textureProjLod_00m30B00B - 1417, // texelFetch_00I10D00D - 1419, // texelFetch_00R10D00D - 1421, // texelFetch_00X10D00D - 1423, // texelFetch_00J20D00D - 1425, // texelFetch_00S20D00D - 1427, // texelFetch_00Y20D00D - 1429, // texelFetch_00L20D00D - 1431, // texelFetch_00U20D00D - 1433, // texelFetch_00a20D00D - 1435, // texelFetch_00g00D00D - 1436, // texelFetch_00o00D00D - 1437, // texelFetch_00t00D00D - 1438, // texelFetch_00O10D - 1439, // texelFetch_00q10D - 1440, // texelFetch_00v10D - 1441, // texelFetch_00h10D00D - 1442, // texelFetch_00p10D00D - 1443, // texelFetch_00u10D00D - 1444, // texelFetch_00j00D - 1446, // texelFetch_00r00D - 1448, // texelFetch_00w00D - 1450, // textureGrad_00I10B10B10B - 1452, // textureGrad_00R10B10B10B - 1454, // textureGrad_00X10B10B10B - 1456, // textureGrad_00J20B20B20B - 1458, // textureGrad_00S20B20B20B - 1460, // textureGrad_00Y20B20B20B - 1462, // textureGrad_00K20B20B20B - 1464, // textureGrad_00T20B20B20B - 1466, // textureGrad_00Z20B20B20B - 1468, // textureGrad_00I00B00B00B - 1469, // textureGrad_00R00B00B00B - 1470, // textureGrad_00X00B00B00B - 1471, // textureGrad_00O10B10B10B - 1472, // textureGrad_00q10B10B10B - 1473, // textureGrad_00v10B10B10B - 1474, // textureGrad_00n20B10B10B - 1475, // textureGrad_00d20B10B10B - 1477, // textureGrad_00e30B20B20B - 1479, // textureGrad_00L20B10B10B - 1481, // textureGrad_00U20B10B10B - 1483, // textureGrad_00a20B10B10B - 1485, // textureGrad_00f30B10B10B - 1487, // textureGrad_00m20B00B00B - 1488, // textureGrad_00h10B00B00B - 1489, // textureGrad_00p10B00B00B - 1490, // textureGrad_00u10B00B00B - 1491, // textureGrad_00i20B00B00B - 1492, // textureGrad_00k30B20B20B - 1494, // textureGrad_00s30B20B20B - 1496, // textureGrad_00x30B20B20B - 1498, // textureProjGrad_00I20B10B10B - 1500, // textureProjGrad_00R20B10B10B - 1502, // textureProjGrad_00X20B10B10B - 1504, // textureProjGrad_00I30B10B10B - 1506, // textureProjGrad_00R30B10B10B - 1508, // textureProjGrad_00X30B10B10B - 1510, // textureProjGrad_00J30B20B20B - 1512, // textureProjGrad_00S30B20B20B - 1514, // textureProjGrad_00Y30B20B20B - 1516, // textureProjGrad_00d30B10B10B - 1518, // textureProjGrad_00g10B00B00B - 1519, // textureProjGrad_00o10B00B00B - 1520, // textureProjGrad_00t10B00B00B - 1521, // textureProjGrad_00g30B00B00B - 1522, // textureProjGrad_00o30B00B00B - 1523, // textureProjGrad_00t30B00B00B - 1524, // textureProjGrad_00m30B00B00B - 1525, // textureProjGrad_00O20B10B10B - 1526, // textureProjGrad_00q20B10B10B - 1527, // textureProjGrad_00v20B10B10B - 1528, // textureProjGrad_00O30B10B10B - 1529, // textureProjGrad_00q30B10B10B - 1530, // textureProjGrad_00v30B10B10B - 1531, // textureProjGrad_00n30B10B10B - 1532, // textureQueryLevels_00g - 1533, // textureQueryLevels_00o - 1534, // textureQueryLevels_00t - 1535, // textureQueryLevels_00I - 1536, // textureQueryLevels_00R - 1537, // textureQueryLevels_00X - 1538, // textureQueryLevels_00J - 1539, // textureQueryLevels_00S - 1540, // textureQueryLevels_00Y - 1541, // textureQueryLevels_00K - 1542, // textureQueryLevels_00T - 1543, // textureQueryLevels_00Z - 1544, // textureQueryLevels_00h - 1545, // textureQueryLevels_00p - 1546, // textureQueryLevels_00u - 1547, // textureQueryLevels_00L - 1548, // textureQueryLevels_00U - 1549, // textureQueryLevels_00a - 1550, // textureQueryLevels_00k - 1551, // textureQueryLevels_00s - 1552, // textureQueryLevels_00x - 1553, // textureQueryLevels_00m - 1554, // textureQueryLevels_00d - 1555, // textureQueryLevels_00e - 1556, // textureQueryLevels_00i - 1557, // textureQueryLevels_00f - 1558, // textureQueryLevels_00l - 1559, // textureSamples_00P - 1560, // textureSamples_00V - 1561, // textureSamples_00b - 1562, // textureSamples_00Q - 1563, // textureSamples_00W - 1564, // textureSamples_00c - 1565, // textureSize_00P - 1568, // textureSize_00V - 1571, // textureSize_00b - 1574, // textureSize_00Q - 1576, // textureSize_00W - 1578, // textureSize_00c - 1580, // texture_00k30B - 1581, // texture_00s30B - 1582, // texture_00x30B - 1583, // texture_00k30B00B - 1584, // texture_00s30B00B - 1585, // texture_00x30B00B - 1586, // textureGather_00k30B - 1588, // textureGather_00s30B - 1590, // textureGather_00x30B - 1592, // textureGather_00k30B00D - 1594, // textureGather_00s30B00D - 1596, // textureGather_00x30B00D - 1598, // textureGather_00l30B00B - 1600, // texelFetch_00P10D00D - 1603, // texelFetch_00V10D00D - 1606, // texelFetch_00b10D00D - 1609, // texelFetch_00Q20D00D - 1611, // texelFetch_00W20D00D - 1613, // texelFetch_00c20D00D - 1615, // texture_00I10B00B - 1617, // texture_00R10B00B - 1619, // texture_00X10B00B - 1621, // texture_00J20B00B - 1623, // texture_00S20B00B - 1625, // texture_00Y20B00B - 1627, // texture_00K20B00B - 1629, // texture_00T20B00B - 1631, // texture_00Z20B00B - 1633, // texture_00L20B00B - 1635, // texture_00U20B00B - 1637, // texture_00a20B00B - 1639, // textureProj_00I20B00B - 1641, // textureProj_00R20B00B - 1643, // textureProj_00X20B00B - 1645, // textureProj_00I30B00B - 1647, // textureProj_00R30B00B - 1649, // textureProj_00X30B00B - 1651, // textureProj_00J30B00B - 1653, // textureProj_00S30B00B - 1655, // textureProj_00Y30B00B - 1657, // texture_00d20B00B - 1659, // texture_00e30B00B - 1661, // textureProj_00d30B00B - 1663, // texture_00g00B00B - 1664, // texture_00o00B00B - 1665, // texture_00t00B00B - 1666, // texture_00m20B00B - 1667, // texture_00h20B00B - 1668, // texture_00p20B00B - 1669, // texture_00u20B00B - 1670, // texture_00i20B00B - 1671, // texture_00f30B00B - 1672, // textureProj_00g10B00B - 1673, // textureProj_00o10B00B - 1674, // textureProj_00t10B00B - 1675, // textureProj_00g30B00B - 1676, // textureProj_00o30B00B - 1677, // textureProj_00t30B00B - 1678, // textureProj_00m30B00B - 1679, // texture_00M10B00B - 1680, // textureProj_00M20B00B - 1681, // textureProj_00M30B00B - 1682, // texture_00N10B00B - 1683, // textureProj_00N20B00B - 1684, // textureProj_00N30B00B - 1685, // textureQueryLod_00g00B - 1686, // textureQueryLod_00o00B - 1687, // textureQueryLod_00t00B - 1688, // textureQueryLod_00I10B - 1689, // textureQueryLod_00R10B - 1690, // textureQueryLod_00X10B - 1691, // textureQueryLod_00J20B - 1692, // textureQueryLod_00S20B - 1693, // textureQueryLod_00Y20B - 1694, // textureQueryLod_00K20B - 1695, // textureQueryLod_00T20B - 1696, // textureQueryLod_00Z20B - 1697, // textureQueryLod_00h00B - 1698, // textureQueryLod_00p00B - 1699, // textureQueryLod_00u00B - 1700, // textureQueryLod_00L10B - 1701, // textureQueryLod_00U10B - 1702, // textureQueryLod_00a10B - 1703, // textureQueryLod_00k20B - 1704, // textureQueryLod_00s20B - 1705, // textureQueryLod_00x20B - 1706, // textureQueryLod_00m00B - 1707, // textureQueryLod_00d10B - 1708, // textureQueryLod_00e20B - 1709, // textureQueryLod_00i00B - 1710, // textureQueryLod_00f10B - 1711, // textureQueryLod_00l20B - 1712, // textureOffset_00I10B10D - 1714, // textureOffset_00R10B10D - 1716, // textureOffset_00X10B10D - 1718, // textureOffset_00J20B20D - 1720, // textureOffset_00S20B20D - 1722, // textureOffset_00Y20B20D - 1724, // textureOffset_00d20B10D - 1726, // textureOffset_00L20B10D - 1728, // textureOffset_00U20B10D - 1730, // textureOffset_00a20B10D - 1732, // textureOffset_00g00B00D - 1733, // textureOffset_00o00B00D - 1734, // textureOffset_00t00B00D - 1735, // textureOffset_00O10B10D - 1736, // textureOffset_00q10B10D - 1737, // textureOffset_00v10B10D - 1738, // textureOffset_00n20B10D - 1739, // textureOffset_00m20B00D - 1740, // textureOffset_00h10B00D - 1741, // textureOffset_00p10B00D - 1742, // textureOffset_00u10B00D - 1743, // textureOffset_00i20B00D - 1744, // textureOffset_00f30B10D - 1745, // textureProjOffset_00I20B10D - 1747, // textureProjOffset_00R20B10D - 1749, // textureProjOffset_00X20B10D - 1751, // textureProjOffset_00I30B10D - 1753, // textureProjOffset_00R30B10D - 1755, // textureProjOffset_00X30B10D - 1757, // textureProjOffset_00J30B20D - 1759, // textureProjOffset_00S30B20D - 1761, // textureProjOffset_00Y30B20D - 1763, // textureProjOffset_00d30B10D - 1765, // textureProjOffset_00g10B00D - 1766, // textureProjOffset_00o10B00D - 1767, // textureProjOffset_00t10B00D - 1768, // textureProjOffset_00g30B00D - 1769, // textureProjOffset_00o30B00D - 1770, // textureProjOffset_00t30B00D - 1771, // textureProjOffset_00O20B10D - 1772, // textureProjOffset_00q20B10D - 1773, // textureProjOffset_00v20B10D - 1774, // textureProjOffset_00O30B10D - 1775, // textureProjOffset_00q30B10D - 1776, // textureProjOffset_00v30B10D - 1777, // textureProjOffset_00n30B10D - 1778, // textureProjOffset_00m30B00D - 1779, // textureLodOffset_00I10B00B10D - 1781, // textureLodOffset_00R10B00B10D - 1783, // textureLodOffset_00X10B00B10D - 1785, // textureLodOffset_00J20B00B20D - 1787, // textureLodOffset_00S20B00B20D - 1789, // textureLodOffset_00Y20B00B20D - 1791, // textureLodOffset_00d20B00B10D - 1793, // textureLodOffset_00L20B00B10D - 1795, // textureLodOffset_00U20B00B10D - 1797, // textureLodOffset_00a20B00B10D - 1799, // textureLodOffset_00g00B00B00D - 1800, // textureLodOffset_00o00B00B00D - 1801, // textureLodOffset_00t00B00B00D - 1802, // textureLodOffset_00m20B00B00D - 1803, // textureLodOffset_00h10B00B00D - 1804, // textureLodOffset_00p10B00B00D - 1805, // textureLodOffset_00u10B00B00D - 1806, // textureLodOffset_00i20B00B00D - 1807, // textureProjLodOffset_00I20B00B10D - 1809, // textureProjLodOffset_00R20B00B10D - 1811, // textureProjLodOffset_00X20B00B10D - 1813, // textureProjLodOffset_00I30B00B10D - 1815, // textureProjLodOffset_00R30B00B10D - 1817, // textureProjLodOffset_00X30B00B10D - 1819, // textureProjLodOffset_00J30B00B20D - 1821, // textureProjLodOffset_00S30B00B20D - 1823, // textureProjLodOffset_00Y30B00B20D - 1825, // textureProjLodOffset_00d30B00B10D - 1827, // textureProjLodOffset_00g10B00B00D - 1828, // textureProjLodOffset_00o10B00B00D - 1829, // textureProjLodOffset_00t10B00B00D - 1830, // textureProjLodOffset_00g30B00B00D - 1831, // textureProjLodOffset_00o30B00B00D - 1832, // textureProjLodOffset_00t30B00B00D - 1833, // textureProjLodOffset_00m30B00B00D - 1834, // texelFetchOffset_00I10D00D10D - 1836, // texelFetchOffset_00R10D00D10D - 1838, // texelFetchOffset_00X10D00D10D - 1840, // texelFetchOffset_00J20D00D20D - 1842, // texelFetchOffset_00S20D00D20D - 1844, // texelFetchOffset_00Y20D00D20D - 1846, // texelFetchOffset_00L20D00D10D - 1848, // texelFetchOffset_00U20D00D10D - 1850, // texelFetchOffset_00a20D00D10D - 1852, // texelFetchOffset_00g00D00D00D - 1853, // texelFetchOffset_00o00D00D00D - 1854, // texelFetchOffset_00t00D00D00D - 1855, // texelFetchOffset_00O10D10D - 1856, // texelFetchOffset_00q10D10D - 1857, // texelFetchOffset_00v10D10D - 1858, // texelFetchOffset_00h10D00D00D - 1859, // texelFetchOffset_00p10D00D00D - 1860, // texelFetchOffset_00u10D00D00D - 1861, // textureGradOffset_00I10B10B10B10D - 1863, // textureGradOffset_00R10B10B10B10D - 1865, // textureGradOffset_00X10B10B10B10D - 1867, // textureGradOffset_00J20B20B20B20D - 1869, // textureGradOffset_00S20B20B20B20D - 1871, // textureGradOffset_00Y20B20B20B20D - 1873, // textureGradOffset_00d20B10B10B10D - 1875, // textureGradOffset_00L20B10B10B10D - 1877, // textureGradOffset_00U20B10B10B10D - 1879, // textureGradOffset_00a20B10B10B10D - 1881, // textureGradOffset_00f30B10B10B10D - 1883, // textureGradOffset_00g00B00B00B00D - 1884, // textureGradOffset_00o00B00B00B00D - 1885, // textureGradOffset_00t00B00B00B00D - 1886, // textureGradOffset_00O10B10B10B10D - 1887, // textureGradOffset_00q10B10B10B10D - 1888, // textureGradOffset_00v10B10B10B10D - 1889, // textureGradOffset_00n20B10B10B10D - 1890, // textureGradOffset_00m20B00B00B00D - 1891, // textureGradOffset_00h10B00B00B00D - 1892, // textureGradOffset_00p10B00B00B00D - 1893, // textureGradOffset_00u10B00B00B00D - 1894, // textureGradOffset_00i20B00B00B00D - 1895, // textureProjGradOffset_00I20B10B10B10D - 1897, // textureProjGradOffset_00R20B10B10B10D - 1899, // textureProjGradOffset_00X20B10B10B10D - 1901, // textureProjGradOffset_00I30B10B10B10D - 1903, // textureProjGradOffset_00R30B10B10B10D - 1905, // textureProjGradOffset_00X30B10B10B10D - 1907, // textureProjGradOffset_00J30B20B20B20D - 1909, // textureProjGradOffset_00S30B20B20B20D - 1911, // textureProjGradOffset_00Y30B20B20B20D - 1913, // textureProjGradOffset_00d30B10B10B10D - 1915, // textureProjGradOffset_00g10B00B00B00D - 1916, // textureProjGradOffset_00o10B00B00B00D - 1917, // textureProjGradOffset_00t10B00B00B00D - 1918, // textureProjGradOffset_00g30B00B00B00D - 1919, // textureProjGradOffset_00o30B00B00B00D - 1920, // textureProjGradOffset_00t30B00B00B00D - 1921, // textureProjGradOffset_00O20B10B10B10D - 1922, // textureProjGradOffset_00q20B10B10B10D - 1923, // textureProjGradOffset_00v20B10B10B10D - 1924, // textureProjGradOffset_00O30B10B10B10D - 1925, // textureProjGradOffset_00q30B10B10B10D - 1926, // textureProjGradOffset_00v30B10B10B10D - 1927, // textureProjGradOffset_00n30B10B10B10D - 1928, // textureProjGradOffset_00m30B00B00B00D - 1929, // textureOffset_00I10B10D00B - 1931, // textureOffset_00R10B10D00B - 1933, // textureOffset_00X10B10D00B - 1935, // textureOffset_00J20B20D00B - 1937, // textureOffset_00S20B20D00B - 1939, // textureOffset_00Y20B20D00B - 1941, // textureOffset_00d20B10D00B - 1943, // textureOffset_00L20B10D00B - 1945, // textureOffset_00U20B10D00B - 1947, // textureOffset_00a20B10D00B - 1949, // textureOffset_00g00B00D00B - 1950, // textureOffset_00o00B00D00B - 1951, // textureOffset_00t00B00D00B - 1952, // textureOffset_00m20B00D00B - 1953, // textureOffset_00h10B00D00B - 1954, // textureOffset_00p10B00D00B - 1955, // textureOffset_00u10B00D00B - 1956, // textureOffset_00i20B00D00B - 1957, // textureProjOffset_00I20B10D00B - 1959, // textureProjOffset_00R20B10D00B - 1961, // textureProjOffset_00X20B10D00B - 1963, // textureProjOffset_00I30B10D00B - 1965, // textureProjOffset_00R30B10D00B - 1967, // textureProjOffset_00X30B10D00B - 1969, // textureProjOffset_00J30B20D00B - 1971, // textureProjOffset_00S30B20D00B - 1973, // textureProjOffset_00Y30B20D00B - 1975, // textureProjOffset_00d30B10D00B - 1977, // textureProjOffset_00g10B00D00B - 1978, // textureProjOffset_00o10B00D00B - 1979, // textureProjOffset_00t10B00D00B - 1980, // textureProjOffset_00g30B00D00B - 1981, // textureProjOffset_00o30B00D00B - 1982, // textureProjOffset_00t30B00D00B - 1983, // textureProjOffset_00m30B00D00B - 1984, // texture_00M10B - 1985, // textureProj_00M20B - 1986, // textureProj_00M30B - 1987, // textureSize_00M00D - 1988, // texelFetch_00M10D00D - 1989, // texture_00N10B - 1990, // textureProj_00N20B - 1991, // textureProj_00N30B - 1992, // rgb_2_yuv_20B00H - 1993, // yuv_2_rgb_20B00H - 1994, // textureSize_00N00D - 1995, // texelFetch_00N10D00D - 1996, // textureGather_00I10B - 1998, // textureGather_00R10B - 2000, // textureGather_00X10B - 2002, // textureGather_00I10B00D - 2004, // textureGather_00R10B00D - 2006, // textureGather_00X10B00D - 2008, // textureGather_00L20B - 2010, // textureGather_00U20B - 2012, // textureGather_00a20B - 2014, // textureGather_00L20B00D - 2016, // textureGather_00U20B00D - 2018, // textureGather_00a20B00D - 2020, // textureGather_00K20B - 2022, // textureGather_00T20B - 2024, // textureGather_00Z20B - 2026, // textureGather_00K20B00D - 2028, // textureGather_00T20B00D - 2030, // textureGather_00Z20B00D - 2032, // textureGather_00O20B - 2033, // textureGather_00q20B - 2034, // textureGather_00v20B - 2035, // textureGather_00O20B00D - 2036, // textureGather_00q20B00D - 2037, // textureGather_00v20B00D - 2038, // textureGather_00d10B - 2039, // textureGather_00d10B00B - 2041, // textureGather_00f20B - 2042, // textureGather_00f20B00B - 2044, // textureGather_00e20B - 2045, // textureGather_00e20B00B - 2047, // textureGather_00n10B00B - 2048, // textureGatherOffset_00I10B10D - 2050, // textureGatherOffset_00R10B10D - 2052, // textureGatherOffset_00X10B10D - 2054, // textureGatherOffset_00L20B10D - 2056, // textureGatherOffset_00U20B10D - 2058, // textureGatherOffset_00a20B10D - 2060, // textureGatherOffset_00d10B00B10D - 2062, // textureGatherOffset_00f20B00B10D - 2064, // textureGatherOffset_00O10B10D - 2065, // textureGatherOffset_00q10B10D - 2066, // textureGatherOffset_00v10B10D - 2067, // textureGatherOffset_00n10B00B10D - 2068, // textureGatherOffset_00I10B10D00D - 2070, // textureGatherOffset_00R10B10D00D - 2072, // textureGatherOffset_00X10B10D00D - 2074, // textureGatherOffset_00L20B10D00D - 2076, // textureGatherOffset_00U20B10D00D - 2078, // textureGatherOffset_00a20B10D00D - 2080, // textureGatherOffset_00O10B10D00D - 2081, // textureGatherOffset_00q10B10D00D - 2082, // textureGatherOffset_00v10B10D00D - 2083, // textureGatherOffsets_00I10B10Dx4 - 2086, // textureGatherOffsets_00R10B10Dx4 - 2089, // textureGatherOffsets_00X10B10Dx4 - 2092, // textureGatherOffsets_00L20B10Dx4 - 2095, // textureGatherOffsets_00U20B10Dx4 - 2098, // textureGatherOffsets_00a20B10Dx4 - 2101, // textureGatherOffsets_00d10B00B10Dx4 - 2104, // textureGatherOffsets_00f20B00B10Dx4 - 2107, // textureGatherOffsets_00O10B10Dx4 - 2108, // textureGatherOffsets_00q10B10Dx4 - 2109, // textureGatherOffsets_00v10B10Dx4 - 2110, // textureGatherOffsets_00n10B00B10Dx4 - 2111, // textureGatherOffsets_00I10B10Dx400D - 2114, // textureGatherOffsets_00R10B10Dx400D - 2117, // textureGatherOffsets_00X10B10Dx400D - 2120, // textureGatherOffsets_00L20B10Dx400D - 2123, // textureGatherOffsets_00U20B10Dx400D - 2126, // textureGatherOffsets_00a20B10Dx400D - 2129, // textureGatherOffsets_00O10B10Dx400D - 2130, // textureGatherOffsets_00q10B10Dx400D - 2131, // textureGatherOffsets_00v10B10Dx400D - 2132, // dFdxFine_00B - 2133, // dFdxFine_10B - 2134, // dFdxFine_20B - 2135, // dFdxFine_30B - 2136, // dFdyFine_00B - 2137, // dFdyFine_10B - 2138, // dFdyFine_20B - 2139, // dFdyFine_30B - 2140, // dFdxCoarse_00B - 2141, // dFdxCoarse_10B - 2142, // dFdxCoarse_20B - 2143, // dFdxCoarse_30B - 2144, // dFdyCoarse_00B - 2145, // dFdyCoarse_10B - 2146, // dFdyCoarse_20B - 2147, // dFdyCoarse_30B - 2148, // fwidthFine_00B - 2149, // fwidthFine_10B - 2150, // fwidthFine_20B - 2151, // fwidthFine_30B - 2152, // fwidthCoarse_00B - 2153, // fwidthCoarse_10B - 2154, // fwidthCoarse_20B - 2155, // fwidthCoarse_30B - 2156, // interpolateAtCentroid_00B - 2159, // interpolateAtCentroid_10B - 2162, // interpolateAtCentroid_20B - 2165, // interpolateAtCentroid_30B - 2168, // interpolateAtSample_00B00D - 2171, // interpolateAtSample_10B00D - 2174, // interpolateAtSample_20B00D - 2177, // interpolateAtSample_30B00D - 2180, // interpolateAtOffset_00B10B - 2183, // interpolateAtOffset_10B10B - 2186, // interpolateAtOffset_20B10B - 2189, // interpolateAtOffset_30B10B - 2192, // atomicCounter_00G - 2194, // atomicCounterIncrement_00G - 2196, // atomicCounterDecrement_00G - 2198, // atomicCounterAdd_00G00E - 2199, // atomicCounterSubtract_00G00E - 2200, // atomicCounterMin_00G00E - 2201, // atomicCounterMax_00G00E - 2202, // atomicCounterAnd_00G00E - 2203, // atomicCounterOr_00G00E - 2204, // atomicCounterXor_00G00E - 2205, // atomicCounterExchange_00G00E - 2206, // atomicCounterCompSwap_00G00E00E - 2207, // atomicAdd_00E00E - 2209, // atomicAdd_00D00D - 2211, // atomicMin_00E00E - 2213, // atomicMin_00D00D - 2215, // atomicMax_00E00E - 2217, // atomicMax_00D00D - 2219, // atomicAnd_00E00E - 2221, // atomicAnd_00D00D - 2223, // atomicOr_00E00E - 2225, // atomicOr_00D00D - 2227, // atomicXor_00E00E - 2229, // atomicXor_00D00D - 2231, // atomicExchange_00E00E - 2233, // atomicExchange_00D00D - 2235, // atomicCompSwap_00E00E00E - 2237, // atomicCompSwap_00D00D00D - 2239, // imageSize_00z - 2241, // imageSize_01A - 2243, // imageSize_01B - 2245, // imageSize_01C - 2247, // imageSize_01D - 2249, // imageSize_01E - 2251, // imageSize_01F - 2253, // imageSize_01G - 2255, // imageSize_01H - 2257, // imageSize_01I - 2259, // imageSize_01J - 2261, // imageSize_01K - 2263, // imageSize_01X - 2265, // imageSize_01Y - 2267, // imageSize_01Z - 2269, // imageSize_01d - 2271, // imageSize_01e - 2273, // imageSize_01f - 2275, // imageSize_01L - 2276, // imageSize_01M - 2277, // imageSize_01N - 2278, // imageSize_01a - 2279, // imageSize_01b - 2280, // imageSize_01c - 2281, // imageSize_01O - 2282, // imageSize_01P - 2283, // imageSize_01Q - 2284, // imageSize_01R - 2285, // imageSize_01S - 2286, // imageSize_01T - 2287, // imageSize_01U - 2288, // imageSize_01V - 2289, // imageSize_01W - 2290, // imageSamples_01R - 2291, // imageSamples_01S - 2292, // imageSamples_01T - 2293, // imageSamples_01U - 2294, // imageSamples_01V - 2295, // imageSamples_01W - 2296, // imageStore_00z10D30B - 2298, // imageStore_01A10D30D - 2300, // imageStore_01B10D30E - 2302, // imageStore_01C20D30B - 2304, // imageStore_01D20D30D - 2306, // imageStore_01E20D30E - 2308, // imageStore_01F20D30B - 2310, // imageStore_01G20D30D - 2312, // imageStore_01H20D30E - 2314, // imageStore_01I20D30B - 2316, // imageStore_01J20D30D - 2318, // imageStore_01K20D30E - 2320, // imageStore_01X20D30B - 2322, // imageStore_01Y20D30D - 2324, // imageStore_01Z20D30E - 2326, // imageStore_01d00D30B - 2328, // imageStore_01e00D30D - 2330, // imageStore_01f00D30E - 2332, // imageStore_01L00D30B - 2333, // imageStore_01M00D30D - 2334, // imageStore_01N00D30E - 2335, // imageStore_01O10D30B - 2336, // imageStore_01P10D30D - 2337, // imageStore_01Q10D30E - 2338, // imageStore_01a10D30B - 2339, // imageStore_01b10D30D - 2340, // imageStore_01c10D30E - 2341, // imageStore_01R10D00D30B - 2342, // imageStore_01S10D00D30D - 2343, // imageStore_01T10D00D30E - 2344, // imageStore_01U20D00D30B - 2345, // imageStore_01V20D00D30D - 2346, // imageStore_01W20D00D30E - 2347, // imageLoad_00z10D - 2349, // imageLoad_01A10D - 2351, // imageLoad_01B10D - 2353, // imageLoad_01C20D - 2355, // imageLoad_01D20D - 2357, // imageLoad_01E20D - 2359, // imageLoad_01F20D - 2361, // imageLoad_01G20D - 2363, // imageLoad_01H20D - 2365, // imageLoad_01I20D - 2367, // imageLoad_01J20D - 2369, // imageLoad_01K20D - 2371, // imageLoad_01X20D - 2373, // imageLoad_01Y20D - 2375, // imageLoad_01Z20D - 2377, // imageLoad_01d00D - 2379, // imageLoad_01e00D - 2381, // imageLoad_01f00D - 2383, // imageLoad_01L00D - 2384, // imageLoad_01M00D - 2385, // imageLoad_01N00D - 2386, // imageLoad_01O10D - 2387, // imageLoad_01P10D - 2388, // imageLoad_01Q10D - 2389, // imageLoad_01a10D - 2390, // imageLoad_01b10D - 2391, // imageLoad_01c10D - 2392, // imageLoad_01R10D00D - 2393, // imageLoad_01S10D00D - 2394, // imageLoad_01T10D00D - 2395, // imageLoad_01U20D00D - 2396, // imageLoad_01V20D00D - 2397, // imageLoad_01W20D00D - 2398, // imageAtomicAdd_00z10D00E - 2400, // imageAtomicAdd_01A10D00E - 2402, // imageAtomicAdd_01B10D00E - 2404, // imageAtomicAdd_01C20D00E - 2406, // imageAtomicAdd_01D20D00E - 2408, // imageAtomicAdd_01E20D00E - 2410, // imageAtomicAdd_01I20D00E - 2412, // imageAtomicAdd_01J20D00E - 2414, // imageAtomicAdd_01K20D00E - 2416, // imageAtomicAdd_01d00D00E - 2418, // imageAtomicAdd_01e00D00E - 2420, // imageAtomicAdd_01f00D00E - 2422, // imageAtomicAdd_01F20D00E - 2424, // imageAtomicAdd_01G20D00E - 2426, // imageAtomicAdd_01H20D00E - 2428, // imageAtomicAdd_01X20D00E - 2430, // imageAtomicAdd_01Y20D00E - 2432, // imageAtomicAdd_01Z20D00E - 2434, // imageAtomicAdd_01L00D00E - 2436, // imageAtomicAdd_01M00D00E - 2438, // imageAtomicAdd_01N00D00E - 2440, // imageAtomicAdd_01O10D00E - 2442, // imageAtomicAdd_01P10D00E - 2444, // imageAtomicAdd_01Q10D00E - 2446, // imageAtomicAdd_01a10D00E - 2448, // imageAtomicAdd_01b10D00E - 2450, // imageAtomicAdd_01c10D00E - 2452, // imageAtomicAdd_01R10D00D00E - 2454, // imageAtomicAdd_01S10D00D00E - 2456, // imageAtomicAdd_01T10D00D00E - 2458, // imageAtomicAdd_01U20D00D00E - 2460, // imageAtomicAdd_01V20D00D00E - 2462, // imageAtomicAdd_01W20D00D00E - 2464, // imageAtomicAdd_00z10D00D - 2466, // imageAtomicAdd_01A10D00D - 2468, // imageAtomicAdd_01B10D00D - 2470, // imageAtomicAdd_01C20D00D - 2472, // imageAtomicAdd_01D20D00D - 2474, // imageAtomicAdd_01E20D00D - 2476, // imageAtomicAdd_01I20D00D - 2478, // imageAtomicAdd_01J20D00D - 2480, // imageAtomicAdd_01K20D00D - 2482, // imageAtomicAdd_01d00D00D - 2484, // imageAtomicAdd_01e00D00D - 2486, // imageAtomicAdd_01f00D00D - 2488, // imageAtomicAdd_01F20D00D - 2490, // imageAtomicAdd_01G20D00D - 2492, // imageAtomicAdd_01H20D00D - 2494, // imageAtomicAdd_01X20D00D - 2496, // imageAtomicAdd_01Y20D00D - 2498, // imageAtomicAdd_01Z20D00D - 2500, // imageAtomicAdd_01L00D00D - 2502, // imageAtomicAdd_01M00D00D - 2504, // imageAtomicAdd_01N00D00D - 2506, // imageAtomicAdd_01O10D00D - 2508, // imageAtomicAdd_01P10D00D - 2510, // imageAtomicAdd_01Q10D00D - 2512, // imageAtomicAdd_01a10D00D - 2514, // imageAtomicAdd_01b10D00D - 2516, // imageAtomicAdd_01c10D00D - 2518, // imageAtomicAdd_01R10D00D00D - 2520, // imageAtomicAdd_01S10D00D00D - 2522, // imageAtomicAdd_01T10D00D00D - 2524, // imageAtomicAdd_01U20D00D00D - 2526, // imageAtomicAdd_01V20D00D00D - 2528, // imageAtomicAdd_01W20D00D00D - 2530, // imageAtomicMin_00z10D00E - 2532, // imageAtomicMin_01A10D00E - 2534, // imageAtomicMin_01B10D00E - 2536, // imageAtomicMin_01C20D00E - 2538, // imageAtomicMin_01D20D00E - 2540, // imageAtomicMin_01E20D00E - 2542, // imageAtomicMin_01I20D00E - 2544, // imageAtomicMin_01J20D00E - 2546, // imageAtomicMin_01K20D00E - 2548, // imageAtomicMin_01d00D00E - 2550, // imageAtomicMin_01e00D00E - 2552, // imageAtomicMin_01f00D00E - 2554, // imageAtomicMin_01F20D00E - 2556, // imageAtomicMin_01G20D00E - 2558, // imageAtomicMin_01H20D00E - 2560, // imageAtomicMin_01X20D00E - 2562, // imageAtomicMin_01Y20D00E - 2564, // imageAtomicMin_01Z20D00E - 2566, // imageAtomicMin_01L00D00E - 2568, // imageAtomicMin_01M00D00E - 2570, // imageAtomicMin_01N00D00E - 2572, // imageAtomicMin_01O10D00E - 2574, // imageAtomicMin_01P10D00E - 2576, // imageAtomicMin_01Q10D00E - 2578, // imageAtomicMin_01a10D00E - 2580, // imageAtomicMin_01b10D00E - 2582, // imageAtomicMin_01c10D00E - 2584, // imageAtomicMin_01R10D00D00E - 2586, // imageAtomicMin_01S10D00D00E - 2588, // imageAtomicMin_01T10D00D00E - 2590, // imageAtomicMin_01U20D00D00E - 2592, // imageAtomicMin_01V20D00D00E - 2594, // imageAtomicMin_01W20D00D00E - 2596, // imageAtomicMin_00z10D00D - 2598, // imageAtomicMin_01A10D00D - 2600, // imageAtomicMin_01B10D00D - 2602, // imageAtomicMin_01C20D00D - 2604, // imageAtomicMin_01D20D00D - 2606, // imageAtomicMin_01E20D00D - 2608, // imageAtomicMin_01I20D00D - 2610, // imageAtomicMin_01J20D00D - 2612, // imageAtomicMin_01K20D00D - 2614, // imageAtomicMin_01d00D00D - 2616, // imageAtomicMin_01e00D00D - 2618, // imageAtomicMin_01f00D00D - 2620, // imageAtomicMin_01F20D00D - 2622, // imageAtomicMin_01G20D00D - 2624, // imageAtomicMin_01H20D00D - 2626, // imageAtomicMin_01X20D00D - 2628, // imageAtomicMin_01Y20D00D - 2630, // imageAtomicMin_01Z20D00D - 2632, // imageAtomicMin_01L00D00D - 2634, // imageAtomicMin_01M00D00D - 2636, // imageAtomicMin_01N00D00D - 2638, // imageAtomicMin_01O10D00D - 2640, // imageAtomicMin_01P10D00D - 2642, // imageAtomicMin_01Q10D00D - 2644, // imageAtomicMin_01a10D00D - 2646, // imageAtomicMin_01b10D00D - 2648, // imageAtomicMin_01c10D00D - 2650, // imageAtomicMin_01R10D00D00D - 2652, // imageAtomicMin_01S10D00D00D - 2654, // imageAtomicMin_01T10D00D00D - 2656, // imageAtomicMin_01U20D00D00D - 2658, // imageAtomicMin_01V20D00D00D - 2660, // imageAtomicMin_01W20D00D00D - 2662, // imageAtomicMax_00z10D00E - 2664, // imageAtomicMax_01A10D00E - 2666, // imageAtomicMax_01B10D00E - 2668, // imageAtomicMax_01C20D00E - 2670, // imageAtomicMax_01D20D00E - 2672, // imageAtomicMax_01E20D00E - 2674, // imageAtomicMax_01I20D00E - 2676, // imageAtomicMax_01J20D00E - 2678, // imageAtomicMax_01K20D00E - 2680, // imageAtomicMax_01d00D00E - 2682, // imageAtomicMax_01e00D00E - 2684, // imageAtomicMax_01f00D00E - 2686, // imageAtomicMax_01F20D00E - 2688, // imageAtomicMax_01G20D00E - 2690, // imageAtomicMax_01H20D00E - 2692, // imageAtomicMax_01X20D00E - 2694, // imageAtomicMax_01Y20D00E - 2696, // imageAtomicMax_01Z20D00E - 2698, // imageAtomicMax_01L00D00E - 2700, // imageAtomicMax_01M00D00E - 2702, // imageAtomicMax_01N00D00E - 2704, // imageAtomicMax_01O10D00E - 2706, // imageAtomicMax_01P10D00E - 2708, // imageAtomicMax_01Q10D00E - 2710, // imageAtomicMax_01a10D00E - 2712, // imageAtomicMax_01b10D00E - 2714, // imageAtomicMax_01c10D00E - 2716, // imageAtomicMax_01R10D00D00E - 2718, // imageAtomicMax_01S10D00D00E - 2720, // imageAtomicMax_01T10D00D00E - 2722, // imageAtomicMax_01U20D00D00E - 2724, // imageAtomicMax_01V20D00D00E - 2726, // imageAtomicMax_01W20D00D00E - 2728, // imageAtomicMax_00z10D00D - 2730, // imageAtomicMax_01A10D00D - 2732, // imageAtomicMax_01B10D00D - 2734, // imageAtomicMax_01C20D00D - 2736, // imageAtomicMax_01D20D00D - 2738, // imageAtomicMax_01E20D00D - 2740, // imageAtomicMax_01I20D00D - 2742, // imageAtomicMax_01J20D00D - 2744, // imageAtomicMax_01K20D00D - 2746, // imageAtomicMax_01d00D00D - 2748, // imageAtomicMax_01e00D00D - 2750, // imageAtomicMax_01f00D00D - 2752, // imageAtomicMax_01F20D00D - 2754, // imageAtomicMax_01G20D00D - 2756, // imageAtomicMax_01H20D00D - 2758, // imageAtomicMax_01X20D00D - 2760, // imageAtomicMax_01Y20D00D - 2762, // imageAtomicMax_01Z20D00D - 2764, // imageAtomicMax_01L00D00D - 2766, // imageAtomicMax_01M00D00D - 2768, // imageAtomicMax_01N00D00D - 2770, // imageAtomicMax_01O10D00D - 2772, // imageAtomicMax_01P10D00D - 2774, // imageAtomicMax_01Q10D00D - 2776, // imageAtomicMax_01a10D00D - 2778, // imageAtomicMax_01b10D00D - 2780, // imageAtomicMax_01c10D00D - 2782, // imageAtomicMax_01R10D00D00D - 2784, // imageAtomicMax_01S10D00D00D - 2786, // imageAtomicMax_01T10D00D00D - 2788, // imageAtomicMax_01U20D00D00D - 2790, // imageAtomicMax_01V20D00D00D - 2792, // imageAtomicMax_01W20D00D00D - 2794, // imageAtomicAnd_00z10D00E - 2796, // imageAtomicAnd_01A10D00E - 2798, // imageAtomicAnd_01B10D00E - 2800, // imageAtomicAnd_01C20D00E - 2802, // imageAtomicAnd_01D20D00E - 2804, // imageAtomicAnd_01E20D00E - 2806, // imageAtomicAnd_01I20D00E - 2808, // imageAtomicAnd_01J20D00E - 2810, // imageAtomicAnd_01K20D00E - 2812, // imageAtomicAnd_01d00D00E - 2814, // imageAtomicAnd_01e00D00E - 2816, // imageAtomicAnd_01f00D00E - 2818, // imageAtomicAnd_01F20D00E - 2820, // imageAtomicAnd_01G20D00E - 2822, // imageAtomicAnd_01H20D00E - 2824, // imageAtomicAnd_01X20D00E - 2826, // imageAtomicAnd_01Y20D00E - 2828, // imageAtomicAnd_01Z20D00E - 2830, // imageAtomicAnd_01L00D00E - 2832, // imageAtomicAnd_01M00D00E - 2834, // imageAtomicAnd_01N00D00E - 2836, // imageAtomicAnd_01O10D00E - 2838, // imageAtomicAnd_01P10D00E - 2840, // imageAtomicAnd_01Q10D00E - 2842, // imageAtomicAnd_01a10D00E - 2844, // imageAtomicAnd_01b10D00E - 2846, // imageAtomicAnd_01c10D00E - 2848, // imageAtomicAnd_01R10D00D00E - 2850, // imageAtomicAnd_01S10D00D00E - 2852, // imageAtomicAnd_01T10D00D00E - 2854, // imageAtomicAnd_01U20D00D00E - 2856, // imageAtomicAnd_01V20D00D00E - 2858, // imageAtomicAnd_01W20D00D00E - 2860, // imageAtomicAnd_00z10D00D - 2862, // imageAtomicAnd_01A10D00D - 2864, // imageAtomicAnd_01B10D00D - 2866, // imageAtomicAnd_01C20D00D - 2868, // imageAtomicAnd_01D20D00D - 2870, // imageAtomicAnd_01E20D00D - 2872, // imageAtomicAnd_01I20D00D - 2874, // imageAtomicAnd_01J20D00D - 2876, // imageAtomicAnd_01K20D00D - 2878, // imageAtomicAnd_01d00D00D - 2880, // imageAtomicAnd_01e00D00D - 2882, // imageAtomicAnd_01f00D00D - 2884, // imageAtomicAnd_01F20D00D - 2886, // imageAtomicAnd_01G20D00D - 2888, // imageAtomicAnd_01H20D00D - 2890, // imageAtomicAnd_01X20D00D - 2892, // imageAtomicAnd_01Y20D00D - 2894, // imageAtomicAnd_01Z20D00D - 2896, // imageAtomicAnd_01L00D00D - 2898, // imageAtomicAnd_01M00D00D - 2900, // imageAtomicAnd_01N00D00D - 2902, // imageAtomicAnd_01O10D00D - 2904, // imageAtomicAnd_01P10D00D - 2906, // imageAtomicAnd_01Q10D00D - 2908, // imageAtomicAnd_01a10D00D - 2910, // imageAtomicAnd_01b10D00D - 2912, // imageAtomicAnd_01c10D00D - 2914, // imageAtomicAnd_01R10D00D00D - 2916, // imageAtomicAnd_01S10D00D00D - 2918, // imageAtomicAnd_01T10D00D00D - 2920, // imageAtomicAnd_01U20D00D00D - 2922, // imageAtomicAnd_01V20D00D00D - 2924, // imageAtomicAnd_01W20D00D00D - 2926, // imageAtomicOr_00z10D00E - 2928, // imageAtomicOr_01A10D00E - 2930, // imageAtomicOr_01B10D00E - 2932, // imageAtomicOr_01C20D00E - 2934, // imageAtomicOr_01D20D00E - 2936, // imageAtomicOr_01E20D00E - 2938, // imageAtomicOr_01I20D00E - 2940, // imageAtomicOr_01J20D00E - 2942, // imageAtomicOr_01K20D00E - 2944, // imageAtomicOr_01d00D00E - 2946, // imageAtomicOr_01e00D00E - 2948, // imageAtomicOr_01f00D00E - 2950, // imageAtomicOr_01F20D00E - 2952, // imageAtomicOr_01G20D00E - 2954, // imageAtomicOr_01H20D00E - 2956, // imageAtomicOr_01X20D00E - 2958, // imageAtomicOr_01Y20D00E - 2960, // imageAtomicOr_01Z20D00E - 2962, // imageAtomicOr_01L00D00E - 2964, // imageAtomicOr_01M00D00E - 2966, // imageAtomicOr_01N00D00E - 2968, // imageAtomicOr_01O10D00E - 2970, // imageAtomicOr_01P10D00E - 2972, // imageAtomicOr_01Q10D00E - 2974, // imageAtomicOr_01a10D00E - 2976, // imageAtomicOr_01b10D00E - 2978, // imageAtomicOr_01c10D00E - 2980, // imageAtomicOr_01R10D00D00E - 2982, // imageAtomicOr_01S10D00D00E - 2984, // imageAtomicOr_01T10D00D00E - 2986, // imageAtomicOr_01U20D00D00E - 2988, // imageAtomicOr_01V20D00D00E - 2990, // imageAtomicOr_01W20D00D00E - 2992, // imageAtomicOr_00z10D00D - 2994, // imageAtomicOr_01A10D00D - 2996, // imageAtomicOr_01B10D00D - 2998, // imageAtomicOr_01C20D00D - 3000, // imageAtomicOr_01D20D00D - 3002, // imageAtomicOr_01E20D00D - 3004, // imageAtomicOr_01I20D00D - 3006, // imageAtomicOr_01J20D00D - 3008, // imageAtomicOr_01K20D00D - 3010, // imageAtomicOr_01d00D00D - 3012, // imageAtomicOr_01e00D00D - 3014, // imageAtomicOr_01f00D00D - 3016, // imageAtomicOr_01F20D00D - 3018, // imageAtomicOr_01G20D00D - 3020, // imageAtomicOr_01H20D00D - 3022, // imageAtomicOr_01X20D00D - 3024, // imageAtomicOr_01Y20D00D - 3026, // imageAtomicOr_01Z20D00D - 3028, // imageAtomicOr_01L00D00D - 3030, // imageAtomicOr_01M00D00D - 3032, // imageAtomicOr_01N00D00D - 3034, // imageAtomicOr_01O10D00D - 3036, // imageAtomicOr_01P10D00D - 3038, // imageAtomicOr_01Q10D00D - 3040, // imageAtomicOr_01a10D00D - 3042, // imageAtomicOr_01b10D00D - 3044, // imageAtomicOr_01c10D00D - 3046, // imageAtomicOr_01R10D00D00D - 3048, // imageAtomicOr_01S10D00D00D - 3050, // imageAtomicOr_01T10D00D00D - 3052, // imageAtomicOr_01U20D00D00D - 3054, // imageAtomicOr_01V20D00D00D - 3056, // imageAtomicOr_01W20D00D00D - 3058, // imageAtomicXor_00z10D00E - 3060, // imageAtomicXor_01A10D00E - 3062, // imageAtomicXor_01B10D00E - 3064, // imageAtomicXor_01C20D00E - 3066, // imageAtomicXor_01D20D00E - 3068, // imageAtomicXor_01E20D00E - 3070, // imageAtomicXor_01I20D00E - 3072, // imageAtomicXor_01J20D00E - 3074, // imageAtomicXor_01K20D00E - 3076, // imageAtomicXor_01d00D00E - 3078, // imageAtomicXor_01e00D00E - 3080, // imageAtomicXor_01f00D00E - 3082, // imageAtomicXor_01F20D00E - 3084, // imageAtomicXor_01G20D00E - 3086, // imageAtomicXor_01H20D00E - 3088, // imageAtomicXor_01X20D00E - 3090, // imageAtomicXor_01Y20D00E - 3092, // imageAtomicXor_01Z20D00E - 3094, // imageAtomicXor_01L00D00E - 3096, // imageAtomicXor_01M00D00E - 3098, // imageAtomicXor_01N00D00E - 3100, // imageAtomicXor_01O10D00E - 3102, // imageAtomicXor_01P10D00E - 3104, // imageAtomicXor_01Q10D00E - 3106, // imageAtomicXor_01a10D00E - 3108, // imageAtomicXor_01b10D00E - 3110, // imageAtomicXor_01c10D00E - 3112, // imageAtomicXor_01R10D00D00E - 3114, // imageAtomicXor_01S10D00D00E - 3116, // imageAtomicXor_01T10D00D00E - 3118, // imageAtomicXor_01U20D00D00E - 3120, // imageAtomicXor_01V20D00D00E - 3122, // imageAtomicXor_01W20D00D00E - 3124, // imageAtomicXor_00z10D00D - 3126, // imageAtomicXor_01A10D00D - 3128, // imageAtomicXor_01B10D00D - 3130, // imageAtomicXor_01C20D00D - 3132, // imageAtomicXor_01D20D00D - 3134, // imageAtomicXor_01E20D00D - 3136, // imageAtomicXor_01I20D00D - 3138, // imageAtomicXor_01J20D00D - 3140, // imageAtomicXor_01K20D00D - 3142, // imageAtomicXor_01d00D00D - 3144, // imageAtomicXor_01e00D00D - 3146, // imageAtomicXor_01f00D00D - 3148, // imageAtomicXor_01F20D00D - 3150, // imageAtomicXor_01G20D00D - 3152, // imageAtomicXor_01H20D00D - 3154, // imageAtomicXor_01X20D00D - 3156, // imageAtomicXor_01Y20D00D - 3158, // imageAtomicXor_01Z20D00D - 3160, // imageAtomicXor_01L00D00D - 3162, // imageAtomicXor_01M00D00D - 3164, // imageAtomicXor_01N00D00D - 3166, // imageAtomicXor_01O10D00D - 3168, // imageAtomicXor_01P10D00D - 3170, // imageAtomicXor_01Q10D00D - 3172, // imageAtomicXor_01a10D00D - 3174, // imageAtomicXor_01b10D00D - 3176, // imageAtomicXor_01c10D00D - 3178, // imageAtomicXor_01R10D00D00D - 3180, // imageAtomicXor_01S10D00D00D - 3182, // imageAtomicXor_01T10D00D00D - 3184, // imageAtomicXor_01U20D00D00D - 3186, // imageAtomicXor_01V20D00D00D - 3188, // imageAtomicXor_01W20D00D00D - 3190, // imageAtomicExchange_00z10D00E - 3192, // imageAtomicExchange_01A10D00E - 3194, // imageAtomicExchange_01B10D00E - 3196, // imageAtomicExchange_01C20D00E - 3198, // imageAtomicExchange_01D20D00E - 3200, // imageAtomicExchange_01E20D00E - 3202, // imageAtomicExchange_01I20D00E - 3204, // imageAtomicExchange_01J20D00E - 3206, // imageAtomicExchange_01K20D00E - 3208, // imageAtomicExchange_01d00D00E - 3210, // imageAtomicExchange_01e00D00E - 3212, // imageAtomicExchange_01f00D00E - 3214, // imageAtomicExchange_01F20D00E - 3216, // imageAtomicExchange_01G20D00E - 3218, // imageAtomicExchange_01H20D00E - 3220, // imageAtomicExchange_01X20D00E - 3222, // imageAtomicExchange_01Y20D00E - 3224, // imageAtomicExchange_01Z20D00E - 3226, // imageAtomicExchange_01L00D00E - 3228, // imageAtomicExchange_01M00D00E - 3230, // imageAtomicExchange_01N00D00E - 3232, // imageAtomicExchange_01O10D00E - 3234, // imageAtomicExchange_01P10D00E - 3236, // imageAtomicExchange_01Q10D00E - 3238, // imageAtomicExchange_01a10D00E - 3240, // imageAtomicExchange_01b10D00E - 3242, // imageAtomicExchange_01c10D00E - 3244, // imageAtomicExchange_01R10D00D00E - 3246, // imageAtomicExchange_01S10D00D00E - 3248, // imageAtomicExchange_01T10D00D00E - 3250, // imageAtomicExchange_01U20D00D00E - 3252, // imageAtomicExchange_01V20D00D00E - 3254, // imageAtomicExchange_01W20D00D00E - 3256, // imageAtomicExchange_00z10D00D - 3258, // imageAtomicExchange_01A10D00D - 3260, // imageAtomicExchange_01B10D00D - 3262, // imageAtomicExchange_01C20D00D - 3264, // imageAtomicExchange_01D20D00D - 3266, // imageAtomicExchange_01E20D00D - 3268, // imageAtomicExchange_01I20D00D - 3270, // imageAtomicExchange_01J20D00D - 3272, // imageAtomicExchange_01K20D00D - 3274, // imageAtomicExchange_01d00D00D - 3276, // imageAtomicExchange_01e00D00D - 3278, // imageAtomicExchange_01f00D00D - 3280, // imageAtomicExchange_01F20D00D - 3282, // imageAtomicExchange_01G20D00D - 3284, // imageAtomicExchange_01H20D00D - 3286, // imageAtomicExchange_01X20D00D - 3288, // imageAtomicExchange_01Y20D00D - 3290, // imageAtomicExchange_01Z20D00D - 3292, // imageAtomicExchange_01L00D00D - 3294, // imageAtomicExchange_01M00D00D - 3296, // imageAtomicExchange_01N00D00D - 3298, // imageAtomicExchange_01O10D00D - 3300, // imageAtomicExchange_01P10D00D - 3302, // imageAtomicExchange_01Q10D00D - 3304, // imageAtomicExchange_01a10D00D - 3306, // imageAtomicExchange_01b10D00D - 3308, // imageAtomicExchange_01c10D00D - 3310, // imageAtomicExchange_01R10D00D00D - 3312, // imageAtomicExchange_01S10D00D00D - 3314, // imageAtomicExchange_01T10D00D00D - 3316, // imageAtomicExchange_01U20D00D00D - 3318, // imageAtomicExchange_01V20D00D00D - 3320, // imageAtomicExchange_01W20D00D00D - 3322, // imageAtomicExchange_00z10D00B - 3324, // imageAtomicExchange_01A10D00B - 3326, // imageAtomicExchange_01B10D00B - 3328, // imageAtomicExchange_01C20D00B - 3330, // imageAtomicExchange_01D20D00B - 3332, // imageAtomicExchange_01E20D00B - 3334, // imageAtomicExchange_01I20D00B - 3336, // imageAtomicExchange_01J20D00B - 3338, // imageAtomicExchange_01K20D00B - 3340, // imageAtomicExchange_01d00D00B - 3342, // imageAtomicExchange_01e00D00B - 3344, // imageAtomicExchange_01f00D00B - 3346, // imageAtomicExchange_01F20D00B - 3348, // imageAtomicExchange_01G20D00B - 3350, // imageAtomicExchange_01H20D00B - 3352, // imageAtomicExchange_01X20D00B - 3354, // imageAtomicExchange_01Y20D00B - 3356, // imageAtomicExchange_01Z20D00B - 3358, // imageAtomicExchange_01L00D00B - 3360, // imageAtomicExchange_01M00D00B - 3362, // imageAtomicExchange_01N00D00B - 3364, // imageAtomicExchange_01O10D00B - 3366, // imageAtomicExchange_01P10D00B - 3368, // imageAtomicExchange_01Q10D00B - 3370, // imageAtomicExchange_01a10D00B - 3372, // imageAtomicExchange_01b10D00B - 3374, // imageAtomicExchange_01c10D00B - 3376, // imageAtomicExchange_01R10D00D00B - 3378, // imageAtomicExchange_01S10D00D00B - 3380, // imageAtomicExchange_01T10D00D00B - 3382, // imageAtomicExchange_01U20D00D00B - 3384, // imageAtomicExchange_01V20D00D00B - 3386, // imageAtomicExchange_01W20D00D00B - 3388, // imageAtomicCompSwap_00z10D00E00E - 3390, // imageAtomicCompSwap_01A10D00E00E - 3392, // imageAtomicCompSwap_01B10D00E00E - 3394, // imageAtomicCompSwap_01C20D00E00E - 3396, // imageAtomicCompSwap_01D20D00E00E - 3398, // imageAtomicCompSwap_01E20D00E00E - 3400, // imageAtomicCompSwap_01I20D00E00E - 3402, // imageAtomicCompSwap_01J20D00E00E - 3404, // imageAtomicCompSwap_01K20D00E00E - 3406, // imageAtomicCompSwap_01d00D00E00E - 3408, // imageAtomicCompSwap_01e00D00E00E - 3410, // imageAtomicCompSwap_01f00D00E00E - 3412, // imageAtomicCompSwap_01F20D00E00E - 3414, // imageAtomicCompSwap_01G20D00E00E - 3416, // imageAtomicCompSwap_01H20D00E00E - 3418, // imageAtomicCompSwap_01X20D00E00E - 3420, // imageAtomicCompSwap_01Y20D00E00E - 3422, // imageAtomicCompSwap_01Z20D00E00E - 3424, // imageAtomicCompSwap_01L00D00E00E - 3426, // imageAtomicCompSwap_01M00D00E00E - 3428, // imageAtomicCompSwap_01N00D00E00E - 3430, // imageAtomicCompSwap_01O10D00E00E - 3432, // imageAtomicCompSwap_01P10D00E00E - 3434, // imageAtomicCompSwap_01Q10D00E00E - 3436, // imageAtomicCompSwap_01a10D00E00E - 3438, // imageAtomicCompSwap_01b10D00E00E - 3440, // imageAtomicCompSwap_01c10D00E00E - 3442, // imageAtomicCompSwap_01R10D00D00E00E - 3444, // imageAtomicCompSwap_01S10D00D00E00E - 3446, // imageAtomicCompSwap_01T10D00D00E00E - 3448, // imageAtomicCompSwap_01U20D00D00E00E - 3450, // imageAtomicCompSwap_01V20D00D00E00E - 3452, // imageAtomicCompSwap_01W20D00D00E00E - 3454, // imageAtomicCompSwap_00z10D00D00D - 3456, // imageAtomicCompSwap_01A10D00D00D - 3458, // imageAtomicCompSwap_01B10D00D00D - 3460, // imageAtomicCompSwap_01C20D00D00D - 3462, // imageAtomicCompSwap_01D20D00D00D - 3464, // imageAtomicCompSwap_01E20D00D00D - 3466, // imageAtomicCompSwap_01I20D00D00D - 3468, // imageAtomicCompSwap_01J20D00D00D - 3470, // imageAtomicCompSwap_01K20D00D00D - 3472, // imageAtomicCompSwap_01d00D00D00D - 3474, // imageAtomicCompSwap_01e00D00D00D - 3476, // imageAtomicCompSwap_01f00D00D00D - 3478, // imageAtomicCompSwap_01F20D00D00D - 3480, // imageAtomicCompSwap_01G20D00D00D - 3482, // imageAtomicCompSwap_01H20D00D00D - 3484, // imageAtomicCompSwap_01X20D00D00D - 3486, // imageAtomicCompSwap_01Y20D00D00D - 3488, // imageAtomicCompSwap_01Z20D00D00D - 3490, // imageAtomicCompSwap_01L00D00D00D - 3492, // imageAtomicCompSwap_01M00D00D00D - 3494, // imageAtomicCompSwap_01N00D00D00D - 3496, // imageAtomicCompSwap_01O10D00D00D - 3498, // imageAtomicCompSwap_01P10D00D00D - 3500, // imageAtomicCompSwap_01Q10D00D00D - 3502, // imageAtomicCompSwap_01a10D00D00D - 3504, // imageAtomicCompSwap_01b10D00D00D - 3506, // imageAtomicCompSwap_01c10D00D00D - 3508, // imageAtomicCompSwap_01R10D00D00D00D - 3510, // imageAtomicCompSwap_01S10D00D00D00D - 3512, // imageAtomicCompSwap_01T10D00D00D00D - 3514, // imageAtomicCompSwap_01U20D00D00D00D - 3516, // imageAtomicCompSwap_01V20D00D00D00D - 3518, // imageAtomicCompSwap_01W20D00D00D00D - 3520, // noise1_00B - 3521, // noise1_10B - 3522, // noise1_20B - 3523, // noise1_30B - 3524, // noise2_00B - 3525, // noise2_10B - 3526, // noise2_20B - 3527, // noise2_30B - 3528, // noise3_00B - 3529, // noise3_10B - 3530, // noise3_20B - 3531, // noise3_30B - 3532, // noise4_00B - 3533, // noise4_10B - 3534, // noise4_20B - 3535, // noise4_30B - 3536, // memoryBarrier_ - 3538, // memoryBarrierAtomicCounter_ - 3540, // memoryBarrierBuffer_ - 3542, // memoryBarrierImage_ - 3544, // barrier_ - 3548, // memoryBarrierShared_ - 3550, // groupMemoryBarrier_ - 3552, // EmitVertex_ - 3555, // EndPrimitive_ - 3558, // EmitStreamVertex_00D - 3559, // EndStreamPrimitive_00D - 3560, // subpassLoad_01g - 3561, // subpassLoad_01h - 3562, // subpassLoad_01i - 3563, // subpassLoad_01j00D - 3564, // subpassLoad_01k00D - 3565, // subpassLoad_01l00D - 3566, // anyInvocation_00F - 3567, // allInvocations_00F - 3568, // allInvocationsEqual_00F - 3569, // textureVideoWEBGL_00y10B - 3571, // texture_00y10B - 3573, // gl_DepthRangeParameters - 3575, // gl_DepthRange - 3577, // gl_NumSamples - 3580, // gl_MaxVertexAttribs - 3582, // gl_MaxVertexUniformVectors - 3584, // gl_MaxVertexTextureImageUnits - 3586, // gl_MaxCombinedTextureImageUnits - 3588, // gl_MaxTextureImageUnits - 3590, // gl_MaxFragmentUniformVectors - 3592, // gl_MaxVaryingVectors - 3594, // gl_MaxDrawBuffers - 3596, // gl_MaxDualSourceDrawBuffersEXT - 3597, // gl_MaxVertexOutputVectors - 3599, // gl_MaxFragmentInputVectors - 3601, // gl_MinProgramTexelOffset - 3603, // gl_MaxProgramTexelOffset - 3605, // gl_MaxImageUnits - 3607, // gl_MaxVertexImageUniforms - 3609, // gl_MaxFragmentImageUniforms - 3611, // gl_MaxComputeImageUniforms - 3613, // gl_MaxCombinedImageUniforms - 3615, // gl_MaxCombinedShaderOutputResources - 3617, // gl_MaxComputeWorkGroupCount - 3619, // gl_MaxComputeWorkGroupSize - 3621, // gl_MaxComputeUniformComponents - 3623, // gl_MaxComputeTextureImageUnits - 3625, // gl_MaxComputeAtomicCounters - 3627, // gl_MaxComputeAtomicCounterBuffers - 3629, // gl_MaxVertexAtomicCounters - 3631, // gl_MaxFragmentAtomicCounters - 3633, // gl_MaxCombinedAtomicCounters - 3635, // gl_MaxAtomicCounterBindings - 3637, // gl_MaxVertexAtomicCounterBuffers - 3639, // gl_MaxFragmentAtomicCounterBuffers - 3641, // gl_MaxCombinedAtomicCounterBuffers - 3643, // gl_MaxAtomicCounterBufferSize - 3645, // gl_MaxGeometryInputComponents - 3648, // gl_MaxGeometryOutputComponents - 3651, // gl_MaxGeometryImageUniforms - 3654, // gl_MaxGeometryTextureImageUnits - 3657, // gl_MaxGeometryOutputVertices - 3660, // gl_MaxGeometryTotalOutputComponents - 3663, // gl_MaxGeometryUniformComponents - 3666, // gl_MaxGeometryAtomicCounters - 3669, // gl_MaxGeometryAtomicCounterBuffers - 3672, // gl_MaxTessControlInputComponents - 3675, // gl_MaxTessControlOutputComponents - 3678, // gl_MaxTessControlTextureImageUnits - 3681, // gl_MaxTessControlUniformComponents - 3684, // gl_MaxTessControlTotalOutputComponents - 3687, // gl_MaxTessControlImageUniforms - 3690, // gl_MaxTessControlAtomicCounters - 3693, // gl_MaxTessControlAtomicCounterBuffers - 3696, // gl_MaxTessPatchComponents - 3699, // gl_MaxPatchVertices - 3702, // gl_MaxTessGenLevel - 3705, // gl_MaxTessEvaluationInputComponents - 3708, // gl_MaxTessEvaluationOutputComponents - 3711, // gl_MaxTessEvaluationTextureImageUnits - 3714, // gl_MaxTessEvaluationUniformComponents - 3717, // gl_MaxTessEvaluationImageUniforms - 3720, // gl_MaxTessEvaluationAtomicCounters - 3723, // gl_MaxTessEvaluationAtomicCounterBuffers - 3726, // gl_MaxSamples - 3729, // gl_MaxClipDistances - 3730, // gl_MaxCullDistances - 3731, // gl_MaxCombinedClipAndCullDistances - 3732, // gl_FragCoord - 3734, // gl_FrontFacing - 3736, // gl_PointCoord - 3738, // gl_FragColor - 3740, // gl_FragData - 3742, // gl_FragDepth - 3744, // gl_HelperInvocation - 3746, // gl_SecondaryFragColorEXT - 3747, // gl_SecondaryFragDataEXT - 3748, // gl_FragDepthEXT - 3749, // gl_LastFragData - 3752, // gl_LastFragColor - 3753, // gl_LastFragColorARM - 3754, // gl_PrimitiveID - 3766, // gl_Layer - 3772, // gl_SampleID - 3775, // gl_SamplePosition - 3778, // gl_SampleMaskIn - 3781, // gl_SampleMask - 3784, // gl_CullDistance - 3786, // gl_ClipDistance - 3788, // gl_Position - 3799, // gl_PointSize - 3801, // gl_InstanceID - 3803, // Empty - 3803, // gl_VertexID - 3805, // Empty - 3805, // Empty - 3805, // gl_DrawID - 3806, // gl_BaseVertex - 3807, // gl_BaseInstance - 3808, // angle_BaseVertex - 3809, // angle_BaseInstance - 3810, // gl_NumWorkGroups - 3812, // gl_WorkGroupSize - 3814, // gl_WorkGroupID - 3816, // gl_LocalInvocationID - 3818, // gl_GlobalInvocationID - 3820, // gl_LocalInvocationIndex - 3822, // gl_PrimitiveIDIn - 3825, // gl_InvocationID - 3831, // gl_PerVertex - 3840, // gl_in - 3849, // gl_PatchVerticesIn - 3855, // gl_TessLevelOuter - 3861, // gl_TessLevelInner - 3867, // gl_out - 3873, // gl_TessCoord - 3875, // gl_ViewID_OVR -}; - -using Ext = TExtension; - -// Flat array of all unmangled name identifiers. -constexpr UnmangledEntry unmangled[] = { - {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"abs", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"sign", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"floor", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"round", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"fract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"mod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"mix", Ext::UNDEFINED, Ext::UNDEFINED, 310, 450, Shader::ALL}, - {"step", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"modf", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL}, - {"fma", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL}, - {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL}, - {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL}, - {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"packDouble2x32", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"unpackDouble2x32", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"length", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"distance", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"dot", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"cross", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"refract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"ftransform", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL}, - {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL}, - {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL}, - {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}, - {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL}, - {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT}, - {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT}, - {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL}, - {"texture1D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"texture1DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"shadow1D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"shadow1DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"shadow2D", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"shadow2DProj", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL}, - {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL}, - {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT}, - {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"shadow2DEXT", Ext::EXT_shadow_samplers, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"shadow2DProjEXT", Ext::EXT_shadow_samplers, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT}, - {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX}, - {"texture1DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"texture1DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"shadow1DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"shadow1DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"shadow2DLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"shadow2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::VERTEX}, - {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 140, Shader::ALL}, - {"textureQueryLevels", Ext::UNDEFINED, Ext::UNDEFINED, -1, 430, Shader::ALL}, - {"textureSamples", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL}, - {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"textureQueryLod", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::FRAGMENT}, - {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::FRAGMENT}, - {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::FRAGMENT}, - {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 130, Shader::ALL}, - {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL}, - {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"textureGatherOffsets", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::ALL}, - {"dFdxFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"dFdyFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"dFdxCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"dFdyCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"fwidthFine", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"fwidthCoarse", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::FRAGMENT}, - {"interpolateAtCentroid", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, - Shader::FRAGMENT}, - {"interpolateAtSample", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, - Shader::FRAGMENT}, - {"interpolateAtOffset", Ext::OES_shader_multisample_interpolation, Ext::UNDEFINED, 300, -1, - Shader::FRAGMENT}, - {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"atomicCounterAdd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterSubtract", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterMin", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterMax", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterAnd", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterOr", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterXor", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterExchange", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicCounterCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, -1, 430, Shader::ALL}, - {"imageSamples", Ext::UNDEFINED, Ext::UNDEFINED, -1, 450, Shader::ALL}, - {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL}, - {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 420, Shader::ALL}, - {"imageAtomicAdd", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicMin", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicMax", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicAnd", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicOr", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicXor", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicExchange", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"imageAtomicCompSwap", Ext::OES_shader_image_atomic, Ext::UNDEFINED, 310, -1, Shader::ALL}, - {"noise1", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"noise2", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"noise3", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"noise4", Ext::UNDEFINED, Ext::UNDEFINED, -1, 0, Shader::ALL}, - {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL}, - {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL}, - {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 320, -1, Shader::TESS_CONTROL_EXT}, - {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE}, - {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE}, - {"EmitVertex", Ext::UNDEFINED, Ext::UNDEFINED, -1, 150, Shader::GEOMETRY}, - {"EndPrimitive", Ext::UNDEFINED, Ext::UNDEFINED, -1, 150, Shader::GEOMETRY}, - {"EmitStreamVertex", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::GEOMETRY}, - {"EndStreamPrimitive", Ext::UNDEFINED, Ext::UNDEFINED, -1, 400, Shader::GEOMETRY}, - {"subpassLoad", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"anyInvocation", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"allInvocations", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"allInvocationsEqual", Ext::UNDEFINED, Ext::UNDEFINED, -1, 460, Shader::ALL}, - {"textureVideoWEBGL", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL}}; - -} // namespace BuiltInArray - -void TSymbolTable::initializeBuiltInVariables(sh::GLenum shaderType, - ShShaderSpec spec, - const ShBuiltInResources &resources) -{ - const TSourceLoc zeroSourceLoc = {0, 0, 0, 0}; - TFieldList *fields_gl_DepthRangeParameters = new TFieldList(); - fields_gl_DepthRangeParameters->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::near, zeroSourceLoc, - SymbolType::BuiltIn)); - fields_gl_DepthRangeParameters->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::far, zeroSourceLoc, - SymbolType::BuiltIn)); - fields_gl_DepthRangeParameters->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::diff, zeroSourceLoc, - SymbolType::BuiltIn)); - TStructure *gl_DepthRangeParameters = - new TStructure(BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters, - TExtension::UNDEFINED, fields_gl_DepthRangeParameters); - m_gl_DepthRangeParameters = gl_DepthRangeParameters; - TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false); - type_gl_DepthRange->setQualifier(EvqUniform); - type_gl_DepthRange->realize(); - m_gl_DepthRange = new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_DepthRange); - m_gl_MaxVertexAttribs = new TVariable( - BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexAttribs); - static_cast(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray); - } - m_gl_MaxVertexUniformVectors = - new TVariable(BuiltInId::gl_MaxVertexUniformVectors, - BuiltInName::gl_MaxVertexUniformVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexUniformVectors); - static_cast(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray); - } - m_gl_MaxVertexTextureImageUnits = - new TVariable(BuiltInId::gl_MaxVertexTextureImageUnits, - BuiltInName::gl_MaxVertexTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexTextureImageUnits); - static_cast(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxCombinedTextureImageUnits = - new TVariable(BuiltInId::gl_MaxCombinedTextureImageUnits, - BuiltInName::gl_MaxCombinedTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits); - static_cast(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxTextureImageUnits = - new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTextureImageUnits); - static_cast(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxFragmentUniformVectors = - new TVariable(BuiltInId::gl_MaxFragmentUniformVectors, - BuiltInName::gl_MaxFragmentUniformVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxFragmentUniformVectors); - static_cast(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray); - } - m_gl_MaxVaryingVectors = new TVariable( - BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVaryingVectors); - static_cast(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray); - } - m_gl_MaxDrawBuffers = new TVariable( - BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxDrawBuffers); - static_cast(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray); - } - m_gl_MaxDualSourceDrawBuffersEXT = new TVariable( - BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT, - SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers); - static_cast(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray); - } - m_gl_MaxVertexOutputVectors = - new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexOutputVectors); - static_cast(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray); - } - m_gl_MaxFragmentInputVectors = - new TVariable(BuiltInId::gl_MaxFragmentInputVectors, - BuiltInName::gl_MaxFragmentInputVectors, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxFragmentInputVectors); - static_cast(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray); - } - m_gl_MinProgramTexelOffset = - new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MinProgramTexelOffset); - static_cast(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray); - } - m_gl_MaxProgramTexelOffset = - new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxProgramTexelOffset); - static_cast(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray); - } - m_gl_MaxImageUnits = new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxImageUnits); - static_cast(m_gl_MaxImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxVertexImageUniforms = - new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexImageUniforms); - static_cast(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxFragmentImageUniforms = - new TVariable(BuiltInId::gl_MaxFragmentImageUniforms, - BuiltInName::gl_MaxFragmentImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxFragmentImageUniforms); - static_cast(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxComputeImageUniforms = - new TVariable(BuiltInId::gl_MaxComputeImageUniforms, - BuiltInName::gl_MaxComputeImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxComputeImageUniforms); - static_cast(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxCombinedImageUniforms = - new TVariable(BuiltInId::gl_MaxCombinedImageUniforms, - BuiltInName::gl_MaxCombinedImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedImageUniforms); - static_cast(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxCombinedShaderOutputResources = - new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources, - BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources); - static_cast(m_gl_MaxCombinedShaderOutputResources) - ->shareConstPointer(unionArray); - } - m_gl_MaxComputeWorkGroupCount = - new TVariable(BuiltInId::gl_MaxComputeWorkGroupCount, - BuiltInName::gl_MaxComputeWorkGroupCount, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[3]; - for (size_t index = 0u; index < 3; ++index) - { - unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]); - } - static_cast(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray); - } - m_gl_MaxComputeWorkGroupSize = - new TVariable(BuiltInId::gl_MaxComputeWorkGroupSize, - BuiltInName::gl_MaxComputeWorkGroupSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[3]; - for (size_t index = 0u; index < 3; ++index) - { - unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]); - } - static_cast(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray); - } - m_gl_MaxComputeUniformComponents = - new TVariable(BuiltInId::gl_MaxComputeUniformComponents, - BuiltInName::gl_MaxComputeUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxComputeUniformComponents); - static_cast(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray); - } - m_gl_MaxComputeTextureImageUnits = - new TVariable(BuiltInId::gl_MaxComputeTextureImageUnits, - BuiltInName::gl_MaxComputeTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxComputeTextureImageUnits); - static_cast(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxComputeAtomicCounters = - new TVariable(BuiltInId::gl_MaxComputeAtomicCounters, - BuiltInName::gl_MaxComputeAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxComputeAtomicCounters); - static_cast(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxComputeAtomicCounterBuffers = - new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers, - BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers); - static_cast(m_gl_MaxComputeAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxVertexAtomicCounters = - new TVariable(BuiltInId::gl_MaxVertexAtomicCounters, - BuiltInName::gl_MaxVertexAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexAtomicCounters); - static_cast(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxFragmentAtomicCounters = - new TVariable(BuiltInId::gl_MaxFragmentAtomicCounters, - BuiltInName::gl_MaxFragmentAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxFragmentAtomicCounters); - static_cast(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxCombinedAtomicCounters = - new TVariable(BuiltInId::gl_MaxCombinedAtomicCounters, - BuiltInName::gl_MaxCombinedAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedAtomicCounters); - static_cast(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxAtomicCounterBindings = - new TVariable(BuiltInId::gl_MaxAtomicCounterBindings, - BuiltInName::gl_MaxAtomicCounterBindings, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxAtomicCounterBindings); - static_cast(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray); - } - m_gl_MaxVertexAtomicCounterBuffers = - new TVariable(BuiltInId::gl_MaxVertexAtomicCounterBuffers, - BuiltInName::gl_MaxVertexAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers); - static_cast(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray); - } - m_gl_MaxFragmentAtomicCounterBuffers = - new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers, - BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers); - static_cast(m_gl_MaxFragmentAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxCombinedAtomicCounterBuffers = - new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers, - BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers); - static_cast(m_gl_MaxCombinedAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxAtomicCounterBufferSize = - new TVariable(BuiltInId::gl_MaxAtomicCounterBufferSize, - BuiltInName::gl_MaxAtomicCounterBufferSize, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize); - static_cast(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryInputComponents = new TVariable( - BuiltInId::gl_MaxGeometryInputComponents, BuiltInName::gl_MaxGeometryInputComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryInputComponents); - static_cast(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryInputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryInputComponentsES3_2, - BuiltInName::gl_MaxGeometryInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryInputComponents); - static_cast(m_gl_MaxGeometryInputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryOutputComponents = new TVariable( - BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryOutputComponents); - static_cast(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryOutputComponentsES3_2, - BuiltInName::gl_MaxGeometryOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryOutputComponents); - static_cast(m_gl_MaxGeometryOutputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryImageUniforms = new TVariable( - BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryImageUniforms); - static_cast(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryImageUniformsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryImageUniformsES3_2, - BuiltInName::gl_MaxGeometryImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryImageUniforms); - static_cast(m_gl_MaxGeometryImageUniformsES3_2)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryTextureImageUnits = new TVariable( - BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits); - static_cast(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryTextureImageUnitsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryTextureImageUnitsES3_2, - BuiltInName::gl_MaxGeometryTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits); - static_cast(m_gl_MaxGeometryTextureImageUnitsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryOutputVertices = new TVariable( - BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryOutputVertices); - static_cast(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryOutputVerticesES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryOutputVerticesES3_2, - BuiltInName::gl_MaxGeometryOutputVertices, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryOutputVertices); - static_cast(m_gl_MaxGeometryOutputVerticesES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryTotalOutputComponents = new TVariable( - BuiltInId::gl_MaxGeometryTotalOutputComponents, - BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents); - static_cast(m_gl_MaxGeometryTotalOutputComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryTotalOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryTotalOutputComponentsES3_2, - BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents); - static_cast(m_gl_MaxGeometryTotalOutputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryUniformComponents = new TVariable( - BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryUniformComponents); - static_cast(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryUniformComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryUniformComponentsES3_2, - BuiltInName::gl_MaxGeometryUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryUniformComponents); - static_cast(m_gl_MaxGeometryUniformComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryAtomicCounters = new TVariable( - BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters, - SymbolType::BuiltIn, TExtension::EXT_geometry_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryAtomicCounters); - static_cast(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxGeometryAtomicCountersES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryAtomicCountersES3_2, - BuiltInName::gl_MaxGeometryAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryAtomicCounters); - static_cast(m_gl_MaxGeometryAtomicCountersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxGeometryAtomicCounterBuffers, - BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers); - static_cast(m_gl_MaxGeometryAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxGeometryAtomicCounterBuffersES3_2 = - new TVariable(BuiltInId::gl_MaxGeometryAtomicCounterBuffersES3_2, - BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers); - static_cast(m_gl_MaxGeometryAtomicCounterBuffersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlInputComponents = new TVariable( - BuiltInId::gl_MaxTessControlInputComponents, BuiltInName::gl_MaxTessControlInputComponents, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlInputComponents); - static_cast(m_gl_MaxTessControlInputComponents)->shareConstPointer(unionArray); - } - m_gl_MaxTessControlInputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlInputComponentsES3_2, - BuiltInName::gl_MaxTessControlInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlInputComponents); - static_cast(m_gl_MaxTessControlInputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlOutputComponents = new TVariable( - BuiltInId::gl_MaxTessControlOutputComponents, - BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlOutputComponents); - static_cast(m_gl_MaxTessControlOutputComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlOutputComponentsES3_2, - BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlOutputComponents); - static_cast(m_gl_MaxTessControlOutputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlTextureImageUnits = new TVariable( - BuiltInId::gl_MaxTessControlTextureImageUnits, - BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits); - static_cast(m_gl_MaxTessControlTextureImageUnits) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlTextureImageUnitsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlTextureImageUnitsES3_2, - BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits); - static_cast(m_gl_MaxTessControlTextureImageUnitsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlUniformComponents = new TVariable( - BuiltInId::gl_MaxTessControlUniformComponents, - BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlUniformComponents); - static_cast(m_gl_MaxTessControlUniformComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlUniformComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlUniformComponentsES3_2, - BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlUniformComponents); - static_cast(m_gl_MaxTessControlUniformComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlTotalOutputComponents = new TVariable( - BuiltInId::gl_MaxTessControlTotalOutputComponents, - BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents); - static_cast(m_gl_MaxTessControlTotalOutputComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlTotalOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlTotalOutputComponentsES3_2, - BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents); - static_cast(m_gl_MaxTessControlTotalOutputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlImageUniforms = new TVariable( - BuiltInId::gl_MaxTessControlImageUniforms, BuiltInName::gl_MaxTessControlImageUniforms, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlImageUniforms); - static_cast(m_gl_MaxTessControlImageUniforms)->shareConstPointer(unionArray); - } - m_gl_MaxTessControlImageUniformsES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlImageUniformsES3_2, - BuiltInName::gl_MaxTessControlImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlImageUniforms); - static_cast(m_gl_MaxTessControlImageUniformsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlAtomicCounters = new TVariable( - BuiltInId::gl_MaxTessControlAtomicCounters, BuiltInName::gl_MaxTessControlAtomicCounters, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlAtomicCounters); - static_cast(m_gl_MaxTessControlAtomicCounters)->shareConstPointer(unionArray); - } - m_gl_MaxTessControlAtomicCountersES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlAtomicCountersES3_2, - BuiltInName::gl_MaxTessControlAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlAtomicCounters); - static_cast(m_gl_MaxTessControlAtomicCountersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxTessControlAtomicCounterBuffers, - BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers); - static_cast(m_gl_MaxTessControlAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessControlAtomicCounterBuffersES3_2 = - new TVariable(BuiltInId::gl_MaxTessControlAtomicCounterBuffersES3_2, - BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers); - static_cast(m_gl_MaxTessControlAtomicCounterBuffersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessPatchComponents = - new TVariable(BuiltInId::gl_MaxTessPatchComponents, BuiltInName::gl_MaxTessPatchComponents, - SymbolType::BuiltIn, TExtension::EXT_tessellation_shader, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessPatchComponents); - static_cast(m_gl_MaxTessPatchComponents)->shareConstPointer(unionArray); - } - m_gl_MaxTessPatchComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessPatchComponentsES3_2, - BuiltInName::gl_MaxTessPatchComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessPatchComponents); - static_cast(m_gl_MaxTessPatchComponentsES3_2)->shareConstPointer(unionArray); - } - m_gl_MaxPatchVertices = new TVariable( - BuiltInId::gl_MaxPatchVertices, BuiltInName::gl_MaxPatchVertices, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxPatchVertices); - static_cast(m_gl_MaxPatchVertices)->shareConstPointer(unionArray); - } - m_gl_MaxPatchVerticesES3_2 = new TVariable( - BuiltInId::gl_MaxPatchVerticesES3_2, BuiltInName::gl_MaxPatchVertices, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxPatchVertices); - static_cast(m_gl_MaxPatchVerticesES3_2)->shareConstPointer(unionArray); - } - m_gl_MaxTessGenLevel = new TVariable( - BuiltInId::gl_MaxTessGenLevel, BuiltInName::gl_MaxTessGenLevel, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessGenLevel); - static_cast(m_gl_MaxTessGenLevel)->shareConstPointer(unionArray); - } - m_gl_MaxTessGenLevelES3_2 = new TVariable( - BuiltInId::gl_MaxTessGenLevelES3_2, BuiltInName::gl_MaxTessGenLevel, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessGenLevel); - static_cast(m_gl_MaxTessGenLevelES3_2)->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationInputComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationInputComponents, - BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents); - static_cast(m_gl_MaxTessEvaluationInputComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationInputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationInputComponentsES3_2, - BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents); - static_cast(m_gl_MaxTessEvaluationInputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationOutputComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationOutputComponents, - BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents); - static_cast(m_gl_MaxTessEvaluationOutputComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationOutputComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationOutputComponentsES3_2, - BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents); - static_cast(m_gl_MaxTessEvaluationOutputComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationTextureImageUnits = new TVariable( - BuiltInId::gl_MaxTessEvaluationTextureImageUnits, - BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits); - static_cast(m_gl_MaxTessEvaluationTextureImageUnits) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationTextureImageUnitsES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationTextureImageUnitsES3_2, - BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits); - static_cast(m_gl_MaxTessEvaluationTextureImageUnitsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationUniformComponents = new TVariable( - BuiltInId::gl_MaxTessEvaluationUniformComponents, - BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents); - static_cast(m_gl_MaxTessEvaluationUniformComponents) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationUniformComponentsES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationUniformComponentsES3_2, - BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents); - static_cast(m_gl_MaxTessEvaluationUniformComponentsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationImageUniforms = new TVariable( - BuiltInId::gl_MaxTessEvaluationImageUniforms, - BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms); - static_cast(m_gl_MaxTessEvaluationImageUniforms) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationImageUniformsES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationImageUniformsES3_2, - BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms); - static_cast(m_gl_MaxTessEvaluationImageUniformsES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationAtomicCounters = new TVariable( - BuiltInId::gl_MaxTessEvaluationAtomicCounters, - BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters); - static_cast(m_gl_MaxTessEvaluationAtomicCounters) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationAtomicCountersES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCountersES3_2, - BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters); - static_cast(m_gl_MaxTessEvaluationAtomicCountersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationAtomicCounterBuffers = new TVariable( - BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffers, - BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers); - static_cast(m_gl_MaxTessEvaluationAtomicCounterBuffers) - ->shareConstPointer(unionArray); - } - m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2 = - new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffersES3_2, - BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn, - TExtension::UNDEFINED, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers); - static_cast(m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2) - ->shareConstPointer(unionArray); - } - m_gl_MaxSamples = new TVariable(BuiltInId::gl_MaxSamples, BuiltInName::gl_MaxSamples, - SymbolType::BuiltIn, TExtension::OES_sample_variables, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxSamples); - static_cast(m_gl_MaxSamples)->shareConstPointer(unionArray); - } - m_gl_MaxSamplesES3_2 = new TVariable(BuiltInId::gl_MaxSamplesES3_2, BuiltInName::gl_MaxSamples, - SymbolType::BuiltIn, TExtension::UNDEFINED, - StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxSamples); - static_cast(m_gl_MaxSamplesES3_2)->shareConstPointer(unionArray); - } - m_gl_MaxClipDistancesAPPLE = new TVariable( - BuiltInId::gl_MaxClipDistancesAPPLE, BuiltInName::gl_MaxClipDistances, SymbolType::BuiltIn, - TExtension::APPLE_clip_distance, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxClipDistances); - static_cast(m_gl_MaxClipDistancesAPPLE)->shareConstPointer(unionArray); - } - m_gl_MaxCullDistancesEXT = new TVariable( - BuiltInId::gl_MaxCullDistancesEXT, BuiltInName::gl_MaxCullDistances, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCullDistances); - static_cast(m_gl_MaxCullDistancesEXT)->shareConstPointer(unionArray); - } - m_gl_MaxCombinedClipAndCullDistancesEXT = new TVariable( - BuiltInId::gl_MaxCombinedClipAndCullDistancesEXT, - BuiltInName::gl_MaxCombinedClipAndCullDistances, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, StaticType::Get()); - { - TConstantUnion *unionArray = new TConstantUnion[1]; - unionArray[0].setIConst(resources.MaxCombinedClipAndCullDistances); - static_cast(m_gl_MaxCombinedClipAndCullDistancesEXT) - ->shareConstPointer(unionArray); - } - TType *type_gl_FragData = new TType(EbtFloat, EbpMedium, EvqFragData, 4); - if (spec != SH_WEBGL2_SPEC && spec != SH_WEBGL3_SPEC) - { - type_gl_FragData->makeArray(resources.MaxDrawBuffers); - } - else - { - type_gl_FragData->makeArray(1u); - } - type_gl_FragData->realize(); - m_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData); - TType *type_gl_SecondaryFragDataEXT = - new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1); - type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers); - type_gl_SecondaryFragDataEXT->realize(); - m_gl_SecondaryFragDataEXT = new TVariable( - BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT, - SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT); - TType *type_gl_FragDepthEXT = new TType( - EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1); - type_gl_FragDepthEXT->realize(); - m_gl_FragDepthEXT = - new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn, - TExtension::EXT_frag_depth, type_gl_FragDepthEXT); - TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); - type_gl_LastFragData->makeArray(resources.MaxDrawBuffers); - type_gl_LastFragData->realize(); - m_gl_LastFragData = - new TVariable(BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::EXT_shader_framebuffer_fetch, type_gl_LastFragData); - TType *type_gl_LastFragDataNonCoherent = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); - type_gl_LastFragDataNonCoherent->makeArray(resources.MaxDrawBuffers); - type_gl_LastFragDataNonCoherent->realize(); - m_gl_LastFragDataNonCoherent = new TVariable( - BuiltInId::gl_LastFragDataNonCoherent, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::EXT_shader_framebuffer_fetch_non_coherent, type_gl_LastFragDataNonCoherent); - TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1); - type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers); - type_gl_LastFragDataNV->realize(); - m_gl_LastFragDataNV = new TVariable( - BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn, - TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV); - TType *type_gl_SampleMaskIn = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1); - type_gl_SampleMaskIn->makeArray((resources.MaxSamples + 31) / 32); - type_gl_SampleMaskIn->realize(); - m_gl_SampleMaskIn = - new TVariable(BuiltInId::gl_SampleMaskIn, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn, - TExtension::OES_sample_variables, type_gl_SampleMaskIn); - TType *type_gl_SampleMaskInES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1); - type_gl_SampleMaskInES3_2->makeArray((resources.MaxSamples + 31) / 32); - type_gl_SampleMaskInES3_2->realize(); - m_gl_SampleMaskInES3_2 = - new TVariable(BuiltInId::gl_SampleMaskInES3_2, BuiltInName::gl_SampleMaskIn, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_SampleMaskInES3_2); - TType *type_gl_SampleMask = new TType(EbtInt, EbpHigh, EvqSampleMask, 1); - type_gl_SampleMask->makeArray((resources.MaxSamples + 31) / 32); - type_gl_SampleMask->realize(); - m_gl_SampleMask = - new TVariable(BuiltInId::gl_SampleMask, BuiltInName::gl_SampleMask, SymbolType::BuiltIn, - TExtension::OES_sample_variables, type_gl_SampleMask); - TType *type_gl_SampleMaskES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMask, 1); - type_gl_SampleMaskES3_2->makeArray((resources.MaxSamples + 31) / 32); - type_gl_SampleMaskES3_2->realize(); - m_gl_SampleMaskES3_2 = - new TVariable(BuiltInId::gl_SampleMaskES3_2, BuiltInName::gl_SampleMask, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_SampleMaskES3_2); - TType *type_gl_CullDistance = new TType(EbtFloat, EbpHigh, EvqCullDistance, 1); - type_gl_CullDistance->makeArray(resources.MaxCullDistances); - type_gl_CullDistance->realize(); - m_gl_CullDistance = - new TVariable(BuiltInId::gl_CullDistance, BuiltInName::gl_CullDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_CullDistance); - TType *type_gl_ClipDistance = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1); - type_gl_ClipDistance->makeArray(resources.MaxClipDistances); - type_gl_ClipDistance->realize(); - m_gl_ClipDistance = - new TVariable(BuiltInId::gl_ClipDistance, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_ClipDistance); - TType *type_gl_ClipDistanceAPPLE = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1); - type_gl_ClipDistanceAPPLE->makeArray(resources.MaxClipDistances); - type_gl_ClipDistanceAPPLE->realize(); - m_gl_ClipDistanceAPPLE = new TVariable( - BuiltInId::gl_ClipDistanceAPPLE, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn, - TExtension::APPLE_clip_distance, type_gl_ClipDistanceAPPLE); - TType *type_gl_CullDistanceEXT = new TType(EbtFloat, EbpHigh, EvqCullDistance, 1); - type_gl_CullDistanceEXT->makeArray(resources.MaxCullDistances); - type_gl_CullDistanceEXT->realize(); - m_gl_CullDistanceEXT = new TVariable( - BuiltInId::gl_CullDistanceEXT, BuiltInName::gl_CullDistance, SymbolType::BuiltIn, - TExtension::EXT_clip_cull_distance, type_gl_CullDistanceEXT); - TFieldList *fields_gl_PerVertex = new TFieldList(); - fields_gl_PerVertex->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), - BuiltInName::gl_Position, zeroSourceLoc, - SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertex = - new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex, - TExtension::EXT_geometry_shader, fields_gl_PerVertex); - m_gl_PerVertex = gl_PerVertex; - TFieldList *fields_gl_PerVertexES3_2 = new TFieldList(); - fields_gl_PerVertexES3_2->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), - BuiltInName::gl_Position, zeroSourceLoc, - SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexES3_2); - m_gl_PerVertexES3_2 = gl_PerVertexES3_2; - TType *type_gl_in = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_in->makeArray(0u); - type_gl_in->realize(); - m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, type_gl_in); - TType *type_gl_inES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_inES3_2->makeArray(0u); - type_gl_inES3_2->realize(); - m_gl_inES3_2 = new TVariable(BuiltInId::gl_inES3_2, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_inES3_2); - TFieldList *fields_gl_PerVertexOutBlock = new TFieldList(); - fields_gl_PerVertexOutBlock->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutBlock = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_geometry_shader, fields_gl_PerVertexOutBlock); - TFieldList *fields_gl_PerVertexOutBlockES3_2 = new TFieldList(); - fields_gl_PerVertexOutBlockES3_2->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutBlockES3_2); - TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock); - type_gl_PositionGS->realize(); - m_gl_PositionGS = - new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_geometry_shader, type_gl_PositionGS); - TType *type_gl_PositionGSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionGSES3_2->setInterfaceBlock(gl_PerVertexOutBlockES3_2); - type_gl_PositionGSES3_2->realize(); - m_gl_PositionGSES3_2 = - new TVariable(BuiltInId::gl_PositionGSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionGSES3_2); - TType *type_gl_TessLevelOuterTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); - type_gl_TessLevelOuterTCS->makeArray(4u); - type_gl_TessLevelOuterTCS->realize(); - m_gl_TessLevelOuterTCS = new TVariable( - BuiltInId::gl_TessLevelOuterTCS, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelOuterTCS); - TType *type_gl_TessLevelOuterTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); - type_gl_TessLevelOuterTCSES3_2->makeArray(4u); - type_gl_TessLevelOuterTCSES3_2->realize(); - m_gl_TessLevelOuterTCSES3_2 = - new TVariable(BuiltInId::gl_TessLevelOuterTCSES3_2, BuiltInName::gl_TessLevelOuter, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelOuterTCSES3_2); - TType *type_gl_TessLevelInnerTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); - type_gl_TessLevelInnerTCS->makeArray(2u); - type_gl_TessLevelInnerTCS->realize(); - m_gl_TessLevelInnerTCS = new TVariable( - BuiltInId::gl_TessLevelInnerTCS, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelInnerTCS); - TType *type_gl_TessLevelInnerTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); - type_gl_TessLevelInnerTCSES3_2->makeArray(2u); - type_gl_TessLevelInnerTCSES3_2->realize(); - m_gl_TessLevelInnerTCSES3_2 = - new TVariable(BuiltInId::gl_TessLevelInnerTCSES3_2, BuiltInName::gl_TessLevelInner, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelInnerTCSES3_2); - TFieldList *fields_gl_PerVertexTCS = new TFieldList(); - fields_gl_PerVertexTCS->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), - BuiltInName::gl_Position, zeroSourceLoc, - SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTCS = - new TInterfaceBlock(BuiltInId::gl_PerVertexTCS, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexTCS); - m_gl_PerVertexTCS = gl_PerVertexTCS; - TFieldList *fields_gl_PerVertexTCSES3_2 = new TFieldList(); - fields_gl_PerVertexTCSES3_2->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTCSES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexTCSES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexTCSES3_2); - m_gl_PerVertexTCSES3_2 = gl_PerVertexTCSES3_2; - TType *type_gl_inTCS = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_inTCS->makeArray(resources.MaxPatchVertices); - type_gl_inTCS->realize(); - m_gl_inTCS = new TVariable(BuiltInId::gl_inTCS, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_inTCS); - TType *type_gl_inTCSES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_inTCSES3_2->makeArray(resources.MaxPatchVertices); - type_gl_inTCSES3_2->realize(); - m_gl_inTCSES3_2 = new TVariable(BuiltInId::gl_inTCSES3_2, BuiltInName::gl_in, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_inTCSES3_2); - TType *type_gl_outTCS = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); - type_gl_outTCS->makeArray(resources.MaxPatchVertices); - type_gl_outTCS->realize(); - m_gl_outTCS = new TVariable(BuiltInId::gl_outTCS, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_outTCS); - TType *type_gl_outTCSES3_2 = - new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); - type_gl_outTCSES3_2->makeArray(resources.MaxPatchVertices); - type_gl_outTCSES3_2->realize(); - m_gl_outTCSES3_2 = - new TVariable(BuiltInId::gl_outTCSES3_2, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_outTCSES3_2); - TFieldList *fields_gl_PerVertexOutTcsBlock = new TFieldList(); - fields_gl_PerVertexOutTcsBlock->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTcsBlock = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTcsBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexOutTcsBlock); - TFieldList *fields_gl_PerVertexOutTcsBlockES3_2 = new TFieldList(); - fields_gl_PerVertexOutTcsBlockES3_2->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTcsBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTcsBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutTcsBlockES3_2); - TType *type_gl_PositionTCS = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionTCS->setInterfaceBlock(gl_PerVertexOutTcsBlock); - type_gl_PositionTCS->realize(); - m_gl_PositionTCS = - new TVariable(BuiltInId::gl_PositionTCS, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_PositionTCS); - TType *type_gl_PositionTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionTCSES3_2->setInterfaceBlock(gl_PerVertexOutTcsBlockES3_2); - type_gl_PositionTCSES3_2->realize(); - m_gl_PositionTCSES3_2 = - new TVariable(BuiltInId::gl_PositionTCSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionTCSES3_2); - TType *type_gl_TessLevelOuterTES = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); - type_gl_TessLevelOuterTES->makeArray(4u); - type_gl_TessLevelOuterTES->realize(); - m_gl_TessLevelOuterTES = new TVariable( - BuiltInId::gl_TessLevelOuterTES, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelOuterTES); - TType *type_gl_TessLevelOuterTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1); - type_gl_TessLevelOuterTESES3_2->makeArray(4u); - type_gl_TessLevelOuterTESES3_2->realize(); - m_gl_TessLevelOuterTESES3_2 = - new TVariable(BuiltInId::gl_TessLevelOuterTESES3_2, BuiltInName::gl_TessLevelOuter, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelOuterTESES3_2); - TType *type_gl_TessLevelInnerTES = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); - type_gl_TessLevelInnerTES->makeArray(2u); - type_gl_TessLevelInnerTES->realize(); - m_gl_TessLevelInnerTES = new TVariable( - BuiltInId::gl_TessLevelInnerTES, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_TessLevelInnerTES); - TType *type_gl_TessLevelInnerTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1); - type_gl_TessLevelInnerTESES3_2->makeArray(2u); - type_gl_TessLevelInnerTESES3_2->realize(); - m_gl_TessLevelInnerTESES3_2 = - new TVariable(BuiltInId::gl_TessLevelInnerTESES3_2, BuiltInName::gl_TessLevelInner, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_TessLevelInnerTESES3_2); - TFieldList *fields_gl_PerVertexTES = new TFieldList(); - fields_gl_PerVertexTES->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), - BuiltInName::gl_Position, zeroSourceLoc, - SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTES = - new TInterfaceBlock(BuiltInId::gl_PerVertexTES, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexTES); - m_gl_PerVertexTES = gl_PerVertexTES; - TFieldList *fields_gl_PerVertexTESES3_2 = new TFieldList(); - fields_gl_PerVertexTESES3_2->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexTESES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexTESES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexTESES3_2); - m_gl_PerVertexTESES3_2 = gl_PerVertexTESES3_2; - TType *type_gl_inTES = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_inTES->makeArray(resources.MaxPatchVertices); - type_gl_inTES->realize(); - m_gl_inTES = new TVariable(BuiltInId::gl_inTES, BuiltInName::gl_in, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_inTES); - TType *type_gl_inTESES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create()); - type_gl_inTESES3_2->makeArray(resources.MaxPatchVertices); - type_gl_inTESES3_2->realize(); - m_gl_inTESES3_2 = new TVariable(BuiltInId::gl_inTESES3_2, BuiltInName::gl_in, - SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_inTESES3_2); - TType *type_gl_outTES = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); - type_gl_outTES->makeArray(resources.MaxPatchVertices); - type_gl_outTES->realize(); - m_gl_outTES = new TVariable(BuiltInId::gl_outTES, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_outTES); - TType *type_gl_outTESES3_2 = - new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create()); - type_gl_outTESES3_2->makeArray(resources.MaxPatchVertices); - type_gl_outTESES3_2->realize(); - m_gl_outTESES3_2 = - new TVariable(BuiltInId::gl_outTESES3_2, BuiltInName::gl_out, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_outTESES3_2); - TFieldList *fields_gl_PerVertexOutTesBlock = new TFieldList(); - fields_gl_PerVertexOutTesBlock->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTesBlock = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTesBlock, BuiltInName::gl_PerVertex, - TExtension::EXT_tessellation_shader, fields_gl_PerVertexOutTesBlock); - TFieldList *fields_gl_PerVertexOutTesBlockES3_2 = new TFieldList(); - fields_gl_PerVertexOutTesBlockES3_2->push_back( - new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position, - zeroSourceLoc, SymbolType::BuiltIn)); - TInterfaceBlock *gl_PerVertexOutTesBlockES3_2 = - new TInterfaceBlock(BuiltInId::gl_PerVertexOutTesBlockES3_2, BuiltInName::gl_PerVertex, - TExtension::UNDEFINED, fields_gl_PerVertexOutTesBlockES3_2); - TType *type_gl_PositionTES = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionTES->setInterfaceBlock(gl_PerVertexOutTesBlock); - type_gl_PositionTES->realize(); - m_gl_PositionTES = - new TVariable(BuiltInId::gl_PositionTES, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::EXT_tessellation_shader, type_gl_PositionTES); - TType *type_gl_PositionTESES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4); - type_gl_PositionTESES3_2->setInterfaceBlock(gl_PerVertexOutTesBlockES3_2); - type_gl_PositionTESES3_2->realize(); - m_gl_PositionTESES3_2 = - new TVariable(BuiltInId::gl_PositionTESES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn, - TExtension::UNDEFINED, type_gl_PositionTESES3_2); -} - -namespace -{ -uint16_t GetNextRuleIndex(uint32_t nameHash) -{ - if (nameHash == 2180 - 1) - return ArraySize(BuiltInArray::kRules); - return BuiltInArray::kMangledOffsets[nameHash + 1]; -} -} // namespace - -const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shaderVersion) const -{ - if (name.length() > 40) - return nullptr; - - uint32_t nameHash = name.mangledNameHash(); - if (nameHash >= 2180) - return nullptr; - - const char *actualName = BuiltInArray::kMangledNames[nameHash]; - if (name != actualName) - return nullptr; - - uint16_t startIndex = BuiltInArray::kMangledOffsets[nameHash]; - uint16_t nextIndex = GetNextRuleIndex(nameHash); - - return FindMangledBuiltIn(mShaderSpec, shaderVersion, mShaderType, mResources, *this, - BuiltInArray::kRules, startIndex, nextIndex); -} - -bool TSymbolTable::isUnmangledBuiltInName(const ImmutableString &name, - int shaderVersion, - const TExtensionBehavior &extensions) const -{ - if (name.length() > 26) - return false; - - uint32_t nameHash = name.unmangledNameHash(); - if (nameHash >= 210) - return false; - - return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType, - extensions); -} - -} // namespace sh - -#endif // ANGLE_TRANSLATOR_ESSL_ONLY diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.cpp b/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.cpp @@ -7,11 +7,11 @@ #include "compiler/translator/TranslatorESSL.h" #include "angle_gl.h" #include "compiler/translator/BuiltInFunctionEmulatorGLSL.h" #include "compiler/translator/OutputESSL.h" -#include "compiler/translator/tree_ops/gl/RecordConstantPrecision.h" +#include "compiler/translator/tree_ops/RecordConstantPrecision.h" namespace sh { TranslatorESSL::TranslatorESSL(sh::GLenum type, ShShaderSpec spec) @@ -42,15 +42,11 @@ // Write built-in extension behaviors. writeExtensionBehavior(compileOptions); // Write pragmas after extensions because some drivers consider pragmas // like non-preprocessor tokens. - writePragma(compileOptions); - - bool precisionEmulation = false; - if (!emulatePrecisionIfNeeded(root, sink, &precisionEmulation, SH_ESSL_OUTPUT)) - return false; + WritePragma(sink, compileOptions, getPragma()); if (!RecordConstantPrecision(this, root, &getSymbolTable())) { return false; } @@ -74,13 +70,10 @@ getBuiltInFunctionEmulator().outputEmulatedFunctions(sink); sink << "// END: Generated code for built-in function emulation\n\n"; } - // Write array bounds clamping emulation if needed. - getArrayBoundsClamper().OutputClampingFunctionDefinition(sink); - if (getShaderType() == GL_FRAGMENT_SHADER) { EmitEarlyFragmentTestsGLSL(*this, sink); } @@ -95,13 +88,11 @@ sink, getGeometryShaderInputPrimitiveType(), getGeometryShaderInvocations(), getGeometryShaderOutputPrimitiveType(), getGeometryShaderMaxVertices()); } // Write translated shader. - TOutputESSL outputESSL(sink, getArrayIndexClampingStrategy(), getHashFunction(), getNameMap(), - &getSymbolTable(), getShaderType(), shaderVer, precisionEmulation, - compileOptions); + TOutputESSL outputESSL(this, sink, compileOptions); root->traverse(&outputESSL); return true; } @@ -149,11 +140,12 @@ !IsExtensionEnabled(extBehavior, TExtension::OVR_multiview2)) { EmitMultiviewGLSL(*this, compileOptions, iter->first, iter->second, sink); } } - else if (iter->first == TExtension::EXT_geometry_shader) + else if (iter->first == TExtension::EXT_geometry_shader || + iter->first == TExtension::OES_geometry_shader) { sink << "#ifdef GL_EXT_geometry_shader\n" << "#extension GL_EXT_geometry_shader : " << GetBehaviorString(iter->second) << "\n" << "#elif defined GL_OES_geometry_shader\n" diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.cpp b/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.cpp @@ -10,12 +10,12 @@ #include "compiler/translator/BuiltInFunctionEmulatorGLSL.h" #include "compiler/translator/ExtensionGLSL.h" #include "compiler/translator/OutputGLSL.h" #include "compiler/translator/VersionGLSL.h" #include "compiler/translator/tree_ops/RewriteTexelFetchOffset.h" -#include "compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h" -#include "compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h" +#include "compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h" +#include "compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h" namespace sh { TranslatorGLSL::TranslatorGLSL(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output) @@ -56,11 +56,11 @@ // Write extension behaviour as needed writeExtensionBehavior(root, compileOptions); // Write pragmas after extensions because some drivers consider pragmas // like non-preprocessor tokens. - writePragma(compileOptions); + WritePragma(sink, compileOptions, getPragma()); // If flattening the global invariant pragma, write invariant declarations for built-in // variables. It should be harmless to do this twice in the case that the shader also explicitly // did this. However, it's important to emit invariant qualifiers only for those built-in // variables that are actually used, to avoid affecting the behavior of the shader. @@ -115,26 +115,19 @@ { return false; } } - bool precisionEmulation = false; - if (!emulatePrecisionIfNeeded(root, sink, &precisionEmulation, getOutputType())) - return false; - // Write emulated built-in functions if needed. if (!getBuiltInFunctionEmulator().isOutputEmpty()) { sink << "// BEGIN: Generated code for built-in function emulation\n\n"; sink << "#define emu_precision\n\n"; getBuiltInFunctionEmulator().outputEmulatedFunctions(sink); sink << "// END: Generated code for built-in function emulation\n\n"; } - // Write array bounds clamping emulation if needed. - getArrayBoundsClamper().OutputClampingFunctionDefinition(sink); - // Declare gl_FragColor and glFragData as webgl_FragColor and webgl_FragData // if it's core profile shaders and they are used. if (getShaderType() == GL_FRAGMENT_SHADER) { const bool mayHaveESSL1SecondaryOutputs = @@ -190,15 +183,15 @@ { sink << "out vec4 webgl_FragData[gl_MaxDrawBuffers];\n"; } if (hasGLSecondaryFragColor) { - sink << "out vec4 angle_SecondaryFragColor;\n"; + sink << "out vec4 webgl_SecondaryFragColor;\n"; } if (hasGLSecondaryFragData) { - sink << "out vec4 angle_SecondaryFragData[" << getResources().MaxDualSourceDrawBuffers + sink << "out vec4 webgl_SecondaryFragData[" << getResources().MaxDualSourceDrawBuffers << "];\n"; } EmitEarlyFragmentTestsGLSL(*this, sink); } @@ -214,13 +207,11 @@ sink, getGeometryShaderInputPrimitiveType(), getGeometryShaderInvocations(), getGeometryShaderOutputPrimitiveType(), getGeometryShaderMaxVertices()); } // Write translated shader. - TOutputGLSL outputGLSL(sink, getArrayIndexClampingStrategy(), getHashFunction(), getNameMap(), - &getSymbolTable(), getShaderType(), getShaderVersion(), getOutputType(), - compileOptions); + TOutputGLSL outputGLSL(this, sink, compileOptions); root->traverse(&outputGLSL); return true; } @@ -280,11 +271,12 @@ { sink << "#extension GL_ARB_draw_buffers : " << GetBehaviorString(iter.second) << "\n"; } - if (iter.first == TExtension::EXT_geometry_shader) + if (iter.first == TExtension::EXT_geometry_shader || + iter.first == TExtension::OES_geometry_shader) { sink << "#extension GL_ARB_geometry_shader4 : " << GetBehaviorString(iter.second) << "\n"; } } diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.cpp b/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.cpp @@ -36,10 +36,26 @@ bool TranslatorHLSL::translate(TIntermBlock *root, ShCompileOptions compileOptions, PerformanceDiagnostics *perfDiagnostics) { + // A few transformations leave the tree in an inconsistent state. For example, when unfolding + // the short-circuit in the following function: + // + // mediump float f(float a) { return a > 0 ? 0.0 : 1.0; } + // + // a temp variable is created to hold the result of the expression. Currently the precision of + // the return value of the function is not propagated to its return expressions. Additionally, + // an expression such as + // + // cond ? gl_NumWorkGroups.x : gl_NumWorkGroups.y + // + // does not have a precision as the built-in does not specify a precision. + // + // Precision is not applicable to HLSL so fixing these issues are deferred. + mValidateASTOptions.validatePrecision = false; + const ShBuiltInResources &resources = getResources(); int numRenderTargets = resources.EXT_draw_buffers ? resources.MaxDrawBuffers : 1; int maxDualSourceDrawBuffers = resources.EXT_blend_func_extended ? resources.MaxDualSourceDrawBuffers : 0; @@ -136,14 +152,10 @@ if (!WrapSwitchStatementsInBlocks(this, root)) { return false; } - bool precisionEmulation = false; - if (!emulatePrecisionIfNeeded(root, getInfoSink().obj, &precisionEmulation, getOutputType())) - return false; - if ((compileOptions & SH_EXPAND_SELECT_HLSL_INTEGER_POW_EXPRESSIONS) != 0) { if (!sh::ExpandIntegerPowExpressions(this, root, &getSymbolTable())) { return false; diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorMetal.h b/gfx/angle/checkout/src/compiler/translator/TranslatorMetal.h --- a/gfx/angle/checkout/src/compiler/translator/TranslatorMetal.h +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorMetal.h @@ -13,10 +13,11 @@ // #ifndef LIBANGLE_RENDERER_METAL_TRANSLATORMETAL_H_ #define LIBANGLE_RENDERER_METAL_TRANSLATORMETAL_H_ +#include "compiler/translator/DriverUniformMetal.h" #include "compiler/translator/TranslatorVulkan.h" #include "compiler/translator/tree_util/DriverUniform.h" #include "compiler/translator/tree_util/SpecializationConstant.h" namespace sh @@ -33,26 +34,10 @@ ~SpecConstMetal() override {} private: }; -class DriverUniformMetal : public DriverUniform -{ - public: - DriverUniformMetal() : DriverUniform() {} - ~DriverUniformMetal() override {} - - TIntermBinary *getHalfRenderAreaRef() const override; - TIntermBinary *getFlipXYRef() const override; - TIntermBinary *getNegFlipXYRef() const override; - TIntermSwizzle *getNegFlipYRef() const override; - TIntermBinary *getCoverageMaskFieldRef() const; - - protected: - TFieldList *createUniformFields(TSymbolTable *symbolTable) override; -}; - class TranslatorMetal : public TranslatorVulkan { public: TranslatorMetal(sh::GLenum type, ShShaderSpec spec); diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorMetalDirect.h b/gfx/angle/checkout/src/compiler/translator/TranslatorMetalDirect.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorMetalDirect.h @@ -0,0 +1,207 @@ +// +// 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. +// + +#ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_H_ +#define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_H_ + +#include "compiler/translator/Compiler.h" + +namespace sh +{ + +constexpr const char kUniformsVar[] = "angleUniforms"; +constexpr const char kViewport[] = "viewport"; +constexpr const char kHalfRenderArea[] = "halfRenderArea"; +constexpr const char kFlipXY[] = "flipXY"; +constexpr const char kNegFlipXY[] = "negFlipXY"; +constexpr const char kClipDistancesEnabled[] = "clipDistancesEnabled"; +constexpr const char kXfbActiveUnpaused[] = "xfbActiveUnpaused"; +constexpr const char kXfbVerticesPerDraw[] = "xfbVerticesPerDraw"; +constexpr const char kXfbBufferOffsets[] = "xfbBufferOffsets"; +constexpr const char kAcbBufferOffsets[] = "acbBufferOffsets"; +constexpr const char kDepthRange[] = "depthRange"; +constexpr const char kUnassignedAttributeString[] = " __unassigned_attribute__"; + +class DriverUniform; +class DriverUniformMetal; +class SpecConst; +class TOutputMSL; +class TranslatorMetalReflection; +typedef std::unordered_map originalNamesMap; +typedef std::unordered_map samplerBindingMap; +typedef std::unordered_map textureBindingMap; +typedef std::unordered_map userUniformBufferBindingMap; +typedef std::pair uboBindingInfo; +struct UBOBindingInfo +{ + size_t bindIndex = 0; + size_t arraySize = 0; +}; +typedef std::unordered_map uniformBufferBindingMap; + +namespace mtl +{ +TranslatorMetalReflection *getTranslatorMetalReflection(const TCompiler *compiler); +} + +class TranslatorMetalReflection +{ + public: + TranslatorMetalReflection() : hasUBOs(false), hasFlatInput(false) {} + ~TranslatorMetalReflection() {} + + void addOriginalName(const size_t id, const std::string &name) + { + originalNames.insert({id, name}); + } + void addSamplerBinding(const std::string &name, size_t samplerBinding) + { + samplerBindings.insert({name, samplerBinding}); + } + void addTextureBinding(const std::string &name, size_t textureBinding) + { + textureBindings.insert({name, textureBinding}); + } + void addUserUniformBufferBinding(const std::string &name, size_t userUniformBufferBinding) + { + userUniformBufferBindings.insert({name, userUniformBufferBinding}); + } + void addUniformBufferBinding(const std::string &name, UBOBindingInfo bindingInfo) + { + uniformBufferBindings.insert({name, bindingInfo}); + } + std::string getOriginalName(const size_t id) { return originalNames.at(id); } + samplerBindingMap getSamplerBindings() const { return samplerBindings; } + textureBindingMap getTextureBindings() const { return textureBindings; } + userUniformBufferBindingMap getUserUniformBufferBindings() const + { + return userUniformBufferBindings; + } + uniformBufferBindingMap getUniformBufferBindings() const { return uniformBufferBindings; } + size_t getSamplerBinding(const std::string &name) const + { + auto it = samplerBindings.find(name); + if (it != samplerBindings.end()) + { + return it->second; + } + // If we can't find a matching sampler, assert out on Debug, and return an invalid value on + // release. + ASSERT(0); + return std::numeric_limits::max(); + } + size_t getTextureBinding(const std::string &name) const + { + auto it = textureBindings.find(name); + if (it != textureBindings.end()) + { + return it->second; + } + // If we can't find a matching texture, assert out on Debug, and return an invalid value on + // release. + ASSERT(0); + return std::numeric_limits::max(); + } + size_t getUserUniformBufferBinding(const std::string &name) const + { + auto it = userUniformBufferBindings.find(name); + if (it != userUniformBufferBindings.end()) + { + return it->second; + } + // If we can't find a matching Uniform binding, assert out on Debug, and return an invalid + // value. + ASSERT(0); + return std::numeric_limits::max(); + } + UBOBindingInfo getUniformBufferBinding(const std::string &name) const + { + auto it = uniformBufferBindings.find(name); + if (it != uniformBufferBindings.end()) + { + return it->second; + } + // If we can't find a matching UBO binding by name, assert out on Debug, and return an + // invalid value. + ASSERT(0); + return {.bindIndex = std::numeric_limits::max(), + .arraySize = std::numeric_limits::max()}; + } + void reset() + { + hasUBOs = false; + hasFlatInput = false; + hasAtan = false; + hasInvariance = false; + originalNames.clear(); + samplerBindings.clear(); + textureBindings.clear(); + userUniformBufferBindings.clear(); + uniformBufferBindings.clear(); + } + + bool hasUBOs = false; + bool hasFlatInput = false; + bool hasAtan = false; + bool hasInvariance = false; + + private: + originalNamesMap originalNames; + samplerBindingMap samplerBindings; + textureBindingMap textureBindings; + userUniformBufferBindingMap userUniformBufferBindings; + uniformBufferBindingMap uniformBufferBindings; +}; + +class TranslatorMetalDirect : public TCompiler +{ + public: + TranslatorMetalDirect(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output); + +#ifdef ANGLE_ENABLE_METAL + TranslatorMetalDirect *getAsTranslatorMetalDirect() override { return this; } +#endif + + void enableEmulatedInstanceID(bool e) { mEmulatedInstanceID = e; } + TranslatorMetalReflection *getTranslatorMetalReflection() { return &translatorMetalReflection; } + + protected: + bool translate(TIntermBlock *root, + ShCompileOptions compileOptions, + PerformanceDiagnostics *perfDiagnostics) override; + + // Need to collect variables so that RemoveInactiveInterfaceVariables works. + bool shouldCollectVariables(ShCompileOptions compileOptions) override { return true; } + + ANGLE_NO_DISCARD bool translateImpl(TInfoSinkBase &sink, + TIntermBlock *root, + ShCompileOptions compileOptions, + PerformanceDiagnostics *perfDiagnostics, + SpecConst *specConst, + DriverUniformMetal *driverUniforms); + + ANGLE_NO_DISCARD bool shouldFlattenPragmaStdglInvariantAll() override; + + ANGLE_NO_DISCARD bool transformDepthBeforeCorrection(TIntermBlock *root, + const DriverUniformMetal *driverUniforms); + + ANGLE_NO_DISCARD bool appendVertexShaderDepthCorrectionToMain(TIntermBlock *root); + + ANGLE_NO_DISCARD bool insertSampleMaskWritingLogic(TIntermBlock &root, + DriverUniformMetal &driverUniforms); + ANGLE_NO_DISCARD bool insertRasterizationDiscardLogic(TIntermBlock &root); + + ANGLE_NO_DISCARD TIntermSwizzle *getDriverUniformNegFlipYRef( + DriverUniform &driverUniforms) const; + + bool mEmulatedInstanceID = false; + + TranslatorMetalReflection translatorMetalReflection = {}; +}; + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/TranslatorVulkan.h b/gfx/angle/checkout/src/compiler/translator/TranslatorVulkan.h --- a/gfx/angle/checkout/src/compiler/translator/TranslatorVulkan.h +++ b/gfx/angle/checkout/src/compiler/translator/TranslatorVulkan.h @@ -39,10 +39,12 @@ ShCompileOptions compileOptions, PerformanceDiagnostics *perfDiagnostics, SpecConst *specConst, DriverUniform *driverUniforms); + void writeExtensionBehavior(ShCompileOptions compileOptions, TInfoSinkBase &sink); + // Give subclass such as TranslatorMetal a chance to do depth transform before // TranslatorVulkan apply its own transform. ANGLE_NO_DISCARD virtual bool transformDepthBeforeCorrection( TIntermBlock *root, const DriverUniform *driverUniforms) diff --git a/gfx/angle/checkout/src/compiler/translator/Types.h b/gfx/angle/checkout/src/compiler/translator/Types.h --- a/gfx/angle/checkout/src/compiler/translator/Types.h +++ b/gfx/angle/checkout/src/compiler/translator/Types.h @@ -225,20 +225,25 @@ // Note that the array element type might still be an array type in GLSL ES version >= 3.10. void toArrayElementType(); // Removes all array sizes. void toArrayBaseType(); + // Turns a matrix into a column of it. + void toMatrixColumnType(); + // Turns a matrix or vector into a component of it. + void toComponentType(); const TInterfaceBlock *getInterfaceBlock() const { return mInterfaceBlock; } void setInterfaceBlock(const TInterfaceBlock *interfaceBlockIn); bool isInterfaceBlock() const { return type == EbtInterfaceBlock; } void setInterfaceBlockField(const TInterfaceBlock *interfaceBlockIn, size_t fieldIndex); size_t getInterfaceBlockFieldIndex() const { return mInterfaceBlockFieldIndex; } bool isVector() const { return primarySize > 1 && secondarySize == 1; } bool isVectorArray() const { return primarySize > 1 && secondarySize == 1 && isArray(); } + bool isRank0() const { return primarySize == 1 && secondarySize == 1; } bool isScalar() const { return primarySize == 1 && secondarySize == 1 && !mStructure && !isArray(); } bool isScalarArray() const @@ -328,10 +333,11 @@ bool isStructureContainingArrays() const; bool isStructureContainingMatrices() const; bool isStructureContainingType(TBasicType t) const; bool isStructureContainingSamplers() const; + bool isInterfaceBlockContainingType(TBasicType t) const; bool isStructSpecifier() const { return mIsStructSpecifier; } // Return true if variables of this type should be replaced with an inline constant value if // such is available. False will be returned in cases where output doesn't support diff --git a/gfx/angle/checkout/src/compiler/translator/Types.cpp b/gfx/angle/checkout/src/compiler/translator/Types.cpp --- a/gfx/angle/checkout/src/compiler/translator/Types.cpp +++ b/gfx/angle/checkout/src/compiler/translator/Types.cpp @@ -414,10 +414,15 @@ bool TType::isStructureContainingSamplers() const { return mStructure ? mStructure->containsSamplers() : false; } +bool TType::isInterfaceBlockContainingType(TBasicType t) const +{ + return isInterfaceBlock() ? mInterfaceBlock->containsType(t) : false; +} + bool TType::canReplaceWithConstantUnion() const { if (isArray()) { return false; @@ -698,10 +703,25 @@ mArraySizesStorage->clear(); } onArrayDimensionsChange(TSpan()); } +void TType::toMatrixColumnType() +{ + ASSERT(isMatrix()); + primarySize = secondarySize; + secondarySize = 1; + invalidateMangledName(); +} + +void TType::toComponentType() +{ + primarySize = 1; + secondarySize = 1; + invalidateMangledName(); +} + void TType::setInterfaceBlock(const TInterfaceBlock *interfaceBlockIn) { if (mInterfaceBlock != interfaceBlockIn) { mInterfaceBlock = interfaceBlockIn; diff --git a/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.cpp b/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.cpp @@ -6,10 +6,12 @@ // UtilsHLSL.cpp: // Utility methods for GLSL to HLSL translation. // #include "compiler/translator/UtilsHLSL.h" + +#include "common/utilities.h" #include "compiler/translator/IntermNode.h" #include "compiler/translator/StructureHLSL.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/util.h" @@ -837,11 +839,11 @@ return "dx_" + TString(privateText.data()); } TString Decorate(const ImmutableString &string) { - if (!string.beginsWith("gl_")) + if (!gl::IsBuiltInName(string.data())) { return "_" + TString(string.data()); } return TString(string.data()); @@ -879,11 +881,11 @@ // The name should not have a prefix reserved for user-defined variables or functions. ASSERT(!func->name().beginsWith("f_")); ASSERT(!func->name().beginsWith("_")); return TString(func->name().data()); } - ASSERT(!func->name().beginsWith("gl_")); + ASSERT(!gl::IsBuiltInName(func->name().data())); // Add an additional f prefix to functions so that they're always disambiguated from variables. // This is necessary in the corner case where a variable declaration hides a function that it // uses in its initializer. return "f_" + TString(func->name().data()); } @@ -1074,18 +1076,18 @@ const char *QualifierString(TQualifier qualifier) { switch (qualifier) { - case EvqIn: + case EvqParamIn: return "in"; - case EvqOut: + case EvqParamOut: return "inout"; // 'out' results in an HLSL error if not all fields are written, for // GLSL it's undefined - case EvqInOut: + case EvqParamInOut: return "inout"; - case EvqConstReadOnly: + case EvqParamConst: return "const"; case EvqSampleOut: return "sample"; default: UNREACHABLE(); diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateAST.h b/gfx/angle/checkout/src/compiler/translator/ValidateAST.h --- a/gfx/angle/checkout/src/compiler/translator/ValidateAST.h +++ b/gfx/angle/checkout/src/compiler/translator/ValidateAST.h @@ -21,38 +21,74 @@ { // TODO: add support for the flags marked with TODO. http://anglebug.com/2733 // Check that every node always has only one parent, bool validateSingleParent = true; - // Check that all symbols reference TVariables that have been declared. + // Check that all symbols reference TVariables that have been declared. For built-ins, this + // makes sure that the same GLSL built-in uses the same TVariable consistently. bool validateVariableReferences = true; + // Whether validateVariableReferences should also include specialization constants. Their + // declaration is output after their usage is discovered, so this is disabled until then. + bool validateSpecConstReferences = false; + // Check that TIntermUnary and TIntermAggregate nodes with a built-in op reference a function + // with said op. + bool validateBuiltInOps = true; // Check that all EOpCallFunctionInAST have their corresponding function definitions in the AST, // with matching symbol ids. There should also be at least a prototype declaration before the // function is called. - bool validateFunctionCall = true; // TODO + bool validateFunctionCall = true; + // Check that EOpCallInternalRawFunction is not used. This OP is deprecated and needs to be + // removed. http://anglebug.com/6059 + bool validateNoRawFunctionCalls = true; // Check that there are no null nodes where they are not allowed, for example as children of // TIntermDeclaration or TIntermBlock. bool validateNullNodes = true; // Check that symbols that reference variables have consistent qualifiers and symbol ids with - // the variable declaration. For example, references to function out parameters should be - // EvqOut. - bool validateQualifiers = true; // TODO + // the variable declaration. The following needs to be validated: + // + // Implemented: + // + // - Function parameters having one of EvqParam* qualifiers. + // - gl_ClipDistance, gl_CullDistance and gl_LastFragData are correctly qualified even when + // redeclared in the shader. + // + // TODO: + // + // - Function-local variables must have the EvqTemporary qualifier. + // - Symbol references and declarations have identical qualifiers. + bool validateQualifiers = true; + // Check that every symbol has its precision specified. That includes variables, block members, + // function parameters and return values. + bool validatePrecision = true; // Check that variable declarations that can't have initializers don't have initializers // (varyings, uniforms for example). bool validateInitializers = true; // TODO // Check that there is only one TFunction with each function name referenced in the nodes (no // two TFunctions with the same name, taking internal/non-internal namespaces into account). bool validateUniqueFunctions = true; // TODO - // Check that references to structs are matched with the corresponding struct declaration. This - // is only done for references to structs inside other struct or interface blocks declarations, - // as validateVariableReferences already ensures other references to the struct match the - // declaration. + // Check that references to structs are matched with the corresponding struct declaration. bool validateStructUsage = true; - // Check that expression nodes have the correct type considering their operand(s). - bool validateExpressionTypes = true; // TODO + // Check that expression nodes have the correct type considering their operand(s). The + // following validation is possible: + // + // Implemented: + // + // - Binary node that indexes T[] should have type T + // + // TODO: + // + // - Function calls (including built-ins) have the same return type in the node and function. + // - Unary and binary operators have the correct type based on operands + // - Swizzle result has same type as the operand except for vector size + // - Ternary operator has the same type as the operands + bool validateExpressionTypes = true; // If SeparateDeclarations has been run, check for the absence of multi declarations as well. bool validateMultiDeclarations = false; + + // Once set, disallows any further transformations on the tree. Used before AST post-processing + // which requires that the tree remains unmodified. + bool validateNoMoreTransformations = false; }; // Check for errors and output error messages on the context. // Returns true if there are no errors. bool ValidateAST(TIntermNode *root, TDiagnostics *diagnostics, const ValidateASTOptions &options); diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateAST.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateAST.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateAST.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateAST.cpp @@ -4,14 +4,17 @@ // found in the LICENSE file. // #include "compiler/translator/ValidateAST.h" +#include "common/utilities.h" #include "compiler/translator/Diagnostics.h" +#include "compiler/translator/ImmutableStringBuilder.h" #include "compiler/translator/Symbol.h" #include "compiler/translator/tree_util/IntermTraverse.h" #include "compiler/translator/tree_util/SpecializationConstant.h" +#include "compiler/translator/util.h" namespace sh { namespace @@ -49,11 +52,21 @@ // Visit as a generic node void visitNode(Visit visit, TIntermNode *node); // Visit a structure or interface block, and recursively visit its fields of structure type. void visitStructOrInterfaceBlockDeclaration(const TType &type, const TSourceLoc &location); - void visitStructInDeclarationUsage(const TType &type, const TSourceLoc &location); + void visitStructUsage(const TType &type, const TSourceLoc &location); + // Visit a unary or aggregate node and validate its built-in op against its built-in function. + void visitBuiltInFunction(TIntermOperator *op, const TFunction *function); + // Visit an aggregate node and validate its function call is to one that's already defined. + void visitFunctionCall(TIntermAggregate *node); + // Visit a binary node and validate its type against its operands. + void validateExpressionTypeBinary(TIntermBinary *node); + // Visit a symbol node and validate it's declared previously. + void visitVariableNeedingDeclaration(TIntermSymbol *node); + // Visit a built-in symbol node and validate it's consistently used across the tree. + void visitBuiltInVariable(TIntermSymbol *node); void scope(Visit visit); bool isVariableDeclared(const TVariable *variable); bool variableNeedsDeclaration(const TVariable *variable); const TFieldListCollection *getStructOrInterfaceBlock(const TType &type, @@ -71,23 +84,51 @@ bool mSingleParentFailed = false; // For validateVariableReferences: std::vector> mDeclaredVariables; std::set mNamelessInterfaceBlocks; + std::map mReferencedBuiltIns; bool mVariableReferencesFailed = false; + // For validateBuiltInOps: + bool mBuiltInOpsFailed = false; + + // For validateFunctionCall: + std::set mDeclaredFunctions; + bool mFunctionCallFailed = false; + + // For validateNoRawFunctionCalls: + bool mNoRawFunctionCallsFailed = false; + // For validateNullNodes: bool mNullNodesFailed = false; + // For validateQualifiers: + bool mQualifiersFailed = false; + + // For validatePrecision: + bool mPrecisionFailed = false; + // For validateStructUsage: std::vector> mStructsAndBlocksByName; bool mStructUsageFailed = false; + // For validateExpressionTypes: + bool mExpressionTypesFailed = false; + // For validateMultiDeclarations: bool mMultiDeclarationsFailed = false; }; +bool IsSameType(const TType &a, const TType &b) +{ + return a.getBasicType() == b.getBasicType() && a.getNominalSize() == b.getNominalSize() && + a.getSecondarySize() == b.getSecondarySize() && a.getArraySizes() == b.getArraySizes() && + a.getStruct() == b.getStruct() && + (!a.isInterfaceBlock() || a.getInterfaceBlock() == b.getInterfaceBlock()); +} + bool ValidateAST::validate(TIntermNode *root, TDiagnostics *diagnostics, const ValidateASTOptions &options) { ValidateAST validate(root, diagnostics, options); @@ -104,10 +145,11 @@ // Some validations are not applicable unless run on the entire tree. if (!isTreeRoot) { mOptions.validateVariableReferences = false; + mOptions.validateFunctionCall = false; } if (mOptions.validateSingleParent) { mParent[root] = nullptr; @@ -153,10 +195,24 @@ if (structOrBlock) { ASSERT(!typeName.empty()); + // Allow gl_PerVertex to be doubly-defined. + if (typeName == "gl_PerVertex") + { + if (IsShaderIn(type.getQualifier())) + { + typeName = ImmutableString("gl_PerVertex"); + } + else + { + ASSERT(IsShaderOut(type.getQualifier())); + typeName = ImmutableString("gl_PerVertex"); + } + } + if (mStructsAndBlocksByName.back().find(typeName) != mStructsAndBlocksByName.back().end()) { mDiagnostics->error(location, "Found redeclaration of struct or interface block with the same " "name in the same scope ", @@ -179,15 +235,15 @@ } ASSERT(structOrBlock != nullptr); for (const TField *field : structOrBlock->fields()) { - visitStructInDeclarationUsage(*field->type(), field->line()); + visitStructUsage(*field->type(), field->line()); } } -void ValidateAST::visitStructInDeclarationUsage(const TType &type, const TSourceLoc &location) +void ValidateAST::visitStructUsage(const TType &type, const TSourceLoc &location) { if (type.getStruct() == nullptr) { return; } @@ -214,10 +270,12 @@ "Found reference to struct or interface block with doubly " "created type ", typeName.data()); mStructUsageFailed = true; } + + break; } } if (!foundDeclaration) { @@ -227,10 +285,211 @@ typeName.data()); mStructUsageFailed = true; } } +void ValidateAST::visitBuiltInFunction(TIntermOperator *node, const TFunction *function) +{ + const TOperator op = node->getOp(); + if (!BuiltInGroup::IsBuiltIn(op)) + { + return; + } + + ImmutableStringBuilder opValueBuilder(16); + opValueBuilder << "op: "; + opValueBuilder.appendDecimal(op); + + ImmutableString opValue = opValueBuilder; + + if (function == nullptr) + { + mDiagnostics->error(node->getLine(), + "Found node calling built-in without a reference to the built-in " + "function ", + opValue.data()); + mVariableReferencesFailed = true; + } + else if (function->getBuiltInOp() != op) + { + mDiagnostics->error(node->getLine(), + "Found node calling built-in with a reference to a different function " + "", + opValue.data()); + mVariableReferencesFailed = true; + } +} + +void ValidateAST::visitFunctionCall(TIntermAggregate *node) +{ + if (node->getOp() != EOpCallFunctionInAST) + { + return; + } + + const TFunction *function = node->getFunction(); + + if (function == nullptr) + { + mDiagnostics->error(node->getLine(), + "Found node calling function without a reference to it", + ""); + mFunctionCallFailed = true; + } + else if (mDeclaredFunctions.find(function) == mDeclaredFunctions.end()) + { + mDiagnostics->error(node->getLine(), + "Found node calling previously undeclared function " + "", + function->name().data()); + mFunctionCallFailed = true; + } +} + +void ValidateAST::validateExpressionTypeBinary(TIntermBinary *node) +{ + switch (node->getOp()) + { + case EOpIndexDirect: + case EOpIndexIndirect: + { + TType expectedType(node->getLeft()->getType()); + if (!expectedType.isArray()) + { + // TODO: Validate matrix column selection and vector component selection. + // http://anglebug.com/2733 + break; + } + + expectedType.toArrayElementType(); + + if (!IsSameType(node->getType(), expectedType)) + { + const TSymbol *symbol = expectedType.getStruct(); + if (symbol == nullptr) + { + symbol = expectedType.getInterfaceBlock(); + } + const char *name = nullptr; + if (symbol) + { + name = symbol->name().data(); + } + else if (expectedType.isScalar()) + { + name = ""; + } + else if (expectedType.isVector()) + { + name = ""; + } + else + { + ASSERT(expectedType.isMatrix()); + name = ""; + } + + mDiagnostics->error( + node->getLine(), + "Found index node with type that is inconsistent with the array being indexed " + "", + name); + mExpressionTypesFailed = true; + } + } + break; + default: + // TODO: Validate other expressions. http://anglebug.com/2733 + break; + } +} + +void ValidateAST::visitVariableNeedingDeclaration(TIntermSymbol *node) +{ + const TVariable *variable = &node->variable(); + const TType &type = node->getType(); + + // If it's a reference to a field of a nameless interface block, match it by index and name. + if (type.getInterfaceBlock() && !type.isInterfaceBlock()) + { + const TInterfaceBlock *interfaceBlock = type.getInterfaceBlock(); + const TFieldList &fieldList = interfaceBlock->fields(); + const size_t fieldIndex = type.getInterfaceBlockFieldIndex(); + + if (mNamelessInterfaceBlocks.count(interfaceBlock) == 0) + { + mDiagnostics->error(node->getLine(), + "Found reference to undeclared or inconsistenly transformed " + "nameless interface block ", + node->getName().data()); + mVariableReferencesFailed = true; + } + else if (fieldIndex >= fieldList.size() || node->getName() != fieldList[fieldIndex]->name()) + { + mDiagnostics->error(node->getLine(), + "Found reference to inconsistenly transformed nameless " + "interface block field ", + node->getName().data()); + mVariableReferencesFailed = true; + } + return; + } + + const bool isStructDeclaration = + type.isStructSpecifier() && variable->symbolType() == SymbolType::Empty; + + if (!isStructDeclaration && !isVariableDeclared(variable)) + { + mDiagnostics->error(node->getLine(), + "Found reference to undeclared or inconsistently transformed " + "variable ", + node->getName().data()); + mVariableReferencesFailed = true; + } +} + +void ValidateAST::visitBuiltInVariable(TIntermSymbol *node) +{ + const TVariable *variable = &node->variable(); + ImmutableString name = variable->name(); + + if (mOptions.validateVariableReferences) + { + auto iter = mReferencedBuiltIns.find(name); + if (iter == mReferencedBuiltIns.end()) + { + mReferencedBuiltIns[name] = variable; + return; + } + + if (variable != iter->second) + { + mDiagnostics->error( + node->getLine(), + "Found inconsistent references to built-in variable ", + name.data()); + mVariableReferencesFailed = true; + } + } + + if (mOptions.validateQualifiers) + { + TQualifier qualifier = variable->getType().getQualifier(); + + if ((name == "gl_ClipDistance" && qualifier != EvqClipDistance) || + (name == "gl_CullDistance" && qualifier != EvqCullDistance) || + (name == "gl_LastFragData" && qualifier != EvqLastFragData)) + { + mDiagnostics->error( + node->getLine(), + "Incorrect qualifier applied to redeclared built-in ", + name.data()); + mQualifiersFailed = true; + } + } +} + void ValidateAST::scope(Visit visit) { if (mOptions.validateVariableReferences) { if (visit == PreVisit) @@ -272,21 +531,20 @@ } bool ValidateAST::variableNeedsDeclaration(const TVariable *variable) { // Don't expect declaration for built-in variables. - if (variable->name().beginsWith("gl_")) + if (gl::IsBuiltInName(variable->name().data())) { return false; } - // Additionally, don't expect declaration for Vulkan specialization constants. There is no - // representation for them in the AST. - if (variable->symbolType() == SymbolType::AngleInternal && - SpecConst::IsSpecConstName(variable->name())) + // Additionally, don't expect declaration for Vulkan specialization constants if not enabled. + // The declaration of these variables is deferred. + if (variable->getType().getQualifier() == EvqSpecConst) { - return false; + return mOptions.validateSpecConstReferences; } return true; } @@ -339,52 +597,35 @@ void ValidateAST::visitSymbol(TIntermSymbol *node) { visitNode(PreVisit, node); const TVariable *variable = &node->variable(); - const TType &type = node->getType(); - if (mOptions.validateVariableReferences && variableNeedsDeclaration(variable)) + if (mOptions.validateVariableReferences) { - // If it's a reference to a field of a nameless interface block, match it by index and name. - if (type.getInterfaceBlock() && !type.isInterfaceBlock()) + if (variableNeedsDeclaration(variable)) { - const TInterfaceBlock *interfaceBlock = type.getInterfaceBlock(); - const TFieldList &fieldList = interfaceBlock->fields(); - const size_t fieldIndex = type.getInterfaceBlockFieldIndex(); + visitVariableNeedingDeclaration(node); + } + } - if (mNamelessInterfaceBlocks.count(interfaceBlock) == 0) - { - mDiagnostics->error(node->getLine(), - "Found reference to undeclared or inconsistenly redeclared " - "nameless interface block ", - node->getName().data()); - mVariableReferencesFailed = true; - } - else if (fieldIndex >= fieldList.size() || - node->getName() != fieldList[fieldIndex]->name()) - { - mDiagnostics->error(node->getLine(), - "Found reference to inconsistenly redeclared nameless " - "interface block field ", - node->getName().data()); - mVariableReferencesFailed = true; - } - } - else + const bool isBuiltIn = gl::IsBuiltInName(variable->name().data()); + if (isBuiltIn) + { + visitBuiltInVariable(node); + } + + if (mOptions.validatePrecision) + { + if (!isBuiltIn && IsPrecisionApplicableToType(node->getBasicType()) && + node->getType().getPrecision() == EbpUndefined) { - const bool isStructDeclaration = - type.isStructSpecifier() && variable->symbolType() == SymbolType::Empty; - - if (!isStructDeclaration && !isVariableDeclared(variable)) - { - mDiagnostics->error(node->getLine(), - "Found reference to undeclared or inconsistently redeclared " - "variable ", - node->getName().data()); - mVariableReferencesFailed = true; - } + // Note that some built-ins don't have a precision. + mDiagnostics->error(node->getLine(), + "Found symbol with undefined precision ", + variable->name().data()); + mPrecisionFailed = true; } } } void ValidateAST::visitConstantUnion(TIntermConstantUnion *node) @@ -399,16 +640,28 @@ } bool ValidateAST::visitBinary(Visit visit, TIntermBinary *node) { visitNode(visit, node); + + if (mOptions.validateExpressionTypes && visit == PreVisit) + { + validateExpressionTypeBinary(node); + } + return true; } bool ValidateAST::visitUnary(Visit visit, TIntermUnary *node) { visitNode(visit, node); + + if (visit == PreVisit && mOptions.validateBuiltInOps) + { + visitBuiltInFunction(node, node->getFunction()); + } + return true; } bool ValidateAST::visitTernary(Visit visit, TIntermTernary *node) { @@ -435,10 +688,75 @@ } void ValidateAST::visitFunctionPrototype(TIntermFunctionPrototype *node) { visitNode(PreVisit, node); + + if (mOptions.validateFunctionCall) + { + const TFunction *function = node->getFunction(); + mDeclaredFunctions.insert(function); + } + + const TFunction *function = node->getFunction(); + const TType &returnType = function->getReturnType(); + if (mOptions.validatePrecision && IsPrecisionApplicableToType(returnType.getBasicType()) && + returnType.getPrecision() == EbpUndefined) + { + mDiagnostics->error( + node->getLine(), + "Found function with undefined precision on return value ", + function->name().data()); + mPrecisionFailed = true; + } + + if (mOptions.validateStructUsage) + { + if (returnType.isStructSpecifier()) + { + visitStructOrInterfaceBlockDeclaration(returnType, node->getLine()); + } + else + { + visitStructUsage(returnType, node->getLine()); + } + } + + for (size_t paramIndex = 0; paramIndex < function->getParamCount(); ++paramIndex) + { + const TVariable *param = function->getParam(paramIndex); + const TType ¶mType = param->getType(); + + if (mOptions.validateStructUsage) + { + visitStructUsage(paramType, node->getLine()); + } + + if (mOptions.validateQualifiers) + { + TQualifier qualifier = paramType.getQualifier(); + if (qualifier != EvqParamIn && qualifier != EvqParamOut && qualifier != EvqParamInOut && + qualifier != EvqParamConst) + { + mDiagnostics->error(node->getLine(), + "Found function prototype with an invalid qualifier " + "", + param->name().data()); + mQualifiersFailed = true; + } + } + + if (mOptions.validatePrecision && IsPrecisionApplicableToType(paramType.getBasicType()) && + paramType.getPrecision() == EbpUndefined) + { + mDiagnostics->error( + node->getLine(), + "Found function parameter with undefined precision ", + param->name().data()); + mPrecisionFailed = true; + } + } } bool ValidateAST::visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) { visitNode(visit, node); @@ -472,10 +790,33 @@ bool ValidateAST::visitAggregate(Visit visit, TIntermAggregate *node) { visitNode(visit, node); expectNonNullChildren(visit, node, 0); + + if (visit == PreVisit && mOptions.validateBuiltInOps) + { + visitBuiltInFunction(node, node->getFunction()); + } + + if (visit == PreVisit && mOptions.validateFunctionCall) + { + visitFunctionCall(node); + } + + if (visit == PreVisit && mOptions.validateNoRawFunctionCalls) + { + if (node->getOp() == EOpCallInternalRawFunction) + { + mDiagnostics->error(node->getLine(), + "Found node calling a raw function (deprecated) " + "", + node->getFunction()->name().data()); + mNoRawFunctionCallsFailed = true; + } + } + return true; } bool ValidateAST::visitBlock(Visit visit, TIntermBlock *node) { @@ -487,10 +828,24 @@ bool ValidateAST::visitGlobalQualifierDeclaration(Visit visit, TIntermGlobalQualifierDeclaration *node) { visitNode(visit, node); + + const TVariable *variable = &node->getSymbol()->variable(); + + if (mOptions.validateVariableReferences && variableNeedsDeclaration(variable)) + { + if (!isVariableDeclared(variable)) + { + mDiagnostics->error(node->getLine(), + "Found reference to undeclared or inconsistently transformed " + "variable ", + variable->name().data()); + mVariableReferencesFailed = true; + } + } return true; } bool ValidateAST::visitDeclaration(Visit visit, TIntermDeclaration *node) { @@ -499,10 +854,23 @@ const TIntermSequence &sequence = *(node->getSequence()); if (mOptions.validateMultiDeclarations && sequence.size() > 1) { + TIntermSymbol *symbol = sequence[1]->getAsSymbolNode(); + if (symbol == nullptr) + { + TIntermBinary *init = sequence[1]->getAsBinaryNode(); + ASSERT(init && init->getOp() == EOpInitialize); + symbol = init->getLeft()->getAsSymbolNode(); + } + ASSERT(symbol); + + mDiagnostics->error(node->getLine(), + "Found multiple declarations where SeparateDeclarations should have " + "separated them ", + symbol->variable().name().data()); mMultiDeclarationsFailed = true; } if (visit == PreVisit) { @@ -518,10 +886,11 @@ symbol = init->getLeft()->getAsSymbolNode(); } ASSERT(symbol); const TVariable *variable = &symbol->variable(); + const TType &type = variable->getType(); if (mOptions.validateVariableReferences) { if (isVariableDeclared(variable)) { @@ -549,16 +918,49 @@ } } if (validateStructUsage) { - // Only declare the struct once. + // Only declare and/or validate the struct once. validateStructUsage = false; - const TType &type = variable->getType(); if (type.isStructSpecifier() || type.isInterfaceBlock()) + { visitStructOrInterfaceBlockDeclaration(type, node->getLine()); + } + else + { + visitStructUsage(type, node->getLine()); + } + } + + if (gl::IsBuiltInName(variable->name().data())) + { + visitBuiltInVariable(symbol); + } + + if (mOptions.validatePrecision && (type.isStructSpecifier() || type.isInterfaceBlock())) + { + const TFieldListCollection *structOrBlock = type.getStruct(); + if (structOrBlock == nullptr) + { + structOrBlock = type.getInterfaceBlock(); + } + + for (const TField *field : structOrBlock->fields()) + { + const TType *fieldType = field->type(); + if (IsPrecisionApplicableToType(fieldType->getBasicType()) && + fieldType->getPrecision() == EbpUndefined) + { + mDiagnostics->error( + node->getLine(), + "Found block field with undefined precision ", + field->name().data()); + mPrecisionFailed = true; + } + } } } } return true; @@ -581,17 +983,28 @@ visitNode(PreVisit, node); } bool ValidateAST::validateInternal() { - return !mSingleParentFailed && !mVariableReferencesFailed && !mNullNodesFailed && - !mStructUsageFailed && !mMultiDeclarationsFailed; + return !mSingleParentFailed && !mVariableReferencesFailed && !mBuiltInOpsFailed && + !mFunctionCallFailed && !mNoRawFunctionCallsFailed && !mNullNodesFailed && + !mQualifiersFailed && !mPrecisionFailed && !mStructUsageFailed && + !mExpressionTypesFailed && !mMultiDeclarationsFailed; } } // anonymous namespace bool ValidateAST(TIntermNode *root, TDiagnostics *diagnostics, const ValidateASTOptions &options) { + // ValidateAST is called after transformations, so if |validateNoMoreTransformations| is set, + // it's immediately an error. + if (options.validateNoMoreTransformations) + { + diagnostics->error(kNoSourceLoc, "Unexpected transformation after AST post-processing", + ""); + return false; + } + return ValidateAST::validate(root, diagnostics, options); } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateBarrierFunctionCall.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateBarrierFunctionCall.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateBarrierFunctionCall.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateBarrierFunctionCall.cpp @@ -44,11 +44,11 @@ return true; } bool visitAggregate(Visit visit, TIntermAggregate *node) override { - if (node->getOp() != EOpBarrier) + if (node->getOp() != EOpBarrierTCS) { return true; } if (mSeenReturn) diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.cpp @@ -95,14 +95,13 @@ } bool ValidateGlobalInitializerTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { // Disallow calls to user-defined functions and texture lookup functions in global variable - // initializers. - // This is done simply by disabling all function calls - built-in math functions don't use - // the function call ops. - if (node->isFunctionCall()) + // initializers. For simplicity, all non-math built-in calls are disallowed. + if (node->isFunctionCall() || + (BuiltInGroup::IsBuiltIn(node->getOp()) && !BuiltInGroup::IsMath(node->getOp()))) { onNonConstInitializerVisit(mExtNonConstGlobalInitializers); } return true; } diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.cpp @@ -335,15 +335,17 @@ // The last two forms are not specified in the spec, but I am assuming // its an oversight. TIntermUnary *unOp = expr->getAsUnaryNode(); TIntermBinary *binOp = unOp ? nullptr : expr->getAsBinaryNode(); - TOperator op = EOpNull; - TIntermSymbol *symbol = nullptr; + TOperator op = EOpNull; + const TFunction *opFunc = nullptr; + TIntermSymbol *symbol = nullptr; if (unOp != nullptr) { op = unOp->getOp(); + opFunc = unOp->getFunction(); symbol = unOp->getOperand()->getAsSymbolNode(); } else if (binOp != nullptr) { op = binOp->getOp(); @@ -374,11 +376,19 @@ case EOpAddAssign: case EOpSubAssign: ASSERT((unOp == nullptr) && (binOp != nullptr)); break; default: - error(expr->getLine(), "Invalid operator", GetOperatorString(op)); + if (BuiltInGroup::IsBuiltIn(op)) + { + ASSERT(opFunc != nullptr); + error(expr->getLine(), "Invalid built-in call", opFunc->name().data()); + } + else + { + error(expr->getLine(), "Invalid operator", GetOperatorString(op)); + } return false; } // Loop index must be incremented/decremented with a constant. if (binOp != nullptr) diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.cpp @@ -80,11 +80,11 @@ else { mUnspecifiedLocationOutputs.push_back(symbol); } } - else if (qualifier == EvqFragDepth || qualifier == EvqFragDepthEXT) + else if (qualifier == EvqFragDepth) { mUsesFragDepth = true; } } diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.h b/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.h @@ -0,0 +1,25 @@ +// +// Copyright 2021 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. +// + +#ifndef COMPILER_TRANSLATOR_VALIDATETYPESIZELIMITATIONS_H_ +#define COMPILER_TRANSLATOR_VALIDATETYPESIZELIMITATIONS_H_ + +#include "compiler/translator/IntermNode.h" + +namespace sh +{ + +class TDiagnostics; + +// Returns true if the given shader does not violate certain +// implementation-defined limits on the size of variables' types. +bool ValidateTypeSizeLimitations(TIntermNode *root, + TSymbolTable *symbolTable, + TDiagnostics *diagnostics); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_VALIDATETYPESIZELIMITATIONS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/ValidateTypeSizeLimitations.cpp @@ -0,0 +1,214 @@ +// +// Copyright 2021 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. +// + +#include "compiler/translator/ValidateTypeSizeLimitations.h" + +#include "angle_gl.h" +#include "compiler/translator/Diagnostics.h" +#include "compiler/translator/Symbol.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/blocklayout.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/util.h" + +namespace sh +{ + +namespace +{ + +// Arbitrarily enforce that types - even local variables' - declared +// with a size in bytes of over 2 GB will cause compilation failure. +constexpr size_t kMaxTypeSizeInBytes = static_cast(2) * 1024 * 1024 * 1024; + +// Traverses intermediate tree to ensure that the shader does not +// exceed certain implementation-defined limits on the sizes of types. +// Some code was copied from the CollectVariables pass. +class ValidateTypeSizeLimitationsTraverser : public TIntermTraverser +{ + public: + ValidateTypeSizeLimitationsTraverser(TSymbolTable *symbolTable, TDiagnostics *diagnostics) + : TIntermTraverser(true, false, false, symbolTable), mDiagnostics(diagnostics) + { + ASSERT(diagnostics); + } + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + const TIntermSequence &sequence = *(node->getSequence()); + + for (TIntermNode *variableNode : sequence) + { + // See CollectVariablesTraverser::visitDeclaration for a + // deeper analysis of the AST structures that might be + // encountered. + TIntermSymbol *asSymbol = variableNode->getAsSymbolNode(); + TIntermBinary *asBinary = variableNode->getAsBinaryNode(); + + if (asBinary != nullptr) + { + ASSERT(asBinary->getOp() == EOpInitialize); + asSymbol = asBinary->getLeft()->getAsSymbolNode(); + } + + ASSERT(asSymbol); + + const TVariable &variable = asSymbol->variable(); + if (variable.symbolType() == SymbolType::AngleInternal) + { + // Ignore internal variables. + continue; + } + + const TType &variableType = asSymbol->getType(); + + // Create a ShaderVariable from which to compute + // (conservative) sizing information. + ShaderVariable shaderVar; + setCommonVariableProperties(variableType, variable, &shaderVar); + + // Compute the std140 layout of this variable, assuming + // it's a member of a block (which it might not be). + Std140BlockEncoder layoutEncoder; + BlockEncoderVisitor visitor("", "", &layoutEncoder); + // Since the size limit's arbitrary, it doesn't matter + // whether the row-major layout is correctly determined. + bool isRowMajorLayout = false; + TraverseShaderVariable(shaderVar, isRowMajorLayout, &visitor); + if (layoutEncoder.getCurrentOffset() > kMaxTypeSizeInBytes) + { + error(asSymbol->getLine(), + "Size of declared variable exceeds implementation-defined limit", + asSymbol->getName()); + return false; + } + } + + return true; + } + + private: + void error(TSourceLoc loc, const char *reason, const ImmutableString &token) + { + mDiagnostics->error(loc, reason, token.data()); + } + + void setFieldOrVariableProperties(const TType &type, + bool staticUse, + bool isShaderIOBlock, + bool isPatch, + ShaderVariable *variableOut) const + { + ASSERT(variableOut); + + variableOut->staticUse = staticUse; + variableOut->isShaderIOBlock = isShaderIOBlock; + variableOut->isPatch = isPatch; + + const TStructure *structure = type.getStruct(); + const TInterfaceBlock *interfaceBlock = type.getInterfaceBlock(); + if (structure) + { + // Structures use a NONE type that isn't exposed outside ANGLE. + variableOut->type = GL_NONE; + if (structure->symbolType() != SymbolType::Empty) + { + variableOut->structOrBlockName = structure->name().data(); + } + + const TFieldList &fields = structure->fields(); + + for (const TField *field : fields) + { + // Regardless of the variable type (uniform, in/out etc.) its fields are always + // plain ShaderVariable objects. + ShaderVariable fieldVariable; + setFieldProperties(*field->type(), field->name(), staticUse, isShaderIOBlock, + isPatch, &fieldVariable); + variableOut->fields.push_back(fieldVariable); + } + } + else if (interfaceBlock && isShaderIOBlock) + { + variableOut->type = GL_NONE; + if (interfaceBlock->symbolType() != SymbolType::Empty) + { + variableOut->structOrBlockName = interfaceBlock->name().data(); + } + const TFieldList &fields = interfaceBlock->fields(); + for (const TField *field : fields) + { + ShaderVariable fieldVariable; + setFieldProperties(*field->type(), field->name(), staticUse, true, isPatch, + &fieldVariable); + fieldVariable.isShaderIOBlock = true; + variableOut->fields.push_back(fieldVariable); + } + } + else + { + variableOut->type = GLVariableType(type); + variableOut->precision = GLVariablePrecision(type); + } + + const TSpan &arraySizes = type.getArraySizes(); + if (!arraySizes.empty()) + { + variableOut->arraySizes.assign(arraySizes.begin(), arraySizes.end()); + // WebGL does not support tessellation shaders; removed + // code specific to that shader type. + } + } + + void setFieldProperties(const TType &type, + const ImmutableString &name, + bool staticUse, + bool isShaderIOBlock, + bool isPatch, + ShaderVariable *variableOut) const + { + ASSERT(variableOut); + setFieldOrVariableProperties(type, staticUse, isShaderIOBlock, isPatch, variableOut); + variableOut->name.assign(name.data(), name.length()); + } + + void setCommonVariableProperties(const TType &type, + const TVariable &variable, + ShaderVariable *variableOut) const + { + ASSERT(variableOut); + + // Shortcut some processing that's unnecessary for this analysis. + const bool staticUse = true; + const bool isShaderIOBlock = type.getInterfaceBlock() != nullptr; + const bool isPatch = false; + + setFieldOrVariableProperties(type, staticUse, isShaderIOBlock, isPatch, variableOut); + + const bool isNamed = variable.symbolType() != SymbolType::Empty; + + if (isNamed) + { + variableOut->name.assign(variable.name().data(), variable.name().length()); + } + } + + TDiagnostics *mDiagnostics; + std::vector mLoopSymbolIds; +}; + +} // namespace + +bool ValidateTypeSizeLimitations(TIntermNode *root, + TSymbolTable *symbolTable, + TDiagnostics *diagnostics) +{ + ValidateTypeSizeLimitationsTraverser validate(symbolTable, diagnostics); + root->traverse(&validate); + return diagnostics->numErrors() == 0; +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.h b/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.h --- a/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.h +++ b/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.h @@ -16,12 +16,13 @@ { class TIntermBlock; class TIntermSymbol; class TDiagnostics; +class TType; -unsigned int CalculateVaryingLocationCount(TIntermSymbol *varying, GLenum shaderType); +unsigned int CalculateVaryingLocationCount(const TType &varyingType, GLenum shaderType); bool ValidateVaryingLocations(TIntermBlock *root, TDiagnostics *diagnostics, GLenum shaderType); } // namespace sh #endif diff --git a/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.cpp b/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.cpp --- a/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.cpp +++ b/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.cpp @@ -77,13 +77,12 @@ totalLocation *= varyingType.getArraySizeProduct(); } return totalLocation; } -int GetLocationCount(const TIntermSymbol *varying, bool ignoreVaryingArraySize) +int GetLocationCount(const TType &varyingType, bool ignoreVaryingArraySize) { - const TType &varyingType = varying->getType(); ASSERT(!varyingType.isInterfaceBlock()); if (varyingType.getStruct() != nullptr) { int totalLocation = 0; @@ -265,11 +264,11 @@ remainingLocations, &locationMap); } } else { - const int elementCount = GetLocationCount(varying, ignoreVaryingArraySize); + const int elementCount = GetLocationCount(varying->getType(), ignoreVaryingArraySize); MarkVaryingLocations(diagnostics, varying, nullptr, location, elementCount, &locationMap); } } } @@ -342,22 +341,21 @@ mShaderType); } } // anonymous namespace -unsigned int CalculateVaryingLocationCount(TIntermSymbol *varying, GLenum shaderType) +unsigned int CalculateVaryingLocationCount(const TType &varyingType, GLenum shaderType) { - const TType &varyingType = varying->getType(); const TQualifier qualifier = varyingType.getQualifier(); const bool ignoreVaryingArraySize = ShouldIgnoreVaryingArraySize(qualifier, shaderType); if (varyingType.isInterfaceBlock()) { return GetInterfaceBlockLocationCount(varyingType, ignoreVaryingArraySize); } - return GetLocationCount(varying, ignoreVaryingArraySize); + return GetLocationCount(varyingType, ignoreVaryingArraySize); } bool ValidateVaryingLocations(TIntermBlock *root, TDiagnostics *diagnostics, GLenum shaderType) { ValidateVaryingLocationsTraverser varyingValidator(shaderType); diff --git a/gfx/angle/checkout/src/compiler/translator/VersionGLSL.cpp b/gfx/angle/checkout/src/compiler/translator/VersionGLSL.cpp --- a/gfx/angle/checkout/src/compiler/translator/VersionGLSL.cpp +++ b/gfx/angle/checkout/src/compiler/translator/VersionGLSL.cpp @@ -120,11 +120,11 @@ const TVariable *param = node->getFunction()->getParam(i); const TType &type = param->getType(); if (type.isArray()) { TQualifier qualifier = type.getQualifier(); - if ((qualifier == EvqOut) || (qualifier == EvqInOut)) + if ((qualifier == EvqParamOut) || (qualifier == EvqParamInOut)) { ensureVersionIsAtLeast(GLSL_VERSION_120); break; } } diff --git a/gfx/angle/checkout/src/compiler/translator/blocklayout.h b/gfx/angle/checkout/src/compiler/translator/blocklayout.h --- a/gfx/angle/checkout/src/compiler/translator/blocklayout.h +++ b/gfx/angle/checkout/src/compiler/translator/blocklayout.h @@ -77,12 +77,17 @@ virtual ~BlockLayoutEncoder() {} BlockMemberInfo encodeType(GLenum type, const std::vector &arraySizes, bool isRowMajorMatrix); + // Advance the offset based on struct size and array dimensions. Size can be calculated with + // getShaderVariableSize() or equivalent. |enterAggregateType|/|exitAggregateType| is necessary + // around this call. + BlockMemberInfo encodeArrayOfPreEncodedStructs(size_t size, + const std::vector &arraySizes); - size_t getCurrentOffset() const { return mCurrentOffset * kBytesPerComponent; } + size_t getCurrentOffset() const; size_t getShaderVariableSize(const ShaderVariable &structVar, bool isRowMajor); // Called when entering/exiting a structure variable. virtual void enterAggregateType(const ShaderVariable &structVar) = 0; virtual void exitAggregateType(const ShaderVariable &structVar) = 0; diff --git a/gfx/angle/checkout/src/compiler/translator/blocklayout.cpp b/gfx/angle/checkout/src/compiler/translator/blocklayout.cpp --- a/gfx/angle/checkout/src/compiler/translator/blocklayout.cpp +++ b/gfx/angle/checkout/src/compiler/translator/blocklayout.cpp @@ -197,10 +197,39 @@ advanceOffset(type, arraySizes, isRowMajorMatrix, arrayStride, matrixStride); return memberInfo; } +BlockMemberInfo BlockLayoutEncoder::encodeArrayOfPreEncodedStructs( + size_t size, + const std::vector &arraySizes) +{ + const unsigned int innerArraySizeProduct = gl::InnerArraySizeProduct(arraySizes); + const unsigned int outermostArraySize = gl::OutermostArraySize(arraySizes); + + // The size of struct is expected to be already aligned appropriately. + const size_t arrayStride = size * innerArraySizeProduct; + + const BlockMemberInfo memberInfo(static_cast(mCurrentOffset * kBytesPerComponent), + static_cast(arrayStride), -1, false); + + angle::base::CheckedNumeric checkedOffset(arrayStride); + checkedOffset *= outermostArraySize; + checkedOffset /= kBytesPerComponent; + checkedOffset += mCurrentOffset; + mCurrentOffset = checkedOffset.ValueOrDefault(std::numeric_limits::max()); + + return memberInfo; +} + +size_t BlockLayoutEncoder::getCurrentOffset() const +{ + angle::base::CheckedNumeric checkedOffset(mCurrentOffset); + checkedOffset *= kBytesPerComponent; + return checkedOffset.ValueOrDefault(std::numeric_limits::max()); +} + size_t BlockLayoutEncoder::getShaderVariableSize(const ShaderVariable &structVar, bool isRowMajor) { size_t currentOffset = mCurrentOffset; mCurrentOffset = 0; BlockEncoderVisitor visitor("", "", this); @@ -224,11 +253,17 @@ return (info.offset / kBytesPerComponent) % kComponentsPerRegister; } void BlockLayoutEncoder::align(size_t baseAlignment) { - mCurrentOffset = rx::roundUp(mCurrentOffset, baseAlignment); + angle::base::CheckedNumeric checkedOffset(mCurrentOffset); + checkedOffset += baseAlignment; + checkedOffset -= 1; + angle::base::CheckedNumeric checkedAlignmentOffset = checkedOffset; + checkedAlignmentOffset %= baseAlignment; + checkedOffset -= checkedAlignmentOffset.ValueOrDefault(std::numeric_limits::max()); + mCurrentOffset = checkedOffset.ValueOrDefault(std::numeric_limits::max()); } // StubBlockEncoder implementation. void StubBlockEncoder::getBlockLayoutInfo(GLenum type, const std::vector &arraySizes, @@ -287,11 +322,11 @@ { const size_t numComponents = static_cast(gl::VariableComponentCount(type)); baseAlignment = ComponentAlignment(numComponents); } - mCurrentOffset = rx::roundUp(mCurrentOffset, baseAlignment); + align(baseAlignment); *matrixStrideOut = matrixStride; *arrayStrideOut = arrayStride; } @@ -301,20 +336,27 @@ int arrayStride, int matrixStride) { if (!arraySizes.empty()) { - mCurrentOffset += arrayStride * gl::ArraySizeProduct(arraySizes); + angle::base::CheckedNumeric checkedOffset(arrayStride); + checkedOffset *= gl::ArraySizeProduct(arraySizes); + checkedOffset += mCurrentOffset; + mCurrentOffset = checkedOffset.ValueOrDefault(std::numeric_limits::max()); } else if (gl::IsMatrixType(type)) { - const int numRegisters = gl::MatrixRegisterCount(type, isRowMajorMatrix); - mCurrentOffset += matrixStride * numRegisters; + angle::base::CheckedNumeric checkedOffset(matrixStride); + checkedOffset *= gl::MatrixRegisterCount(type, isRowMajorMatrix); + checkedOffset += mCurrentOffset; + mCurrentOffset = checkedOffset.ValueOrDefault(std::numeric_limits::max()); } else { - mCurrentOffset += gl::VariableComponentCount(type); + angle::base::CheckedNumeric checkedOffset(mCurrentOffset); + checkedOffset += gl::VariableComponentCount(type); + mCurrentOffset = checkedOffset.ValueOrDefault(std::numeric_limits::max()); } } size_t Std140BlockEncoder::getBaseAlignment(const ShaderVariable &variable) const { diff --git a/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.cpp b/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.cpp --- a/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.cpp +++ b/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.cpp @@ -748,25 +748,25 @@ 318, 321, 327, 334, 340, 343, 351, 354, 360, 363, 369, 373, 380, 388, 391, 394, 400, 403, 406, 409, 416, 417, 418, 419, 427, 428, 431, 434, 441, 442, 445, 451, 452, 456, 463, 464, 467, 470, 473, 479, 480, 483, 489, 490, 497, 498, 505, 506, 513, 514, 520, 521, 527, 528, 534, 535, 541, 542, 548, 549, 550, 551, 555, 556, 557, 561, 565, 569, 573, 580, 583, 589, 596, 603, 606, 609, 613, 617, 621, 625, - 629, 636, 643, 646, 653, 661, 678, 688, 691, 697, 701, 705, 709, 716, 723, 726, - 730, 734, 739, 746, 750, 754, 758, 763, 770, 774, 780, 783, 786, 796, 800, 807, - 813, 819, 823, 827, 830, 833, 837, 845, 850, 854, 857, 860, 863, 866, 870, 878, - 881, 885, 888, 891, 894, 897, 900, 904, 911, 918, 921, 924, 930, 937, 940, 946, - 949, 952, 955, 961, 964, 971, 976, 983, 988, 999, 1002, 1005, 1008, 1011, 1014, 1018, - 1022, 1026, 1030, 1034, 1038, 1042, 1046, 1050, 1054, 1058, 1062, 1066, 1070, 1074, 1078, 1082, - 1086, 1090, 1094, 1098, 1105, 1108, 1111, 1114, 1117, 1120, 1123, 1131, 1139, 1149, 1152, 1155, - 1158, 1161, 1164, 1167, 1175, 1183, 1193, 1196, 1199, 1202, 1205, 1208, 1211, 1219, 1227, 1237, - 1240, 1243, 1246, 1254, 1262, 1269, 1279, 1286, 1293, 1296, 1299, 1302, 1305, 1308, 1311, 1314, - 1317, 1320, 1323, 1326, 1329, 1337, 1345, 1353, 1361, 1369, 1377, 1387, 1397, 1407, 1410, 1413, - 1421, 1421, 1424, 1424, 1430, 1433, 1439, 1442, 1449, 1453, 1459, 1462, 1468, 1472, 1476, 1477, - 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1493, 1497, 1497, 1497, 1504, 1505, 1509, 1509, 1510, - 1510, 1515, 1519, 1526, 1530, 1537, 1538, 1542, 1548, 1552, 1561, 1561, 1568, 1571, 1577, 1581, - 1587, 1587, 1592, 1592, 1596, 1596, 1604, 1607, 1613, 1616, 1622, 1626, 1633, 1636, 1639, 1642, - 1645, 1653, 1659, 1665, 1668, 1674, 1674}; + 629, 636, 643, 646, 653, 666, 689, 699, 702, 708, 712, 716, 720, 727, 734, 737, + 741, 745, 750, 757, 761, 765, 769, 774, 781, 785, 791, 794, 797, 807, 811, 818, + 824, 830, 834, 838, 841, 844, 848, 856, 861, 865, 868, 871, 874, 877, 881, 889, + 892, 896, 899, 902, 905, 908, 911, 915, 922, 929, 932, 935, 941, 948, 951, 957, + 960, 963, 966, 972, 975, 982, 987, 994, 999, 1010, 1013, 1016, 1019, 1022, 1025, 1029, + 1033, 1037, 1041, 1045, 1049, 1053, 1057, 1061, 1065, 1069, 1073, 1077, 1081, 1085, 1089, 1093, + 1097, 1101, 1105, 1109, 1116, 1119, 1122, 1125, 1128, 1131, 1134, 1142, 1150, 1160, 1163, 1166, + 1169, 1172, 1175, 1178, 1186, 1194, 1204, 1207, 1210, 1213, 1216, 1219, 1222, 1230, 1238, 1248, + 1251, 1254, 1257, 1265, 1273, 1280, 1290, 1297, 1304, 1307, 1310, 1313, 1316, 1319, 1322, 1325, + 1328, 1331, 1334, 1337, 1340, 1348, 1356, 1364, 1372, 1380, 1388, 1398, 1408, 1418, 1421, 1424, + 1432, 1432, 1435, 1435, 1441, 1444, 1450, 1453, 1460, 1464, 1470, 1473, 1479, 1483, 1487, 1488, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1504, 1508, 1508, 1508, 1515, 1516, 1520, 1520, 1521, + 1521, 1526, 1530, 1537, 1541, 1548, 1549, 1553, 1559, 1563, 1572, 1572, 1579, 1582, 1588, 1592, + 1598, 1598, 1603, 1603, 1607, 1607, 1615, 1618, 1624, 1627, 1633, 1637, 1644, 1647, 1650, 1653, + 1656, 1664, 1670, 1676, 1679, 1685, 1685}; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ @@ -3255,10 +3255,16 @@ if ((yyvsp[0].interm.param).type->getBasicType() != EbtVoid) { (yyvsp[-1].interm.function) ->addParameter((yyvsp[0].interm.param).createVariable(&context->symbolTable)); } + else + { + // Remember that void was seen, so error can be generated if another parameter is + // seen. + (yyvsp[-1].interm.function)->setHasVoidParameter(); + } } break; case 101: @@ -3273,10 +3279,17 @@ context->error((yylsp[-1]), "cannot be a parameter type except for '(void)'", "void"); } else { + if ((yyvsp[-2].interm.function)->hasVoidParameter()) + { + // Only first parameter of one-parameter functions can be void. This check + // prevents (void, non_void) parameters. + context->error((yylsp[-1]), "cannot be a parameter type except for '(void)'", + "void"); + } (yyvsp[-2].interm.function) ->addParameter((yyvsp[0].interm.param).createVariable(&context->symbolTable)); } } @@ -3325,11 +3338,11 @@ case 106: { (yyval.interm.param) = (yyvsp[0].interm.param); - (yyval.interm.param).type->setQualifier(EvqIn); + (yyval.interm.param).type->setQualifier(EvqParamIn); } break; case 107: @@ -3344,11 +3357,11 @@ case 108: { (yyval.interm.param) = (yyvsp[0].interm.param); - (yyval.interm.param).type->setQualifier(EvqIn); + (yyval.interm.param).type->setQualifier(EvqParamIn); } break; case 109: @@ -3545,11 +3558,11 @@ break; case 128: { - // empty + context->markShaderHasPrecise(); } break; case 129: diff --git a/gfx/angle/checkout/src/compiler/translator/glslang_wrapper.h b/gfx/angle/checkout/src/compiler/translator/glslang_wrapper.h --- a/gfx/angle/checkout/src/compiler/translator/glslang_wrapper.h +++ b/gfx/angle/checkout/src/compiler/translator/glslang_wrapper.h @@ -18,27 +18,29 @@ #include #include namespace sh { -#if defined(ANGLE_ENABLE_VULKAN) || defined(ANGLE_ENABLE_METAL) +#if defined(ANGLE_ENABLE_SPIRV_GENERATION_THROUGH_GLSLANG) void GlslangInitialize(); void GlslangFinalize(); // Generate SPIR-V out of intermediate GLSL through glslang. ANGLE_NO_DISCARD bool GlslangCompileToSpirv(const ShBuiltInResources &resources, sh::GLenum shaderType, const std::string &shaderSource, angle::spirv::Blob *spirvBlobOut); #else -ANGLE_INLINE void GlslangInitialize() +ANGLE_INLINE void GlslangInitialize() {} +ANGLE_INLINE void GlslangFinalize() {} +ANGLE_INLINE bool GlslangCompileToSpirv(const ShBuiltInResources &resources, + sh::GLenum shaderType, + const std::string &shaderSource, + angle::spirv::Blob *spirvBlobOut) { UNREACHABLE(); -} -ANGLE_INLINE void GlslangFinalize() -{ - UNREACHABLE(); + return false; } #endif // defined(ANGLE_ENABLE_VULKAN) || defined(ANGLE_ENABLE_METAL) } // namespace sh #endif // COMPILER_TRANSLATOR_GLSLANG_WRAPPER_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.h @@ -0,0 +1,27 @@ +// +// Copyright 2021 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. +// +// ClampIndirectIndices.h: Add clamp to the indirect indices used on arrays. +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_CLAMPINDIRECTINDICES_H_ +#define COMPILER_TRANSLATOR_TREEOPS_CLAMPINDIRECTINDICES_H_ + +#include "common/angleutils.h" + +namespace sh +{ + +class TCompiler; +class TIntermNode; +class TSymbolTable; + +ANGLE_NO_DISCARD bool ClampIndirectIndices(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_CLAMPINDIRECTINDICES_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp @@ -0,0 +1,141 @@ +// +// Copyright 2021 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. +// +// ClampIndirectIndices.h: Add clamp to the indirect indices used on arrays. +// + +#include "compiler/translator/tree_ops/ClampIndirectIndices.h" + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/StaticType.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ +namespace +{ +// Traverser that finds EOpIndexIndirect nodes and applies a clamp to their right-hand side +// expression. +class ClampIndirectIndicesTraverser : public TIntermTraverser +{ + public: + ClampIndirectIndicesTraverser(TCompiler *compiler, TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable), mCompiler(compiler) + {} + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + ASSERT(visit == PreVisit); + + // Only interested in EOpIndexIndirect nodes. + if (node->getOp() != EOpIndexIndirect) + { + return true; + } + + // Apply the transformation to the left and right nodes + bool valid = ClampIndirectIndices(mCompiler, node->getLeft(), mSymbolTable); + ASSERT(valid); + valid = ClampIndirectIndices(mCompiler, node->getRight(), mSymbolTable); + ASSERT(valid); + + // Generate clamp(right, 0, N), where N is the size of the array being indexed minus 1. If + // the array is runtime-sized, the length() method is called on it. + const TType &leftType = node->getLeft()->getType(); + const TType &rightType = node->getRight()->getType(); + + // On GLSL es 100, clamp is only defined for float, so float arguments are used. + // + // However, float clamp is unconditionally emitted to workaround driver bugs with integer + // clamp on Qualcomm. http://crbug.com/1217167 + // + // const bool useFloatClamp = mCompiler->getShaderVersion() == 100; + const bool useFloatClamp = true; + + TIntermConstantUnion *zero = createClampValue(0, useFloatClamp); + TIntermTyped *max; + + if (leftType.isUnsizedArray()) + { + // Unsized arrays are an ES3.1 feature, so integer clamp should be available already. + max = new TIntermUnary(EOpArrayLength, node->getLeft(), nullptr); + max = new TIntermBinary(EOpSub, max, CreateIndexNode(1)); + if (useFloatClamp) + { + TIntermSequence constructorArgs = {max}; + max = TIntermAggregate::CreateConstructor( + *StaticType::GetBasic(), &constructorArgs); + } + } + else if (leftType.isArray()) + { + max = createClampValue(static_cast(leftType.getOutermostArraySize()) - 1, + useFloatClamp); + } + else + { + ASSERT(leftType.isVector() || leftType.isMatrix()); + max = createClampValue(leftType.getNominalSize() - 1, useFloatClamp); + } + + TIntermTyped *index = node->getRight(); + // If the index node is not an int (i.e. it's a uint), or a float (if using float clamp), + // cast it. + const TBasicType requiredBasicType = useFloatClamp ? EbtFloat : EbtInt; + if (rightType.getBasicType() != requiredBasicType) + { + const TType *clampType = useFloatClamp ? StaticType::GetBasic() + : StaticType::GetBasic(); + TIntermSequence constructorArgs = {index}; + index = TIntermAggregate::CreateConstructor(*clampType, &constructorArgs); + } + + // min(gl_PointSize, maxPointSize) + TIntermSequence args; + args.push_back(index); + args.push_back(zero); + args.push_back(max); + TIntermTyped *clamped = + CreateBuiltInFunctionCallNode("clamp", &args, *mSymbolTable, useFloatClamp ? 100 : 300); + + // Cast back to int if float clamp was used. + if (useFloatClamp) + { + TIntermSequence constructorArgs = {clamped}; + clamped = TIntermAggregate::CreateConstructor(*StaticType::GetBasic(), + &constructorArgs); + } + + // Replace the right node (the index) with the clamped result. + queueReplacementWithParent(node, node->getRight(), clamped, OriginalNode::IS_DROPPED); + + // Don't recurse as left and right nodes are already processed. + return false; + } + + private: + TIntermConstantUnion *createClampValue(int value, bool useFloat) + { + if (useFloat) + { + return CreateFloatNode(static_cast(value), EbpHigh); + } + return CreateIndexNode(value); + } + + TCompiler *mCompiler; +}; +} // anonymous namespace + +bool ClampIndirectIndices(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) +{ + ClampIndirectIndicesTraverser traverser(compiler, symbolTable); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp @@ -21,16 +21,17 @@ TIntermBlock *root, float maxPointSize, TSymbolTable *symbolTable) { // Only clamp gl_PointSize if it's used in the shader. - if (!FindSymbolNode(root, ImmutableString("gl_PointSize"))) + const TIntermSymbol *glPointSize = FindSymbolNode(root, ImmutableString("gl_PointSize")); + if (glPointSize == nullptr) { return true; } - TIntermSymbol *pointSizeNode = new TIntermSymbol(BuiltInVariable::gl_PointSize()); + TIntermTyped *pointSizeNode = glPointSize->deepCopy(); TConstantUnion *maxPointSizeConstant = new TConstantUnion(); maxPointSizeConstant->setFConst(maxPointSize); TIntermConstantUnion *maxPointSizeNode = new TIntermConstantUnion(maxPointSizeConstant, TType(EbtFloat, EbpHigh, EvqConst)); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h @@ -0,0 +1,25 @@ +// +// 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. +// + +#ifndef COMPILER_TRANSLATOR_TREE_OPS_CONVERTUNSUPPORTEDCONSTRUCTORSTOFUNCTIONCALLS_H_ +#define COMPILER_TRANSLATOR_TREE_OPS_CONVERTUNSUPPORTEDCONSTRUCTORSTOFUNCTIONCALLS_H_ + +#include "compiler/translator/Compiler.h" + +namespace sh +{ + +class TCompiler; +class TInterBlock; +class SymbolEnv; + +// Adds explicit type casts into the AST where casting is done implicitly. +ANGLE_NO_DISCARD bool ConvertUnsupportedConstructorsToFunctionCalls(TCompiler &compiler, + TIntermBlock &root); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREE_OPS_CONVERTUNSUPPORTEDCONSTRUCTORSTOFUNCTIONCALLS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp @@ -0,0 +1,336 @@ +// +// 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. +// + +#include "compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.h" +#include "compiler/translator/ImmutableString.h" +#include "compiler/translator/Symbol.h" +#include "compiler/translator/tree_util/FindFunction.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermRebuild.h" + +using namespace sh; + +namespace +{ + +void AppendMatrixElementArgument(TIntermSymbol *parameter, + int colIndex, + int rowIndex, + TIntermSequence *returnCtorArgs) +{ + TIntermBinary *matColN = + new TIntermBinary(EOpIndexDirect, parameter->deepCopy(), CreateIndexNode(colIndex)); + TIntermSwizzle *matElem = new TIntermSwizzle(matColN, {rowIndex}); + returnCtorArgs->push_back(matElem); +} + +// Adds the argument to sequence for a scalar constructor. +// Given scalar(scalarA) appends scalarA +// Given scalar(vecA) appends vecA.x +// Given scalar(matA) appends matA[0].x +void AppendScalarFromNonScalarArguments(TFunction &function, TIntermSequence *returnCtorArgs) +{ + const TVariable *var = function.getParam(0); + TIntermSymbol *arg0 = new TIntermSymbol(var); + + const TType &type = arg0->getType(); + + if (type.isScalar()) + { + returnCtorArgs->push_back(arg0); + } + else if (type.isVector()) + { + TIntermSwizzle *vecX = new TIntermSwizzle(arg0, {0}); + returnCtorArgs->push_back(vecX); + } + else if (type.isMatrix()) + { + AppendMatrixElementArgument(arg0, 0, 0, returnCtorArgs); + } +} + +// Adds the arguments to sequence for a vector constructor from a scalar. +// Given vecN(scalarA) appends scalarA, scalarA, ... n times +void AppendVectorFromScalarArgument(const TType &type, + TFunction &function, + TIntermSequence *returnCtorArgs) +{ + const int vectorSize = type.getNominalSize(); + const TVariable *var = function.getParam(0); + TIntermSymbol *v = new TIntermSymbol(var); + for (int i = 0; i < vectorSize; ++i) + { + returnCtorArgs->push_back(v->deepCopy()); + } +} + +// Adds the arguments to sequence for a vector or matrix constructor from the available arguments +// applying arguments in order until the requested number of values have been extracted from the +// given arguments or until there are no more arguments. +void AppendValuesFromMultipleArguments(int numValuesNeeded, + TFunction &function, + TIntermSequence *returnCtorArgs) +{ + size_t numParameters = function.getParamCount(); + size_t paramIndex = 0; + int colIndex = 0; + int rowIndex = 0; + + for (int i = 0; i < numValuesNeeded && paramIndex < numParameters; ++i) + { + const TVariable *p = function.getParam(paramIndex); + TIntermSymbol *parameter = new TIntermSymbol(p); + if (parameter->isScalar()) + { + returnCtorArgs->push_back(parameter); + ++paramIndex; + } + else if (parameter->isVector()) + { + TIntermSwizzle *vecS = new TIntermSwizzle(parameter->deepCopy(), {rowIndex++}); + returnCtorArgs->push_back(vecS); + if (rowIndex == parameter->getNominalSize()) + { + ++paramIndex; + rowIndex = 0; + } + } + else if (parameter->isMatrix()) + { + AppendMatrixElementArgument(parameter, colIndex, rowIndex++, returnCtorArgs); + if (rowIndex == parameter->getSecondarySize()) + { + rowIndex = 0; + ++colIndex; + if (colIndex == parameter->getNominalSize()) + { + colIndex = 0; + ++paramIndex; + } + } + } + } +} + +// Adds the arguments for a matrix constructor from a scalar +// putting the scalar along the diagonal and 0 everywhere else. +void AppendMatrixFromScalarArgument(const TType &type, + TFunction &function, + TIntermSequence *returnCtorArgs) +{ + const TVariable *var = function.getParam(0); + TIntermSymbol *v = new TIntermSymbol(var); + const int numCols = type.getNominalSize(); + const int numRows = type.getSecondarySize(); + for (int col = 0; col < numCols; ++col) + { + for (int row = 0; row < numRows; ++row) + { + if (col == row) + { + returnCtorArgs->push_back(v->deepCopy()); + } + else + { + returnCtorArgs->push_back(CreateFloatNode(0.0f, sh::EbpUndefined)); + } + } + } +} + +// Add the argument for a matrix constructor from a matrix +// copying elements from the same column/row and otherwise +// initialize to the identity matrix. +void AppendMatrixFromMatrixArgument(const TType &type, + TFunction &function, + TIntermSequence *returnCtorArgs) +{ + const TVariable *var = function.getParam(0); + TIntermSymbol *v = new TIntermSymbol(var); + const int dstCols = type.getNominalSize(); + const int dstRows = type.getSecondarySize(); + const int srcCols = v->getNominalSize(); + const int srcRows = v->getSecondarySize(); + for (int dstCol = 0; dstCol < dstCols; ++dstCol) + { + for (int dstRow = 0; dstRow < dstRows; ++dstRow) + { + if (dstRow < srcRows && dstCol < srcCols) + { + AppendMatrixElementArgument(v, dstCol, dstRow, returnCtorArgs); + } + else + { + returnCtorArgs->push_back( + CreateFloatNode(dstRow == dstCol ? 1.0f : 0.0f, sh::EbpUndefined)); + } + } + } +} + +class Rebuild : public TIntermRebuild +{ + public: + explicit Rebuild(TCompiler &compiler) : TIntermRebuild(compiler, false, true) {} + PostResult visitAggregatePost(TIntermAggregate &node) override + { + if (!node.isConstructor()) + { + return node; + } + + TIntermSequence &arguments = *node.getSequence(); + if (arguments.empty()) + { + return node; + } + + const TType &type = node.getType(); + const TType &arg0Type = arguments[0]->getAsTyped()->getType(); + + if (!type.isScalar() && !type.isVector() && !type.isMatrix()) + { + return node; + } + + if (type.isArray()) + { + return node; + } + + // check for type_ctor(sameType) + // scalar(scalar) -> passthrough + // vecN(vecN) -> passthrough + // matN(matN) -> passthrough + if (arguments.size() == 1 && arg0Type == type) + { + return node; + } + + // The following are simple casts: + // + // - basic(s) (where basic is int, uint, float or bool, and s is scalar). + // - gvecN(vN) (where the argument is a single vector with the same number of components). + // - matNxM(mNxM) (where the argument is a single matrix with the same dimensions). Note + // that + // matrices are always float, so there's no actual cast and this would be a no-op. + // + const bool isSingleScalarCast = + arguments.size() == 1 && type.isScalar() && arg0Type.isScalar(); + const bool isSingleVectorCast = arguments.size() == 1 && type.isVector() && + arg0Type.isVector() && + type.getNominalSize() == arg0Type.getNominalSize(); + const bool isSingleMatrixCast = + arguments.size() == 1 && type.isMatrix() && arg0Type.isMatrix() && + type.getCols() == arg0Type.getCols() && type.getRows() == arg0Type.getRows(); + if (isSingleScalarCast || isSingleVectorCast || isSingleMatrixCast) + { + return node; + } + + // Cases we need to handle: + // scalar(vec) + // scalar(mat) + // vecN(scalar) + // vecN(vecM) + // vecN(a,...) + // matN(scalar) -> diag + // matN(vec) -> fail! + // manN(matM) -> corner + ident + // matN(a, ...) + + // Build a function and pass all the constructor's arguments to it. + TIntermBlock *body = new TIntermBlock; + TFunction *function = new TFunction(&mSymbolTable, ImmutableString(""), + SymbolType::AngleInternal, &type, true); + + for (size_t i = 0; i < arguments.size(); ++i) + { + TIntermTyped &arg = *arguments[i]->getAsTyped(); + TType *argType = new TType(arg.getBasicType(), arg.getPrecision(), EvqParamIn, + static_cast(arg.getNominalSize()), + static_cast(arg.getSecondarySize())); + TVariable *var = CreateTempVariable(&mSymbolTable, argType); + function->addParameter(var); + } + + // Build a return statement for the function that + // converts the arguments into the required type. + TIntermSequence *returnCtorArgs = new TIntermSequence(); + + if (type.isScalar()) + { + AppendScalarFromNonScalarArguments(*function, returnCtorArgs); + } + else if (type.isVector()) + { + if (arguments.size() == 1 && arg0Type.isScalar()) + { + AppendVectorFromScalarArgument(type, *function, returnCtorArgs); + } + else + { + AppendValuesFromMultipleArguments(type.getNominalSize(), *function, returnCtorArgs); + } + } + else if (type.isMatrix()) + { + if (arguments.size() == 1 && arg0Type.isScalar()) + { + // MSL already handles this case + AppendMatrixFromScalarArgument(type, *function, returnCtorArgs); + } + else if (arg0Type.isMatrix()) + { + AppendMatrixFromMatrixArgument(type, *function, returnCtorArgs); + } + else + { + AppendValuesFromMultipleArguments(type.getNominalSize() * type.getSecondarySize(), + *function, returnCtorArgs); + } + } + + TIntermBranch *returnStatement = + new TIntermBranch(EOpReturn, TIntermAggregate::CreateConstructor(type, returnCtorArgs)); + body->appendStatement(returnStatement); + + TIntermFunctionDefinition *functionDefinition = + CreateInternalFunctionDefinitionNode(*function, body); + mFunctionDefs.push_back(functionDefinition); + + TIntermTyped *functionCall = TIntermAggregate::CreateFunctionCall(*function, &arguments); + + return *functionCall; + } + + bool rewrite(TIntermBlock &root) + { + if (!rebuildInPlace(root)) + { + return true; + } + + size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(&root); + for (TIntermFunctionDefinition *functionDefinition : mFunctionDefs) + { + root.insertChildNodes(firstFunctionIndex, TIntermSequence({functionDefinition})); + } + + return mCompiler.validateAST(&root); + } + + private: + TVector mFunctionDefs; +}; + +} // anonymous namespace + +bool sh::ConvertUnsupportedConstructorsToFunctionCalls(TCompiler &compiler, TIntermBlock &root) +{ + return Rebuild(compiler).rewrite(root); +} diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp @@ -40,11 +40,11 @@ { // Create an unsigned numberOfViews node. TConstantUnion *numberOfViewsUnsignedConstant = new TConstantUnion(); numberOfViewsUnsignedConstant->setUConst(numberOfViews); TIntermConstantUnion *numberOfViewsUint = - new TIntermConstantUnion(numberOfViewsUnsignedConstant, TType(EbtUInt, EbpHigh, EvqConst)); + new TIntermConstantUnion(numberOfViewsUnsignedConstant, TType(EbtUInt, EbpLow, EvqConst)); // Create a uint(gl_InstanceID) node. TIntermSequence glInstanceIDSymbolCastArguments; glInstanceIDSymbolCastArguments.push_back(new TIntermSymbol(BuiltInVariable::gl_InstanceID())); TIntermAggregate *glInstanceIDAsUint = TIntermAggregate::CreateConstructor( diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.h --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.h @@ -28,10 +28,11 @@ ANGLE_NO_DISCARD bool DeferGlobalInitializers(TCompiler *compiler, TIntermBlock *root, bool initializeUninitializedGlobals, bool canUseLoopsToInitialize, bool highPrecisionSupported, + bool forceDeferGlobalInitializers, TSymbolTable *symbolTable); } // namespace sh #endif // COMPILER_TRANSLATOR_TREEOPS_DEFERGLOBALINITIALIZERS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp @@ -36,10 +36,11 @@ void GetDeferredInitializers(TIntermDeclaration *declaration, bool initializeUninitializedGlobals, bool canUseLoopsToInitialize, bool highPrecisionSupported, + bool forceDeferGlobalInitializers, TIntermSequence *deferredInitializersOut, std::vector *variablesToReplaceOut, TSymbolTable *symbolTable) { // SeparateDeclarations should have already been run. @@ -51,11 +52,12 @@ { TIntermSymbol *symbolNode = init->getLeft()->getAsSymbolNode(); ASSERT(symbolNode); TIntermTyped *expression = init->getRight(); - if (expression->getQualifier() != EvqConst || !expression->hasConstantValue()) + if (expression->getQualifier() != EvqConst || !expression->hasConstantValue() || + forceDeferGlobalInitializers) { // For variables which are not constant, defer their real initialization until // after we initialize uniforms. // Deferral is done also in any cases where the variable can not be converted to a // constant union, since otherwise there's a chance that HLSL output will generate extra @@ -107,11 +109,11 @@ TIntermBlock *initGlobalsBlock = new TIntermBlock(); initGlobalsBlock->getSequence()->swap(*deferredInitializers); TFunction *initGlobalsFunction = new TFunction(symbolTable, kInitGlobalsString, SymbolType::AngleInternal, - StaticType::GetBasic(), false); + StaticType::GetBasic(), false); TIntermFunctionPrototype *initGlobalsFunctionPrototype = CreateInternalFunctionPrototypeNode(*initGlobalsFunction); root->getSequence()->insert(root->getSequence()->begin(), initGlobalsFunctionPrototype); TIntermFunctionDefinition *initGlobalsFunctionDefinition = @@ -131,10 +133,11 @@ bool DeferGlobalInitializers(TCompiler *compiler, TIntermBlock *root, bool initializeUninitializedGlobals, bool canUseLoopsToInitialize, bool highPrecisionSupported, + bool forceDeferGlobalInitializers, TSymbolTable *symbolTable) { TIntermSequence deferredInitializers; std::vector variablesToReplace; @@ -145,11 +148,12 @@ TIntermDeclaration *declaration = statement->getAsDeclarationNode(); if (declaration) { GetDeferredInitializers(declaration, initializeUninitializedGlobals, canUseLoopsToInitialize, highPrecisionSupported, - &deferredInitializers, &variablesToReplace, symbolTable); + forceDeferGlobalInitializers, &deferredInitializers, + &variablesToReplace, symbolTable); } } // Add the function with initialization and the call to that. if (!deferredInitializers.empty()) diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// Copyright 2002 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. -// - -#ifndef COMPILER_TRANSLATOR_TREEOPS_EMULATE_PRECISION_H_ -#define COMPILER_TRANSLATOR_TREEOPS_EMULATE_PRECISION_H_ - -#include "GLSLANG/ShaderLang.h" -#include "common/angleutils.h" -#include "compiler/translator/Compiler.h" -#include "compiler/translator/InfoSink.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -// This class gathers all compound assignments from the AST and can then write -// the functions required for their precision emulation. This way there is no -// need to write a huge number of variations of the emulated compound assignment -// to every translated shader with emulation enabled. - -namespace sh -{ - -class EmulatePrecision : public TLValueTrackingTraverser -{ - public: - EmulatePrecision(TSymbolTable *symbolTable); - - void visitSymbol(TIntermSymbol *node) override; - bool visitBinary(Visit visit, TIntermBinary *node) override; - bool visitUnary(Visit visit, TIntermUnary *node) override; - bool visitAggregate(Visit visit, TIntermAggregate *node) override; - bool visitGlobalQualifierDeclaration(Visit visit, - TIntermGlobalQualifierDeclaration *node) override; - bool visitDeclaration(Visit visit, TIntermDeclaration *node) override; - - void writeEmulationHelpers(TInfoSinkBase &sink, - const int shaderVersion, - const ShShaderOutput outputLanguage); - - static bool SupportedInLanguage(const ShShaderOutput outputLanguage); - - private: - struct TypePair - { - TypePair(const char *l, const char *r) : lType(l), rType(r) {} - - const char *lType; - const char *rType; - }; - - struct TypePairComparator - { - bool operator()(const TypePair &l, const TypePair &r) const - { - if (l.lType == r.lType) - return l.rType < r.rType; - return l.lType < r.lType; - } - }; - - const TFunction *getInternalFunction(const ImmutableString &functionName, - const TType &returnType, - TIntermSequence *arguments, - const TVector ¶meters, - bool knownToNotHaveSideEffects); - TIntermAggregate *createRoundingFunctionCallNode(TIntermTyped *roundedChild); - TIntermAggregate *createCompoundAssignmentFunctionCallNode(TIntermTyped *left, - TIntermTyped *right, - const char *opNameStr); - - typedef std::set EmulationSet; - EmulationSet mEmulateCompoundAdd; - EmulationSet mEmulateCompoundSub; - EmulationSet mEmulateCompoundMul; - EmulationSet mEmulateCompoundDiv; - - // Map from mangled name to function. - TMap mInternalFunctions; - - bool mDeclaringVariables; -}; - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_EMULATE_PRECISION_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.cpp +++ /dev/null @@ -1,777 +0,0 @@ -// -// Copyright 2002 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. -// - -#include "compiler/translator/tree_ops/EmulatePrecision.h" - -#include "compiler/translator/FunctionLookup.h" - -#include - -namespace sh -{ - -namespace -{ - -constexpr const ImmutableString kParamXName("x"); -constexpr const ImmutableString kParamYName("y"); -constexpr const ImmutableString kAngleFrmString("angle_frm"); -constexpr const ImmutableString kAngleFrlString("angle_frl"); - -class RoundingHelperWriter : angle::NonCopyable -{ - public: - static RoundingHelperWriter *createHelperWriter(const ShShaderOutput outputLanguage); - - void writeCommonRoundingHelpers(TInfoSinkBase &sink, const int shaderVersion); - void writeCompoundAssignmentHelper(TInfoSinkBase &sink, - const char *lType, - const char *rType, - const char *opStr, - const char *opNameStr); - - virtual ~RoundingHelperWriter() {} - - protected: - RoundingHelperWriter(const ShShaderOutput outputLanguage) : mOutputLanguage(outputLanguage) {} - RoundingHelperWriter() = delete; - - const ShShaderOutput mOutputLanguage; - - private: - virtual std::string getTypeString(const char *glslType) = 0; - virtual void writeFloatRoundingHelpers(TInfoSinkBase &sink) = 0; - virtual void writeVectorRoundingHelpers(TInfoSinkBase &sink, const unsigned int size) = 0; - virtual void writeMatrixRoundingHelper(TInfoSinkBase &sink, - const unsigned int columns, - const unsigned int rows, - const char *functionName) = 0; -}; - -class RoundingHelperWriterGLSL : public RoundingHelperWriter -{ - public: - RoundingHelperWriterGLSL(const ShShaderOutput outputLanguage) - : RoundingHelperWriter(outputLanguage) - {} - - private: - std::string getTypeString(const char *glslType) override; - void writeFloatRoundingHelpers(TInfoSinkBase &sink) override; - void writeVectorRoundingHelpers(TInfoSinkBase &sink, const unsigned int size) override; - void writeMatrixRoundingHelper(TInfoSinkBase &sink, - const unsigned int columns, - const unsigned int rows, - const char *functionName) override; -}; - -class RoundingHelperWriterESSL : public RoundingHelperWriterGLSL -{ - public: - RoundingHelperWriterESSL(const ShShaderOutput outputLanguage) - : RoundingHelperWriterGLSL(outputLanguage) - {} - - private: - std::string getTypeString(const char *glslType) override; -}; - -class RoundingHelperWriterHLSL : public RoundingHelperWriter -{ - public: - RoundingHelperWriterHLSL(const ShShaderOutput outputLanguage) - : RoundingHelperWriter(outputLanguage) - {} - - private: - std::string getTypeString(const char *glslType) override; - void writeFloatRoundingHelpers(TInfoSinkBase &sink) override; - void writeVectorRoundingHelpers(TInfoSinkBase &sink, const unsigned int size) override; - void writeMatrixRoundingHelper(TInfoSinkBase &sink, - const unsigned int columns, - const unsigned int rows, - const char *functionName) override; -}; - -RoundingHelperWriter *RoundingHelperWriter::createHelperWriter(const ShShaderOutput outputLanguage) -{ - ASSERT(EmulatePrecision::SupportedInLanguage(outputLanguage)); - switch (outputLanguage) - { - case SH_HLSL_4_1_OUTPUT: - return new RoundingHelperWriterHLSL(outputLanguage); - case SH_ESSL_OUTPUT: - return new RoundingHelperWriterESSL(outputLanguage); - default: - return new RoundingHelperWriterGLSL(outputLanguage); - } -} - -void RoundingHelperWriter::writeCommonRoundingHelpers(TInfoSinkBase &sink, const int shaderVersion) -{ - // Write the angle_frm functions that round floating point numbers to - // half precision, and angle_frl functions that round them to minimum lowp - // precision. - - writeFloatRoundingHelpers(sink); - writeVectorRoundingHelpers(sink, 2); - writeVectorRoundingHelpers(sink, 3); - writeVectorRoundingHelpers(sink, 4); - if (shaderVersion > 100) - { - for (unsigned int columns = 2; columns <= 4; ++columns) - { - for (unsigned int rows = 2; rows <= 4; ++rows) - { - writeMatrixRoundingHelper(sink, columns, rows, "angle_frm"); - writeMatrixRoundingHelper(sink, columns, rows, "angle_frl"); - } - } - } - else - { - for (unsigned int size = 2; size <= 4; ++size) - { - writeMatrixRoundingHelper(sink, size, size, "angle_frm"); - writeMatrixRoundingHelper(sink, size, size, "angle_frl"); - } - } -} - -void RoundingHelperWriter::writeCompoundAssignmentHelper(TInfoSinkBase &sink, - const char *lType, - const char *rType, - const char *opStr, - const char *opNameStr) -{ - std::string lTypeStr = getTypeString(lType); - std::string rTypeStr = getTypeString(rType); - - // Note that y should be passed through angle_frm at the function call site, - // but x can't be passed through angle_frm there since it is an inout parameter. - // So only pass x and the result through angle_frm here. - // clang-format off - sink << - lTypeStr << " angle_compound_" << opNameStr << "_frm(inout " << lTypeStr << " x, in " << rTypeStr << " y) {\n" - " x = angle_frm(angle_frm(x) " << opStr << " y);\n" - " return x;\n" - "}\n"; - sink << - lTypeStr << " angle_compound_" << opNameStr << "_frl(inout " << lTypeStr << " x, in " << rTypeStr << " y) {\n" - " x = angle_frl(angle_frl(x) " << opStr << " y);\n" - " return x;\n" - "}\n"; - // clang-format on -} - -std::string RoundingHelperWriterGLSL::getTypeString(const char *glslType) -{ - return glslType; -} - -std::string RoundingHelperWriterESSL::getTypeString(const char *glslType) -{ - std::stringstream typeStrStr = sh::InitializeStream(); - typeStrStr << "highp " << glslType; - return typeStrStr.str(); -} - -void RoundingHelperWriterGLSL::writeFloatRoundingHelpers(TInfoSinkBase &sink) -{ - // Unoptimized version of angle_frm for single floats: - // - // int webgl_maxNormalExponent(in int exponentBits) - // { - // int possibleExponents = int(exp2(float(exponentBits))); - // int exponentBias = possibleExponents / 2 - 1; - // int allExponentBitsOne = possibleExponents - 1; - // return (allExponentBitsOne - 1) - exponentBias; - // } - // - // float angle_frm(in float x) - // { - // int mantissaBits = 10; - // int exponentBits = 5; - // float possibleMantissas = exp2(float(mantissaBits)); - // float mantissaMax = 2.0 - 1.0 / possibleMantissas; - // int maxNE = webgl_maxNormalExponent(exponentBits); - // float max = exp2(float(maxNE)) * mantissaMax; - // if (x > max) - // { - // return max; - // } - // if (x < -max) - // { - // return -max; - // } - // float exponent = floor(log2(abs(x))); - // if (abs(x) == 0.0 || exponent < -float(maxNE)) - // { - // return 0.0 * sign(x) - // } - // x = x * exp2(-(exponent - float(mantissaBits))); - // x = sign(x) * floor(abs(x)); - // return x * exp2(exponent - float(mantissaBits)); - // } - - // All numbers with a magnitude less than 2^-15 are subnormal, and are - // flushed to zero. - - // Note the constant numbers below: - // a) 65504 is the maximum possible mantissa (1.1111111111 in binary) times - // 2^15, the maximum normal exponent. - // b) 10.0 is the number of mantissa bits. - // c) -25.0 is the minimum normal half-float exponent -15.0 minus the number - // of mantissa bits. - // d) + 1e-30 is to make sure the argument of log2() won't be zero. It can - // only affect the result of log2 on x where abs(x) < 1e-22. Since these - // numbers will be flushed to zero either way (2^-15 is the smallest - // normal positive number), this does not introduce any error. - - std::string floatType = getTypeString("float"); - - // clang-format off - sink << - floatType << " angle_frm(in " << floatType << " x) {\n" - " x = clamp(x, -65504.0, 65504.0);\n" - " " << floatType << " exponent = floor(log2(abs(x) + 1e-30)) - 10.0;\n" - " bool isNonZero = (exponent >= -25.0);\n" - " x = x * exp2(-exponent);\n" - " x = sign(x) * floor(abs(x));\n" - " return x * exp2(exponent) * float(isNonZero);\n" - "}\n"; - - sink << - floatType << " angle_frl(in " << floatType << " x) {\n" - " x = clamp(x, -2.0, 2.0);\n" - " x = x * 256.0;\n" - " x = sign(x) * floor(abs(x));\n" - " return x * 0.00390625;\n" - "}\n"; - // clang-format on -} - -void RoundingHelperWriterGLSL::writeVectorRoundingHelpers(TInfoSinkBase &sink, - const unsigned int size) -{ - std::stringstream vecTypeStrStr = sh::InitializeStream(); - vecTypeStrStr << "vec" << size; - std::string vecType = getTypeString(vecTypeStrStr.str().c_str()); - - // clang-format off - sink << - vecType << " angle_frm(in " << vecType << " v) {\n" - " v = clamp(v, -65504.0, 65504.0);\n" - " " << vecType << " exponent = floor(log2(abs(v) + 1e-30)) - 10.0;\n" - " bvec" << size << " isNonZero = greaterThanEqual(exponent, vec" << size << "(-25.0));\n" - " v = v * exp2(-exponent);\n" - " v = sign(v) * floor(abs(v));\n" - " return v * exp2(exponent) * vec" << size << "(isNonZero);\n" - "}\n"; - - sink << - vecType << " angle_frl(in " << vecType << " v) {\n" - " v = clamp(v, -2.0, 2.0);\n" - " v = v * 256.0;\n" - " v = sign(v) * floor(abs(v));\n" - " return v * 0.00390625;\n" - "}\n"; - // clang-format on -} - -void RoundingHelperWriterGLSL::writeMatrixRoundingHelper(TInfoSinkBase &sink, - const unsigned int columns, - const unsigned int rows, - const char *functionName) -{ - std::stringstream matTypeStrStr = sh::InitializeStream(); - matTypeStrStr << "mat" << columns; - if (rows != columns) - { - matTypeStrStr << "x" << rows; - } - std::string matType = getTypeString(matTypeStrStr.str().c_str()); - - sink << matType << " " << functionName << "(in " << matType << " m) {\n" - << " " << matType << " rounded;\n"; - - for (unsigned int i = 0; i < columns; ++i) - { - sink << " rounded[" << i << "] = " << functionName << "(m[" << i << "]);\n"; - } - - sink << " return rounded;\n" - "}\n"; -} - -static const char *GetHLSLTypeStr(const char *floatTypeStr) -{ - if (strcmp(floatTypeStr, "float") == 0) - { - return "float"; - } - if (strcmp(floatTypeStr, "vec2") == 0) - { - return "float2"; - } - if (strcmp(floatTypeStr, "vec3") == 0) - { - return "float3"; - } - if (strcmp(floatTypeStr, "vec4") == 0) - { - return "float4"; - } - if (strcmp(floatTypeStr, "mat2") == 0) - { - return "float2x2"; - } - if (strcmp(floatTypeStr, "mat3") == 0) - { - return "float3x3"; - } - if (strcmp(floatTypeStr, "mat4") == 0) - { - return "float4x4"; - } - if (strcmp(floatTypeStr, "mat2x3") == 0) - { - return "float2x3"; - } - if (strcmp(floatTypeStr, "mat2x4") == 0) - { - return "float2x4"; - } - if (strcmp(floatTypeStr, "mat3x2") == 0) - { - return "float3x2"; - } - if (strcmp(floatTypeStr, "mat3x4") == 0) - { - return "float3x4"; - } - if (strcmp(floatTypeStr, "mat4x2") == 0) - { - return "float4x2"; - } - if (strcmp(floatTypeStr, "mat4x3") == 0) - { - return "float4x3"; - } - UNREACHABLE(); - return nullptr; -} - -std::string RoundingHelperWriterHLSL::getTypeString(const char *glslType) -{ - return GetHLSLTypeStr(glslType); -} - -void RoundingHelperWriterHLSL::writeFloatRoundingHelpers(TInfoSinkBase &sink) -{ - // In HLSL scalars are the same as 1-vectors. - writeVectorRoundingHelpers(sink, 1); -} - -void RoundingHelperWriterHLSL::writeVectorRoundingHelpers(TInfoSinkBase &sink, - const unsigned int size) -{ - std::stringstream vecTypeStrStr = sh::InitializeStream(); - vecTypeStrStr << "float" << size; - std::string vecType = vecTypeStrStr.str(); - - // clang-format off - sink << - vecType << " angle_frm(" << vecType << " v) {\n" - " v = clamp(v, -65504.0, 65504.0);\n" - " " << vecType << " exponent = floor(log2(abs(v) + 1e-30)) - 10.0;\n" - " bool" << size << " isNonZero = exponent < -25.0;\n" - " v = v * exp2(-exponent);\n" - " v = sign(v) * floor(abs(v));\n" - " return v * exp2(exponent) * (float" << size << ")(isNonZero);\n" - "}\n"; - - sink << - vecType << " angle_frl(" << vecType << " v) {\n" - " v = clamp(v, -2.0, 2.0);\n" - " v = v * 256.0;\n" - " v = sign(v) * floor(abs(v));\n" - " return v * 0.00390625;\n" - "}\n"; - // clang-format on -} - -void RoundingHelperWriterHLSL::writeMatrixRoundingHelper(TInfoSinkBase &sink, - const unsigned int columns, - const unsigned int rows, - const char *functionName) -{ - std::stringstream matTypeStrStr = sh::InitializeStream(); - matTypeStrStr << "float" << columns << "x" << rows; - std::string matType = matTypeStrStr.str(); - - sink << matType << " " << functionName << "(" << matType << " m) {\n" - << " " << matType << " rounded;\n"; - - for (unsigned int i = 0; i < columns; ++i) - { - sink << " rounded[" << i << "] = " << functionName << "(m[" << i << "]);\n"; - } - - sink << " return rounded;\n" - "}\n"; -} - -bool canRoundFloat(const TType &type) -{ - return type.getBasicType() == EbtFloat && !type.isArray() && - (type.getPrecision() == EbpLow || type.getPrecision() == EbpMedium); -} - -bool ParentUsesResult(TIntermNode *parent, TIntermTyped *node) -{ - if (!parent) - { - return false; - } - - TIntermBlock *blockParent = parent->getAsBlock(); - // If the parent is a block, the result is not assigned anywhere, - // so rounding it is not needed. In particular, this can avoid a lot of - // unnecessary rounding of unused return values of assignment. - if (blockParent) - { - return false; - } - TIntermBinary *binaryParent = parent->getAsBinaryNode(); - if (binaryParent && binaryParent->getOp() == EOpComma && (binaryParent->getRight() != node)) - { - return false; - } - return true; -} - -bool ParentConstructorTakesCareOfRounding(TIntermNode *parent, TIntermTyped *node) -{ - if (!parent) - { - return false; - } - TIntermAggregate *parentConstructor = parent->getAsAggregate(); - if (!parentConstructor || parentConstructor->getOp() != EOpConstruct) - { - return false; - } - if (parentConstructor->getPrecision() != node->getPrecision()) - { - return false; - } - return canRoundFloat(parentConstructor->getType()); -} - -} // namespace - -EmulatePrecision::EmulatePrecision(TSymbolTable *symbolTable) - : TLValueTrackingTraverser(true, true, true, symbolTable), mDeclaringVariables(false) -{} - -void EmulatePrecision::visitSymbol(TIntermSymbol *node) -{ - TIntermNode *parent = getParentNode(); - if (canRoundFloat(node->getType()) && ParentUsesResult(parent, node) && - !ParentConstructorTakesCareOfRounding(parent, node) && !mDeclaringVariables && - !isLValueRequiredHere()) - { - TIntermNode *replacement = createRoundingFunctionCallNode(node); - queueReplacement(replacement, OriginalNode::BECOMES_CHILD); - } -} - -bool EmulatePrecision::visitBinary(Visit visit, TIntermBinary *node) -{ - bool visitChildren = true; - - TOperator op = node->getOp(); - - // RHS of initialize is not being declared. - if (op == EOpInitialize && visit == InVisit) - mDeclaringVariables = false; - - if ((op == EOpIndexDirectStruct) && visit == InVisit) - visitChildren = false; - - if (visit != PreVisit) - return visitChildren; - - const TType &type = node->getType(); - bool roundFloat = canRoundFloat(type); - - if (roundFloat) - { - switch (op) - { - // Math operators that can result in a float may need to apply rounding to the return - // value. Note that in the case of assignment, the rounding is applied to its return - // value here, not the value being assigned. - case EOpAssign: - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpDiv: - case EOpVectorTimesScalar: - case EOpVectorTimesMatrix: - case EOpMatrixTimesVector: - case EOpMatrixTimesScalar: - case EOpMatrixTimesMatrix: - { - TIntermNode *parent = getParentNode(); - if (!ParentUsesResult(parent, node) || - ParentConstructorTakesCareOfRounding(parent, node)) - { - break; - } - TIntermNode *replacement = createRoundingFunctionCallNode(node); - queueReplacement(replacement, OriginalNode::BECOMES_CHILD); - break; - } - - // Compound assignment cases need to replace the operator with a function call. - case EOpAddAssign: - { - mEmulateCompoundAdd.insert( - TypePair(type.getBuiltInTypeNameString(), - node->getRight()->getType().getBuiltInTypeNameString())); - TIntermNode *replacement = createCompoundAssignmentFunctionCallNode( - node->getLeft(), node->getRight(), "add"); - queueReplacement(replacement, OriginalNode::IS_DROPPED); - break; - } - case EOpSubAssign: - { - mEmulateCompoundSub.insert( - TypePair(type.getBuiltInTypeNameString(), - node->getRight()->getType().getBuiltInTypeNameString())); - TIntermNode *replacement = createCompoundAssignmentFunctionCallNode( - node->getLeft(), node->getRight(), "sub"); - queueReplacement(replacement, OriginalNode::IS_DROPPED); - break; - } - case EOpMulAssign: - case EOpVectorTimesMatrixAssign: - case EOpVectorTimesScalarAssign: - case EOpMatrixTimesScalarAssign: - case EOpMatrixTimesMatrixAssign: - { - mEmulateCompoundMul.insert( - TypePair(type.getBuiltInTypeNameString(), - node->getRight()->getType().getBuiltInTypeNameString())); - TIntermNode *replacement = createCompoundAssignmentFunctionCallNode( - node->getLeft(), node->getRight(), "mul"); - queueReplacement(replacement, OriginalNode::IS_DROPPED); - break; - } - case EOpDivAssign: - { - mEmulateCompoundDiv.insert( - TypePair(type.getBuiltInTypeNameString(), - node->getRight()->getType().getBuiltInTypeNameString())); - TIntermNode *replacement = createCompoundAssignmentFunctionCallNode( - node->getLeft(), node->getRight(), "div"); - queueReplacement(replacement, OriginalNode::IS_DROPPED); - break; - } - default: - // The rest of the binary operations should not need precision emulation. - break; - } - } - return visitChildren; -} - -bool EmulatePrecision::visitDeclaration(Visit visit, TIntermDeclaration *node) -{ - // Variable or interface block declaration. - if (visit == PreVisit) - { - mDeclaringVariables = true; - } - else if (visit == InVisit) - { - mDeclaringVariables = true; - } - else - { - mDeclaringVariables = false; - } - return true; -} - -bool EmulatePrecision::visitGlobalQualifierDeclaration(Visit visit, - TIntermGlobalQualifierDeclaration *node) -{ - return false; -} - -bool EmulatePrecision::visitAggregate(Visit visit, TIntermAggregate *node) -{ - if (visit != PreVisit) - return true; - - // User-defined function return values are not rounded. The calculations that produced - // the value inside the function definition should have been rounded. - TOperator op = node->getOp(); - if (op == EOpCallInternalRawFunction || op == EOpCallFunctionInAST || - (op == EOpConstruct && node->getBasicType() == EbtStruct)) - { - return true; - } - - TIntermNode *parent = getParentNode(); - if (canRoundFloat(node->getType()) && ParentUsesResult(parent, node) && - !ParentConstructorTakesCareOfRounding(parent, node)) - { - TIntermNode *replacement = createRoundingFunctionCallNode(node); - queueReplacement(replacement, OriginalNode::BECOMES_CHILD); - } - return true; -} - -bool EmulatePrecision::visitUnary(Visit visit, TIntermUnary *node) -{ - switch (node->getOp()) - { - case EOpNegative: - case EOpLogicalNot: - case EOpPostIncrement: - case EOpPostDecrement: - case EOpPreIncrement: - case EOpPreDecrement: - case EOpLogicalNotComponentWise: - break; - default: - if (canRoundFloat(node->getType()) && visit == PreVisit) - { - TIntermNode *replacement = createRoundingFunctionCallNode(node); - queueReplacement(replacement, OriginalNode::BECOMES_CHILD); - } - break; - } - - return true; -} - -void EmulatePrecision::writeEmulationHelpers(TInfoSinkBase &sink, - const int shaderVersion, - const ShShaderOutput outputLanguage) -{ - std::unique_ptr roundingHelperWriter( - RoundingHelperWriter::createHelperWriter(outputLanguage)); - - roundingHelperWriter->writeCommonRoundingHelpers(sink, shaderVersion); - - EmulationSet::const_iterator it; - for (it = mEmulateCompoundAdd.begin(); it != mEmulateCompoundAdd.end(); it++) - roundingHelperWriter->writeCompoundAssignmentHelper(sink, it->lType, it->rType, "+", "add"); - for (it = mEmulateCompoundSub.begin(); it != mEmulateCompoundSub.end(); it++) - roundingHelperWriter->writeCompoundAssignmentHelper(sink, it->lType, it->rType, "-", "sub"); - for (it = mEmulateCompoundDiv.begin(); it != mEmulateCompoundDiv.end(); it++) - roundingHelperWriter->writeCompoundAssignmentHelper(sink, it->lType, it->rType, "/", "div"); - for (it = mEmulateCompoundMul.begin(); it != mEmulateCompoundMul.end(); it++) - roundingHelperWriter->writeCompoundAssignmentHelper(sink, it->lType, it->rType, "*", "mul"); -} - -// static -bool EmulatePrecision::SupportedInLanguage(const ShShaderOutput outputLanguage) -{ - switch (outputLanguage) - { - case SH_HLSL_4_1_OUTPUT: - case SH_ESSL_OUTPUT: - return true; - default: - // Other languages not yet supported - return (outputLanguage == SH_GLSL_COMPATIBILITY_OUTPUT || - sh::IsGLSL130OrNewer(outputLanguage)); - } -} - -const TFunction *EmulatePrecision::getInternalFunction(const ImmutableString &functionName, - const TType &returnType, - TIntermSequence *arguments, - const TVector ¶meters, - bool knownToNotHaveSideEffects) -{ - ImmutableString mangledName = TFunctionLookup::GetMangledName(functionName.data(), *arguments); - if (mInternalFunctions.find(mangledName) == mInternalFunctions.end()) - { - TFunction *func = new TFunction(mSymbolTable, functionName, SymbolType::AngleInternal, - new TType(returnType), knownToNotHaveSideEffects); - ASSERT(parameters.size() == arguments->size()); - for (size_t i = 0; i < parameters.size(); ++i) - { - func->addParameter(parameters[i]); - } - mInternalFunctions[mangledName] = func; - } - return mInternalFunctions[mangledName]; -} - -TIntermAggregate *EmulatePrecision::createRoundingFunctionCallNode(TIntermTyped *roundedChild) -{ - const ImmutableString *roundFunctionName = &kAngleFrmString; - if (roundedChild->getPrecision() == EbpLow) - roundFunctionName = &kAngleFrlString; - TIntermSequence arguments; - arguments.push_back(roundedChild); - - TVector parameters; - TType *paramType = new TType(roundedChild->getType()); - paramType->setPrecision(EbpHigh); - paramType->setQualifier(EvqIn); - parameters.push_back(new TVariable(mSymbolTable, kParamXName, - static_cast(paramType), - SymbolType::AngleInternal)); - - return TIntermAggregate::CreateRawFunctionCall( - *getInternalFunction(*roundFunctionName, roundedChild->getType(), &arguments, parameters, - true), - &arguments); -} - -TIntermAggregate *EmulatePrecision::createCompoundAssignmentFunctionCallNode(TIntermTyped *left, - TIntermTyped *right, - const char *opNameStr) -{ - std::stringstream strstr = sh::InitializeStream(); - if (left->getPrecision() == EbpMedium) - strstr << "angle_compound_" << opNameStr << "_frm"; - else - strstr << "angle_compound_" << opNameStr << "_frl"; - ImmutableString functionName = ImmutableString(strstr.str()); - TIntermSequence arguments; - arguments.push_back(left); - arguments.push_back(right); - - TVector parameters; - TType *leftParamType = new TType(left->getType()); - leftParamType->setPrecision(EbpHigh); - leftParamType->setQualifier(EvqOut); - parameters.push_back(new TVariable(mSymbolTable, kParamXName, - static_cast(leftParamType), - SymbolType::AngleInternal)); - TType *rightParamType = new TType(right->getType()); - rightParamType->setPrecision(EbpHigh); - rightParamType->setQualifier(EvqIn); - parameters.push_back(new TVariable(mSymbolTable, kParamYName, - static_cast(rightParamType), - SymbolType::AngleInternal)); - - return TIntermAggregate::CreateRawFunctionCall( - *getInternalFunction(functionName, left->getType(), &arguments, parameters, false), - &arguments); -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp @@ -55,10 +55,30 @@ initializedNode->getType().isNamelessStruct()) { AddStructZeroInitSequence(initializedNode, canUseLoopsToInitialize, highPrecisionSupported, initSequenceOut, symbolTable); } + else if (initializedNode->getType().isInterfaceBlock()) + { + const ImmutableString &name = + static_cast(initializedNode)->getName(); + const TType &type = initializedNode->getType(); + const TInterfaceBlock &interfaceBlock = *type.getInterfaceBlock(); + const TFieldList &fieldList = interfaceBlock.fields(); + for (size_t fieldIndex = 0; fieldIndex < fieldList.size(); ++fieldIndex) + { + const TField &field = *fieldList[fieldIndex]; + TIntermTyped *blockReference = ReferenceGlobalVariable(name, *symbolTable); + TIntermTyped *fieldIndexRef = CreateIndexNode(static_cast(fieldIndex)); + TIntermTyped *fieldReference = new TIntermBinary( + TOperator::EOpIndexDirectInterfaceBlock, blockReference, fieldIndexRef); + TIntermTyped *fieldZero = CreateZeroNode(*field.type()); + TIntermTyped *assignment = + new TIntermBinary(TOperator::EOpAssign, fieldReference, fieldZero); + initSequenceOut->push_back(assignment); + } + } else { initSequenceOut->push_back(CreateZeroInitAssignment(initializedNode)); } } @@ -167,18 +187,18 @@ int shaderVersion, const TExtensionBehavior &extensionBehavior, bool canUseLoopsToInitialize, bool highPrecisionSupported) { - for (const auto &var : variables) + for (const ShaderVariable &var : variables) { // Note that tempVariableName will reference a short-lived char array here - that's fine // since we're only using it to find symbols. ImmutableString tempVariableName(var.name.c_str(), var.name.length()); TIntermTyped *initializedSymbol = nullptr; - if (var.isBuiltIn()) + if (var.isBuiltIn() && !symbolTable->findUserDefined(tempVariableName)) { initializedSymbol = ReferenceBuiltInVariable(tempVariableName, *symbolTable, shaderVersion); if (initializedSymbol->getQualifier() == EvqFragData && !IsExtensionEnabled(extensionBehavior, TExtension::EXT_draw_buffers)) diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h @@ -0,0 +1,37 @@ +// +// Copyright 2021 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. +// +// MonomorphizeUnsupportedFunctions: Monomorphize functions that are called with +// parameters that are incompatible with both Vulkan GLSL and Metal: +// +// - Samplers in structs +// - Structs that have samplers +// - Partially subscripted array of array of samplers +// - Partially subscripted array of array of images +// - Atomic counters +// - samplerCube variables when emulating ES2's cube map sampling +// - image* variables with r32f formats (to emulate imageAtomicExchange) +// +// This transformation basically duplicates such functions, removes the +// sampler/image/atomic_counter parameters and uses the opaque uniforms used by the caller. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_VULKAN_MONOMORPHIZEUNSUPPORTEDFUNCTIONS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_VULKAN_MONOMORPHIZEUNSUPPORTEDFUNCTIONS_H_ + +#include "common/angleutils.h" +#include "compiler/translator/Compiler.h" + +namespace sh +{ +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool MonomorphizeUnsupportedFunctions(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + ShCompileOptions compileOptions); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_VULKAN_MONOMORPHIZEUNSUPPORTEDFUNCTIONS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp @@ -0,0 +1,561 @@ +// +// Copyright 2021 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. +// +// MonomorphizeUnsupportedFunctions: Monomorphize functions that are called with +// parameters that are incompatible with both Vulkan GLSL and Metal. +// + +#include "compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h" + +#include "compiler/translator/ImmutableStringBuilder.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" + +namespace sh +{ +namespace +{ +struct Argument +{ + size_t argumentIndex; + TIntermTyped *argument; +}; + +struct FunctionData +{ + // Whether the original function is used. If this is false, the function can be removed because + // all callers have been modified. + bool isOriginalUsed; + // The original definition of the function, used to create the monomorphized version. + TIntermFunctionDefinition *originalDefinition; + // List of monomorphized versions of this function. They will be added next to the original + // version (or replace it). + TVector monomorphizedDefinitions; +}; + +using FunctionMap = angle::HashMap; + +// Traverse the function definitions and initialize the map. Allows visitAggregate to have access +// to TIntermFunctionDefinition even when the function is only forward declared at that point. +void InitializeFunctionMap(TIntermBlock *root, FunctionMap *functionMapOut) +{ + TIntermSequence &sequence = *root->getSequence(); + + for (TIntermNode *node : sequence) + { + TIntermFunctionDefinition *asFuncDef = node->getAsFunctionDefinition(); + if (asFuncDef != nullptr) + { + const TFunction *function = asFuncDef->getFunction(); + ASSERT(function && functionMapOut->find(function) == functionMapOut->end()); + (*functionMapOut)[function] = FunctionData{false, asFuncDef, {}}; + } + } +} + +const TVariable *GetBaseUniform(TIntermTyped *node, bool *isSamplerInStructOut) +{ + *isSamplerInStructOut = false; + + while (node->getAsBinaryNode()) + { + TIntermBinary *asBinary = node->getAsBinaryNode(); + + TOperator op = asBinary->getOp(); + + // No opaque uniform can be inside an interface block. + if (op == EOpIndexDirectInterfaceBlock) + { + return nullptr; + } + + if (op == EOpIndexDirectStruct) + { + *isSamplerInStructOut = true; + } + + node = asBinary->getLeft(); + } + + // Only interested in uniform opaque types. If a function call within another function uses + // opaque uniforms in an unsupported way, it will be replaced in a follow up pass after the + // calling function is monomorphized. + if (node->getType().getQualifier() != EvqUniform) + { + return nullptr; + } + + ASSERT(IsOpaqueType(node->getType().getBasicType()) || + node->getType().isStructureContainingSamplers()); + + TIntermSymbol *asSymbol = node->getAsSymbolNode(); + ASSERT(asSymbol); + + return &asSymbol->variable(); +} + +TIntermTyped *ExtractSideEffects(TSymbolTable *symbolTable, + TIntermTyped *node, + TIntermSequence *replacementIndices) +{ + TIntermTyped *withoutSideEffects = node->deepCopy(); + + for (TIntermBinary *asBinary = withoutSideEffects->getAsBinaryNode(); asBinary; + asBinary = asBinary->getLeft()->getAsBinaryNode()) + { + TOperator op = asBinary->getOp(); + TIntermTyped *index = asBinary->getRight(); + + if (op == EOpIndexDirectStruct) + { + break; + } + + // No side effects with constant expressions. + if (op == EOpIndexDirect) + { + ASSERT(index->getAsConstantUnion()); + continue; + } + + ASSERT(op == EOpIndexIndirect); + + // If the index is a symbol, there's no side effect, so leave it as-is. + if (index->getAsSymbolNode()) + { + continue; + } + + // Otherwise create a temp variable initialized with the index and use that temp variable as + // the index. + TIntermDeclaration *tempDecl = nullptr; + TVariable *tempVar = DeclareTempVariable(symbolTable, index, EvqTemporary, &tempDecl); + + replacementIndices->push_back(tempDecl); + asBinary->replaceChildNode(index, new TIntermSymbol(tempVar)); + } + + return withoutSideEffects; +} + +void CreateMonomorphizedFunctionCallArgs(const TIntermSequence &originalCallArguments, + const TVector &replacedArguments, + TIntermSequence *substituteArgsOut) +{ + size_t nextReplacedArg = 0; + for (size_t argIndex = 0; argIndex < originalCallArguments.size(); ++argIndex) + { + if (nextReplacedArg >= replacedArguments.size() || + argIndex != replacedArguments[nextReplacedArg].argumentIndex) + { + // Not replaced, keep argument as is. + substituteArgsOut->push_back(originalCallArguments[argIndex]); + } + else + { + TIntermTyped *argument = replacedArguments[nextReplacedArg].argument; + + // Iterate over indices of the argument and create a new arg for every non-const + // index. Note that the index itself may be an expression, and it may require further + // substitution in the next pass. + while (argument->getAsBinaryNode()) + { + TIntermBinary *asBinary = argument->getAsBinaryNode(); + if (asBinary->getOp() == EOpIndexIndirect) + { + TIntermTyped *index = asBinary->getRight(); + substituteArgsOut->push_back(index->deepCopy()); + } + argument = asBinary->getLeft(); + } + + ++nextReplacedArg; + } + } +} + +const TFunction *MonomorphizeFunction(TSymbolTable *symbolTable, + const TFunction *original, + TVector *replacedArguments, + VariableReplacementMap *argumentMapOut) +{ + TFunction *substituteFunction = + new TFunction(symbolTable, kEmptyImmutableString, SymbolType::AngleInternal, + &original->getReturnType(), original->isKnownToNotHaveSideEffects()); + + size_t nextReplacedArg = 0; + for (size_t paramIndex = 0; paramIndex < original->getParamCount(); ++paramIndex) + { + const TVariable *originalParam = original->getParam(paramIndex); + + if (nextReplacedArg >= replacedArguments->size() || + paramIndex != (*replacedArguments)[nextReplacedArg].argumentIndex) + { + TVariable *substituteArgument = + new TVariable(symbolTable, originalParam->name(), &originalParam->getType(), + originalParam->symbolType()); + // Not replaced, add an identical parameter. + substituteFunction->addParameter(substituteArgument); + (*argumentMapOut)[originalParam] = new TIntermSymbol(substituteArgument); + } + else + { + TIntermTyped *substituteArgument = (*replacedArguments)[nextReplacedArg].argument; + (*argumentMapOut)[originalParam] = substituteArgument; + + // Iterate over indices of the argument and create a new parameter for every non-const + // index (which may be an expression). Replace the symbol in the argument with a + // variable of the index type. This is later used to replace the parameter in the + // function body. + while (substituteArgument->getAsBinaryNode()) + { + TIntermBinary *asBinary = substituteArgument->getAsBinaryNode(); + if (asBinary->getOp() == EOpIndexIndirect) + { + TIntermTyped *index = asBinary->getRight(); + TType *indexType = new TType(index->getType()); + indexType->setQualifier(EvqParamIn); + + TVariable *param = new TVariable(symbolTable, kEmptyImmutableString, indexType, + SymbolType::AngleInternal); + substituteFunction->addParameter(param); + + // The argument now uses the function parameters as indices. + asBinary->replaceChildNode(asBinary->getRight(), new TIntermSymbol(param)); + } + substituteArgument = asBinary->getLeft(); + } + + ++nextReplacedArg; + } + } + + return substituteFunction; +} + +class MonomorphizeTraverser final : public TIntermTraverser +{ + public: + explicit MonomorphizeTraverser(TCompiler *compiler, + TSymbolTable *symbolTable, + ShCompileOptions compileOptions, + FunctionMap *functionMap) + : TIntermTraverser(true, false, false, symbolTable), + mCompiler(compiler), + mCompileOptions(compileOptions), + mFunctionMap(functionMap) + {} + + bool visitAggregate(Visit visit, TIntermAggregate *node) override + { + if (node->getOp() != EOpCallFunctionInAST) + { + return true; + } + + const TFunction *function = node->getFunction(); + ASSERT(function && mFunctionMap->find(function) != mFunctionMap->end()); + + FunctionData &data = (*mFunctionMap)[function]; + + TIntermFunctionDefinition *monomorphized = + processFunctionCall(node, data.originalDefinition, &data.isOriginalUsed); + if (monomorphized) + { + data.monomorphizedDefinitions.push_back(monomorphized); + } + + return true; + } + + bool getAnyMonomorphized() const { return mAnyMonomorphized; } + + private: + TIntermFunctionDefinition *processFunctionCall(TIntermAggregate *functionCall, + TIntermFunctionDefinition *originalDefinition, + bool *isOriginalUsedOut) + { + const TFunction *function = functionCall->getFunction(); + const TIntermSequence &callArguments = *functionCall->getSequence(); + + TVector replacedArguments; + TIntermSequence replacementIndices; + + // Go through function call arguments, and see if any is used in an unsupported way. + for (size_t argIndex = 0; argIndex < callArguments.size(); ++argIndex) + { + TIntermTyped *callArgument = callArguments[argIndex]->getAsTyped(); + const TVariable *funcArgument = function->getParam(argIndex); + + // Only interested in opaque uniforms and structs that contain samplers. + const bool isOpaqueType = IsOpaqueType(funcArgument->getType().getBasicType()); + const bool isStructContainingSamplers = + funcArgument->getType().isStructureContainingSamplers(); + if (!isOpaqueType && !isStructContainingSamplers) + { + continue; + } + + // If not uniform (the variable was itself a function parameter), don't process it in + // this pass, as we don't know which actual uniform it corresponds to. + bool isSamplerInStruct = false; + const TVariable *uniform = GetBaseUniform(callArgument, &isSamplerInStruct); + if (uniform == nullptr) + { + continue; + } + + // Conditions for monomorphization: + // + // - If the parameter is a structure that contains samplers (so in RewriteStructSamplers + // we don't need to rewrite the functions to accept multiple parameters split from the + // struct), or + // - If the opaque uniform is a sampler in a struct (which can create an array-of-array + // situation), and the function expects an array of samplers, or + // - If the opaque uniform is an array of array of sampler or image, and it's partially + // subscripted (i.e. the function itself expects an array), or + // - The opaque uniform is an atomic counter + // - The opaque uniform is a samplerCube and ES2's cube sampling emulation is requested. + // - The opaque uniform is an image* with r32f format. + // + const TType &type = uniform->getType(); + const bool isArrayOfArrayOfSamplerOrImage = + (type.isSampler() || type.isImage()) && type.isArrayOfArrays(); + const bool isParameterArrayOfOpaqueType = funcArgument->getType().isArray(); + const bool isAtomicCounter = type.isAtomicCounter(); + const bool isSamplerCubeEmulation = + type.isSamplerCube() && + (mCompileOptions & SH_EMULATE_SEAMFUL_CUBE_MAP_SAMPLING) != 0; + const bool isR32fImage = + type.isImage() && type.getLayoutQualifier().imageInternalFormat == EiifR32F; + + if (!(isStructContainingSamplers || + (isSamplerInStruct && isParameterArrayOfOpaqueType) || + (isArrayOfArrayOfSamplerOrImage && isParameterArrayOfOpaqueType) || + isAtomicCounter || isSamplerCubeEmulation || isR32fImage)) + { + continue; + } + + // Copy the argument and extract the side effects. + TIntermTyped *argument = + ExtractSideEffects(mSymbolTable, callArgument, &replacementIndices); + + replacedArguments.push_back({argIndex, argument}); + } + + if (replacedArguments.empty()) + { + *isOriginalUsedOut = true; + return nullptr; + } + + mAnyMonomorphized = true; + + insertStatementsInParentBlock(replacementIndices); + + // Create the arguments for the substitute function call. Done before monomorphizing the + // function, which transforms the arguments to what needs to be replaced in the function + // body. + TIntermSequence newCallArgs; + CreateMonomorphizedFunctionCallArgs(callArguments, replacedArguments, &newCallArgs); + + // Duplicate the function and substitute the replaced arguments with only the non-const + // indices. Additionally, substitute the non-const indices of arguments with the new + // function parameters. + VariableReplacementMap argumentMap; + const TFunction *monomorphized = + MonomorphizeFunction(mSymbolTable, function, &replacedArguments, &argumentMap); + + // Replace this function call with a call to the new one. + queueReplacement(TIntermAggregate::CreateFunctionCall(*monomorphized, &newCallArgs), + OriginalNode::IS_DROPPED); + + // Create a new function definition, with the body of the old function but with the replaced + // parameters substituted with the calling expressions. + TIntermFunctionPrototype *substitutePrototype = new TIntermFunctionPrototype(monomorphized); + TIntermBlock *substituteBlock = originalDefinition->getBody()->deepCopy(); + GetDeclaratorReplacements(mSymbolTable, substituteBlock, &argumentMap); + bool valid = ReplaceVariables(mCompiler, substituteBlock, argumentMap); + ASSERT(valid); + + return new TIntermFunctionDefinition(substitutePrototype, substituteBlock); + } + + TCompiler *mCompiler; + ShCompileOptions mCompileOptions; + bool mAnyMonomorphized = false; + + // Map of original to monomorphized functions. + FunctionMap *mFunctionMap; +}; + +class UpdateFunctionsDefinitionsTraverser final : public TIntermTraverser +{ + public: + explicit UpdateFunctionsDefinitionsTraverser(TSymbolTable *symbolTable, + const FunctionMap &functionMap) + : TIntermTraverser(true, false, false, symbolTable), mFunctionMap(functionMap) + {} + + void visitFunctionPrototype(TIntermFunctionPrototype *node) override + { + const bool isInFunctionDefinition = getParentNode()->getAsFunctionDefinition() != nullptr; + if (isInFunctionDefinition) + { + return; + } + + // Add to and possibly replace the function prototype with replacement prototypes. + const TFunction *function = node->getFunction(); + ASSERT(function && mFunctionMap.find(function) != mFunctionMap.end()); + + const FunctionData &data = mFunctionMap.at(function); + + // If nothing to do, leave it be. + if (data.monomorphizedDefinitions.empty()) + { + ASSERT(data.isOriginalUsed); + return; + } + + // Replace the prototype with itself (if function is still used) as well as any + // monomorphized versions. + TIntermSequence replacement; + if (data.isOriginalUsed) + { + replacement.push_back(node); + } + for (TIntermFunctionDefinition *monomorphizedDefinition : data.monomorphizedDefinitions) + { + replacement.push_back(new TIntermFunctionPrototype( + monomorphizedDefinition->getFunctionPrototype()->getFunction())); + } + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, + std::move(replacement)); + } + + bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override + { + // Add to and possibly replace the function definition with replacement definitions. + const TFunction *function = node->getFunction(); + ASSERT(function && mFunctionMap.find(function) != mFunctionMap.end()); + + const FunctionData &data = mFunctionMap.at(function); + + // If nothing to do, leave it be. + if (data.monomorphizedDefinitions.empty()) + { + ASSERT(data.isOriginalUsed || function->name() == "main"); + return false; + } + + // Replace the definition with itself (if function is still used) as well as any + // monomorphized versions. + TIntermSequence replacement; + if (data.isOriginalUsed) + { + replacement.push_back(node); + } + for (TIntermFunctionDefinition *monomorphizedDefinition : data.monomorphizedDefinitions) + { + replacement.push_back(monomorphizedDefinition); + } + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, + std::move(replacement)); + + return false; + } + + private: + const FunctionMap &mFunctionMap; +}; + +void SortDeclarations(TIntermBlock *root) +{ + TIntermSequence *original = root->getSequence(); + + TIntermSequence replacement; + TIntermSequence functionDefs; + + // Accumulate non-function-definition declarations in |replacement| and function definitions in + // |functionDefs|. + for (TIntermNode *node : *original) + { + if (node->getAsFunctionDefinition() || node->getAsFunctionPrototypeNode()) + { + functionDefs.push_back(node); + } + else + { + replacement.push_back(node); + } + } + + // Append function definitions to |replacement|. + replacement.insert(replacement.end(), functionDefs.begin(), functionDefs.end()); + + // Replace root's sequence with |replacement|. + root->replaceAllChildren(replacement); +} + +bool MonomorphizeUnsupportedFunctionsImpl(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + ShCompileOptions compileOptions) +{ + // First, sort out the declarations such that all non-function declarations are placed before + // function definitions. This way when the function is replaced with one that references said + // declarations (i.e. uniforms), the uniform declaration is already present above it. + SortDeclarations(root); + + while (true) + { + FunctionMap functionMap; + InitializeFunctionMap(root, &functionMap); + + MonomorphizeTraverser monomorphizer(compiler, symbolTable, compileOptions, &functionMap); + root->traverse(&monomorphizer); + + if (!monomorphizer.getAnyMonomorphized()) + { + break; + } + + if (!monomorphizer.updateTree(compiler, root)) + { + return false; + } + + UpdateFunctionsDefinitionsTraverser functionUpdater(symbolTable, functionMap); + root->traverse(&functionUpdater); + + if (!functionUpdater.updateTree(compiler, root)) + { + return false; + } + } + + return true; +} +} // anonymous namespace + +bool MonomorphizeUnsupportedFunctions(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + ShCompileOptions compileOptions) +{ + // This function actually applies multiple transformation, and the AST may not be valid until + // the transformations are entirely done. Some validation is momentarily disabled. + bool enableValidateFunctionCall = compiler->disableValidateFunctionCall(); + + bool result = MonomorphizeUnsupportedFunctionsImpl(compiler, root, symbolTable, compileOptions); + + compiler->restoreValidateFunctionCall(enableValidateFunctionCall); + return result && compiler->validateAST(root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h @@ -0,0 +1,32 @@ +// +// Copyright 2019 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. +// +// NameNamelessUniformBuffers: Gives nameless uniform buffer variables internal names. +// +// For example: +// uniform UniformBuffer { int a; }; +// x = a; +// becomes: +// uniform UniformBuffer { int a; } s123; +// x = s123.a; +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_NAMENAMELESSUNIFORMBUFFERS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_NAMENAMELESSUNIFORMBUFFERS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool NameNamelessUniformBuffers(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_NAMENAMELESSUNIFORMBUFFERS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp @@ -0,0 +1,127 @@ +// +// Copyright 2019 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. +// +// NameNamelessUniformBuffers: Gives nameless uniform buffer variables internal names. +// + +#include "compiler/translator/tree_ops/NameNamelessUniformBuffers.h" + +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ +namespace +{ +// Traverse uniform buffer declarations and give name to nameless declarations. Keeps track of +// the interface fields which will be used in the source without the interface block variable name +// and replaces them with name.field. +class NameUniformBufferVariablesTraverser : public TIntermTraverser +{ + public: + explicit NameUniformBufferVariablesTraverser(TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable) + {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *decl) override + { + ASSERT(visit == PreVisit); + + const TIntermSequence &sequence = *(decl->getSequence()); + + TIntermTyped *variableNode = sequence.front()->getAsTyped(); + const TType &type = variableNode->getType(); + + // If it's an interface block, it may have to be converted if it contains any row-major + // fields. + if (!type.isInterfaceBlock()) + { + return true; + } + + // Multi declaration statements are already separated, so there can only be one variable + // here. + ASSERT(sequence.size() == 1); + const TVariable *variable = &variableNode->getAsSymbolNode()->variable(); + if (variable->symbolType() != SymbolType::Empty) + { + return false; + } + + TIntermDeclaration *newDeclaration = new TIntermDeclaration; + TVariable *newVariable = new TVariable(mSymbolTable, kEmptyImmutableString, &type, + SymbolType::AngleInternal, variable->extensions()); + newDeclaration->appendDeclarator(new TIntermSymbol(newVariable)); + + queueReplacement(newDeclaration, OriginalNode::IS_DROPPED); + + // It's safe to key the map with the interface block, as there couldn't have been multiple + // declarations with this interface block (as the variable is nameless), so for nameless + // uniform buffers, the interface block is unique. + mNamelessUniformBuffersMap[type.getInterfaceBlock()] = newVariable; + + return false; + } + + void visitSymbol(TIntermSymbol *symbol) override + { + const TType &type = symbol->getType(); + + // The symbols we are looking for have the interface block pointer set, but are not + // interface blocks. These are references to fields of nameless uniform buffers. + if (type.isInterfaceBlock() || type.getInterfaceBlock() == nullptr) + { + return; + } + + const TInterfaceBlock *block = type.getInterfaceBlock(); + + // If block variable is not nameless, there's nothing to do. + if (mNamelessUniformBuffersMap.count(block) == 0) + { + return; + } + + const ImmutableString symbolName = symbol->getName(); + + // Find which field it is + const TVector fields = block->fields(); + for (size_t fieldIndex = 0; fieldIndex < fields.size(); ++fieldIndex) + { + const TField *field = fields[fieldIndex]; + if (field->name() != symbolName) + { + continue; + } + + // Replace this node with a binary node that indexes the named uniform buffer. + TIntermSymbol *namedUniformBuffer = + new TIntermSymbol(mNamelessUniformBuffersMap[block]); + TIntermBinary *replacement = + new TIntermBinary(EOpIndexDirectInterfaceBlock, namedUniformBuffer, + CreateIndexNode(static_cast(fieldIndex))); + + queueReplacement(replacement, OriginalNode::IS_DROPPED); + + return; + } + + UNREACHABLE(); + } + + private: + // A map from nameless uniform buffers to their named replacements. + std::unordered_map mNamelessUniformBuffersMap; +}; +} // anonymous namespace + +bool NameNamelessUniformBuffers(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable) +{ + NameUniformBufferVariablesTraverser nameUniformBufferVariables(symbolTable); + root->traverse(&nameUniformBufferVariables); + return nameUniformBufferVariables.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.h --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.h @@ -8,10 +8,11 @@ // int , a; // is turned into // int a; // 2. Literal statements: "1.0;". The ESSL output doesn't define a default precision for float, // so float literal statements would end up with no precision which is invalid ESSL. +// 3. Statements after discard, return, break and continue. #ifndef COMPILER_TRANSLATOR_TREEOPS_PRUNENOOPS_H_ #define COMPILER_TRANSLATOR_TREEOPS_PRUNENOOPS_H_ #include "common/angleutils.h" diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp @@ -8,10 +8,11 @@ // int , a; // is turned into // int a; // 2. Literal statements: "1.0;". The ESSL output doesn't define a default precision for float, // so float literal statements would end up with no precision which is invalid ESSL. +// 3. Statements after discard, return, break and continue. #include "compiler/translator/tree_ops/PruneNoOps.h" #include "compiler/translator/Symbol.h" #include "compiler/translator/tree_util/IntermTraverse.h" @@ -47,25 +48,33 @@ private: PruneNoOpsTraverser(TSymbolTable *symbolTable); bool visitDeclaration(Visit, TIntermDeclaration *node) override; bool visitBlock(Visit visit, TIntermBlock *node) override; bool visitLoop(Visit visit, TIntermLoop *loop) override; + bool visitBranch(Visit visit, TIntermBranch *node) override; + + bool mIsBranchVisited = false; }; bool PruneNoOpsTraverser::apply(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable) { PruneNoOpsTraverser prune(symbolTable); root->traverse(&prune); return prune.updateTree(compiler, root); } PruneNoOpsTraverser::PruneNoOpsTraverser(TSymbolTable *symbolTable) - : TIntermTraverser(true, false, false, symbolTable) + : TIntermTraverser(true, true, true, symbolTable) {} -bool PruneNoOpsTraverser::visitDeclaration(Visit, TIntermDeclaration *node) +bool PruneNoOpsTraverser::visitDeclaration(Visit visit, TIntermDeclaration *node) { + if (visit != PreVisit) + { + return true; + } + TIntermSequence *sequence = node->getSequence(); if (sequence->size() >= 1) { TIntermSymbol *declaratorSymbol = sequence->front()->getAsSymbolNode(); // Prune declarations without a variable name, unless it's an interface block declaration. @@ -125,26 +134,56 @@ return false; } bool PruneNoOpsTraverser::visitBlock(Visit visit, TIntermBlock *node) { - TIntermSequence *statements = node->getSequence(); + ASSERT(visit == PreVisit); - for (TIntermNode *statement : *statements) + TIntermSequence &statements = *node->getSequence(); + TIntermSequence emptyReplacement; + + // Visit each statement in the block one by one. Once a branch is visited (break, continue, + // return or discard), drop the rest of the statements. + for (size_t statementIndex = 0; statementIndex < statements.size(); ++statementIndex) { - if (IsNoOp(statement)) + TIntermNode *statement = statements[statementIndex]; + + // If the statement is a switch case label, stop pruning and continue visiting the children. + if (statement->getAsCaseNode() != nullptr) { - TIntermSequence emptyReplacement; + mIsBranchVisited = false; + } + + // If a branch is visited, prune the statement. If the statement is a no-op, also prune it. + if (mIsBranchVisited || IsNoOp(statement)) + { mMultiReplacements.emplace_back(node, statement, std::move(emptyReplacement)); + continue; } + + // Visit the statement if not pruned. + statement->traverse(this); } - return true; + // If the parent is a block and mIsBranchVisited is set, this is a nested block without any + // condition (like if, loop or switch), so the rest of the parent block should also be pruned. + // Otherwise the parent block should be unaffected. + if (mIsBranchVisited && getParentNode()->getAsBlock() == nullptr) + { + mIsBranchVisited = false; + } + + return false; } bool PruneNoOpsTraverser::visitLoop(Visit visit, TIntermLoop *loop) { + if (visit != PreVisit) + { + return true; + } + TIntermTyped *expr = loop->getExpression(); if (expr != nullptr && IsNoOp(expr)) { loop->setExpression(nullptr); } @@ -155,10 +194,19 @@ } return true; } +bool PruneNoOpsTraverser::visitBranch(Visit visit, TIntermBranch *node) +{ + ASSERT(visit == PreVisit); + + mIsBranchVisited = true; + + // Only possible child is the value of a return statement, which has nothing to prune. + return false; +} } // namespace bool PruneNoOps(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable) { return PruneNoOpsTraverser::apply(compiler, root, symbolTable); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.h @@ -0,0 +1,33 @@ +// +// Copyright 2002 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. +// +// During parsing, all constant expressions are folded to constant union nodes. The expressions that +// have been folded may have had precision qualifiers, which should affect the precision of the +// consuming operation. If the folded constant union nodes are written to output as such they won't +// have any precision qualifiers, and their effect on the precision of the consuming operation is +// lost. +// +// RecordConstantPrecision is an AST traverser that inspects the precision qualifiers of constants +// and hoists the constants outside the containing expression as precision qualified named variables +// in case that is required for correct precision propagation. +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_RECORDCONSTANTPRECISION_H_ +#define COMPILER_TRANSLATOR_TREEOPS_RECORDCONSTANTPRECISION_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermNode; +class TSymbolTable; + +ANGLE_NO_DISCARD bool RecordConstantPrecision(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_RECORDCONSTANTPRECISION_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp @@ -0,0 +1,119 @@ +// +// Copyright 2002 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. +// +// During parsing, all constant expressions are folded to constant union nodes. The expressions that +// have been folded may have had precision qualifiers, which should affect the precision of the +// consuming operation. If the folded constant union nodes are written to output as such they won't +// have any precision qualifiers, and their effect on the precision of the consuming operation is +// lost. +// +// RecordConstantPrecision is an AST traverser that inspects the precision qualifiers of constants +// and hoists the constants outside the containing expression as precision qualified named variables +// in case that is required for correct precision propagation. +// + +#include "compiler/translator/tree_ops/RecordConstantPrecision.h" + +#include "compiler/translator/InfoSink.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ + +namespace +{ + +class RecordConstantPrecisionTraverser : public TIntermTraverser +{ + public: + RecordConstantPrecisionTraverser(TSymbolTable *symbolTable); + + void visitConstantUnion(TIntermConstantUnion *node) override; + + protected: + bool operandAffectsParentOperationPrecision(TIntermTyped *operand); +}; + +RecordConstantPrecisionTraverser::RecordConstantPrecisionTraverser(TSymbolTable *symbolTable) + : TIntermTraverser(true, false, true, symbolTable) +{} + +bool RecordConstantPrecisionTraverser::operandAffectsParentOperationPrecision(TIntermTyped *operand) +{ + if (getParentNode()->getAsCaseNode() || getParentNode()->getAsBlock()) + { + return false; + } + + if (operand->getBasicType() == EbtBool || operand->getBasicType() == EbtStruct) + { + return false; + } + + const TIntermBinary *parentAsBinary = getParentNode()->getAsBinaryNode(); + if (parentAsBinary != nullptr) + { + // If the constant is assigned or is used to initialize a variable, or if it's an index, + // its precision has no effect. + switch (parentAsBinary->getOp()) + { + case EOpInitialize: + case EOpAssign: + case EOpIndexDirect: + case EOpIndexDirectStruct: + case EOpIndexDirectInterfaceBlock: + case EOpIndexIndirect: + return false; + default: + return true; + } + } + + TIntermAggregate *parentAsAggregate = getParentNode()->getAsAggregate(); + if (parentAsAggregate != nullptr) + { + // The precision of an aggregate is derived from children only in the following conditions: + // + // - Built-in math operations + // - Constructors + // + return parentAsAggregate->isConstructor() || + BuiltInGroup::IsMath(parentAsAggregate->getOp()); + } + + return true; +} + +void RecordConstantPrecisionTraverser::visitConstantUnion(TIntermConstantUnion *node) +{ + // If the constant has lowp or undefined precision, it can't increase the precision of consuming + // operations. + if (node->getPrecision() < EbpMedium) + return; + + // It's possible the node has no effect on the precision of the consuming expression, depending + // on the consuming expression, and the precision of the other parameters of the expression. + if (!operandAffectsParentOperationPrecision(node)) + return; + + // Make the constant a precision-qualified named variable to make sure it affects the precision + // of the consuming expression. + TIntermDeclaration *variableDeclaration = nullptr; + TVariable *variable = DeclareTempVariable(mSymbolTable, node, EvqConst, &variableDeclaration); + insertStatementInParentBlock(variableDeclaration); + queueReplacement(CreateTempSymbolNode(variable), OriginalNode::IS_DROPPED); +} + +} // namespace + +bool RecordConstantPrecision(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) +{ + RecordConstantPrecisionTraverser traverser(symbolTable); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h @@ -0,0 +1,24 @@ +// +// 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. +// +// RemoveAtomicCounterBuiltins: Remove atomic counter builtins. +// Normally handled by RewriteAtomicCounters, but that is only invoked when +// atomic counters are actually in use. This pass removes the builtins and +// asserts no atomic counters are declared. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REMOVEATOMICCOUNTERBUILTINS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REMOVEATOMICCOUNTERBUILTINS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; + +ANGLE_NO_DISCARD bool RemoveAtomicCounterBuiltins(TCompiler *compiler, TIntermBlock *root); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REMOVEATOMICCOUNTERBUILTINS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp @@ -0,0 +1,74 @@ +// +// 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. +// +// RemoveAtomicCounterBuiltins: Remove atomic counter builtins. +// + +#include "compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h" + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ +namespace +{ + +bool IsAtomicCounterDecl(const TIntermDeclaration *node) +{ + const TIntermSequence &sequence = *(node->getSequence()); + TIntermTyped *variable = sequence.front()->getAsTyped(); + const TType &type = variable->getType(); + return type.getQualifier() == EvqUniform && type.isAtomicCounter(); +} + +// Traverser that removes all GLSL built-ins that use AtomicCounters +// Only called when the builtins are in use, but no atomic counters have been declared +class RemoveAtomicCounterBuiltinsTraverser : public TIntermTraverser +{ + public: + RemoveAtomicCounterBuiltinsTraverser() : TIntermTraverser(true, false, false) {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + ASSERT(visit == PreVisit); + + // Active atomic counters should have been removed by RewriteAtomicCounters, and this + // traversal should not have been invoked + ASSERT(!IsAtomicCounterDecl(node)); + return false; + } + + bool visitAggregate(Visit visit, TIntermAggregate *node) override + { + if (node->getOp() == EOpMemoryBarrierAtomicCounter) + { + // Vulkan does not support atomic counters, so if this builtin finds its way here, + // we need to remove it. + TIntermSequence emptySequence; + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, + std::move(emptySequence)); + return true; + } + + // We shouldn't see any other builtins because they cannot be present without an active + // atomic counter, and should have been removed by RewriteAtomicCounters. If this fires, + // this traversal should not have been called. + ASSERT(!(BuiltInGroup::IsBuiltIn(node->getOp()) && + node->getFunction()->isAtomicCounterFunction())); + + return false; + } +}; + +} // anonymous namespace + +bool RemoveAtomicCounterBuiltins(TCompiler *compiler, TIntermBlock *root) +{ + RemoveAtomicCounterBuiltinsTraverser traverser; + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp @@ -26,11 +26,11 @@ namespace { using DynamicIndexingNodeMatcher = std::function; -const TType *kIndexType = StaticType::Get(); +const TType *kIndexType = StaticType::Get(); constexpr const ImmutableString kBaseName("base"); constexpr const ImmutableString kIndexName("index"); constexpr const ImmutableString kValueName("value"); @@ -87,33 +87,40 @@ return TIntermAggregate::CreateConstructor(TType(EbtInt), &arguments); } TType *GetFieldType(const TType &indexedType) { + TType *fieldType = new TType(indexedType); if (indexedType.isMatrix()) { - TType *fieldType = new TType(indexedType.getBasicType(), indexedType.getPrecision()); - fieldType->setPrimarySize(static_cast(indexedType.getRows())); - return fieldType; + fieldType->toMatrixColumnType(); } else { - return new TType(indexedType.getBasicType(), indexedType.getPrecision()); + ASSERT(indexedType.isVector()); + fieldType->toComponentType(); } + // Default precision to highp if not specified. For example in |vec3(0)[i], i < 0|, there is no + // precision assigned to vec3(0). + if (fieldType->getPrecision() == EbpUndefined) + { + fieldType->setPrecision(EbpHigh); + } + return fieldType; } const TType *GetBaseType(const TType &type, bool write) { TType *baseType = new TType(type); // Conservatively use highp here, even if the indexed type is not highp. That way the code can't // end up using mediump version of an indexing function for a highp value, if both mediump and // highp values are being indexed in the shader. For HLSL precision doesn't matter, but in // principle this code could be used with multiple backends. baseType->setPrecision(EbpHigh); - baseType->setQualifier(EvqInOut); + baseType->setQualifier(EvqParamInOut); if (!write) - baseType->setQualifier(EvqIn); + baseType->setQualifier(EvqParamIn); return baseType; } // Generate a read or write function for one field in a vector/matrix. // Out-of-range indices are clamped. This is consistent with how ANGLE handles out-of-range @@ -456,18 +463,18 @@ { ImmutableString functionName( GetIndexFunctionName(node->getLeft()->getType(), true)); indexedWriteFunction = new TFunction(mSymbolTable, functionName, SymbolType::AngleInternal, - StaticType::GetBasic(), false); + StaticType::GetBasic(), false); indexedWriteFunction->addParameter(new TVariable(mSymbolTable, kBaseName, GetBaseType(type, true), SymbolType::AngleInternal)); indexedWriteFunction->addParameter(new TVariable( mSymbolTable, kIndexName, kIndexType, SymbolType::AngleInternal)); TType *valueType = GetFieldType(type); - valueType->setQualifier(EvqIn); + valueType->setQualifier(EvqParamIn); indexedWriteFunction->addParameter(new TVariable( mSymbolTable, kValueName, static_cast(valueType), SymbolType::AngleInternal)); mWrittenVecAndMatrixTypes[type] = indexedWriteFunction; } @@ -532,10 +539,14 @@ TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable, PerformanceDiagnostics *perfDiagnostics) { + // This transformation adds function declarations after the fact and so some validation is + // momentarily disabled. + bool enableValidateFunctionCall = compiler->disableValidateFunctionCall(); + RemoveDynamicIndexingTraverser traverser(std::move(matcher), symbolTable, perfDiagnostics); do { traverser.nextIteration(); root->traverse(&traverser); @@ -548,10 +559,12 @@ // of traversal. Now the tree ends up in an inconsistent state in the middle, since there are // function call nodes with no corresponding definition nodes. This needs special handling in // TIntermLValueTrackingTraverser, and creates intricacies that are not easily apparent from a // superficial reading of the code. traverser.insertHelperDefinitions(root); + + compiler->restoreValidateFunctionCall(enableValidateFunctionCall); return compiler->validateAST(root); } } // namespace diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h @@ -0,0 +1,42 @@ +// +// Copyright 2019 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. +// +// RemoveInactiveInterfaceVariables.h: +// Drop shader interface variable declarations for those that are inactive. This step needs to be +// done after CollectVariables. This avoids having to emulate them (e.g. atomic counters for +// Vulkan) or remove them in glslang wrapper (again, for Vulkan). +// +// Shouldn't be run for the GL backend, as it queries shader interface variables from GL itself, +// instead of relying on what was gathered during CollectVariables. +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_ + +#include "common/angleutils.h" + +namespace sh +{ + +struct InterfaceBlock; +struct ShaderVariable; +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool RemoveInactiveInterfaceVariables( + TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const std::vector &attributes, + const std::vector &inputVaryings, + const std::vector &outputVariables, + const std::vector &uniforms, + const std::vector &interfaceBlocks, + bool removeFragmentOutputs); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp @@ -0,0 +1,209 @@ +// +// Copyright 2019 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. +// +// RemoveInactiveInterfaceVariables.h: +// Drop shader interface variable declarations for those that are inactive. +// + +#include "compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h" + +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/util.h" + +namespace sh +{ + +namespace +{ + +// Traverser that removes all declarations that correspond to inactive variables. +class RemoveInactiveInterfaceVariablesTraverser : public TIntermTraverser +{ + public: + RemoveInactiveInterfaceVariablesTraverser( + TSymbolTable *symbolTable, + const std::vector &attributes, + const std::vector &inputVaryings, + const std::vector &outputVariables, + const std::vector &uniforms, + const std::vector &interfaceBlocks, + bool removeFragmentOutputs); + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override; + bool visitBinary(Visit visit, TIntermBinary *node) override; + + private: + const std::vector &mAttributes; + const std::vector &mInputVaryings; + const std::vector &mOutputVariables; + const std::vector &mUniforms; + const std::vector &mInterfaceBlocks; + bool mRemoveFragmentOutputs; +}; + +RemoveInactiveInterfaceVariablesTraverser::RemoveInactiveInterfaceVariablesTraverser( + TSymbolTable *symbolTable, + const std::vector &attributes, + const std::vector &inputVaryings, + const std::vector &outputVariables, + const std::vector &uniforms, + const std::vector &interfaceBlocks, + bool removeFragmentOutputs) + : TIntermTraverser(true, false, false, symbolTable), + mAttributes(attributes), + mInputVaryings(inputVaryings), + mOutputVariables(outputVariables), + mUniforms(uniforms), + mInterfaceBlocks(interfaceBlocks), + mRemoveFragmentOutputs(removeFragmentOutputs) +{} + +template +bool IsVariableActive(const std::vector &mVars, const ImmutableString &name) +{ + for (const Variable &var : mVars) + { + if (name == var.name) + { + return var.active; + } + } + UNREACHABLE(); + return true; +} + +bool RemoveInactiveInterfaceVariablesTraverser::visitDeclaration(Visit visit, + TIntermDeclaration *node) +{ + // SeparateDeclarations should have already been run. + ASSERT(node->getSequence()->size() == 1u); + + TIntermTyped *declarator = node->getSequence()->front()->getAsTyped(); + ASSERT(declarator); + + TIntermSymbol *asSymbol = declarator->getAsSymbolNode(); + if (!asSymbol) + { + return false; + } + + const TType &type = declarator->getType(); + + // Remove all shader interface variables except outputs, i.e. uniforms, interface blocks and + // inputs. + // + // Imagine a situation where the VS doesn't write to a varying but the FS reads from it. This + // is allowed, though the value of the varying is undefined. If the varying is removed here, + // the situation is changed to VS not declaring the varying, but the FS reading from it, which + // is not allowed. That's why inactive shader outputs are not removed. + // + // Inactive fragment shader outputs can be removed though, as there is no next stage. + bool removeDeclaration = false; + const TQualifier qualifier = type.getQualifier(); + + if (type.isInterfaceBlock()) + { + // When a member has an explicit location, interface block should not be removed. + // If the member or interface would be removed, GetProgramResource could not return the + // location. + if (!IsShaderIoBlock(type.getQualifier()) && type.getQualifier() != EvqPatchIn && + type.getQualifier() != EvqPatchOut) + { + removeDeclaration = + !IsVariableActive(mInterfaceBlocks, type.getInterfaceBlock()->name()); + } + } + else if (qualifier == EvqUniform) + { + removeDeclaration = !IsVariableActive(mUniforms, asSymbol->getName()); + } + else if (qualifier == EvqAttribute || qualifier == EvqVertexIn) + { + removeDeclaration = !IsVariableActive(mAttributes, asSymbol->getName()); + } + else if (IsShaderIn(qualifier)) + { + removeDeclaration = !IsVariableActive(mInputVaryings, asSymbol->getName()); + } + else if (qualifier == EvqFragmentOut) + { + removeDeclaration = + !IsVariableActive(mOutputVariables, asSymbol->getName()) && mRemoveFragmentOutputs; + } + + if (removeDeclaration) + { + TIntermSequence replacement; + + // If the declaration was of a struct, keep the struct declaration itself. + if (type.isStructSpecifier()) + { + TType *structSpecifierType = new TType(type.getStruct(), true); + TVariable *emptyVariable = new TVariable(mSymbolTable, kEmptyImmutableString, + structSpecifierType, SymbolType::Empty); + TIntermDeclaration *declaration = new TIntermDeclaration(); + declaration->appendDeclarator(new TIntermSymbol(emptyVariable)); + replacement.push_back(declaration); + } + + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, + std::move(replacement)); + } + + return false; +} + +bool RemoveInactiveInterfaceVariablesTraverser::visitBinary(Visit visit, TIntermBinary *node) +{ + // Remove any code that SH_INIT_OUTPUT_VARIABLES might have added corresponding to inactive + // output variables. This code is always in the form of `variable = ...;`. + if (node->getOp() != EOpAssign) + { + // Don't recurse, won't find the initialization nested in another expression. + return false; + } + + // Get the symbol being initialized, and check if it's an inactive output. If it is, this must + // necessarily be initialization code that ANGLE has added (and wasn't there in the original + // shader; if it was, the symbol wouldn't have been inactive). + TIntermSymbol *symbol = node->getLeft()->getAsSymbolNode(); + if (symbol == nullptr) + { + return false; + } + + const TQualifier qualifier = symbol->getType().getQualifier(); + if (qualifier != EvqFragmentOut || IsVariableActive(mOutputVariables, symbol->getName())) + { + return false; + } + + // Drop the initialization code. + TIntermSequence replacement; + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, std::move(replacement)); + return false; +} + +} // namespace + +bool RemoveInactiveInterfaceVariables(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const std::vector &attributes, + const std::vector &inputVaryings, + const std::vector &outputVariables, + const std::vector &uniforms, + const std::vector &interfaceBlocks, + bool removeFragmentOutputs) +{ + RemoveInactiveInterfaceVariablesTraverser traverser(symbolTable, attributes, inputVaryings, + outputVariables, uniforms, interfaceBlocks, + removeFragmentOutputs); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h @@ -0,0 +1,25 @@ +// +// Copyright 2021 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. +// +// RewriteArrayOfArrayOfOpaqueUniforms: Flatten array of array of opaque uniforms. Requires +// MonomorphizeUnsupportedFunctions and RewriteStructSamplers to have been run. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITEARRAYOFARRAYOFOPAQUEUNIFORMS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REWRITEARRAYOFARRAYOFOPAQUEUNIFORMS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool RewriteArrayOfArrayOfOpaqueUniforms(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REWRITEARRAYOFARRAYOFOPAQUEUNIFORMS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp @@ -0,0 +1,348 @@ +// +// Copyright 2019 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. +// +// RewriteAtomicCounters: Emulate atomic counter buffers with storage buffers. +// + +#include "compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h" + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/ImmutableStringBuilder.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" + +namespace sh +{ +namespace +{ +struct UniformData +{ + // Corresponding to an array of array of opaque uniform variable, this is the flattened variable + // that is replacing it. + const TVariable *flattened; + // Assume a general case of array declaration with N dimensions: + // + // uniform type u[Dn]..[D2][D1]; + // + // Let's define + // + // Pn = D(n-1)*...*D2*D1 + // + // In that case, we have: + // + // u[In] = ac + In*Pn + // u[In][I(n-1)] = ac + In*Pn + I(n-1)*P(n-1) + // u[In]...[Ii] = ac + In*Pn + ... + Ii*Pi + // + // This array contains Pi. Note that the like TType::mArraySizes, the last element is the + // outermost dimension. Element 0 is necessarily 1. + TVector mSubArraySizes; +}; + +using UniformMap = angle::HashMap; + +TIntermTyped *RewriteArrayOfArraySubscriptExpression(TCompiler *compiler, + TIntermBinary *node, + const UniformMap &uniformMap); + +// Given an expression, this traverser calculates a new expression where array of array of opaque +// uniforms are replaced with their flattened ones. In particular, this is run on the right node of +// EOpIndexIndirect binary nodes, so that the expression in the index gets a chance to go through +// this transformation. +class RewriteExpressionTraverser final : public TIntermTraverser +{ + public: + explicit RewriteExpressionTraverser(TCompiler *compiler, const UniformMap &uniformMap) + : TIntermTraverser(true, false, false), mCompiler(compiler), mUniformMap(uniformMap) + {} + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + TIntermTyped *rewritten = + RewriteArrayOfArraySubscriptExpression(mCompiler, node, mUniformMap); + if (rewritten == nullptr) + { + return true; + } + + queueReplacement(rewritten, OriginalNode::IS_DROPPED); + + // Don't iterate as the expression is rewritten. + return false; + } + + void visitSymbol(TIntermSymbol *node) override + { + // We cannot reach here for an opaque uniform that is being replaced. visitBinary should + // have taken care of it. + ASSERT(!IsOpaqueType(node->getType().getBasicType()) || + mUniformMap.find(&node->variable()) == mUniformMap.end()); + } + + private: + TCompiler *mCompiler; + + const UniformMap &mUniformMap; +}; + +// Rewrite the index of an EOpIndexIndirect expression. The root can never need replacing, because +// it cannot be an opaque uniform itself. +void RewriteIndexExpression(TCompiler *compiler, + TIntermTyped *expression, + const UniformMap &uniformMap) +{ + RewriteExpressionTraverser traverser(compiler, uniformMap); + expression->traverse(&traverser); + bool valid = traverser.updateTree(compiler, expression); + ASSERT(valid); +} + +// Given an expression such as the following: +// +// EOpIndex(In)Direct (opaque uniform) +// / \ +// EOpIndex(In)Direct I1 +// / \ +// ... I2 +// / +// EOpIndex(In)Direct +// / \ +// uniform In +// +// produces: +// +// EOpIndex(In)Direct +// / \ +// uniform In*Pn + ... + I2*P2 + I1*P1 +// +TIntermTyped *RewriteArrayOfArraySubscriptExpression(TCompiler *compiler, + TIntermBinary *node, + const UniformMap &uniformMap) +{ + // Only interested in opaque uniforms. + if (!IsOpaqueType(node->getType().getBasicType())) + { + return nullptr; + } + + TIntermSymbol *opaqueUniform = nullptr; + + // Iterate once and find the opaque uniform that's being indexed. + TIntermBinary *iter = node; + while (opaqueUniform == nullptr) + { + ASSERT(iter->getOp() == EOpIndexDirect || iter->getOp() == EOpIndexIndirect); + + opaqueUniform = iter->getLeft()->getAsSymbolNode(); + iter = iter->getLeft()->getAsBinaryNode(); + } + + // If not being replaced, there's nothing to do. + auto flattenedIter = uniformMap.find(&opaqueUniform->variable()); + if (flattenedIter == uniformMap.end()) + { + return nullptr; + } + + const UniformData &data = flattenedIter->second; + + // Iterate again and build the index expression. The index expression constitutes the sum of + // the variable indices plus a constant offset calculated from the constant indices. For + // example, smplr[1][x][2][y] will have an index of x*P3 + y*P1 + c, where c = (1*P4 + 2*P2). + unsigned int constantOffset = 0; + TIntermTyped *variableIndex = nullptr; + + // Since the opaque uniforms are fully subscripted, we know exactly how many EOpIndex* nodes + // there should be. + for (size_t dimIndex = 0; dimIndex < data.mSubArraySizes.size(); ++dimIndex) + { + ASSERT(node); + + unsigned int subArraySize = data.mSubArraySizes[dimIndex]; + + switch (node->getOp()) + { + case EOpIndexDirect: + // Accumulate the constant index. + constantOffset += + node->getRight()->getAsConstantUnion()->getIConst(0) * subArraySize; + break; + case EOpIndexIndirect: + { + // Run RewriteExpressionTraverser on the right node. It may itself be an expression + // with an array of array of opaque uniform inside that needs to be rewritten. + TIntermTyped *indexExpression = node->getRight(); + RewriteIndexExpression(compiler, indexExpression, uniformMap); + + // Scale and accumulate. + if (subArraySize != 1) + { + indexExpression = + new TIntermBinary(EOpMul, indexExpression, CreateIndexNode(subArraySize)); + } + + if (variableIndex == nullptr) + { + variableIndex = indexExpression; + } + else + { + variableIndex = new TIntermBinary(EOpAdd, variableIndex, indexExpression); + } + break; + } + default: + UNREACHABLE(); + break; + } + + node = node->getLeft()->getAsBinaryNode(); + } + + // Add the two accumulated indices together. + TIntermTyped *index = nullptr; + if (constantOffset == 0 && variableIndex != nullptr) + { + // No constant offset, but there's variable offset. Take that as offset. + index = variableIndex; + } + else + { + // Either the constant offset is non zero, or there's no variable offset (so constant 0 + // should be used). + index = CreateIndexNode(constantOffset); + + if (variableIndex) + { + index = new TIntermBinary(EOpAdd, index, variableIndex); + } + } + + // Create an index into the flattened uniform. + TOperator op = variableIndex ? EOpIndexIndirect : EOpIndexDirect; + return new TIntermBinary(op, new TIntermSymbol(data.flattened), index); +} + +// Traverser that takes: +// +// uniform sampler/image/atomic_uint u[N][M].. +// +// and transforms it to: +// +// uniform sampler/image/atomic_uint u[N * M * ..] +// +// MonomorphizeUnsupportedFunctions makes it impossible for this array to be partially +// subscripted, or passed as argument to a function unsubscripted. This means that every encounter +// of this uniform can be expected to be fully subscripted. +// +class RewriteArrayOfArrayOfOpaqueUniformsTraverser : public TIntermTraverser +{ + public: + RewriteArrayOfArrayOfOpaqueUniformsTraverser(TCompiler *compiler, TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable), mCompiler(compiler) + {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + if (!mInGlobalScope) + { + return true; + } + + const TIntermSequence &sequence = *(node->getSequence()); + + TIntermTyped *variable = sequence.front()->getAsTyped(); + const TType &type = variable->getType(); + bool isOpaqueUniform = + type.getQualifier() == EvqUniform && IsOpaqueType(type.getBasicType()); + + // Only interested in array of array of opaque uniforms. + if (!isOpaqueUniform || !type.isArrayOfArrays()) + { + return false; + } + + // Opaque uniforms cannot have initializers, so the declaration must necessarily be a + // symbol. + TIntermSymbol *symbol = variable->getAsSymbolNode(); + ASSERT(symbol != nullptr); + + const TVariable *uniformVariable = &symbol->variable(); + + // Create an entry in the map. + ASSERT(mUniformMap.find(uniformVariable) == mUniformMap.end()); + UniformData &data = mUniformMap[uniformVariable]; + + // Calculate the accumulated dimension products. See UniformData::mSubArraySizes. + const TSpan &arraySizes = type.getArraySizes(); + mUniformMap[uniformVariable].mSubArraySizes.resize(arraySizes.size()); + unsigned int runningProduct = 1; + for (size_t dimension = 0; dimension < arraySizes.size(); ++dimension) + { + data.mSubArraySizes[dimension] = runningProduct; + runningProduct *= arraySizes[dimension]; + } + + // Create a replacement variable with the array flattened. + TType *newType = new TType(type); + newType->toArrayBaseType(); + newType->makeArray(runningProduct); + + data.flattened = new TVariable(mSymbolTable, uniformVariable->name(), newType, + uniformVariable->symbolType()); + + TIntermDeclaration *decl = new TIntermDeclaration; + decl->appendDeclarator(new TIntermSymbol(data.flattened)); + + queueReplacement(decl, OriginalNode::IS_DROPPED); + return false; + } + + bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override + { + // As an optimization, don't bother inspecting functions if there aren't any opaque uniforms + // to replace. + return !mUniformMap.empty(); + } + + // Same implementation as in RewriteExpressionTraverser. That traverser cannot replace root. + bool visitBinary(Visit visit, TIntermBinary *node) override + { + TIntermTyped *rewritten = + RewriteArrayOfArraySubscriptExpression(mCompiler, node, mUniformMap); + if (rewritten == nullptr) + { + return true; + } + + queueReplacement(rewritten, OriginalNode::IS_DROPPED); + + // Don't iterate as the expression is rewritten. + return false; + } + + void visitSymbol(TIntermSymbol *node) override + { + ASSERT(!IsOpaqueType(node->getType().getBasicType()) || + mUniformMap.find(&node->variable()) == mUniformMap.end()); + } + + private: + TCompiler *mCompiler; + UniformMap mUniformMap; +}; +} // anonymous namespace + +bool RewriteArrayOfArrayOfOpaqueUniforms(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable) +{ + RewriteArrayOfArrayOfOpaqueUniformsTraverser traverser(compiler, symbolTable); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.h @@ -0,0 +1,28 @@ +// +// Copyright 2019 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. +// +// RewriteAtomicCounters: Change atomic counter buffers to storage buffers, with atomic counter +// variables being offsets into the uint array of that storage buffer. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITEATOMICCOUNTERS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REWRITEATOMICCOUNTERS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TIntermTyped; +class TSymbolTable; +class TVariable; + +ANGLE_NO_DISCARD bool RewriteAtomicCounters(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const TIntermTyped *acbBufferOffsets); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REWRITEATOMICCOUNTERS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp @@ -0,0 +1,328 @@ +// +// Copyright 2019 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. +// +// RewriteAtomicCounters: Emulate atomic counter buffers with storage buffers. +// + +#include "compiler/translator/tree_ops/RewriteAtomicCounters.h" + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/ImmutableStringBuilder.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" + +namespace sh +{ +namespace +{ +constexpr ImmutableString kAtomicCountersVarName = ImmutableString("atomicCounters"); +constexpr ImmutableString kAtomicCounterFieldName = ImmutableString("counters"); + +// DeclareAtomicCountersBuffer adds a storage buffer array that's used with atomic counters. +const TVariable *DeclareAtomicCountersBuffers(TIntermBlock *root, TSymbolTable *symbolTable) +{ + // Define `uint counters[];` as the only field in the interface block. + TFieldList *fieldList = new TFieldList; + TType *counterType = new TType(EbtUInt, EbpHigh, EvqGlobal); + counterType->makeArray(0); + + TField *countersField = + new TField(counterType, kAtomicCounterFieldName, TSourceLoc(), SymbolType::AngleInternal); + + fieldList->push_back(countersField); + + TMemoryQualifier coherentMemory = TMemoryQualifier::Create(); + coherentMemory.coherent = true; + + // There are a maximum of 8 atomic counter buffers per IMPLEMENTATION_MAX_ATOMIC_COUNTER_BUFFERS + // in libANGLE/Constants.h. + constexpr uint32_t kMaxAtomicCounterBuffers = 8; + + // Define a storage block "ANGLEAtomicCounters" with instance name "atomicCounters". + TLayoutQualifier layoutQualifier = TLayoutQualifier::Create(); + layoutQualifier.blockStorage = EbsStd430; + + return DeclareInterfaceBlock(root, symbolTable, fieldList, EvqBuffer, layoutQualifier, + coherentMemory, kMaxAtomicCounterBuffers, + ImmutableString(vk::kAtomicCountersBlockName), + kAtomicCountersVarName); +} + +TIntermTyped *CreateUniformBufferOffset(const TIntermTyped *uniformBufferOffsets, int binding) +{ + // Each uint in the |acbBufferOffsets| uniform contains offsets for 4 bindings. Therefore, the + // expression to get the uniform offset for the binding is: + // + // acbBufferOffsets[binding / 4] >> ((binding % 4) * 8) & 0xFF + + // acbBufferOffsets[binding / 4] + TIntermBinary *uniformBufferOffsetUint = new TIntermBinary( + EOpIndexDirect, uniformBufferOffsets->deepCopy(), CreateIndexNode(binding / 4)); + + // acbBufferOffsets[binding / 4] >> ((binding % 4) * 8) + TIntermBinary *uniformBufferOffsetShifted = uniformBufferOffsetUint; + if (binding % 4 != 0) + { + uniformBufferOffsetShifted = new TIntermBinary(EOpBitShiftRight, uniformBufferOffsetUint, + CreateUIntNode((binding % 4) * 8)); + } + + // acbBufferOffsets[binding / 4] >> ((binding % 4) * 8) & 0xFF + return new TIntermBinary(EOpBitwiseAnd, uniformBufferOffsetShifted, CreateUIntNode(0xFF)); +} + +TIntermBinary *CreateAtomicCounterRef(TIntermTyped *atomicCounterExpression, + const TVariable *atomicCounters, + const TIntermTyped *uniformBufferOffsets) +{ + // The atomic counters storage buffer declaration looks as such: + // + // layout(...) buffer ANGLEAtomicCounters + // { + // uint counters[]; + // } atomicCounters[N]; + // + // Where N is large enough to accommodate atomic counter buffer bindings used in the shader. + // + // This function takes an expression that uses an atomic counter, which can either be: + // + // - ac + // - acArray[index] + // + // Note that RewriteArrayOfArrayOfOpaqueUniforms has already flattened array of array of atomic + // counters. + // + // For the first case (ac), the following code is generated: + // + // atomicCounters[binding].counters[offset] + // + // For the second case (acArray[index]), the following code is generated: + // + // atomicCounters[binding].counters[offset + index] + // + // In either case, an offset given through uniforms is also added to |offset|. The binding is + // necessarily a constant thanks to MonomorphizeUnsupportedFunctions. + + // First determine if there's an index, and extract the atomic counter symbol out of the + // expression. + TIntermSymbol *atomicCounterSymbol = atomicCounterExpression->getAsSymbolNode(); + TIntermTyped *atomicCounterIndex = nullptr; + int atomicCounterConstIndex = 0; + TIntermBinary *asBinary = atomicCounterExpression->getAsBinaryNode(); + if (asBinary != nullptr) + { + atomicCounterSymbol = asBinary->getLeft()->getAsSymbolNode(); + + switch (asBinary->getOp()) + { + case EOpIndexDirect: + atomicCounterConstIndex = asBinary->getRight()->getAsConstantUnion()->getIConst(0); + break; + case EOpIndexIndirect: + atomicCounterIndex = asBinary->getRight(); + break; + default: + UNREACHABLE(); + } + } + + // Extract binding and offset information out of the atomic counter symbol. + ASSERT(atomicCounterSymbol); + const TVariable *atomicCounterVar = &atomicCounterSymbol->variable(); + const TType &atomicCounterType = atomicCounterVar->getType(); + + const int binding = atomicCounterType.getLayoutQualifier().binding; + int offset = atomicCounterType.getLayoutQualifier().offset / 4; + + // Create the expression: + // + // offset + arrayIndex + uniformOffset + // + // If arrayIndex is a constant, it's added with offset right here. + + offset += atomicCounterConstIndex; + + TIntermTyped *index = CreateUniformBufferOffset(uniformBufferOffsets, binding); + if (atomicCounterIndex != nullptr) + { + index = new TIntermBinary(EOpAdd, index, atomicCounterIndex); + } + if (offset != 0) + { + index = new TIntermBinary(EOpAdd, index, CreateIndexNode(offset)); + } + + // Finally, create the complete expression: + // + // atomicCounters[binding].counters[index] + + TIntermSymbol *atomicCountersRef = new TIntermSymbol(atomicCounters); + + // atomicCounters[binding] + TIntermBinary *countersBlock = + new TIntermBinary(EOpIndexDirect, atomicCountersRef, CreateIndexNode(binding)); + + // atomicCounters[binding].counters + TIntermBinary *counters = + new TIntermBinary(EOpIndexDirectInterfaceBlock, countersBlock, CreateIndexNode(0)); + + return new TIntermBinary(EOpIndexIndirect, counters, index); +} + +// Traverser that: +// +// 1. Removes the |uniform atomic_uint| declarations and remembers the binding and offset. +// 2. Substitutes |atomicVar[n]| with |buffer[binding].counters[offset + n]|. +class RewriteAtomicCountersTraverser : public TIntermTraverser +{ + public: + RewriteAtomicCountersTraverser(TSymbolTable *symbolTable, + const TVariable *atomicCounters, + const TIntermTyped *acbBufferOffsets) + : TIntermTraverser(true, false, false, symbolTable), + mAtomicCounters(atomicCounters), + mAcbBufferOffsets(acbBufferOffsets) + {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + if (!mInGlobalScope) + { + return true; + } + + const TIntermSequence &sequence = *(node->getSequence()); + + TIntermTyped *variable = sequence.front()->getAsTyped(); + const TType &type = variable->getType(); + bool isAtomicCounter = type.isAtomicCounter(); + + if (isAtomicCounter) + { + ASSERT(type.getQualifier() == EvqUniform); + TIntermSequence emptySequence; + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, + std::move(emptySequence)); + + return false; + } + + return true; + } + + bool visitAggregate(Visit visit, TIntermAggregate *node) override + { + if (BuiltInGroup::IsBuiltIn(node->getOp())) + { + bool converted = convertBuiltinFunction(node); + return !converted; + } + + // AST functions don't require modification as atomic counter function parameters are + // removed by MonomorphizeUnsupportedFunctions. + return true; + } + + void visitSymbol(TIntermSymbol *symbol) override + { + // Cannot encounter the atomic counter symbol directly. It can only be used with functions, + // and therefore it's handled by visitAggregate. + ASSERT(!symbol->getType().isAtomicCounter()); + } + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + // Cannot encounter an atomic counter expression directly. It can only be used with + // functions, and therefore it's handled by visitAggregate. + ASSERT(!node->getType().isAtomicCounter()); + return true; + } + + private: + bool convertBuiltinFunction(TIntermAggregate *node) + { + const TOperator op = node->getOp(); + + // If the function is |memoryBarrierAtomicCounter|, simply replace it with + // |memoryBarrierBuffer|. + if (op == EOpMemoryBarrierAtomicCounter) + { + TIntermSequence emptySequence; + TIntermTyped *substituteCall = CreateBuiltInFunctionCallNode( + "memoryBarrierBuffer", &emptySequence, *mSymbolTable, 310); + queueReplacement(substituteCall, OriginalNode::IS_DROPPED); + return true; + } + + // If it's an |atomicCounter*| function, replace the function with an |atomic*| equivalent. + if (!node->getFunction()->isAtomicCounterFunction()) + { + return false; + } + + // Note: atomicAdd(0) is used for atomic reads. + uint32_t valueChange = 0; + constexpr char kAtomicAddFunction[] = "atomicAdd"; + bool isDecrement = false; + + if (op == EOpAtomicCounterIncrement) + { + valueChange = 1; + } + else if (op == EOpAtomicCounterDecrement) + { + // uint values are required to wrap around, so 0xFFFFFFFFu is used as -1. + valueChange = std::numeric_limits::max(); + static_assert(static_cast(-1) == std::numeric_limits::max(), + "uint32_t max is not -1"); + + isDecrement = true; + } + else + { + ASSERT(op == EOpAtomicCounter); + } + + TIntermTyped *param = (*node->getSequence())[0]->getAsTyped(); + + TIntermSequence substituteArguments; + substituteArguments.push_back( + CreateAtomicCounterRef(param, mAtomicCounters, mAcbBufferOffsets)); + substituteArguments.push_back(CreateUIntNode(valueChange)); + + TIntermTyped *substituteCall = CreateBuiltInFunctionCallNode( + kAtomicAddFunction, &substituteArguments, *mSymbolTable, 310); + + // Note that atomicCounterDecrement returns the *new* value instead of the prior value, + // unlike atomicAdd. So we need to do a -1 on the result as well. + if (isDecrement) + { + substituteCall = new TIntermBinary(EOpSub, substituteCall, CreateUIntNode(1)); + } + + queueReplacement(substituteCall, OriginalNode::IS_DROPPED); + return true; + } + + const TVariable *mAtomicCounters; + const TIntermTyped *mAcbBufferOffsets; +}; + +} // anonymous namespace + +bool RewriteAtomicCounters(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const TIntermTyped *acbBufferOffsets) +{ + const TVariable *atomicCounters = DeclareAtomicCountersBuffers(root, symbolTable); + + RewriteAtomicCountersTraverser traverser(symbolTable, atomicCounters, acbBufferOffsets); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h @@ -0,0 +1,29 @@ +// +// Copyright 2019 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. +// +// RewriteCubeMapSamplersAs2DArray: Change samplerCube samplers to sampler2DArray, and the +// textureCube* function calls to calls to helper functions that select the cube map face and sample +// from the face as a 2D texture. This emulates seamful cube map sampling in ES2 (or desktop GL 2) +// and therefore only looks at samplerCube (i.e. not integer variants or cube arrays) and sampling +// functions that are defined in ES GLSL 1.0 (i.e. not the cube overload of texture()). + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITECUBEMAPSAMPLERSAS2DARRAY_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REWRITECUBEMAPSAMPLERSAS2DARRAY_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool RewriteCubeMapSamplersAs2DArray(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + bool isFragmentShader); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REWRITECUBEMAPSAMPLERSAS2DARRAY_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp @@ -0,0 +1,984 @@ +// +// Copyright 2019 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. +// +// RewriteCubeMapSamplersAs2DArray: Change samplerCube samplers to sampler2DArray for seamful cube +// map emulation. +// +// Relies on MonomorphizeUnsupportedFunctions to ensure samplerCube variables are not +// passed to functions (for simplicity). +// + +#include "compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h" + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/ImmutableStringBuilder.h" +#include "compiler/translator/StaticType.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" + +namespace sh +{ +namespace +{ +constexpr ImmutableString kCoordTransformFuncName("ANGLECubeMapCoordTransform"); +constexpr ImmutableString kCoordTransformFuncNameImplicit("ANGLECubeMapCoordTransformImplicit"); + +TIntermTyped *DerivativeQuotient(TIntermTyped *u, + TIntermTyped *du, + TIntermTyped *v, + TIntermTyped *dv, + TIntermTyped *vRecip) +{ + // (du v - dv u) / v^2 + return new TIntermBinary( + EOpMul, + new TIntermBinary(EOpSub, new TIntermBinary(EOpMul, du->deepCopy(), v->deepCopy()), + new TIntermBinary(EOpMul, dv->deepCopy(), u->deepCopy())), + new TIntermBinary(EOpMul, vRecip->deepCopy(), vRecip->deepCopy())); +} + +TIntermTyped *Swizzle1(TIntermTyped *array, int i) +{ + return new TIntermSwizzle(array, {i}); +} + +TIntermTyped *IndexDirect(TIntermTyped *array, int i) +{ + return new TIntermBinary(EOpIndexDirect, array, CreateIndexNode(i)); +} + +// Generated the common transformation in each coord transformation case. See comment in +// declareCoordTranslationFunction(). Called with P, dPdx and dPdy. +void TransformXMajor(const TSymbolTable &symbolTable, + TIntermBlock *block, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *uc, + TIntermTyped *vc) +{ + // uc = -sign(x)*z + // vc = -y + TIntermTyped *signX = + CreateBuiltInUnaryFunctionCallNode("sign", x->deepCopy(), symbolTable, 100); + + TIntermTyped *ucValue = + new TIntermUnary(EOpNegative, new TIntermBinary(EOpMul, signX, z->deepCopy()), nullptr); + TIntermTyped *vcValue = new TIntermUnary(EOpNegative, y->deepCopy(), nullptr); + + block->appendStatement(new TIntermBinary(EOpAssign, uc->deepCopy(), ucValue)); + block->appendStatement(new TIntermBinary(EOpAssign, vc->deepCopy(), vcValue)); +} + +void TransformDerivativeXMajor(TIntermBlock *block, + TSymbolTable *symbolTable, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *dx, + TIntermTyped *dy, + TIntermTyped *dz, + TIntermTyped *du, + TIntermTyped *dv, + TIntermTyped *xRecip) +{ + // Only the magnitude of the derivative matters, so we ignore the sign(x) + // and the negations. + TIntermTyped *duValue = DerivativeQuotient(z, dz, x, dx, xRecip); + TIntermTyped *dvValue = DerivativeQuotient(y, dy, x, dx, xRecip); + duValue = new TIntermBinary(EOpMul, duValue, CreateFloatNode(0.5f, EbpMedium)); + dvValue = new TIntermBinary(EOpMul, dvValue, CreateFloatNode(0.5f, EbpMedium)); + block->appendStatement(new TIntermBinary(EOpAssign, du->deepCopy(), duValue)); + block->appendStatement(new TIntermBinary(EOpAssign, dv->deepCopy(), dvValue)); +} + +void TransformImplicitDerivativeXMajor(TIntermBlock *block, + TIntermTyped *dOuter, + TIntermTyped *du, + TIntermTyped *dv) +{ + block->appendStatement( + new TIntermBinary(EOpAssign, du->deepCopy(), Swizzle1(dOuter->deepCopy(), 2))); + block->appendStatement( + new TIntermBinary(EOpAssign, dv->deepCopy(), Swizzle1(dOuter->deepCopy(), 1))); +} + +void TransformYMajor(const TSymbolTable &symbolTable, + TIntermBlock *block, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *uc, + TIntermTyped *vc) +{ + // uc = x + // vc = sign(y)*z + TIntermTyped *signY = + CreateBuiltInUnaryFunctionCallNode("sign", y->deepCopy(), symbolTable, 100); + + TIntermTyped *ucValue = x->deepCopy(); + TIntermTyped *vcValue = new TIntermBinary(EOpMul, signY, z->deepCopy()); + + block->appendStatement(new TIntermBinary(EOpAssign, uc->deepCopy(), ucValue)); + block->appendStatement(new TIntermBinary(EOpAssign, vc->deepCopy(), vcValue)); +} + +void TransformDerivativeYMajor(TIntermBlock *block, + TSymbolTable *symbolTable, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *dx, + TIntermTyped *dy, + TIntermTyped *dz, + TIntermTyped *du, + TIntermTyped *dv, + TIntermTyped *yRecip) +{ + // Only the magnitude of the derivative matters, so we ignore the sign(x) + // and the negations. + TIntermTyped *duValue = DerivativeQuotient(x, dx, y, dy, yRecip); + TIntermTyped *dvValue = DerivativeQuotient(z, dz, y, dy, yRecip); + duValue = new TIntermBinary(EOpMul, duValue, CreateFloatNode(0.5f, EbpMedium)); + dvValue = new TIntermBinary(EOpMul, dvValue, CreateFloatNode(0.5f, EbpMedium)); + block->appendStatement(new TIntermBinary(EOpAssign, du->deepCopy(), duValue)); + block->appendStatement(new TIntermBinary(EOpAssign, dv->deepCopy(), dvValue)); +} + +void TransformImplicitDerivativeYMajor(TIntermBlock *block, + TIntermTyped *dOuter, + TIntermTyped *du, + TIntermTyped *dv) +{ + block->appendStatement( + new TIntermBinary(EOpAssign, du->deepCopy(), Swizzle1(dOuter->deepCopy(), 0))); + block->appendStatement( + new TIntermBinary(EOpAssign, dv->deepCopy(), Swizzle1(dOuter->deepCopy(), 2))); +} + +void TransformZMajor(const TSymbolTable &symbolTable, + TIntermBlock *block, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *uc, + TIntermTyped *vc) +{ + // uc = size(z)*x + // vc = -y + TIntermTyped *signZ = + CreateBuiltInUnaryFunctionCallNode("sign", z->deepCopy(), symbolTable, 100); + + TIntermTyped *ucValue = new TIntermBinary(EOpMul, signZ, x->deepCopy()); + TIntermTyped *vcValue = new TIntermUnary(EOpNegative, y->deepCopy(), nullptr); + + block->appendStatement(new TIntermBinary(EOpAssign, uc->deepCopy(), ucValue)); + block->appendStatement(new TIntermBinary(EOpAssign, vc->deepCopy(), vcValue)); +} + +void TransformDerivativeZMajor(TIntermBlock *block, + TSymbolTable *symbolTable, + TIntermTyped *x, + TIntermTyped *y, + TIntermTyped *z, + TIntermTyped *dx, + TIntermTyped *dy, + TIntermTyped *dz, + TIntermTyped *du, + TIntermTyped *dv, + TIntermTyped *zRecip) +{ + // Only the magnitude of the derivative matters, so we ignore the sign(x) + // and the negations. + TIntermTyped *duValue = DerivativeQuotient(x, dx, z, dz, zRecip); + TIntermTyped *dvValue = DerivativeQuotient(y, dy, z, dz, zRecip); + duValue = new TIntermBinary(EOpMul, duValue, CreateFloatNode(0.5f, EbpMedium)); + dvValue = new TIntermBinary(EOpMul, dvValue, CreateFloatNode(0.5f, EbpMedium)); + block->appendStatement(new TIntermBinary(EOpAssign, du->deepCopy(), duValue)); + block->appendStatement(new TIntermBinary(EOpAssign, dv->deepCopy(), dvValue)); +} + +void TransformImplicitDerivativeZMajor(TIntermBlock *block, + TIntermTyped *dOuter, + TIntermTyped *du, + TIntermTyped *dv) +{ + block->appendStatement( + new TIntermBinary(EOpAssign, du->deepCopy(), Swizzle1(dOuter->deepCopy(), 0))); + block->appendStatement( + new TIntermBinary(EOpAssign, dv->deepCopy(), Swizzle1(dOuter->deepCopy(), 1))); +} + +class RewriteCubeMapSamplersAs2DArrayTraverser : public TIntermTraverser +{ + public: + RewriteCubeMapSamplersAs2DArrayTraverser(TSymbolTable *symbolTable, bool isFragmentShader) + : TIntermTraverser(true, false, false, symbolTable), + mCubeXYZToArrayUVL(nullptr), + mCubeXYZToArrayUVLImplicit(nullptr), + mIsFragmentShader(isFragmentShader), + mCoordTranslationFunctionDecl(nullptr), + mCoordTranslationFunctionImplicitDecl(nullptr) + {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + const TIntermSequence &sequence = *(node->getSequence()); + + TIntermTyped *variable = sequence.front()->getAsTyped(); + const TType &type = variable->getType(); + bool isSamplerCube = type.getQualifier() == EvqUniform && type.isSamplerCube(); + + if (isSamplerCube) + { + // Samplers cannot have initializers, so the declaration must necessarily be a symbol. + TIntermSymbol *samplerVariable = variable->getAsSymbolNode(); + ASSERT(samplerVariable != nullptr); + + declareSampler2DArray(&samplerVariable->variable(), node); + return false; + } + + return true; + } + + bool visitAggregate(Visit visit, TIntermAggregate *node) override + { + if (BuiltInGroup::IsBuiltIn(node->getOp())) + { + bool converted = convertBuiltinFunction(node); + return !converted; + } + + // AST functions don't require modification as samplerCube function parameters are removed + // by MonomorphizeUnsupportedFunctions. + return true; + } + + TIntermFunctionDefinition *getCoordTranslationFunctionDecl() + { + return mCoordTranslationFunctionDecl; + } + + TIntermFunctionDefinition *getCoordTranslationFunctionDeclImplicit() + { + return mCoordTranslationFunctionImplicitDecl; + } + + private: + void declareSampler2DArray(const TVariable *samplerCubeVar, TIntermDeclaration *node) + { + if (mCubeXYZToArrayUVL == nullptr) + { + // If not done yet, declare the function that transforms cube map texture sampling + // coordinates to face index and uv coordinates. + declareCoordTranslationFunction(false, kCoordTransformFuncName, &mCubeXYZToArrayUVL, + &mCoordTranslationFunctionDecl); + } + if (mCubeXYZToArrayUVLImplicit == nullptr && mIsFragmentShader) + { + declareCoordTranslationFunction(true, kCoordTransformFuncNameImplicit, + &mCubeXYZToArrayUVLImplicit, + &mCoordTranslationFunctionImplicitDecl); + } + + TType *newType = new TType(samplerCubeVar->getType()); + newType->setBasicType(EbtSampler2DArray); + + TVariable *sampler2DArrayVar = new TVariable(mSymbolTable, samplerCubeVar->name(), newType, + samplerCubeVar->symbolType()); + + TIntermDeclaration *sampler2DArrayDecl = new TIntermDeclaration(); + sampler2DArrayDecl->appendDeclarator(new TIntermSymbol(sampler2DArrayVar)); + + queueReplacement(sampler2DArrayDecl, OriginalNode::IS_DROPPED); + + // Remember the sampler2DArray variable. + mSamplerMap[samplerCubeVar] = sampler2DArrayVar; + } + + void declareCoordTranslationFunction(bool implicit, + const ImmutableString &name, + TFunction **functionOut, + TIntermFunctionDefinition **declOut) + { + // GLES2.0 (as well as desktop OpenGL 2.0) define the coordination transformation as + // follows. Given xyz cube coordinates, where each channel is in [-1, 1], the following + // table calculates uc, vc and ma as well as the cube map face. + // + // Major Axis Direction Target uc vc ma + // +x TEXTURE_CUBE_MAP_POSITIVE_X -z -y |x| + // -x TEXTURE_CUBE_MAP_NEGATIVE_X z -y |x| + // +y TEXTURE_CUBE_MAP_POSITIVE_Y x z |y| + // -y TEXTURE_CUBE_MAP_NEGATIVE_Y x -z |y| + // +z TEXTURE_CUBE_MAP_POSITIVE_Z x -y |z| + // -z TEXTURE_CUBE_MAP_NEGATIVE_Z -x -y |z| + // + // "Major" is an indication of the axis with the largest value. The cube map face indicates + // the layer to sample from. The uv coordinates to sample from are calculated as, + // effectively transforming the uv values to [0, 1]: + // + // u = (1 + uc/ma) / 2 + // v = (1 + vc/ma) / 2 + // + // The function can be implemented as 6 ifs, though it would be far from efficient. The + // following calculations implement the table above in a smaller number of instructions. + // + // First, ma can be calculated as the max of the three axes. + // + // ma = max3(|x|, |y|, |z|) + // + // We have three cases: + // + // ma == |x|: uc = -sign(x)*z + // vc = -y + // layer = float(x < 0) + // + // ma == |y|: uc = x + // vc = sign(y)*z + // layer = 2 + float(y < 0) + // + // ma == |z|: uc = size(z)*x + // vc = -y + // layer = 4 + float(z < 0) + // + // This can be implemented with a number of ?: instructions or 3 ifs. ?: would require all + // expressions to be evaluated (vector ALU) while if would require exec mask and jumps + // (scalar operations). We implement this using ifs as there would otherwise be many vector + // operations and not much of anything else. + // + // If textureCubeGrad is used, we also need to transform the provided dPdx and dPdy (both + // vec3) to a dUVdx and dUVdy. Assume P=(r,s,t) and we are investigating dx (note the + // change from xyz to rst to not confuse with dx and dy): + // + // uv = (f(r,s,t)/ma + 1)/2 + // + // Where f is one of the transformations above for uc and vc. Between two neighbors along + // the x axis, we have P0=(r0,s0,t0) and P1=(r1,s1,t1) + // + // dP = (r1-r0, s1-s0, t1-t0) + // dUV = (f(r1,s1,t1)/ma1 - g(r0,s0,t0)/ma0) / 2 + // + // f and g may not necessarily be the same because the two points may have different major + // axes. Even with the same major access, the sign that's used in the formulas may not be + // the same. Furthermore, ma0 and ma1 may not be the same. This makes it impossible to + // derive dUV from dP exactly. + // + // However, gradient transformation is implementation dependant, so we will simplify and + // assume all the above complications are non-existent. We therefore have: + // + // dUV = (f(r1,s1,t1)/ma0 - f(r0,s0,t0)/ma0)/2 + // + // Given that we assumed the sign functions are returning identical results for the two + // points, f becomes a linear transformation. Thus: + // + // dUV = f(r1-r0,s1-0,t1-t0)/ma0/2 + // + // In other words, we use the same formulae that transform XYZ (RST here) to UV to + // transform the derivatives. + // + // ma == |x|: dUdx = -sign(x)*dPdx.z / ma / 2 + // dVdx = -dPdx.y / ma / 2 + // + // ma == |y|: dUdx = dPdx.x / ma / 2 + // dVdx = sign(y)*dPdx.z / ma / 2 + // + // ma == |z|: dUdx = size(z)*dPdx.x / ma / 2 + // dVdx = -dPdx.y / ma / 2 + // + // Similarly for dy. + + // Create the function parameters: vec3 P, vec3 dPdx, vec3 dPdy, + // out vec2 dUVdx, out vec2 dUVdy + const TType *vec3Type = StaticType::GetBasic(); + TType *inVec3Type = new TType(*vec3Type); + inVec3Type->setQualifier(EvqParamIn); + + TVariable *pVar = new TVariable(mSymbolTable, ImmutableString("P"), inVec3Type, + SymbolType::AngleInternal); + TVariable *dPdxVar = new TVariable(mSymbolTable, ImmutableString("dPdx"), inVec3Type, + SymbolType::AngleInternal); + TVariable *dPdyVar = new TVariable(mSymbolTable, ImmutableString("dPdy"), inVec3Type, + SymbolType::AngleInternal); + + const TType *vec2Type = StaticType::GetBasic(); + TType *outVec2Type = new TType(*vec2Type); + outVec2Type->setQualifier(EvqParamOut); + + TVariable *dUVdxVar = new TVariable(mSymbolTable, ImmutableString("dUVdx"), outVec2Type, + SymbolType::AngleInternal); + TVariable *dUVdyVar = new TVariable(mSymbolTable, ImmutableString("dUVdy"), outVec2Type, + SymbolType::AngleInternal); + + TIntermSymbol *p = new TIntermSymbol(pVar); + TIntermSymbol *dPdx = new TIntermSymbol(dPdxVar); + TIntermSymbol *dPdy = new TIntermSymbol(dPdyVar); + TIntermSymbol *dUVdx = new TIntermSymbol(dUVdxVar); + TIntermSymbol *dUVdy = new TIntermSymbol(dUVdyVar); + + // Create the function body as statements are generated. + TIntermBlock *body = new TIntermBlock; + + // Create the swizzle nodes that will be used in multiple expressions: + TIntermSwizzle *x = new TIntermSwizzle(p->deepCopy(), {0}); + TIntermSwizzle *y = new TIntermSwizzle(p->deepCopy(), {1}); + TIntermSwizzle *z = new TIntermSwizzle(p->deepCopy(), {2}); + + // Create abs and "< 0" expressions from the channels. + const TType *floatType = StaticType::GetBasic(); + + TIntermTyped *isNegX = new TIntermBinary(EOpLessThan, x, CreateZeroNode(*floatType)); + TIntermTyped *isNegY = new TIntermBinary(EOpLessThan, y, CreateZeroNode(*floatType)); + TIntermTyped *isNegZ = new TIntermBinary(EOpLessThan, z, CreateZeroNode(*floatType)); + + TIntermSymbol *absX = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *absY = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *absZ = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + + TIntermDeclaration *absXDecl = CreateTempInitDeclarationNode( + &absX->variable(), + CreateBuiltInUnaryFunctionCallNode("abs", x->deepCopy(), *mSymbolTable, 100)); + TIntermDeclaration *absYDecl = CreateTempInitDeclarationNode( + &absY->variable(), + CreateBuiltInUnaryFunctionCallNode("abs", y->deepCopy(), *mSymbolTable, 100)); + TIntermDeclaration *absZDecl = CreateTempInitDeclarationNode( + &absZ->variable(), + CreateBuiltInUnaryFunctionCallNode("abs", z->deepCopy(), *mSymbolTable, 100)); + + body->appendStatement(absXDecl); + body->appendStatement(absYDecl); + body->appendStatement(absZDecl); + + // Create temporary variable for division outer product matrix and its + // derivatives. + // recipOuter[i][j] = 0.5 * P[j] / P[i] + const TType *mat3Type = StaticType::GetBasic(); + TIntermSymbol *recipOuter = new TIntermSymbol(CreateTempVariable(mSymbolTable, mat3Type)); + + TIntermTyped *pRecip = + new TIntermBinary(EOpDiv, CreateFloatNode(1.0, EbpMedium), p->deepCopy()); + TIntermSymbol *pRecipVar = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + + body->appendStatement(CreateTempInitDeclarationNode(&pRecipVar->variable(), pRecip)); + + TIntermSequence args = { + p->deepCopy(), new TIntermBinary(EOpVectorTimesScalar, CreateFloatNode(0.5, EbpMedium), + pRecipVar->deepCopy())}; + TIntermDeclaration *recipOuterDecl = CreateTempInitDeclarationNode( + &recipOuter->variable(), + CreateBuiltInFunctionCallNode("outerProduct", &args, *mSymbolTable, 300)); + body->appendStatement(recipOuterDecl); + + TIntermSymbol *dPDXdx = nullptr; + TIntermSymbol *dPDYdx = nullptr; + TIntermSymbol *dPDZdx = nullptr; + TIntermSymbol *dPDXdy = nullptr; + TIntermSymbol *dPDYdy = nullptr; + TIntermSymbol *dPDZdy = nullptr; + if (implicit) + { + dPDXdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + dPDYdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + dPDZdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + dPDXdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + dPDYdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + dPDZdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + + TIntermDeclaration *dPDXdxDecl = CreateTempInitDeclarationNode( + &dPDXdx->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdx", IndexDirect(recipOuter, 0)->deepCopy(), + *mSymbolTable, 300)); + TIntermDeclaration *dPDYdxDecl = CreateTempInitDeclarationNode( + &dPDYdx->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdx", IndexDirect(recipOuter, 1)->deepCopy(), + *mSymbolTable, 300)); + TIntermDeclaration *dPDZdxDecl = CreateTempInitDeclarationNode( + &dPDZdx->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdx", IndexDirect(recipOuter, 2)->deepCopy(), + *mSymbolTable, 300)); + TIntermDeclaration *dPDXdyDecl = CreateTempInitDeclarationNode( + &dPDXdy->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdy", IndexDirect(recipOuter, 0)->deepCopy(), + *mSymbolTable, 300)); + TIntermDeclaration *dPDYdyDecl = CreateTempInitDeclarationNode( + &dPDYdy->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdy", IndexDirect(recipOuter, 1)->deepCopy(), + *mSymbolTable, 300)); + TIntermDeclaration *dPDZdyDecl = CreateTempInitDeclarationNode( + &dPDZdy->variable(), + CreateBuiltInUnaryFunctionCallNode("dFdy", IndexDirect(recipOuter, 2)->deepCopy(), + *mSymbolTable, 300)); + + body->appendStatement(dPDXdxDecl); + body->appendStatement(dPDYdxDecl); + body->appendStatement(dPDZdxDecl); + body->appendStatement(dPDXdyDecl); + body->appendStatement(dPDYdyDecl); + body->appendStatement(dPDZdyDecl); + } + + // Create temporary variables for ma, uc, vc, and l (layer), as well as dUdx, dVdx, dUdy + // and dVdy. + TIntermSymbol *ma = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *l = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *uc = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *vc = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *dUdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *dVdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *dUdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + TIntermSymbol *dVdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + + body->appendStatement(CreateTempDeclarationNode(&ma->variable())); + body->appendStatement(CreateTempDeclarationNode(&l->variable())); + body->appendStatement(CreateTempDeclarationNode(&uc->variable())); + body->appendStatement(CreateTempDeclarationNode(&vc->variable())); + body->appendStatement(CreateTempDeclarationNode(&dUdx->variable())); + body->appendStatement(CreateTempDeclarationNode(&dVdx->variable())); + body->appendStatement(CreateTempDeclarationNode(&dUdy->variable())); + body->appendStatement(CreateTempDeclarationNode(&dVdy->variable())); + + // ma = max(|x|, max(|y|, |z|)) + TIntermSequence argsMaxYZ = {absY->deepCopy(), absZ->deepCopy()}; + TIntermTyped *maxYZ = CreateBuiltInFunctionCallNode("max", &argsMaxYZ, *mSymbolTable, 100); + TIntermSequence argsMaxValue = {absX->deepCopy(), maxYZ}; + TIntermTyped *maValue = + CreateBuiltInFunctionCallNode("max", &argsMaxValue, *mSymbolTable, 100); + body->appendStatement(new TIntermBinary(EOpAssign, ma, maValue)); + + // ma == |x| and ma == |y| expressions + TIntermTyped *isXMajor = new TIntermBinary(EOpEqual, ma->deepCopy(), absX->deepCopy()); + TIntermTyped *isYMajor = new TIntermBinary(EOpEqual, ma->deepCopy(), absY->deepCopy()); + + // Determine the cube face: + + // The case where x is major: + // layer = float(x < 0) + TIntermSequence argsNegX = {isNegX}; + TIntermTyped *xl = TIntermAggregate::CreateConstructor(*floatType, &argsNegX); + + TIntermBlock *calculateXL = new TIntermBlock; + calculateXL->appendStatement(new TIntermBinary(EOpAssign, l->deepCopy(), xl)); + + // The case where y is major: + // layer = 2 + float(y < 0) + TIntermSequence argsNegY = {isNegY}; + TIntermTyped *yl = + new TIntermBinary(EOpAdd, CreateFloatNode(2.0f, EbpMedium), + TIntermAggregate::CreateConstructor(*floatType, &argsNegY)); + + TIntermBlock *calculateYL = new TIntermBlock; + calculateYL->appendStatement(new TIntermBinary(EOpAssign, l->deepCopy(), yl)); + + // The case where z is major: + // layer = 4 + float(z < 0) + TIntermSequence argsNegZ = {isNegZ}; + TIntermTyped *zl = + new TIntermBinary(EOpAdd, CreateFloatNode(4.0f, EbpMedium), + TIntermAggregate::CreateConstructor(*floatType, &argsNegZ)); + + TIntermBlock *calculateZL = new TIntermBlock; + calculateZL->appendStatement(new TIntermBinary(EOpAssign, l->deepCopy(), zl)); + + // Create the if-else paths: + TIntermIfElse *calculateYZL = new TIntermIfElse(isYMajor, calculateYL, calculateZL); + TIntermBlock *calculateYZLBlock = new TIntermBlock; + calculateYZLBlock->appendStatement(calculateYZL); + TIntermIfElse *calculateXYZL = new TIntermIfElse(isXMajor, calculateXL, calculateYZLBlock); + body->appendStatement(calculateXYZL); + + // layer < 1.5 (covering faces 0 and 1, corresponding to major axis being X) and layer < 3.5 + // (covering faces 2 and 3, corresponding to major axis being Y). Used to determine which + // of the three transformations to apply. Previously, ma == |X| and ma == |Y| was used, + // which is no longer correct for helper invocations. The value of ma is updated in each + // case for these invocations. + isXMajor = new TIntermBinary(EOpLessThan, l->deepCopy(), CreateFloatNode(1.5f, EbpMedium)); + isYMajor = new TIntermBinary(EOpLessThan, l->deepCopy(), CreateFloatNode(3.5f, EbpMedium)); + + TIntermSwizzle *dPdxX = new TIntermSwizzle(dPdx->deepCopy(), {0}); + TIntermSwizzle *dPdxY = new TIntermSwizzle(dPdx->deepCopy(), {1}); + TIntermSwizzle *dPdxZ = new TIntermSwizzle(dPdx->deepCopy(), {2}); + + TIntermSwizzle *dPdyX = new TIntermSwizzle(dPdy->deepCopy(), {0}); + TIntermSwizzle *dPdyY = new TIntermSwizzle(dPdy->deepCopy(), {1}); + TIntermSwizzle *dPdyZ = new TIntermSwizzle(dPdy->deepCopy(), {2}); + + TIntermBlock *calculateXUcVc = new TIntermBlock; + calculateXUcVc->appendStatement( + new TIntermBinary(EOpAssign, ma->deepCopy(), absX->deepCopy())); + TransformXMajor(*mSymbolTable, calculateXUcVc, x, y, z, uc, vc); + + TIntermBlock *calculateYUcVc = new TIntermBlock; + calculateYUcVc->appendStatement( + new TIntermBinary(EOpAssign, ma->deepCopy(), absY->deepCopy())); + TransformYMajor(*mSymbolTable, calculateYUcVc, x, y, z, uc, vc); + + TIntermBlock *calculateZUcVc = new TIntermBlock; + calculateZUcVc->appendStatement( + new TIntermBinary(EOpAssign, ma->deepCopy(), absZ->deepCopy())); + TransformZMajor(*mSymbolTable, calculateZUcVc, x, y, z, uc, vc); + + // Compute derivatives. + if (implicit) + { + TransformImplicitDerivativeXMajor(calculateXUcVc, dPDXdx, dUdx, dVdx); + TransformImplicitDerivativeXMajor(calculateXUcVc, dPDXdy, dUdy, dVdy); + TransformImplicitDerivativeYMajor(calculateYUcVc, dPDYdx, dUdx, dVdx); + TransformImplicitDerivativeYMajor(calculateYUcVc, dPDYdy, dUdy, dVdy); + TransformImplicitDerivativeZMajor(calculateZUcVc, dPDZdx, dUdx, dVdx); + TransformImplicitDerivativeZMajor(calculateZUcVc, dPDZdy, dUdy, dVdy); + } + else + { + TransformDerivativeXMajor(calculateXUcVc, mSymbolTable, x, y, z, dPdxX, dPdxY, dPdxZ, + dUdx, dVdx, Swizzle1(pRecipVar->deepCopy(), 0)); + TransformDerivativeXMajor(calculateXUcVc, mSymbolTable, x, y, z, dPdyX, dPdyY, dPdyZ, + dUdy, dVdy, Swizzle1(pRecipVar->deepCopy(), 0)); + TransformDerivativeYMajor(calculateYUcVc, mSymbolTable, x, y, z, dPdxX, dPdxY, dPdxZ, + dUdx, dVdx, Swizzle1(pRecipVar->deepCopy(), 1)); + TransformDerivativeYMajor(calculateYUcVc, mSymbolTable, x, y, z, dPdyX, dPdyY, dPdyZ, + dUdy, dVdy, Swizzle1(pRecipVar->deepCopy(), 1)); + TransformDerivativeZMajor(calculateZUcVc, mSymbolTable, x, y, z, dPdxX, dPdxY, dPdxZ, + dUdx, dVdx, Swizzle1(pRecipVar->deepCopy(), 2)); + TransformDerivativeZMajor(calculateZUcVc, mSymbolTable, x, y, z, dPdyX, dPdyY, dPdyZ, + dUdy, dVdy, Swizzle1(pRecipVar->deepCopy(), 2)); + } + + // Create the if-else paths: + TIntermIfElse *calculateYZUcVc = + new TIntermIfElse(isYMajor, calculateYUcVc, calculateZUcVc); + TIntermBlock *calculateYZUcVcBlock = new TIntermBlock; + calculateYZUcVcBlock->appendStatement(calculateYZUcVc); + TIntermIfElse *calculateXYZUcVc = + new TIntermIfElse(isXMajor, calculateXUcVc, calculateYZUcVcBlock); + body->appendStatement(calculateXYZUcVc); + + // u = (1 + uc/|ma|) / 2 + // v = (1 + vc/|ma|) / 2 + TIntermTyped *maTimesTwoRecip = new TIntermBinary( + EOpAssign, ma->deepCopy(), + new TIntermBinary(EOpDiv, CreateFloatNode(0.5f, EbpMedium), ma->deepCopy())); + body->appendStatement(maTimesTwoRecip); + + TIntermTyped *ucDivMa = new TIntermBinary(EOpMul, uc, ma->deepCopy()); + TIntermTyped *vcDivMa = new TIntermBinary(EOpMul, vc, ma->deepCopy()); + TIntermTyped *uNormalized = + new TIntermBinary(EOpAdd, CreateFloatNode(0.5f, EbpMedium), ucDivMa); + TIntermTyped *vNormalized = + new TIntermBinary(EOpAdd, CreateFloatNode(0.5f, EbpMedium), vcDivMa); + + body->appendStatement(new TIntermBinary(EOpAssign, uc->deepCopy(), uNormalized)); + body->appendStatement(new TIntermBinary(EOpAssign, vc->deepCopy(), vNormalized)); + + TIntermSequence argsDUVdx = {dUdx, dVdx}; + TIntermTyped *dUVdxValue = TIntermAggregate::CreateConstructor(*vec2Type, &argsDUVdx); + + TIntermSequence argsDUVdy = {dUdy, dVdy}; + TIntermTyped *dUVdyValue = TIntermAggregate::CreateConstructor(*vec2Type, &argsDUVdy); + + body->appendStatement(new TIntermBinary(EOpAssign, dUVdx, dUVdxValue)); + body->appendStatement(new TIntermBinary(EOpAssign, dUVdy, dUVdyValue)); + + // return vec3(u, v, l) + TIntermSequence argsUVL = {uc->deepCopy(), vc->deepCopy(), l}; + TIntermBranch *returnStatement = + new TIntermBranch(EOpReturn, TIntermAggregate::CreateConstructor(*vec3Type, &argsUVL)); + body->appendStatement(returnStatement); + + TFunction *function; + function = new TFunction(mSymbolTable, name, SymbolType::AngleInternal, vec3Type, true); + function->addParameter(pVar); + function->addParameter(dPdxVar); + function->addParameter(dPdyVar); + function->addParameter(dUVdxVar); + function->addParameter(dUVdyVar); + + *functionOut = function; + + *declOut = CreateInternalFunctionDefinitionNode(*function, body); + } + + TIntermTyped *createCoordTransformationCall(TIntermTyped *P, + TIntermTyped *dPdx, + TIntermTyped *dPdy, + TIntermTyped *dUVdx, + TIntermTyped *dUVdy) + { + TIntermSequence args = {P, dPdx, dPdy, dUVdx, dUVdy}; + return TIntermAggregate::CreateFunctionCall(*mCubeXYZToArrayUVL, &args); + } + + TIntermTyped *createImplicitCoordTransformationCall(TIntermTyped *P, + TIntermTyped *dUVdx, + TIntermTyped *dUVdy) + { + const TType *vec3Type = StaticType::GetBasic(); + TIntermTyped *dPdx = CreateZeroNode(*vec3Type); + TIntermTyped *dPdy = CreateZeroNode(*vec3Type); + TIntermSequence args = {P, dPdx, dPdy, dUVdx, dUVdy}; + return TIntermAggregate::CreateFunctionCall(*mCubeXYZToArrayUVLImplicit, &args); + } + + TIntermTyped *getMappedSamplerExpression(TIntermNode *samplerCubeExpression) + { + // The argument passed to a function can either be the sampler, if not array, or a subscript + // into the sampler array. + TIntermSymbol *asSymbol = samplerCubeExpression->getAsSymbolNode(); + TIntermBinary *asBinary = samplerCubeExpression->getAsBinaryNode(); + + if (asBinary) + { + // Only constant indexing is supported in ES2.0. + ASSERT(asBinary->getOp() == EOpIndexDirect); + asSymbol = asBinary->getLeft()->getAsSymbolNode(); + } + + // Arrays of arrays are not available in ES2.0. + ASSERT(asSymbol != nullptr); + const TVariable *samplerCubeVar = &asSymbol->variable(); + + ASSERT(mSamplerMap.find(samplerCubeVar) != mSamplerMap.end()); + const TVariable *mappedSamplerVar = mSamplerMap.at(samplerCubeVar); + + TIntermTyped *mappedExpression = new TIntermSymbol(mappedSamplerVar); + if (asBinary) + { + mappedExpression = + new TIntermBinary(asBinary->getOp(), mappedExpression, asBinary->getRight()); + } + + return mappedExpression; + } + + bool convertBuiltinFunction(TIntermAggregate *node) + { + const TFunction *function = node->getFunction(); + if (!function->name().beginsWith("textureCube")) + { + return false; + } + + // All textureCube* functions are in the form: + // + // textureCube??(samplerCube, vec3, ??) + // + // They should be converted to: + // + // texture??(sampler2DArray, convertCoords(vec3), ??) + // + // We assume the target platform supports texture() functions (currently only used in + // Vulkan). + // + // The intrinsics map as follows: + // + // textureCube -> textureGrad + // textureCubeLod -> textureLod + // textureCubeLodEXT -> textureLod + // textureCubeGrad -> textureGrad + // textureCubeGradEXT -> textureGrad + // + // Note that dPdx and dPdy in textureCubeGrad* are vec3, while the textureGrad equivalent + // for sampler2DArray is vec2. The EXT_shader_texture_lod that introduces thid function + // says: + // + // > For the "Grad" functions, dPdx is the explicit derivative of P with respect + // > to window x, and similarly dPdy with respect to window y. ... For a cube map texture, + // > dPdx and dPdy are vec3. + // > + // > Let + // > + // > dSdx = dPdx.s; + // > dSdy = dPdy.s; + // > dTdx = dPdx.t; + // > dTdy = dPdy.t; + // > + // > and + // > + // > / 0.0; for two-dimensional texture + // > dRdx = ( + // > \ dPdx.p; for cube map texture + // > + // > / 0.0; for two-dimensional texture + // > dRdy = ( + // > \ dPdy.p; for cube map texture + // > + // > (See equation 3.12a in The OpenGL ES 2.0 Specification.) + // + // It's unclear to me what dRdx and dRdy are. EXT_gpu_shader4 that promotes this function + // has the following additional information: + // + // > For the "Cube" versions, the partial + // > derivatives ddx and ddy are assumed to be in the coordinate system used + // > before texture coordinates are projected onto the appropriate cube + // > face. The partial derivatives of the post-projection texture coordinates, + // > which are used for level-of-detail and anisotropic filtering + // > calculations, are derived from coord, ddx and ddy in an + // > implementation-dependent manner. + // + // The calculation of dPdx and dPdy is declared as implementation-dependent, so we have + // freedom to calculate it as fit, even if not precisely the same as hardware might. + + const char *substituteFunctionName = "textureGrad"; + bool isGrad = false; + bool isTranslatedGrad = true; + bool hasBias = false; + if (function->name().beginsWith("textureCubeLod")) + { + substituteFunctionName = "textureLod"; + isTranslatedGrad = false; + } + else if (function->name().beginsWith("textureCubeGrad")) + { + isGrad = true; + } + else if (!mIsFragmentShader) + { + substituteFunctionName = "texture"; + isTranslatedGrad = false; + } + + TIntermSequence *arguments = node->getSequence(); + ASSERT(arguments->size() >= 2); + + const TType *vec2Type = StaticType::GetBasic(); + const TType *vec3Type = StaticType::GetBasic(); + TIntermSymbol *uvl = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec3Type)); + TIntermSymbol *dUVdx = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec2Type)); + TIntermSymbol *dUVdy = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec2Type)); + + TIntermTyped *dPdx = nullptr; + TIntermTyped *dPdy = nullptr; + if (isGrad) + { + ASSERT(arguments->size() == 4); + dPdx = (*arguments)[2]->getAsTyped()->deepCopy(); + dPdy = (*arguments)[3]->getAsTyped()->deepCopy(); + } + else if (isTranslatedGrad && mIsFragmentShader && arguments->size() == 3) + { + hasBias = true; + } + else + { + dPdx = CreateZeroNode(*vec3Type); + dPdy = CreateZeroNode(*vec3Type); + } + + if (isTranslatedGrad && !mIsFragmentShader) + { + substituteFunctionName = "texture"; + isTranslatedGrad = false; + } + + // The function call to transform the coordinates, dPdx and dPdy. If not textureCubeGrad, + // the driver compiler will optimize out the unnecessary calculations. + TIntermSequence coordTransform; + coordTransform.push_back(CreateTempDeclarationNode(&dUVdx->variable())); + coordTransform.push_back(CreateTempDeclarationNode(&dUVdy->variable())); + TIntermTyped *coordTransformCall; + if (isGrad || !isTranslatedGrad) + { + coordTransformCall = createCoordTransformationCall( + (*arguments)[1]->getAsTyped()->deepCopy(), dPdx, dPdy, dUVdx, dUVdy); + } + else + { + coordTransformCall = createImplicitCoordTransformationCall( + (*arguments)[1]->getAsTyped()->deepCopy(), dUVdx, dUVdy); + } + coordTransform.push_back( + CreateTempInitDeclarationNode(&uvl->variable(), coordTransformCall)); + + TIntermTyped *dUVdxArg = dUVdx; + TIntermTyped *dUVdyArg = dUVdy; + if (hasBias) + { + const TType *floatType = StaticType::GetBasic(); + TIntermTyped *bias = (*arguments)[2]->getAsTyped()->deepCopy(); + TIntermSequence exp2Args = {bias}; + TIntermTyped *exp2Call = + CreateBuiltInFunctionCallNode("exp2", &exp2Args, *mSymbolTable, 100); + TIntermSymbol *biasFac = new TIntermSymbol(CreateTempVariable(mSymbolTable, floatType)); + coordTransform.push_back(CreateTempInitDeclarationNode(&biasFac->variable(), exp2Call)); + dUVdxArg = + new TIntermBinary(EOpVectorTimesScalar, biasFac->deepCopy(), dUVdx->deepCopy()); + dUVdyArg = + new TIntermBinary(EOpVectorTimesScalar, biasFac->deepCopy(), dUVdy->deepCopy()); + } + + insertStatementsInParentBlock(coordTransform); + + TIntermSequence substituteArguments; + // Replace the first argument (samplerCube) with the sampler2DArray. + substituteArguments.push_back(getMappedSamplerExpression((*arguments)[0])); + // Replace the second argument with the coordination transformation. + substituteArguments.push_back(uvl->deepCopy()); + if (isTranslatedGrad) + { + substituteArguments.push_back(dUVdxArg->deepCopy()); + substituteArguments.push_back(dUVdyArg->deepCopy()); + } + else + { + // Pass the rest of the parameters as is. + for (size_t argIndex = 2; argIndex < arguments->size(); ++argIndex) + { + substituteArguments.push_back((*arguments)[argIndex]->getAsTyped()->deepCopy()); + } + } + + TIntermTyped *substituteCall = CreateBuiltInFunctionCallNode( + substituteFunctionName, &substituteArguments, *mSymbolTable, 300); + + queueReplacement(substituteCall, OriginalNode::IS_DROPPED); + + return true; + } + + // A map from the samplerCube variable to the sampler2DArray one. + angle::HashMap mSamplerMap; + + // A helper function to convert xyz coordinates passed to a cube map sampling function into the + // array layer (cube map face) and uv coordinates. + TFunction *mCubeXYZToArrayUVL; + // A specialized version of the same function which uses implicit derivatives. + TFunction *mCubeXYZToArrayUVLImplicit; + + bool mIsFragmentShader; + + // Stored to be put before the first function after the pass. + TIntermFunctionDefinition *mCoordTranslationFunctionDecl; + TIntermFunctionDefinition *mCoordTranslationFunctionImplicitDecl; +}; +} // anonymous namespace + +bool RewriteCubeMapSamplersAs2DArray(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + bool isFragmentShader) +{ + RewriteCubeMapSamplersAs2DArrayTraverser traverser(symbolTable, isFragmentShader); + root->traverse(&traverser); + + TIntermFunctionDefinition *coordTranslationFunctionDecl = + traverser.getCoordTranslationFunctionDecl(); + TIntermFunctionDefinition *coordTranslationFunctionDeclImplicit = + traverser.getCoordTranslationFunctionDeclImplicit(); + size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(root); + if (coordTranslationFunctionDecl) + { + root->insertChildNodes(firstFunctionIndex, TIntermSequence({coordTranslationFunctionDecl})); + } + if (coordTranslationFunctionDeclImplicit) + { + root->insertChildNodes(firstFunctionIndex, + TIntermSequence({coordTranslationFunctionDeclImplicit})); + } + + return traverser.updateTree(compiler, root); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.h @@ -0,0 +1,43 @@ +// +// Copyright 2019 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. +// +// This mutating tree traversal flips the output of dFdy() to account for framebuffer flipping. +// +// From: dFdy(p) +// To: (dFdy(p) * viewportYScale) +// +// See http://anglebug.com/3487 + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITEDFDY_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REWRITEDFDY_H_ + +#include "common/angleutils.h" +#include "compiler/translator/Compiler.h" + +namespace sh +{ + +class TCompiler; +class TIntermNode; +class TIntermSymbol; +class TIntermBinary; +class TIntermTyped; +class TSymbolTable; +class TVariable; +class SpecConst; +class DriverUniform; + +// If fragRotation = nullptr, no rotation will be applied. +ANGLE_NO_DISCARD bool RewriteDfdy(TCompiler *compiler, + ShCompileOptions compileOptions, + TIntermNode *root, + const TSymbolTable &symbolTable, + int shaderVersion, + SpecConst *specConst, + const DriverUniform *driverUniforms); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_REWRITEDFDY_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.cpp @@ -0,0 +1,233 @@ +// +// Copyright 2019 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. +// +// Implementation of dFdy viewport transformation. +// See header for more info. + +#include "compiler/translator/tree_ops/RewriteDfdy.h" + +#include "common/angleutils.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/TranslatorVulkan.h" +#include "compiler/translator/tree_util/DriverUniform.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/SpecializationConstant.h" + +namespace sh +{ + +namespace +{ + +class Traverser : public TIntermTraverser +{ + public: + ANGLE_NO_DISCARD static bool Apply(TCompiler *compiler, + ShCompileOptions compileOptions, + TIntermNode *root, + const TSymbolTable &symbolTable, + SpecConst *specConst, + const DriverUniform *driverUniforms); + + private: + Traverser(TSymbolTable *symbolTable, + ShCompileOptions compileOptions, + SpecConst *specConst, + const DriverUniform *driverUniforms); + bool visitAggregate(Visit visit, TIntermAggregate *node) override; + + bool visitAggregateWithRotation(Visit visit, TIntermAggregate *node); + bool visitAggregateWithoutRotation(Visit visit, TIntermAggregate *node); + + SpecConst *mRotationSpecConst = nullptr; + const DriverUniform *mDriverUniforms = nullptr; + bool mUsePreRotation = false; +}; + +Traverser::Traverser(TSymbolTable *symbolTable, + ShCompileOptions compileOptions, + SpecConst *specConst, + const DriverUniform *driverUniforms) + : TIntermTraverser(true, false, false, symbolTable), + mRotationSpecConst(specConst), + mDriverUniforms(driverUniforms), + mUsePreRotation((compileOptions & SH_ADD_PRE_ROTATION) != 0) +{} + +// static +bool Traverser::Apply(TCompiler *compiler, + ShCompileOptions compileOptions, + TIntermNode *root, + const TSymbolTable &symbolTable, + SpecConst *specConst, + const DriverUniform *driverUniforms) +{ + TSymbolTable *pSymbolTable = const_cast(&symbolTable); + Traverser traverser(pSymbolTable, compileOptions, specConst, driverUniforms); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} + +bool Traverser::visitAggregate(Visit visit, TIntermAggregate *node) +{ + if (mUsePreRotation) + { + return visitAggregateWithRotation(visit, node); + } + return visitAggregateWithoutRotation(visit, node); +} + +bool Traverser::visitAggregateWithRotation(Visit visit, TIntermAggregate *node) +{ + // Decide if the node represents a call to dFdx() or dFdy() + if ((node->getOp() != EOpDFdx) && (node->getOp() != EOpDFdy)) + { + return true; + } + + // Prior to supporting Android pre-rotation, dFdy() needed to be multiplied by mFlipXY.y: + // + // correctedDfdy(operand) = dFdy(operand) * mFlipXY.y + // + // For Android pre-rotation, both dFdx() and dFdy() need to be "rotated" and multiplied by + // mFlipXY. "Rotation" means to swap them for 90 and 270 degrees, or to not swap them for 0 + // and 180 degrees. This rotation is accomplished with mFragRotation, which is a 2x2 matrix + // used for fragment shader rotation. The 1st half (a vec2 that is either (1,0) or (0,1)) is + // used for rewriting dFdx() and the 2nd half (either (0,1) or (1,0)) is used for rewriting + // dFdy(). Otherwise, the formula for the rewrite is the same: + // + // result = ((dFdx(operand) * (mFragRotation[half] * mFlipXY).x) + + // (dFdy(operand) * (mFragRotation[half] * mFlipXY).y)) + // + // For dFdx(), half is 0 (the 1st half). For dFdy(), half is 1 (the 2nd half). Depending on + // the rotation, mFragRotation[half] will cause either dFdx(operand) or dFdy(operand) to be + // zeroed-out. That effectively means that the above code results in the following for 0 and + // 180 degrees: + // + // correctedDfdx(operand) = dFdx(operand) * mFlipXY.x + // correctedDfdy(operand) = dFdy(operand) * mFlipXY.y + // + // and the following for 90 and 270 degrees: + // + // correctedDfdx(operand) = dFdy(operand) * mFlipXY.y + // correctedDfdy(operand) = dFdx(operand) * mFlipXY.x + + TIntermTyped *multiplierX; + TIntermTyped *multiplierY; + if (node->getOp() == EOpDFdx) + { + multiplierX = mRotationSpecConst->getMultiplierXForDFdx(); + multiplierY = mRotationSpecConst->getMultiplierYForDFdx(); + } + else + { + multiplierX = mRotationSpecConst->getMultiplierXForDFdy(); + multiplierY = mRotationSpecConst->getMultiplierYForDFdy(); + } + + if (!multiplierX) + { + ASSERT(!multiplierY); + TIntermTyped *flipXY = mDriverUniforms->getFlipXYRef(); + TIntermTyped *fragRotation = mDriverUniforms->getFragRotationMatrixRef(); + + // Get a vec2 with the correct half of ANGLEUniforms.fragRotation + TIntermBinary *halfRotationMat = nullptr; + if (node->getOp() == EOpDFdx) + { + halfRotationMat = new TIntermBinary(EOpIndexDirect, fragRotation, CreateIndexNode(0)); + } + else + { + halfRotationMat = new TIntermBinary(EOpIndexDirect, fragRotation, CreateIndexNode(1)); + } + + // Multiply halfRotationMat by ANGLEUniforms.flipXY and store in a temporary variable + TIntermBinary *rotatedFlipXY = new TIntermBinary(EOpMul, flipXY, halfRotationMat); + const TType *vec2Type = &rotatedFlipXY->getType(); + TIntermSymbol *tmpRotFlipXY = new TIntermSymbol(CreateTempVariable(mSymbolTable, vec2Type)); + TIntermSequence tmpDecl; + tmpDecl.push_back(CreateTempInitDeclarationNode(&tmpRotFlipXY->variable(), rotatedFlipXY)); + insertStatementsInParentBlock(tmpDecl); + + // Get the .x and .y swizzles to use as multipliers + TVector swizzleOffsetX = {0}; + TVector swizzleOffsetY = {1}; + multiplierX = new TIntermSwizzle(tmpRotFlipXY, swizzleOffsetX); + multiplierY = new TIntermSwizzle(tmpRotFlipXY->deepCopy(), swizzleOffsetY); + } + + // Get the results of dFdx(operand) and dFdy(operand), and multiply them by the swizzles + TIntermTyped *operand = node->getChildNode(0)->getAsTyped(); + + TIntermTyped *dFdx = + CreateBuiltInUnaryFunctionCallNode("dFdx", operand->deepCopy(), *mSymbolTable, 300); + TIntermTyped *dFdy = + CreateBuiltInUnaryFunctionCallNode("dFdy", operand->deepCopy(), *mSymbolTable, 300); + + size_t objectSize = node->getType().getObjectSize(); + TOperator multiplyOp = (objectSize == 1) ? EOpMul : EOpVectorTimesScalar; + TIntermBinary *rotatedFlippedDfdx = new TIntermBinary(multiplyOp, dFdx, multiplierX); + TIntermBinary *rotatedFlippedDfdy = new TIntermBinary(multiplyOp, dFdy, multiplierY); + + // Sum them together into the result: + TIntermBinary *correctedResult = + new TIntermBinary(EOpAdd, rotatedFlippedDfdx, rotatedFlippedDfdy); + + // Replace the old dFdx() or dFdy() node with the new node that contains the corrected value + queueReplacement(correctedResult, OriginalNode::IS_DROPPED); + + return true; +} + +bool Traverser::visitAggregateWithoutRotation(Visit visit, TIntermAggregate *node) +{ + // Decide if the node represents a call to dFdy() + if (node->getOp() != EOpDFdy) + { + return true; + } + + // Copy the dFdy node so we can replace it with the corrected value + TIntermAggregate *newDfdy = node->deepCopy()->getAsAggregate(); + + size_t objectSize = node->getType().getObjectSize(); + TOperator multiplyOp = (objectSize == 1) ? EOpMul : EOpVectorTimesScalar; + + TIntermTyped *flipY = mRotationSpecConst->getFlipY(); + if (!flipY) + { + TIntermTyped *flipXY = mDriverUniforms->getFlipXYRef(); + flipY = new TIntermBinary(EOpIndexDirect, flipXY, CreateIndexNode(1)); + } + + // Correct dFdy()'s value: + // (dFdy() * mFlipXY.y) + TIntermBinary *correctedDfdy = new TIntermBinary(multiplyOp, newDfdy, flipY); + + // Replace the old dFdy node with the new node that contains the corrected value + queueReplacement(correctedDfdy, OriginalNode::IS_DROPPED); + + return true; +} +} // anonymous namespace + +bool RewriteDfdy(TCompiler *compiler, + ShCompileOptions compileOptions, + TIntermNode *root, + const TSymbolTable &symbolTable, + int shaderVersion, + SpecConst *specConst, + const DriverUniform *driverUniforms) +{ + // dFdy is only valid in GLSL 3.0 and later. + if (shaderVersion < 300) + return true; + + return Traverser::Apply(compiler, compileOptions, root, symbolTable, specConst, driverUniforms); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.h @@ -0,0 +1,38 @@ +// +// Copyright 2018 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. +// +// RewriteStructSamplers: Extract structs from samplers. +// +// This traverser is designed to strip out samplers from structs. It moves them into separate +// uniform sampler declarations. This allows the struct to be stored in the default uniform block. +// This transformation requires MonomorphizeUnsupportedFunctions to have been run so it +// wouldn't need to deal with functions that are passed such structs. +// +// For example: +// struct S { sampler2D samp; int i; }; +// uniform S uni; +// Is rewritten as: +// struct S { int i; }; +// uniform S uni; +// uniform sampler2D uni_i; + +#ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITESTRUCTSAMPLERS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_REWRITESTRUCTSAMPLERS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool RewriteStructSamplers(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + int *removedUniformsCountOut); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_VULKAN_REWRITESTRUCTSAMPLERS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp @@ -0,0 +1,673 @@ +// +// Copyright 2018 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. +// +// RewriteStructSamplers: Extract samplers from structs. +// + +#include "compiler/translator/tree_ops/RewriteStructSamplers.h" + +#include "compiler/translator/ImmutableStringBuilder.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ +namespace +{ + +// Used to map one structure type to another (one where the samplers are removed). +struct StructureData +{ + // The structure this was replaced with. If nullptr, it means the structure is removed (because + // it had all samplers). + const TStructure *modified; + // Indexed by the field index of original structure, to get the field index of the modified + // structure. For example: + // + // struct Original + // { + // sampler2D s1; + // vec4 f1; + // sampler2D s2; + // sampler2D s3; + // vec4 f2; + // }; + // + // struct Modified + // { + // vec4 f1; + // vec4 f2; + // }; + // + // fieldMap: + // 0 -> Invalid + // 1 -> 0 + // 2 -> Invalid + // 3 -> Invalid + // 4 -> 1 + // + TVector fieldMap; +}; + +using StructureMap = angle::HashMap; +using StructureUniformMap = angle::HashMap; +using ExtractedSamplerMap = angle::HashMap; + +TIntermTyped *RewriteModifiedStructFieldSelectionExpression( + TCompiler *compiler, + TIntermBinary *node, + const StructureMap &structureMap, + const StructureUniformMap &structureUniformMap, + const ExtractedSamplerMap &extractedSamplers); + +TIntermTyped *RewriteExpressionVisitBinaryHelper(TCompiler *compiler, + TIntermBinary *node, + const StructureMap &structureMap, + const StructureUniformMap &structureUniformMap, + const ExtractedSamplerMap &extractedSamplers) +{ + // Only interested in EOpIndexDirectStruct binary nodes. + if (node->getOp() != EOpIndexDirectStruct) + { + return nullptr; + } + + const TStructure *structure = node->getLeft()->getType().getStruct(); + ASSERT(structure); + + // If the result of the index is not a sampler and the struct is not replaced, there's nothing + // to do. + if (!node->getType().isSampler() && structureMap.find(structure) == structureMap.end()) + { + return nullptr; + } + + // Otherwise, replace the whole expression such that: + // + // - if sampler, it's indexed with whatever indices the parent structs were indexed with, + // - otherwise, the chain of field selections is rewritten by modifying the base uniform so all + // the intermediate nodes would have the correct type (and therefore fields). + ASSERT(structureMap.find(structure) != structureMap.end()); + + return RewriteModifiedStructFieldSelectionExpression(compiler, node, structureMap, + structureUniformMap, extractedSamplers); +} + +// Given an expression, this traverser calculates a new expression where sampler-in-structs are +// replaced with their extracted ones, and field indices are adjusted for the rest of the fields. +// In particular, this is run on the right node of EOpIndexIndirect binary nodes, so that the +// expression in the index gets a chance to go through this transformation. +class RewriteExpressionTraverser final : public TIntermTraverser +{ + public: + explicit RewriteExpressionTraverser(TCompiler *compiler, + const StructureMap &structureMap, + const StructureUniformMap &structureUniformMap, + const ExtractedSamplerMap &extractedSamplers) + : TIntermTraverser(true, false, false), + mCompiler(compiler), + mStructureMap(structureMap), + mStructureUniformMap(structureUniformMap), + mExtractedSamplers(extractedSamplers) + {} + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + TIntermTyped *rewritten = RewriteExpressionVisitBinaryHelper( + mCompiler, node, mStructureMap, mStructureUniformMap, mExtractedSamplers); + + if (rewritten == nullptr) + { + return true; + } + + queueReplacement(rewritten, OriginalNode::IS_DROPPED); + + // Don't iterate as the expression is rewritten. + return false; + } + + void visitSymbol(TIntermSymbol *node) override + { + // It's impossible to reach here with a symbol that needs replacement. + // MonomorphizeUnsupportedFunctions makes sure that whole structs containing + // samplers are not passed to functions, so any instance of the struct uniform is + // necessarily indexed right away. visitBinary should have already taken care of it. + ASSERT(mStructureUniformMap.find(&node->variable()) == mStructureUniformMap.end()); + } + + private: + TCompiler *mCompiler; + + // See RewriteStructSamplersTraverser. + const StructureMap &mStructureMap; + const StructureUniformMap &mStructureUniformMap; + const ExtractedSamplerMap &mExtractedSamplers; +}; + +// Rewrite the index of an EOpIndexIndirect expression. The root can never need replacing, because +// it cannot be a sampler itself or of a struct type. +void RewriteIndexExpression(TCompiler *compiler, + TIntermTyped *expression, + const StructureMap &structureMap, + const StructureUniformMap &structureUniformMap, + const ExtractedSamplerMap &extractedSamplers) +{ + RewriteExpressionTraverser traverser(compiler, structureMap, structureUniformMap, + extractedSamplers); + expression->traverse(&traverser); + bool valid = traverser.updateTree(compiler, expression); + ASSERT(valid); +} + +// Given an expression such as the following: +// +// EOpIndexDirectStruct (sampler) +// / \ +// EOpIndex* field index +// / \ +// EOpIndexDirectStruct index 2 +// / \ +// EOpIndex* field index +// / \ +// EOpIndexDirectStruct index 1 +// / \ +// Uniform Struct field index +// +// produces: +// +// EOpIndex* +// / \ +// EOpIndex* index 2 +// / \ +// sampler index 1 +// +// Alternatively, if the expression is as such: +// +// EOpIndexDirectStruct +// / \ +// (modified struct type) EOpIndex* field index +// / \ +// EOpIndexDirectStruct index 2 +// / \ +// EOpIndex* field index +// / \ +// EOpIndexDirectStruct index 1 +// / \ +// Uniform Struct field index +// +// produces: +// +// EOpIndexDirectStruct +// / \ +// EOpIndex* mapped field index +// / \ +// EOpIndexDirectStruct index 2 +// / \ +// EOpIndex* mapped field index +// / \ +// EOpIndexDirectStruct index 1 +// / \ +// Uniform Struct mapped field index +// +TIntermTyped *RewriteModifiedStructFieldSelectionExpression( + TCompiler *compiler, + TIntermBinary *node, + const StructureMap &structureMap, + const StructureUniformMap &structureUniformMap, + const ExtractedSamplerMap &extractedSamplers) +{ + ASSERT(node->getOp() == EOpIndexDirectStruct); + + const bool isSampler = node->getType().isSampler(); + + TIntermSymbol *baseUniform = nullptr; + std::string samplerName; + + TVector indexNodeStack; + + // Iterate once and build the name of the sampler. + TIntermBinary *iter = node; + while (baseUniform == nullptr) + { + indexNodeStack.push_back(iter); + baseUniform = iter->getLeft()->getAsSymbolNode(); + + if (isSampler) + { + if (iter->getOp() == EOpIndexDirectStruct) + { + // When indexed into a struct, get the field name instead and construct the sampler + // name. + samplerName.insert(0, iter->getIndexStructFieldName().data()); + samplerName.insert(0, "_"); + } + + if (baseUniform) + { + // If left is a symbol, we have reached the end of the chain. Use the struct name + // to finish building the name of the sampler. + samplerName.insert(0, baseUniform->variable().name().data()); + } + } + + iter = iter->getLeft()->getAsBinaryNode(); + } + + TIntermTyped *rewritten = nullptr; + + if (isSampler) + { + ASSERT(extractedSamplers.find(samplerName) != extractedSamplers.end()); + rewritten = new TIntermSymbol(extractedSamplers.at(samplerName)); + } + else + { + const TVariable *baseUniformVar = &baseUniform->variable(); + ASSERT(structureUniformMap.find(baseUniformVar) != structureUniformMap.end()); + rewritten = new TIntermSymbol(structureUniformMap.at(baseUniformVar)); + } + + // Iterate again and build the expression from bottom up. + for (auto it = indexNodeStack.rbegin(); it != indexNodeStack.rend(); ++it) + { + TIntermBinary *indexNode = *it; + + switch (indexNode->getOp()) + { + case EOpIndexDirectStruct: + if (!isSampler) + { + // Remap the field. + const TStructure *structure = indexNode->getLeft()->getType().getStruct(); + ASSERT(structureMap.find(structure) != structureMap.end()); + + TIntermConstantUnion *asConstantUnion = + indexNode->getRight()->getAsConstantUnion(); + ASSERT(asConstantUnion); + + const int fieldIndex = asConstantUnion->getIConst(0); + ASSERT(fieldIndex < + static_cast(structureMap.at(structure).fieldMap.size())); + + const int mappedFieldIndex = structureMap.at(structure).fieldMap[fieldIndex]; + + rewritten = new TIntermBinary(EOpIndexDirectStruct, rewritten, + CreateIndexNode(mappedFieldIndex)); + } + break; + + case EOpIndexDirect: + rewritten = new TIntermBinary(EOpIndexDirect, rewritten, indexNode->getRight()); + break; + + case EOpIndexIndirect: + { + // Run RewriteExpressionTraverser on the right node. It may itself be an expression + // with a sampler inside that needs to be rewritten, or simply use a field of a + // struct that's remapped. + TIntermTyped *indexExpression = indexNode->getRight(); + RewriteIndexExpression(compiler, indexExpression, structureMap, structureUniformMap, + extractedSamplers); + rewritten = new TIntermBinary(EOpIndexIndirect, rewritten, indexExpression); + break; + } + + default: + UNREACHABLE(); + break; + } + } + + return rewritten; +} + +class RewriteStructSamplersTraverser final : public TIntermTraverser +{ + public: + explicit RewriteStructSamplersTraverser(TCompiler *compiler, TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable), + mCompiler(compiler), + mRemovedUniformsCount(0) + {} + + int removedUniformsCount() const { return mRemovedUniformsCount; } + + // Each struct sampler declaration is stripped of its samplers. New uniforms are added for each + // stripped struct sampler. + bool visitDeclaration(Visit visit, TIntermDeclaration *decl) override + { + if (!mInGlobalScope) + { + return true; + } + + const TIntermSequence &sequence = *(decl->getSequence()); + TIntermTyped *declarator = sequence.front()->getAsTyped(); + const TType &type = declarator->getType(); + + if (!type.isStructureContainingSamplers()) + { + return false; + } + + TIntermSequence newSequence; + + if (type.isStructSpecifier()) + { + // If this is just a struct definition (not a uniform variable declaration of a + // struct type), just remove the samplers. They are not instantiated yet. + const TStructure *structure = type.getStruct(); + ASSERT(structure && mStructureMap.find(structure) == mStructureMap.end()); + + stripStructSpecifierSamplers(structure, &newSequence); + } + else + { + const TStructure *structure = type.getStruct(); + + // If the structure is defined at the same time, create the mapping to the stripped + // version first. + if (mStructureMap.find(structure) == mStructureMap.end()) + { + stripStructSpecifierSamplers(structure, &newSequence); + } + + // Then, extract the samplers from the struct and create global-scope variables instead. + TIntermSymbol *asSymbol = declarator->getAsSymbolNode(); + ASSERT(asSymbol); + const TVariable &variable = asSymbol->variable(); + ASSERT(variable.symbolType() != SymbolType::Empty); + + extractStructSamplerUniforms(variable, structure, &newSequence); + } + + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), decl, + std::move(newSequence)); + + return false; + } + + // Same implementation as in RewriteExpressionTraverser. That traverser cannot replace root. + bool visitBinary(Visit visit, TIntermBinary *node) override + { + TIntermTyped *rewritten = RewriteExpressionVisitBinaryHelper( + mCompiler, node, mStructureMap, mStructureUniformMap, mExtractedSamplers); + + if (rewritten == nullptr) + { + return true; + } + + queueReplacement(rewritten, OriginalNode::IS_DROPPED); + + // Don't iterate as the expression is rewritten. + return false; + } + + // Same implementation as in RewriteExpressionTraverser. That traverser cannot replace root. + void visitSymbol(TIntermSymbol *node) override + { + ASSERT(mStructureUniformMap.find(&node->variable()) == mStructureUniformMap.end()); + } + + private: + // Removes all samplers from a struct specifier. + void stripStructSpecifierSamplers(const TStructure *structure, TIntermSequence *newSequence) + { + TFieldList *newFieldList = new TFieldList; + ASSERT(structure->containsSamplers()); + + // Add this struct to the struct map + ASSERT(mStructureMap.find(structure) == mStructureMap.end()); + StructureData *modifiedData = &mStructureMap[structure]; + + modifiedData->modified = nullptr; + modifiedData->fieldMap.resize(structure->fields().size(), std::numeric_limits::max()); + + for (size_t fieldIndex = 0; fieldIndex < structure->fields().size(); ++fieldIndex) + { + const TField *field = structure->fields()[fieldIndex]; + const TType &fieldType = *field->type(); + + // If the field is a sampler, or a struct that's entirely removed, skip it. + if (!fieldType.isSampler() && !isRemovedStructType(fieldType)) + { + TType *newType = nullptr; + + // Otherwise, if it's a struct that's replaced, create a new field of the replaced + // type. + if (fieldType.isStructureContainingSamplers()) + { + const TStructure *fieldStruct = fieldType.getStruct(); + ASSERT(mStructureMap.find(fieldStruct) != mStructureMap.end()); + + const TStructure *modifiedStruct = mStructureMap[fieldStruct].modified; + ASSERT(modifiedStruct); + + newType = new TType(modifiedStruct, true); + if (fieldType.isArray()) + { + newType->makeArrays(fieldType.getArraySizes()); + } + } + else + { + // If not, duplicate the field as is. + newType = new TType(fieldType); + } + + // Record the mapping of the field indices, so future EOpIndexDirectStruct's into + // this struct can be fixed up. + modifiedData->fieldMap[fieldIndex] = static_cast(newFieldList->size()); + + TField *newField = + new TField(newType, field->name(), field->line(), field->symbolType()); + newFieldList->push_back(newField); + } + } + + // Prune empty structs. + if (newFieldList->empty()) + { + return; + } + + // Declare a new struct with the same name and the new fields. + modifiedData->modified = + new TStructure(mSymbolTable, structure->name(), newFieldList, structure->symbolType()); + TType *newStructType = new TType(modifiedData->modified, true); + TVariable *newStructVar = + new TVariable(mSymbolTable, kEmptyImmutableString, newStructType, SymbolType::Empty); + TIntermSymbol *newStructRef = new TIntermSymbol(newStructVar); + + TIntermDeclaration *structDecl = new TIntermDeclaration; + structDecl->appendDeclarator(newStructRef); + + newSequence->push_back(structDecl); + } + + // Returns true if the type is a struct that was removed because we extracted all the members. + bool isRemovedStructType(const TType &type) const + { + const TStructure *structure = type.getStruct(); + if (structure == nullptr) + { + // Not a struct + return false; + } + + // A struct is removed if it is in the map, but doesn't have a replacement struct. + auto iter = mStructureMap.find(structure); + return iter != mStructureMap.end() && iter->second.modified == nullptr; + } + + // Removes samplers from struct uniforms. For each sampler removed also adds a new globally + // defined sampler uniform. + void extractStructSamplerUniforms(const TVariable &variable, + const TStructure *structure, + TIntermSequence *newSequence) + { + ASSERT(structure->containsSamplers()); + ASSERT(mStructureMap.find(structure) != mStructureMap.end()); + + const TType &type = variable.getType(); + enterArray(type); + + for (const TField *field : structure->fields()) + { + extractFieldSamplers(variable.name().data(), field, newSequence); + } + + // If there's a replacement structure (because there are non-sampler fields in the struct), + // add a declaration with that type. + const TStructure *modified = mStructureMap[structure].modified; + if (modified != nullptr) + { + TType *newType = new TType(modified, false); + if (type.isArray()) + { + newType->makeArrays(type.getArraySizes()); + } + newType->setQualifier(EvqUniform); + const TVariable *newVariable = + new TVariable(mSymbolTable, variable.name(), newType, variable.symbolType()); + + TIntermDeclaration *newDecl = new TIntermDeclaration(); + newDecl->appendDeclarator(new TIntermSymbol(newVariable)); + + newSequence->push_back(newDecl); + + ASSERT(mStructureUniformMap.find(&variable) == mStructureUniformMap.end()); + mStructureUniformMap[&variable] = newVariable; + } + else + { + mRemovedUniformsCount++; + } + + exitArray(type); + } + + // Extracts samplers from a field of a struct. Works with nested structs and arrays. + void extractFieldSamplers(const std::string &prefix, + const TField *field, + TIntermSequence *newSequence) + { + const TType &fieldType = *field->type(); + if (fieldType.isSampler() || fieldType.isStructureContainingSamplers()) + { + std::string newPrefix = prefix + "_" + field->name().data(); + + if (fieldType.isSampler()) + { + extractSampler(newPrefix, fieldType, newSequence); + } + else + { + enterArray(fieldType); + const TStructure *structure = fieldType.getStruct(); + for (const TField *nestedField : structure->fields()) + { + extractFieldSamplers(newPrefix, nestedField, newSequence); + } + exitArray(fieldType); + } + } + } + + void GenerateArraySizesFromStack(TVector *sizesOut) + { + sizesOut->reserve(mArraySizeStack.size()); + + for (auto it = mArraySizeStack.rbegin(); it != mArraySizeStack.rend(); ++it) + { + sizesOut->push_back(*it); + } + } + + // Extracts a sampler from a struct. Declares the new extracted sampler. + void extractSampler(const std::string &newName, + const TType &fieldType, + TIntermSequence *newSequence) + { + ASSERT(fieldType.isSampler()); + + TType *newType = new TType(fieldType); + + // Add array dimensions accumulated so far due to struct arrays. Note that to support + // nested arrays, mArraySizeStack has the outermost size in the front. |makeArrays| thus + // expects this in reverse order. + TVector parentArraySizes; + GenerateArraySizesFromStack(&parentArraySizes); + newType->makeArrays(parentArraySizes); + + ImmutableStringBuilder nameBuilder(newName.size() + 1); + nameBuilder << newName; + + newType->setQualifier(EvqUniform); + TVariable *newVariable = + new TVariable(mSymbolTable, nameBuilder, newType, SymbolType::AngleInternal); + TIntermSymbol *newSymbol = new TIntermSymbol(newVariable); + + TIntermDeclaration *samplerDecl = new TIntermDeclaration; + samplerDecl->appendDeclarator(newSymbol); + + newSequence->push_back(samplerDecl); + + // TODO: Use a temp name instead of generating a name as currently done. There is no + // guarantee that these generated names cannot clash. Create a mapping from the previous + // name to the name assigned to the temp variable so ShaderVariable::mappedName can be + // updated post-transformation. http://anglebug.com/4301 + ASSERT(mExtractedSamplers.find(newName) == mExtractedSamplers.end()); + mExtractedSamplers[newName] = newVariable; + } + + void enterArray(const TType &arrayType) + { + const TSpan &arraySizes = arrayType.getArraySizes(); + for (auto it = arraySizes.rbegin(); it != arraySizes.rend(); ++it) + { + unsigned int arraySize = *it; + mArraySizeStack.push_back(arraySize); + } + } + + void exitArray(const TType &arrayType) + { + mArraySizeStack.resize(mArraySizeStack.size() - arrayType.getNumArraySizes()); + } + + TCompiler *mCompiler; + int mRemovedUniformsCount; + + // Map structures with samplers to ones that have their samplers removed. + StructureMap mStructureMap; + + // Map uniform variables of structure type that are replaced with another variable. + StructureUniformMap mStructureUniformMap; + + // Map a constructed sampler name to its variable. Used to replace an expression that uses this + // sampler with the extracted one. + ExtractedSamplerMap mExtractedSamplers; + + // A stack of array sizes. Used to figure out the array dimensions of the extracted sampler, + // for example when it's nested in an array of structs in an array of structs. + TVector mArraySizeStack; +}; +} // anonymous namespace + +bool RewriteStructSamplers(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + int *removedUniformsCountOut) +{ + RewriteStructSamplersTraverser traverser(compiler, symbolTable); + root->traverse(&traverser); + *removedUniformsCountOut = traverser.removedUniformsCount(); + return traverser.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp @@ -75,11 +75,11 @@ { return false; } // Decide if the node represents the call of texelFetchOffset. - if (node->getOp() != EOpCallBuiltInFunction) + if (!BuiltInGroup::IsBuiltIn(node->getOp())) { return true; } ASSERT(node->getFunction()->symbolType() == SymbolType::BuiltIn); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h @@ -20,11 +20,9 @@ class TIntermBlock; class TSymbolTable; ANGLE_NO_DISCARD bool ScalarizeVecAndMatConstructorArgs(TCompiler *compiler, TIntermBlock *root, - sh::GLenum shaderType, - bool fragmentPrecisionHigh, TSymbolTable *symbolTable); } // namespace sh #endif // COMPILER_TRANSLATOR_TREEOPS_SCALARIZEVECANDMATCONSTRUCTORARGS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp @@ -17,38 +17,35 @@ #include "common/angleutils.h" #include "compiler/translator/Compiler.h" #include "compiler/translator/tree_util/IntermNodePatternMatcher.h" #include "compiler/translator/tree_util/IntermNode_util.h" #include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/util.h" namespace sh { namespace { -TIntermBinary *ConstructVectorIndexBinaryNode(TIntermSymbol *symbolNode, int index) +TIntermBinary *ConstructVectorIndexBinaryNode(TIntermTyped *symbolNode, int index) { return new TIntermBinary(EOpIndexDirect, symbolNode, CreateIndexNode(index)); } -TIntermBinary *ConstructMatrixIndexBinaryNode(TIntermSymbol *symbolNode, int colIndex, int rowIndex) +TIntermBinary *ConstructMatrixIndexBinaryNode(TIntermTyped *symbolNode, int colIndex, int rowIndex) { TIntermBinary *colVectorNode = ConstructVectorIndexBinaryNode(symbolNode, colIndex); return new TIntermBinary(EOpIndexDirect, colVectorNode, CreateIndexNode(rowIndex)); } class ScalarizeArgsTraverser : public TIntermTraverser { public: - ScalarizeArgsTraverser(sh::GLenum shaderType, - bool fragmentPrecisionHigh, - TSymbolTable *symbolTable) + ScalarizeArgsTraverser(TSymbolTable *symbolTable) : TIntermTraverser(true, false, false, symbolTable), - mShaderType(shaderType), - mFragmentPrecisionHigh(fragmentPrecisionHigh), mNodesToScalarize(IntermNodePatternMatcher::kScalarizedVecOrMatConstructor) {} protected: bool visitAggregate(Visit visit, TIntermAggregate *node) override; @@ -64,17 +61,14 @@ // mat4 m(0); // mat4 s0 = m; // vec4 v(1, s0[0][0], s0[0][1], s0[0][2]); // This function is to create nodes for "mat4 s0 = m;" and insert it to the code sequence. This // way the possible side effects of the constructor argument will only be evaluated once. - TVariable *createTempVariable(TIntermTyped *original); + TIntermTyped *createTempVariable(TIntermTyped *original); std::vector mBlockStack; - sh::GLenum mShaderType; - bool mFragmentPrecisionHigh; - IntermNodePatternMatcher mNodesToScalarize; }; bool ScalarizeArgsTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { @@ -127,33 +121,32 @@ for (TIntermNode *originalArgNode : originalArgs) { ASSERT(size > 0); TIntermTyped *originalArg = originalArgNode->getAsTyped(); ASSERT(originalArg); - TVariable *argVariable = createTempVariable(originalArg); + TIntermTyped *argVariable = createTempVariable(originalArg); if (originalArg->isScalar()) { - sequence->push_back(CreateTempSymbolNode(argVariable)); + sequence->push_back(argVariable); size--; } else if (originalArg->isVector()) { if (scalarizeVector) { int repeat = std::min(size, originalArg->getNominalSize()); size -= repeat; for (int index = 0; index < repeat; ++index) { - TIntermSymbol *symbolNode = CreateTempSymbolNode(argVariable); - TIntermBinary *newNode = ConstructVectorIndexBinaryNode(symbolNode, index); + TIntermBinary *newNode = + ConstructVectorIndexBinaryNode(argVariable->deepCopy(), index); sequence->push_back(newNode); } } else { - TIntermSymbol *symbolNode = CreateTempSymbolNode(argVariable); - sequence->push_back(symbolNode); + sequence->push_back(argVariable); size -= originalArg->getNominalSize(); } } else { @@ -163,13 +156,12 @@ int colIndex = 0, rowIndex = 0; int repeat = std::min(size, originalArg->getCols() * originalArg->getRows()); size -= repeat; while (repeat > 0) { - TIntermSymbol *symbolNode = CreateTempSymbolNode(argVariable); TIntermBinary *newNode = - ConstructMatrixIndexBinaryNode(symbolNode, colIndex, rowIndex); + ConstructMatrixIndexBinaryNode(argVariable->deepCopy(), colIndex, rowIndex); sequence->push_back(newNode); rowIndex++; if (rowIndex >= originalArg->getRows()) { rowIndex = 0; @@ -178,52 +170,53 @@ repeat--; } } else { - TIntermSymbol *symbolNode = CreateTempSymbolNode(argVariable); - sequence->push_back(symbolNode); + sequence->push_back(argVariable); size -= originalArg->getCols() * originalArg->getRows(); } } } } -TVariable *ScalarizeArgsTraverser::createTempVariable(TIntermTyped *original) +TIntermTyped *ScalarizeArgsTraverser::createTempVariable(TIntermTyped *original) { ASSERT(original); TType *type = new TType(original->getType()); type->setQualifier(EvqTemporary); - if (mShaderType == GL_FRAGMENT_SHADER && type->getBasicType() == EbtFloat && - type->getPrecision() == EbpUndefined) + + // The precision of the constant must have been retained (or derived), which will now apply to + // the temp variable. In some cases, the precision cannot be derived, so use the constant as + // is. For example, in the following standalone statement, the precision of the constant 0 + // cannot be determined: + // + // mat2(0, bvec3(m)); + // + if (IsPrecisionApplicableToType(type->getBasicType()) && type->getPrecision() == EbpUndefined) { - // We use the highest available precision for the temporary variable - // to avoid computing the actual precision using the rules defined - // in GLSL ES 1.0 Section 4.5.2. - type->setPrecision(mFragmentPrecisionHigh ? EbpHigh : EbpMedium); + return original; } TVariable *variable = CreateTempVariable(mSymbolTable, type); ASSERT(mBlockStack.size() > 0); TIntermSequence &sequence = mBlockStack.back(); TIntermDeclaration *declaration = CreateTempInitDeclarationNode(variable, original); sequence.push_back(declaration); - return variable; + return CreateTempSymbolNode(variable); } } // namespace bool ScalarizeVecAndMatConstructorArgs(TCompiler *compiler, TIntermBlock *root, - sh::GLenum shaderType, - bool fragmentPrecisionHigh, TSymbolTable *symbolTable) { - ScalarizeArgsTraverser scalarizer(shaderType, fragmentPrecisionHigh, symbolTable); + ScalarizeArgsTraverser scalarizer(symbolTable); root->traverse(&scalarizer); return compiler->validateAST(root); } diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.h --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.h @@ -20,10 +20,13 @@ namespace sh { class TCompiler; class TIntermNode; +class TSymbolTable; -ANGLE_NO_DISCARD bool SeparateDeclarations(TCompiler *compiler, TIntermNode *root); +ANGLE_NO_DISCARD bool SeparateDeclarations(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable); } // namespace sh #endif // COMPILER_TRANSLATOR_TREEOPS_SEPARATEDECLARATIONS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp @@ -13,65 +13,187 @@ // int a[1] = int[1](1); // int b[1] = int[1](2); #include "compiler/translator/tree_ops/SeparateDeclarations.h" +#include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" namespace sh { namespace { class SeparateDeclarationsTraverser : private TIntermTraverser { public: - ANGLE_NO_DISCARD static bool apply(TCompiler *compiler, TIntermNode *root); + ANGLE_NO_DISCARD static bool apply(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable); private: - SeparateDeclarationsTraverser(); + SeparateDeclarationsTraverser(TSymbolTable *symbolTable); bool visitDeclaration(Visit, TIntermDeclaration *node) override; + void visitSymbol(TIntermSymbol *symbol) override; + + void separateDeclarator(TIntermSequence *sequence, + size_t index, + TIntermSequence *replacementDeclarations, + const TStructure **replacementStructure); + + VariableReplacementMap mVariableMap; }; -bool SeparateDeclarationsTraverser::apply(TCompiler *compiler, TIntermNode *root) +bool SeparateDeclarationsTraverser::apply(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable) { - SeparateDeclarationsTraverser separateDecl; + SeparateDeclarationsTraverser separateDecl(symbolTable); root->traverse(&separateDecl); return separateDecl.updateTree(compiler, root); } -SeparateDeclarationsTraverser::SeparateDeclarationsTraverser() - : TIntermTraverser(true, false, false) +SeparateDeclarationsTraverser::SeparateDeclarationsTraverser(TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable) {} bool SeparateDeclarationsTraverser::visitDeclaration(Visit, TIntermDeclaration *node) { TIntermSequence *sequence = node->getSequence(); - if (sequence->size() > 1) + if (sequence->size() <= 1) { - TIntermBlock *parentBlock = getParentNode()->getAsBlock(); - ASSERT(parentBlock != nullptr); + return true; + } + + TIntermBlock *parentBlock = getParentNode()->getAsBlock(); + ASSERT(parentBlock != nullptr); - TIntermSequence replacementDeclarations; - for (size_t ii = 0; ii < sequence->size(); ++ii) - { - TIntermDeclaration *replacementDeclaration = new TIntermDeclaration(); + TIntermSequence replacementDeclarations; + const TStructure *replacementStructure = nullptr; + for (size_t ii = 0; ii < sequence->size(); ++ii) + { + separateDeclarator(sequence, ii, &replacementDeclarations, &replacementStructure); + } - replacementDeclaration->appendDeclarator(sequence->at(ii)->getAsTyped()); - replacementDeclaration->setLine(sequence->at(ii)->getLine()); - replacementDeclarations.push_back(replacementDeclaration); - } - - mMultiReplacements.emplace_back(parentBlock, node, std::move(replacementDeclarations)); - } + mMultiReplacements.emplace_back(parentBlock, node, std::move(replacementDeclarations)); return false; } +void SeparateDeclarationsTraverser::visitSymbol(TIntermSymbol *symbol) +{ + const TVariable *variable = &symbol->variable(); + if (mVariableMap.count(variable) > 0) + { + queueAccessChainReplacement(mVariableMap[variable]->deepCopy()); + } +} + +void SeparateDeclarationsTraverser::separateDeclarator(TIntermSequence *sequence, + size_t index, + TIntermSequence *replacementDeclarations, + const TStructure **replacementStructure) +{ + TIntermTyped *declarator = sequence->at(index)->getAsTyped(); + const TType &declaratorType = declarator->getType(); + + // If the declaration is not simultaneously declaring a struct, can use the same declarator. + // Otherwise, the first declarator is taken as-is if the struct has a name. + const TStructure *structure = declaratorType.getStruct(); + const bool isStructSpecifier = declaratorType.isStructSpecifier(); + if (!isStructSpecifier || (index == 0 && structure->symbolType() != SymbolType::Empty)) + { + TIntermDeclaration *replacementDeclaration = new TIntermDeclaration; + + // Make sure to update the declarator's initializers if any. + declarator->traverse(this); + + replacementDeclaration->appendDeclarator(declarator); + replacementDeclaration->setLine(declarator->getLine()); + replacementDeclarations->push_back(replacementDeclaration); + return; + } + + // If the struct is nameless, split it out first. + if (structure->symbolType() == SymbolType::Empty) + { + if (*replacementStructure == nullptr) + { + TStructure *newStructure = + new TStructure(mSymbolTable, kEmptyImmutableString, &structure->fields(), + SymbolType::AngleInternal); + newStructure->setAtGlobalScope(structure->atGlobalScope()); + *replacementStructure = structure = newStructure; + + TType *namedType = new TType(structure, true); + namedType->setQualifier(EvqGlobal); + + TVariable *structVariable = + new TVariable(mSymbolTable, kEmptyImmutableString, namedType, SymbolType::Empty); + + TIntermDeclaration *structDeclaration = new TIntermDeclaration; + structDeclaration->appendDeclarator(new TIntermSymbol(structVariable)); + structDeclaration->setLine(declarator->getLine()); + replacementDeclarations->push_back(structDeclaration); + } + else + { + structure = *replacementStructure; + } + } + + // Redeclare the declarator but not as a struct specifier. + TIntermSymbol *asSymbol = declarator->getAsSymbolNode(); + TIntermTyped *initializer = nullptr; + if (asSymbol == nullptr) + { + TIntermBinary *asBinary = declarator->getAsBinaryNode(); + ASSERT(asBinary->getOp() == EOpInitialize); + asSymbol = asBinary->getLeft()->getAsSymbolNode(); + initializer = asBinary->getRight(); + + // Make sure the initializer itself has its variables replaced if necessary. + if (initializer->getAsSymbolNode()) + { + const TVariable *initializerVariable = &initializer->getAsSymbolNode()->variable(); + if (mVariableMap.count(initializerVariable) > 0) + { + initializer = mVariableMap[initializerVariable]->deepCopy(); + } + } + else + { + initializer->traverse(this); + } + } + + ASSERT(asSymbol && asSymbol->variable().symbolType() != SymbolType::Empty); + + TType *newType = new TType(structure, false); + newType->setQualifier(asSymbol->getType().getQualifier()); + newType->makeArrays(asSymbol->getType().getArraySizes()); + + TVariable *replacementVar = new TVariable(mSymbolTable, asSymbol->getName(), newType, + asSymbol->variable().symbolType()); + TIntermSymbol *replacementSymbol = new TIntermSymbol(replacementVar); + TIntermTyped *replacement = replacementSymbol; + if (initializer) + { + replacement = new TIntermBinary(EOpInitialize, replacement, initializer); + } + + TIntermDeclaration *replacementDeclaration = new TIntermDeclaration; + replacementDeclaration->appendDeclarator(replacement); + replacementDeclaration->setLine(declarator->getLine()); + replacementDeclarations->push_back(replacementDeclaration); + + mVariableMap[&asSymbol->variable()] = replacementSymbol; +} } // namespace -bool SeparateDeclarations(TCompiler *compiler, TIntermNode *root) +bool SeparateDeclarations(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) { - return SeparateDeclarationsTraverser::apply(compiler, root); + return SeparateDeclarationsTraverser::apply(compiler, root, symbolTable); } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h @@ -0,0 +1,39 @@ +// +// Copyright 2018 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. +// +// SeparateStructFromUniformDeclarations: Separate struct declarations from uniform declarations. +// It necessarily gives nameless uniform structs internal names. +// +// For example: +// uniform struct { int a; } uni; +// becomes: +// struct s1 { int a; }; +// uniform s1 uni; +// +// And: +// uniform struct S { int a; } uni; +// becomes: +// struct S { int a; }; +// uniform S uni; +// +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ +#define COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +ANGLE_NO_DISCARD bool SeparateStructFromUniformDeclarations(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp @@ -0,0 +1,115 @@ +// +// Copyright 2018 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. +// +// SeparateStructFromUniformDeclarations: Separate struct declarations from uniform declarations. +// + +#include "compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" + +namespace sh +{ +namespace +{ +// This traverser translates embedded uniform structs into a specifier and declaration. +// This makes the declarations easier to move into uniform blocks. +class Traverser : public TIntermTraverser +{ + public: + explicit Traverser(TSymbolTable *symbolTable) + : TIntermTraverser(true, false, false, symbolTable) + {} + + bool visitDeclaration(Visit visit, TIntermDeclaration *decl) override + { + ASSERT(visit == PreVisit); + + if (!mInGlobalScope) + { + return true; + } + + const TIntermSequence &sequence = *(decl->getSequence()); + ASSERT(sequence.size() == 1); + TIntermTyped *declarator = sequence.front()->getAsTyped(); + const TType &type = declarator->getType(); + + if (type.isStructSpecifier() && type.getQualifier() == EvqUniform) + { + doReplacement(decl, declarator, type); + return false; + } + + return true; + } + + void visitSymbol(TIntermSymbol *symbol) override + { + const TVariable *variable = &symbol->variable(); + if (mVariableMap.count(variable) > 0) + { + queueAccessChainReplacement(mVariableMap[variable]->deepCopy()); + } + } + + private: + void doReplacement(TIntermDeclaration *decl, TIntermTyped *declarator, const TType &oldType) + { + const TStructure *structure = oldType.getStruct(); + if (structure->symbolType() == SymbolType::Empty) + { + // Handle nameless structs: uniform struct { ... } variable; + structure = new TStructure(mSymbolTable, kEmptyImmutableString, &structure->fields(), + SymbolType::AngleInternal); + } + TType *namedType = new TType(structure, true); + namedType->setQualifier(EvqGlobal); + + TVariable *structVariable = + new TVariable(mSymbolTable, kEmptyImmutableString, namedType, SymbolType::Empty); + TIntermSymbol *structDeclarator = new TIntermSymbol(structVariable); + TIntermDeclaration *structDeclaration = new TIntermDeclaration; + structDeclaration->appendDeclarator(structDeclarator); + + TIntermSequence newSequence; + newSequence.push_back(structDeclaration); + + // Redeclare the uniform with the (potentially) new struct type + TIntermSymbol *asSymbol = declarator->getAsSymbolNode(); + ASSERT(asSymbol && asSymbol->variable().symbolType() != SymbolType::Empty); + + TIntermDeclaration *namedDecl = new TIntermDeclaration; + TType *uniformType = new TType(structure, false); + uniformType->setQualifier(EvqUniform); + uniformType->makeArrays(oldType.getArraySizes()); + + TVariable *newVar = new TVariable(mSymbolTable, asSymbol->getName(), uniformType, + asSymbol->variable().symbolType()); + TIntermSymbol *newSymbol = new TIntermSymbol(newVar); + namedDecl->appendDeclarator(newSymbol); + + newSequence.push_back(namedDecl); + + mVariableMap[&asSymbol->variable()] = newSymbol; + + mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), decl, + std::move(newSequence)); + } + + VariableReplacementMap mVariableMap; +}; +} // anonymous namespace + +bool SeparateStructFromUniformDeclarations(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable) +{ + Traverser separateStructDecls(symbolTable); + root->traverse(&separateStructDecls); + return separateStructDecls.updateTree(compiler, root); +} +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.h --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.h @@ -19,10 +19,14 @@ class TIntermNode; class TSymbolTable; ANGLE_NO_DISCARD bool SimplifyLoopConditions(TCompiler *compiler, TIntermNode *root, + TSymbolTable *symbolTable); + +ANGLE_NO_DISCARD bool SimplifyLoopConditions(TCompiler *compiler, + TIntermNode *root, unsigned int conditionsToSimplify, TSymbolTable *symbolTable); } // namespace sh #endif // COMPILER_TRANSLATOR_TREEOPS_SIMPLIFYLOOPCONDITIONS_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp @@ -19,41 +19,52 @@ { namespace { +struct LoopInfo +{ + const TVariable *conditionVariable = nullptr; + TIntermTyped *condition = nullptr; + TIntermTyped *expression = nullptr; +}; + class SimplifyLoopConditionsTraverser : public TLValueTrackingTraverser { public: - SimplifyLoopConditionsTraverser(unsigned int conditionsToSimplifyMask, + SimplifyLoopConditionsTraverser(const IntermNodePatternMatcher *conditionsToSimplify, TSymbolTable *symbolTable); void traverseLoop(TIntermLoop *node) override; bool visitUnary(Visit visit, TIntermUnary *node) override; bool visitBinary(Visit visit, TIntermBinary *node) override; bool visitAggregate(Visit visit, TIntermAggregate *node) override; bool visitTernary(Visit visit, TIntermTernary *node) override; bool visitDeclaration(Visit visit, TIntermDeclaration *node) override; + bool visitBranch(Visit visit, TIntermBranch *node) override; bool foundLoopToChange() const { return mFoundLoopToChange; } protected: // Marked to true once an operation that needs to be hoisted out of a loop expression has been // found. bool mFoundLoopToChange; bool mInsideLoopInitConditionOrExpression; - IntermNodePatternMatcher mConditionsToSimplify; + const IntermNodePatternMatcher *mConditionsToSimplify; + + private: + LoopInfo mLoop; }; SimplifyLoopConditionsTraverser::SimplifyLoopConditionsTraverser( - unsigned int conditionsToSimplifyMask, + const IntermNodePatternMatcher *conditionsToSimplify, TSymbolTable *symbolTable) : TLValueTrackingTraverser(true, false, false, symbolTable), mFoundLoopToChange(false), mInsideLoopInitConditionOrExpression(false), - mConditionsToSimplify(conditionsToSimplifyMask) + mConditionsToSimplify(conditionsToSimplify) {} // If we're inside a loop initialization, condition, or expression, we check for expressions that // should be moved out of the loop condition or expression. If one is found, the loop is // transformed. @@ -66,11 +77,12 @@ return false; if (mFoundLoopToChange) return false; // Already decided to change this loop. - mFoundLoopToChange = mConditionsToSimplify.match(node); + ASSERT(mConditionsToSimplify); + mFoundLoopToChange = mConditionsToSimplify->match(node); return !mFoundLoopToChange; } bool SimplifyLoopConditionsTraverser::visitBinary(Visit visit, TIntermBinary *node) { @@ -78,11 +90,13 @@ return false; if (mFoundLoopToChange) return false; // Already decided to change this loop. - mFoundLoopToChange = mConditionsToSimplify.match(node, getParentNode(), isLValueRequiredHere()); + ASSERT(mConditionsToSimplify); + mFoundLoopToChange = + mConditionsToSimplify->match(node, getParentNode(), isLValueRequiredHere()); return !mFoundLoopToChange; } bool SimplifyLoopConditionsTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { @@ -90,11 +104,12 @@ return false; if (mFoundLoopToChange) return false; // Already decided to change this loop. - mFoundLoopToChange = mConditionsToSimplify.match(node, getParentNode()); + ASSERT(mConditionsToSimplify); + mFoundLoopToChange = mConditionsToSimplify->match(node, getParentNode()); return !mFoundLoopToChange; } bool SimplifyLoopConditionsTraverser::visitTernary(Visit visit, TIntermTernary *node) { @@ -102,11 +117,12 @@ return false; if (mFoundLoopToChange) return false; // Already decided to change this loop. - mFoundLoopToChange = mConditionsToSimplify.match(node); + ASSERT(mConditionsToSimplify); + mFoundLoopToChange = mConditionsToSimplify->match(node); return !mFoundLoopToChange; } bool SimplifyLoopConditionsTraverser::visitDeclaration(Visit visit, TIntermDeclaration *node) { @@ -114,23 +130,48 @@ return false; if (mFoundLoopToChange) return false; // Already decided to change this loop. - mFoundLoopToChange = mConditionsToSimplify.match(node); + ASSERT(mConditionsToSimplify); + mFoundLoopToChange = mConditionsToSimplify->match(node); return !mFoundLoopToChange; } +bool SimplifyLoopConditionsTraverser::visitBranch(Visit visit, TIntermBranch *node) +{ + if (node->getFlowOp() == EOpContinue && (mLoop.condition || mLoop.expression)) + { + TIntermBlock *parent = getParentNode()->getAsBlock(); + ASSERT(parent); + TIntermSequence seq; + if (mLoop.expression) + { + seq.push_back(mLoop.expression->deepCopy()); + } + if (mLoop.condition) + { + ASSERT(mLoop.conditionVariable); + seq.push_back( + CreateTempAssignmentNode(mLoop.conditionVariable, mLoop.condition->deepCopy())); + } + seq.push_back(node); + mMultiReplacements.push_back(NodeReplaceWithMultipleEntry(parent, node, std::move(seq))); + } + + return true; +} + void SimplifyLoopConditionsTraverser::traverseLoop(TIntermLoop *node) { // Mark that we're inside a loop condition or expression, and determine if the loop needs to be // transformed. ScopedNodeInTraversalPath addToPath(this, node); mInsideLoopInitConditionOrExpression = true; - mFoundLoopToChange = false; + mFoundLoopToChange = !mConditionsToSimplify; if (!mFoundLoopToChange && node->getInit()) { node->getInit()->traverse(this); } @@ -145,156 +186,306 @@ node->getExpression()->traverse(this); } mInsideLoopInitConditionOrExpression = false; + const LoopInfo prevLoop = mLoop; + if (mFoundLoopToChange) { - const TType *boolType = StaticType::Get(); - TVariable *conditionVariable = CreateTempVariable(mSymbolTable, boolType); + const TType *boolType = StaticType::Get(); + mLoop.conditionVariable = CreateTempVariable(mSymbolTable, boolType); + mLoop.condition = node->getCondition(); + mLoop.expression = node->getExpression(); // Replace the loop condition with a boolean variable that's updated on each iteration. TLoopType loopType = node->getType(); if (loopType == ELoopWhile) { - // Transform: - // while (expr) { body; } - // into - // bool s0 = expr; - // while (s0) { { body; } s0 = expr; } - TIntermDeclaration *tempInitDeclaration = - CreateTempInitDeclarationNode(conditionVariable, node->getCondition()->deepCopy()); - insertStatementInParentBlock(tempInitDeclaration); + ASSERT(!mLoop.expression); + + if (mLoop.condition->getAsSymbolNode()) + { + // Mask continue statement condition variable update. + mLoop.condition = nullptr; + } + else if (mLoop.condition->getAsConstantUnion()) + { + // Transform: + // while (expr) { body; } + // into + // bool s0 = expr; + // while (s0) { body; } + TIntermDeclaration *tempInitDeclaration = + CreateTempInitDeclarationNode(mLoop.conditionVariable, mLoop.condition); + insertStatementInParentBlock(tempInitDeclaration); + + node->setCondition(CreateTempSymbolNode(mLoop.conditionVariable)); - TIntermBlock *newBody = new TIntermBlock(); - if (node->getBody()) - { - newBody->getSequence()->push_back(node->getBody()); + // Mask continue statement condition variable update. + mLoop.condition = nullptr; } - newBody->getSequence()->push_back( - CreateTempAssignmentNode(conditionVariable, node->getCondition()->deepCopy())); + else + { + // Transform: + // while (expr) { body; } + // into + // bool s0 = expr; + // while (s0) { { body; } s0 = expr; } + // + // Local case statements are transformed into: + // s0 = expr; continue; + TIntermDeclaration *tempInitDeclaration = + CreateTempInitDeclarationNode(mLoop.conditionVariable, mLoop.condition); + insertStatementInParentBlock(tempInitDeclaration); - // Can't use queueReplacement to replace old body, since it may have been nullptr. - // It's safe to do the replacements in place here - the new body will still be - // traversed, but that won't create any problems. - node->setBody(newBody); - node->setCondition(CreateTempSymbolNode(conditionVariable)); + TIntermBlock *newBody = new TIntermBlock(); + if (node->getBody()) + { + newBody->getSequence()->push_back(node->getBody()); + } + newBody->getSequence()->push_back( + CreateTempAssignmentNode(mLoop.conditionVariable, mLoop.condition->deepCopy())); + + // Can't use queueReplacement to replace old body, since it may have been nullptr. + // It's safe to do the replacements in place here - the new body will still be + // traversed, but that won't create any problems. + node->setBody(newBody); + node->setCondition(CreateTempSymbolNode(mLoop.conditionVariable)); + } } else if (loopType == ELoopDoWhile) { - // Transform: - // do { - // body; - // } while (expr); - // into - // bool s0 = true; - // do { - // { body; } - // s0 = expr; - // } while (s0); - TIntermDeclaration *tempInitDeclaration = - CreateTempInitDeclarationNode(conditionVariable, CreateBoolNode(true)); - insertStatementInParentBlock(tempInitDeclaration); + ASSERT(!mLoop.expression); + + if (mLoop.condition->getAsSymbolNode()) + { + // Mask continue statement condition variable update. + mLoop.condition = nullptr; + } + else if (mLoop.condition->getAsConstantUnion()) + { + // Transform: + // do { + // body; + // } while (expr); + // into + // bool s0 = expr; + // do { + // body; + // } while (s0); + TIntermDeclaration *tempInitDeclaration = + CreateTempInitDeclarationNode(mLoop.conditionVariable, mLoop.condition); + insertStatementInParentBlock(tempInitDeclaration); + + node->setCondition(CreateTempSymbolNode(mLoop.conditionVariable)); - TIntermBlock *newBody = new TIntermBlock(); - if (node->getBody()) - { - newBody->getSequence()->push_back(node->getBody()); + // Mask continue statement condition variable update. + mLoop.condition = nullptr; } - newBody->getSequence()->push_back( - CreateTempAssignmentNode(conditionVariable, node->getCondition()->deepCopy())); + else + { + // Transform: + // do { + // body; + // } while (expr); + // into + // bool s0; + // do { + // { body; } + // s0 = expr; + // } while (s0); + // Local case statements are transformed into: + // s0 = expr; continue; + TIntermDeclaration *tempInitDeclaration = + CreateTempDeclarationNode(mLoop.conditionVariable); + insertStatementInParentBlock(tempInitDeclaration); - // Can't use queueReplacement to replace old body, since it may have been nullptr. - // It's safe to do the replacements in place here - the new body will still be - // traversed, but that won't create any problems. - node->setBody(newBody); - node->setCondition(CreateTempSymbolNode(conditionVariable)); + TIntermBlock *newBody = new TIntermBlock(); + if (node->getBody()) + { + newBody->getSequence()->push_back(node->getBody()); + } + newBody->getSequence()->push_back( + CreateTempAssignmentNode(mLoop.conditionVariable, mLoop.condition)); + + // Can't use queueReplacement to replace old body, since it may have been nullptr. + // It's safe to do the replacements in place here - the new body will still be + // traversed, but that won't create any problems. + node->setBody(newBody); + node->setCondition(CreateTempSymbolNode(mLoop.conditionVariable)); + } } else if (loopType == ELoopFor) { - // Move the loop condition inside the loop. - // Transform: - // for (init; expr; exprB) { body; } - // into - // { - // init; - // bool s0 = expr; - // while (s0) { - // { body; } - // exprB; - // s0 = expr; - // } - // } + if (!mLoop.condition) + { + mLoop.condition = CreateBoolNode(true); + } + + TIntermLoop *whileLoop; TIntermBlock *loopScope = new TIntermBlock(); TIntermSequence *loopScopeSequence = loopScope->getSequence(); // Insert "init;" if (node->getInit()) { loopScopeSequence->push_back(node->getInit()); } - // Insert "bool s0 = expr;" if applicable, "bool s0 = true;" otherwise - TIntermTyped *conditionInitializer = nullptr; - if (node->getCondition()) + if (mLoop.condition->getAsSymbolNode()) + { + // Move the loop condition inside the loop. + // Transform: + // for (init; expr; exprB) { body; } + // into + // { + // init; + // while (expr) { + // { body; } + // exprB; + // } + // } + // + // Local case statements are transformed into: + // exprB; continue; + + // Insert "{ body; }" in the while loop + TIntermBlock *whileLoopBody = new TIntermBlock(); + if (node->getBody()) + { + whileLoopBody->getSequence()->push_back(node->getBody()); + } + // Insert "exprB;" in the while loop + if (node->getExpression()) + { + whileLoopBody->getSequence()->push_back(node->getExpression()); + } + // Create "while(expr) { whileLoopBody }" + whileLoop = + new TIntermLoop(ELoopWhile, nullptr, mLoop.condition, nullptr, whileLoopBody); + + // Mask continue statement condition variable update. + mLoop.condition = nullptr; + } + else if (mLoop.condition->getAsConstantUnion()) { - conditionInitializer = node->getCondition()->deepCopy(); + // Move the loop condition inside the loop. + // Transform: + // for (init; expr; exprB) { body; } + // into + // { + // init; + // bool s0 = expr; + // while (s0) { + // { body; } + // exprB; + // } + // } + // + // Local case statements are transformed into: + // exprB; continue; + + // Insert "bool s0 = expr;" + loopScopeSequence->push_back( + CreateTempInitDeclarationNode(mLoop.conditionVariable, mLoop.condition)); + // Insert "{ body; }" in the while loop + TIntermBlock *whileLoopBody = new TIntermBlock(); + if (node->getBody()) + { + whileLoopBody->getSequence()->push_back(node->getBody()); + } + // Insert "exprB;" in the while loop + if (node->getExpression()) + { + whileLoopBody->getSequence()->push_back(node->getExpression()); + } + // Create "while(s0) { whileLoopBody }" + whileLoop = new TIntermLoop(ELoopWhile, nullptr, + CreateTempSymbolNode(mLoop.conditionVariable), nullptr, + whileLoopBody); + + // Mask continue statement condition variable update. + mLoop.condition = nullptr; } else { - conditionInitializer = CreateBoolNode(true); - } - loopScopeSequence->push_back( - CreateTempInitDeclarationNode(conditionVariable, conditionInitializer)); + // Move the loop condition inside the loop. + // Transform: + // for (init; expr; exprB) { body; } + // into + // { + // init; + // bool s0 = expr; + // while (s0) { + // { body; } + // exprB; + // s0 = expr; + // } + // } + // + // Local case statements are transformed into: + // exprB; s0 = expr; continue; - // Insert "{ body; }" in the while loop - TIntermBlock *whileLoopBody = new TIntermBlock(); - if (node->getBody()) - { - whileLoopBody->getSequence()->push_back(node->getBody()); - } - // Insert "exprB;" in the while loop - if (node->getExpression()) - { - whileLoopBody->getSequence()->push_back(node->getExpression()); - } - // Insert "s0 = expr;" in the while loop - if (node->getCondition()) - { + // Insert "bool s0 = expr;" + loopScopeSequence->push_back( + CreateTempInitDeclarationNode(mLoop.conditionVariable, mLoop.condition)); + // Insert "{ body; }" in the while loop + TIntermBlock *whileLoopBody = new TIntermBlock(); + if (node->getBody()) + { + whileLoopBody->getSequence()->push_back(node->getBody()); + } + // Insert "exprB;" in the while loop + if (node->getExpression()) + { + whileLoopBody->getSequence()->push_back(node->getExpression()); + } + // Insert "s0 = expr;" in the while loop whileLoopBody->getSequence()->push_back( - CreateTempAssignmentNode(conditionVariable, node->getCondition()->deepCopy())); + CreateTempAssignmentNode(mLoop.conditionVariable, mLoop.condition->deepCopy())); + // Create "while(s0) { whileLoopBody }" + whileLoop = new TIntermLoop(ELoopWhile, nullptr, + CreateTempSymbolNode(mLoop.conditionVariable), nullptr, + whileLoopBody); } - // Create "while(s0) { whileLoopBody }" - TIntermLoop *whileLoop = - new TIntermLoop(ELoopWhile, nullptr, CreateTempSymbolNode(conditionVariable), - nullptr, whileLoopBody); loopScope->getSequence()->push_back(whileLoop); queueReplacement(loopScope, OriginalNode::IS_DROPPED); // After this the old body node will be traversed and loops inside it may be - // transformed. This is fine, since the old body node will still be in the AST after the - // transformation that's queued here, and transforming loops inside it doesn't need to - // know the exact post-transform path to it. + // transformed. This is fine, since the old body node will still be in the AST after + // the transformation that's queued here, and transforming loops inside it doesn't + // need to know the exact post-transform path to it. } } mFoundLoopToChange = false; // We traverse the body of the loop even if the loop is transformed. if (node->getBody()) node->getBody()->traverse(this); + + mLoop = prevLoop; } } // namespace +bool SimplifyLoopConditions(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) +{ + SimplifyLoopConditionsTraverser traverser(nullptr, symbolTable); + root->traverse(&traverser); + return traverser.updateTree(compiler, root); +} + bool SimplifyLoopConditions(TCompiler *compiler, TIntermNode *root, unsigned int conditionsToSimplifyMask, TSymbolTable *symbolTable) { - SimplifyLoopConditionsTraverser traverser(conditionsToSimplifyMask, symbolTable); + IntermNodePatternMatcher conditionsToSimplify(conditionsToSimplifyMask); + SimplifyLoopConditionsTraverser traverser(&conditionsToSimplify, symbolTable); root->traverse(&traverser); return traverser.updateTree(compiler, root); } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/AddAndTrueToLoopCondition.h @@ -0,0 +1,31 @@ +// +// Copyright 2016 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. +// + +// Rewrite condition in for and while loops to work around driver bug on Intel Mac. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_APPLE_ADDANDTRUETOLOOPCONDITION_H_ +#define COMPILER_TRANSLATOR_TREEOPS_APPLE_ADDANDTRUETOLOOPCONDITION_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermNode; + +#if defined(ANGLE_ENABLE_GLSL) && defined(ANGLE_ENABLE_APPLE_WORKAROUNDS) +ANGLE_NO_DISCARD bool AddAndTrueToLoopCondition(TCompiler *compiler, TIntermNode *root); +#else +ANGLE_NO_DISCARD ANGLE_INLINE bool AddAndTrueToLoopCondition(TCompiler *compiler, TIntermNode *root) +{ + UNREACHABLE(); + return false; +} +#endif + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_APPLE_ADDANDTRUETOLOOPCONDITION_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteDoWhile.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteDoWhile.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteDoWhile.h @@ -0,0 +1,38 @@ +// +// Copyright 2015 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. +// + +// RewriteDoWhile.h: rewrite do-while loops as while loops to work around +// driver bugs + +#ifndef COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEDOWHILE_H_ +#define COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEDOWHILE_H_ + +#include "common/angleutils.h" + +namespace sh +{ + +class TCompiler; +class TIntermNode; +class TSymbolTable; + +#if defined(ANGLE_ENABLE_GLSL) && defined(ANGLE_ENABLE_APPLE_WORKAROUNDS) +ANGLE_NO_DISCARD bool RewriteDoWhile(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable); +#else +ANGLE_NO_DISCARD ANGLE_INLINE bool RewriteDoWhile(TCompiler *compiler, + TIntermNode *root, + TSymbolTable *symbolTable) +{ + UNREACHABLE(); + return false; +} +#endif + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEDOWHILE_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteRowMajorMatrices.h @@ -0,0 +1,37 @@ +// +// Copyright 2019 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. +// +// RewriteRowMajorMatrices: Change row-major matrices to column-major in uniform and storage +// buffers. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEROWMAJORMATRICES_H_ +#define COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEROWMAJORMATRICES_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermBlock; +class TSymbolTable; + +#if (defined(ANGLE_ENABLE_GLSL) || defined(ANGLE_ENABLE_METAL)) && \ + defined(ANGLE_ENABLE_APPLE_WORKAROUNDS) +ANGLE_NO_DISCARD bool RewriteRowMajorMatrices(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable); +#else +ANGLE_NO_DISCARD ANGLE_INLINE bool RewriteRowMajorMatrices(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable) +{ + UNREACHABLE(); + return false; +} +#endif + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEROWMAJORMATRICES_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/RewriteUnaryMinusOperatorFloat.h @@ -0,0 +1,31 @@ +// Copyright 2016 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. +// +// Rewrite "-float" to "0.0 - float" to work around unary minus operator on float issue on Intel Mac +// OSX 10.11. + +#ifndef COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEUNARYMINUSOPERATORFLOAT_H_ +#define COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEUNARYMINUSOPERATORFLOAT_H_ + +#include "common/angleutils.h" + +namespace sh +{ +class TCompiler; +class TIntermNode; + +#if defined(ANGLE_ENABLE_GLSL) && defined(ANGLE_ENABLE_APPLE_WORKAROUNDS) +ANGLE_NO_DISCARD bool RewriteUnaryMinusOperatorFloat(TCompiler *compiler, TIntermNode *root); +#else +ANGLE_NO_DISCARD ANGLE_INLINE bool RewriteUnaryMinusOperatorFloat(TCompiler *compiler, + TIntermNode *root) +{ + UNREACHABLE(); + return false; +} +#endif + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_APPLE_REWRITEUNARYMINUSOPERATORFLOAT_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/apple/UnfoldShortCircuitAST.h @@ -0,0 +1,33 @@ +// +// Copyright 2002 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. +// +// UnfoldShortCircuitAST is an AST traverser to replace short-circuiting +// operations with ternary operations. +// + +#ifndef COMPILER_TRANSLATOR_TREEOPS_APPLE_UNFOLDSHORTCIRCUITAST_H_ +#define COMPILER_TRANSLATOR_TREEOPS_APPLE_UNFOLDSHORTCIRCUITAST_H_ + +#include "common/angleutils.h" + +namespace sh +{ + +class TCompiler; +class TIntermBlock; + +#if defined(ANGLE_ENABLE_GLSL) && defined(ANGLE_ENABLE_APPLE_WORKAROUNDS) +ANGLE_NO_DISCARD bool UnfoldShortCircuitAST(TCompiler *compiler, TIntermBlock *root); +#else +ANGLE_NO_DISCARD ANGLE_INLINE bool UnfoldShortCircuitAST(TCompiler *compiler, TIntermBlock *root) +{ + UNREACHABLE(); + return false; +} +#endif + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEOPS_APPLE_UNFOLDSHORTCIRCUITAST_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp @@ -112,18 +112,18 @@ // added. Also set the function to return void. const TSymbolUniqueId &functionId = node->getFunction()->uniqueId(); if (mChangedFunctions.find(functionId.get()) == mChangedFunctions.end()) { TType *returnValueVariableType = new TType(node->getType()); - returnValueVariableType->setQualifier(EvqOut); + returnValueVariableType->setQualifier(EvqParamOut); ChangedFunction changedFunction; changedFunction.returnValueVariable = new TVariable(mSymbolTable, kReturnValueVariableName, returnValueVariableType, SymbolType::AngleInternal); TFunction *func = new TFunction(mSymbolTable, node->getFunction()->name(), node->getFunction()->symbolType(), - StaticType::GetBasic(), false); + StaticType::GetBasic(), false); for (size_t i = 0; i < node->getFunction()->getParamCount(); ++i) { func->addParameter(node->getFunction()->getParam(i)); } func->addParameter(changedFunction.returnValueVariable); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteAtomicFunctionExpressions.cpp @@ -124,11 +124,11 @@ TIntermNode *parentNode) { ASSERT(node); // We only need to handle atomic functions with a parent that it is not block nodes. If the // parent node is block, it means that the atomic function is not inside an expression. - if (!IsAtomicFunction(node->getOp()) || parentNode->getAsBlock()) + if (!BuiltInGroup::IsAtomicMemory(node->getOp()) || parentNode->getAsBlock()) { return false; } auto *parentAsBinary = parentNode->getAsBinaryNode(); @@ -138,11 +138,11 @@ bool RewriteAtomicFunctionExpressionsTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { ASSERT(visit == PostVisit); // Skip atomic memory functions for SSBO. They will be processed in the OutputHLSL traverser. - if (IsAtomicFunction(node->getOp()) && + if (BuiltInGroup::IsAtomicMemory(node->getOp()) && IsInShaderStorageBlock((*node->getSequence())[0]->getAsTyped())) { return false; } diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteExpressionsWithShaderStorageBlock.cpp @@ -268,11 +268,11 @@ { return false; } // We still need to process the ssbo as the non-first argument of atomic memory functions. - if (IsAtomicFunction(node->getOp()) && + if (BuiltInGroup::IsAtomicMemory(node->getOp()) && IsInShaderStorageBlock((*node->getSequence())[0]->getAsTyped())) { return true; } @@ -293,11 +293,11 @@ TIntermSymbol *argumentCopy = insertInitStatementAndReturnTempSymbol(ssboArgument, &insertions); if (node->getFunction() != nullptr) { TQualifier qual = node->getFunction()->getParam(i)->getType().getQualifier(); - if (qual == EvqInOut || qual == EvqOut) + if (qual == EvqParamInOut || qual == EvqParamOut) { TIntermBinary *readBackToSSBO = new TIntermBinary( EOpAssign, ssboArgument->deepCopy(), argumentCopy->deepCopy()); readBackToSSBOs.push_back(readBackToSSBO); } diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_ops/d3d/RewriteUnaryMinusOperatorInt.cpp @@ -89,12 +89,14 @@ } else { one->setUConst(1u); } - TIntermConstantUnion *oneNode = - new TIntermConstantUnion(one, TType(opr->getBasicType(), opr->getPrecision(), EvqConst)); + TType *oneType = new TType(opr->getType()); + oneType->setQualifier(EvqConst); + + TIntermConstantUnion *oneNode = new TIntermConstantUnion(one, *oneType); oneNode->setLine(opr->getLine()); // ~(int) + 1 TIntermBinary *add = new TIntermBinary(EOpAdd, bitwiseNot, oneNode); add->setLine(opr->getLine()); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright 2002 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. -// -// During parsing, all constant expressions are folded to constant union nodes. The expressions that -// have been folded may have had precision qualifiers, which should affect the precision of the -// consuming operation. If the folded constant union nodes are written to output as such they won't -// have any precision qualifiers, and their effect on the precision of the consuming operation is -// lost. -// -// RecordConstantPrecision is an AST traverser that inspects the precision qualifiers of constants -// and hoists the constants outside the containing expression as precision qualified named variables -// in case that is required for correct precision propagation. -// - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_RECORDCONSTANTPRECISION_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_RECORDCONSTANTPRECISION_H_ - -#include "common/angleutils.h" - -namespace sh -{ -class TCompiler; -class TIntermNode; -class TSymbolTable; - -ANGLE_NO_DISCARD bool RecordConstantPrecision(TCompiler *compiler, - TIntermNode *root, - TSymbolTable *symbolTable); -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_RECORDCONSTANTPRECISION_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// -// Copyright 2002 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. -// -// During parsing, all constant expressions are folded to constant union nodes. The expressions that -// have been folded may have had precision qualifiers, which should affect the precision of the -// consuming operation. If the folded constant union nodes are written to output as such they won't -// have any precision qualifiers, and their effect on the precision of the consuming operation is -// lost. -// -// RecordConstantPrecision is an AST traverser that inspects the precision qualifiers of constants -// and hoists the constants outside the containing expression as precision qualified named variables -// in case that is required for correct precision propagation. -// - -#include "compiler/translator/tree_ops/gl/RecordConstantPrecision.h" - -#include "compiler/translator/InfoSink.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -class RecordConstantPrecisionTraverser : public TIntermTraverser -{ - public: - RecordConstantPrecisionTraverser(TSymbolTable *symbolTable); - - void visitConstantUnion(TIntermConstantUnion *node) override; - - void nextIteration(); - - bool foundHigherPrecisionConstant() const { return mFoundHigherPrecisionConstant; } - - protected: - bool operandAffectsParentOperationPrecision(TIntermTyped *operand); - - bool mFoundHigherPrecisionConstant; -}; - -RecordConstantPrecisionTraverser::RecordConstantPrecisionTraverser(TSymbolTable *symbolTable) - : TIntermTraverser(true, false, true, symbolTable), mFoundHigherPrecisionConstant(false) -{} - -bool RecordConstantPrecisionTraverser::operandAffectsParentOperationPrecision(TIntermTyped *operand) -{ - if (getParentNode()->getAsCaseNode() || getParentNode()->getAsBlock()) - { - return false; - } - - const TIntermBinary *parentAsBinary = getParentNode()->getAsBinaryNode(); - if (parentAsBinary != nullptr) - { - // If the constant is assigned or is used to initialize a variable, or if it's an index, - // its precision has no effect. - switch (parentAsBinary->getOp()) - { - case EOpInitialize: - case EOpAssign: - case EOpIndexDirect: - case EOpIndexDirectStruct: - case EOpIndexDirectInterfaceBlock: - case EOpIndexIndirect: - return false; - default: - break; - } - - TIntermTyped *otherOperand = parentAsBinary->getRight(); - if (otherOperand == operand) - { - otherOperand = parentAsBinary->getLeft(); - } - // If the precision of the other child is at least as high as the precision of the constant, - // the precision of the constant has no effect. - if (otherOperand->getAsConstantUnion() == nullptr && - otherOperand->getPrecision() >= operand->getPrecision()) - { - return false; - } - } - - TIntermAggregate *parentAsAggregate = getParentNode()->getAsAggregate(); - if (parentAsAggregate != nullptr) - { - if (!parentAsAggregate->gotPrecisionFromChildren()) - { - // This can be either: - // * a call to an user-defined function - // * a call to a texture function - // * some other kind of aggregate - // In any of these cases the constant precision has no effect. - return false; - } - if (parentAsAggregate->isConstructor() && parentAsAggregate->getBasicType() == EbtBool) - { - return false; - } - // If the precision of operands does affect the result, but the precision of any of the - // other children has a precision that's at least as high as the precision of the constant, - // the precision of the constant has no effect. - TIntermSequence *parameters = parentAsAggregate->getSequence(); - for (TIntermNode *parameter : *parameters) - { - const TIntermTyped *typedParameter = parameter->getAsTyped(); - if (parameter != operand && typedParameter != nullptr && - parameter->getAsConstantUnion() == nullptr && - typedParameter->getPrecision() >= operand->getPrecision()) - { - return false; - } - } - } - return true; -} - -void RecordConstantPrecisionTraverser::visitConstantUnion(TIntermConstantUnion *node) -{ - if (mFoundHigherPrecisionConstant) - return; - - // If the constant has lowp or undefined precision, it can't increase the precision of consuming - // operations. - if (node->getPrecision() < EbpMedium) - return; - - // It's possible the node has no effect on the precision of the consuming expression, depending - // on the consuming expression, and the precision of the other parameters of the expression. - if (!operandAffectsParentOperationPrecision(node)) - return; - - // Make the constant a precision-qualified named variable to make sure it affects the precision - // of the consuming expression. - TIntermDeclaration *variableDeclaration = nullptr; - TVariable *variable = DeclareTempVariable(mSymbolTable, node, EvqConst, &variableDeclaration); - insertStatementInParentBlock(variableDeclaration); - queueReplacement(CreateTempSymbolNode(variable), OriginalNode::IS_DROPPED); - mFoundHigherPrecisionConstant = true; -} - -void RecordConstantPrecisionTraverser::nextIteration() -{ - mFoundHigherPrecisionConstant = false; -} - -} // namespace - -bool RecordConstantPrecision(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) -{ - RecordConstantPrecisionTraverser traverser(symbolTable); - // Iterate as necessary, and reset the traverser between iterations. - do - { - traverser.nextIteration(); - root->traverse(&traverser); - if (traverser.foundHigherPrecisionConstant()) - { - if (!traverser.updateTree(compiler, root)) - { - return false; - } - } - } while (traverser.foundHigherPrecisionConstant()); - - return true; -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2017 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. -// -// VectorizeVectorScalarArithmetic.h: Turn some arithmetic operations that operate on a float -// vector-scalar pair into vector-vector operations. This is done recursively. Some scalar binary -// operations inside vector constructors are also turned into vector operations. -// -// This is targeted to work around a bug in NVIDIA OpenGL drivers that was reproducible on NVIDIA -// driver version 387.92. It works around the most common occurrences of the bug. - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_VECTORIZEVECTORSCALARARITHMETIC_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_VECTORIZEVECTORSCALARARITHMETIC_H_ - -#include "common/angleutils.h" - -namespace sh -{ - -class TCompiler; -class TIntermBlock; -class TSymbolTable; - -#ifdef ANGLE_ENABLE_GLSL -ANGLE_NO_DISCARD bool VectorizeVectorScalarArithmetic(TCompiler *compiler, - TIntermBlock *root, - TSymbolTable *symbolTable); -#else -ANGLE_NO_DISCARD ANGLE_INLINE bool VectorizeVectorScalarArithmetic(TCompiler *compiler, - TIntermBlock *root, - TSymbolTable *symbolTable) -{ - UNREACHABLE(); - return false; -} -#endif - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_VECTORIZEVECTORSCALARARITHMETIC_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.cpp +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright 2017 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. -// -// VectorizeVectorScalarArithmetic.cpp: Turn some arithmetic operations that operate on a float -// vector-scalar pair into vector-vector operations. This is done recursively. Some scalar binary -// operations inside vector constructors are also turned into vector operations. -// -// This is targeted to work around a bug in NVIDIA OpenGL drivers that was reproducible on NVIDIA -// driver version 387.92. It works around the most common occurrences of the bug. - -#include "compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h" - -#include - -#include "compiler/translator/IntermNode.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -class VectorizeVectorScalarArithmeticTraverser : public TIntermTraverser -{ - public: - VectorizeVectorScalarArithmeticTraverser(TSymbolTable *symbolTable) - : TIntermTraverser(true, false, false, symbolTable), mReplaced(false) - {} - - bool didReplaceScalarsWithVectors() { return mReplaced; } - void nextIteration() - { - mReplaced = false; - mModifiedBlocks.clear(); - } - - protected: - bool visitBinary(Visit visit, TIntermBinary *node) override; - bool visitAggregate(Visit visit, TIntermAggregate *node) override; - - private: - // These helpers should only be called from visitAggregate when visiting a constructor. - // argBinary is the only argument of the constructor. - void replaceMathInsideConstructor(TIntermAggregate *node, TIntermBinary *argBinary); - void replaceAssignInsideConstructor(const TIntermAggregate *node, - const TIntermBinary *argBinary); - - static TIntermTyped *Vectorize(TIntermTyped *node, - TType vectorType, - TIntermTraverser::OriginalNode *originalNodeFate); - - bool mReplaced; - std::set mModifiedBlocks; -}; - -TIntermTyped *VectorizeVectorScalarArithmeticTraverser::Vectorize( - TIntermTyped *node, - TType vectorType, - TIntermTraverser::OriginalNode *originalNodeFate) -{ - ASSERT(node->isScalar()); - vectorType.setQualifier(EvqTemporary); - TIntermSequence vectorConstructorArgs; - vectorConstructorArgs.push_back(node); - TIntermAggregate *vectorized = - TIntermAggregate::CreateConstructor(vectorType, &vectorConstructorArgs); - TIntermTyped *vectorizedFolded = vectorized->fold(nullptr); - if (originalNodeFate != nullptr) - { - if (vectorizedFolded != vectorized) - { - *originalNodeFate = OriginalNode::IS_DROPPED; - } - else - { - *originalNodeFate = OriginalNode::BECOMES_CHILD; - } - } - return vectorizedFolded; -} - -bool VectorizeVectorScalarArithmeticTraverser::visitBinary(Visit /*visit*/, TIntermBinary *node) -{ - TIntermTyped *left = node->getLeft(); - TIntermTyped *right = node->getRight(); - ASSERT(left); - ASSERT(right); - switch (node->getOp()) - { - case EOpAdd: - case EOpAddAssign: - // Only these specific ops are necessary to turn into vector ops. - break; - default: - return true; - } - if (node->getBasicType() != EbtFloat) - { - // Only float ops have reproduced the bug. - return true; - } - if (left->isScalar() && right->isVector()) - { - ASSERT(!node->isAssignment()); - ASSERT(!right->isArray()); - OriginalNode originalNodeFate; - TIntermTyped *leftVectorized = Vectorize(left, right->getType(), &originalNodeFate); - queueReplacementWithParent(node, left, leftVectorized, originalNodeFate); - mReplaced = true; - // Don't replace more nodes in the same subtree on this traversal. However, nodes elsewhere - // in the tree may still be replaced. - return false; - } - else if (left->isVector() && right->isScalar()) - { - OriginalNode originalNodeFate; - TIntermTyped *rightVectorized = Vectorize(right, left->getType(), &originalNodeFate); - queueReplacementWithParent(node, right, rightVectorized, originalNodeFate); - mReplaced = true; - // Don't replace more nodes in the same subtree on this traversal. However, nodes elsewhere - // in the tree may still be replaced. - return false; - } - return true; -} - -void VectorizeVectorScalarArithmeticTraverser::replaceMathInsideConstructor( - TIntermAggregate *node, - TIntermBinary *argBinary) -{ - // Turn: - // a * b - // into: - // gvec(a) * gvec(b) - - TIntermTyped *left = argBinary->getLeft(); - TIntermTyped *right = argBinary->getRight(); - ASSERT(left->isScalar() && right->isScalar()); - - TType leftVectorizedType = left->getType(); - leftVectorizedType.setPrimarySize(static_cast(node->getType().getNominalSize())); - TIntermTyped *leftVectorized = Vectorize(left, leftVectorizedType, nullptr); - TType rightVectorizedType = right->getType(); - rightVectorizedType.setPrimarySize( - static_cast(node->getType().getNominalSize())); - TIntermTyped *rightVectorized = Vectorize(right, rightVectorizedType, nullptr); - - TIntermBinary *newArg = new TIntermBinary(argBinary->getOp(), leftVectorized, rightVectorized); - queueReplacementWithParent(node, argBinary, newArg, OriginalNode::IS_DROPPED); -} - -void VectorizeVectorScalarArithmeticTraverser::replaceAssignInsideConstructor( - const TIntermAggregate *node, - const TIntermBinary *argBinary) -{ - // Turn: - // gvec(a *= b); - // into: - // // This is inserted into the parent block: - // gvec s0 = gvec(a); - // - // // This goes where the gvec constructor used to be: - // ((s0 *= b, a = s0.x), s0); - - TIntermTyped *left = argBinary->getLeft(); - TIntermTyped *right = argBinary->getRight(); - ASSERT(left->isScalar() && right->isScalar()); - ASSERT(!left->hasSideEffects()); - - TType vecType = node->getType(); - vecType.setQualifier(EvqTemporary); - - // gvec s0 = gvec(a); - // s0 is called "tempAssignmentTarget" below. - TIntermTyped *tempAssignmentTargetInitializer = Vectorize(left->deepCopy(), vecType, nullptr); - TIntermDeclaration *tempAssignmentTargetDeclaration = nullptr; - TVariable *tempAssignmentTarget = - DeclareTempVariable(mSymbolTable, tempAssignmentTargetInitializer, EvqTemporary, - &tempAssignmentTargetDeclaration); - - // s0 *= b - TOperator compoundAssignmentOp = argBinary->getOp(); - if (compoundAssignmentOp == EOpMulAssign) - { - compoundAssignmentOp = EOpVectorTimesScalarAssign; - } - TIntermBinary *replacementCompoundAssignment = new TIntermBinary( - compoundAssignmentOp, CreateTempSymbolNode(tempAssignmentTarget), right->deepCopy()); - - // s0.x - TVector swizzleXOffset; - swizzleXOffset.push_back(0); - TIntermSwizzle *tempAssignmentTargetX = - new TIntermSwizzle(CreateTempSymbolNode(tempAssignmentTarget), swizzleXOffset); - // a = s0.x - TIntermBinary *replacementAssignBackToTarget = - new TIntermBinary(EOpAssign, left->deepCopy(), tempAssignmentTargetX); - - // s0 *= b, a = s0.x - TIntermBinary *replacementSequenceLeft = - new TIntermBinary(EOpComma, replacementCompoundAssignment, replacementAssignBackToTarget); - // (s0 *= b, a = s0.x), s0 - // Note that the created comma node is not const qualified in any case, so we can always pass - // shader version 300 here. - TIntermBinary *replacementSequence = TIntermBinary::CreateComma( - replacementSequenceLeft, CreateTempSymbolNode(tempAssignmentTarget), 300); - - insertStatementInParentBlock(tempAssignmentTargetDeclaration); - queueReplacement(replacementSequence, OriginalNode::IS_DROPPED); -} - -bool VectorizeVectorScalarArithmeticTraverser::visitAggregate(Visit /*visit*/, - TIntermAggregate *node) -{ - // Transform scalar binary expressions inside vector constructors. - if (!node->isConstructor() || !node->isVector() || node->getSequence()->size() != 1) - { - return true; - } - TIntermTyped *argument = node->getSequence()->back()->getAsTyped(); - ASSERT(argument); - if (!argument->isScalar() || argument->getBasicType() != EbtFloat) - { - return true; - } - TIntermBinary *argBinary = argument->getAsBinaryNode(); - if (!argBinary) - { - return true; - } - - // Only specific ops are necessary to change. - switch (argBinary->getOp()) - { - case EOpMul: - case EOpDiv: - { - replaceMathInsideConstructor(node, argBinary); - mReplaced = true; - // Don't replace more nodes in the same subtree on this traversal. However, nodes - // elsewhere in the tree may still be replaced. - return false; - } - case EOpMulAssign: - case EOpDivAssign: - { - // The case where the left side has side effects is too complicated to deal with, so we - // leave that be. - if (!argBinary->getLeft()->hasSideEffects()) - { - const TIntermBlock *parentBlock = getParentBlock(); - // We can't do more than one insertion to the same block on the same traversal. - if (mModifiedBlocks.find(parentBlock) == mModifiedBlocks.end()) - { - replaceAssignInsideConstructor(node, argBinary); - mModifiedBlocks.insert(parentBlock); - mReplaced = true; - // Don't replace more nodes in the same subtree on this traversal. - // However, nodes elsewhere in the tree may still be replaced. - return false; - } - } - break; - } - default: - return true; - } - return true; -} - -} // anonymous namespace - -bool VectorizeVectorScalarArithmetic(TCompiler *compiler, - TIntermBlock *root, - TSymbolTable *symbolTable) -{ - VectorizeVectorScalarArithmeticTraverser traverser(symbolTable); - do - { - traverser.nextIteration(); - root->traverse(&traverser); - if (!traverser.updateTree(compiler, root)) - { - return false; - } - } while (traverser.didReplaceScalarsWithVectors()); - - return true; -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright 2016 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. -// - -// Rewrite condition in for and while loops to work around driver bug on Intel Mac. - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_MAC_ADDANDTRUETOLOOPCONDITION_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_MAC_ADDANDTRUETOLOOPCONDITION_H_ - -#include "common/angleutils.h" - -namespace sh -{ -class TCompiler; -class TIntermNode; - -ANGLE_NO_DISCARD bool AddAndTrueToLoopCondition(TCompiler *compiler, TIntermNode *root); - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_MAC_ADDANDTRUETOLOOPCONDITION_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// Copyright 2016 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. -// - -#include "compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h" - -#include "compiler/translator/Compiler.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -// An AST traverser that rewrites for and while loops by replacing "condition" with -// "condition && true" to work around condition bug on Intel Mac. -class AddAndTrueToLoopConditionTraverser : public TIntermTraverser -{ - public: - AddAndTrueToLoopConditionTraverser() : TIntermTraverser(true, false, false) {} - - bool visitLoop(Visit, TIntermLoop *loop) override - { - // do-while loop doesn't have this bug. - if (loop->getType() != ELoopFor && loop->getType() != ELoopWhile) - { - return true; - } - - // For loop may not have a condition. - if (loop->getCondition() == nullptr) - { - return true; - } - - // Constant true. - TIntermTyped *trueValue = CreateBoolNode(true); - - // CONDITION && true. - TIntermBinary *andOp = new TIntermBinary(EOpLogicalAnd, loop->getCondition(), trueValue); - loop->setCondition(andOp); - - return true; - } -}; - -} // anonymous namespace - -bool AddAndTrueToLoopCondition(TCompiler *compiler, TIntermNode *root) -{ - AddAndTrueToLoopConditionTraverser traverser; - root->traverse(&traverser); - return compiler->validateAST(root); -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright 2015 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. -// - -// RewriteDoWhile.h: rewrite do-while loops as while loops to work around -// driver bugs - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEDOWHILE_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEDOWHILE_H_ - -#include "common/angleutils.h" - -namespace sh -{ - -class TCompiler; -class TIntermNode; -class TSymbolTable; - -ANGLE_NO_DISCARD bool RewriteDoWhile(TCompiler *compiler, - TIntermNode *root, - TSymbolTable *symbolTable); - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEDOWHILE_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.cpp +++ /dev/null @@ -1,147 +0,0 @@ -// -// Copyright 2015 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. -// - -// RewriteDoWhile.cpp: rewrites do-while loops using another equivalent -// construct. - -#include "compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h" - -#include "compiler/translator/Compiler.h" -#include "compiler/translator/StaticType.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -// An AST traverser that rewrites loops of the form -// do { -// CODE; -// } while (CONDITION) -// -// to loops of the form -// bool temp = false; -// while (true) { -// if (temp) { -// if (!CONDITION) { -// break; -// } -// } -// temp = true; -// CODE; -// } -// -// The reason we don't use a simpler form, with for example just (temp && !CONDITION) in the -// while condition, is that short-circuit is often badly supported by driver shader compiler. -// The double if has the same effect, but forces shader compilers to behave. -// -// TODO(cwallez) when UnfoldShortCircuitIntoIf handles loops correctly, revisit this as we might -// be able to use while (temp || CONDITION) with temp initially set to true then run -// UnfoldShortCircuitIntoIf -class DoWhileRewriter : public TIntermTraverser -{ - public: - DoWhileRewriter(TSymbolTable *symbolTable) : TIntermTraverser(true, false, false, symbolTable) - {} - - bool visitBlock(Visit, TIntermBlock *node) override - { - // A well-formed AST can only have do-while inside TIntermBlock. By doing a prefix traversal - // we are able to replace the do-while in the sequence directly as the content of the - // do-while will be traversed later. - - TIntermSequence *statements = node->getSequence(); - - // The statements vector will have new statements inserted when we encounter a do-while, - // which prevents us from using a range-based for loop. Using the usual i++ works, as - // the (two) new statements inserted replace the statement at the current position. - for (size_t i = 0; i < statements->size(); i++) - { - TIntermNode *statement = (*statements)[i]; - TIntermLoop *loop = statement->getAsLoopNode(); - - if (loop == nullptr || loop->getType() != ELoopDoWhile) - { - continue; - } - - // Found a loop to change. - const TType *boolType = StaticType::Get(); - TVariable *conditionVariable = CreateTempVariable(mSymbolTable, boolType); - - // bool temp = false; - TIntermDeclaration *tempDeclaration = - CreateTempInitDeclarationNode(conditionVariable, CreateBoolNode(false)); - - // temp = true; - TIntermBinary *assignTrue = - CreateTempAssignmentNode(conditionVariable, CreateBoolNode(true)); - - // if (temp) { - // if (!CONDITION) { - // break; - // } - // } - TIntermIfElse *breakIf = nullptr; - { - TIntermBranch *breakStatement = new TIntermBranch(EOpBreak, nullptr); - - TIntermBlock *breakBlock = new TIntermBlock(); - breakBlock->getSequence()->push_back(breakStatement); - - TIntermUnary *negatedCondition = - new TIntermUnary(EOpLogicalNot, loop->getCondition(), nullptr); - - TIntermIfElse *innerIf = new TIntermIfElse(negatedCondition, breakBlock, nullptr); - - TIntermBlock *innerIfBlock = new TIntermBlock(); - innerIfBlock->getSequence()->push_back(innerIf); - - breakIf = new TIntermIfElse(CreateTempSymbolNode(conditionVariable), innerIfBlock, - nullptr); - } - - // Assemble the replacement loops, reusing the do-while loop's body and inserting our - // statements at the front. - TIntermLoop *newLoop = nullptr; - { - TIntermBlock *body = loop->getBody(); - if (body == nullptr) - { - body = new TIntermBlock(); - } - auto sequence = body->getSequence(); - sequence->insert(sequence->begin(), assignTrue); - sequence->insert(sequence->begin(), breakIf); - - newLoop = new TIntermLoop(ELoopWhile, nullptr, CreateBoolNode(true), nullptr, body); - } - - TIntermSequence replacement; - replacement.push_back(tempDeclaration); - replacement.push_back(newLoop); - - node->replaceChildNodeWithMultiple(loop, replacement); - } - return true; - } -}; - -} // anonymous namespace - -bool RewriteDoWhile(TCompiler *compiler, TIntermNode *root, TSymbolTable *symbolTable) -{ - DoWhileRewriter rewriter(symbolTable); - - root->traverse(&rewriter); - - return compiler->validateAST(root); -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Copyright 2019 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. -// -// RewriteRowMajorMatrices: Change row-major matrices to column-major in uniform and storage -// buffers. - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEROWMAJORMATRICES_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEROWMAJORMATRICES_H_ - -#include "common/angleutils.h" - -namespace sh -{ -class TCompiler; -class TIntermBlock; -class TSymbolTable; - -ANGLE_NO_DISCARD bool RewriteRowMajorMatrices(TCompiler *compiler, - TIntermBlock *root, - TSymbolTable *symbolTable); - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEROWMAJORMATRICES_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.cpp +++ /dev/null @@ -1,1595 +0,0 @@ -// -// Copyright 2019 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. -// -// RewriteRowMajorMatrices: Rewrite row-major matrices as column-major. -// - -#include "compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h" - -#include "compiler/translator/Compiler.h" -#include "compiler/translator/ImmutableStringBuilder.h" -#include "compiler/translator/StaticType.h" -#include "compiler/translator/SymbolTable.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" -#include "compiler/translator/tree_util/ReplaceVariable.h" - -namespace sh -{ -namespace -{ -// Only structs with matrices are tracked. If layout(row_major) is applied to a struct that doesn't -// have matrices, it's silently dropped. This is also used to avoid creating duplicates for inner -// structs that don't have matrices. -struct StructConversionData -{ - // The converted struct with every matrix transposed. - TStructure *convertedStruct = nullptr; - - // The copy-from and copy-to functions copying from a struct to its converted version and back. - TFunction *copyFromOriginal = nullptr; - TFunction *copyToOriginal = nullptr; -}; - -bool DoesFieldContainRowMajorMatrix(const TField *field, bool isBlockRowMajor) -{ - TLayoutMatrixPacking matrixPacking = field->type()->getLayoutQualifier().matrixPacking; - - // The field is row major if either explicitly specified as such, or if it inherits it from the - // block layout qualifier. - if (matrixPacking == EmpColumnMajor || (matrixPacking == EmpUnspecified && !isBlockRowMajor)) - { - return false; - } - - // The field is qualified with row_major, but if it's not a matrix or a struct containing - // matrices, that's a useless qualifier. - const TType *type = field->type(); - return type->isMatrix() || type->isStructureContainingMatrices(); -} - -TField *DuplicateField(const TField *field) -{ - return new TField(new TType(*field->type()), field->name(), field->line(), field->symbolType()); -} - -void SetColumnMajor(TType *type) -{ - TLayoutQualifier layoutQualifier = type->getLayoutQualifier(); - layoutQualifier.matrixPacking = EmpColumnMajor; - type->setLayoutQualifier(layoutQualifier); -} - -TType *TransposeMatrixType(const TType *type) -{ - TType *newType = new TType(*type); - - SetColumnMajor(newType); - - newType->setPrimarySize(static_cast(type->getRows())); - newType->setSecondarySize(static_cast(type->getCols())); - - return newType; -} - -void CopyArraySizes(const TType *from, TType *to) -{ - if (from->isArray()) - { - to->makeArrays(from->getArraySizes()); - } -} - -// Determine if the node is an index node (array index or struct field selection). For the purposes -// of this transformation, swizzle nodes are considered index nodes too. -bool IsIndexNode(TIntermNode *node, TIntermNode *child) -{ - if (node->getAsSwizzleNode()) - { - return true; - } - - TIntermBinary *binaryNode = node->getAsBinaryNode(); - if (binaryNode == nullptr || child != binaryNode->getLeft()) - { - return false; - } - - TOperator op = binaryNode->getOp(); - - return op == EOpIndexDirect || op == EOpIndexDirectInterfaceBlock || - op == EOpIndexDirectStruct || op == EOpIndexIndirect; -} - -TIntermSymbol *CopyToTempVariable(TSymbolTable *symbolTable, - TIntermTyped *node, - TIntermSequence *prependStatements) -{ - TVariable *temp = CreateTempVariable(symbolTable, &node->getType()); - TIntermDeclaration *tempDecl = CreateTempInitDeclarationNode(temp, node); - prependStatements->push_back(tempDecl); - - return new TIntermSymbol(temp); -} - -TIntermAggregate *CreateStructCopyCall(const TFunction *copyFunc, TIntermTyped *expression) -{ - TIntermSequence args = {expression}; - return TIntermAggregate::CreateFunctionCall(*copyFunc, &args); -} - -TIntermTyped *CreateTransposeCall(TSymbolTable *symbolTable, TIntermTyped *expression) -{ - TIntermSequence args = {expression}; - return CreateBuiltInFunctionCallNode("transpose", &args, *symbolTable, 300); -} - -TOperator GetIndex(TSymbolTable *symbolTable, - TIntermNode *node, - TIntermSequence *indices, - TIntermSequence *prependStatements) -{ - // Swizzle nodes are converted EOpIndexDirect for simplicity, with one index per swizzle - // channel. - TIntermSwizzle *asSwizzle = node->getAsSwizzleNode(); - if (asSwizzle) - { - for (int channel : asSwizzle->getSwizzleOffsets()) - { - indices->push_back(CreateIndexNode(channel)); - } - return EOpIndexDirect; - } - - TIntermBinary *binaryNode = node->getAsBinaryNode(); - ASSERT(binaryNode); - - TOperator op = binaryNode->getOp(); - ASSERT(op == EOpIndexDirect || op == EOpIndexDirectInterfaceBlock || - op == EOpIndexDirectStruct || op == EOpIndexIndirect); - - TIntermTyped *rhs = binaryNode->getRight()->deepCopy(); - if (rhs->getAsConstantUnion() == nullptr) - { - rhs = CopyToTempVariable(symbolTable, rhs, prependStatements); - } - - indices->push_back(rhs); - return op; -} - -TIntermTyped *ReplicateIndexNode(TSymbolTable *symbolTable, - TIntermNode *node, - TIntermTyped *lhs, - TIntermSequence *indices) -{ - TIntermSwizzle *asSwizzle = node->getAsSwizzleNode(); - if (asSwizzle) - { - return new TIntermSwizzle(lhs, asSwizzle->getSwizzleOffsets()); - } - - TIntermBinary *binaryNode = node->getAsBinaryNode(); - ASSERT(binaryNode); - - ASSERT(indices->size() == 1); - TIntermTyped *rhs = indices->front()->getAsTyped(); - - return new TIntermBinary(binaryNode->getOp(), lhs, rhs); -} - -TOperator GetIndexOp(TIntermNode *node) -{ - return node->getAsConstantUnion() ? EOpIndexDirect : EOpIndexIndirect; -} - -bool IsConvertedField(TIntermTyped *indexNode, - const angle::HashMap &convertedFields) -{ - TIntermBinary *asBinary = indexNode->getAsBinaryNode(); - if (asBinary == nullptr) - { - return false; - } - - if (asBinary->getOp() != EOpIndexDirectInterfaceBlock) - { - return false; - } - - const TInterfaceBlock *interfaceBlock = asBinary->getLeft()->getType().getInterfaceBlock(); - ASSERT(interfaceBlock); - - TIntermConstantUnion *fieldIndexNode = asBinary->getRight()->getAsConstantUnion(); - ASSERT(fieldIndexNode); - ASSERT(fieldIndexNode->getConstantValue() != nullptr); - - int fieldIndex = fieldIndexNode->getConstantValue()->getIConst(); - const TField *field = interfaceBlock->fields()[fieldIndex]; - - return convertedFields.count(field) > 0 && convertedFields.at(field); -} - -// A helper class to transform expressions of array type. Iterates over every element of the -// array. -class TransformArrayHelper -{ - public: - TransformArrayHelper(TIntermTyped *baseExpression) - : mBaseExpression(baseExpression), - mBaseExpressionType(baseExpression->getType()), - mArrayIndices(mBaseExpressionType.getArraySizes().size(), 0) - {} - - TIntermTyped *getNextElement(TIntermTyped *valueExpression, TIntermTyped **valueElementOut) - { - const TSpan &arraySizes = mBaseExpressionType.getArraySizes(); - - // If the last index overflows, element enumeration is done. - if (mArrayIndices.back() >= arraySizes.back()) - { - return nullptr; - } - - TIntermTyped *element = getCurrentElement(mBaseExpression); - if (valueExpression) - { - *valueElementOut = getCurrentElement(valueExpression); - } - - incrementIndices(arraySizes); - return element; - } - - void accumulateForRead(TSymbolTable *symbolTable, - TIntermTyped *transformedElement, - TIntermSequence *prependStatements) - { - TIntermTyped *temp = CopyToTempVariable(symbolTable, transformedElement, prependStatements); - mReadTransformConstructorArgs.push_back(temp); - } - - TIntermTyped *constructReadTransformExpression() - { - const TSpan &baseTypeArraySizes = mBaseExpressionType.getArraySizes(); - TVector arraySizes(baseTypeArraySizes.begin(), baseTypeArraySizes.end()); - TIntermTyped *firstElement = mReadTransformConstructorArgs.front()->getAsTyped(); - const TType &baseType = firstElement->getType(); - - // If N dimensions, acc[0] == size[0] and acc[i] == size[i] * acc[i-1]. - // The last value is unused, and is not present. - TVector accumulatedArraySizes(arraySizes.size() - 1); - - if (accumulatedArraySizes.size() > 0) - { - accumulatedArraySizes[0] = arraySizes[0]; - } - for (size_t index = 1; index + 1 < arraySizes.size(); ++index) - { - accumulatedArraySizes[index] = accumulatedArraySizes[index - 1] * arraySizes[index]; - } - - return constructReadTransformExpressionHelper(arraySizes, accumulatedArraySizes, baseType, - 0); - } - - private: - TIntermTyped *getCurrentElement(TIntermTyped *expression) - { - TIntermTyped *element = expression->deepCopy(); - for (auto it = mArrayIndices.rbegin(); it != mArrayIndices.rend(); ++it) - { - unsigned int index = *it; - element = new TIntermBinary(EOpIndexDirect, element, CreateIndexNode(index)); - } - return element; - } - - void incrementIndices(const TSpan &arraySizes) - { - // Assume mArrayIndices is an N digit number, where digit i is in the range - // [0, arraySizes[i]). This function increments this number. Last digit is the most - // significant digit. - for (size_t digitIndex = 0; digitIndex < arraySizes.size(); ++digitIndex) - { - ++mArrayIndices[digitIndex]; - if (mArrayIndices[digitIndex] < arraySizes[digitIndex]) - { - break; - } - if (digitIndex + 1 != arraySizes.size()) - { - // This digit has now overflown and is reset to 0, carry will be added to the next - // digit. The most significant digit will keep the overflow though, to make it - // clear we have exhausted the range. - mArrayIndices[digitIndex] = 0; - } - } - } - - TIntermTyped *constructReadTransformExpressionHelper( - const TVector &arraySizes, - const TVector &accumulatedArraySizes, - const TType &baseType, - size_t elementsOffset) - { - ASSERT(!arraySizes.empty()); - - TType *transformedType = new TType(baseType); - transformedType->makeArrays(arraySizes); - - // If one dimensional, create the constructor with the given elements. - if (arraySizes.size() == 1) - { - ASSERT(accumulatedArraySizes.size() == 0); - - auto sliceStart = mReadTransformConstructorArgs.begin() + elementsOffset; - TIntermSequence slice(sliceStart, sliceStart + arraySizes[0]); - - return TIntermAggregate::CreateConstructor(*transformedType, &slice); - } - - // If not, create constructors for every column recursively. - TVector subArraySizes(arraySizes.begin(), arraySizes.end() - 1); - TVector subArrayAccumulatedSizes(accumulatedArraySizes.begin(), - accumulatedArraySizes.end() - 1); - - TIntermSequence constructorArgs; - unsigned int colStride = accumulatedArraySizes.back(); - for (size_t col = 0; col < arraySizes.back(); ++col) - { - size_t colElementsOffset = elementsOffset + col * colStride; - - constructorArgs.push_back(constructReadTransformExpressionHelper( - subArraySizes, subArrayAccumulatedSizes, baseType, colElementsOffset)); - } - - return TIntermAggregate::CreateConstructor(*transformedType, &constructorArgs); - } - - TIntermTyped *mBaseExpression; - const TType &mBaseExpressionType; - TVector mArrayIndices; - - TIntermSequence mReadTransformConstructorArgs; -}; - -// Traverser that: -// -// 1. Converts |layout(row_major) matCxR M| to |layout(column_major) matRxC Mt|. -// 2. Converts |layout(row_major) S s| to |layout(column_major) St st|, where S is a struct that -// contains matrices, and St is a new struct with the transformation in 1 applied to matrix -// members (recursively). -// 3. When read from, the following transformations are applied: -// -// M -> transpose(Mt) -// M[c] -> gvecN(Mt[0][c], Mt[1][c], ..., Mt[N-1][c]) -// M[c][r] -> Mt[r][c] -// M[c].yz -> gvec2(Mt[1][c], Mt[2][c]) -// MArr -> MType[D1]..[DN](transpose(MtArr[0]...[0]), ...) -// s -> copy_St_to_S(st) -// sArr -> SType[D1]...[DN](copy_St_to_S(stArr[0]..[0]), ...) -// (matrix reads through struct are transformed similarly to M) -// -// 4. When written to, the following transformations are applied: -// -// M = exp -> Mt = transpose(exp) -// M[c] = exp -> temp = exp -// Mt[0][c] = temp[0] -// Mt[1][c] = temp[1] -// ... -// Mt[N-1][c] = temp[N-1] -// M[c][r] = exp -> Mt[r][c] = exp -// M[c].yz = exp -> temp = exp -// Mt[1][c] = temp[0] -// Mt[2][c] = temp[1] -// MArr = exp -> temp = exp -// Mt = MtType[D1]..[DN](temp([0]...[0]), ...) -// s = exp -> st = copy_S_to_St(exp) -// sArr = exp -> temp = exp -// St = StType[D1]...[DN](copy_S_to_St(temp[0]..[0]), ...) -// (matrix writes through struct are transformed similarly to M) -// -// 5. If any of the above is passed to an `inout` parameter, both transformations are applied: -// -// f(M[c]) -> temp = gvecN(Mt[0][c], Mt[1][c], ..., Mt[N-1][c]) -// f(temp) -// Mt[0][c] = temp[0] -// Mt[1][c] = temp[1] -// ... -// Mt[N-1][c] = temp[N-1] -// -// f(s) -> temp = copy_St_to_S(st) -// f(temp) -// st = copy_S_to_St(temp) -// -// If passed to an `out` parameter, the `temp` parameter is simply not initialized. -// -// 6. If the expression leading to the matrix or struct has array subscripts, temp values are -// created for them to avoid duplicating side effects. -// -class RewriteRowMajorMatricesTraverser : public TIntermTraverser -{ - public: - RewriteRowMajorMatricesTraverser(TCompiler *compiler, TSymbolTable *symbolTable) - : TIntermTraverser(true, true, true, symbolTable), - mCompiler(compiler), - mStructMapOut(&mOuterPass.structMap), - mInterfaceBlockMap(&mOuterPass.interfaceBlockMap), - mInterfaceBlockFieldConvertedIn(mOuterPass.interfaceBlockFieldConverted), - mCopyFunctionDefinitionsOut(&mOuterPass.copyFunctionDefinitions), - mOuterTraverser(nullptr), - mInnerPassRoot(nullptr), - mIsProcessingInnerPassSubtree(false) - {} - - bool visitDeclaration(Visit visit, TIntermDeclaration *node) override - { - // No need to process declarations in inner passes. - if (mInnerPassRoot != nullptr) - { - return true; - } - - if (visit != PreVisit) - { - return true; - } - - const TIntermSequence &sequence = *(node->getSequence()); - - TIntermTyped *variable = sequence.front()->getAsTyped(); - const TType &type = variable->getType(); - - // If it's a struct declaration that has matrices, remember it. If a row-major instance - // of it is created, it will have to be converted. - if (type.isStructSpecifier() && type.isStructureContainingMatrices()) - { - const TStructure *structure = type.getStruct(); - ASSERT(structure); - - ASSERT(mOuterPass.structMap.count(structure) == 0); - - StructConversionData structData; - mOuterPass.structMap[structure] = structData; - - return false; - } - - // If it's an interface block, it may have to be converted if it contains any row-major - // fields. - if (type.isInterfaceBlock() && type.getInterfaceBlock()->containsMatrices()) - { - const TInterfaceBlock *block = type.getInterfaceBlock(); - ASSERT(block); - bool isBlockRowMajor = type.getLayoutQualifier().matrixPacking == EmpRowMajor; - - const TFieldList &fields = block->fields(); - bool anyRowMajor = isBlockRowMajor; - - for (const TField *field : fields) - { - if (DoesFieldContainRowMajorMatrix(field, isBlockRowMajor)) - { - anyRowMajor = true; - break; - } - } - - if (anyRowMajor) - { - convertInterfaceBlock(node); - } - - return false; - } - - return true; - } - - void visitSymbol(TIntermSymbol *symbol) override - { - // If in inner pass, only process if the symbol is under that root. - if (mInnerPassRoot != nullptr && !mIsProcessingInnerPassSubtree) - { - return; - } - - const TVariable *variable = &symbol->variable(); - bool needsRewrite = mInterfaceBlockMap->count(variable) != 0; - - // If it's a field of a nameless interface block, it may still need conversion. - if (!needsRewrite) - { - // Nameless interface block field symbols have the interface block pointer set, but are - // not interface blocks. - if (symbol->getType().getInterfaceBlock() && !variable->getType().isInterfaceBlock()) - { - needsRewrite = convertNamelessInterfaceBlockField(symbol); - } - } - - if (needsRewrite) - { - transformExpression(symbol); - } - } - - bool visitBinary(Visit visit, TIntermBinary *node) override - { - if (node == mInnerPassRoot) - { - // We only want to process the right-hand side of an assignment in inner passes. When - // visit is InVisit, the left-hand side is already processed, and the right-hand side is - // next. Set a flag to mark this duration. - mIsProcessingInnerPassSubtree = visit == InVisit; - } - - return true; - } - - TIntermSequence *getStructCopyFunctions() { return &mOuterPass.copyFunctionDefinitions; } - - private: - typedef angle::HashMap StructMap; - typedef angle::HashMap InterfaceBlockMap; - typedef angle::HashMap InterfaceBlockFieldConverted; - - RewriteRowMajorMatricesTraverser( - TSymbolTable *symbolTable, - RewriteRowMajorMatricesTraverser *outerTraverser, - InterfaceBlockMap *interfaceBlockMap, - const InterfaceBlockFieldConverted &interfaceBlockFieldConverted, - StructMap *structMap, - TIntermSequence *copyFunctionDefinitions, - TIntermBinary *innerPassRoot) - : TIntermTraverser(true, true, true, symbolTable), - mStructMapOut(structMap), - mInterfaceBlockMap(interfaceBlockMap), - mInterfaceBlockFieldConvertedIn(interfaceBlockFieldConverted), - mCopyFunctionDefinitionsOut(copyFunctionDefinitions), - mOuterTraverser(outerTraverser), - mInnerPassRoot(innerPassRoot), - mIsProcessingInnerPassSubtree(false) - {} - - void convertInterfaceBlock(TIntermDeclaration *node) - { - ASSERT(mInnerPassRoot == nullptr); - - const TIntermSequence &sequence = *(node->getSequence()); - - TIntermTyped *variableNode = sequence.front()->getAsTyped(); - const TType &type = variableNode->getType(); - const TInterfaceBlock *block = type.getInterfaceBlock(); - ASSERT(block); - - bool isBlockRowMajor = type.getLayoutQualifier().matrixPacking == EmpRowMajor; - - // Recreate the struct with its row-major fields converted to column-major equivalents. - TIntermSequence newDeclarations; - - TFieldList *newFields = new TFieldList; - for (const TField *field : block->fields()) - { - TField *newField = nullptr; - - if (DoesFieldContainRowMajorMatrix(field, isBlockRowMajor)) - { - newField = convertField(field, &newDeclarations); - - // Remember that this field was converted. - mOuterPass.interfaceBlockFieldConverted[field] = true; - } - else - { - newField = DuplicateField(field); - } - - newFields->push_back(newField); - } - - // Create a new interface block with these fields. - TLayoutQualifier blockLayoutQualifier = type.getLayoutQualifier(); - blockLayoutQualifier.matrixPacking = EmpColumnMajor; - - TInterfaceBlock *newInterfaceBlock = - new TInterfaceBlock(mSymbolTable, block->name(), newFields, blockLayoutQualifier, - block->symbolType(), block->extension()); - - // Create a new declaration with the new type. Declarations are separated at this point, - // so there should be only one variable here. - ASSERT(sequence.size() == 1); - - TType *newInterfaceBlockType = - new TType(newInterfaceBlock, type.getQualifier(), blockLayoutQualifier); - - TIntermDeclaration *newDeclaration = new TIntermDeclaration; - const TVariable *variable = &variableNode->getAsSymbolNode()->variable(); - - const TType *newType = newInterfaceBlockType; - if (type.isArray()) - { - TType *newArrayType = new TType(*newType); - CopyArraySizes(&type, newArrayType); - newType = newArrayType; - } - - // If the interface block variable itself is temp, use an empty name. - bool variableIsTemp = variable->symbolType() == SymbolType::Empty; - const ImmutableString &variableName = - variableIsTemp ? kEmptyImmutableString : variable->name(); - - TVariable *newVariable = new TVariable(mSymbolTable, variableName, newType, - variable->symbolType(), variable->extension()); - - newDeclaration->appendDeclarator(new TIntermSymbol(newVariable)); - - mOuterPass.interfaceBlockMap[variable] = newVariable; - - newDeclarations.push_back(newDeclaration); - - // Replace the interface block definition with the new one, prepending any new struct - // definitions. - mMultiReplacements.emplace_back(getParentNode()->getAsBlock(), node, - std::move(newDeclarations)); - } - - bool convertNamelessInterfaceBlockField(TIntermSymbol *symbol) - { - const TVariable *variable = &symbol->variable(); - const TInterfaceBlock *interfaceBlock = symbol->getType().getInterfaceBlock(); - - // Find the variable corresponding to this interface block. If the interface block - // is not rewritten, or this refers to a field that is not rewritten, there's - // nothing to do. - for (auto iter : *mInterfaceBlockMap) - { - // Skip other rewritten nameless interface block fields. - if (!iter.first->getType().isInterfaceBlock()) - { - continue; - } - - // Skip if this is not a field of this rewritten interface block. - if (iter.first->getType().getInterfaceBlock() != interfaceBlock) - { - continue; - } - - const ImmutableString symbolName = symbol->getName(); - - // Find which field it is - const TVector fields = interfaceBlock->fields(); - const size_t fieldIndex = variable->getType().getInterfaceBlockFieldIndex(); - ASSERT(fieldIndex < fields.size()); - - const TField *field = fields[fieldIndex]; - ASSERT(field->name() == symbolName); - - // If this field doesn't need a rewrite, there's nothing to do. - if (mInterfaceBlockFieldConvertedIn.count(field) == 0 || - !mInterfaceBlockFieldConvertedIn.at(field)) - { - break; - } - - // Create a new variable that references the replaced interface block. - TType *newType = new TType(variable->getType()); - newType->setInterfaceBlockField(iter.second->getType().getInterfaceBlock(), fieldIndex); - - TVariable *newVariable = new TVariable(mSymbolTable, variable->name(), newType, - variable->symbolType(), variable->extension()); - - (*mInterfaceBlockMap)[variable] = newVariable; - - return true; - } - - return false; - } - - void convertStruct(const TStructure *structure, TIntermSequence *newDeclarations) - { - ASSERT(mInnerPassRoot == nullptr); - - ASSERT(mOuterPass.structMap.count(structure) != 0); - StructConversionData *structData = &mOuterPass.structMap[structure]; - - if (structData->convertedStruct) - { - return; - } - - TFieldList *newFields = new TFieldList; - for (const TField *field : structure->fields()) - { - newFields->push_back(convertField(field, newDeclarations)); - } - - // Create unique names for the converted structs. We can't leave them nameless and have - // a name autogenerated similar to temp variables, as nameless structs exist. A fake - // variable is created for the sole purpose of generating a temp name. - TVariable *newStructTypeName = - new TVariable(mSymbolTable, kEmptyImmutableString, StaticType::GetBasic(), - SymbolType::Empty); - - TStructure *newStruct = new TStructure(mSymbolTable, newStructTypeName->name(), newFields, - SymbolType::AngleInternal); - TType *newType = new TType(newStruct, true); - TVariable *newStructVar = - new TVariable(mSymbolTable, kEmptyImmutableString, newType, SymbolType::Empty); - - TIntermDeclaration *structDecl = new TIntermDeclaration; - structDecl->appendDeclarator(new TIntermSymbol(newStructVar)); - - newDeclarations->push_back(structDecl); - - structData->convertedStruct = newStruct; - } - - TField *convertField(const TField *field, TIntermSequence *newDeclarations) - { - ASSERT(mInnerPassRoot == nullptr); - - TField *newField = nullptr; - - const TType *fieldType = field->type(); - TType *newType = nullptr; - - if (fieldType->isStructureContainingMatrices()) - { - // If the field is a struct instance, convert the struct and replace the field - // with an instance of the new struct. - const TStructure *fieldTypeStruct = fieldType->getStruct(); - convertStruct(fieldTypeStruct, newDeclarations); - - StructConversionData &structData = mOuterPass.structMap[fieldTypeStruct]; - newType = new TType(structData.convertedStruct, false); - SetColumnMajor(newType); - CopyArraySizes(fieldType, newType); - } - else if (fieldType->isMatrix()) - { - // If the field is a matrix, transpose the matrix and replace the field with - // that, removing the matrix packing qualifier. - newType = TransposeMatrixType(fieldType); - } - - if (newType) - { - newField = new TField(newType, field->name(), field->line(), field->symbolType()); - } - else - { - newField = DuplicateField(field); - } - - return newField; - } - - void determineAccess(TIntermNode *expression, - TIntermNode *accessor, - bool *isReadOut, - bool *isWriteOut) - { - // If passing to a function, look at whether the parameter is in, out or inout. - TIntermAggregate *functionCall = accessor->getAsAggregate(); - - if (functionCall) - { - TIntermSequence *arguments = functionCall->getSequence(); - for (size_t argIndex = 0; argIndex < arguments->size(); ++argIndex) - { - if ((*arguments)[argIndex] == expression) - { - TQualifier qualifier = EvqIn; - - // If the aggregate is not a function call, it's a constructor, and so every - // argument is an input. - const TFunction *function = functionCall->getFunction(); - if (function) - { - const TVariable *param = function->getParam(argIndex); - qualifier = param->getType().getQualifier(); - } - - *isReadOut = qualifier != EvqOut; - *isWriteOut = qualifier == EvqOut || qualifier == EvqInOut; - break; - } - } - return; - } - - TIntermBinary *assignment = accessor->getAsBinaryNode(); - if (assignment && IsAssignment(assignment->getOp())) - { - // If expression is on the right of assignment, it's being read from. - *isReadOut = assignment->getRight() == expression; - // If it's on the left of assignment, it's being written to. - *isWriteOut = assignment->getLeft() == expression; - return; - } - - // Any other usage is a read. - *isReadOut = true; - *isWriteOut = false; - } - - void transformExpression(TIntermSymbol *symbol) - { - // Walk up the parent chain while the nodes are EOpIndex* (whether array indexing or struct - // field selection) or swizzle and construct the replacement expression. This traversal can - // lead to one of the following possibilities: - // - // - a.b[N].etc.s (struct, or struct array): copy function should be declared and used, - // - a.b[N].etc.M (matrix or matrix array): transpose() should be used, - // - a.b[N].etc.M[c] (a column): each element in column needs to be handled separately, - // - a.b[N].etc.M[c].yz (multiple elements): similar to whole column, but a subset of - // elements, - // - a.b[N].etc.M[c][r] (an element): single element to handle. - // - a.b[N].etc.x (not struct or matrix): not modified - // - // primaryIndex will contain c, if any. secondaryIndices will contain {0, ..., R-1} - // (if no [r] or swizzle), {r} (if [r]), or {1, 2} (corresponding to .yz) if any. - // - // In all cases, the base symbol is replaced. |baseExpression| will contain everything up - // to (and not including) the last index/swizzle operations, i.e. a.b[N].etc.s/M/x. Any - // non constant array subscript is assigned to a temp variable to avoid duplicating side - // effects. - // - // --- - // - // NOTE that due to the use of insertStatementsInParentBlock, cases like this will be - // mistranslated, and this bug is likely present in most transformations that use this - // feature: - // - // if (x == 1 && a.b[x = 2].etc.M = value) - // - // which will translate to: - // - // temp = (x = 2) - // if (x == 1 && a.b[temp].etc.M = transpose(value)) - // - // See http://anglebug.com/3829. - // - TIntermTyped *baseExpression = - new TIntermSymbol(mInterfaceBlockMap->at(&symbol->variable())); - const TStructure *structure = nullptr; - - TIntermNode *primaryIndex = nullptr; - TIntermSequence secondaryIndices; - - // In some cases, it is necessary to prepend or append statements. Those are captured in - // |prependStatements| and |appendStatements|. - TIntermSequence prependStatements; - TIntermSequence appendStatements; - - // If the expression is neither a struct or matrix, no modification is necessary. - // If it's a struct that doesn't have matrices, again there's no transformation necessary. - // If it's an interface block matrix field that didn't need to be transposed, no - // transpformation is necessary. - // - // In all these cases, |baseExpression| contains all of the original expression. - // - // If the starting symbol itself is a field of a nameless interface block, it needs - // conversion if we reach here. - bool requiresTransformation = !symbol->getType().isInterfaceBlock(); - - uint32_t accessorIndex = 0; - TIntermTyped *previousAncestor = symbol; - while (IsIndexNode(getAncestorNode(accessorIndex), previousAncestor)) - { - TIntermTyped *ancestor = getAncestorNode(accessorIndex)->getAsTyped(); - ASSERT(ancestor); - - const TType &previousAncestorType = previousAncestor->getType(); - - TIntermSequence indices; - TOperator op = GetIndex(mSymbolTable, ancestor, &indices, &prependStatements); - - bool opIsIndex = op == EOpIndexDirect || op == EOpIndexIndirect; - bool isArrayIndex = opIsIndex && previousAncestorType.isArray(); - bool isMatrixIndex = opIsIndex && previousAncestorType.isMatrix(); - - // If it's a direct index in a matrix, it's the primary index. - bool isMatrixPrimarySubscript = isMatrixIndex && !isArrayIndex; - ASSERT(!isMatrixPrimarySubscript || - (primaryIndex == nullptr && secondaryIndices.empty())); - // If primary index is seen and the ancestor is still an index, it must be a direct - // index as the secondary one. Note that if primaryIndex is set, there can only ever be - // one more parent of interest, and that's subscripting the second dimension. - bool isMatrixSecondarySubscript = primaryIndex != nullptr; - ASSERT(!isMatrixSecondarySubscript || (opIsIndex && !isArrayIndex)); - - if (requiresTransformation && isMatrixPrimarySubscript) - { - ASSERT(indices.size() == 1); - primaryIndex = indices.front(); - - // Default the secondary indices to include every row. If there's a secondary - // subscript provided, it will override this. - int rows = previousAncestorType.getRows(); - for (int r = 0; r < rows; ++r) - { - secondaryIndices.push_back(CreateIndexNode(r)); - } - } - else if (isMatrixSecondarySubscript) - { - ASSERT(requiresTransformation); - - secondaryIndices = indices; - - // Indices after this point are not interesting. There can't actually be any other - // index nodes other than desktop GLSL's swizzles on scalars, like M[1][2].yyy. - ++accessorIndex; - break; - } - else - { - // Replicate the expression otherwise. - baseExpression = - ReplicateIndexNode(mSymbolTable, ancestor, baseExpression, &indices); - - const TType &ancestorType = ancestor->getType(); - structure = ancestorType.getStruct(); - - requiresTransformation = - requiresTransformation || - IsConvertedField(ancestor, mInterfaceBlockFieldConvertedIn); - - // If we reach a point where the expression is neither a matrix-containing struct - // nor a matrix, there's no transformation required. This can happen if we decend - // through a struct marked with row-major but arrive at a member that doesn't - // include a matrix. - if (!ancestorType.isMatrix() && !ancestorType.isStructureContainingMatrices()) - { - requiresTransformation = false; - } - } - - previousAncestor = ancestor; - ++accessorIndex; - } - - TIntermNode *originalExpression = - accessorIndex == 0 ? symbol : getAncestorNode(accessorIndex - 1); - TIntermNode *accessor = getAncestorNode(accessorIndex); - - // if accessor is EOpArrayLength, we don't need to perform any transformations either. - // Note that this only applies to unsized arrays, as the RemoveArrayLengthMethod() - // transformation would have removed this operation otherwise. - TIntermUnary *accessorAsUnary = accessor->getAsUnaryNode(); - if (requiresTransformation && accessorAsUnary && accessorAsUnary->getOp() == EOpArrayLength) - { - ASSERT(accessorAsUnary->getOperand() == originalExpression); - ASSERT(accessorAsUnary->getOperand()->getType().isUnsizedArray()); - - requiresTransformation = false; - - // We need to replace the whole expression including the EOpArrayLength, to avoid - // confusing the replacement code as the original and new expressions don't have the - // same type (one is the transpose of the other). This doesn't affect the .length() - // operation, so this replacement is ok, though it's not worth special-casing this in - // the node replacement algorithm. - // - // Note: the |if (!requiresTransformation)| immediately below will be entered after - // this. - originalExpression = accessor; - accessor = getAncestorNode(accessorIndex + 1); - baseExpression = new TIntermUnary(EOpArrayLength, baseExpression, nullptr); - } - - if (!requiresTransformation) - { - ASSERT(primaryIndex == nullptr); - queueReplacementWithParent(accessor, originalExpression, baseExpression, - OriginalNode::IS_DROPPED); - - RewriteRowMajorMatricesTraverser *traverser = mOuterTraverser ? mOuterTraverser : this; - traverser->insertStatementsInParentBlock(prependStatements, appendStatements); - return; - } - - ASSERT(structure == nullptr || primaryIndex == nullptr); - ASSERT(structure != nullptr || baseExpression->getType().isMatrix()); - - // At the end, we can determine if the expression is being read from or written to (or both, - // if sent as an inout parameter to a function). For the sake of the transformation, the - // left-hand side of operations like += can be treated as "written to", without necessarily - // "read from". - bool isRead = false; - bool isWrite = false; - - determineAccess(originalExpression, accessor, &isRead, &isWrite); - - ASSERT(isRead || isWrite); - - TIntermTyped *readExpression = nullptr; - if (isRead) - { - readExpression = transformReadExpression( - baseExpression, primaryIndex, &secondaryIndices, structure, &prependStatements); - - // If both read from and written to (i.e. passed to inout parameter), store the - // expression in a temp variable and pass that to the function. - if (isWrite) - { - readExpression = - CopyToTempVariable(mSymbolTable, readExpression, &prependStatements); - } - - // Replace the original expression with the transformed one. Read transformations - // always generate a single expression that can be used in place of the original (as - // oppposed to write transformations that can generate multiple statements). - queueReplacementWithParent(accessor, originalExpression, readExpression, - OriginalNode::IS_DROPPED); - } - - TIntermSequence postTransformPrependStatements; - TIntermSequence *writeStatements = &appendStatements; - TOperator assignmentOperator = EOpAssign; - - if (isWrite) - { - TIntermTyped *valueExpression = readExpression; - - if (!valueExpression) - { - // If there's already a read expression, this was an inout parameter and - // |valueExpression| will contain the temp variable that was passed to the function - // instead. - // - // If not, then the modification is either through being passed as an out parameter - // to a function, or an assignment. In the former case, create a temp variable to - // be passed to the function. In the latter case, create a temp variable that holds - // the right hand side expression. - // - // In either case, use that temp value as the value to assign to |baseExpression|. - - TVariable *temp = - CreateTempVariable(mSymbolTable, &originalExpression->getAsTyped()->getType()); - TIntermDeclaration *tempDecl = nullptr; - - valueExpression = new TIntermSymbol(temp); - - TIntermBinary *assignment = accessor->getAsBinaryNode(); - if (assignment) - { - assignmentOperator = assignment->getOp(); - ASSERT(IsAssignment(assignmentOperator)); - - // We are converting the assignment to the left-hand side of an expression in - // the form M=exp. A subexpression of exp itself could require a - // transformation. This complicates things as there would be two replacements: - // - // - Replace M=exp with temp (because the return value of the assignment could - // be used) - // - Replace exp with exp2, where parent is M=exp - // - // The second replacement however is ineffective as the whole of M=exp is - // already transformed. What's worse, M=exp is transformed without taking exp's - // transformations into account. To address this issue, this same traverser is - // called on the right-hand side expression, with a special flag such that it - // only processes that expression. - // - RewriteRowMajorMatricesTraverser *outerTraverser = - mOuterTraverser ? mOuterTraverser : this; - RewriteRowMajorMatricesTraverser rhsTraverser( - mSymbolTable, outerTraverser, mInterfaceBlockMap, - mInterfaceBlockFieldConvertedIn, mStructMapOut, mCopyFunctionDefinitionsOut, - assignment); - getRootNode()->traverse(&rhsTraverser); - bool valid = rhsTraverser.updateTree(mCompiler, getRootNode()); - ASSERT(valid); - - tempDecl = CreateTempInitDeclarationNode(temp, assignment->getRight()); - - // Replace the whole assignment expression with the right-hand side as a read - // expression, in case the result of the assignment is used. For example, this - // transforms: - // - // if ((M += exp) == X) - // { - // // use M - // } - // - // to: - // - // temp = exp; - // M += transform(temp); - // if (transform(M) == X) - // { - // // use M - // } - // - // Note that in this case the assignment to M must be prepended in the parent - // block. In contrast, when sent to a function, the assignment to M should be - // done after the current function call is done. - // - // If the read from M itself (to replace assigmnet) needs to generate extra - // statements, they should be appended after the statements that write to M. - // These statements are stored in postTransformPrependStatements and appended to - // prependStatements in the end. - // - writeStatements = &prependStatements; - - TIntermTyped *assignmentResultExpression = transformReadExpression( - baseExpression->deepCopy(), primaryIndex, &secondaryIndices, structure, - &postTransformPrependStatements); - - // Replace the whole assignment, instead of just the right hand side. - TIntermNode *accessorParent = getAncestorNode(accessorIndex + 1); - queueReplacementWithParent(accessorParent, accessor, assignmentResultExpression, - OriginalNode::IS_DROPPED); - } - else - { - tempDecl = CreateTempDeclarationNode(temp); - - // Replace the write expression (a function call argument) with the temp - // variable. - queueReplacementWithParent(accessor, originalExpression, valueExpression, - OriginalNode::IS_DROPPED); - } - prependStatements.push_back(tempDecl); - } - - if (isRead) - { - baseExpression = baseExpression->deepCopy(); - } - transformWriteExpression(baseExpression, primaryIndex, &secondaryIndices, structure, - valueExpression, assignmentOperator, writeStatements); - } - - prependStatements.insert(prependStatements.end(), postTransformPrependStatements.begin(), - postTransformPrependStatements.end()); - - RewriteRowMajorMatricesTraverser *traverser = mOuterTraverser ? mOuterTraverser : this; - traverser->insertStatementsInParentBlock(prependStatements, appendStatements); - } - - TIntermTyped *transformReadExpression(TIntermTyped *baseExpression, - TIntermNode *primaryIndex, - TIntermSequence *secondaryIndices, - const TStructure *structure, - TIntermSequence *prependStatements) - { - const TType &baseExpressionType = baseExpression->getType(); - - if (structure) - { - ASSERT(primaryIndex == nullptr && secondaryIndices->empty()); - ASSERT(mStructMapOut->count(structure) != 0); - ASSERT((*mStructMapOut)[structure].convertedStruct != nullptr); - - // Declare copy-from-converted-to-original-struct function (if not already). - declareStructCopyToOriginal(structure); - - const TFunction *copyToOriginal = (*mStructMapOut)[structure].copyToOriginal; - - if (baseExpressionType.isArray()) - { - // If base expression is an array, transform every element. - TransformArrayHelper transformHelper(baseExpression); - - TIntermTyped *element = nullptr; - while ((element = transformHelper.getNextElement(nullptr, nullptr)) != nullptr) - { - TIntermTyped *transformedElement = - CreateStructCopyCall(copyToOriginal, element); - transformHelper.accumulateForRead(mSymbolTable, transformedElement, - prependStatements); - } - return transformHelper.constructReadTransformExpression(); - } - else - { - // If not reading an array, the result is simply a call to this function with the - // base expression. - return CreateStructCopyCall(copyToOriginal, baseExpression); - } - } - - // If not indexed, the result is transpose(exp) - if (primaryIndex == nullptr) - { - ASSERT(secondaryIndices->empty()); - - if (baseExpressionType.isArray()) - { - // If array, transpose every element. - TransformArrayHelper transformHelper(baseExpression); - - TIntermTyped *element = nullptr; - while ((element = transformHelper.getNextElement(nullptr, nullptr)) != nullptr) - { - TIntermTyped *transformedElement = CreateTransposeCall(mSymbolTable, element); - transformHelper.accumulateForRead(mSymbolTable, transformedElement, - prependStatements); - } - return transformHelper.constructReadTransformExpression(); - } - else - { - return CreateTransposeCall(mSymbolTable, baseExpression); - } - } - - // If indexed the result is a vector (or just one element) where the primary and secondary - // indices are swapped. - ASSERT(!secondaryIndices->empty()); - - TOperator primaryIndexOp = GetIndexOp(primaryIndex); - TIntermTyped *primaryIndexAsTyped = primaryIndex->getAsTyped(); - - TIntermSequence transposedColumn; - for (TIntermNode *secondaryIndex : *secondaryIndices) - { - TOperator secondaryIndexOp = GetIndexOp(secondaryIndex); - TIntermTyped *secondaryIndexAsTyped = secondaryIndex->getAsTyped(); - - TIntermBinary *colIndexed = new TIntermBinary( - secondaryIndexOp, baseExpression->deepCopy(), secondaryIndexAsTyped->deepCopy()); - TIntermBinary *colRowIndexed = - new TIntermBinary(primaryIndexOp, colIndexed, primaryIndexAsTyped->deepCopy()); - - transposedColumn.push_back(colRowIndexed); - } - - if (secondaryIndices->size() == 1) - { - // If only one element, return that directly. - return transposedColumn.front()->getAsTyped(); - } - - // Otherwise create a constructor with the appropriate dimension. - TType *vecType = new TType(baseExpressionType.getBasicType(), secondaryIndices->size()); - return TIntermAggregate::CreateConstructor(*vecType, &transposedColumn); - } - - void transformWriteExpression(TIntermTyped *baseExpression, - TIntermNode *primaryIndex, - TIntermSequence *secondaryIndices, - const TStructure *structure, - TIntermTyped *valueExpression, - TOperator assignmentOperator, - TIntermSequence *writeStatements) - { - const TType &baseExpressionType = baseExpression->getType(); - - if (structure) - { - ASSERT(primaryIndex == nullptr && secondaryIndices->empty()); - ASSERT(mStructMapOut->count(structure) != 0); - ASSERT((*mStructMapOut)[structure].convertedStruct != nullptr); - - // Declare copy-to-converted-from-original-struct function (if not already). - declareStructCopyFromOriginal(structure); - - // The result is call to this function with the value expression assigned to base - // expression. - const TFunction *copyFromOriginal = (*mStructMapOut)[structure].copyFromOriginal; - - if (baseExpressionType.isArray()) - { - // If array, assign every element. - TransformArrayHelper transformHelper(baseExpression); - - TIntermTyped *element = nullptr; - TIntermTyped *valueElement = nullptr; - while ((element = transformHelper.getNextElement(valueExpression, &valueElement)) != - nullptr) - { - TIntermTyped *functionCall = - CreateStructCopyCall(copyFromOriginal, valueElement); - writeStatements->push_back(new TIntermBinary(EOpAssign, element, functionCall)); - } - } - else - { - TIntermTyped *functionCall = - CreateStructCopyCall(copyFromOriginal, valueExpression->deepCopy()); - writeStatements->push_back( - new TIntermBinary(EOpAssign, baseExpression, functionCall)); - } - - return; - } - - // If not indexed, the result is transpose(exp) - if (primaryIndex == nullptr) - { - ASSERT(secondaryIndices->empty()); - - if (baseExpressionType.isArray()) - { - // If array, assign every element. - TransformArrayHelper transformHelper(baseExpression); - - TIntermTyped *element = nullptr; - TIntermTyped *valueElement = nullptr; - while ((element = transformHelper.getNextElement(valueExpression, &valueElement)) != - nullptr) - { - TIntermTyped *valueTransposed = CreateTransposeCall(mSymbolTable, valueElement); - writeStatements->push_back( - new TIntermBinary(EOpAssign, element, valueTransposed)); - } - } - else - { - TIntermTyped *valueTransposed = - CreateTransposeCall(mSymbolTable, valueExpression->deepCopy()); - writeStatements->push_back( - new TIntermBinary(assignmentOperator, baseExpression, valueTransposed)); - } - - return; - } - - // If indexed, create one assignment per secondary index. If the right-hand side is a - // scalar, it's used with every assignment. If it's a vector, the assignment is - // per-component. The right-hand side cannot be a matrix as that would imply left-hand - // side being a matrix too, which is covered above where |primaryIndex == nullptr|. - ASSERT(!secondaryIndices->empty()); - - bool isValueExpressionScalar = valueExpression->getType().getNominalSize() == 1; - ASSERT(isValueExpressionScalar || valueExpression->getType().getNominalSize() == - static_cast(secondaryIndices->size())); - - TOperator primaryIndexOp = GetIndexOp(primaryIndex); - TIntermTyped *primaryIndexAsTyped = primaryIndex->getAsTyped(); - - for (TIntermNode *secondaryIndex : *secondaryIndices) - { - TOperator secondaryIndexOp = GetIndexOp(secondaryIndex); - TIntermTyped *secondaryIndexAsTyped = secondaryIndex->getAsTyped(); - - TIntermBinary *colIndexed = new TIntermBinary( - secondaryIndexOp, baseExpression->deepCopy(), secondaryIndexAsTyped->deepCopy()); - TIntermBinary *colRowIndexed = - new TIntermBinary(primaryIndexOp, colIndexed, primaryIndexAsTyped->deepCopy()); - - TIntermTyped *valueExpressionIndexed = valueExpression->deepCopy(); - if (!isValueExpressionScalar) - { - valueExpressionIndexed = new TIntermBinary(secondaryIndexOp, valueExpressionIndexed, - secondaryIndexAsTyped->deepCopy()); - } - - writeStatements->push_back( - new TIntermBinary(assignmentOperator, colRowIndexed, valueExpressionIndexed)); - } - } - - const TFunction *getCopyStructFieldFunction(const TType *fromFieldType, - const TType *toFieldType, - bool isCopyToOriginal) - { - ASSERT(fromFieldType->getStruct()); - ASSERT(toFieldType->getStruct()); - - // If copying from or to the original struct, the "to" field struct could require - // conversion to or from the "from" field struct. |isCopyToOriginal| tells us if we - // should expect to find toField or fromField in mStructMapOut, if true or false - // respectively. - const TFunction *fieldCopyFunction = nullptr; - if (isCopyToOriginal) - { - const TStructure *toFieldStruct = toFieldType->getStruct(); - - auto iter = mStructMapOut->find(toFieldStruct); - if (iter != mStructMapOut->end()) - { - declareStructCopyToOriginal(toFieldStruct); - fieldCopyFunction = iter->second.copyToOriginal; - } - } - else - { - const TStructure *fromFieldStruct = fromFieldType->getStruct(); - - auto iter = mStructMapOut->find(fromFieldStruct); - if (iter != mStructMapOut->end()) - { - declareStructCopyFromOriginal(fromFieldStruct); - fieldCopyFunction = iter->second.copyFromOriginal; - } - } - - return fieldCopyFunction; - } - - void addFieldCopy(TIntermBlock *body, - TIntermTyped *to, - TIntermTyped *from, - bool isCopyToOriginal) - { - const TType &fromType = from->getType(); - const TType &toType = to->getType(); - - TIntermTyped *rhs = from; - - if (fromType.getStruct()) - { - const TFunction *fieldCopyFunction = - getCopyStructFieldFunction(&fromType, &toType, isCopyToOriginal); - - if (fieldCopyFunction) - { - rhs = CreateStructCopyCall(fieldCopyFunction, from); - } - } - else if (fromType.isMatrix()) - { - rhs = CreateTransposeCall(mSymbolTable, from); - } - - body->appendStatement(new TIntermBinary(EOpAssign, to, rhs)); - } - - TFunction *declareStructCopy(const TStructure *from, - const TStructure *to, - bool isCopyToOriginal) - { - TType *fromType = new TType(from, true); - TType *toType = new TType(to, true); - - // Create the parameter and return value variables. - TVariable *fromVar = new TVariable(mSymbolTable, ImmutableString("from"), fromType, - SymbolType::AngleInternal); - TVariable *toVar = - new TVariable(mSymbolTable, ImmutableString("to"), toType, SymbolType::AngleInternal); - - TIntermSymbol *fromSymbol = new TIntermSymbol(fromVar); - TIntermSymbol *toSymbol = new TIntermSymbol(toVar); - - // Create the function body as statements are generated. - TIntermBlock *body = new TIntermBlock; - - // Declare the result variable. - TIntermDeclaration *toDecl = new TIntermDeclaration(); - toDecl->appendDeclarator(toSymbol); - body->appendStatement(toDecl); - - // Iterate over fields of the struct and copy one by one, transposing the matrices. If a - // struct is encountered that requires a transformation, this function is recursively - // called. As a result, it is important that the copy functions are placed in the code in - // order. - const TFieldList &fromFields = from->fields(); - const TFieldList &toFields = to->fields(); - ASSERT(fromFields.size() == toFields.size()); - - for (size_t fieldIndex = 0; fieldIndex < fromFields.size(); ++fieldIndex) - { - TIntermTyped *fieldIndexNode = CreateIndexNode(static_cast(fieldIndex)); - - TIntermTyped *fromField = - new TIntermBinary(EOpIndexDirectStruct, fromSymbol->deepCopy(), fieldIndexNode); - TIntermTyped *toField = new TIntermBinary(EOpIndexDirectStruct, toSymbol->deepCopy(), - fieldIndexNode->deepCopy()); - - const TType *fromFieldType = fromFields[fieldIndex]->type(); - bool isStructOrMatrix = fromFieldType->getStruct() || fromFieldType->isMatrix(); - - if (fromFieldType->isArray() && isStructOrMatrix) - { - // If struct or matrix array, we need to copy element by element. - TransformArrayHelper transformHelper(toField); - - TIntermTyped *toElement = nullptr; - TIntermTyped *fromElement = nullptr; - while ((toElement = transformHelper.getNextElement(fromField, &fromElement)) != - nullptr) - { - addFieldCopy(body, toElement, fromElement, isCopyToOriginal); - } - } - else - { - addFieldCopy(body, toField, fromField, isCopyToOriginal); - } - } - - // Add return statement. - body->appendStatement(new TIntermBranch(EOpReturn, toSymbol->deepCopy())); - - // Declare the function - TFunction *copyFunction = new TFunction(mSymbolTable, kEmptyImmutableString, - SymbolType::AngleInternal, toType, true); - copyFunction->addParameter(fromVar); - - TIntermFunctionDefinition *functionDef = - CreateInternalFunctionDefinitionNode(*copyFunction, body); - mCopyFunctionDefinitionsOut->push_back(functionDef); - - return copyFunction; - } - - void declareStructCopyFromOriginal(const TStructure *structure) - { - StructConversionData *structData = &(*mStructMapOut)[structure]; - if (structData->copyFromOriginal) - { - return; - } - - structData->copyFromOriginal = - declareStructCopy(structure, structData->convertedStruct, false); - } - - void declareStructCopyToOriginal(const TStructure *structure) - { - StructConversionData *structData = &(*mStructMapOut)[structure]; - if (structData->copyToOriginal) - { - return; - } - - structData->copyToOriginal = - declareStructCopy(structData->convertedStruct, structure, true); - } - - TCompiler *mCompiler; - - // This traverser can call itself to transform a subexpression before moving on. However, it - // needs to accumulate conversion functions in inner passes. The fields below marked with Out - // or In are inherited from the outer pass (for inner passes), or point to storage fields in - // mOuterPass (for the outer pass). The latter should not be used by the inner passes as they - // would be empty, so they are placed inside a struct to make them explicit. - struct - { - StructMap structMap; - InterfaceBlockMap interfaceBlockMap; - InterfaceBlockFieldConverted interfaceBlockFieldConverted; - TIntermSequence copyFunctionDefinitions; - } mOuterPass; - - // A map from structures with matrices to their converted version. - StructMap *mStructMapOut; - // A map from interface block instances with row-major matrices to their converted variable. If - // an interface block is nameless, its fields are placed in this map instead. When a variable - // in this map is encountered, it signals the start of an expression that my need conversion, - // which is either "interfaceBlock.field..." or "field..." if nameless. - InterfaceBlockMap *mInterfaceBlockMap; - // A map from interface block fields to whether they need to be converted. If a field was - // already column-major, it shouldn't be transposed. - const InterfaceBlockFieldConverted &mInterfaceBlockFieldConvertedIn; - - TIntermSequence *mCopyFunctionDefinitionsOut; - - // If set, it's an inner pass and this will point to the outer pass traverser. All statement - // insertions are stored in the outer traverser and applied at once in the end. This prevents - // the inner passes from adding statements which invalidates the outer traverser's statement - // position tracking. - RewriteRowMajorMatricesTraverser *mOuterTraverser; - - // If set, it's an inner pass that should only process the right-hand side of this particular - // node. - TIntermBinary *mInnerPassRoot; - bool mIsProcessingInnerPassSubtree; -}; - -} // anonymous namespace - -bool RewriteRowMajorMatrices(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable) -{ - RewriteRowMajorMatricesTraverser traverser(compiler, symbolTable); - root->traverse(&traverser); - if (!traverser.updateTree(compiler, root)) - { - return false; - } - - size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(root); - root->insertChildNodes(firstFunctionIndex, *traverser.getStructCopyFunctions()); - - return compiler->validateAST(root); -} -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2016 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. -// -// Rewrite "-float" to "0.0 - float" to work around unary minus operator on float issue on Intel Mac -// OSX 10.11. - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEUNARYMINUSOPERATORFLOAT_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEUNARYMINUSOPERATORFLOAT_H_ - -#include "common/angleutils.h" - -namespace sh -{ -class TCompiler; -class TIntermNode; - -ANGLE_NO_DISCARD bool RewriteUnaryMinusOperatorFloat(TCompiler *compiler, TIntermNode *root); - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_MAC_REWRITEUNARYMINUSOPERATORFLOAT_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// Copyright 2016 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. -// - -#include "compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h" - -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -class Traverser : public TIntermTraverser -{ - public: - ANGLE_NO_DISCARD static bool Apply(TCompiler *compiler, TIntermNode *root); - - private: - Traverser(); - bool visitUnary(Visit visit, TIntermUnary *node) override; - void nextIteration(); - - bool mFound = false; -}; - -// static -bool Traverser::Apply(TCompiler *compiler, TIntermNode *root) -{ - Traverser traverser; - do - { - traverser.nextIteration(); - root->traverse(&traverser); - if (traverser.mFound) - { - if (!traverser.updateTree(compiler, root)) - { - return false; - } - } - } while (traverser.mFound); - - return true; -} - -Traverser::Traverser() : TIntermTraverser(true, false, false) {} - -void Traverser::nextIteration() -{ - mFound = false; -} - -bool Traverser::visitUnary(Visit visit, TIntermUnary *node) -{ - if (mFound) - { - return false; - } - - // Detect if the current operator is unary minus operator. - if (node->getOp() != EOpNegative) - { - return true; - } - - // Detect if the current operand is a float variable. - TIntermTyped *fValue = node->getOperand(); - if (!fValue->getType().isScalarFloat()) - { - return true; - } - - // 0.0 - float - TIntermTyped *zero = CreateZeroNode(fValue->getType()); - zero->setLine(fValue->getLine()); - TIntermBinary *sub = new TIntermBinary(EOpSub, zero, fValue); - sub->setLine(fValue->getLine()); - - queueReplacement(sub, OriginalNode::IS_DROPPED); - - mFound = true; - return false; -} - -} // anonymous namespace - -bool RewriteUnaryMinusOperatorFloat(TCompiler *compiler, TIntermNode *root) -{ - return Traverser::Apply(compiler, root); -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// Copyright 2002 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. -// -// UnfoldShortCircuitAST is an AST traverser to replace short-circuiting -// operations with ternary operations. -// - -#ifndef COMPILER_TRANSLATOR_TREEOPS_GL_MAC_UNFOLDSHORTCIRCUITAST_H_ -#define COMPILER_TRANSLATOR_TREEOPS_GL_MAC_UNFOLDSHORTCIRCUITAST_H_ - -#include "common/angleutils.h" - -namespace sh -{ - -class TCompiler; -class TIntermBlock; - -ANGLE_NO_DISCARD bool UnfoldShortCircuitAST(TCompiler *compiler, TIntermBlock *root); - -} // namespace sh - -#endif // COMPILER_TRANSLATOR_TREEOPS_GL_MAC_UNFOLDSHORTCIRCUITAST_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.cpp b/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// Copyright 2002 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. -// - -#include "compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h" - -#include "compiler/translator/IntermNode.h" -#include "compiler/translator/tree_util/IntermNode_util.h" -#include "compiler/translator/tree_util/IntermTraverse.h" - -namespace sh -{ - -namespace -{ - -// "x || y" is equivalent to "x ? true : y". -TIntermTernary *UnfoldOR(TIntermTyped *x, TIntermTyped *y) -{ - return new TIntermTernary(x, CreateBoolNode(true), y); -} - -// "x && y" is equivalent to "x ? y : false". -TIntermTernary *UnfoldAND(TIntermTyped *x, TIntermTyped *y) -{ - return new TIntermTernary(x, y, CreateBoolNode(false)); -} - -// This traverser identifies all the short circuit binary nodes that need to -// be replaced, and creates the corresponding replacement nodes. However, -// the actual replacements happen after the traverse through updateTree(). - -class UnfoldShortCircuitASTTraverser : public TIntermTraverser -{ - public: - UnfoldShortCircuitASTTraverser() : TIntermTraverser(true, false, false) {} - - bool visitBinary(Visit visit, TIntermBinary *) override; -}; - -bool UnfoldShortCircuitASTTraverser::visitBinary(Visit visit, TIntermBinary *node) -{ - TIntermTernary *replacement = nullptr; - - switch (node->getOp()) - { - case EOpLogicalOr: - replacement = UnfoldOR(node->getLeft(), node->getRight()); - break; - case EOpLogicalAnd: - replacement = UnfoldAND(node->getLeft(), node->getRight()); - break; - default: - break; - } - if (replacement) - { - queueReplacement(replacement, OriginalNode::IS_DROPPED); - } - return true; -} - -} // anonymous namespace - -bool UnfoldShortCircuitAST(TCompiler *compiler, TIntermBlock *root) -{ - UnfoldShortCircuitASTTraverser traverser; - root->traverse(&traverser); - return traverser.updateTree(compiler, root); -} - -} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h b/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h @@ -0,0 +1,212 @@ +// +// 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. +// + +#ifndef COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_ +#define COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_ + +#include "common/angleutils.h" +#include "compiler/translator/IntermNode.h" + +#include + +namespace sh +{ + +namespace priv +{ + +template +struct AsNode +{}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermNode *exec(TIntermNode *node) { return node; } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermTyped *exec(TIntermNode *node) + { + return node ? node->getAsTyped() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermSymbol *exec(TIntermNode *node) + { + return node ? node->getAsSymbolNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermConstantUnion *exec(TIntermNode *node) + { + return node ? node->getAsConstantUnion() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermFunctionPrototype *exec(TIntermNode *node) + { + return node ? node->getAsFunctionPrototypeNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermPreprocessorDirective *exec(TIntermNode *node) + { + return node ? node->getAsPreprocessorDirective() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermSwizzle *exec(TIntermNode *node) + { + return node ? node->getAsSwizzleNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermBinary *exec(TIntermNode *node) + { + return node ? node->getAsBinaryNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermUnary *exec(TIntermNode *node) + { + return node ? node->getAsUnaryNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermTernary *exec(TIntermNode *node) + { + return node ? node->getAsTernaryNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermIfElse *exec(TIntermNode *node) + { + return node ? node->getAsIfElseNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermSwitch *exec(TIntermNode *node) + { + return node ? node->getAsSwitchNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermCase *exec(TIntermNode *node) + { + return node ? node->getAsCaseNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermFunctionDefinition *exec(TIntermNode *node) + { + return node ? node->getAsFunctionDefinition() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermAggregate *exec(TIntermNode *node) + { + return node ? node->getAsAggregate() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermBlock *exec(TIntermNode *node) + { + return node ? node->getAsBlock() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermGlobalQualifierDeclaration *exec(TIntermNode *node) + { + return node ? node->getAsGlobalQualifierDeclarationNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermDeclaration *exec(TIntermNode *node) + { + return node ? node->getAsDeclarationNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermLoop *exec(TIntermNode *node) + { + return node ? node->getAsLoopNode() : nullptr; + } +}; + +template <> +struct AsNode +{ + static ANGLE_INLINE TIntermBranch *exec(TIntermNode *node) + { + return node ? node->getAsBranchNode() : nullptr; + } +}; + +} // namespace priv + +template +ANGLE_INLINE T *asNode(TIntermNode *node) +{ + return priv::AsNode::exec(node); +} + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h @@ -20,2837 +20,2940 @@ class TVariable; class BuiltInId { public: - static constexpr const TSymbolUniqueId radians_Float1 = TSymbolUniqueId(3016); - static constexpr const TSymbolUniqueId pt00B = TSymbolUniqueId(3017); - static constexpr const TSymbolUniqueId radians_Float2 = TSymbolUniqueId(3018); - static constexpr const TSymbolUniqueId pt10B = TSymbolUniqueId(3019); - static constexpr const TSymbolUniqueId radians_Float3 = TSymbolUniqueId(3020); - static constexpr const TSymbolUniqueId pt20B = TSymbolUniqueId(3021); - static constexpr const TSymbolUniqueId radians_Float4 = TSymbolUniqueId(3022); - static constexpr const TSymbolUniqueId pt30B = TSymbolUniqueId(3023); - static constexpr const TSymbolUniqueId degrees_Float1 = TSymbolUniqueId(3024); - static constexpr const TSymbolUniqueId degrees_Float2 = TSymbolUniqueId(3025); - static constexpr const TSymbolUniqueId degrees_Float3 = TSymbolUniqueId(3026); - static constexpr const TSymbolUniqueId degrees_Float4 = TSymbolUniqueId(3027); - static constexpr const TSymbolUniqueId sin_Float1 = TSymbolUniqueId(3028); - static constexpr const TSymbolUniqueId sin_Float2 = TSymbolUniqueId(3029); - static constexpr const TSymbolUniqueId sin_Float3 = TSymbolUniqueId(3030); - static constexpr const TSymbolUniqueId sin_Float4 = TSymbolUniqueId(3031); - static constexpr const TSymbolUniqueId cos_Float1 = TSymbolUniqueId(3032); - static constexpr const TSymbolUniqueId cos_Float2 = TSymbolUniqueId(3033); - static constexpr const TSymbolUniqueId cos_Float3 = TSymbolUniqueId(3034); - static constexpr const TSymbolUniqueId cos_Float4 = TSymbolUniqueId(3035); - static constexpr const TSymbolUniqueId tan_Float1 = TSymbolUniqueId(3036); - static constexpr const TSymbolUniqueId tan_Float2 = TSymbolUniqueId(3037); - static constexpr const TSymbolUniqueId tan_Float3 = TSymbolUniqueId(3038); - static constexpr const TSymbolUniqueId tan_Float4 = TSymbolUniqueId(3039); - static constexpr const TSymbolUniqueId asin_Float1 = TSymbolUniqueId(3040); - static constexpr const TSymbolUniqueId asin_Float2 = TSymbolUniqueId(3041); - static constexpr const TSymbolUniqueId asin_Float3 = TSymbolUniqueId(3042); - static constexpr const TSymbolUniqueId asin_Float4 = TSymbolUniqueId(3043); - static constexpr const TSymbolUniqueId acos_Float1 = TSymbolUniqueId(3044); - static constexpr const TSymbolUniqueId acos_Float2 = TSymbolUniqueId(3045); - static constexpr const TSymbolUniqueId acos_Float3 = TSymbolUniqueId(3046); - static constexpr const TSymbolUniqueId acos_Float4 = TSymbolUniqueId(3047); - static constexpr const TSymbolUniqueId atan_Float1_Float1 = TSymbolUniqueId(3048); - static constexpr const TSymbolUniqueId atan_Float2_Float2 = TSymbolUniqueId(3049); - static constexpr const TSymbolUniqueId atan_Float3_Float3 = TSymbolUniqueId(3050); - static constexpr const TSymbolUniqueId atan_Float4_Float4 = TSymbolUniqueId(3051); - static constexpr const TSymbolUniqueId atan_Float1 = TSymbolUniqueId(3052); - static constexpr const TSymbolUniqueId atan_Float2 = TSymbolUniqueId(3053); - static constexpr const TSymbolUniqueId atan_Float3 = TSymbolUniqueId(3054); - static constexpr const TSymbolUniqueId atan_Float4 = TSymbolUniqueId(3055); - static constexpr const TSymbolUniqueId sinh_Float1 = TSymbolUniqueId(3056); - static constexpr const TSymbolUniqueId sinh_Float2 = TSymbolUniqueId(3057); - static constexpr const TSymbolUniqueId sinh_Float3 = TSymbolUniqueId(3058); - static constexpr const TSymbolUniqueId sinh_Float4 = TSymbolUniqueId(3059); - static constexpr const TSymbolUniqueId cosh_Float1 = TSymbolUniqueId(3060); - static constexpr const TSymbolUniqueId cosh_Float2 = TSymbolUniqueId(3061); - static constexpr const TSymbolUniqueId cosh_Float3 = TSymbolUniqueId(3062); - static constexpr const TSymbolUniqueId cosh_Float4 = TSymbolUniqueId(3063); - static constexpr const TSymbolUniqueId tanh_Float1 = TSymbolUniqueId(3064); - static constexpr const TSymbolUniqueId tanh_Float2 = TSymbolUniqueId(3065); - static constexpr const TSymbolUniqueId tanh_Float3 = TSymbolUniqueId(3066); - static constexpr const TSymbolUniqueId tanh_Float4 = TSymbolUniqueId(3067); - static constexpr const TSymbolUniqueId asinh_Float1 = TSymbolUniqueId(3068); - static constexpr const TSymbolUniqueId asinh_Float2 = TSymbolUniqueId(3069); - static constexpr const TSymbolUniqueId asinh_Float3 = TSymbolUniqueId(3070); - static constexpr const TSymbolUniqueId asinh_Float4 = TSymbolUniqueId(3071); - static constexpr const TSymbolUniqueId acosh_Float1 = TSymbolUniqueId(3072); - static constexpr const TSymbolUniqueId acosh_Float2 = TSymbolUniqueId(3073); - static constexpr const TSymbolUniqueId acosh_Float3 = TSymbolUniqueId(3074); - static constexpr const TSymbolUniqueId acosh_Float4 = TSymbolUniqueId(3075); - static constexpr const TSymbolUniqueId atanh_Float1 = TSymbolUniqueId(3076); - static constexpr const TSymbolUniqueId atanh_Float2 = TSymbolUniqueId(3077); - static constexpr const TSymbolUniqueId atanh_Float3 = TSymbolUniqueId(3078); - static constexpr const TSymbolUniqueId atanh_Float4 = TSymbolUniqueId(3079); - static constexpr const TSymbolUniqueId pow_Float1_Float1 = TSymbolUniqueId(3080); - static constexpr const TSymbolUniqueId pow_Float2_Float2 = TSymbolUniqueId(3081); - static constexpr const TSymbolUniqueId pow_Float3_Float3 = TSymbolUniqueId(3082); - static constexpr const TSymbolUniqueId pow_Float4_Float4 = TSymbolUniqueId(3083); - static constexpr const TSymbolUniqueId exp_Float1 = TSymbolUniqueId(3084); - static constexpr const TSymbolUniqueId exp_Float2 = TSymbolUniqueId(3085); - static constexpr const TSymbolUniqueId exp_Float3 = TSymbolUniqueId(3086); - static constexpr const TSymbolUniqueId exp_Float4 = TSymbolUniqueId(3087); - static constexpr const TSymbolUniqueId log_Float1 = TSymbolUniqueId(3088); - static constexpr const TSymbolUniqueId log_Float2 = TSymbolUniqueId(3089); - static constexpr const TSymbolUniqueId log_Float3 = TSymbolUniqueId(3090); - static constexpr const TSymbolUniqueId log_Float4 = TSymbolUniqueId(3091); - static constexpr const TSymbolUniqueId exp2_Float1 = TSymbolUniqueId(3092); - static constexpr const TSymbolUniqueId exp2_Float2 = TSymbolUniqueId(3093); - static constexpr const TSymbolUniqueId exp2_Float3 = TSymbolUniqueId(3094); - static constexpr const TSymbolUniqueId exp2_Float4 = TSymbolUniqueId(3095); - static constexpr const TSymbolUniqueId log2_Float1 = TSymbolUniqueId(3096); - static constexpr const TSymbolUniqueId log2_Float2 = TSymbolUniqueId(3097); - static constexpr const TSymbolUniqueId log2_Float3 = TSymbolUniqueId(3098); - static constexpr const TSymbolUniqueId log2_Float4 = TSymbolUniqueId(3099); - static constexpr const TSymbolUniqueId sqrt_Float1 = TSymbolUniqueId(3100); - static constexpr const TSymbolUniqueId sqrt_Float2 = TSymbolUniqueId(3101); - static constexpr const TSymbolUniqueId sqrt_Float3 = TSymbolUniqueId(3102); - static constexpr const TSymbolUniqueId sqrt_Float4 = TSymbolUniqueId(3103); - static constexpr const TSymbolUniqueId inversesqrt_Float1 = TSymbolUniqueId(3104); - static constexpr const TSymbolUniqueId inversesqrt_Float2 = TSymbolUniqueId(3105); - static constexpr const TSymbolUniqueId inversesqrt_Float3 = TSymbolUniqueId(3106); - static constexpr const TSymbolUniqueId inversesqrt_Float4 = TSymbolUniqueId(3107); - static constexpr const TSymbolUniqueId abs_Float1 = TSymbolUniqueId(3108); - static constexpr const TSymbolUniqueId abs_Float2 = TSymbolUniqueId(3109); - static constexpr const TSymbolUniqueId abs_Float3 = TSymbolUniqueId(3110); - static constexpr const TSymbolUniqueId abs_Float4 = TSymbolUniqueId(3111); - static constexpr const TSymbolUniqueId abs_Int1 = TSymbolUniqueId(3112); - static constexpr const TSymbolUniqueId pt00D = TSymbolUniqueId(3113); - static constexpr const TSymbolUniqueId abs_Int2 = TSymbolUniqueId(3114); - static constexpr const TSymbolUniqueId pt10D = TSymbolUniqueId(3115); - static constexpr const TSymbolUniqueId abs_Int3 = TSymbolUniqueId(3116); - static constexpr const TSymbolUniqueId pt20D = TSymbolUniqueId(3117); - static constexpr const TSymbolUniqueId abs_Int4 = TSymbolUniqueId(3118); - static constexpr const TSymbolUniqueId pt30D = TSymbolUniqueId(3119); - static constexpr const TSymbolUniqueId sign_Float1 = TSymbolUniqueId(3120); - static constexpr const TSymbolUniqueId sign_Float2 = TSymbolUniqueId(3121); - static constexpr const TSymbolUniqueId sign_Float3 = TSymbolUniqueId(3122); - static constexpr const TSymbolUniqueId sign_Float4 = TSymbolUniqueId(3123); - static constexpr const TSymbolUniqueId sign_Int1 = TSymbolUniqueId(3124); - static constexpr const TSymbolUniqueId sign_Int2 = TSymbolUniqueId(3125); - static constexpr const TSymbolUniqueId sign_Int3 = TSymbolUniqueId(3126); - static constexpr const TSymbolUniqueId sign_Int4 = TSymbolUniqueId(3127); - static constexpr const TSymbolUniqueId floor_Float1 = TSymbolUniqueId(3128); - static constexpr const TSymbolUniqueId floor_Float2 = TSymbolUniqueId(3129); - static constexpr const TSymbolUniqueId floor_Float3 = TSymbolUniqueId(3130); - static constexpr const TSymbolUniqueId floor_Float4 = TSymbolUniqueId(3131); - static constexpr const TSymbolUniqueId trunc_Float1 = TSymbolUniqueId(3132); - static constexpr const TSymbolUniqueId trunc_Float2 = TSymbolUniqueId(3133); - static constexpr const TSymbolUniqueId trunc_Float3 = TSymbolUniqueId(3134); - static constexpr const TSymbolUniqueId trunc_Float4 = TSymbolUniqueId(3135); - static constexpr const TSymbolUniqueId round_Float1 = TSymbolUniqueId(3136); - static constexpr const TSymbolUniqueId round_Float2 = TSymbolUniqueId(3137); - static constexpr const TSymbolUniqueId round_Float3 = TSymbolUniqueId(3138); - static constexpr const TSymbolUniqueId round_Float4 = TSymbolUniqueId(3139); - static constexpr const TSymbolUniqueId roundEven_Float1 = TSymbolUniqueId(3140); - static constexpr const TSymbolUniqueId roundEven_Float2 = TSymbolUniqueId(3141); - static constexpr const TSymbolUniqueId roundEven_Float3 = TSymbolUniqueId(3142); - static constexpr const TSymbolUniqueId roundEven_Float4 = TSymbolUniqueId(3143); - static constexpr const TSymbolUniqueId ceil_Float1 = TSymbolUniqueId(3144); - static constexpr const TSymbolUniqueId ceil_Float2 = TSymbolUniqueId(3145); - static constexpr const TSymbolUniqueId ceil_Float3 = TSymbolUniqueId(3146); - static constexpr const TSymbolUniqueId ceil_Float4 = TSymbolUniqueId(3147); - static constexpr const TSymbolUniqueId fract_Float1 = TSymbolUniqueId(3148); - static constexpr const TSymbolUniqueId fract_Float2 = TSymbolUniqueId(3149); - static constexpr const TSymbolUniqueId fract_Float3 = TSymbolUniqueId(3150); - static constexpr const TSymbolUniqueId fract_Float4 = TSymbolUniqueId(3151); - static constexpr const TSymbolUniqueId mod_Float1_Float1 = TSymbolUniqueId(3152); - static constexpr const TSymbolUniqueId mod_Float2_Float1 = TSymbolUniqueId(3153); - static constexpr const TSymbolUniqueId mod_Float3_Float1 = TSymbolUniqueId(3154); - static constexpr const TSymbolUniqueId mod_Float4_Float1 = TSymbolUniqueId(3155); - static constexpr const TSymbolUniqueId mod_Float2_Float2 = TSymbolUniqueId(3156); - static constexpr const TSymbolUniqueId mod_Float3_Float3 = TSymbolUniqueId(3157); - static constexpr const TSymbolUniqueId mod_Float4_Float4 = TSymbolUniqueId(3158); - static constexpr const TSymbolUniqueId min_Float1_Float1 = TSymbolUniqueId(3159); - static constexpr const TSymbolUniqueId min_Float2_Float1 = TSymbolUniqueId(3160); - static constexpr const TSymbolUniqueId min_Float3_Float1 = TSymbolUniqueId(3161); - static constexpr const TSymbolUniqueId min_Float4_Float1 = TSymbolUniqueId(3162); - static constexpr const TSymbolUniqueId min_Float2_Float2 = TSymbolUniqueId(3163); - static constexpr const TSymbolUniqueId min_Float3_Float3 = TSymbolUniqueId(3164); - static constexpr const TSymbolUniqueId min_Float4_Float4 = TSymbolUniqueId(3165); - static constexpr const TSymbolUniqueId min_Int1_Int1 = TSymbolUniqueId(3166); - static constexpr const TSymbolUniqueId min_Int2_Int2 = TSymbolUniqueId(3167); - static constexpr const TSymbolUniqueId min_Int3_Int3 = TSymbolUniqueId(3168); - static constexpr const TSymbolUniqueId min_Int4_Int4 = TSymbolUniqueId(3169); - static constexpr const TSymbolUniqueId min_Int2_Int1 = TSymbolUniqueId(3170); - static constexpr const TSymbolUniqueId min_Int3_Int1 = TSymbolUniqueId(3171); - static constexpr const TSymbolUniqueId min_Int4_Int1 = TSymbolUniqueId(3172); - static constexpr const TSymbolUniqueId min_UInt1_UInt1 = TSymbolUniqueId(3173); - static constexpr const TSymbolUniqueId pt00E = TSymbolUniqueId(3174); - static constexpr const TSymbolUniqueId min_UInt2_UInt2 = TSymbolUniqueId(3175); - static constexpr const TSymbolUniqueId pt10E = TSymbolUniqueId(3176); - static constexpr const TSymbolUniqueId min_UInt3_UInt3 = TSymbolUniqueId(3177); - static constexpr const TSymbolUniqueId pt20E = TSymbolUniqueId(3178); - static constexpr const TSymbolUniqueId min_UInt4_UInt4 = TSymbolUniqueId(3179); - static constexpr const TSymbolUniqueId pt30E = TSymbolUniqueId(3180); - static constexpr const TSymbolUniqueId min_UInt2_UInt1 = TSymbolUniqueId(3181); - static constexpr const TSymbolUniqueId min_UInt3_UInt1 = TSymbolUniqueId(3182); - static constexpr const TSymbolUniqueId min_UInt4_UInt1 = TSymbolUniqueId(3183); - static constexpr const TSymbolUniqueId max_Float1_Float1 = TSymbolUniqueId(3184); - static constexpr const TSymbolUniqueId max_Float2_Float1 = TSymbolUniqueId(3185); - static constexpr const TSymbolUniqueId max_Float3_Float1 = TSymbolUniqueId(3186); - static constexpr const TSymbolUniqueId max_Float4_Float1 = TSymbolUniqueId(3187); - static constexpr const TSymbolUniqueId max_Float2_Float2 = TSymbolUniqueId(3188); - static constexpr const TSymbolUniqueId max_Float3_Float3 = TSymbolUniqueId(3189); - static constexpr const TSymbolUniqueId max_Float4_Float4 = TSymbolUniqueId(3190); - static constexpr const TSymbolUniqueId max_Int1_Int1 = TSymbolUniqueId(3191); - static constexpr const TSymbolUniqueId max_Int2_Int2 = TSymbolUniqueId(3192); - static constexpr const TSymbolUniqueId max_Int3_Int3 = TSymbolUniqueId(3193); - static constexpr const TSymbolUniqueId max_Int4_Int4 = TSymbolUniqueId(3194); - static constexpr const TSymbolUniqueId max_Int2_Int1 = TSymbolUniqueId(3195); - static constexpr const TSymbolUniqueId max_Int3_Int1 = TSymbolUniqueId(3196); - static constexpr const TSymbolUniqueId max_Int4_Int1 = TSymbolUniqueId(3197); - static constexpr const TSymbolUniqueId max_UInt1_UInt1 = TSymbolUniqueId(3198); - static constexpr const TSymbolUniqueId max_UInt2_UInt2 = TSymbolUniqueId(3199); - static constexpr const TSymbolUniqueId max_UInt3_UInt3 = TSymbolUniqueId(3200); - static constexpr const TSymbolUniqueId max_UInt4_UInt4 = TSymbolUniqueId(3201); - static constexpr const TSymbolUniqueId max_UInt2_UInt1 = TSymbolUniqueId(3202); - static constexpr const TSymbolUniqueId max_UInt3_UInt1 = TSymbolUniqueId(3203); - static constexpr const TSymbolUniqueId max_UInt4_UInt1 = TSymbolUniqueId(3204); - static constexpr const TSymbolUniqueId clamp_Float1_Float1_Float1 = TSymbolUniqueId(3205); - static constexpr const TSymbolUniqueId clamp_Float2_Float1_Float1 = TSymbolUniqueId(3206); - static constexpr const TSymbolUniqueId clamp_Float3_Float1_Float1 = TSymbolUniqueId(3207); - static constexpr const TSymbolUniqueId clamp_Float4_Float1_Float1 = TSymbolUniqueId(3208); - static constexpr const TSymbolUniqueId clamp_Float2_Float2_Float2 = TSymbolUniqueId(3209); - static constexpr const TSymbolUniqueId clamp_Float3_Float3_Float3 = TSymbolUniqueId(3210); - static constexpr const TSymbolUniqueId clamp_Float4_Float4_Float4 = TSymbolUniqueId(3211); - static constexpr const TSymbolUniqueId clamp_Int1_Int1_Int1 = TSymbolUniqueId(3212); - static constexpr const TSymbolUniqueId clamp_Int2_Int1_Int1 = TSymbolUniqueId(3213); - static constexpr const TSymbolUniqueId clamp_Int3_Int1_Int1 = TSymbolUniqueId(3214); - static constexpr const TSymbolUniqueId clamp_Int4_Int1_Int1 = TSymbolUniqueId(3215); - static constexpr const TSymbolUniqueId clamp_Int2_Int2_Int2 = TSymbolUniqueId(3216); - static constexpr const TSymbolUniqueId clamp_Int3_Int3_Int3 = TSymbolUniqueId(3217); - static constexpr const TSymbolUniqueId clamp_Int4_Int4_Int4 = TSymbolUniqueId(3218); - static constexpr const TSymbolUniqueId clamp_UInt1_UInt1_UInt1 = TSymbolUniqueId(3219); - static constexpr const TSymbolUniqueId clamp_UInt2_UInt1_UInt1 = TSymbolUniqueId(3220); - static constexpr const TSymbolUniqueId clamp_UInt3_UInt1_UInt1 = TSymbolUniqueId(3221); - static constexpr const TSymbolUniqueId clamp_UInt4_UInt1_UInt1 = TSymbolUniqueId(3222); - static constexpr const TSymbolUniqueId clamp_UInt2_UInt2_UInt2 = TSymbolUniqueId(3223); - static constexpr const TSymbolUniqueId clamp_UInt3_UInt3_UInt3 = TSymbolUniqueId(3224); - static constexpr const TSymbolUniqueId clamp_UInt4_UInt4_UInt4 = TSymbolUniqueId(3225); - static constexpr const TSymbolUniqueId mix_Float1_Float1_Float1 = TSymbolUniqueId(3226); - static constexpr const TSymbolUniqueId mix_Float2_Float2_Float1 = TSymbolUniqueId(3227); - static constexpr const TSymbolUniqueId mix_Float3_Float3_Float1 = TSymbolUniqueId(3228); - static constexpr const TSymbolUniqueId mix_Float4_Float4_Float1 = TSymbolUniqueId(3229); - static constexpr const TSymbolUniqueId mix_Float2_Float2_Float2 = TSymbolUniqueId(3230); - static constexpr const TSymbolUniqueId mix_Float3_Float3_Float3 = TSymbolUniqueId(3231); - static constexpr const TSymbolUniqueId mix_Float4_Float4_Float4 = TSymbolUniqueId(3232); - static constexpr const TSymbolUniqueId mix_Float1_Float1_Bool1 = TSymbolUniqueId(3233); - static constexpr const TSymbolUniqueId pt00F = TSymbolUniqueId(3234); - static constexpr const TSymbolUniqueId mix_Float2_Float2_Bool2 = TSymbolUniqueId(3235); - static constexpr const TSymbolUniqueId pt10F = TSymbolUniqueId(3236); - static constexpr const TSymbolUniqueId mix_Float3_Float3_Bool3 = TSymbolUniqueId(3237); - static constexpr const TSymbolUniqueId pt20F = TSymbolUniqueId(3238); - static constexpr const TSymbolUniqueId mix_Float4_Float4_Bool4 = TSymbolUniqueId(3239); - static constexpr const TSymbolUniqueId pt30F = TSymbolUniqueId(3240); - static constexpr const TSymbolUniqueId mix_Int1_Int1_Bool1 = TSymbolUniqueId(3241); - static constexpr const TSymbolUniqueId mix_Int2_Int2_Bool2 = TSymbolUniqueId(3242); - static constexpr const TSymbolUniqueId mix_Int3_Int3_Bool3 = TSymbolUniqueId(3243); - static constexpr const TSymbolUniqueId mix_Int4_Int4_Bool4 = TSymbolUniqueId(3244); - static constexpr const TSymbolUniqueId mix_UInt1_UInt1_Bool1 = TSymbolUniqueId(3245); - static constexpr const TSymbolUniqueId mix_UInt2_UInt2_Bool2 = TSymbolUniqueId(3246); - static constexpr const TSymbolUniqueId mix_UInt3_UInt3_Bool3 = TSymbolUniqueId(3247); - static constexpr const TSymbolUniqueId mix_UInt4_UInt4_Bool4 = TSymbolUniqueId(3248); - static constexpr const TSymbolUniqueId mix_Bool1_Bool1_Bool1 = TSymbolUniqueId(3249); - static constexpr const TSymbolUniqueId mix_Bool2_Bool2_Bool2 = TSymbolUniqueId(3250); - static constexpr const TSymbolUniqueId mix_Bool3_Bool3_Bool3 = TSymbolUniqueId(3251); - static constexpr const TSymbolUniqueId mix_Bool4_Bool4_Bool4 = TSymbolUniqueId(3252); - static constexpr const TSymbolUniqueId step_Float1_Float1 = TSymbolUniqueId(3253); - static constexpr const TSymbolUniqueId step_Float2_Float2 = TSymbolUniqueId(3254); - static constexpr const TSymbolUniqueId step_Float3_Float3 = TSymbolUniqueId(3255); - static constexpr const TSymbolUniqueId step_Float4_Float4 = TSymbolUniqueId(3256); - static constexpr const TSymbolUniqueId step_Float1_Float2 = TSymbolUniqueId(3257); - static constexpr const TSymbolUniqueId step_Float1_Float3 = TSymbolUniqueId(3258); - static constexpr const TSymbolUniqueId step_Float1_Float4 = TSymbolUniqueId(3259); - static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float1 = TSymbolUniqueId(3260); - static constexpr const TSymbolUniqueId smoothstep_Float2_Float2_Float2 = TSymbolUniqueId(3261); - static constexpr const TSymbolUniqueId smoothstep_Float3_Float3_Float3 = TSymbolUniqueId(3262); - static constexpr const TSymbolUniqueId smoothstep_Float4_Float4_Float4 = TSymbolUniqueId(3263); - static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float2 = TSymbolUniqueId(3264); - static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float3 = TSymbolUniqueId(3265); - static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float4 = TSymbolUniqueId(3266); - static constexpr const TSymbolUniqueId modf_Float1_Float1 = TSymbolUniqueId(3267); - static constexpr const TSymbolUniqueId pt_o_00B = TSymbolUniqueId(3268); - static constexpr const TSymbolUniqueId modf_Float2_Float2 = TSymbolUniqueId(3269); - static constexpr const TSymbolUniqueId pt_o_10B = TSymbolUniqueId(3270); - static constexpr const TSymbolUniqueId modf_Float3_Float3 = TSymbolUniqueId(3271); - static constexpr const TSymbolUniqueId pt_o_20B = TSymbolUniqueId(3272); - static constexpr const TSymbolUniqueId modf_Float4_Float4 = TSymbolUniqueId(3273); - static constexpr const TSymbolUniqueId pt_o_30B = TSymbolUniqueId(3274); - static constexpr const TSymbolUniqueId isnan_Float1 = TSymbolUniqueId(3275); - static constexpr const TSymbolUniqueId isnan_Float2 = TSymbolUniqueId(3276); - static constexpr const TSymbolUniqueId isnan_Float3 = TSymbolUniqueId(3277); - static constexpr const TSymbolUniqueId isnan_Float4 = TSymbolUniqueId(3278); - static constexpr const TSymbolUniqueId isinf_Float1 = TSymbolUniqueId(3279); - static constexpr const TSymbolUniqueId isinf_Float2 = TSymbolUniqueId(3280); - static constexpr const TSymbolUniqueId isinf_Float3 = TSymbolUniqueId(3281); - static constexpr const TSymbolUniqueId isinf_Float4 = TSymbolUniqueId(3282); - static constexpr const TSymbolUniqueId floatBitsToInt_Float1 = TSymbolUniqueId(3283); - static constexpr const TSymbolUniqueId floatBitsToInt_Float2 = TSymbolUniqueId(3284); - static constexpr const TSymbolUniqueId floatBitsToInt_Float3 = TSymbolUniqueId(3285); - static constexpr const TSymbolUniqueId floatBitsToInt_Float4 = TSymbolUniqueId(3286); - static constexpr const TSymbolUniqueId floatBitsToUint_Float1 = TSymbolUniqueId(3287); - static constexpr const TSymbolUniqueId floatBitsToUint_Float2 = TSymbolUniqueId(3288); - static constexpr const TSymbolUniqueId floatBitsToUint_Float3 = TSymbolUniqueId(3289); - static constexpr const TSymbolUniqueId floatBitsToUint_Float4 = TSymbolUniqueId(3290); - static constexpr const TSymbolUniqueId intBitsToFloat_Int1 = TSymbolUniqueId(3291); - static constexpr const TSymbolUniqueId intBitsToFloat_Int2 = TSymbolUniqueId(3292); - static constexpr const TSymbolUniqueId intBitsToFloat_Int3 = TSymbolUniqueId(3293); - static constexpr const TSymbolUniqueId intBitsToFloat_Int4 = TSymbolUniqueId(3294); - static constexpr const TSymbolUniqueId uintBitsToFloat_UInt1 = TSymbolUniqueId(3295); - static constexpr const TSymbolUniqueId uintBitsToFloat_UInt2 = TSymbolUniqueId(3296); - static constexpr const TSymbolUniqueId uintBitsToFloat_UInt3 = TSymbolUniqueId(3297); - static constexpr const TSymbolUniqueId uintBitsToFloat_UInt4 = TSymbolUniqueId(3298); - static constexpr const TSymbolUniqueId fma_Float1_Float1_Float1 = TSymbolUniqueId(3299); - static constexpr const TSymbolUniqueId fma_Float2_Float2_Float2 = TSymbolUniqueId(3300); - static constexpr const TSymbolUniqueId fma_Float3_Float3_Float3 = TSymbolUniqueId(3301); - static constexpr const TSymbolUniqueId fma_Float4_Float4_Float4 = TSymbolUniqueId(3302); - static constexpr const TSymbolUniqueId fmaExt_Float1_Float1_Float1 = TSymbolUniqueId(3303); - static constexpr const TSymbolUniqueId fmaExt_Float2_Float2_Float2 = TSymbolUniqueId(3304); - static constexpr const TSymbolUniqueId fmaExt_Float3_Float3_Float3 = TSymbolUniqueId(3305); - static constexpr const TSymbolUniqueId fmaExt_Float4_Float4_Float4 = TSymbolUniqueId(3306); - static constexpr const TSymbolUniqueId frexp_Float1_Int1 = TSymbolUniqueId(3307); - static constexpr const TSymbolUniqueId pt_o_00D = TSymbolUniqueId(3308); - static constexpr const TSymbolUniqueId frexp_Float2_Int2 = TSymbolUniqueId(3309); - static constexpr const TSymbolUniqueId pt_o_10D = TSymbolUniqueId(3310); - static constexpr const TSymbolUniqueId frexp_Float3_Int3 = TSymbolUniqueId(3311); - static constexpr const TSymbolUniqueId pt_o_20D = TSymbolUniqueId(3312); - static constexpr const TSymbolUniqueId frexp_Float4_Int4 = TSymbolUniqueId(3313); - static constexpr const TSymbolUniqueId pt_o_30D = TSymbolUniqueId(3314); - static constexpr const TSymbolUniqueId ldexp_Float1_Int1 = TSymbolUniqueId(3315); - static constexpr const TSymbolUniqueId ldexp_Float2_Int2 = TSymbolUniqueId(3316); - static constexpr const TSymbolUniqueId ldexp_Float3_Int3 = TSymbolUniqueId(3317); - static constexpr const TSymbolUniqueId ldexp_Float4_Int4 = TSymbolUniqueId(3318); - static constexpr const TSymbolUniqueId packSnorm2x16_Float2 = TSymbolUniqueId(3319); - static constexpr const TSymbolUniqueId packHalf2x16_Float2 = TSymbolUniqueId(3320); - static constexpr const TSymbolUniqueId unpackSnorm2x16_UInt1 = TSymbolUniqueId(3321); - static constexpr const TSymbolUniqueId unpackHalf2x16_UInt1 = TSymbolUniqueId(3322); - static constexpr const TSymbolUniqueId packUnorm2x16_Float2 = TSymbolUniqueId(3323); - static constexpr const TSymbolUniqueId unpackUnorm2x16_UInt1 = TSymbolUniqueId(3324); - static constexpr const TSymbolUniqueId packUnorm4x8_Float4 = TSymbolUniqueId(3325); - static constexpr const TSymbolUniqueId packSnorm4x8_Float4 = TSymbolUniqueId(3326); - static constexpr const TSymbolUniqueId unpackUnorm4x8_UInt1 = TSymbolUniqueId(3327); - static constexpr const TSymbolUniqueId unpackSnorm4x8_UInt1 = TSymbolUniqueId(3328); - static constexpr const TSymbolUniqueId length_Float1 = TSymbolUniqueId(3329); - static constexpr const TSymbolUniqueId length_Float2 = TSymbolUniqueId(3330); - static constexpr const TSymbolUniqueId length_Float3 = TSymbolUniqueId(3331); - static constexpr const TSymbolUniqueId length_Float4 = TSymbolUniqueId(3332); - static constexpr const TSymbolUniqueId distance_Float1_Float1 = TSymbolUniqueId(3333); - static constexpr const TSymbolUniqueId distance_Float2_Float2 = TSymbolUniqueId(3334); - static constexpr const TSymbolUniqueId distance_Float3_Float3 = TSymbolUniqueId(3335); - static constexpr const TSymbolUniqueId distance_Float4_Float4 = TSymbolUniqueId(3336); - static constexpr const TSymbolUniqueId dot_Float1_Float1 = TSymbolUniqueId(3337); - static constexpr const TSymbolUniqueId dot_Float2_Float2 = TSymbolUniqueId(3338); - static constexpr const TSymbolUniqueId dot_Float3_Float3 = TSymbolUniqueId(3339); - static constexpr const TSymbolUniqueId dot_Float4_Float4 = TSymbolUniqueId(3340); - static constexpr const TSymbolUniqueId cross_Float3_Float3 = TSymbolUniqueId(3341); - static constexpr const TSymbolUniqueId normalize_Float1 = TSymbolUniqueId(3342); - static constexpr const TSymbolUniqueId normalize_Float2 = TSymbolUniqueId(3343); - static constexpr const TSymbolUniqueId normalize_Float3 = TSymbolUniqueId(3344); - static constexpr const TSymbolUniqueId normalize_Float4 = TSymbolUniqueId(3345); - static constexpr const TSymbolUniqueId faceforward_Float1_Float1_Float1 = TSymbolUniqueId(3346); - static constexpr const TSymbolUniqueId faceforward_Float2_Float2_Float2 = TSymbolUniqueId(3347); - static constexpr const TSymbolUniqueId faceforward_Float3_Float3_Float3 = TSymbolUniqueId(3348); - static constexpr const TSymbolUniqueId faceforward_Float4_Float4_Float4 = TSymbolUniqueId(3349); - static constexpr const TSymbolUniqueId reflect_Float1_Float1 = TSymbolUniqueId(3350); - static constexpr const TSymbolUniqueId reflect_Float2_Float2 = TSymbolUniqueId(3351); - static constexpr const TSymbolUniqueId reflect_Float3_Float3 = TSymbolUniqueId(3352); - static constexpr const TSymbolUniqueId reflect_Float4_Float4 = TSymbolUniqueId(3353); - static constexpr const TSymbolUniqueId refract_Float1_Float1_Float1 = TSymbolUniqueId(3354); - static constexpr const TSymbolUniqueId refract_Float2_Float2_Float1 = TSymbolUniqueId(3355); - static constexpr const TSymbolUniqueId refract_Float3_Float3_Float1 = TSymbolUniqueId(3356); - static constexpr const TSymbolUniqueId refract_Float4_Float4_Float1 = TSymbolUniqueId(3357); - static constexpr const TSymbolUniqueId matrixCompMult_Float2x2_Float2x2 = TSymbolUniqueId(3358); - static constexpr const TSymbolUniqueId pt50B = TSymbolUniqueId(3359); - static constexpr const TSymbolUniqueId matrixCompMult_Float3x3_Float3x3 = TSymbolUniqueId(3360); - static constexpr const TSymbolUniqueId ptA0B = TSymbolUniqueId(3361); - static constexpr const TSymbolUniqueId matrixCompMult_Float4x4_Float4x4 = TSymbolUniqueId(3362); - static constexpr const TSymbolUniqueId ptF0B = TSymbolUniqueId(3363); - static constexpr const TSymbolUniqueId matrixCompMult_Float2x3_Float2x3 = TSymbolUniqueId(3364); - static constexpr const TSymbolUniqueId pt90B = TSymbolUniqueId(3365); - static constexpr const TSymbolUniqueId matrixCompMult_Float3x2_Float3x2 = TSymbolUniqueId(3366); - static constexpr const TSymbolUniqueId pt60B = TSymbolUniqueId(3367); - static constexpr const TSymbolUniqueId matrixCompMult_Float2x4_Float2x4 = TSymbolUniqueId(3368); - static constexpr const TSymbolUniqueId ptD0B = TSymbolUniqueId(3369); - static constexpr const TSymbolUniqueId matrixCompMult_Float4x2_Float4x2 = TSymbolUniqueId(3370); - static constexpr const TSymbolUniqueId pt70B = TSymbolUniqueId(3371); - static constexpr const TSymbolUniqueId matrixCompMult_Float3x4_Float3x4 = TSymbolUniqueId(3372); - static constexpr const TSymbolUniqueId ptE0B = TSymbolUniqueId(3373); - static constexpr const TSymbolUniqueId matrixCompMult_Float4x3_Float4x3 = TSymbolUniqueId(3374); - static constexpr const TSymbolUniqueId ptB0B = TSymbolUniqueId(3375); - static constexpr const TSymbolUniqueId outerProduct_Float2_Float2 = TSymbolUniqueId(3376); - static constexpr const TSymbolUniqueId outerProduct_Float3_Float3 = TSymbolUniqueId(3377); - static constexpr const TSymbolUniqueId outerProduct_Float4_Float4 = TSymbolUniqueId(3378); - static constexpr const TSymbolUniqueId outerProduct_Float3_Float2 = TSymbolUniqueId(3379); - static constexpr const TSymbolUniqueId outerProduct_Float2_Float3 = TSymbolUniqueId(3380); - static constexpr const TSymbolUniqueId outerProduct_Float4_Float2 = TSymbolUniqueId(3381); - static constexpr const TSymbolUniqueId outerProduct_Float2_Float4 = TSymbolUniqueId(3382); - static constexpr const TSymbolUniqueId outerProduct_Float4_Float3 = TSymbolUniqueId(3383); - static constexpr const TSymbolUniqueId outerProduct_Float3_Float4 = TSymbolUniqueId(3384); - static constexpr const TSymbolUniqueId transpose_Float2x2 = TSymbolUniqueId(3385); - static constexpr const TSymbolUniqueId transpose_Float3x3 = TSymbolUniqueId(3386); - static constexpr const TSymbolUniqueId transpose_Float4x4 = TSymbolUniqueId(3387); - static constexpr const TSymbolUniqueId transpose_Float3x2 = TSymbolUniqueId(3388); - static constexpr const TSymbolUniqueId transpose_Float2x3 = TSymbolUniqueId(3389); - static constexpr const TSymbolUniqueId transpose_Float4x2 = TSymbolUniqueId(3390); - static constexpr const TSymbolUniqueId transpose_Float2x4 = TSymbolUniqueId(3391); - static constexpr const TSymbolUniqueId transpose_Float4x3 = TSymbolUniqueId(3392); - static constexpr const TSymbolUniqueId transpose_Float3x4 = TSymbolUniqueId(3393); - static constexpr const TSymbolUniqueId determinant_Float2x2 = TSymbolUniqueId(3394); - static constexpr const TSymbolUniqueId determinant_Float3x3 = TSymbolUniqueId(3395); - static constexpr const TSymbolUniqueId determinant_Float4x4 = TSymbolUniqueId(3396); - static constexpr const TSymbolUniqueId inverse_Float2x2 = TSymbolUniqueId(3397); - static constexpr const TSymbolUniqueId inverse_Float3x3 = TSymbolUniqueId(3398); - static constexpr const TSymbolUniqueId inverse_Float4x4 = TSymbolUniqueId(3399); - static constexpr const TSymbolUniqueId lessThan_Float2_Float2 = TSymbolUniqueId(3400); - static constexpr const TSymbolUniqueId lessThan_Float3_Float3 = TSymbolUniqueId(3401); - static constexpr const TSymbolUniqueId lessThan_Float4_Float4 = TSymbolUniqueId(3402); - static constexpr const TSymbolUniqueId lessThan_Int2_Int2 = TSymbolUniqueId(3403); - static constexpr const TSymbolUniqueId lessThan_Int3_Int3 = TSymbolUniqueId(3404); - static constexpr const TSymbolUniqueId lessThan_Int4_Int4 = TSymbolUniqueId(3405); - static constexpr const TSymbolUniqueId lessThan_UInt2_UInt2 = TSymbolUniqueId(3406); - static constexpr const TSymbolUniqueId lessThan_UInt3_UInt3 = TSymbolUniqueId(3407); - static constexpr const TSymbolUniqueId lessThan_UInt4_UInt4 = TSymbolUniqueId(3408); - static constexpr const TSymbolUniqueId lessThanEqual_Float2_Float2 = TSymbolUniqueId(3409); - static constexpr const TSymbolUniqueId lessThanEqual_Float3_Float3 = TSymbolUniqueId(3410); - static constexpr const TSymbolUniqueId lessThanEqual_Float4_Float4 = TSymbolUniqueId(3411); - static constexpr const TSymbolUniqueId lessThanEqual_Int2_Int2 = TSymbolUniqueId(3412); - static constexpr const TSymbolUniqueId lessThanEqual_Int3_Int3 = TSymbolUniqueId(3413); - static constexpr const TSymbolUniqueId lessThanEqual_Int4_Int4 = TSymbolUniqueId(3414); - static constexpr const TSymbolUniqueId lessThanEqual_UInt2_UInt2 = TSymbolUniqueId(3415); - static constexpr const TSymbolUniqueId lessThanEqual_UInt3_UInt3 = TSymbolUniqueId(3416); - static constexpr const TSymbolUniqueId lessThanEqual_UInt4_UInt4 = TSymbolUniqueId(3417); - static constexpr const TSymbolUniqueId greaterThan_Float2_Float2 = TSymbolUniqueId(3418); - static constexpr const TSymbolUniqueId greaterThan_Float3_Float3 = TSymbolUniqueId(3419); - static constexpr const TSymbolUniqueId greaterThan_Float4_Float4 = TSymbolUniqueId(3420); - static constexpr const TSymbolUniqueId greaterThan_Int2_Int2 = TSymbolUniqueId(3421); - static constexpr const TSymbolUniqueId greaterThan_Int3_Int3 = TSymbolUniqueId(3422); - static constexpr const TSymbolUniqueId greaterThan_Int4_Int4 = TSymbolUniqueId(3423); - static constexpr const TSymbolUniqueId greaterThan_UInt2_UInt2 = TSymbolUniqueId(3424); - static constexpr const TSymbolUniqueId greaterThan_UInt3_UInt3 = TSymbolUniqueId(3425); - static constexpr const TSymbolUniqueId greaterThan_UInt4_UInt4 = TSymbolUniqueId(3426); - static constexpr const TSymbolUniqueId greaterThanEqual_Float2_Float2 = TSymbolUniqueId(3427); - static constexpr const TSymbolUniqueId greaterThanEqual_Float3_Float3 = TSymbolUniqueId(3428); - static constexpr const TSymbolUniqueId greaterThanEqual_Float4_Float4 = TSymbolUniqueId(3429); - static constexpr const TSymbolUniqueId greaterThanEqual_Int2_Int2 = TSymbolUniqueId(3430); - static constexpr const TSymbolUniqueId greaterThanEqual_Int3_Int3 = TSymbolUniqueId(3431); - static constexpr const TSymbolUniqueId greaterThanEqual_Int4_Int4 = TSymbolUniqueId(3432); - static constexpr const TSymbolUniqueId greaterThanEqual_UInt2_UInt2 = TSymbolUniqueId(3433); - static constexpr const TSymbolUniqueId greaterThanEqual_UInt3_UInt3 = TSymbolUniqueId(3434); - static constexpr const TSymbolUniqueId greaterThanEqual_UInt4_UInt4 = TSymbolUniqueId(3435); - static constexpr const TSymbolUniqueId equal_Float2_Float2 = TSymbolUniqueId(3436); - static constexpr const TSymbolUniqueId equal_Float3_Float3 = TSymbolUniqueId(3437); - static constexpr const TSymbolUniqueId equal_Float4_Float4 = TSymbolUniqueId(3438); - static constexpr const TSymbolUniqueId equal_Int2_Int2 = TSymbolUniqueId(3439); - static constexpr const TSymbolUniqueId equal_Int3_Int3 = TSymbolUniqueId(3440); - static constexpr const TSymbolUniqueId equal_Int4_Int4 = TSymbolUniqueId(3441); - static constexpr const TSymbolUniqueId equal_UInt2_UInt2 = TSymbolUniqueId(3442); - static constexpr const TSymbolUniqueId equal_UInt3_UInt3 = TSymbolUniqueId(3443); - static constexpr const TSymbolUniqueId equal_UInt4_UInt4 = TSymbolUniqueId(3444); - static constexpr const TSymbolUniqueId equal_Bool2_Bool2 = TSymbolUniqueId(3445); - static constexpr const TSymbolUniqueId equal_Bool3_Bool3 = TSymbolUniqueId(3446); - static constexpr const TSymbolUniqueId equal_Bool4_Bool4 = TSymbolUniqueId(3447); - static constexpr const TSymbolUniqueId notEqual_Float2_Float2 = TSymbolUniqueId(3448); - static constexpr const TSymbolUniqueId notEqual_Float3_Float3 = TSymbolUniqueId(3449); - static constexpr const TSymbolUniqueId notEqual_Float4_Float4 = TSymbolUniqueId(3450); - static constexpr const TSymbolUniqueId notEqual_Int2_Int2 = TSymbolUniqueId(3451); - static constexpr const TSymbolUniqueId notEqual_Int3_Int3 = TSymbolUniqueId(3452); - static constexpr const TSymbolUniqueId notEqual_Int4_Int4 = TSymbolUniqueId(3453); - static constexpr const TSymbolUniqueId notEqual_UInt2_UInt2 = TSymbolUniqueId(3454); - static constexpr const TSymbolUniqueId notEqual_UInt3_UInt3 = TSymbolUniqueId(3455); - static constexpr const TSymbolUniqueId notEqual_UInt4_UInt4 = TSymbolUniqueId(3456); - static constexpr const TSymbolUniqueId notEqual_Bool2_Bool2 = TSymbolUniqueId(3457); - static constexpr const TSymbolUniqueId notEqual_Bool3_Bool3 = TSymbolUniqueId(3458); - static constexpr const TSymbolUniqueId notEqual_Bool4_Bool4 = TSymbolUniqueId(3459); - static constexpr const TSymbolUniqueId any_Bool2 = TSymbolUniqueId(3460); - static constexpr const TSymbolUniqueId any_Bool3 = TSymbolUniqueId(3461); - static constexpr const TSymbolUniqueId any_Bool4 = TSymbolUniqueId(3462); - static constexpr const TSymbolUniqueId all_Bool2 = TSymbolUniqueId(3463); - static constexpr const TSymbolUniqueId all_Bool3 = TSymbolUniqueId(3464); - static constexpr const TSymbolUniqueId all_Bool4 = TSymbolUniqueId(3465); - static constexpr const TSymbolUniqueId notFunc_Bool2 = TSymbolUniqueId(3466); - static constexpr const TSymbolUniqueId notFunc_Bool3 = TSymbolUniqueId(3467); - static constexpr const TSymbolUniqueId notFunc_Bool4 = TSymbolUniqueId(3468); - static constexpr const TSymbolUniqueId bitfieldExtract_Int1_Int1_Int1 = TSymbolUniqueId(3469); - static constexpr const TSymbolUniqueId bitfieldExtract_Int2_Int1_Int1 = TSymbolUniqueId(3470); - static constexpr const TSymbolUniqueId bitfieldExtract_Int3_Int1_Int1 = TSymbolUniqueId(3471); - static constexpr const TSymbolUniqueId bitfieldExtract_Int4_Int1_Int1 = TSymbolUniqueId(3472); - static constexpr const TSymbolUniqueId bitfieldExtract_UInt1_Int1_Int1 = TSymbolUniqueId(3473); - static constexpr const TSymbolUniqueId bitfieldExtract_UInt2_Int1_Int1 = TSymbolUniqueId(3474); - static constexpr const TSymbolUniqueId bitfieldExtract_UInt3_Int1_Int1 = TSymbolUniqueId(3475); - static constexpr const TSymbolUniqueId bitfieldExtract_UInt4_Int1_Int1 = TSymbolUniqueId(3476); + static constexpr const TSymbolUniqueId radians_Float1 = TSymbolUniqueId(3069); + static constexpr const TSymbolUniqueId pt00B = TSymbolUniqueId(3070); + static constexpr const TSymbolUniqueId radians_Float2 = TSymbolUniqueId(3071); + static constexpr const TSymbolUniqueId pt10B = TSymbolUniqueId(3072); + static constexpr const TSymbolUniqueId radians_Float3 = TSymbolUniqueId(3073); + static constexpr const TSymbolUniqueId pt20B = TSymbolUniqueId(3074); + static constexpr const TSymbolUniqueId radians_Float4 = TSymbolUniqueId(3075); + static constexpr const TSymbolUniqueId pt30B = TSymbolUniqueId(3076); + static constexpr const TSymbolUniqueId degrees_Float1 = TSymbolUniqueId(3077); + static constexpr const TSymbolUniqueId degrees_Float2 = TSymbolUniqueId(3078); + static constexpr const TSymbolUniqueId degrees_Float3 = TSymbolUniqueId(3079); + static constexpr const TSymbolUniqueId degrees_Float4 = TSymbolUniqueId(3080); + static constexpr const TSymbolUniqueId sin_Float1 = TSymbolUniqueId(3081); + static constexpr const TSymbolUniqueId sin_Float2 = TSymbolUniqueId(3082); + static constexpr const TSymbolUniqueId sin_Float3 = TSymbolUniqueId(3083); + static constexpr const TSymbolUniqueId sin_Float4 = TSymbolUniqueId(3084); + static constexpr const TSymbolUniqueId cos_Float1 = TSymbolUniqueId(3085); + static constexpr const TSymbolUniqueId cos_Float2 = TSymbolUniqueId(3086); + static constexpr const TSymbolUniqueId cos_Float3 = TSymbolUniqueId(3087); + static constexpr const TSymbolUniqueId cos_Float4 = TSymbolUniqueId(3088); + static constexpr const TSymbolUniqueId tan_Float1 = TSymbolUniqueId(3089); + static constexpr const TSymbolUniqueId tan_Float2 = TSymbolUniqueId(3090); + static constexpr const TSymbolUniqueId tan_Float3 = TSymbolUniqueId(3091); + static constexpr const TSymbolUniqueId tan_Float4 = TSymbolUniqueId(3092); + static constexpr const TSymbolUniqueId asin_Float1 = TSymbolUniqueId(3093); + static constexpr const TSymbolUniqueId asin_Float2 = TSymbolUniqueId(3094); + static constexpr const TSymbolUniqueId asin_Float3 = TSymbolUniqueId(3095); + static constexpr const TSymbolUniqueId asin_Float4 = TSymbolUniqueId(3096); + static constexpr const TSymbolUniqueId acos_Float1 = TSymbolUniqueId(3097); + static constexpr const TSymbolUniqueId acos_Float2 = TSymbolUniqueId(3098); + static constexpr const TSymbolUniqueId acos_Float3 = TSymbolUniqueId(3099); + static constexpr const TSymbolUniqueId acos_Float4 = TSymbolUniqueId(3100); + static constexpr const TSymbolUniqueId atan_Float1_Float1 = TSymbolUniqueId(3101); + static constexpr const TSymbolUniqueId atan_Float2_Float2 = TSymbolUniqueId(3102); + static constexpr const TSymbolUniqueId atan_Float3_Float3 = TSymbolUniqueId(3103); + static constexpr const TSymbolUniqueId atan_Float4_Float4 = TSymbolUniqueId(3104); + static constexpr const TSymbolUniqueId atan_Float1 = TSymbolUniqueId(3105); + static constexpr const TSymbolUniqueId atan_Float2 = TSymbolUniqueId(3106); + static constexpr const TSymbolUniqueId atan_Float3 = TSymbolUniqueId(3107); + static constexpr const TSymbolUniqueId atan_Float4 = TSymbolUniqueId(3108); + static constexpr const TSymbolUniqueId sinh_Float1 = TSymbolUniqueId(3109); + static constexpr const TSymbolUniqueId sinh_Float2 = TSymbolUniqueId(3110); + static constexpr const TSymbolUniqueId sinh_Float3 = TSymbolUniqueId(3111); + static constexpr const TSymbolUniqueId sinh_Float4 = TSymbolUniqueId(3112); + static constexpr const TSymbolUniqueId cosh_Float1 = TSymbolUniqueId(3113); + static constexpr const TSymbolUniqueId cosh_Float2 = TSymbolUniqueId(3114); + static constexpr const TSymbolUniqueId cosh_Float3 = TSymbolUniqueId(3115); + static constexpr const TSymbolUniqueId cosh_Float4 = TSymbolUniqueId(3116); + static constexpr const TSymbolUniqueId tanh_Float1 = TSymbolUniqueId(3117); + static constexpr const TSymbolUniqueId tanh_Float2 = TSymbolUniqueId(3118); + static constexpr const TSymbolUniqueId tanh_Float3 = TSymbolUniqueId(3119); + static constexpr const TSymbolUniqueId tanh_Float4 = TSymbolUniqueId(3120); + static constexpr const TSymbolUniqueId asinh_Float1 = TSymbolUniqueId(3121); + static constexpr const TSymbolUniqueId asinh_Float2 = TSymbolUniqueId(3122); + static constexpr const TSymbolUniqueId asinh_Float3 = TSymbolUniqueId(3123); + static constexpr const TSymbolUniqueId asinh_Float4 = TSymbolUniqueId(3124); + static constexpr const TSymbolUniqueId acosh_Float1 = TSymbolUniqueId(3125); + static constexpr const TSymbolUniqueId acosh_Float2 = TSymbolUniqueId(3126); + static constexpr const TSymbolUniqueId acosh_Float3 = TSymbolUniqueId(3127); + static constexpr const TSymbolUniqueId acosh_Float4 = TSymbolUniqueId(3128); + static constexpr const TSymbolUniqueId atanh_Float1 = TSymbolUniqueId(3129); + static constexpr const TSymbolUniqueId atanh_Float2 = TSymbolUniqueId(3130); + static constexpr const TSymbolUniqueId atanh_Float3 = TSymbolUniqueId(3131); + static constexpr const TSymbolUniqueId atanh_Float4 = TSymbolUniqueId(3132); + static constexpr const TSymbolUniqueId pow_Float1_Float1 = TSymbolUniqueId(3133); + static constexpr const TSymbolUniqueId pow_Float2_Float2 = TSymbolUniqueId(3134); + static constexpr const TSymbolUniqueId pow_Float3_Float3 = TSymbolUniqueId(3135); + static constexpr const TSymbolUniqueId pow_Float4_Float4 = TSymbolUniqueId(3136); + static constexpr const TSymbolUniqueId exp_Float1 = TSymbolUniqueId(3137); + static constexpr const TSymbolUniqueId exp_Float2 = TSymbolUniqueId(3138); + static constexpr const TSymbolUniqueId exp_Float3 = TSymbolUniqueId(3139); + static constexpr const TSymbolUniqueId exp_Float4 = TSymbolUniqueId(3140); + static constexpr const TSymbolUniqueId log_Float1 = TSymbolUniqueId(3141); + static constexpr const TSymbolUniqueId log_Float2 = TSymbolUniqueId(3142); + static constexpr const TSymbolUniqueId log_Float3 = TSymbolUniqueId(3143); + static constexpr const TSymbolUniqueId log_Float4 = TSymbolUniqueId(3144); + static constexpr const TSymbolUniqueId exp2_Float1 = TSymbolUniqueId(3145); + static constexpr const TSymbolUniqueId exp2_Float2 = TSymbolUniqueId(3146); + static constexpr const TSymbolUniqueId exp2_Float3 = TSymbolUniqueId(3147); + static constexpr const TSymbolUniqueId exp2_Float4 = TSymbolUniqueId(3148); + static constexpr const TSymbolUniqueId log2_Float1 = TSymbolUniqueId(3149); + static constexpr const TSymbolUniqueId log2_Float2 = TSymbolUniqueId(3150); + static constexpr const TSymbolUniqueId log2_Float3 = TSymbolUniqueId(3151); + static constexpr const TSymbolUniqueId log2_Float4 = TSymbolUniqueId(3152); + static constexpr const TSymbolUniqueId sqrt_Float1 = TSymbolUniqueId(3153); + static constexpr const TSymbolUniqueId sqrt_Float2 = TSymbolUniqueId(3154); + static constexpr const TSymbolUniqueId sqrt_Float3 = TSymbolUniqueId(3155); + static constexpr const TSymbolUniqueId sqrt_Float4 = TSymbolUniqueId(3156); + static constexpr const TSymbolUniqueId inversesqrt_Float1 = TSymbolUniqueId(3157); + static constexpr const TSymbolUniqueId inversesqrt_Float2 = TSymbolUniqueId(3158); + static constexpr const TSymbolUniqueId inversesqrt_Float3 = TSymbolUniqueId(3159); + static constexpr const TSymbolUniqueId inversesqrt_Float4 = TSymbolUniqueId(3160); + static constexpr const TSymbolUniqueId abs_Float1 = TSymbolUniqueId(3161); + static constexpr const TSymbolUniqueId abs_Float2 = TSymbolUniqueId(3162); + static constexpr const TSymbolUniqueId abs_Float3 = TSymbolUniqueId(3163); + static constexpr const TSymbolUniqueId abs_Float4 = TSymbolUniqueId(3164); + static constexpr const TSymbolUniqueId abs_Int1 = TSymbolUniqueId(3165); + static constexpr const TSymbolUniqueId pt00D = TSymbolUniqueId(3166); + static constexpr const TSymbolUniqueId abs_Int2 = TSymbolUniqueId(3167); + static constexpr const TSymbolUniqueId pt10D = TSymbolUniqueId(3168); + static constexpr const TSymbolUniqueId abs_Int3 = TSymbolUniqueId(3169); + static constexpr const TSymbolUniqueId pt20D = TSymbolUniqueId(3170); + static constexpr const TSymbolUniqueId abs_Int4 = TSymbolUniqueId(3171); + static constexpr const TSymbolUniqueId pt30D = TSymbolUniqueId(3172); + static constexpr const TSymbolUniqueId sign_Float1 = TSymbolUniqueId(3173); + static constexpr const TSymbolUniqueId sign_Float2 = TSymbolUniqueId(3174); + static constexpr const TSymbolUniqueId sign_Float3 = TSymbolUniqueId(3175); + static constexpr const TSymbolUniqueId sign_Float4 = TSymbolUniqueId(3176); + static constexpr const TSymbolUniqueId sign_Int1 = TSymbolUniqueId(3177); + static constexpr const TSymbolUniqueId sign_Int2 = TSymbolUniqueId(3178); + static constexpr const TSymbolUniqueId sign_Int3 = TSymbolUniqueId(3179); + static constexpr const TSymbolUniqueId sign_Int4 = TSymbolUniqueId(3180); + static constexpr const TSymbolUniqueId floor_Float1 = TSymbolUniqueId(3181); + static constexpr const TSymbolUniqueId floor_Float2 = TSymbolUniqueId(3182); + static constexpr const TSymbolUniqueId floor_Float3 = TSymbolUniqueId(3183); + static constexpr const TSymbolUniqueId floor_Float4 = TSymbolUniqueId(3184); + static constexpr const TSymbolUniqueId trunc_Float1 = TSymbolUniqueId(3185); + static constexpr const TSymbolUniqueId trunc_Float2 = TSymbolUniqueId(3186); + static constexpr const TSymbolUniqueId trunc_Float3 = TSymbolUniqueId(3187); + static constexpr const TSymbolUniqueId trunc_Float4 = TSymbolUniqueId(3188); + static constexpr const TSymbolUniqueId round_Float1 = TSymbolUniqueId(3189); + static constexpr const TSymbolUniqueId round_Float2 = TSymbolUniqueId(3190); + static constexpr const TSymbolUniqueId round_Float3 = TSymbolUniqueId(3191); + static constexpr const TSymbolUniqueId round_Float4 = TSymbolUniqueId(3192); + static constexpr const TSymbolUniqueId roundEven_Float1 = TSymbolUniqueId(3193); + static constexpr const TSymbolUniqueId roundEven_Float2 = TSymbolUniqueId(3194); + static constexpr const TSymbolUniqueId roundEven_Float3 = TSymbolUniqueId(3195); + static constexpr const TSymbolUniqueId roundEven_Float4 = TSymbolUniqueId(3196); + static constexpr const TSymbolUniqueId ceil_Float1 = TSymbolUniqueId(3197); + static constexpr const TSymbolUniqueId ceil_Float2 = TSymbolUniqueId(3198); + static constexpr const TSymbolUniqueId ceil_Float3 = TSymbolUniqueId(3199); + static constexpr const TSymbolUniqueId ceil_Float4 = TSymbolUniqueId(3200); + static constexpr const TSymbolUniqueId fract_Float1 = TSymbolUniqueId(3201); + static constexpr const TSymbolUniqueId fract_Float2 = TSymbolUniqueId(3202); + static constexpr const TSymbolUniqueId fract_Float3 = TSymbolUniqueId(3203); + static constexpr const TSymbolUniqueId fract_Float4 = TSymbolUniqueId(3204); + static constexpr const TSymbolUniqueId mod_Float1_Float1 = TSymbolUniqueId(3205); + static constexpr const TSymbolUniqueId mod_Float2_Float1 = TSymbolUniqueId(3206); + static constexpr const TSymbolUniqueId mod_Float3_Float1 = TSymbolUniqueId(3207); + static constexpr const TSymbolUniqueId mod_Float4_Float1 = TSymbolUniqueId(3208); + static constexpr const TSymbolUniqueId mod_Float2_Float2 = TSymbolUniqueId(3209); + static constexpr const TSymbolUniqueId mod_Float3_Float3 = TSymbolUniqueId(3210); + static constexpr const TSymbolUniqueId mod_Float4_Float4 = TSymbolUniqueId(3211); + static constexpr const TSymbolUniqueId min_Float1_Float1 = TSymbolUniqueId(3212); + static constexpr const TSymbolUniqueId min_Float2_Float1 = TSymbolUniqueId(3213); + static constexpr const TSymbolUniqueId min_Float3_Float1 = TSymbolUniqueId(3214); + static constexpr const TSymbolUniqueId min_Float4_Float1 = TSymbolUniqueId(3215); + static constexpr const TSymbolUniqueId min_Float2_Float2 = TSymbolUniqueId(3216); + static constexpr const TSymbolUniqueId min_Float3_Float3 = TSymbolUniqueId(3217); + static constexpr const TSymbolUniqueId min_Float4_Float4 = TSymbolUniqueId(3218); + static constexpr const TSymbolUniqueId min_Int1_Int1 = TSymbolUniqueId(3219); + static constexpr const TSymbolUniqueId min_Int2_Int2 = TSymbolUniqueId(3220); + static constexpr const TSymbolUniqueId min_Int3_Int3 = TSymbolUniqueId(3221); + static constexpr const TSymbolUniqueId min_Int4_Int4 = TSymbolUniqueId(3222); + static constexpr const TSymbolUniqueId min_Int2_Int1 = TSymbolUniqueId(3223); + static constexpr const TSymbolUniqueId min_Int3_Int1 = TSymbolUniqueId(3224); + static constexpr const TSymbolUniqueId min_Int4_Int1 = TSymbolUniqueId(3225); + static constexpr const TSymbolUniqueId min_UInt1_UInt1 = TSymbolUniqueId(3226); + static constexpr const TSymbolUniqueId pt00E = TSymbolUniqueId(3227); + static constexpr const TSymbolUniqueId min_UInt2_UInt2 = TSymbolUniqueId(3228); + static constexpr const TSymbolUniqueId pt10E = TSymbolUniqueId(3229); + static constexpr const TSymbolUniqueId min_UInt3_UInt3 = TSymbolUniqueId(3230); + static constexpr const TSymbolUniqueId pt20E = TSymbolUniqueId(3231); + static constexpr const TSymbolUniqueId min_UInt4_UInt4 = TSymbolUniqueId(3232); + static constexpr const TSymbolUniqueId pt30E = TSymbolUniqueId(3233); + static constexpr const TSymbolUniqueId min_UInt2_UInt1 = TSymbolUniqueId(3234); + static constexpr const TSymbolUniqueId min_UInt3_UInt1 = TSymbolUniqueId(3235); + static constexpr const TSymbolUniqueId min_UInt4_UInt1 = TSymbolUniqueId(3236); + static constexpr const TSymbolUniqueId max_Float1_Float1 = TSymbolUniqueId(3237); + static constexpr const TSymbolUniqueId max_Float2_Float1 = TSymbolUniqueId(3238); + static constexpr const TSymbolUniqueId max_Float3_Float1 = TSymbolUniqueId(3239); + static constexpr const TSymbolUniqueId max_Float4_Float1 = TSymbolUniqueId(3240); + static constexpr const TSymbolUniqueId max_Float2_Float2 = TSymbolUniqueId(3241); + static constexpr const TSymbolUniqueId max_Float3_Float3 = TSymbolUniqueId(3242); + static constexpr const TSymbolUniqueId max_Float4_Float4 = TSymbolUniqueId(3243); + static constexpr const TSymbolUniqueId max_Int1_Int1 = TSymbolUniqueId(3244); + static constexpr const TSymbolUniqueId max_Int2_Int2 = TSymbolUniqueId(3245); + static constexpr const TSymbolUniqueId max_Int3_Int3 = TSymbolUniqueId(3246); + static constexpr const TSymbolUniqueId max_Int4_Int4 = TSymbolUniqueId(3247); + static constexpr const TSymbolUniqueId max_Int2_Int1 = TSymbolUniqueId(3248); + static constexpr const TSymbolUniqueId max_Int3_Int1 = TSymbolUniqueId(3249); + static constexpr const TSymbolUniqueId max_Int4_Int1 = TSymbolUniqueId(3250); + static constexpr const TSymbolUniqueId max_UInt1_UInt1 = TSymbolUniqueId(3251); + static constexpr const TSymbolUniqueId max_UInt2_UInt2 = TSymbolUniqueId(3252); + static constexpr const TSymbolUniqueId max_UInt3_UInt3 = TSymbolUniqueId(3253); + static constexpr const TSymbolUniqueId max_UInt4_UInt4 = TSymbolUniqueId(3254); + static constexpr const TSymbolUniqueId max_UInt2_UInt1 = TSymbolUniqueId(3255); + static constexpr const TSymbolUniqueId max_UInt3_UInt1 = TSymbolUniqueId(3256); + static constexpr const TSymbolUniqueId max_UInt4_UInt1 = TSymbolUniqueId(3257); + static constexpr const TSymbolUniqueId clamp_Float1_Float1_Float1 = TSymbolUniqueId(3258); + static constexpr const TSymbolUniqueId clamp_Float2_Float1_Float1 = TSymbolUniqueId(3259); + static constexpr const TSymbolUniqueId clamp_Float3_Float1_Float1 = TSymbolUniqueId(3260); + static constexpr const TSymbolUniqueId clamp_Float4_Float1_Float1 = TSymbolUniqueId(3261); + static constexpr const TSymbolUniqueId clamp_Float2_Float2_Float2 = TSymbolUniqueId(3262); + static constexpr const TSymbolUniqueId clamp_Float3_Float3_Float3 = TSymbolUniqueId(3263); + static constexpr const TSymbolUniqueId clamp_Float4_Float4_Float4 = TSymbolUniqueId(3264); + static constexpr const TSymbolUniqueId clamp_Int1_Int1_Int1 = TSymbolUniqueId(3265); + static constexpr const TSymbolUniqueId clamp_Int2_Int1_Int1 = TSymbolUniqueId(3266); + static constexpr const TSymbolUniqueId clamp_Int3_Int1_Int1 = TSymbolUniqueId(3267); + static constexpr const TSymbolUniqueId clamp_Int4_Int1_Int1 = TSymbolUniqueId(3268); + static constexpr const TSymbolUniqueId clamp_Int2_Int2_Int2 = TSymbolUniqueId(3269); + static constexpr const TSymbolUniqueId clamp_Int3_Int3_Int3 = TSymbolUniqueId(3270); + static constexpr const TSymbolUniqueId clamp_Int4_Int4_Int4 = TSymbolUniqueId(3271); + static constexpr const TSymbolUniqueId clamp_UInt1_UInt1_UInt1 = TSymbolUniqueId(3272); + static constexpr const TSymbolUniqueId clamp_UInt2_UInt1_UInt1 = TSymbolUniqueId(3273); + static constexpr const TSymbolUniqueId clamp_UInt3_UInt1_UInt1 = TSymbolUniqueId(3274); + static constexpr const TSymbolUniqueId clamp_UInt4_UInt1_UInt1 = TSymbolUniqueId(3275); + static constexpr const TSymbolUniqueId clamp_UInt2_UInt2_UInt2 = TSymbolUniqueId(3276); + static constexpr const TSymbolUniqueId clamp_UInt3_UInt3_UInt3 = TSymbolUniqueId(3277); + static constexpr const TSymbolUniqueId clamp_UInt4_UInt4_UInt4 = TSymbolUniqueId(3278); + static constexpr const TSymbolUniqueId mix_Float1_Float1_Float1 = TSymbolUniqueId(3279); + static constexpr const TSymbolUniqueId mix_Float2_Float2_Float1 = TSymbolUniqueId(3280); + static constexpr const TSymbolUniqueId mix_Float3_Float3_Float1 = TSymbolUniqueId(3281); + static constexpr const TSymbolUniqueId mix_Float4_Float4_Float1 = TSymbolUniqueId(3282); + static constexpr const TSymbolUniqueId mix_Float2_Float2_Float2 = TSymbolUniqueId(3283); + static constexpr const TSymbolUniqueId mix_Float3_Float3_Float3 = TSymbolUniqueId(3284); + static constexpr const TSymbolUniqueId mix_Float4_Float4_Float4 = TSymbolUniqueId(3285); + static constexpr const TSymbolUniqueId mix_Float1_Float1_Bool1 = TSymbolUniqueId(3286); + static constexpr const TSymbolUniqueId pt00F = TSymbolUniqueId(3287); + static constexpr const TSymbolUniqueId mix_Float2_Float2_Bool2 = TSymbolUniqueId(3288); + static constexpr const TSymbolUniqueId pt10F = TSymbolUniqueId(3289); + static constexpr const TSymbolUniqueId mix_Float3_Float3_Bool3 = TSymbolUniqueId(3290); + static constexpr const TSymbolUniqueId pt20F = TSymbolUniqueId(3291); + static constexpr const TSymbolUniqueId mix_Float4_Float4_Bool4 = TSymbolUniqueId(3292); + static constexpr const TSymbolUniqueId pt30F = TSymbolUniqueId(3293); + static constexpr const TSymbolUniqueId mix_Int1_Int1_Bool1 = TSymbolUniqueId(3294); + static constexpr const TSymbolUniqueId mix_Int2_Int2_Bool2 = TSymbolUniqueId(3295); + static constexpr const TSymbolUniqueId mix_Int3_Int3_Bool3 = TSymbolUniqueId(3296); + static constexpr const TSymbolUniqueId mix_Int4_Int4_Bool4 = TSymbolUniqueId(3297); + static constexpr const TSymbolUniqueId mix_UInt1_UInt1_Bool1 = TSymbolUniqueId(3298); + static constexpr const TSymbolUniqueId mix_UInt2_UInt2_Bool2 = TSymbolUniqueId(3299); + static constexpr const TSymbolUniqueId mix_UInt3_UInt3_Bool3 = TSymbolUniqueId(3300); + static constexpr const TSymbolUniqueId mix_UInt4_UInt4_Bool4 = TSymbolUniqueId(3301); + static constexpr const TSymbolUniqueId mix_Bool1_Bool1_Bool1 = TSymbolUniqueId(3302); + static constexpr const TSymbolUniqueId mix_Bool2_Bool2_Bool2 = TSymbolUniqueId(3303); + static constexpr const TSymbolUniqueId mix_Bool3_Bool3_Bool3 = TSymbolUniqueId(3304); + static constexpr const TSymbolUniqueId mix_Bool4_Bool4_Bool4 = TSymbolUniqueId(3305); + static constexpr const TSymbolUniqueId step_Float1_Float1 = TSymbolUniqueId(3306); + static constexpr const TSymbolUniqueId step_Float2_Float2 = TSymbolUniqueId(3307); + static constexpr const TSymbolUniqueId step_Float3_Float3 = TSymbolUniqueId(3308); + static constexpr const TSymbolUniqueId step_Float4_Float4 = TSymbolUniqueId(3309); + static constexpr const TSymbolUniqueId step_Float1_Float2 = TSymbolUniqueId(3310); + static constexpr const TSymbolUniqueId step_Float1_Float3 = TSymbolUniqueId(3311); + static constexpr const TSymbolUniqueId step_Float1_Float4 = TSymbolUniqueId(3312); + static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float1 = TSymbolUniqueId(3313); + static constexpr const TSymbolUniqueId smoothstep_Float2_Float2_Float2 = TSymbolUniqueId(3314); + static constexpr const TSymbolUniqueId smoothstep_Float3_Float3_Float3 = TSymbolUniqueId(3315); + static constexpr const TSymbolUniqueId smoothstep_Float4_Float4_Float4 = TSymbolUniqueId(3316); + static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float2 = TSymbolUniqueId(3317); + static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float3 = TSymbolUniqueId(3318); + static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float4 = TSymbolUniqueId(3319); + static constexpr const TSymbolUniqueId modf_Float1_Float1 = TSymbolUniqueId(3320); + static constexpr const TSymbolUniqueId pt_o_00B = TSymbolUniqueId(3321); + static constexpr const TSymbolUniqueId modf_Float2_Float2 = TSymbolUniqueId(3322); + static constexpr const TSymbolUniqueId pt_o_10B = TSymbolUniqueId(3323); + static constexpr const TSymbolUniqueId modf_Float3_Float3 = TSymbolUniqueId(3324); + static constexpr const TSymbolUniqueId pt_o_20B = TSymbolUniqueId(3325); + static constexpr const TSymbolUniqueId modf_Float4_Float4 = TSymbolUniqueId(3326); + static constexpr const TSymbolUniqueId pt_o_30B = TSymbolUniqueId(3327); + static constexpr const TSymbolUniqueId isnan_Float1 = TSymbolUniqueId(3328); + static constexpr const TSymbolUniqueId isnan_Float2 = TSymbolUniqueId(3329); + static constexpr const TSymbolUniqueId isnan_Float3 = TSymbolUniqueId(3330); + static constexpr const TSymbolUniqueId isnan_Float4 = TSymbolUniqueId(3331); + static constexpr const TSymbolUniqueId isinf_Float1 = TSymbolUniqueId(3332); + static constexpr const TSymbolUniqueId isinf_Float2 = TSymbolUniqueId(3333); + static constexpr const TSymbolUniqueId isinf_Float3 = TSymbolUniqueId(3334); + static constexpr const TSymbolUniqueId isinf_Float4 = TSymbolUniqueId(3335); + static constexpr const TSymbolUniqueId floatBitsToInt_Float1 = TSymbolUniqueId(3336); + static constexpr const TSymbolUniqueId floatBitsToInt_Float2 = TSymbolUniqueId(3337); + static constexpr const TSymbolUniqueId floatBitsToInt_Float3 = TSymbolUniqueId(3338); + static constexpr const TSymbolUniqueId floatBitsToInt_Float4 = TSymbolUniqueId(3339); + static constexpr const TSymbolUniqueId floatBitsToUint_Float1 = TSymbolUniqueId(3340); + static constexpr const TSymbolUniqueId floatBitsToUint_Float2 = TSymbolUniqueId(3341); + static constexpr const TSymbolUniqueId floatBitsToUint_Float3 = TSymbolUniqueId(3342); + static constexpr const TSymbolUniqueId floatBitsToUint_Float4 = TSymbolUniqueId(3343); + static constexpr const TSymbolUniqueId intBitsToFloat_Int1 = TSymbolUniqueId(3344); + static constexpr const TSymbolUniqueId intBitsToFloat_Int2 = TSymbolUniqueId(3345); + static constexpr const TSymbolUniqueId intBitsToFloat_Int3 = TSymbolUniqueId(3346); + static constexpr const TSymbolUniqueId intBitsToFloat_Int4 = TSymbolUniqueId(3347); + static constexpr const TSymbolUniqueId uintBitsToFloat_UInt1 = TSymbolUniqueId(3348); + static constexpr const TSymbolUniqueId uintBitsToFloat_UInt2 = TSymbolUniqueId(3349); + static constexpr const TSymbolUniqueId uintBitsToFloat_UInt3 = TSymbolUniqueId(3350); + static constexpr const TSymbolUniqueId uintBitsToFloat_UInt4 = TSymbolUniqueId(3351); + static constexpr const TSymbolUniqueId fma_Float1_Float1_Float1 = TSymbolUniqueId(3352); + static constexpr const TSymbolUniqueId fma_Float2_Float2_Float2 = TSymbolUniqueId(3353); + static constexpr const TSymbolUniqueId fma_Float3_Float3_Float3 = TSymbolUniqueId(3354); + static constexpr const TSymbolUniqueId fma_Float4_Float4_Float4 = TSymbolUniqueId(3355); + static constexpr const TSymbolUniqueId fmaExt_Float1_Float1_Float1 = TSymbolUniqueId(3356); + static constexpr const TSymbolUniqueId fmaExt_Float2_Float2_Float2 = TSymbolUniqueId(3357); + static constexpr const TSymbolUniqueId fmaExt_Float3_Float3_Float3 = TSymbolUniqueId(3358); + static constexpr const TSymbolUniqueId fmaExt_Float4_Float4_Float4 = TSymbolUniqueId(3359); + static constexpr const TSymbolUniqueId frexp_Float1_Int1 = TSymbolUniqueId(3360); + static constexpr const TSymbolUniqueId pt_o_00D = TSymbolUniqueId(3361); + static constexpr const TSymbolUniqueId frexp_Float2_Int2 = TSymbolUniqueId(3362); + static constexpr const TSymbolUniqueId pt_o_10D = TSymbolUniqueId(3363); + static constexpr const TSymbolUniqueId frexp_Float3_Int3 = TSymbolUniqueId(3364); + static constexpr const TSymbolUniqueId pt_o_20D = TSymbolUniqueId(3365); + static constexpr const TSymbolUniqueId frexp_Float4_Int4 = TSymbolUniqueId(3366); + static constexpr const TSymbolUniqueId pt_o_30D = TSymbolUniqueId(3367); + static constexpr const TSymbolUniqueId ldexp_Float1_Int1 = TSymbolUniqueId(3368); + static constexpr const TSymbolUniqueId ldexp_Float2_Int2 = TSymbolUniqueId(3369); + static constexpr const TSymbolUniqueId ldexp_Float3_Int3 = TSymbolUniqueId(3370); + static constexpr const TSymbolUniqueId ldexp_Float4_Int4 = TSymbolUniqueId(3371); + static constexpr const TSymbolUniqueId packSnorm2x16_Float2 = TSymbolUniqueId(3372); + static constexpr const TSymbolUniqueId packHalf2x16_Float2 = TSymbolUniqueId(3373); + static constexpr const TSymbolUniqueId unpackSnorm2x16_UInt1 = TSymbolUniqueId(3374); + static constexpr const TSymbolUniqueId unpackHalf2x16_UInt1 = TSymbolUniqueId(3375); + static constexpr const TSymbolUniqueId packUnorm2x16_Float2 = TSymbolUniqueId(3376); + static constexpr const TSymbolUniqueId unpackUnorm2x16_UInt1 = TSymbolUniqueId(3377); + static constexpr const TSymbolUniqueId packUnorm4x8_Float4 = TSymbolUniqueId(3378); + static constexpr const TSymbolUniqueId packSnorm4x8_Float4 = TSymbolUniqueId(3379); + static constexpr const TSymbolUniqueId unpackUnorm4x8_UInt1 = TSymbolUniqueId(3380); + static constexpr const TSymbolUniqueId unpackSnorm4x8_UInt1 = TSymbolUniqueId(3381); + static constexpr const TSymbolUniqueId length_Float1 = TSymbolUniqueId(3382); + static constexpr const TSymbolUniqueId length_Float2 = TSymbolUniqueId(3383); + static constexpr const TSymbolUniqueId length_Float3 = TSymbolUniqueId(3384); + static constexpr const TSymbolUniqueId length_Float4 = TSymbolUniqueId(3385); + static constexpr const TSymbolUniqueId distance_Float1_Float1 = TSymbolUniqueId(3386); + static constexpr const TSymbolUniqueId distance_Float2_Float2 = TSymbolUniqueId(3387); + static constexpr const TSymbolUniqueId distance_Float3_Float3 = TSymbolUniqueId(3388); + static constexpr const TSymbolUniqueId distance_Float4_Float4 = TSymbolUniqueId(3389); + static constexpr const TSymbolUniqueId dot_Float1_Float1 = TSymbolUniqueId(3390); + static constexpr const TSymbolUniqueId dot_Float2_Float2 = TSymbolUniqueId(3391); + static constexpr const TSymbolUniqueId dot_Float3_Float3 = TSymbolUniqueId(3392); + static constexpr const TSymbolUniqueId dot_Float4_Float4 = TSymbolUniqueId(3393); + static constexpr const TSymbolUniqueId cross_Float3_Float3 = TSymbolUniqueId(3394); + static constexpr const TSymbolUniqueId normalize_Float1 = TSymbolUniqueId(3395); + static constexpr const TSymbolUniqueId normalize_Float2 = TSymbolUniqueId(3396); + static constexpr const TSymbolUniqueId normalize_Float3 = TSymbolUniqueId(3397); + static constexpr const TSymbolUniqueId normalize_Float4 = TSymbolUniqueId(3398); + static constexpr const TSymbolUniqueId faceforward_Float1_Float1_Float1 = TSymbolUniqueId(3399); + static constexpr const TSymbolUniqueId faceforward_Float2_Float2_Float2 = TSymbolUniqueId(3400); + static constexpr const TSymbolUniqueId faceforward_Float3_Float3_Float3 = TSymbolUniqueId(3401); + static constexpr const TSymbolUniqueId faceforward_Float4_Float4_Float4 = TSymbolUniqueId(3402); + static constexpr const TSymbolUniqueId reflect_Float1_Float1 = TSymbolUniqueId(3403); + static constexpr const TSymbolUniqueId reflect_Float2_Float2 = TSymbolUniqueId(3404); + static constexpr const TSymbolUniqueId reflect_Float3_Float3 = TSymbolUniqueId(3405); + static constexpr const TSymbolUniqueId reflect_Float4_Float4 = TSymbolUniqueId(3406); + static constexpr const TSymbolUniqueId refract_Float1_Float1_Float1 = TSymbolUniqueId(3407); + static constexpr const TSymbolUniqueId refract_Float2_Float2_Float1 = TSymbolUniqueId(3408); + static constexpr const TSymbolUniqueId refract_Float3_Float3_Float1 = TSymbolUniqueId(3409); + static constexpr const TSymbolUniqueId refract_Float4_Float4_Float1 = TSymbolUniqueId(3410); + static constexpr const TSymbolUniqueId matrixCompMult_Float2x2_Float2x2 = TSymbolUniqueId(3411); + static constexpr const TSymbolUniqueId pt50B = TSymbolUniqueId(3412); + static constexpr const TSymbolUniqueId matrixCompMult_Float3x3_Float3x3 = TSymbolUniqueId(3413); + static constexpr const TSymbolUniqueId ptA0B = TSymbolUniqueId(3414); + static constexpr const TSymbolUniqueId matrixCompMult_Float4x4_Float4x4 = TSymbolUniqueId(3415); + static constexpr const TSymbolUniqueId ptF0B = TSymbolUniqueId(3416); + static constexpr const TSymbolUniqueId matrixCompMult_Float2x3_Float2x3 = TSymbolUniqueId(3417); + static constexpr const TSymbolUniqueId pt90B = TSymbolUniqueId(3418); + static constexpr const TSymbolUniqueId matrixCompMult_Float3x2_Float3x2 = TSymbolUniqueId(3419); + static constexpr const TSymbolUniqueId pt60B = TSymbolUniqueId(3420); + static constexpr const TSymbolUniqueId matrixCompMult_Float2x4_Float2x4 = TSymbolUniqueId(3421); + static constexpr const TSymbolUniqueId ptD0B = TSymbolUniqueId(3422); + static constexpr const TSymbolUniqueId matrixCompMult_Float4x2_Float4x2 = TSymbolUniqueId(3423); + static constexpr const TSymbolUniqueId pt70B = TSymbolUniqueId(3424); + static constexpr const TSymbolUniqueId matrixCompMult_Float3x4_Float3x4 = TSymbolUniqueId(3425); + static constexpr const TSymbolUniqueId ptE0B = TSymbolUniqueId(3426); + static constexpr const TSymbolUniqueId matrixCompMult_Float4x3_Float4x3 = TSymbolUniqueId(3427); + static constexpr const TSymbolUniqueId ptB0B = TSymbolUniqueId(3428); + static constexpr const TSymbolUniqueId outerProduct_Float2_Float2 = TSymbolUniqueId(3429); + static constexpr const TSymbolUniqueId outerProduct_Float3_Float3 = TSymbolUniqueId(3430); + static constexpr const TSymbolUniqueId outerProduct_Float4_Float4 = TSymbolUniqueId(3431); + static constexpr const TSymbolUniqueId outerProduct_Float3_Float2 = TSymbolUniqueId(3432); + static constexpr const TSymbolUniqueId outerProduct_Float2_Float3 = TSymbolUniqueId(3433); + static constexpr const TSymbolUniqueId outerProduct_Float4_Float2 = TSymbolUniqueId(3434); + static constexpr const TSymbolUniqueId outerProduct_Float2_Float4 = TSymbolUniqueId(3435); + static constexpr const TSymbolUniqueId outerProduct_Float4_Float3 = TSymbolUniqueId(3436); + static constexpr const TSymbolUniqueId outerProduct_Float3_Float4 = TSymbolUniqueId(3437); + static constexpr const TSymbolUniqueId transpose_Float2x2 = TSymbolUniqueId(3438); + static constexpr const TSymbolUniqueId transpose_Float3x3 = TSymbolUniqueId(3439); + static constexpr const TSymbolUniqueId transpose_Float4x4 = TSymbolUniqueId(3440); + static constexpr const TSymbolUniqueId transpose_Float3x2 = TSymbolUniqueId(3441); + static constexpr const TSymbolUniqueId transpose_Float2x3 = TSymbolUniqueId(3442); + static constexpr const TSymbolUniqueId transpose_Float4x2 = TSymbolUniqueId(3443); + static constexpr const TSymbolUniqueId transpose_Float2x4 = TSymbolUniqueId(3444); + static constexpr const TSymbolUniqueId transpose_Float4x3 = TSymbolUniqueId(3445); + static constexpr const TSymbolUniqueId transpose_Float3x4 = TSymbolUniqueId(3446); + static constexpr const TSymbolUniqueId determinant_Float2x2 = TSymbolUniqueId(3447); + static constexpr const TSymbolUniqueId determinant_Float3x3 = TSymbolUniqueId(3448); + static constexpr const TSymbolUniqueId determinant_Float4x4 = TSymbolUniqueId(3449); + static constexpr const TSymbolUniqueId inverse_Float2x2 = TSymbolUniqueId(3450); + static constexpr const TSymbolUniqueId inverse_Float3x3 = TSymbolUniqueId(3451); + static constexpr const TSymbolUniqueId inverse_Float4x4 = TSymbolUniqueId(3452); + static constexpr const TSymbolUniqueId lessThan_Float2_Float2 = TSymbolUniqueId(3453); + static constexpr const TSymbolUniqueId lessThan_Float3_Float3 = TSymbolUniqueId(3454); + static constexpr const TSymbolUniqueId lessThan_Float4_Float4 = TSymbolUniqueId(3455); + static constexpr const TSymbolUniqueId lessThan_Int2_Int2 = TSymbolUniqueId(3456); + static constexpr const TSymbolUniqueId lessThan_Int3_Int3 = TSymbolUniqueId(3457); + static constexpr const TSymbolUniqueId lessThan_Int4_Int4 = TSymbolUniqueId(3458); + static constexpr const TSymbolUniqueId lessThan_UInt2_UInt2 = TSymbolUniqueId(3459); + static constexpr const TSymbolUniqueId lessThan_UInt3_UInt3 = TSymbolUniqueId(3460); + static constexpr const TSymbolUniqueId lessThan_UInt4_UInt4 = TSymbolUniqueId(3461); + static constexpr const TSymbolUniqueId lessThanEqual_Float2_Float2 = TSymbolUniqueId(3462); + static constexpr const TSymbolUniqueId lessThanEqual_Float3_Float3 = TSymbolUniqueId(3463); + static constexpr const TSymbolUniqueId lessThanEqual_Float4_Float4 = TSymbolUniqueId(3464); + static constexpr const TSymbolUniqueId lessThanEqual_Int2_Int2 = TSymbolUniqueId(3465); + static constexpr const TSymbolUniqueId lessThanEqual_Int3_Int3 = TSymbolUniqueId(3466); + static constexpr const TSymbolUniqueId lessThanEqual_Int4_Int4 = TSymbolUniqueId(3467); + static constexpr const TSymbolUniqueId lessThanEqual_UInt2_UInt2 = TSymbolUniqueId(3468); + static constexpr const TSymbolUniqueId lessThanEqual_UInt3_UInt3 = TSymbolUniqueId(3469); + static constexpr const TSymbolUniqueId lessThanEqual_UInt4_UInt4 = TSymbolUniqueId(3470); + static constexpr const TSymbolUniqueId greaterThan_Float2_Float2 = TSymbolUniqueId(3471); + static constexpr const TSymbolUniqueId greaterThan_Float3_Float3 = TSymbolUniqueId(3472); + static constexpr const TSymbolUniqueId greaterThan_Float4_Float4 = TSymbolUniqueId(3473); + static constexpr const TSymbolUniqueId greaterThan_Int2_Int2 = TSymbolUniqueId(3474); + static constexpr const TSymbolUniqueId greaterThan_Int3_Int3 = TSymbolUniqueId(3475); + static constexpr const TSymbolUniqueId greaterThan_Int4_Int4 = TSymbolUniqueId(3476); + static constexpr const TSymbolUniqueId greaterThan_UInt2_UInt2 = TSymbolUniqueId(3477); + static constexpr const TSymbolUniqueId greaterThan_UInt3_UInt3 = TSymbolUniqueId(3478); + static constexpr const TSymbolUniqueId greaterThan_UInt4_UInt4 = TSymbolUniqueId(3479); + static constexpr const TSymbolUniqueId greaterThanEqual_Float2_Float2 = TSymbolUniqueId(3480); + static constexpr const TSymbolUniqueId greaterThanEqual_Float3_Float3 = TSymbolUniqueId(3481); + static constexpr const TSymbolUniqueId greaterThanEqual_Float4_Float4 = TSymbolUniqueId(3482); + static constexpr const TSymbolUniqueId greaterThanEqual_Int2_Int2 = TSymbolUniqueId(3483); + static constexpr const TSymbolUniqueId greaterThanEqual_Int3_Int3 = TSymbolUniqueId(3484); + static constexpr const TSymbolUniqueId greaterThanEqual_Int4_Int4 = TSymbolUniqueId(3485); + static constexpr const TSymbolUniqueId greaterThanEqual_UInt2_UInt2 = TSymbolUniqueId(3486); + static constexpr const TSymbolUniqueId greaterThanEqual_UInt3_UInt3 = TSymbolUniqueId(3487); + static constexpr const TSymbolUniqueId greaterThanEqual_UInt4_UInt4 = TSymbolUniqueId(3488); + static constexpr const TSymbolUniqueId equal_Float2_Float2 = TSymbolUniqueId(3489); + static constexpr const TSymbolUniqueId equal_Float3_Float3 = TSymbolUniqueId(3490); + static constexpr const TSymbolUniqueId equal_Float4_Float4 = TSymbolUniqueId(3491); + static constexpr const TSymbolUniqueId equal_Int2_Int2 = TSymbolUniqueId(3492); + static constexpr const TSymbolUniqueId equal_Int3_Int3 = TSymbolUniqueId(3493); + static constexpr const TSymbolUniqueId equal_Int4_Int4 = TSymbolUniqueId(3494); + static constexpr const TSymbolUniqueId equal_UInt2_UInt2 = TSymbolUniqueId(3495); + static constexpr const TSymbolUniqueId equal_UInt3_UInt3 = TSymbolUniqueId(3496); + static constexpr const TSymbolUniqueId equal_UInt4_UInt4 = TSymbolUniqueId(3497); + static constexpr const TSymbolUniqueId equal_Bool2_Bool2 = TSymbolUniqueId(3498); + static constexpr const TSymbolUniqueId equal_Bool3_Bool3 = TSymbolUniqueId(3499); + static constexpr const TSymbolUniqueId equal_Bool4_Bool4 = TSymbolUniqueId(3500); + static constexpr const TSymbolUniqueId notEqual_Float2_Float2 = TSymbolUniqueId(3501); + static constexpr const TSymbolUniqueId notEqual_Float3_Float3 = TSymbolUniqueId(3502); + static constexpr const TSymbolUniqueId notEqual_Float4_Float4 = TSymbolUniqueId(3503); + static constexpr const TSymbolUniqueId notEqual_Int2_Int2 = TSymbolUniqueId(3504); + static constexpr const TSymbolUniqueId notEqual_Int3_Int3 = TSymbolUniqueId(3505); + static constexpr const TSymbolUniqueId notEqual_Int4_Int4 = TSymbolUniqueId(3506); + static constexpr const TSymbolUniqueId notEqual_UInt2_UInt2 = TSymbolUniqueId(3507); + static constexpr const TSymbolUniqueId notEqual_UInt3_UInt3 = TSymbolUniqueId(3508); + static constexpr const TSymbolUniqueId notEqual_UInt4_UInt4 = TSymbolUniqueId(3509); + static constexpr const TSymbolUniqueId notEqual_Bool2_Bool2 = TSymbolUniqueId(3510); + static constexpr const TSymbolUniqueId notEqual_Bool3_Bool3 = TSymbolUniqueId(3511); + static constexpr const TSymbolUniqueId notEqual_Bool4_Bool4 = TSymbolUniqueId(3512); + static constexpr const TSymbolUniqueId any_Bool2 = TSymbolUniqueId(3513); + static constexpr const TSymbolUniqueId any_Bool3 = TSymbolUniqueId(3514); + static constexpr const TSymbolUniqueId any_Bool4 = TSymbolUniqueId(3515); + static constexpr const TSymbolUniqueId all_Bool2 = TSymbolUniqueId(3516); + static constexpr const TSymbolUniqueId all_Bool3 = TSymbolUniqueId(3517); + static constexpr const TSymbolUniqueId all_Bool4 = TSymbolUniqueId(3518); + static constexpr const TSymbolUniqueId notFunc_Bool2 = TSymbolUniqueId(3519); + static constexpr const TSymbolUniqueId notFunc_Bool3 = TSymbolUniqueId(3520); + static constexpr const TSymbolUniqueId notFunc_Bool4 = TSymbolUniqueId(3521); + static constexpr const TSymbolUniqueId bitfieldExtract_Int1_Int1_Int1 = TSymbolUniqueId(3522); + static constexpr const TSymbolUniqueId bitfieldExtract_Int2_Int1_Int1 = TSymbolUniqueId(3523); + static constexpr const TSymbolUniqueId bitfieldExtract_Int3_Int1_Int1 = TSymbolUniqueId(3524); + static constexpr const TSymbolUniqueId bitfieldExtract_Int4_Int1_Int1 = TSymbolUniqueId(3525); + static constexpr const TSymbolUniqueId bitfieldExtract_UInt1_Int1_Int1 = TSymbolUniqueId(3526); + static constexpr const TSymbolUniqueId bitfieldExtract_UInt2_Int1_Int1 = TSymbolUniqueId(3527); + static constexpr const TSymbolUniqueId bitfieldExtract_UInt3_Int1_Int1 = TSymbolUniqueId(3528); + static constexpr const TSymbolUniqueId bitfieldExtract_UInt4_Int1_Int1 = TSymbolUniqueId(3529); static constexpr const TSymbolUniqueId bitfieldInsert_Int1_Int1_Int1_Int1 = - TSymbolUniqueId(3477); + TSymbolUniqueId(3530); static constexpr const TSymbolUniqueId bitfieldInsert_Int2_Int2_Int1_Int1 = - TSymbolUniqueId(3478); + TSymbolUniqueId(3531); static constexpr const TSymbolUniqueId bitfieldInsert_Int3_Int3_Int1_Int1 = - TSymbolUniqueId(3479); + TSymbolUniqueId(3532); static constexpr const TSymbolUniqueId bitfieldInsert_Int4_Int4_Int1_Int1 = - TSymbolUniqueId(3480); + TSymbolUniqueId(3533); static constexpr const TSymbolUniqueId bitfieldInsert_UInt1_UInt1_Int1_Int1 = - TSymbolUniqueId(3481); + TSymbolUniqueId(3534); static constexpr const TSymbolUniqueId bitfieldInsert_UInt2_UInt2_Int1_Int1 = - TSymbolUniqueId(3482); + TSymbolUniqueId(3535); static constexpr const TSymbolUniqueId bitfieldInsert_UInt3_UInt3_Int1_Int1 = - TSymbolUniqueId(3483); + TSymbolUniqueId(3536); static constexpr const TSymbolUniqueId bitfieldInsert_UInt4_UInt4_Int1_Int1 = - TSymbolUniqueId(3484); - static constexpr const TSymbolUniqueId bitfieldReverse_Int1 = TSymbolUniqueId(3485); - static constexpr const TSymbolUniqueId bitfieldReverse_Int2 = TSymbolUniqueId(3486); - static constexpr const TSymbolUniqueId bitfieldReverse_Int3 = TSymbolUniqueId(3487); - static constexpr const TSymbolUniqueId bitfieldReverse_Int4 = TSymbolUniqueId(3488); - static constexpr const TSymbolUniqueId bitfieldReverse_UInt1 = TSymbolUniqueId(3489); - static constexpr const TSymbolUniqueId bitfieldReverse_UInt2 = TSymbolUniqueId(3490); - static constexpr const TSymbolUniqueId bitfieldReverse_UInt3 = TSymbolUniqueId(3491); - static constexpr const TSymbolUniqueId bitfieldReverse_UInt4 = TSymbolUniqueId(3492); - static constexpr const TSymbolUniqueId bitCount_Int1 = TSymbolUniqueId(3493); - static constexpr const TSymbolUniqueId bitCount_Int2 = TSymbolUniqueId(3494); - static constexpr const TSymbolUniqueId bitCount_Int3 = TSymbolUniqueId(3495); - static constexpr const TSymbolUniqueId bitCount_Int4 = TSymbolUniqueId(3496); - static constexpr const TSymbolUniqueId bitCount_UInt1 = TSymbolUniqueId(3497); - static constexpr const TSymbolUniqueId bitCount_UInt2 = TSymbolUniqueId(3498); - static constexpr const TSymbolUniqueId bitCount_UInt3 = TSymbolUniqueId(3499); - static constexpr const TSymbolUniqueId bitCount_UInt4 = TSymbolUniqueId(3500); - static constexpr const TSymbolUniqueId findLSB_Int1 = TSymbolUniqueId(3501); - static constexpr const TSymbolUniqueId findLSB_Int2 = TSymbolUniqueId(3502); - static constexpr const TSymbolUniqueId findLSB_Int3 = TSymbolUniqueId(3503); - static constexpr const TSymbolUniqueId findLSB_Int4 = TSymbolUniqueId(3504); - static constexpr const TSymbolUniqueId findLSB_UInt1 = TSymbolUniqueId(3505); - static constexpr const TSymbolUniqueId findLSB_UInt2 = TSymbolUniqueId(3506); - static constexpr const TSymbolUniqueId findLSB_UInt3 = TSymbolUniqueId(3507); - static constexpr const TSymbolUniqueId findLSB_UInt4 = TSymbolUniqueId(3508); - static constexpr const TSymbolUniqueId findMSB_Int1 = TSymbolUniqueId(3509); - static constexpr const TSymbolUniqueId findMSB_Int2 = TSymbolUniqueId(3510); - static constexpr const TSymbolUniqueId findMSB_Int3 = TSymbolUniqueId(3511); - static constexpr const TSymbolUniqueId findMSB_Int4 = TSymbolUniqueId(3512); - static constexpr const TSymbolUniqueId findMSB_UInt1 = TSymbolUniqueId(3513); - static constexpr const TSymbolUniqueId findMSB_UInt2 = TSymbolUniqueId(3514); - static constexpr const TSymbolUniqueId findMSB_UInt3 = TSymbolUniqueId(3515); - static constexpr const TSymbolUniqueId findMSB_UInt4 = TSymbolUniqueId(3516); - static constexpr const TSymbolUniqueId uaddCarry_UInt1_UInt1_UInt1 = TSymbolUniqueId(3517); - static constexpr const TSymbolUniqueId pt_o_00E = TSymbolUniqueId(3518); - static constexpr const TSymbolUniqueId uaddCarry_UInt2_UInt2_UInt2 = TSymbolUniqueId(3519); - static constexpr const TSymbolUniqueId pt_o_10E = TSymbolUniqueId(3520); - static constexpr const TSymbolUniqueId uaddCarry_UInt3_UInt3_UInt3 = TSymbolUniqueId(3521); - static constexpr const TSymbolUniqueId pt_o_20E = TSymbolUniqueId(3522); - static constexpr const TSymbolUniqueId uaddCarry_UInt4_UInt4_UInt4 = TSymbolUniqueId(3523); - static constexpr const TSymbolUniqueId pt_o_30E = TSymbolUniqueId(3524); - static constexpr const TSymbolUniqueId usubBorrow_UInt1_UInt1_UInt1 = TSymbolUniqueId(3525); - static constexpr const TSymbolUniqueId usubBorrow_UInt2_UInt2_UInt2 = TSymbolUniqueId(3526); - static constexpr const TSymbolUniqueId usubBorrow_UInt3_UInt3_UInt3 = TSymbolUniqueId(3527); - static constexpr const TSymbolUniqueId usubBorrow_UInt4_UInt4_UInt4 = TSymbolUniqueId(3528); + TSymbolUniqueId(3537); + static constexpr const TSymbolUniqueId bitfieldReverse_Int1 = TSymbolUniqueId(3538); + static constexpr const TSymbolUniqueId bitfieldReverse_Int2 = TSymbolUniqueId(3539); + static constexpr const TSymbolUniqueId bitfieldReverse_Int3 = TSymbolUniqueId(3540); + static constexpr const TSymbolUniqueId bitfieldReverse_Int4 = TSymbolUniqueId(3541); + static constexpr const TSymbolUniqueId bitfieldReverse_UInt1 = TSymbolUniqueId(3542); + static constexpr const TSymbolUniqueId bitfieldReverse_UInt2 = TSymbolUniqueId(3543); + static constexpr const TSymbolUniqueId bitfieldReverse_UInt3 = TSymbolUniqueId(3544); + static constexpr const TSymbolUniqueId bitfieldReverse_UInt4 = TSymbolUniqueId(3545); + static constexpr const TSymbolUniqueId bitCount_Int1 = TSymbolUniqueId(3546); + static constexpr const TSymbolUniqueId bitCount_Int2 = TSymbolUniqueId(3547); + static constexpr const TSymbolUniqueId bitCount_Int3 = TSymbolUniqueId(3548); + static constexpr const TSymbolUniqueId bitCount_Int4 = TSymbolUniqueId(3549); + static constexpr const TSymbolUniqueId bitCount_UInt1 = TSymbolUniqueId(3550); + static constexpr const TSymbolUniqueId bitCount_UInt2 = TSymbolUniqueId(3551); + static constexpr const TSymbolUniqueId bitCount_UInt3 = TSymbolUniqueId(3552); + static constexpr const TSymbolUniqueId bitCount_UInt4 = TSymbolUniqueId(3553); + static constexpr const TSymbolUniqueId findLSB_Int1 = TSymbolUniqueId(3554); + static constexpr const TSymbolUniqueId findLSB_Int2 = TSymbolUniqueId(3555); + static constexpr const TSymbolUniqueId findLSB_Int3 = TSymbolUniqueId(3556); + static constexpr const TSymbolUniqueId findLSB_Int4 = TSymbolUniqueId(3557); + static constexpr const TSymbolUniqueId findLSB_UInt1 = TSymbolUniqueId(3558); + static constexpr const TSymbolUniqueId findLSB_UInt2 = TSymbolUniqueId(3559); + static constexpr const TSymbolUniqueId findLSB_UInt3 = TSymbolUniqueId(3560); + static constexpr const TSymbolUniqueId findLSB_UInt4 = TSymbolUniqueId(3561); + static constexpr const TSymbolUniqueId findMSB_Int1 = TSymbolUniqueId(3562); + static constexpr const TSymbolUniqueId findMSB_Int2 = TSymbolUniqueId(3563); + static constexpr const TSymbolUniqueId findMSB_Int3 = TSymbolUniqueId(3564); + static constexpr const TSymbolUniqueId findMSB_Int4 = TSymbolUniqueId(3565); + static constexpr const TSymbolUniqueId findMSB_UInt1 = TSymbolUniqueId(3566); + static constexpr const TSymbolUniqueId findMSB_UInt2 = TSymbolUniqueId(3567); + static constexpr const TSymbolUniqueId findMSB_UInt3 = TSymbolUniqueId(3568); + static constexpr const TSymbolUniqueId findMSB_UInt4 = TSymbolUniqueId(3569); + static constexpr const TSymbolUniqueId uaddCarry_UInt1_UInt1_UInt1 = TSymbolUniqueId(3570); + static constexpr const TSymbolUniqueId pt_o_00E = TSymbolUniqueId(3571); + static constexpr const TSymbolUniqueId uaddCarry_UInt2_UInt2_UInt2 = TSymbolUniqueId(3572); + static constexpr const TSymbolUniqueId pt_o_10E = TSymbolUniqueId(3573); + static constexpr const TSymbolUniqueId uaddCarry_UInt3_UInt3_UInt3 = TSymbolUniqueId(3574); + static constexpr const TSymbolUniqueId pt_o_20E = TSymbolUniqueId(3575); + static constexpr const TSymbolUniqueId uaddCarry_UInt4_UInt4_UInt4 = TSymbolUniqueId(3576); + static constexpr const TSymbolUniqueId pt_o_30E = TSymbolUniqueId(3577); + static constexpr const TSymbolUniqueId usubBorrow_UInt1_UInt1_UInt1 = TSymbolUniqueId(3578); + static constexpr const TSymbolUniqueId usubBorrow_UInt2_UInt2_UInt2 = TSymbolUniqueId(3579); + static constexpr const TSymbolUniqueId usubBorrow_UInt3_UInt3_UInt3 = TSymbolUniqueId(3580); + static constexpr const TSymbolUniqueId usubBorrow_UInt4_UInt4_UInt4 = TSymbolUniqueId(3581); static constexpr const TSymbolUniqueId umulExtended_UInt1_UInt1_UInt1_UInt1 = - TSymbolUniqueId(3529); + TSymbolUniqueId(3582); static constexpr const TSymbolUniqueId umulExtended_UInt2_UInt2_UInt2_UInt2 = - TSymbolUniqueId(3530); + TSymbolUniqueId(3583); static constexpr const TSymbolUniqueId umulExtended_UInt3_UInt3_UInt3_UInt3 = - TSymbolUniqueId(3531); + TSymbolUniqueId(3584); static constexpr const TSymbolUniqueId umulExtended_UInt4_UInt4_UInt4_UInt4 = - TSymbolUniqueId(3532); - static constexpr const TSymbolUniqueId imulExtended_Int1_Int1_Int1_Int1 = TSymbolUniqueId(3533); - static constexpr const TSymbolUniqueId imulExtended_Int2_Int2_Int2_Int2 = TSymbolUniqueId(3534); - static constexpr const TSymbolUniqueId imulExtended_Int3_Int3_Int3_Int3 = TSymbolUniqueId(3535); - static constexpr const TSymbolUniqueId imulExtended_Int4_Int4_Int4_Int4 = TSymbolUniqueId(3536); - static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2 = TSymbolUniqueId(3537); - static constexpr const TSymbolUniqueId pt00I = TSymbolUniqueId(3538); - static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3 = TSymbolUniqueId(3539); - static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4 = TSymbolUniqueId(3540); - static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3 = TSymbolUniqueId(3541); - static constexpr const TSymbolUniqueId pt00K = TSymbolUniqueId(3542); + TSymbolUniqueId(3585); + static constexpr const TSymbolUniqueId imulExtended_Int1_Int1_Int1_Int1 = TSymbolUniqueId(3586); + static constexpr const TSymbolUniqueId imulExtended_Int2_Int2_Int2_Int2 = TSymbolUniqueId(3587); + static constexpr const TSymbolUniqueId imulExtended_Int3_Int3_Int3_Int3 = TSymbolUniqueId(3588); + static constexpr const TSymbolUniqueId imulExtended_Int4_Int4_Int4_Int4 = TSymbolUniqueId(3589); + static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2 = TSymbolUniqueId(3590); + static constexpr const TSymbolUniqueId pt00I = TSymbolUniqueId(3591); + static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3 = TSymbolUniqueId(3592); + static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4 = TSymbolUniqueId(3593); + static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3 = TSymbolUniqueId(3594); + static constexpr const TSymbolUniqueId pt00K = TSymbolUniqueId(3595); + static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3 = TSymbolUniqueId(3596); + static constexpr const TSymbolUniqueId pt00J = TSymbolUniqueId(3597); + static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4 = TSymbolUniqueId(3598); + static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 = + TSymbolUniqueId(3599); + static constexpr const TSymbolUniqueId pt00d = TSymbolUniqueId(3600); + static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 = + TSymbolUniqueId(3601); static constexpr const TSymbolUniqueId texture2D_SamplerExternalOES1_Float2 = - TSymbolUniqueId(3543); - static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(3544); + TSymbolUniqueId(3602); + static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(3603); static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float3 = - TSymbolUniqueId(3545); + TSymbolUniqueId(3604); static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float4 = - TSymbolUniqueId(3546); + TSymbolUniqueId(3605); static constexpr const TSymbolUniqueId texture2DRect_Sampler2DRect1_Float2 = - TSymbolUniqueId(3547); - static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(3548); + TSymbolUniqueId(3606); + static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(3607); static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float3 = - TSymbolUniqueId(3549); + TSymbolUniqueId(3608); static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float4 = - TSymbolUniqueId(3550); - static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(3551); - static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 = - TSymbolUniqueId(3552); - static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 = - TSymbolUniqueId(3553); + TSymbolUniqueId(3609); static constexpr const TSymbolUniqueId texture2DGradEXT_Sampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(3554); + TSymbolUniqueId(3610); static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2 = - TSymbolUniqueId(3555); + TSymbolUniqueId(3611); static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 = - TSymbolUniqueId(3556); + TSymbolUniqueId(3612); static constexpr const TSymbolUniqueId textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(3557); + TSymbolUniqueId(3613); + static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 = + TSymbolUniqueId(3614); + static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(3615); static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(3558); + TSymbolUniqueId(3616); static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(3559); + TSymbolUniqueId(3617); static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(3560); + TSymbolUniqueId(3618); static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(3561); - static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(3562); - static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(3563); - static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(3564); - static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(3565); - static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(3566); - static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(3567); - static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(3568); - static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(3569); - static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(3570); - static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(3571); - static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(3572); - static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(3573); - static constexpr const TSymbolUniqueId texture2DLodEXT_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(3574); - static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(3575); - static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(3576); - static constexpr const TSymbolUniqueId textureCubeLodEXT_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(3577); - static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 = - TSymbolUniqueId(3578); - static constexpr const TSymbolUniqueId pt00d = TSymbolUniqueId(3579); - static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 = - TSymbolUniqueId(3580); - static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3 = TSymbolUniqueId(3581); - static constexpr const TSymbolUniqueId pt00J = TSymbolUniqueId(3582); - static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4 = TSymbolUniqueId(3583); + TSymbolUniqueId(3619); static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3_Float1 = - TSymbolUniqueId(3584); + TSymbolUniqueId(3620); static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(3585); + TSymbolUniqueId(3621); static constexpr const TSymbolUniqueId texture3DLod_Sampler3D1_Float3_Float1 = - TSymbolUniqueId(3586); + TSymbolUniqueId(3622); static constexpr const TSymbolUniqueId texture3DProjLod_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(3587); + TSymbolUniqueId(3623); static constexpr const TSymbolUniqueId texture2DLod_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(3588); + TSymbolUniqueId(3624); static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(3589); + TSymbolUniqueId(3625); static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(3590); + TSymbolUniqueId(3626); static constexpr const TSymbolUniqueId textureCubeLod_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(3591); - static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(3592); - static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(3593); - static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(3594); - static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(3595); - static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(3596); - static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(3597); - static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(3598); - static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(3599); - static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(3600); - static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(3601); - static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(3602); - static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(3603); - static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(3604); - static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(3605); - static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(3606); - static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(3607); - static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(3608); - static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(3609); - static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(3610); - static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(3611); - static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(3612); - static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(3613); - static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 = - TSymbolUniqueId(3614); - static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(3615); - static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4 = - TSymbolUniqueId(3616); - static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(3617); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(3618); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(3619); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(3620); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(3621); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(3622); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(3623); - static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(3624); - static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(3625); - static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(3626); - static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4 = TSymbolUniqueId(3627); - static constexpr const TSymbolUniqueId textureLod_Sampler2D1_Float2_Float1 = + static constexpr const TSymbolUniqueId texture2DLodEXT_Sampler2D1_Float2_Float1 = TSymbolUniqueId(3628); - static constexpr const TSymbolUniqueId textureLod_ISampler2D1_Float2_Float1 = + static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float3_Float1 = TSymbolUniqueId(3629); - static constexpr const TSymbolUniqueId textureLod_USampler2D1_Float2_Float1 = + static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float4_Float1 = TSymbolUniqueId(3630); - static constexpr const TSymbolUniqueId textureLod_Sampler3D1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureCubeLodEXT_SamplerCube1_Float3_Float1 = TSymbolUniqueId(3631); - static constexpr const TSymbolUniqueId textureLod_ISampler3D1_Float3_Float1 = - TSymbolUniqueId(3632); - static constexpr const TSymbolUniqueId textureLod_USampler3D1_Float3_Float1 = - TSymbolUniqueId(3633); - static constexpr const TSymbolUniqueId textureLod_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(3634); - static constexpr const TSymbolUniqueId textureLod_ISamplerCube1_Float3_Float1 = - TSymbolUniqueId(3635); - static constexpr const TSymbolUniqueId textureLod_USamplerCube1_Float3_Float1 = - TSymbolUniqueId(3636); - static constexpr const TSymbolUniqueId textureLod_Sampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3637); - static constexpr const TSymbolUniqueId textureLod_ISampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3638); - static constexpr const TSymbolUniqueId textureLod_USampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3639); - static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 = - TSymbolUniqueId(3640); - static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(3641); - static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(3642); - static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(3643); - static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(3644); - static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(3645); - static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(3646); - static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(3647); - static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(3648); - static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(3649); - static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(3650); - static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 = - TSymbolUniqueId(3651); - static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 = - TSymbolUniqueId(3652); - static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 = - TSymbolUniqueId(3653); - static constexpr const TSymbolUniqueId textureSize_SamplerCubeShadow1_Int1 = + static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(3632); + static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(3633); + static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(3634); + static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(3635); + static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(3636); + static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(3637); + static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(3638); + static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(3639); + static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(3640); + static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(3641); + static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(3642); + static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(3643); + static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(3644); + static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(3645); + static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(3646); + static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(3647); + static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(3648); + static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(3649); + static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(3650); + static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(3651); + static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(3652); + static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(3653); + static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 = TSymbolUniqueId(3654); - static constexpr const TSymbolUniqueId textureSize_Sampler2DArrayShadow1_Int1 = - TSymbolUniqueId(3655); - static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float3_Float1 = + static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(3655); + static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4 = TSymbolUniqueId(3656); - static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float3_Float1 = - TSymbolUniqueId(3657); - static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float3_Float1 = - TSymbolUniqueId(3658); - static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(3659); - static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float4_Float1 = + static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(3657); + static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(3658); + static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(3659); + static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 = TSymbolUniqueId(3660); - static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float4_Float1 = - TSymbolUniqueId(3661); - static constexpr const TSymbolUniqueId textureProjLod_Sampler3D1_Float4_Float1 = + static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(3661); + static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 = TSymbolUniqueId(3662); - static constexpr const TSymbolUniqueId textureProjLod_ISampler3D1_Float4_Float1 = - TSymbolUniqueId(3663); - static constexpr const TSymbolUniqueId textureProjLod_USampler3D1_Float4_Float1 = + static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(3663); + static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 = TSymbolUniqueId(3664); - static constexpr const TSymbolUniqueId textureProjLod_Sampler2DShadow1_Float4_Float1 = - TSymbolUniqueId(3665); - static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(3666); - static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(3667); - static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(3668); - static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(3669); - static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(3670); - static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(3671); - static constexpr const TSymbolUniqueId texelFetch_Sampler2DArray1_Int3_Int1 = - TSymbolUniqueId(3672); - static constexpr const TSymbolUniqueId texelFetch_ISampler2DArray1_Int3_Int1 = - TSymbolUniqueId(3673); - static constexpr const TSymbolUniqueId texelFetch_USampler2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(3665); + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4 = + TSymbolUniqueId(3666); + static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4 = + TSymbolUniqueId(3667); + static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4 = + TSymbolUniqueId(3668); + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(3669); + static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 = + TSymbolUniqueId(3670); + static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 = + TSymbolUniqueId(3671); + static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(3672); + static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(3673); + static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 = TSymbolUniqueId(3674); - static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(3675); - static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(3676); - static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(3677); - static constexpr const TSymbolUniqueId textureGrad_Sampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(3678); - static constexpr const TSymbolUniqueId textureGrad_ISampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(3679); - static constexpr const TSymbolUniqueId textureGrad_USampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(3680); - static constexpr const TSymbolUniqueId textureGrad_SamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(3681); - static constexpr const TSymbolUniqueId textureGrad_ISamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(3682); - static constexpr const TSymbolUniqueId textureGrad_USamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(3683); - static constexpr const TSymbolUniqueId textureGrad_Sampler2DShadow1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(3675); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(3676); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(3677); + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(3678); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(3679); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(3680); + static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(3681); + static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(3682); + static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(3683); + static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4 = TSymbolUniqueId(3684); - static constexpr const TSymbolUniqueId textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 = + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 = TSymbolUniqueId(3685); - static constexpr const TSymbolUniqueId textureGrad_Sampler2DArray1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 = TSymbolUniqueId(3686); - static constexpr const TSymbolUniqueId textureGrad_ISampler2DArray1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 = TSymbolUniqueId(3687); - static constexpr const TSymbolUniqueId textureGrad_USampler2DArray1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 = TSymbolUniqueId(3688); - static constexpr const TSymbolUniqueId textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 = TSymbolUniqueId(3689); - static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 = TSymbolUniqueId(3690); - static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_Sampler2D1_Float2_Float1 = TSymbolUniqueId(3691); - static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float3_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_ISampler2D1_Float2_Float1 = TSymbolUniqueId(3692); - static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_USampler2D1_Float2_Float1 = TSymbolUniqueId(3693); - static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_Sampler3D1_Float3_Float1 = TSymbolUniqueId(3694); - static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_ISampler3D1_Float3_Float1 = TSymbolUniqueId(3695); - static constexpr const TSymbolUniqueId textureProjGrad_Sampler3D1_Float4_Float3_Float3 = + static constexpr const TSymbolUniqueId textureLod_USampler3D1_Float3_Float1 = TSymbolUniqueId(3696); - static constexpr const TSymbolUniqueId textureProjGrad_ISampler3D1_Float4_Float3_Float3 = + static constexpr const TSymbolUniqueId textureLod_SamplerCube1_Float3_Float1 = TSymbolUniqueId(3697); - static constexpr const TSymbolUniqueId textureProjGrad_USampler3D1_Float4_Float3_Float3 = + static constexpr const TSymbolUniqueId textureLod_ISamplerCube1_Float3_Float1 = TSymbolUniqueId(3698); - static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureLod_USamplerCube1_Float3_Float1 = TSymbolUniqueId(3699); - static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(3700); - static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(3701); - static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(3702); - static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(3703); - static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(3704); - static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(3705); - static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(3706); - static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(3707); - static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(3708); - static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(3709); - static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(3710); - static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 = - TSymbolUniqueId(3711); - static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(3712); - static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 = - TSymbolUniqueId(3713); - static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(3714); - static constexpr const TSymbolUniqueId textureSize_SamplerCubeArray1_Int1 = - TSymbolUniqueId(3715); - static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(3716); - static constexpr const TSymbolUniqueId textureSize_ISamplerCubeArray1_Int1 = - TSymbolUniqueId(3717); - static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(3718); - static constexpr const TSymbolUniqueId textureSize_USamplerCubeArray1_Int1 = - TSymbolUniqueId(3719); - static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(3720); - static constexpr const TSymbolUniqueId textureSize_SamplerCubeArrayShadow1_Int1 = - TSymbolUniqueId(3721); - static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(3722); - static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(3723); - static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 = - TSymbolUniqueId(3724); - static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 = - TSymbolUniqueId(3725); - static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(3726); - static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(3727); - static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(3728); - static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 = - TSymbolUniqueId(3729); + static constexpr const TSymbolUniqueId textureLod_Sampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3700); + static constexpr const TSymbolUniqueId textureLod_ISampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3701); + static constexpr const TSymbolUniqueId textureLod_USampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3702); + static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 = + TSymbolUniqueId(3703); static constexpr const TSymbolUniqueId textureLod_SamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(3730); + TSymbolUniqueId(3704); static constexpr const TSymbolUniqueId textureLod_ISamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(3731); + TSymbolUniqueId(3705); static constexpr const TSymbolUniqueId textureLod_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3706); + static constexpr const TSymbolUniqueId textureLodExt_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3707); + static constexpr const TSymbolUniqueId textureLodExt_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3708); + static constexpr const TSymbolUniqueId textureLodExt_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3709); + static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(3710); + static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(3711); + static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(3712); + static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(3713); + static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(3714); + static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(3715); + static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(3716); + static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(3717); + static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(3718); + static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(3719); + static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 = + TSymbolUniqueId(3720); + static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 = + TSymbolUniqueId(3721); + static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 = + TSymbolUniqueId(3722); + static constexpr const TSymbolUniqueId textureSize_SamplerCubeShadow1_Int1 = + TSymbolUniqueId(3723); + static constexpr const TSymbolUniqueId textureSize_Sampler2DArrayShadow1_Int1 = + TSymbolUniqueId(3724); + static constexpr const TSymbolUniqueId textureSize_SamplerCubeArray1_Int1 = + TSymbolUniqueId(3725); + static constexpr const TSymbolUniqueId textureSize_ISamplerCubeArray1_Int1 = + TSymbolUniqueId(3726); + static constexpr const TSymbolUniqueId textureSize_USamplerCubeArray1_Int1 = + TSymbolUniqueId(3727); + static constexpr const TSymbolUniqueId textureSize_SamplerCubeArrayShadow1_Int1 = + TSymbolUniqueId(3728); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArray1_Int1 = + TSymbolUniqueId(3729); + static constexpr const TSymbolUniqueId textureSizeExt_ISamplerCubeArray1_Int1 = + TSymbolUniqueId(3730); + static constexpr const TSymbolUniqueId textureSizeExt_USamplerCubeArray1_Int1 = + TSymbolUniqueId(3731); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArrayShadow1_Int1 = TSymbolUniqueId(3732); - static constexpr const TSymbolUniqueId textureGrad_SamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(3733); - static constexpr const TSymbolUniqueId textureGrad_ISamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(3734); - static constexpr const TSymbolUniqueId textureGrad_USamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(3735); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 = - TSymbolUniqueId(3736); - static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 = - TSymbolUniqueId(3737); - static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 = - TSymbolUniqueId(3738); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(3739); - static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(3740); - static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(3741); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 = - TSymbolUniqueId(3742); - static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(3743); - static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(3744); - static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(3745); - static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(3746); - static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(3747); - static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(3748); - static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(3749); - static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(3750); - static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(3751); - static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = - TSymbolUniqueId(3752); - static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 = + static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(3733); + static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(3734); + static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(3735); + static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(3736); + static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(3737); + static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(3738); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerBuffer1 = TSymbolUniqueId(3739); + static constexpr const TSymbolUniqueId textureSizeExt_ISamplerBuffer1 = TSymbolUniqueId(3740); + static constexpr const TSymbolUniqueId textureSizeExt_USamplerBuffer1 = TSymbolUniqueId(3741); + static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(3742); + static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(3743); + static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(3744); + static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(3745); + static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(3746); + static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(3747); + static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(3748); + static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(3749); + static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(3750); + static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(3751); + static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(3752); + static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 = TSymbolUniqueId(3753); - static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 = - TSymbolUniqueId(3754); - static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 = + static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(3754); + static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 = TSymbolUniqueId(3755); - static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 = - TSymbolUniqueId(3756); - static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 = + static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(3756); + static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 = TSymbolUniqueId(3757); - static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 = TSymbolUniqueId(3758); - static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float3_Float1 = TSymbolUniqueId(3759); - static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float3_Float1 = TSymbolUniqueId(3760); - static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(3761); - static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float3_Float1 = + TSymbolUniqueId(3761); + static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float4_Float1 = TSymbolUniqueId(3762); - static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float4_Float1 = TSymbolUniqueId(3763); - static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(3764); - static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float4_Float1 = + TSymbolUniqueId(3764); + static constexpr const TSymbolUniqueId textureProjLod_Sampler3D1_Float4_Float1 = TSymbolUniqueId(3765); - static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_ISampler3D1_Float4_Float1 = TSymbolUniqueId(3766); - static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_USampler3D1_Float4_Float1 = TSymbolUniqueId(3767); - static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProjLod_Sampler2DShadow1_Float4_Float1 = TSymbolUniqueId(3768); - static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 = - TSymbolUniqueId(3769); - static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3770); - static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3771); - static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 = - TSymbolUniqueId(3772); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(3773); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 = - TSymbolUniqueId(3774); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 = + static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(3769); + static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(3770); + static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(3771); + static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(3772); + static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(3773); + static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(3774); + static constexpr const TSymbolUniqueId texelFetch_Sampler2DArray1_Int3_Int1 = TSymbolUniqueId(3775); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetch_ISampler2DArray1_Int3_Int1 = TSymbolUniqueId(3776); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetch_USampler2DArray1_Int3_Int1 = TSymbolUniqueId(3777); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 = - TSymbolUniqueId(3778); - static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(3779); - static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 = - TSymbolUniqueId(3780); - static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(3778); + static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(3779); + static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(3780); + static constexpr const TSymbolUniqueId texelFetchExt_SamplerBuffer1_Int1 = TSymbolUniqueId(3781); - static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId texelFetchExt_ISamplerBuffer1_Int1 = TSymbolUniqueId(3782); - static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetchExt_USamplerBuffer1_Int1 = TSymbolUniqueId(3783); - static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(3784); - static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 = + static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 = TSymbolUniqueId(3785); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 = + static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 = TSymbolUniqueId(3786); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 = + static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(3787); - static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 = + static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 = TSymbolUniqueId(3788); - static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(3789); - static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 = + static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 = + TSymbolUniqueId(3789); + static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 = TSymbolUniqueId(3790); + static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(3791); + static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(3792); + static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 = + TSymbolUniqueId(3793); + static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 = + TSymbolUniqueId(3794); + static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float2_Float2_Float2 = + TSymbolUniqueId(3795); + static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float2_Float2_Float2 = + TSymbolUniqueId(3796); + static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float2_Float2_Float2 = + TSymbolUniqueId(3797); + static constexpr const TSymbolUniqueId textureGrad_Sampler3D1_Float3_Float3_Float3 = + TSymbolUniqueId(3798); + static constexpr const TSymbolUniqueId textureGrad_ISampler3D1_Float3_Float3_Float3 = + TSymbolUniqueId(3799); + static constexpr const TSymbolUniqueId textureGrad_USampler3D1_Float3_Float3_Float3 = + TSymbolUniqueId(3800); + static constexpr const TSymbolUniqueId textureGrad_SamplerCube1_Float3_Float3_Float3 = + TSymbolUniqueId(3801); + static constexpr const TSymbolUniqueId textureGrad_ISamplerCube1_Float3_Float3_Float3 = + TSymbolUniqueId(3802); + static constexpr const TSymbolUniqueId textureGrad_USamplerCube1_Float3_Float3_Float3 = + TSymbolUniqueId(3803); + static constexpr const TSymbolUniqueId textureGrad_Sampler2DShadow1_Float3_Float2_Float2 = + TSymbolUniqueId(3804); + static constexpr const TSymbolUniqueId textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 = + TSymbolUniqueId(3805); + static constexpr const TSymbolUniqueId textureGrad_Sampler2DArray1_Float3_Float2_Float2 = + TSymbolUniqueId(3806); + static constexpr const TSymbolUniqueId textureGrad_ISampler2DArray1_Float3_Float2_Float2 = + TSymbolUniqueId(3807); + static constexpr const TSymbolUniqueId textureGrad_USampler2DArray1_Float3_Float2_Float2 = + TSymbolUniqueId(3808); + static constexpr const TSymbolUniqueId textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 = + TSymbolUniqueId(3809); + static constexpr const TSymbolUniqueId textureGrad_SamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3810); + static constexpr const TSymbolUniqueId textureGrad_ISamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3811); + static constexpr const TSymbolUniqueId textureGrad_USamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3812); + static constexpr const TSymbolUniqueId textureGradExt_SamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3813); + static constexpr const TSymbolUniqueId textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3814); + static constexpr const TSymbolUniqueId textureGradExt_USamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(3815); + static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float3_Float2_Float2 = + TSymbolUniqueId(3816); + static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float3_Float2_Float2 = + TSymbolUniqueId(3817); + static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float3_Float2_Float2 = + TSymbolUniqueId(3818); + static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float4_Float2_Float2 = + TSymbolUniqueId(3819); + static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float4_Float2_Float2 = + TSymbolUniqueId(3820); + static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float4_Float2_Float2 = + TSymbolUniqueId(3821); + static constexpr const TSymbolUniqueId textureProjGrad_Sampler3D1_Float4_Float3_Float3 = + TSymbolUniqueId(3822); + static constexpr const TSymbolUniqueId textureProjGrad_ISampler3D1_Float4_Float3_Float3 = + TSymbolUniqueId(3823); + static constexpr const TSymbolUniqueId textureProjGrad_USampler3D1_Float4_Float3_Float3 = + TSymbolUniqueId(3824); + static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 = + TSymbolUniqueId(3825); + static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(3826); + static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 = + TSymbolUniqueId(3827); + static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 = + TSymbolUniqueId(3828); + static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(3829); + static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 = + TSymbolUniqueId(3830); + static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 = + TSymbolUniqueId(3831); + static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 = + TSymbolUniqueId(3832); + static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 = + TSymbolUniqueId(3833); + static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 = + TSymbolUniqueId(3834); + static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3835); + static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3836); + static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 = + TSymbolUniqueId(3837); + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 = + TSymbolUniqueId(3838); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 = + TSymbolUniqueId(3839); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 = + TSymbolUniqueId(3840); + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 = + TSymbolUniqueId(3841); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 = + TSymbolUniqueId(3842); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 = + TSymbolUniqueId(3843); + static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 = + TSymbolUniqueId(3844); + static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 = + TSymbolUniqueId(3845); + static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 = + TSymbolUniqueId(3846); + static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 = + TSymbolUniqueId(3847); + static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 = + TSymbolUniqueId(3848); + static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 = + TSymbolUniqueId(3849); + static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3850); + static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3851); + static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3852); + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3853); + static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3854); + static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(3855); + static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 = + TSymbolUniqueId(3856); + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 = + TSymbolUniqueId(3857); + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 = + TSymbolUniqueId(3858); + static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 = + TSymbolUniqueId(3859); + static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 = + TSymbolUniqueId(3860); static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 = - TSymbolUniqueId(3791); + TSymbolUniqueId(3861); static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 = - TSymbolUniqueId(3792); + TSymbolUniqueId(3862); static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 = - TSymbolUniqueId(3793); + TSymbolUniqueId(3863); static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 = - TSymbolUniqueId(3794); + TSymbolUniqueId(3864); static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 = - TSymbolUniqueId(3795); + TSymbolUniqueId(3865); static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 = - TSymbolUniqueId(3796); + TSymbolUniqueId(3866); static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 = - TSymbolUniqueId(3797); + TSymbolUniqueId(3867); static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 = - TSymbolUniqueId(3798); + TSymbolUniqueId(3868); static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3799); + TSymbolUniqueId(3869); static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3800); + TSymbolUniqueId(3870); static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3801); + TSymbolUniqueId(3871); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 = - TSymbolUniqueId(3802); + TSymbolUniqueId(3872); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 = - TSymbolUniqueId(3803); + TSymbolUniqueId(3873); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 = - TSymbolUniqueId(3804); + TSymbolUniqueId(3874); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 = - TSymbolUniqueId(3805); + TSymbolUniqueId(3875); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 = - TSymbolUniqueId(3806); + TSymbolUniqueId(3876); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 = - TSymbolUniqueId(3807); + TSymbolUniqueId(3877); static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 = - TSymbolUniqueId(3808); + TSymbolUniqueId(3878); static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 = - TSymbolUniqueId(3809); + TSymbolUniqueId(3879); static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 = - TSymbolUniqueId(3810); + TSymbolUniqueId(3880); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 = - TSymbolUniqueId(3811); + TSymbolUniqueId(3881); static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 = - TSymbolUniqueId(3812); + TSymbolUniqueId(3882); static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 = - TSymbolUniqueId(3813); + TSymbolUniqueId(3883); static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 = - TSymbolUniqueId(3814); + TSymbolUniqueId(3884); static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 = - TSymbolUniqueId(3815); + TSymbolUniqueId(3885); static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 = - TSymbolUniqueId(3816); + TSymbolUniqueId(3886); static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 = - TSymbolUniqueId(3817); + TSymbolUniqueId(3887); static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 = - TSymbolUniqueId(3818); + TSymbolUniqueId(3888); static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 = - TSymbolUniqueId(3819); + TSymbolUniqueId(3889); static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 = - TSymbolUniqueId(3820); + TSymbolUniqueId(3890); static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 = - TSymbolUniqueId(3821); + TSymbolUniqueId(3891); static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 = - TSymbolUniqueId(3822); + TSymbolUniqueId(3892); static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 = - TSymbolUniqueId(3823); + TSymbolUniqueId(3893); static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 = - TSymbolUniqueId(3824); + TSymbolUniqueId(3894); static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 = - TSymbolUniqueId(3825); + TSymbolUniqueId(3895); static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 = - TSymbolUniqueId(3826); + TSymbolUniqueId(3896); static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 = - TSymbolUniqueId(3827); + TSymbolUniqueId(3897); static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 = - TSymbolUniqueId(3828); + TSymbolUniqueId(3898); static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 = - TSymbolUniqueId(3829); + TSymbolUniqueId(3899); static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 = - TSymbolUniqueId(3830); - static constexpr const TSymbolUniqueId - textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(3831); - static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(3832); - static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(3833); - static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(3834); - static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(3835); - static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(3836); - static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(3837); - static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(3838); - static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(3839); - static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(3840); - static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(3841); - static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(3842); - static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(3843); - static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(3844); - static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(3845); - static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(3846); - static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3847); - static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3848); - static constexpr const TSymbolUniqueId - textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3849); + TSymbolUniqueId(3900); static constexpr const TSymbolUniqueId - textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3850); - static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3851); - static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3852); + textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(3901); + static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 = + TSymbolUniqueId(3902); + static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 = + TSymbolUniqueId(3903); + static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 = + TSymbolUniqueId(3904); + static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 = + TSymbolUniqueId(3905); + static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 = + TSymbolUniqueId(3906); + static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 = + TSymbolUniqueId(3907); + static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 = + TSymbolUniqueId(3908); + static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 = + TSymbolUniqueId(3909); + static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 = + TSymbolUniqueId(3910); + static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 = + TSymbolUniqueId(3911); + static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 = + TSymbolUniqueId(3912); + static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 = + TSymbolUniqueId(3913); + static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 = + TSymbolUniqueId(3914); + static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 = + TSymbolUniqueId(3915); + static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 = + TSymbolUniqueId(3916); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3853); - static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3854); - static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3855); - static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3856); + textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3917); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3857); + textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3918); + static constexpr const TSymbolUniqueId + textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3919); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3858); + textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3920); + static constexpr const TSymbolUniqueId + textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3921); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3859); + textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3922); + static constexpr const TSymbolUniqueId + textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3923); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3860); + textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3924); + static constexpr const TSymbolUniqueId + textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3925); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3861); + textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3926); + static constexpr const TSymbolUniqueId + textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3927); + static constexpr const TSymbolUniqueId + textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3928); + static constexpr const TSymbolUniqueId + textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3929); + static constexpr const TSymbolUniqueId + textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3930); + static constexpr const TSymbolUniqueId + textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3931); static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(3862); + TSymbolUniqueId(3932); static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(3863); + TSymbolUniqueId(3933); static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(3864); + TSymbolUniqueId(3934); static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(3865); + TSymbolUniqueId(3935); static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(3866); + TSymbolUniqueId(3936); static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(3867); + TSymbolUniqueId(3937); static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 = - TSymbolUniqueId(3868); + TSymbolUniqueId(3938); static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(3869); + TSymbolUniqueId(3939); static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(3870); + TSymbolUniqueId(3940); static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(3871); + TSymbolUniqueId(3941); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(3872); + TSymbolUniqueId(3942); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(3873); + TSymbolUniqueId(3943); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(3874); + TSymbolUniqueId(3944); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(3875); + TSymbolUniqueId(3945); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(3876); + TSymbolUniqueId(3946); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(3877); + TSymbolUniqueId(3947); static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(3878); + TSymbolUniqueId(3948); static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(3879); + TSymbolUniqueId(3949); static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(3880); + TSymbolUniqueId(3950); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 = - TSymbolUniqueId(3881); - static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 = - TSymbolUniqueId(3882); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 = - TSymbolUniqueId(3883); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 = - TSymbolUniqueId(3884); - static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 = - TSymbolUniqueId(3885); - static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 = - TSymbolUniqueId(3886); - static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 = - TSymbolUniqueId(3887); - static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 = - TSymbolUniqueId(3888); - static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 = - TSymbolUniqueId(3889); - static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 = - TSymbolUniqueId(3890); - static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(3891); - static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 = - TSymbolUniqueId(3892); - static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 = - TSymbolUniqueId(3893); - static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 = - TSymbolUniqueId(3894); - static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(3895); - static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(3896); - static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(3897); + TSymbolUniqueId(3951); + static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(3952); + static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(3953); + static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(3954); static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 = - TSymbolUniqueId(3898); + TSymbolUniqueId(3955); static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 = - TSymbolUniqueId(3899); + TSymbolUniqueId(3956); static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 = - TSymbolUniqueId(3900); + TSymbolUniqueId(3957); static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 = - TSymbolUniqueId(3901); + TSymbolUniqueId(3958); static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 = - TSymbolUniqueId(3902); + TSymbolUniqueId(3959); static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 = - TSymbolUniqueId(3903); + TSymbolUniqueId(3960); static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 = - TSymbolUniqueId(3904); + TSymbolUniqueId(3961); static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 = - TSymbolUniqueId(3905); + TSymbolUniqueId(3962); static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 = - TSymbolUniqueId(3906); + TSymbolUniqueId(3963); static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 = - TSymbolUniqueId(3907); + TSymbolUniqueId(3964); static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 = - TSymbolUniqueId(3908); + TSymbolUniqueId(3965); static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 = - TSymbolUniqueId(3909); + TSymbolUniqueId(3966); static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 = - TSymbolUniqueId(3910); + TSymbolUniqueId(3967); static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 = - TSymbolUniqueId(3911); + TSymbolUniqueId(3968); static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 = - TSymbolUniqueId(3912); + TSymbolUniqueId(3969); + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 = + TSymbolUniqueId(3970); + static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 = + TSymbolUniqueId(3971); + static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 = + TSymbolUniqueId(3972); + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3973); + static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3974); + static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3975); + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(3976); + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4 = + TSymbolUniqueId(3977); + static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4 = + TSymbolUniqueId(3978); + static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4 = + TSymbolUniqueId(3979); + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3980); + static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3981); + static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(3982); + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(3983); static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 = - TSymbolUniqueId(3913); + TSymbolUniqueId(3984); static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 = - TSymbolUniqueId(3914); + TSymbolUniqueId(3985); static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 = - TSymbolUniqueId(3915); + TSymbolUniqueId(3986); static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 = - TSymbolUniqueId(3916); + TSymbolUniqueId(3987); static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 = - TSymbolUniqueId(3917); + TSymbolUniqueId(3988); static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 = - TSymbolUniqueId(3918); + TSymbolUniqueId(3989); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 = - TSymbolUniqueId(3919); + TSymbolUniqueId(3990); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 = - TSymbolUniqueId(3920); + TSymbolUniqueId(3991); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 = - TSymbolUniqueId(3921); + TSymbolUniqueId(3992); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3922); + TSymbolUniqueId(3993); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3923); + TSymbolUniqueId(3994); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 = - TSymbolUniqueId(3924); + TSymbolUniqueId(3995); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 = - TSymbolUniqueId(3925); - static constexpr const TSymbolUniqueId - textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(3926); - static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(3927); - static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(3928); - static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(3929); - static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(3930); - static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(3931); - static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(3932); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3933); - static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(3934); - static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3935); - static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3936); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3937); - static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3938); - static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3939); - static constexpr const TSymbolUniqueId - textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(3940); + TSymbolUniqueId(3996); static constexpr const TSymbolUniqueId - textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(3941); + textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(3997); + static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 = + TSymbolUniqueId(3998); + static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 = + TSymbolUniqueId(3999); + static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 = + TSymbolUniqueId(4000); + static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 = + TSymbolUniqueId(4001); + static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 = + TSymbolUniqueId(4002); + static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 = + TSymbolUniqueId(4003); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 = + TSymbolUniqueId(4004); + static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(4005); + static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 = + TSymbolUniqueId(4006); + static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 = + TSymbolUniqueId(4007); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(4008); + static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(4009); + static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(4010); + static constexpr const TSymbolUniqueId + textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(4011); + static constexpr const TSymbolUniqueId + textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(4012); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3942); + TSymbolUniqueId(4013); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3943); + TSymbolUniqueId(4014); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 = - TSymbolUniqueId(3944); + TSymbolUniqueId(4015); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3945); + TSymbolUniqueId(4016); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3946); + TSymbolUniqueId(4017); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(3947); + TSymbolUniqueId(4018); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(3948); + textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(4019); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(3949); + textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(4020); static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3950); + TSymbolUniqueId(4021); static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3951); + TSymbolUniqueId(4022); static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3952); + TSymbolUniqueId(4023); static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 = - TSymbolUniqueId(3953); + TSymbolUniqueId(4024); static constexpr const TSymbolUniqueId - textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3954); + textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4025); static constexpr const TSymbolUniqueId - textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3955); + textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4026); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3956); + TSymbolUniqueId(4027); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3957); + TSymbolUniqueId(4028); static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(3958); + TSymbolUniqueId(4029); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3959); - static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3960); + textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4030); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3961); - static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(3962); - static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(3963); - static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(3964); - static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(3965); - static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(3966); - static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(3967); - static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(3968); - static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(3969); - static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(3970); - static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(3971); - static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(3972); - static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(3973); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(3974); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(3975); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(3976); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(3977); - static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(3978); - static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(3979); - static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(3980); - static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(3981); + textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4031); + static constexpr const TSymbolUniqueId + textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4032); + static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 = + TSymbolUniqueId(4033); + static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(4034); + static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 = + TSymbolUniqueId(4035); + static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(4036); + static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(4037); + static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(4038); + static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(4039); + static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(4040); + static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(4041); + static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(4042); + static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(4043); + static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(4044); + static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(4045); + static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(4046); + static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(4047); + static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(4048); + static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(4049); + static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(4050); + static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(4051); + static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(4052); + static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(4053); + static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(4054); + static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(4055); + static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(4056); + static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(4057); + static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(4058); + static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(4059); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(4060); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(4061); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(4062); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(4063); + static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(4064); + static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(4065); + static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(4066); + static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(4067); static constexpr const TSymbolUniqueId interpolateAtOffset_Float1_Float2 = - TSymbolUniqueId(3982); + TSymbolUniqueId(4068); static constexpr const TSymbolUniqueId interpolateAtOffset_Float2_Float2 = - TSymbolUniqueId(3983); + TSymbolUniqueId(4069); static constexpr const TSymbolUniqueId interpolateAtOffset_Float3_Float2 = - TSymbolUniqueId(3984); + TSymbolUniqueId(4070); static constexpr const TSymbolUniqueId interpolateAtOffset_Float4_Float2 = - TSymbolUniqueId(3985); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(3986); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(3987); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(3988); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(3989); + TSymbolUniqueId(4071); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(4072); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(4073); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(4074); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(4075); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float1_Int1 = - TSymbolUniqueId(3990); + TSymbolUniqueId(4076); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float2_Int1 = - TSymbolUniqueId(3991); + TSymbolUniqueId(4077); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float3_Int1 = - TSymbolUniqueId(3992); + TSymbolUniqueId(4078); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float4_Int1 = - TSymbolUniqueId(3993); + TSymbolUniqueId(4079); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float1_Float2 = - TSymbolUniqueId(3994); + TSymbolUniqueId(4080); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float2_Float2 = - TSymbolUniqueId(3995); + TSymbolUniqueId(4081); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float3_Float2 = - TSymbolUniqueId(3996); + TSymbolUniqueId(4082); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float4_Float2 = - TSymbolUniqueId(3997); - static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(3998); - static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(3999); + TSymbolUniqueId(4083); + static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(4084); + static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(4085); static constexpr const TSymbolUniqueId atomicCounterIncrement_AtomicCounter1 = - TSymbolUniqueId(4000); + TSymbolUniqueId(4086); static constexpr const TSymbolUniqueId atomicCounterDecrement_AtomicCounter1 = - TSymbolUniqueId(4001); - static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(4002); - static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(4003); - static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(4004); - static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(4005); - static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(4006); - static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(4007); - static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(4008); - static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(4009); - static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(4010); - static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(4011); - static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(4012); - static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(4013); - static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(4014); - static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(4015); - static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(4016); - static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(4017); - static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(4018); - static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(4019); - static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(4020); - static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(4021); - static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(4022); - static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(4023); - static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(4024); - static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(4025); - static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(4026); - static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(4027); - static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(4028); - static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(4029); - static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(4030); - static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(4031); - static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(4032); - static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(4033); - static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(4034); - static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(4035); - static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(4036); - static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(4037); - static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(4038); - static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(4039); - static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(4040); - static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(4041); - static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(4042); - static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(4043); - static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(4044); - static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(4045); - static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(4046); - static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(4047); - static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(4048); - static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(4049); - static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(4050); - static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(4051); - static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(4052); - static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(4053); - static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(4054); - static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(4055); - static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(4056); - static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(4057); - static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(4058); - static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(4059); - static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(4060); - static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(4061); + TSymbolUniqueId(4087); + static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(4088); + static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(4089); + static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(4090); + static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(4091); + static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(4092); + static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(4093); + static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(4094); + static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(4095); + static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(4096); + static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(4097); + static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(4098); + static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(4099); + static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(4100); + static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(4101); + static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(4102); + static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(4103); + static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(4104); + static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(4105); + static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(4106); + static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(4107); + static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(4108); + static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(4109); + static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(4110); + static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(4111); + static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(4112); + static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(4113); + static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(4114); + static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(4115); + static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(4116); + static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(4117); + static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(4118); + static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(4119); + static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(4120); + static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(4121); + static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(4122); + static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(4123); + static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(4124); + static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(4125); + static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(4126); + static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(4127); + static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(4128); + static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(4129); + static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(4130); + static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(4131); + static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(4132); + static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(4133); + static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(4134); + static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(4135); + static constexpr const TSymbolUniqueId imageSizeExt_ImageCubeArray1 = TSymbolUniqueId(4136); + static constexpr const TSymbolUniqueId imageSizeExt_IImageCubeArray1 = TSymbolUniqueId(4137); + static constexpr const TSymbolUniqueId imageSizeExt_UImageCubeArray1 = TSymbolUniqueId(4138); + static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(4139); + static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(4140); + static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(4141); + static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(4142); + static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(4143); + static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(4144); + static constexpr const TSymbolUniqueId imageSizeExt_ImageBuffer1 = TSymbolUniqueId(4145); + static constexpr const TSymbolUniqueId imageSizeExt_IImageBuffer1 = TSymbolUniqueId(4146); + static constexpr const TSymbolUniqueId imageSizeExt_UImageBuffer1 = TSymbolUniqueId(4147); + static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(4148); + static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(4149); + static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(4150); + static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(4151); + static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(4152); + static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(4153); static constexpr const TSymbolUniqueId imageStore_Image2DArray1_Int3_Float4 = - TSymbolUniqueId(4062); + TSymbolUniqueId(4154); static constexpr const TSymbolUniqueId imageStore_IImage2DArray1_Int3_Int4 = - TSymbolUniqueId(4063); + TSymbolUniqueId(4155); static constexpr const TSymbolUniqueId imageStore_UImage2DArray1_Int3_UInt4 = - TSymbolUniqueId(4064); + TSymbolUniqueId(4156); static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 = - TSymbolUniqueId(4065); - static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(4066); + TSymbolUniqueId(4157); + static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(4158); static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 = - TSymbolUniqueId(4067); + TSymbolUniqueId(4159); static constexpr const TSymbolUniqueId imageStore_ImageCubeArray1_Int3_Float4 = - TSymbolUniqueId(4068); + TSymbolUniqueId(4160); static constexpr const TSymbolUniqueId imageStore_IImageCubeArray1_Int3_Int4 = - TSymbolUniqueId(4069); + TSymbolUniqueId(4161); static constexpr const TSymbolUniqueId imageStore_UImageCubeArray1_Int3_UInt4 = - TSymbolUniqueId(4070); + TSymbolUniqueId(4162); + static constexpr const TSymbolUniqueId imageStoreExt_ImageCubeArray1_Int3_Float4 = + TSymbolUniqueId(4163); + static constexpr const TSymbolUniqueId imageStoreExt_IImageCubeArray1_Int3_Int4 = + TSymbolUniqueId(4164); + static constexpr const TSymbolUniqueId imageStoreExt_UImageCubeArray1_Int3_UInt4 = + TSymbolUniqueId(4165); static constexpr const TSymbolUniqueId imageStore_ImageBuffer1_Int1_Float4 = - TSymbolUniqueId(4071); + TSymbolUniqueId(4166); static constexpr const TSymbolUniqueId imageStore_IImageBuffer1_Int1_Int4 = - TSymbolUniqueId(4072); + TSymbolUniqueId(4167); static constexpr const TSymbolUniqueId imageStore_UImageBuffer1_Int1_UInt4 = - TSymbolUniqueId(4073); - static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(4074); - static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(4075); - static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(4076); - static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(4077); - static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(4078); - static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(4079); - static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(4080); - static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(4081); - static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(4082); - static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(4083); - static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(4084); - static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(4085); - static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(4086); - static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(4087); - static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(4088); - static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(4089); - static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(4090); - static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(4091); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4092); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(4093); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4094); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(4095); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4096); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(4097); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(4098); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(4099); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(4100); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4101); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4102); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4103); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(4104); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4105); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4106); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4107); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4108); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4109); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(4110); - static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(4111); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(4112); - static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(4113); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(4114); - static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(4115); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(4116); - static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(4117); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4118); - static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(4119); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4120); - static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(4121); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(4122); - static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(4123); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(4124); - static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(4125); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(4126); - static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(4127); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4128); - static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(4129); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4130); - static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(4131); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4132); - static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(4133); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4134); - static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(4135); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4136); - static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(4137); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4138); - static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(4139); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(4140); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(4141); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(4142); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(4143); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(4144); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(4145); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(4146); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(4147); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(4148); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4149); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4150); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4151); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(4152); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4153); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4154); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4155); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4156); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4157); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(4158); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4159); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(4160); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4161); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4162); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4163); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(4164); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4165); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(4166); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4167); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4168); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageStoreExt_ImageBuffer1_Int1_Float4 = TSymbolUniqueId(4169); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageStoreExt_IImageBuffer1_Int1_Int4 = TSymbolUniqueId(4170); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageStoreExt_UImageBuffer1_Int1_UInt4 = TSymbolUniqueId(4171); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4172); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4173); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(4174); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4175); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(4176); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4177); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(4178); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(4179); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(4180); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(4181); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4182); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4183); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4184); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(4185); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4186); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(4172); + static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(4173); + static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(4174); + static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(4175); + static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(4176); + static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(4177); + static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(4178); + static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(4179); + static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(4180); + static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(4181); + static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(4182); + static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(4183); + static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(4184); + static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(4185); + static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(4186); + static constexpr const TSymbolUniqueId imageLoadExt_ImageCubeArray1_Int3 = TSymbolUniqueId(4187); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageLoadExt_IImageCubeArray1_Int3 = TSymbolUniqueId(4188); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageLoadExt_UImageCubeArray1_Int3 = TSymbolUniqueId(4189); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4190); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(4191); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(4192); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(4193); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(4194); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4195); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(4190); + static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(4191); + static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(4192); + static constexpr const TSymbolUniqueId imageLoadExt_ImageBuffer1_Int1 = TSymbolUniqueId(4193); + static constexpr const TSymbolUniqueId imageLoadExt_IImageBuffer1_Int1 = TSymbolUniqueId(4194); + static constexpr const TSymbolUniqueId imageLoadExt_UImageBuffer1_Int1 = TSymbolUniqueId(4195); + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(4196); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(4197); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_UInt1 = TSymbolUniqueId(4198); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_UInt1 = TSymbolUniqueId(4199); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_UInt1 = TSymbolUniqueId(4200); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_UInt1 = TSymbolUniqueId(4201); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_UInt1 = TSymbolUniqueId(4202); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_UInt1 = TSymbolUniqueId(4203); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_UInt1 = TSymbolUniqueId(4204); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4205); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4206); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4207); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(4208); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(4209); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(4210); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4211); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4212); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4213); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(4214); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4215); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(4215); + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(4216); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4217); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(4217); + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(4218); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4219); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(4219); + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(4220); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4221); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(4221); + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(4222); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4223); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(4223); + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(4224); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4225); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(4225); + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(4226); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4227); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(4227); + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(4228); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4229); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(4229); + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(4230); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4231); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(4231); + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4232); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4233); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(4233); + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4234); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4235); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(4235); + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4236); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4237); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(4237); + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4238); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4239); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(4239); + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4240); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4241); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(4241); + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4242); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4243); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(4243); + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_Int1 = TSymbolUniqueId(4244); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(4245); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(4246); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_Int1 = TSymbolUniqueId(4247); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(4248); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(4249); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(4250); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(4251); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(4252); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(4253); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(4254); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(4255); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(4256); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(4257); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(4258); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4259); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4260); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4261); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 = TSymbolUniqueId(4262); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 = TSymbolUniqueId(4263); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 = TSymbolUniqueId(4264); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 = TSymbolUniqueId(4265); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(4266); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(4267); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 = TSymbolUniqueId(4268); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 = TSymbolUniqueId(4269); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 = TSymbolUniqueId(4270); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4271); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4272); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4273); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4274); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4275); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4276); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(4277); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(4278); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 = TSymbolUniqueId(4279); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 = TSymbolUniqueId(4280); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 = TSymbolUniqueId(4281); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 = TSymbolUniqueId(4282); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 = TSymbolUniqueId(4283); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 = TSymbolUniqueId(4284); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 = TSymbolUniqueId(4285); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4286); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4287); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(4288); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(4289); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(4290); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(4291); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4292); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4293); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(4294); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(4295); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(4296); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(4297); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(4298); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(4299); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(4300); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(4301); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(4302); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(4303); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4304); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4305); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(4306); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4307); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4308); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(4309); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 = TSymbolUniqueId(4310); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(4311); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(4312); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 = TSymbolUniqueId(4313); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(4314); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(4315); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(4316); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(4317); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(4318); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(4319); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(4320); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(4321); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(4322); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(4323); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(4324); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4325); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4326); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(4327); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 = TSymbolUniqueId(4328); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 = TSymbolUniqueId(4329); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 = TSymbolUniqueId(4330); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 = TSymbolUniqueId(4331); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(4332); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(4333); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 = TSymbolUniqueId(4334); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 = TSymbolUniqueId(4335); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 = TSymbolUniqueId(4336); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4337); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4338); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(4339); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4340); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4341); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(4342); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(4343); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(4344); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 = + TSymbolUniqueId(4345); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 = + TSymbolUniqueId(4346); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 = + TSymbolUniqueId(4347); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 = + TSymbolUniqueId(4348); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 = + TSymbolUniqueId(4349); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 = + TSymbolUniqueId(4350); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 = + TSymbolUniqueId(4351); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4352); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4353); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4354); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 = + TSymbolUniqueId(4355); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(4356); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(4357); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4358); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4359); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4360); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 = + TSymbolUniqueId(4361); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(4362); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(4363); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(4364); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(4365); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(4366); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(4367); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(4368); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(4369); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4370); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4371); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4372); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4373); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4374); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4375); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 = + TSymbolUniqueId(4376); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 = + TSymbolUniqueId(4377); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_Int1 = + TSymbolUniqueId(4378); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_Int1 = + TSymbolUniqueId(4379); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_Int1 = + TSymbolUniqueId(4380); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_Int1 = + TSymbolUniqueId(4381); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_Int1 = + TSymbolUniqueId(4382); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_Int1 = + TSymbolUniqueId(4383); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_Int1 = + TSymbolUniqueId(4384); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_Int1 = + TSymbolUniqueId(4385); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_Int1 = + TSymbolUniqueId(4386); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_Int1 = + TSymbolUniqueId(4387); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_Int1 = + TSymbolUniqueId(4388); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_Int1 = + TSymbolUniqueId(4389); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_Int1 = + TSymbolUniqueId(4390); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(4391); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(4392); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(4393); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_Int1 = + TSymbolUniqueId(4394); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_Int1 = + TSymbolUniqueId(4395); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_Int1 = + TSymbolUniqueId(4396); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_Int1 = + TSymbolUniqueId(4397); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_Int1 = + TSymbolUniqueId(4398); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_Int1 = + TSymbolUniqueId(4399); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_Int1 = + TSymbolUniqueId(4400); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_Int1 = + TSymbolUniqueId(4401); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_Int1 = + TSymbolUniqueId(4402); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(4403); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(4404); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(4405); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(4406); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(4407); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(4408); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_UInt1 = + TSymbolUniqueId(4409); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_UInt1 = + TSymbolUniqueId(4410); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_UInt1 = + TSymbolUniqueId(4411); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_UInt1 = + TSymbolUniqueId(4412); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_UInt1 = + TSymbolUniqueId(4413); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_UInt1 = + TSymbolUniqueId(4414); + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_UInt1 = + TSymbolUniqueId(4415); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_UInt1 = + TSymbolUniqueId(4416); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_UInt1 = + TSymbolUniqueId(4417); + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4418); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4419); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(4420); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_UInt1 = + TSymbolUniqueId(4421); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(4422); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(4423); + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4424); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4425); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(4426); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 = + TSymbolUniqueId(4427); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(4428); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(4429); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(4430); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(4431); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(4432); + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(4433); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(4434); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(4435); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4436); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4437); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(4438); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4439); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4440); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(4441); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 = + TSymbolUniqueId(4442); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 = + TSymbolUniqueId(4443); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 = + TSymbolUniqueId(4444); + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 = + TSymbolUniqueId(4445); + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 = + TSymbolUniqueId(4446); + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 = + TSymbolUniqueId(4447); + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 = + TSymbolUniqueId(4448); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(4345); + TSymbolUniqueId(4449); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(4346); + TSymbolUniqueId(4450); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4347); + TSymbolUniqueId(4451); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4348); + TSymbolUniqueId(4452); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4349); + TSymbolUniqueId(4453); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(4350); + TSymbolUniqueId(4454); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4351); + TSymbolUniqueId(4455); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4352); + TSymbolUniqueId(4456); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4353); + TSymbolUniqueId(4457); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4354); + TSymbolUniqueId(4458); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4355); + TSymbolUniqueId(4459); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(4356); + TSymbolUniqueId(4460); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4357); + TSymbolUniqueId(4461); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(4358); + TSymbolUniqueId(4462); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4359); + TSymbolUniqueId(4463); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4360); + TSymbolUniqueId(4464); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4361); + TSymbolUniqueId(4465); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(4362); + TSymbolUniqueId(4466); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4363); + TSymbolUniqueId(4467); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(4364); + TSymbolUniqueId(4468); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4365); + TSymbolUniqueId(4469); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4366); + TSymbolUniqueId(4470); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4367); + TSymbolUniqueId(4471); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4368); + TSymbolUniqueId(4472); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4369); + TSymbolUniqueId(4473); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4370); + TSymbolUniqueId(4474); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4371); + TSymbolUniqueId(4475); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(4372); + TSymbolUniqueId(4476); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4373); + TSymbolUniqueId(4477); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(4374); + TSymbolUniqueId(4478); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4375); + TSymbolUniqueId(4479); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(4376); + TSymbolUniqueId(4480); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(4377); + TSymbolUniqueId(4481); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(4378); + TSymbolUniqueId(4482); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(4379); + TSymbolUniqueId(4483); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4380); + TSymbolUniqueId(4484); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4381); + TSymbolUniqueId(4485); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4382); + TSymbolUniqueId(4486); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(4383); + TSymbolUniqueId(4487); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4384); + TSymbolUniqueId(4488); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4385); + TSymbolUniqueId(4489); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4386); + TSymbolUniqueId(4490); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4387); + TSymbolUniqueId(4491); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4388); + TSymbolUniqueId(4492); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(4389); + TSymbolUniqueId(4493); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(4390); + TSymbolUniqueId(4494); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(4391); + TSymbolUniqueId(4495); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(4392); + TSymbolUniqueId(4496); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4393); + TSymbolUniqueId(4497); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4394); + TSymbolUniqueId(4498); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(4395); + TSymbolUniqueId(4499); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(4396); + TSymbolUniqueId(4500); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(4397); + TSymbolUniqueId(4501); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4398); + TSymbolUniqueId(4502); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4399); + TSymbolUniqueId(4503); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4400); + TSymbolUniqueId(4504); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4401); + TSymbolUniqueId(4505); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4402); + TSymbolUniqueId(4506); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4403); + TSymbolUniqueId(4507); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(4404); + TSymbolUniqueId(4508); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(4405); + TSymbolUniqueId(4509); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(4406); + TSymbolUniqueId(4510); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(4407); + TSymbolUniqueId(4511); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(4408); + TSymbolUniqueId(4512); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(4409); + TSymbolUniqueId(4513); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(4410); + TSymbolUniqueId(4514); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(4411); + TSymbolUniqueId(4515); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(4412); + TSymbolUniqueId(4516); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4413); + TSymbolUniqueId(4517); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4414); + TSymbolUniqueId(4518); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4415); + TSymbolUniqueId(4519); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(4416); + TSymbolUniqueId(4520); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4417); + TSymbolUniqueId(4521); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4418); + TSymbolUniqueId(4522); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4419); + TSymbolUniqueId(4523); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4420); + TSymbolUniqueId(4524); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4421); + TSymbolUniqueId(4525); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(4422); + TSymbolUniqueId(4526); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4423); + TSymbolUniqueId(4527); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(4424); + TSymbolUniqueId(4528); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4425); + TSymbolUniqueId(4529); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4426); + TSymbolUniqueId(4530); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4427); + TSymbolUniqueId(4531); static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(4428); + TSymbolUniqueId(4532); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4429); + TSymbolUniqueId(4533); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(4430); + TSymbolUniqueId(4534); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4431); + TSymbolUniqueId(4535); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4432); + TSymbolUniqueId(4536); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4433); + TSymbolUniqueId(4537); static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4434); + TSymbolUniqueId(4538); static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4435); + TSymbolUniqueId(4539); static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4436); + TSymbolUniqueId(4540); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4437); + TSymbolUniqueId(4541); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(4438); + TSymbolUniqueId(4542); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4439); + TSymbolUniqueId(4543); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(4440); + TSymbolUniqueId(4544); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4441); + TSymbolUniqueId(4545); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(4442); + TSymbolUniqueId(4546); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(4443); + TSymbolUniqueId(4547); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(4444); + TSymbolUniqueId(4548); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(4445); + TSymbolUniqueId(4549); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4446); + TSymbolUniqueId(4550); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4447); + TSymbolUniqueId(4551); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4448); + TSymbolUniqueId(4552); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(4449); + TSymbolUniqueId(4553); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4450); + TSymbolUniqueId(4554); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4451); + TSymbolUniqueId(4555); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4452); + TSymbolUniqueId(4556); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4453); + TSymbolUniqueId(4557); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4454); + TSymbolUniqueId(4558); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(4455); + TSymbolUniqueId(4559); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(4456); + TSymbolUniqueId(4560); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(4457); + TSymbolUniqueId(4561); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(4458); + TSymbolUniqueId(4562); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4459); + TSymbolUniqueId(4563); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4460); + TSymbolUniqueId(4564); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(4461); + TSymbolUniqueId(4565); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(4462); + TSymbolUniqueId(4566); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(4463); + TSymbolUniqueId(4567); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4464); + TSymbolUniqueId(4568); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4465); + TSymbolUniqueId(4569); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4466); + TSymbolUniqueId(4570); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4467); + TSymbolUniqueId(4571); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4468); + TSymbolUniqueId(4572); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4469); + TSymbolUniqueId(4573); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(4470); + TSymbolUniqueId(4574); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(4471); + TSymbolUniqueId(4575); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(4472); + TSymbolUniqueId(4576); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(4473); + TSymbolUniqueId(4577); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(4474); + TSymbolUniqueId(4578); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(4475); + TSymbolUniqueId(4579); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(4476); + TSymbolUniqueId(4580); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(4477); + TSymbolUniqueId(4581); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(4478); + TSymbolUniqueId(4582); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4479); + TSymbolUniqueId(4583); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4480); + TSymbolUniqueId(4584); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4481); + TSymbolUniqueId(4585); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(4482); + TSymbolUniqueId(4586); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4483); + TSymbolUniqueId(4587); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4484); + TSymbolUniqueId(4588); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4485); + TSymbolUniqueId(4589); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4486); + TSymbolUniqueId(4590); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4487); + TSymbolUniqueId(4591); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(4488); + TSymbolUniqueId(4592); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4489); + TSymbolUniqueId(4593); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(4490); + TSymbolUniqueId(4594); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4491); + TSymbolUniqueId(4595); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4492); + TSymbolUniqueId(4596); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4493); + TSymbolUniqueId(4597); static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(4494); + TSymbolUniqueId(4598); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4495); + TSymbolUniqueId(4599); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(4496); + TSymbolUniqueId(4600); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4497); + TSymbolUniqueId(4601); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4498); + TSymbolUniqueId(4602); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4499); + TSymbolUniqueId(4603); static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4500); + TSymbolUniqueId(4604); static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4501); + TSymbolUniqueId(4605); static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4502); + TSymbolUniqueId(4606); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(4503); + TSymbolUniqueId(4607); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(4504); + TSymbolUniqueId(4608); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(4505); + TSymbolUniqueId(4609); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(4506); + TSymbolUniqueId(4610); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(4507); + TSymbolUniqueId(4611); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(4508); + TSymbolUniqueId(4612); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(4509); + TSymbolUniqueId(4613); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(4510); + TSymbolUniqueId(4614); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(4511); + TSymbolUniqueId(4615); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4512); + TSymbolUniqueId(4616); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4513); + TSymbolUniqueId(4617); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(4514); + TSymbolUniqueId(4618); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(4515); + TSymbolUniqueId(4619); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4516); + TSymbolUniqueId(4620); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(4517); + TSymbolUniqueId(4621); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4518); + TSymbolUniqueId(4622); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4519); + TSymbolUniqueId(4623); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(4520); + TSymbolUniqueId(4624); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(4521); + TSymbolUniqueId(4625); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(4522); + TSymbolUniqueId(4626); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(4523); + TSymbolUniqueId(4627); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(4524); + TSymbolUniqueId(4628); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4525); + TSymbolUniqueId(4629); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(4526); + TSymbolUniqueId(4630); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(4527); + TSymbolUniqueId(4631); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(4528); + TSymbolUniqueId(4632); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(4529); + TSymbolUniqueId(4633); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4530); + TSymbolUniqueId(4634); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4531); + TSymbolUniqueId(4635); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(4532); + TSymbolUniqueId(4636); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4533); + TSymbolUniqueId(4637); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4534); + TSymbolUniqueId(4638); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(4535); + TSymbolUniqueId(4639); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(4536); + TSymbolUniqueId(4640); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(4537); + TSymbolUniqueId(4641); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(4538); + TSymbolUniqueId(4642); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(4539); + TSymbolUniqueId(4643); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(4540); + TSymbolUniqueId(4644); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(4541); + TSymbolUniqueId(4645); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(4542); + TSymbolUniqueId(4646); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(4543); + TSymbolUniqueId(4647); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(4544); + TSymbolUniqueId(4648); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4545); + TSymbolUniqueId(4649); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4546); + TSymbolUniqueId(4650); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(4547); + TSymbolUniqueId(4651); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(4548); + TSymbolUniqueId(4652); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4549); + TSymbolUniqueId(4653); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(4550); + TSymbolUniqueId(4654); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4551); + TSymbolUniqueId(4655); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4552); + TSymbolUniqueId(4656); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(4553); + TSymbolUniqueId(4657); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(4554); + TSymbolUniqueId(4658); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(4555); + TSymbolUniqueId(4659); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(4556); + TSymbolUniqueId(4660); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(4557); + TSymbolUniqueId(4661); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4558); + TSymbolUniqueId(4662); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(4559); + TSymbolUniqueId(4663); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(4560); + TSymbolUniqueId(4664); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(4561); + TSymbolUniqueId(4665); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(4562); + TSymbolUniqueId(4666); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4563); + TSymbolUniqueId(4667); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4564); + TSymbolUniqueId(4668); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(4565); + TSymbolUniqueId(4669); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4566); + TSymbolUniqueId(4670); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4567); + TSymbolUniqueId(4671); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4568); + TSymbolUniqueId(4672); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Float1 = - TSymbolUniqueId(4569); + TSymbolUniqueId(4673); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Float1 = - TSymbolUniqueId(4570); + TSymbolUniqueId(4674); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Float1 = - TSymbolUniqueId(4571); + TSymbolUniqueId(4675); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Float1 = - TSymbolUniqueId(4572); + TSymbolUniqueId(4676); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Float1 = - TSymbolUniqueId(4573); + TSymbolUniqueId(4677); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Float1 = - TSymbolUniqueId(4574); + TSymbolUniqueId(4678); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Float1 = - TSymbolUniqueId(4575); + TSymbolUniqueId(4679); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Float1 = - TSymbolUniqueId(4576); + TSymbolUniqueId(4680); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Float1 = - TSymbolUniqueId(4577); + TSymbolUniqueId(4681); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Float1 = - TSymbolUniqueId(4578); + TSymbolUniqueId(4682); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Float1 = - TSymbolUniqueId(4579); + TSymbolUniqueId(4683); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Float1 = - TSymbolUniqueId(4580); + TSymbolUniqueId(4684); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Float1 = - TSymbolUniqueId(4581); + TSymbolUniqueId(4685); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Float1 = - TSymbolUniqueId(4582); + TSymbolUniqueId(4686); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Float1 = - TSymbolUniqueId(4583); + TSymbolUniqueId(4687); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(4584); + TSymbolUniqueId(4688); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(4585); + TSymbolUniqueId(4689); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(4586); + TSymbolUniqueId(4690); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Float1 = - TSymbolUniqueId(4587); + TSymbolUniqueId(4691); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Float1 = - TSymbolUniqueId(4588); + TSymbolUniqueId(4692); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Float1 = - TSymbolUniqueId(4589); + TSymbolUniqueId(4693); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Float1 = - TSymbolUniqueId(4590); + TSymbolUniqueId(4694); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Float1 = - TSymbolUniqueId(4591); + TSymbolUniqueId(4695); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Float1 = - TSymbolUniqueId(4592); + TSymbolUniqueId(4696); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Float1 = - TSymbolUniqueId(4593); + TSymbolUniqueId(4697); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Float1 = - TSymbolUniqueId(4594); + TSymbolUniqueId(4698); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Float1 = - TSymbolUniqueId(4595); + TSymbolUniqueId(4699); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(4596); + TSymbolUniqueId(4700); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(4597); + TSymbolUniqueId(4701); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(4598); + TSymbolUniqueId(4702); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1 = - TSymbolUniqueId(4599); + TSymbolUniqueId(4703); static constexpr const TSymbolUniqueId - imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(4600); + imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(4704); static constexpr const TSymbolUniqueId - imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(4601); + imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(4705); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4602); + TSymbolUniqueId(4706); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4603); + TSymbolUniqueId(4707); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4604); + TSymbolUniqueId(4708); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4605); + TSymbolUniqueId(4709); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4606); + TSymbolUniqueId(4710); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4607); + TSymbolUniqueId(4711); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4608); + TSymbolUniqueId(4712); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4609); + TSymbolUniqueId(4713); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4610); + TSymbolUniqueId(4714); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4611); + TSymbolUniqueId(4715); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4612); + TSymbolUniqueId(4716); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4613); + TSymbolUniqueId(4717); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4614); + TSymbolUniqueId(4718); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4615); + TSymbolUniqueId(4719); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4616); + TSymbolUniqueId(4720); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(4617); + TSymbolUniqueId(4721); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(4618); + imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(4722); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(4619); + imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(4723); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4620); + TSymbolUniqueId(4724); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4621); + TSymbolUniqueId(4725); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(4622); + TSymbolUniqueId(4726); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4623); + TSymbolUniqueId(4727); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4624); + TSymbolUniqueId(4728); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4625); + TSymbolUniqueId(4729); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4626); + TSymbolUniqueId(4730); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4627); + TSymbolUniqueId(4731); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(4628); + TSymbolUniqueId(4732); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1 = - TSymbolUniqueId(4629); + TSymbolUniqueId(4733); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(4630); + imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(4734); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(4631); + imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(4735); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4632); + imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4736); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4633); + imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4737); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4634); + imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4738); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1 = - TSymbolUniqueId(4635); + TSymbolUniqueId(4739); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(4636); + TSymbolUniqueId(4740); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(4637); + TSymbolUniqueId(4741); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1 = - TSymbolUniqueId(4638); + TSymbolUniqueId(4742); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1 = - TSymbolUniqueId(4639); + TSymbolUniqueId(4743); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1 = - TSymbolUniqueId(4640); + TSymbolUniqueId(4744); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(4641); + TSymbolUniqueId(4745); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(4642); + TSymbolUniqueId(4746); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(4643); + TSymbolUniqueId(4747); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(4644); + TSymbolUniqueId(4748); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(4645); + TSymbolUniqueId(4749); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(4646); + TSymbolUniqueId(4750); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4647); + TSymbolUniqueId(4751); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4648); + TSymbolUniqueId(4752); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4649); + TSymbolUniqueId(4753); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4650); + TSymbolUniqueId(4754); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4651); + TSymbolUniqueId(4755); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(4652); + TSymbolUniqueId(4756); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1 = - TSymbolUniqueId(4653); + TSymbolUniqueId(4757); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1 = - TSymbolUniqueId(4654); + TSymbolUniqueId(4758); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1 = - TSymbolUniqueId(4655); + TSymbolUniqueId(4759); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(4656); + TSymbolUniqueId(4760); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(4657); + TSymbolUniqueId(4761); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(4658); + TSymbolUniqueId(4762); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(4659); + TSymbolUniqueId(4763); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(4660); + TSymbolUniqueId(4764); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(4661); + TSymbolUniqueId(4765); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(4662); + TSymbolUniqueId(4766); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(4663); + TSymbolUniqueId(4767); static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(4664); + TSymbolUniqueId(4768); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4769); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4770); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4665); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4666); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4667); - static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(4668); - static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(4669); - static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(4670); - static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(4671); - static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(4672); - static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(4673); - static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(4674); - static constexpr const TSymbolUniqueId barrierES3_2 = TSymbolUniqueId(4675); - static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(4676); - static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(4677); - static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(4678); - static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(4679); - static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 = - TSymbolUniqueId(4680); - static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(4681); - static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 = - TSymbolUniqueId(4682); - static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(4683); - static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(4684); - static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(4685); - static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(4686); - static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(4687); - static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(4688); - static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(4689); - static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(4690); - static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(4691); - static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(4692); - static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(4693); - static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(4694); - static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(4695); - static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(4696); - static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(4697); - static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(4698); - static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(4699); - static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(4700); - static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(4701); - static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(4702); - static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(4703); - static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(4704); + imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4771); + static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(4772); + static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(4773); + static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(4774); + static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(4775); + static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(4776); + static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(4777); + static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(4778); + static constexpr const TSymbolUniqueId barrierTCS = TSymbolUniqueId(4779); + static constexpr const TSymbolUniqueId barrierTCSES3_2 = TSymbolUniqueId(4780); + static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(4781); + static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(4782); + static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(4783); + static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(4784); + static constexpr const TSymbolUniqueId subpassLoad_SubpassInput1 = TSymbolUniqueId(4785); + static constexpr const TSymbolUniqueId pt01g = TSymbolUniqueId(4786); + static constexpr const TSymbolUniqueId subpassLoad_ISubpassInput1 = TSymbolUniqueId(4787); + static constexpr const TSymbolUniqueId pt01h = TSymbolUniqueId(4788); + static constexpr const TSymbolUniqueId subpassLoad_USubpassInput1 = TSymbolUniqueId(4789); + static constexpr const TSymbolUniqueId pt01i = TSymbolUniqueId(4790); + static constexpr const TSymbolUniqueId subpassLoad_SubpassInputMS1_Int1 = TSymbolUniqueId(4791); + static constexpr const TSymbolUniqueId pt01j = TSymbolUniqueId(4792); + static constexpr const TSymbolUniqueId subpassLoad_ISubpassInputMS1_Int1 = + TSymbolUniqueId(4793); + static constexpr const TSymbolUniqueId pt01k = TSymbolUniqueId(4794); + static constexpr const TSymbolUniqueId subpassLoad_USubpassInputMS1_Int1 = + TSymbolUniqueId(4795); + static constexpr const TSymbolUniqueId pt01l = TSymbolUniqueId(4796); + static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(4797); + static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(4798); + static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(4799); + static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(4800); + static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(4801); + static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(4802); + static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(4803); + static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(4804); + static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(4805); + static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(4806); + static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(4807); + static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(4808); + static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(4809); + static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(4810); + static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(4811); + static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(4812); + static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(4813); + static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(4814); + static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(4815); + static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(4816); + static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(4817); + static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(4818); static constexpr const TSymbolUniqueId gl_MaxCombinedShaderOutputResources = - TSymbolUniqueId(4705); - static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(4706); - static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(4707); - static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(4708); - static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(4709); - static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(4710); + TSymbolUniqueId(4819); + static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(4820); + static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(4821); + static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(4822); + static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(4823); + static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(4824); static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers = - TSymbolUniqueId(4711); - static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(4712); - static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(4713); - static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(4714); - static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(4715); - static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(4716); + TSymbolUniqueId(4825); + static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(4826); + static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(4827); + static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(4828); + static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(4829); + static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(4830); static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounterBuffers = - TSymbolUniqueId(4717); + TSymbolUniqueId(4831); static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounterBuffers = - TSymbolUniqueId(4718); - static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(4719); - static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(4720); + TSymbolUniqueId(4832); + static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(4833); + static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(4834); static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponentsES3_2 = - TSymbolUniqueId(4721); - static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(4722); + TSymbolUniqueId(4835); + static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(4836); static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponentsES3_2 = - TSymbolUniqueId(4723); - static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(4724); - static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(4725); - static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(4726); + TSymbolUniqueId(4837); + static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(4838); + static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(4839); + static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(4840); static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnitsES3_2 = - TSymbolUniqueId(4727); - static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(4728); + TSymbolUniqueId(4841); + static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(4842); static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVerticesES3_2 = - TSymbolUniqueId(4729); + TSymbolUniqueId(4843); static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponents = - TSymbolUniqueId(4730); + TSymbolUniqueId(4844); static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponentsES3_2 = - TSymbolUniqueId(4731); - static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(4732); + TSymbolUniqueId(4845); + static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(4846); static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponentsES3_2 = - TSymbolUniqueId(4733); - static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(4734); + TSymbolUniqueId(4847); + static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(4848); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCountersES3_2 = - TSymbolUniqueId(4735); + TSymbolUniqueId(4849); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffers = - TSymbolUniqueId(4736); + TSymbolUniqueId(4850); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffersES3_2 = - TSymbolUniqueId(4737); - static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(4738); + TSymbolUniqueId(4851); + static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(4852); static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponentsES3_2 = - TSymbolUniqueId(4739); + TSymbolUniqueId(4853); static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponents = - TSymbolUniqueId(4740); + TSymbolUniqueId(4854); static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponentsES3_2 = - TSymbolUniqueId(4741); + TSymbolUniqueId(4855); static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnits = - TSymbolUniqueId(4742); + TSymbolUniqueId(4856); static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnitsES3_2 = - TSymbolUniqueId(4743); + TSymbolUniqueId(4857); static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponents = - TSymbolUniqueId(4744); + TSymbolUniqueId(4858); static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponentsES3_2 = - TSymbolUniqueId(4745); + TSymbolUniqueId(4859); static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponents = - TSymbolUniqueId(4746); + TSymbolUniqueId(4860); static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponentsES3_2 = - TSymbolUniqueId(4747); - static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(4748); + TSymbolUniqueId(4861); + static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(4862); static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniformsES3_2 = - TSymbolUniqueId(4749); - static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(4750); + TSymbolUniqueId(4863); + static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(4864); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCountersES3_2 = - TSymbolUniqueId(4751); + TSymbolUniqueId(4865); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffers = - TSymbolUniqueId(4752); + TSymbolUniqueId(4866); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffersES3_2 = - TSymbolUniqueId(4753); - static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(4754); - static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(4755); - static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(4756); - static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(4757); - static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(4758); - static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(4759); + TSymbolUniqueId(4867); + static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(4868); + static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(4869); + static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(4870); + static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(4871); + static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(4872); + static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(4873); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponents = - TSymbolUniqueId(4760); + TSymbolUniqueId(4874); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponentsES3_2 = - TSymbolUniqueId(4761); + TSymbolUniqueId(4875); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponents = - TSymbolUniqueId(4762); + TSymbolUniqueId(4876); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponentsES3_2 = - TSymbolUniqueId(4763); + TSymbolUniqueId(4877); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnits = - TSymbolUniqueId(4764); + TSymbolUniqueId(4878); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnitsES3_2 = - TSymbolUniqueId(4765); + TSymbolUniqueId(4879); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponents = - TSymbolUniqueId(4766); + TSymbolUniqueId(4880); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponentsES3_2 = - TSymbolUniqueId(4767); + TSymbolUniqueId(4881); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniforms = - TSymbolUniqueId(4768); + TSymbolUniqueId(4882); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniformsES3_2 = - TSymbolUniqueId(4769); + TSymbolUniqueId(4883); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounters = - TSymbolUniqueId(4770); + TSymbolUniqueId(4884); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCountersES3_2 = - TSymbolUniqueId(4771); + TSymbolUniqueId(4885); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffers = - TSymbolUniqueId(4772); + TSymbolUniqueId(4886); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffersES3_2 = - TSymbolUniqueId(4773); - static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(4774); - static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(4775); - static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(4776); - static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(4777); + TSymbolUniqueId(4887); + static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(4888); + static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(4889); + static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(4890); + static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(4891); static constexpr const TSymbolUniqueId gl_MaxCombinedClipAndCullDistancesEXT = - TSymbolUniqueId(4778); - static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(4779); - static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(4780); - static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(4781); - static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(4782); - static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(4783); - static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(4784); - static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(4785); - static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(4786); - static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(4787); - static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(4788); - static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(4789); - static constexpr const TSymbolUniqueId gl_LastFragDataNonCoherent = TSymbolUniqueId(4790); - static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(4791); - static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(4792); - static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(4793); - static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(4794); - static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(4795); - static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(4796); - static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(4797); - static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(4798); - static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(4799); - static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(4800); - static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(4801); - static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(4802); - static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(4803); - static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(4804); - static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(4805); - static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(4806); - static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(4807); - static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(4808); - static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(4809); - static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(4810); - static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(4811); - static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(4812); - static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(4813); - static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(4814); - static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(4815); - static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(4816); - static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(4817); - static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(4818); - static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(4819); - static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(4820); - static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(4821); - static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(4822); - static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(4823); - static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(4824); - static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(4825); - static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(4826); - static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(4827); - static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(4828); - static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(4829); - static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(4830); - static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(4831); - static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(4832); - static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(4833); - static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(4834); - static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(4835); - static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(4836); - static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(4837); - static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(4838); - static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(4839); - static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(4840); - static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(4841); - static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(4842); - static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(4843); - static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(4844); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(4845); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(4846); - static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(4847); - static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(4848); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(4849); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(4850); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(4851); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(4852); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(4853); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(4854); - static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(4855); - static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(4856); - static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(4857); - static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(4858); - static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(4859); - static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(4860); - static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(4861); - static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(4862); - static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(4863); - static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(4864); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(4865); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(4866); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(4867); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(4868); - static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(4869); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(4870); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(4871); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(4872); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(4873); - static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(4874); - static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(4875); - static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(4876); - static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(4877); - static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(4878); - static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(4879); - static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(4880); - static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(4881); - static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(4882); - static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(4883); - static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(4884); + TSymbolUniqueId(4892); + static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(4893); + static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(4894); + static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(4895); + static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(4896); + static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(4897); + static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(4898); + static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(4899); + static constexpr const TSymbolUniqueId gl_FragCoord300 = TSymbolUniqueId(4900); + static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(4901); + static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(4902); + static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(4903); + static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(4904); + static constexpr const TSymbolUniqueId gl_LastFragDataNonCoherent = TSymbolUniqueId(4905); + static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(4906); + static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(4907); + static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(4908); + static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(4909); + static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(4910); + static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(4911); + static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(4912); + static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(4913); + static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(4914); + static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(4915); + static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(4916); + static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(4917); + static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(4918); + static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(4919); + static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(4920); + static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(4921); + static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(4922); + static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(4923); + static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(4924); + static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(4925); + static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(4926); + static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(4927); + static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(4928); + static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(4929); + static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(4930); + static constexpr const TSymbolUniqueId gl_PointSize300 = TSymbolUniqueId(4931); + static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(4932); + static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(4933); + static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(4934); + static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(4935); + static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(4936); + static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(4937); + static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(4938); + static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(4939); + static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(4940); + static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(4941); + static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(4942); + static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(4943); + static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(4944); + static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(4945); + static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(4946); + static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(4947); + static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(4948); + static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(4949); + static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(4950); + static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(4951); + static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(4952); + static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(4953); + static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(4954); + static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(4955); + static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(4956); + static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(4957); + static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(4958); + static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(4959); + static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(4960); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(4961); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(4962); + static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(4963); + static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(4964); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(4965); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(4966); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(4967); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(4968); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(4969); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(4970); + static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(4971); + static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(4972); + static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(4973); + static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(4974); + static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(4975); + static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(4976); + static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(4977); + static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(4978); + static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(4979); + static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(4980); + static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCS = TSymbolUniqueId(4981); + static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCSES3_2 = TSymbolUniqueId(4982); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(4983); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(4984); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(4985); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(4986); + static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(4987); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(4988); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(4989); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(4990); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(4991); + static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(4992); + static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(4993); + static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(4994); + static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(4995); + static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(4996); + static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(4997); + static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(4998); + static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(4999); + static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(5000); + static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(5001); + static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(5002); }; // class BuiltInId namespace BuiltInVariable { @@ -2860,10 +2963,11 @@ const TVariable *gl_BaseInstance(); const TVariable *gl_BaseVertex(); const TVariable *gl_DrawID(); const TVariable *gl_FragColor(); const TVariable *gl_FragCoord(); +const TVariable *gl_FragCoord300(); const TVariable *gl_FragDepth(); const TVariable *gl_FrontFacing(); const TVariable *gl_GlobalInvocationID(); const TVariable *gl_HelperInvocation(); const TVariable *gl_InstanceID(); @@ -2888,10 +2992,11 @@ const TVariable *gl_PatchVerticesInTCSES3_2(); const TVariable *gl_PatchVerticesInTES(); const TVariable *gl_PatchVerticesInTESES3_2(); const TVariable *gl_PointCoord(); const TVariable *gl_PointSize(); +const TVariable *gl_PointSize300(); const TVariable *gl_Position(); const TVariable *gl_PrimitiveID(); const TVariable *gl_PrimitiveIDES3_2(); const TVariable *gl_PrimitiveIDGS(); const TVariable *gl_PrimitiveIDGSES3_2(); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h @@ -742,4095 +742,4177 @@ TSymbolUniqueId(693); static constexpr const TSymbolUniqueId shadow2D_Sampler2DShadow1_Float3 = TSymbolUniqueId(694); static constexpr const TSymbolUniqueId pt00d = TSymbolUniqueId(695); static constexpr const TSymbolUniqueId shadow2DProj_Sampler2DShadow1_Float4 = TSymbolUniqueId(696); - static constexpr const TSymbolUniqueId texture2D_SamplerExternalOES1_Float2 = + static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 = TSymbolUniqueId(697); - static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(698); + static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 = + TSymbolUniqueId(698); + static constexpr const TSymbolUniqueId texture2D_SamplerExternalOES1_Float2 = + TSymbolUniqueId(699); + static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(700); static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float3 = - TSymbolUniqueId(699); + TSymbolUniqueId(701); static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float4 = - TSymbolUniqueId(700); + TSymbolUniqueId(702); static constexpr const TSymbolUniqueId texture2DRect_Sampler2DRect1_Float2 = - TSymbolUniqueId(701); - static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(702); + TSymbolUniqueId(703); + static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(704); static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float3 = - TSymbolUniqueId(703); + TSymbolUniqueId(705); static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float4 = - TSymbolUniqueId(704); - static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(705); - static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 = TSymbolUniqueId(706); - static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 = TSymbolUniqueId(707); + TSymbolUniqueId(706); static constexpr const TSymbolUniqueId texture2DGradEXT_Sampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(708); + TSymbolUniqueId(707); static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2 = + TSymbolUniqueId(708); + static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 = TSymbolUniqueId(709); - static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 = + static constexpr const TSymbolUniqueId textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 = TSymbolUniqueId(710); - static constexpr const TSymbolUniqueId textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 = + static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 = TSymbolUniqueId(711); + static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(712); static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(712); + TSymbolUniqueId(713); static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(713); + TSymbolUniqueId(714); static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(714); + TSymbolUniqueId(715); static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(715); + TSymbolUniqueId(716); static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3_Float1 = - TSymbolUniqueId(716); + TSymbolUniqueId(717); static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(717); - static constexpr const TSymbolUniqueId texture3DLod_Sampler3D1_Float3_Float1 = TSymbolUniqueId(718); - static constexpr const TSymbolUniqueId texture3DProjLod_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(719); static constexpr const TSymbolUniqueId texture1D_Sampler1D1_Float1_Float1 = - TSymbolUniqueId(720); + TSymbolUniqueId(719); static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float2_Float1 = - TSymbolUniqueId(721); + TSymbolUniqueId(720); static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float4_Float1 = - TSymbolUniqueId(722); + TSymbolUniqueId(721); static constexpr const TSymbolUniqueId shadow1D_Sampler1DShadow1_Float3_Float1 = + TSymbolUniqueId(722); + static constexpr const TSymbolUniqueId shadow1DProj_Sampler1DShadow1_Float4_Float1 = TSymbolUniqueId(723); - static constexpr const TSymbolUniqueId shadow1DProj_Sampler1DShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId shadow2D_Sampler2DShadow1_Float3_Float1 = TSymbolUniqueId(724); - static constexpr const TSymbolUniqueId shadow2D_Sampler2DShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId shadow2DProj_Sampler2DShadow1_Float4_Float1 = TSymbolUniqueId(725); - static constexpr const TSymbolUniqueId shadow2DProj_Sampler2DShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId texture2DLod_Sampler2D1_Float2_Float1 = TSymbolUniqueId(726); - static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(727); - static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(728); - static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(729); - static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(730); - static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(731); - static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(732); - static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(733); - static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(734); - static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(735); - static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(736); - static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(737); - static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(738); + static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float3_Float1 = + TSymbolUniqueId(727); + static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float4_Float1 = + TSymbolUniqueId(728); + static constexpr const TSymbolUniqueId textureCubeLod_SamplerCube1_Float3_Float1 = + TSymbolUniqueId(729); + static constexpr const TSymbolUniqueId texture1DLod_Sampler1D1_Float1_Float1 = + TSymbolUniqueId(730); + static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float2_Float1 = + TSymbolUniqueId(731); + static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float4_Float1 = + TSymbolUniqueId(732); + static constexpr const TSymbolUniqueId shadow1DLod_Sampler1DShadow1_Float3_Float1 = + TSymbolUniqueId(733); + static constexpr const TSymbolUniqueId shadow1DProjLod_Sampler1DShadow1_Float4_Float1 = + TSymbolUniqueId(734); + static constexpr const TSymbolUniqueId shadow2DLod_Sampler2DShadow1_Float3_Float1 = + TSymbolUniqueId(735); + static constexpr const TSymbolUniqueId shadow2DProjLod_Sampler2DShadow1_Float4_Float1 = + TSymbolUniqueId(736); + static constexpr const TSymbolUniqueId texture3DLod_Sampler3D1_Float3_Float1 = + TSymbolUniqueId(737); + static constexpr const TSymbolUniqueId texture3DProjLod_Sampler3D1_Float4_Float1 = + TSymbolUniqueId(738); static constexpr const TSymbolUniqueId texture2DLodEXT_Sampler2D1_Float2_Float1 = TSymbolUniqueId(739); static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float3_Float1 = TSymbolUniqueId(740); static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float4_Float1 = TSymbolUniqueId(741); static constexpr const TSymbolUniqueId textureCubeLodEXT_SamplerCube1_Float3_Float1 = TSymbolUniqueId(742); - static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 = - TSymbolUniqueId(743); - static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 = - TSymbolUniqueId(744); - static constexpr const TSymbolUniqueId texture2DLod_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(745); - static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(746); - static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(747); - static constexpr const TSymbolUniqueId textureCubeLod_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(748); - static constexpr const TSymbolUniqueId texture1DLod_Sampler1D1_Float1_Float1 = - TSymbolUniqueId(749); - static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float2_Float1 = - TSymbolUniqueId(750); - static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float4_Float1 = - TSymbolUniqueId(751); - static constexpr const TSymbolUniqueId shadow1DLod_Sampler1DShadow1_Float3_Float1 = - TSymbolUniqueId(752); - static constexpr const TSymbolUniqueId shadow1DProjLod_Sampler1DShadow1_Float4_Float1 = - TSymbolUniqueId(753); - static constexpr const TSymbolUniqueId shadow2DLod_Sampler2DShadow1_Float3_Float1 = - TSymbolUniqueId(754); - static constexpr const TSymbolUniqueId shadow2DProjLod_Sampler2DShadow1_Float4_Float1 = - TSymbolUniqueId(755); - static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(756); - static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(757); - static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(758); - static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(759); - static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(760); - static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(761); - static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(762); - static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(763); - static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(764); - static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(765); - static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(766); - static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(767); - static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(768); - static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(769); - static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(770); - static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(771); - static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(772); - static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(773); - static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(774); - static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(775); - static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(776); - static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(777); - static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 = TSymbolUniqueId(778); - static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(779); + static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(743); + static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(744); + static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(745); + static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(746); + static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(747); + static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(748); + static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(749); + static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(750); + static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(751); + static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(752); + static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(753); + static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(754); + static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(755); + static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(756); + static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(757); + static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(758); + static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(759); + static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(760); + static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(761); + static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(762); + static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(763); + static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(764); + static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 = TSymbolUniqueId(765); + static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(766); static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4 = - TSymbolUniqueId(780); - static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(781); - static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1 = TSymbolUniqueId(782); - static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1 = TSymbolUniqueId(783); - static constexpr const TSymbolUniqueId pt00o = TSymbolUniqueId(784); - static constexpr const TSymbolUniqueId texture_USampler1D1_Float1 = TSymbolUniqueId(785); - static constexpr const TSymbolUniqueId pt00t = TSymbolUniqueId(786); - static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3 = TSymbolUniqueId(787); - static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3 = TSymbolUniqueId(788); - static constexpr const TSymbolUniqueId pt00h = TSymbolUniqueId(789); - static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3 = TSymbolUniqueId(790); - static constexpr const TSymbolUniqueId pt00p = TSymbolUniqueId(791); - static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3 = TSymbolUniqueId(792); - static constexpr const TSymbolUniqueId pt00u = TSymbolUniqueId(793); + TSymbolUniqueId(767); + static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(768); + static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1 = TSymbolUniqueId(769); + static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1 = TSymbolUniqueId(770); + static constexpr const TSymbolUniqueId pt00o = TSymbolUniqueId(771); + static constexpr const TSymbolUniqueId texture_USampler1D1_Float1 = TSymbolUniqueId(772); + static constexpr const TSymbolUniqueId pt00t = TSymbolUniqueId(773); + static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3 = TSymbolUniqueId(774); + static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3 = TSymbolUniqueId(775); + static constexpr const TSymbolUniqueId pt00h = TSymbolUniqueId(776); + static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3 = TSymbolUniqueId(777); + static constexpr const TSymbolUniqueId pt00p = TSymbolUniqueId(778); + static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3 = TSymbolUniqueId(779); + static constexpr const TSymbolUniqueId pt00u = TSymbolUniqueId(780); static constexpr const TSymbolUniqueId texture_Sampler1DArrayShadow1_Float3 = - TSymbolUniqueId(794); - static constexpr const TSymbolUniqueId pt00i = TSymbolUniqueId(795); - static constexpr const TSymbolUniqueId texture_ISampler2DRect1_Float2 = TSymbolUniqueId(796); - static constexpr const TSymbolUniqueId pt00q = TSymbolUniqueId(797); - static constexpr const TSymbolUniqueId texture_USampler2DRect1_Float2 = TSymbolUniqueId(798); - static constexpr const TSymbolUniqueId pt00v = TSymbolUniqueId(799); + TSymbolUniqueId(781); + static constexpr const TSymbolUniqueId pt00i = TSymbolUniqueId(782); + static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(783); + static constexpr const TSymbolUniqueId texture_ISampler2DRect1_Float2 = TSymbolUniqueId(784); + static constexpr const TSymbolUniqueId pt00q = TSymbolUniqueId(785); + static constexpr const TSymbolUniqueId texture_USampler2DRect1_Float2 = TSymbolUniqueId(786); + static constexpr const TSymbolUniqueId pt00v = TSymbolUniqueId(787); static constexpr const TSymbolUniqueId texture_Sampler2DRectShadow1_Float3 = + TSymbolUniqueId(788); + static constexpr const TSymbolUniqueId pt00n = TSymbolUniqueId(789); + static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(790); + static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(791); + static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 = TSymbolUniqueId(792); + static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(793); + static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 = TSymbolUniqueId(794); + static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(795); + static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(796); + static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(797); + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4 = + TSymbolUniqueId(798); + static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4 = + TSymbolUniqueId(799); + static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4 = TSymbolUniqueId(800); - static constexpr const TSymbolUniqueId pt00n = TSymbolUniqueId(801); - static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(801); + static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 = TSymbolUniqueId(802); - static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(803); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(804); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(805); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(806); - static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(807); - static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(808); - static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(809); - static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(810); - static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(811); - static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(812); + static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 = + TSymbolUniqueId(803); + static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(804); + static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 = TSymbolUniqueId(805); + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(806); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(807); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(808); + static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(809); + static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(810); + static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(811); + static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(812); + static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(813); + static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(814); static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4 = - TSymbolUniqueId(813); - static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2 = TSymbolUniqueId(814); - static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2 = TSymbolUniqueId(815); - static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2 = TSymbolUniqueId(816); - static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4 = TSymbolUniqueId(817); - static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4 = TSymbolUniqueId(818); - static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4 = TSymbolUniqueId(819); + TSymbolUniqueId(815); + static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2 = TSymbolUniqueId(816); + static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2 = TSymbolUniqueId(817); + static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2 = TSymbolUniqueId(818); + static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4 = TSymbolUniqueId(819); + static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4 = TSymbolUniqueId(820); + static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4 = TSymbolUniqueId(821); static constexpr const TSymbolUniqueId textureProj_Sampler1DShadow1_Float4 = - TSymbolUniqueId(820); + TSymbolUniqueId(822); + static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 = TSymbolUniqueId(823); static constexpr const TSymbolUniqueId textureProj_ISampler2DRect1_Float3 = - TSymbolUniqueId(821); + TSymbolUniqueId(824); static constexpr const TSymbolUniqueId textureProj_USampler2DRect1_Float3 = - TSymbolUniqueId(822); + TSymbolUniqueId(825); + static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 = TSymbolUniqueId(826); static constexpr const TSymbolUniqueId textureProj_ISampler2DRect1_Float4 = - TSymbolUniqueId(823); + TSymbolUniqueId(827); static constexpr const TSymbolUniqueId textureProj_USampler2DRect1_Float4 = - TSymbolUniqueId(824); + TSymbolUniqueId(828); static constexpr const TSymbolUniqueId textureProj_Sampler2DRectShadow1_Float4 = - TSymbolUniqueId(825); + TSymbolUniqueId(829); + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 = + TSymbolUniqueId(830); + static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 = + TSymbolUniqueId(831); + static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 = + TSymbolUniqueId(832); + static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 = + TSymbolUniqueId(833); static constexpr const TSymbolUniqueId textureLod_Sampler2D1_Float2_Float1 = - TSymbolUniqueId(826); + TSymbolUniqueId(834); static constexpr const TSymbolUniqueId textureLod_ISampler2D1_Float2_Float1 = - TSymbolUniqueId(827); + TSymbolUniqueId(835); static constexpr const TSymbolUniqueId textureLod_USampler2D1_Float2_Float1 = - TSymbolUniqueId(828); + TSymbolUniqueId(836); static constexpr const TSymbolUniqueId textureLod_Sampler3D1_Float3_Float1 = - TSymbolUniqueId(829); + TSymbolUniqueId(837); static constexpr const TSymbolUniqueId textureLod_ISampler3D1_Float3_Float1 = - TSymbolUniqueId(830); + TSymbolUniqueId(838); static constexpr const TSymbolUniqueId textureLod_USampler3D1_Float3_Float1 = - TSymbolUniqueId(831); + TSymbolUniqueId(839); static constexpr const TSymbolUniqueId textureLod_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(832); + TSymbolUniqueId(840); static constexpr const TSymbolUniqueId textureLod_ISamplerCube1_Float3_Float1 = - TSymbolUniqueId(833); + TSymbolUniqueId(841); static constexpr const TSymbolUniqueId textureLod_USamplerCube1_Float3_Float1 = - TSymbolUniqueId(834); + TSymbolUniqueId(842); static constexpr const TSymbolUniqueId textureLod_Sampler2DArray1_Float3_Float1 = - TSymbolUniqueId(835); + TSymbolUniqueId(843); static constexpr const TSymbolUniqueId textureLod_ISampler2DArray1_Float3_Float1 = - TSymbolUniqueId(836); + TSymbolUniqueId(844); static constexpr const TSymbolUniqueId textureLod_USampler2DArray1_Float3_Float1 = - TSymbolUniqueId(837); - static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 = - TSymbolUniqueId(838); - static constexpr const TSymbolUniqueId textureLod_Sampler1D1_Float1_Float1 = - TSymbolUniqueId(839); - static constexpr const TSymbolUniqueId textureLod_ISampler1D1_Float1_Float1 = - TSymbolUniqueId(840); - static constexpr const TSymbolUniqueId textureLod_USampler1D1_Float1_Float1 = - TSymbolUniqueId(841); - static constexpr const TSymbolUniqueId textureLod_Sampler1DShadow1_Float3_Float1 = - TSymbolUniqueId(842); - static constexpr const TSymbolUniqueId textureLod_Sampler1DArray1_Float2_Float1 = - TSymbolUniqueId(843); - static constexpr const TSymbolUniqueId textureLod_ISampler1DArray1_Float2_Float1 = - TSymbolUniqueId(844); - static constexpr const TSymbolUniqueId textureLod_USampler1DArray1_Float2_Float1 = TSymbolUniqueId(845); - static constexpr const TSymbolUniqueId textureLod_Sampler1DArrayShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 = TSymbolUniqueId(846); - static constexpr const TSymbolUniqueId textureLod_SamplerCubeArray1_Float4_Float1 = + static constexpr const TSymbolUniqueId textureLod_Sampler1D1_Float1_Float1 = TSymbolUniqueId(847); - static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(848); - static constexpr const TSymbolUniqueId textureLod_ISamplerCubeArray1_Float4_Float1 = + static constexpr const TSymbolUniqueId textureLod_ISampler1D1_Float1_Float1 = + TSymbolUniqueId(848); + static constexpr const TSymbolUniqueId textureLod_USampler1D1_Float1_Float1 = TSymbolUniqueId(849); - static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(850); - static constexpr const TSymbolUniqueId textureLod_USamplerCubeArray1_Float4_Float1 = + static constexpr const TSymbolUniqueId textureLod_Sampler1DShadow1_Float3_Float1 = + TSymbolUniqueId(850); + static constexpr const TSymbolUniqueId textureLod_Sampler1DArray1_Float2_Float1 = TSymbolUniqueId(851); - static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(852); - static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(853); - static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(854); - static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(855); - static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(856); - static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(857); - static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(858); - static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(859); - static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(860); - static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(861); - static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(862); - static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 = TSymbolUniqueId(863); - static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 = TSymbolUniqueId(864); - static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 = TSymbolUniqueId(865); + static constexpr const TSymbolUniqueId textureLod_ISampler1DArray1_Float2_Float1 = + TSymbolUniqueId(852); + static constexpr const TSymbolUniqueId textureLod_USampler1DArray1_Float2_Float1 = + TSymbolUniqueId(853); + static constexpr const TSymbolUniqueId textureLod_Sampler1DArrayShadow1_Float3_Float1 = + TSymbolUniqueId(854); + static constexpr const TSymbolUniqueId textureLod_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(855); + static constexpr const TSymbolUniqueId textureLod_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(856); + static constexpr const TSymbolUniqueId textureLod_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(857); + static constexpr const TSymbolUniqueId textureLodExt_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(858); + static constexpr const TSymbolUniqueId textureLodExt_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(859); + static constexpr const TSymbolUniqueId textureLodExt_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(860); + static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(861); + static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(862); + static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(863); + static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(864); + static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(865); + static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(866); + static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(867); + static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(868); + static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(869); + static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(870); + static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 = TSymbolUniqueId(871); + static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 = TSymbolUniqueId(872); + static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 = TSymbolUniqueId(873); static constexpr const TSymbolUniqueId textureSize_SamplerCubeShadow1_Int1 = - TSymbolUniqueId(866); + TSymbolUniqueId(874); static constexpr const TSymbolUniqueId textureSize_Sampler2DArrayShadow1_Int1 = - TSymbolUniqueId(867); - static constexpr const TSymbolUniqueId textureSize_Sampler1D1_Int1 = TSymbolUniqueId(868); - static constexpr const TSymbolUniqueId textureSize_ISampler1D1_Int1 = TSymbolUniqueId(869); - static constexpr const TSymbolUniqueId textureSize_USampler1D1_Int1 = TSymbolUniqueId(870); - static constexpr const TSymbolUniqueId textureSize_Sampler1DShadow1_Int1 = TSymbolUniqueId(871); + TSymbolUniqueId(875); + static constexpr const TSymbolUniqueId textureSize_Sampler1D1_Int1 = TSymbolUniqueId(876); + static constexpr const TSymbolUniqueId textureSize_ISampler1D1_Int1 = TSymbolUniqueId(877); + static constexpr const TSymbolUniqueId textureSize_USampler1D1_Int1 = TSymbolUniqueId(878); + static constexpr const TSymbolUniqueId textureSize_Sampler1DShadow1_Int1 = TSymbolUniqueId(879); static constexpr const TSymbolUniqueId textureSize_SamplerCubeArray1_Int1 = - TSymbolUniqueId(872); + TSymbolUniqueId(880); static constexpr const TSymbolUniqueId textureSize_ISamplerCubeArray1_Int1 = - TSymbolUniqueId(873); + TSymbolUniqueId(881); static constexpr const TSymbolUniqueId textureSize_USamplerCubeArray1_Int1 = - TSymbolUniqueId(874); + TSymbolUniqueId(882); static constexpr const TSymbolUniqueId textureSize_SamplerCubeArrayShadow1_Int1 = - TSymbolUniqueId(875); - static constexpr const TSymbolUniqueId textureSize_Sampler2DRect1 = TSymbolUniqueId(876); - static constexpr const TSymbolUniqueId textureSize_ISampler2DRect1 = TSymbolUniqueId(877); - static constexpr const TSymbolUniqueId textureSize_USampler2DRect1 = TSymbolUniqueId(878); - static constexpr const TSymbolUniqueId textureSize_Sampler2DRectShadow1 = TSymbolUniqueId(879); - static constexpr const TSymbolUniqueId textureSize_Sampler1DArray1_Int1 = TSymbolUniqueId(880); - static constexpr const TSymbolUniqueId textureSize_ISampler1DArray1_Int1 = TSymbolUniqueId(881); - static constexpr const TSymbolUniqueId textureSize_USampler1DArray1_Int1 = TSymbolUniqueId(882); - static constexpr const TSymbolUniqueId textureSize_Sampler1DArrayShadow1_Int1 = TSymbolUniqueId(883); - static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(884); - static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(885); - static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(886); - static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(887); - static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(888); - static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(889); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArray1_Int1 = + TSymbolUniqueId(884); + static constexpr const TSymbolUniqueId textureSizeExt_ISamplerCubeArray1_Int1 = + TSymbolUniqueId(885); + static constexpr const TSymbolUniqueId textureSizeExt_USamplerCubeArray1_Int1 = + TSymbolUniqueId(886); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArrayShadow1_Int1 = + TSymbolUniqueId(887); + static constexpr const TSymbolUniqueId textureSize_Sampler2DRect1 = TSymbolUniqueId(888); + static constexpr const TSymbolUniqueId textureSize_ISampler2DRect1 = TSymbolUniqueId(889); + static constexpr const TSymbolUniqueId textureSize_USampler2DRect1 = TSymbolUniqueId(890); + static constexpr const TSymbolUniqueId textureSize_Sampler2DRectShadow1 = TSymbolUniqueId(891); + static constexpr const TSymbolUniqueId textureSize_Sampler1DArray1_Int1 = TSymbolUniqueId(892); + static constexpr const TSymbolUniqueId textureSize_ISampler1DArray1_Int1 = TSymbolUniqueId(893); + static constexpr const TSymbolUniqueId textureSize_USampler1DArray1_Int1 = TSymbolUniqueId(894); + static constexpr const TSymbolUniqueId textureSize_Sampler1DArrayShadow1_Int1 = + TSymbolUniqueId(895); + static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(896); + static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(897); + static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(898); + static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(899); + static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(900); + static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(901); + static constexpr const TSymbolUniqueId textureSizeExt_SamplerBuffer1 = TSymbolUniqueId(902); + static constexpr const TSymbolUniqueId textureSizeExt_ISamplerBuffer1 = TSymbolUniqueId(903); + static constexpr const TSymbolUniqueId textureSizeExt_USamplerBuffer1 = TSymbolUniqueId(904); + static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(905); + static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(906); + static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(907); + static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(908); + static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(909); + static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(910); + static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(911); + static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(912); + static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(913); + static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(914); + static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(915); + static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(916); + static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(917); + static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(918); + static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(919); + static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(920); + static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 = TSymbolUniqueId(921); + static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 = TSymbolUniqueId(922); + static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 = + TSymbolUniqueId(923); + static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 = + TSymbolUniqueId(924); static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(890); + TSymbolUniqueId(925); static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float3_Float1 = - TSymbolUniqueId(891); + TSymbolUniqueId(926); static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float3_Float1 = - TSymbolUniqueId(892); + TSymbolUniqueId(927); static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(893); + TSymbolUniqueId(928); static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float4_Float1 = - TSymbolUniqueId(894); + TSymbolUniqueId(929); static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float4_Float1 = - TSymbolUniqueId(895); + TSymbolUniqueId(930); static constexpr const TSymbolUniqueId textureProjLod_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(896); + TSymbolUniqueId(931); static constexpr const TSymbolUniqueId textureProjLod_ISampler3D1_Float4_Float1 = - TSymbolUniqueId(897); + TSymbolUniqueId(932); static constexpr const TSymbolUniqueId textureProjLod_USampler3D1_Float4_Float1 = - TSymbolUniqueId(898); + TSymbolUniqueId(933); static constexpr const TSymbolUniqueId textureProjLod_Sampler2DShadow1_Float4_Float1 = - TSymbolUniqueId(899); + TSymbolUniqueId(934); static constexpr const TSymbolUniqueId textureProjLod_Sampler1D1_Float2_Float1 = - TSymbolUniqueId(900); + TSymbolUniqueId(935); static constexpr const TSymbolUniqueId textureProjLod_ISampler1D1_Float2_Float1 = - TSymbolUniqueId(901); + TSymbolUniqueId(936); static constexpr const TSymbolUniqueId textureProjLod_USampler1D1_Float2_Float1 = - TSymbolUniqueId(902); + TSymbolUniqueId(937); static constexpr const TSymbolUniqueId textureProjLod_Sampler1D1_Float4_Float1 = - TSymbolUniqueId(903); + TSymbolUniqueId(938); static constexpr const TSymbolUniqueId textureProjLod_ISampler1D1_Float4_Float1 = - TSymbolUniqueId(904); + TSymbolUniqueId(939); static constexpr const TSymbolUniqueId textureProjLod_USampler1D1_Float4_Float1 = - TSymbolUniqueId(905); + TSymbolUniqueId(940); static constexpr const TSymbolUniqueId textureProjLod_Sampler1DShadow1_Float4_Float1 = - TSymbolUniqueId(906); - static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(907); - static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(908); - static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(909); - static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(910); - static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(911); - static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(912); + TSymbolUniqueId(941); + static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(942); + static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(943); + static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(944); + static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(945); + static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(946); + static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(947); static constexpr const TSymbolUniqueId texelFetch_Sampler2DArray1_Int3_Int1 = - TSymbolUniqueId(913); + TSymbolUniqueId(948); static constexpr const TSymbolUniqueId texelFetch_ISampler2DArray1_Int3_Int1 = - TSymbolUniqueId(914); + TSymbolUniqueId(949); static constexpr const TSymbolUniqueId texelFetch_USampler2DArray1_Int3_Int1 = - TSymbolUniqueId(915); - static constexpr const TSymbolUniqueId texelFetch_Sampler1D1_Int1_Int1 = TSymbolUniqueId(916); - static constexpr const TSymbolUniqueId texelFetch_ISampler1D1_Int1_Int1 = TSymbolUniqueId(917); - static constexpr const TSymbolUniqueId texelFetch_USampler1D1_Int1_Int1 = TSymbolUniqueId(918); - static constexpr const TSymbolUniqueId texelFetch_Sampler2DRect1_Int2 = TSymbolUniqueId(919); - static constexpr const TSymbolUniqueId texelFetch_ISampler2DRect1_Int2 = TSymbolUniqueId(920); - static constexpr const TSymbolUniqueId texelFetch_USampler2DRect1_Int2 = TSymbolUniqueId(921); + TSymbolUniqueId(950); + static constexpr const TSymbolUniqueId texelFetch_Sampler1D1_Int1_Int1 = TSymbolUniqueId(951); + static constexpr const TSymbolUniqueId texelFetch_ISampler1D1_Int1_Int1 = TSymbolUniqueId(952); + static constexpr const TSymbolUniqueId texelFetch_USampler1D1_Int1_Int1 = TSymbolUniqueId(953); + static constexpr const TSymbolUniqueId texelFetch_Sampler2DRect1_Int2 = TSymbolUniqueId(954); + static constexpr const TSymbolUniqueId texelFetch_ISampler2DRect1_Int2 = TSymbolUniqueId(955); + static constexpr const TSymbolUniqueId texelFetch_USampler2DRect1_Int2 = TSymbolUniqueId(956); static constexpr const TSymbolUniqueId texelFetch_Sampler1DArray1_Int2_Int1 = - TSymbolUniqueId(922); + TSymbolUniqueId(957); static constexpr const TSymbolUniqueId texelFetch_ISampler1DArray1_Int2_Int1 = - TSymbolUniqueId(923); + TSymbolUniqueId(958); static constexpr const TSymbolUniqueId texelFetch_USampler1DArray1_Int2_Int1 = - TSymbolUniqueId(924); - static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(925); - static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(926); - static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(927); + TSymbolUniqueId(959); + static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(960); + static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(961); + static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(962); + static constexpr const TSymbolUniqueId texelFetchExt_SamplerBuffer1_Int1 = TSymbolUniqueId(963); + static constexpr const TSymbolUniqueId texelFetchExt_ISamplerBuffer1_Int1 = + TSymbolUniqueId(964); + static constexpr const TSymbolUniqueId texelFetchExt_USamplerBuffer1_Int1 = + TSymbolUniqueId(965); + static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(966); + static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 = + TSymbolUniqueId(967); + static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 = + TSymbolUniqueId(968); + static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 = + TSymbolUniqueId(969); + static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 = + TSymbolUniqueId(970); + static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 = + TSymbolUniqueId(971); + static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(972); + static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(973); + static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(974); + static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(975); + static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(976); + static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 = + TSymbolUniqueId(977); + static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 = + TSymbolUniqueId(978); + static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 = + TSymbolUniqueId(979); static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(928); + TSymbolUniqueId(980); static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(929); + TSymbolUniqueId(981); static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float2_Float2_Float2 = - TSymbolUniqueId(930); + TSymbolUniqueId(982); static constexpr const TSymbolUniqueId textureGrad_Sampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(931); + TSymbolUniqueId(983); static constexpr const TSymbolUniqueId textureGrad_ISampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(932); + TSymbolUniqueId(984); static constexpr const TSymbolUniqueId textureGrad_USampler3D1_Float3_Float3_Float3 = - TSymbolUniqueId(933); + TSymbolUniqueId(985); static constexpr const TSymbolUniqueId textureGrad_SamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(934); + TSymbolUniqueId(986); static constexpr const TSymbolUniqueId textureGrad_ISamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(935); + TSymbolUniqueId(987); static constexpr const TSymbolUniqueId textureGrad_USamplerCube1_Float3_Float3_Float3 = - TSymbolUniqueId(936); + TSymbolUniqueId(988); static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float1_Float1_Float1 = - TSymbolUniqueId(937); + TSymbolUniqueId(989); static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float1_Float1_Float1 = - TSymbolUniqueId(938); + TSymbolUniqueId(990); static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float1_Float1_Float1 = - TSymbolUniqueId(939); + TSymbolUniqueId(991); static constexpr const TSymbolUniqueId textureGrad_Sampler2DRect1_Float2_Float2_Float2 = - TSymbolUniqueId(940); + TSymbolUniqueId(992); static constexpr const TSymbolUniqueId textureGrad_ISampler2DRect1_Float2_Float2_Float2 = - TSymbolUniqueId(941); + TSymbolUniqueId(993); static constexpr const TSymbolUniqueId textureGrad_USampler2DRect1_Float2_Float2_Float2 = - TSymbolUniqueId(942); + TSymbolUniqueId(994); static constexpr const TSymbolUniqueId textureGrad_Sampler2DRectShadow1_Float3_Float2_Float2 = - TSymbolUniqueId(943); + TSymbolUniqueId(995); static constexpr const TSymbolUniqueId textureGrad_Sampler2DShadow1_Float3_Float2_Float2 = - TSymbolUniqueId(944); + TSymbolUniqueId(996); static constexpr const TSymbolUniqueId textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 = - TSymbolUniqueId(945); + TSymbolUniqueId(997); static constexpr const TSymbolUniqueId textureGrad_Sampler2DArray1_Float3_Float2_Float2 = - TSymbolUniqueId(946); + TSymbolUniqueId(998); static constexpr const TSymbolUniqueId textureGrad_ISampler2DArray1_Float3_Float2_Float2 = - TSymbolUniqueId(947); + TSymbolUniqueId(999); static constexpr const TSymbolUniqueId textureGrad_USampler2DArray1_Float3_Float2_Float2 = - TSymbolUniqueId(948); + TSymbolUniqueId(1000); static constexpr const TSymbolUniqueId textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 = - TSymbolUniqueId(949); + TSymbolUniqueId(1001); static constexpr const TSymbolUniqueId textureGrad_Sampler1DShadow1_Float3_Float1_Float1 = - TSymbolUniqueId(950); + TSymbolUniqueId(1002); static constexpr const TSymbolUniqueId textureGrad_Sampler1DArray1_Float2_Float1_Float1 = - TSymbolUniqueId(951); + TSymbolUniqueId(1003); static constexpr const TSymbolUniqueId textureGrad_ISampler1DArray1_Float2_Float1_Float1 = - TSymbolUniqueId(952); + TSymbolUniqueId(1004); static constexpr const TSymbolUniqueId textureGrad_USampler1DArray1_Float2_Float1_Float1 = - TSymbolUniqueId(953); + TSymbolUniqueId(1005); static constexpr const TSymbolUniqueId textureGrad_Sampler1DArrayShadow1_Float3_Float1_Float1 = - TSymbolUniqueId(954); + TSymbolUniqueId(1006); static constexpr const TSymbolUniqueId textureGrad_SamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(955); + TSymbolUniqueId(1007); static constexpr const TSymbolUniqueId textureGrad_ISamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(956); + TSymbolUniqueId(1008); static constexpr const TSymbolUniqueId textureGrad_USamplerCubeArray1_Float4_Float3_Float3 = - TSymbolUniqueId(957); + TSymbolUniqueId(1009); + static constexpr const TSymbolUniqueId textureGradExt_SamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(1010); + static constexpr const TSymbolUniqueId textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(1011); + static constexpr const TSymbolUniqueId textureGradExt_USamplerCubeArray1_Float4_Float3_Float3 = + TSymbolUniqueId(1012); static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float3_Float2_Float2 = - TSymbolUniqueId(958); + TSymbolUniqueId(1013); static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float3_Float2_Float2 = - TSymbolUniqueId(959); + TSymbolUniqueId(1014); static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float3_Float2_Float2 = - TSymbolUniqueId(960); + TSymbolUniqueId(1015); static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float4_Float2_Float2 = - TSymbolUniqueId(961); + TSymbolUniqueId(1016); static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float4_Float2_Float2 = - TSymbolUniqueId(962); + TSymbolUniqueId(1017); static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float4_Float2_Float2 = - TSymbolUniqueId(963); + TSymbolUniqueId(1018); static constexpr const TSymbolUniqueId textureProjGrad_Sampler3D1_Float4_Float3_Float3 = - TSymbolUniqueId(964); + TSymbolUniqueId(1019); static constexpr const TSymbolUniqueId textureProjGrad_ISampler3D1_Float4_Float3_Float3 = - TSymbolUniqueId(965); + TSymbolUniqueId(1020); static constexpr const TSymbolUniqueId textureProjGrad_USampler3D1_Float4_Float3_Float3 = - TSymbolUniqueId(966); + TSymbolUniqueId(1021); static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 = - TSymbolUniqueId(967); + TSymbolUniqueId(1022); static constexpr const TSymbolUniqueId textureProjGrad_Sampler1D1_Float2_Float1_Float1 = - TSymbolUniqueId(968); + TSymbolUniqueId(1023); static constexpr const TSymbolUniqueId textureProjGrad_ISampler1D1_Float2_Float1_Float1 = - TSymbolUniqueId(969); + TSymbolUniqueId(1024); static constexpr const TSymbolUniqueId textureProjGrad_USampler1D1_Float2_Float1_Float1 = - TSymbolUniqueId(970); + TSymbolUniqueId(1025); static constexpr const TSymbolUniqueId textureProjGrad_Sampler1D1_Float4_Float1_Float1 = - TSymbolUniqueId(971); + TSymbolUniqueId(1026); static constexpr const TSymbolUniqueId textureProjGrad_ISampler1D1_Float4_Float1_Float1 = - TSymbolUniqueId(972); + TSymbolUniqueId(1027); static constexpr const TSymbolUniqueId textureProjGrad_USampler1D1_Float4_Float1_Float1 = - TSymbolUniqueId(973); + TSymbolUniqueId(1028); static constexpr const TSymbolUniqueId textureProjGrad_Sampler1DShadow1_Float4_Float1_Float1 = - TSymbolUniqueId(974); + TSymbolUniqueId(1029); static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DRect1_Float3_Float2_Float2 = - TSymbolUniqueId(975); + TSymbolUniqueId(1030); static constexpr const TSymbolUniqueId textureProjGrad_ISampler2DRect1_Float3_Float2_Float2 = - TSymbolUniqueId(976); + TSymbolUniqueId(1031); static constexpr const TSymbolUniqueId textureProjGrad_USampler2DRect1_Float3_Float2_Float2 = - TSymbolUniqueId(977); + TSymbolUniqueId(1032); static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DRect1_Float4_Float2_Float2 = - TSymbolUniqueId(978); + TSymbolUniqueId(1033); static constexpr const TSymbolUniqueId textureProjGrad_ISampler2DRect1_Float4_Float2_Float2 = - TSymbolUniqueId(979); + TSymbolUniqueId(1034); static constexpr const TSymbolUniqueId textureProjGrad_USampler2DRect1_Float4_Float2_Float2 = - TSymbolUniqueId(980); + TSymbolUniqueId(1035); static constexpr const TSymbolUniqueId - textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2 = TSymbolUniqueId(981); - static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1D1 = TSymbolUniqueId(982); - static constexpr const TSymbolUniqueId textureQueryLevels_ISampler1D1 = TSymbolUniqueId(983); - static constexpr const TSymbolUniqueId textureQueryLevels_USampler1D1 = TSymbolUniqueId(984); - static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2D1 = TSymbolUniqueId(985); - static constexpr const TSymbolUniqueId textureQueryLevels_ISampler2D1 = TSymbolUniqueId(986); - static constexpr const TSymbolUniqueId textureQueryLevels_USampler2D1 = TSymbolUniqueId(987); - static constexpr const TSymbolUniqueId textureQueryLevels_Sampler3D1 = TSymbolUniqueId(988); - static constexpr const TSymbolUniqueId textureQueryLevels_ISampler3D1 = TSymbolUniqueId(989); - static constexpr const TSymbolUniqueId textureQueryLevels_USampler3D1 = TSymbolUniqueId(990); - static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCube1 = TSymbolUniqueId(991); - static constexpr const TSymbolUniqueId textureQueryLevels_ISamplerCube1 = TSymbolUniqueId(992); - static constexpr const TSymbolUniqueId textureQueryLevels_USamplerCube1 = TSymbolUniqueId(993); + textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2 = TSymbolUniqueId(1036); + static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1D1 = TSymbolUniqueId(1037); + static constexpr const TSymbolUniqueId textureQueryLevels_ISampler1D1 = TSymbolUniqueId(1038); + static constexpr const TSymbolUniqueId textureQueryLevels_USampler1D1 = TSymbolUniqueId(1039); + static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2D1 = TSymbolUniqueId(1040); + static constexpr const TSymbolUniqueId textureQueryLevels_ISampler2D1 = TSymbolUniqueId(1041); + static constexpr const TSymbolUniqueId textureQueryLevels_USampler2D1 = TSymbolUniqueId(1042); + static constexpr const TSymbolUniqueId textureQueryLevels_Sampler3D1 = TSymbolUniqueId(1043); + static constexpr const TSymbolUniqueId textureQueryLevels_ISampler3D1 = TSymbolUniqueId(1044); + static constexpr const TSymbolUniqueId textureQueryLevels_USampler3D1 = TSymbolUniqueId(1045); + static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCube1 = TSymbolUniqueId(1046); + static constexpr const TSymbolUniqueId textureQueryLevels_ISamplerCube1 = TSymbolUniqueId(1047); + static constexpr const TSymbolUniqueId textureQueryLevels_USamplerCube1 = TSymbolUniqueId(1048); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DArray1 = - TSymbolUniqueId(994); + TSymbolUniqueId(1049); static constexpr const TSymbolUniqueId textureQueryLevels_ISampler1DArray1 = - TSymbolUniqueId(995); + TSymbolUniqueId(1050); static constexpr const TSymbolUniqueId textureQueryLevels_USampler1DArray1 = - TSymbolUniqueId(996); + TSymbolUniqueId(1051); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DArray1 = - TSymbolUniqueId(997); + TSymbolUniqueId(1052); static constexpr const TSymbolUniqueId textureQueryLevels_ISampler2DArray1 = - TSymbolUniqueId(998); + TSymbolUniqueId(1053); static constexpr const TSymbolUniqueId textureQueryLevels_USampler2DArray1 = - TSymbolUniqueId(999); + TSymbolUniqueId(1054); static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeArray1 = - TSymbolUniqueId(1000); + TSymbolUniqueId(1055); static constexpr const TSymbolUniqueId textureQueryLevels_ISamplerCubeArray1 = - TSymbolUniqueId(1001); + TSymbolUniqueId(1056); static constexpr const TSymbolUniqueId textureQueryLevels_USamplerCubeArray1 = - TSymbolUniqueId(1002); + TSymbolUniqueId(1057); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DShadow1 = - TSymbolUniqueId(1003); + TSymbolUniqueId(1058); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DShadow1 = - TSymbolUniqueId(1004); + TSymbolUniqueId(1059); static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeShadow1 = - TSymbolUniqueId(1005); + TSymbolUniqueId(1060); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DArrayShadow1 = - TSymbolUniqueId(1006); + TSymbolUniqueId(1061); static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DArrayShadow1 = - TSymbolUniqueId(1007); + TSymbolUniqueId(1062); static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeArrayShadow1 = - TSymbolUniqueId(1008); - static constexpr const TSymbolUniqueId textureSamples_Sampler2DMS1 = TSymbolUniqueId(1009); - static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(1010); - static constexpr const TSymbolUniqueId textureSamples_ISampler2DMS1 = TSymbolUniqueId(1011); - static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(1012); - static constexpr const TSymbolUniqueId textureSamples_USampler2DMS1 = TSymbolUniqueId(1013); - static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(1014); - static constexpr const TSymbolUniqueId textureSamples_Sampler2DMSArray1 = TSymbolUniqueId(1015); - static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(1016); + TSymbolUniqueId(1063); + static constexpr const TSymbolUniqueId textureSamples_Sampler2DMS1 = TSymbolUniqueId(1064); + static constexpr const TSymbolUniqueId textureSamples_ISampler2DMS1 = TSymbolUniqueId(1065); + static constexpr const TSymbolUniqueId textureSamples_USampler2DMS1 = TSymbolUniqueId(1066); + static constexpr const TSymbolUniqueId textureSamples_Sampler2DMSArray1 = TSymbolUniqueId(1067); static constexpr const TSymbolUniqueId textureSamples_ISampler2DMSArray1 = - TSymbolUniqueId(1017); - static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(1018); + TSymbolUniqueId(1068); static constexpr const TSymbolUniqueId textureSamples_USampler2DMSArray1 = - TSymbolUniqueId(1019); - static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(1020); - static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(1021); - static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(1022); - static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(1023); - static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(1024); - static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(1025); - static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(1026); - static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(1027); - static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(1028); - static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(1029); - static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(1030); - static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 = - TSymbolUniqueId(1031); - static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 = - TSymbolUniqueId(1032); - static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(1033); - static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 = - TSymbolUniqueId(1034); - static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 = - TSymbolUniqueId(1035); - static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(1036); - static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(1037); - static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 = - TSymbolUniqueId(1038); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 = - TSymbolUniqueId(1039); - static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 = - TSymbolUniqueId(1040); - static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 = - TSymbolUniqueId(1041); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(1042); - static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(1043); - static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 = - TSymbolUniqueId(1044); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 = - TSymbolUniqueId(1045); - static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1046); - static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1047); - static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1048); - static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1049); - static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1050); - static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 = - TSymbolUniqueId(1051); - static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1052); - static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1053); - static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1054); - static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1055); - static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1056); - static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1057); - static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(1058); + TSymbolUniqueId(1069); + static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(1070); static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 = - TSymbolUniqueId(1059); + TSymbolUniqueId(1071); static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 = - TSymbolUniqueId(1060); - static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(1061); + TSymbolUniqueId(1072); + static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(1073); static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 = - TSymbolUniqueId(1062); + TSymbolUniqueId(1074); static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 = - TSymbolUniqueId(1063); + TSymbolUniqueId(1075); static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 = - TSymbolUniqueId(1064); + TSymbolUniqueId(1076); static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 = - TSymbolUniqueId(1065); + TSymbolUniqueId(1077); static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 = - TSymbolUniqueId(1066); + TSymbolUniqueId(1078); static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 = - TSymbolUniqueId(1067); + TSymbolUniqueId(1079); static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 = - TSymbolUniqueId(1068); + TSymbolUniqueId(1080); static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 = - TSymbolUniqueId(1069); + TSymbolUniqueId(1081); static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 = - TSymbolUniqueId(1070); + TSymbolUniqueId(1082); static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 = - TSymbolUniqueId(1071); + TSymbolUniqueId(1083); static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 = - TSymbolUniqueId(1072); + TSymbolUniqueId(1084); static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 = - TSymbolUniqueId(1073); + TSymbolUniqueId(1085); static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 = - TSymbolUniqueId(1074); + TSymbolUniqueId(1086); static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 = - TSymbolUniqueId(1075); - static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 = - TSymbolUniqueId(1076); - static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 = - TSymbolUniqueId(1077); - static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 = - TSymbolUniqueId(1078); - static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 = - TSymbolUniqueId(1079); - static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 = - TSymbolUniqueId(1080); - static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 = - TSymbolUniqueId(1081); - static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1_Float1 = TSymbolUniqueId(1082); - static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1_Float1 = - TSymbolUniqueId(1083); - static constexpr const TSymbolUniqueId texture_USampler1D1_Float1_Float1 = - TSymbolUniqueId(1084); - static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3_Float1 = - TSymbolUniqueId(1085); - static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3_Float1 = - TSymbolUniqueId(1086); - static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3_Float1 = TSymbolUniqueId(1087); - static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 = TSymbolUniqueId(1088); - static constexpr const TSymbolUniqueId texture_Sampler1DArrayShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 = TSymbolUniqueId(1089); - static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4_Float1 = + static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 = TSymbolUniqueId(1090); - static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2_Float1 = + static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 = TSymbolUniqueId(1091); - static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2_Float1 = + static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 = TSymbolUniqueId(1092); - static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2_Float1 = + static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 = TSymbolUniqueId(1093); - static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4_Float1 = - TSymbolUniqueId(1094); - static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4_Float1 = + static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1_Float1 = TSymbolUniqueId(1094); + static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1_Float1 = TSymbolUniqueId(1095); - static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4_Float1 = + static constexpr const TSymbolUniqueId texture_USampler1D1_Float1_Float1 = TSymbolUniqueId(1096); + static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3_Float1 = + TSymbolUniqueId(1097); + static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3_Float1 = + TSymbolUniqueId(1098); + static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3_Float1 = + TSymbolUniqueId(1099); + static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3_Float1 = + TSymbolUniqueId(1100); + static constexpr const TSymbolUniqueId texture_Sampler1DArrayShadow1_Float3_Float1 = + TSymbolUniqueId(1101); + static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4_Float1 = + TSymbolUniqueId(1102); + static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2_Float1 = + TSymbolUniqueId(1103); + static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2_Float1 = + TSymbolUniqueId(1104); + static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2_Float1 = + TSymbolUniqueId(1105); + static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4_Float1 = + TSymbolUniqueId(1106); + static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4_Float1 = + TSymbolUniqueId(1107); + static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4_Float1 = + TSymbolUniqueId(1108); static constexpr const TSymbolUniqueId textureProj_Sampler1DShadow1_Float4_Float1 = - TSymbolUniqueId(1097); + TSymbolUniqueId(1109); + static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1110); + static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1111); + static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1112); + static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1113); + static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1114); + static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4_Float1 = + TSymbolUniqueId(1115); static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 = - TSymbolUniqueId(1098); + TSymbolUniqueId(1116); static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 = - TSymbolUniqueId(1099); + TSymbolUniqueId(1117); static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 = - TSymbolUniqueId(1100); + TSymbolUniqueId(1118); static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 = - TSymbolUniqueId(1101); - static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(1102); + TSymbolUniqueId(1119); static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 = - TSymbolUniqueId(1103); + TSymbolUniqueId(1120); static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 = - TSymbolUniqueId(1104); + TSymbolUniqueId(1121); static constexpr const TSymbolUniqueId textureQueryLod_Sampler1D1_Float1 = - TSymbolUniqueId(1105); + TSymbolUniqueId(1122); static constexpr const TSymbolUniqueId textureQueryLod_ISampler1D1_Float1 = - TSymbolUniqueId(1106); + TSymbolUniqueId(1123); static constexpr const TSymbolUniqueId textureQueryLod_USampler1D1_Float1 = - TSymbolUniqueId(1107); + TSymbolUniqueId(1124); static constexpr const TSymbolUniqueId textureQueryLod_Sampler2D1_Float2 = - TSymbolUniqueId(1108); + TSymbolUniqueId(1125); static constexpr const TSymbolUniqueId textureQueryLod_ISampler2D1_Float2 = - TSymbolUniqueId(1109); + TSymbolUniqueId(1126); static constexpr const TSymbolUniqueId textureQueryLod_USampler2D1_Float2 = - TSymbolUniqueId(1110); + TSymbolUniqueId(1127); static constexpr const TSymbolUniqueId textureQueryLod_Sampler3D1_Float3 = - TSymbolUniqueId(1111); + TSymbolUniqueId(1128); static constexpr const TSymbolUniqueId textureQueryLod_ISampler3D1_Float3 = - TSymbolUniqueId(1112); + TSymbolUniqueId(1129); static constexpr const TSymbolUniqueId textureQueryLod_USampler3D1_Float3 = - TSymbolUniqueId(1113); + TSymbolUniqueId(1130); static constexpr const TSymbolUniqueId textureQueryLod_SamplerCube1_Float3 = - TSymbolUniqueId(1114); + TSymbolUniqueId(1131); static constexpr const TSymbolUniqueId textureQueryLod_ISamplerCube1_Float3 = - TSymbolUniqueId(1115); + TSymbolUniqueId(1132); static constexpr const TSymbolUniqueId textureQueryLod_USamplerCube1_Float3 = - TSymbolUniqueId(1116); + TSymbolUniqueId(1133); static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DArray1_Float1 = - TSymbolUniqueId(1117); + TSymbolUniqueId(1134); static constexpr const TSymbolUniqueId textureQueryLod_ISampler1DArray1_Float1 = - TSymbolUniqueId(1118); + TSymbolUniqueId(1135); static constexpr const TSymbolUniqueId textureQueryLod_USampler1DArray1_Float1 = - TSymbolUniqueId(1119); + TSymbolUniqueId(1136); static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DArray1_Float2 = - TSymbolUniqueId(1120); - static constexpr const TSymbolUniqueId textureQueryLod_ISampler2DArray1_Float2 = - TSymbolUniqueId(1121); - static constexpr const TSymbolUniqueId textureQueryLod_USampler2DArray1_Float2 = - TSymbolUniqueId(1122); - static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArray1_Float3 = - TSymbolUniqueId(1123); - static constexpr const TSymbolUniqueId textureQueryLod_ISamplerCubeArray1_Float3 = - TSymbolUniqueId(1124); - static constexpr const TSymbolUniqueId textureQueryLod_USamplerCubeArray1_Float3 = - TSymbolUniqueId(1125); - static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DShadow1_Float1 = - TSymbolUniqueId(1126); - static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DShadow1_Float2 = - TSymbolUniqueId(1127); - static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeShadow1_Float3 = - TSymbolUniqueId(1128); - static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DArrayShadow1_Float1 = - TSymbolUniqueId(1129); - static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DArrayShadow1_Float2 = - TSymbolUniqueId(1130); - static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArrayShadow1_Float3 = - TSymbolUniqueId(1131); - static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 = - TSymbolUniqueId(1132); - static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 = - TSymbolUniqueId(1133); - static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 = - TSymbolUniqueId(1134); - static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 = - TSymbolUniqueId(1135); - static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 = - TSymbolUniqueId(1136); - static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 = TSymbolUniqueId(1137); - static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_ISampler2DArray1_Float2 = TSymbolUniqueId(1138); - static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_USampler2DArray1_Float2 = TSymbolUniqueId(1139); - static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArray1_Float3 = TSymbolUniqueId(1140); - static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_ISamplerCubeArray1_Float3 = TSymbolUniqueId(1141); - static constexpr const TSymbolUniqueId textureOffset_Sampler1D1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureQueryLod_USamplerCubeArray1_Float3 = TSymbolUniqueId(1142); - static constexpr const TSymbolUniqueId textureOffset_ISampler1D1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DShadow1_Float1 = TSymbolUniqueId(1143); - static constexpr const TSymbolUniqueId textureOffset_USampler1D1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DShadow1_Float2 = TSymbolUniqueId(1144); - static constexpr const TSymbolUniqueId textureOffset_Sampler2DRect1_Float2_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeShadow1_Float3 = TSymbolUniqueId(1145); - static constexpr const TSymbolUniqueId textureOffset_ISampler2DRect1_Float2_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DArrayShadow1_Float1 = TSymbolUniqueId(1146); - static constexpr const TSymbolUniqueId textureOffset_USampler2DRect1_Float2_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DArrayShadow1_Float2 = TSymbolUniqueId(1147); - static constexpr const TSymbolUniqueId textureOffset_Sampler2DRectShadow1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArrayShadow1_Float3 = TSymbolUniqueId(1148); - static constexpr const TSymbolUniqueId textureOffset_Sampler1DShadow1_Float3_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 = TSymbolUniqueId(1149); - static constexpr const TSymbolUniqueId textureOffset_Sampler1DArray1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 = TSymbolUniqueId(1150); - static constexpr const TSymbolUniqueId textureOffset_ISampler1DArray1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 = TSymbolUniqueId(1151); - static constexpr const TSymbolUniqueId textureOffset_USampler1DArray1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 = TSymbolUniqueId(1152); - static constexpr const TSymbolUniqueId textureOffset_Sampler1DArrayShadow1_Float3_Int1 = + static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 = TSymbolUniqueId(1153); - static constexpr const TSymbolUniqueId textureOffset_Sampler2DArrayShadow1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 = TSymbolUniqueId(1154); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 = TSymbolUniqueId(1155); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 = TSymbolUniqueId(1156); - static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 = TSymbolUniqueId(1157); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 = TSymbolUniqueId(1158); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureOffset_Sampler1D1_Float1_Int1 = TSymbolUniqueId(1159); - static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureOffset_ISampler1D1_Float1_Int1 = TSymbolUniqueId(1160); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 = + static constexpr const TSymbolUniqueId textureOffset_USampler1D1_Float1_Int1 = TSymbolUniqueId(1161); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2DRect1_Float2_Int2 = TSymbolUniqueId(1162); - static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 = + static constexpr const TSymbolUniqueId textureOffset_ISampler2DRect1_Float2_Int2 = TSymbolUniqueId(1163); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureOffset_USampler2DRect1_Float2_Int2 = TSymbolUniqueId(1164); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2DRectShadow1_Float3_Int2 = TSymbolUniqueId(1165); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler1DShadow1_Float3_Int1 = TSymbolUniqueId(1166); - static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float2_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler1DArray1_Float2_Int1 = TSymbolUniqueId(1167); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float4_Int1 = + static constexpr const TSymbolUniqueId textureOffset_ISampler1DArray1_Float2_Int1 = TSymbolUniqueId(1168); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float4_Int1 = + static constexpr const TSymbolUniqueId textureOffset_USampler1DArray1_Float2_Int1 = TSymbolUniqueId(1169); - static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float4_Int1 = + static constexpr const TSymbolUniqueId textureOffset_Sampler1DArrayShadow1_Float3_Int1 = TSymbolUniqueId(1170); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureOffset_Sampler2DArrayShadow1_Float4_Int2 = TSymbolUniqueId(1171); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 = TSymbolUniqueId(1172); - static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float3_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 = TSymbolUniqueId(1173); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 = TSymbolUniqueId(1174); - static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 = TSymbolUniqueId(1175); - static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 = TSymbolUniqueId(1176); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRectShadow1_Float4_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 = TSymbolUniqueId(1177); - static constexpr const TSymbolUniqueId textureProjOffset_Sampler1DShadow1_Float4_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 = TSymbolUniqueId(1178); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 = TSymbolUniqueId(1179); - static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 = TSymbolUniqueId(1180); - static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 = TSymbolUniqueId(1181); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float2_Int1 = TSymbolUniqueId(1182); - static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float2_Int1 = TSymbolUniqueId(1183); - static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float2_Int1 = TSymbolUniqueId(1184); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float4_Int1 = TSymbolUniqueId(1185); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float4_Int1 = TSymbolUniqueId(1186); - static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float4_Int1 = TSymbolUniqueId(1187); - static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float3_Int2 = TSymbolUniqueId(1188); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler1D1_Float1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float3_Int2 = TSymbolUniqueId(1189); - static constexpr const TSymbolUniqueId textureLodOffset_ISampler1D1_Float1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float3_Int2 = TSymbolUniqueId(1190); - static constexpr const TSymbolUniqueId textureLodOffset_USampler1D1_Float1_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float4_Int2 = TSymbolUniqueId(1191); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float4_Int2 = TSymbolUniqueId(1192); - static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DArray1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float4_Int2 = TSymbolUniqueId(1193); - static constexpr const TSymbolUniqueId textureLodOffset_ISampler1DArray1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRectShadow1_Float4_Int2 = TSymbolUniqueId(1194); - static constexpr const TSymbolUniqueId textureLodOffset_USampler1DArray1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureProjOffset_Sampler1DShadow1_Float4_Int1 = TSymbolUniqueId(1195); - static constexpr const TSymbolUniqueId - textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1 = TSymbolUniqueId(1196); - static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 = + TSymbolUniqueId(1196); + static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 = TSymbolUniqueId(1197); - static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 = TSymbolUniqueId(1198); - static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 = TSymbolUniqueId(1199); - static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 = TSymbolUniqueId(1200); - static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 = TSymbolUniqueId(1201); - static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 = TSymbolUniqueId(1202); - static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 = TSymbolUniqueId(1203); - static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 = + static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 = TSymbolUniqueId(1204); - static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 = + static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 = TSymbolUniqueId(1205); - static constexpr const TSymbolUniqueId - textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(1206); - static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler1D1_Float1_Float1_Int1 = + TSymbolUniqueId(1206); + static constexpr const TSymbolUniqueId textureLodOffset_ISampler1D1_Float1_Float1_Int1 = TSymbolUniqueId(1207); - static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_USampler1D1_Float1_Float1_Int1 = TSymbolUniqueId(1208); - static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float2_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1 = TSymbolUniqueId(1209); - static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float4_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DArray1_Float2_Float1_Int1 = TSymbolUniqueId(1210); - static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float4_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_ISampler1DArray1_Float2_Float1_Int1 = TSymbolUniqueId(1211); - static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float4_Float1_Int1 = + static constexpr const TSymbolUniqueId textureLodOffset_USampler1DArray1_Float2_Float1_Int1 = TSymbolUniqueId(1212); static constexpr const TSymbolUniqueId - textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1 = TSymbolUniqueId(1213); + textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1 = TSymbolUniqueId(1213); + static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 = + TSymbolUniqueId(1214); + static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 = + TSymbolUniqueId(1215); + static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 = + TSymbolUniqueId(1216); + static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 = + TSymbolUniqueId(1217); + static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 = + TSymbolUniqueId(1218); + static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 = + TSymbolUniqueId(1219); + static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 = + TSymbolUniqueId(1220); + static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 = + TSymbolUniqueId(1221); + static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 = + TSymbolUniqueId(1222); + static constexpr const TSymbolUniqueId + textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(1223); + static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float2_Float1_Int1 = + TSymbolUniqueId(1224); + static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float2_Float1_Int1 = + TSymbolUniqueId(1225); + static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float2_Float1_Int1 = + TSymbolUniqueId(1226); + static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float4_Float1_Int1 = + TSymbolUniqueId(1227); + static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float4_Float1_Int1 = + TSymbolUniqueId(1228); + static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float4_Float1_Int1 = + TSymbolUniqueId(1229); + static constexpr const TSymbolUniqueId + textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1 = TSymbolUniqueId(1230); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(1214); + TSymbolUniqueId(1231); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(1215); + TSymbolUniqueId(1232); static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 = - TSymbolUniqueId(1216); + TSymbolUniqueId(1233); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(1217); + TSymbolUniqueId(1234); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(1218); + TSymbolUniqueId(1235); static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 = - TSymbolUniqueId(1219); + TSymbolUniqueId(1236); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(1220); + TSymbolUniqueId(1237); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(1221); + TSymbolUniqueId(1238); static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 = - TSymbolUniqueId(1222); + TSymbolUniqueId(1239); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler1D1_Int1_Int1_Int1 = - TSymbolUniqueId(1223); + TSymbolUniqueId(1240); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler1D1_Int1_Int1_Int1 = - TSymbolUniqueId(1224); + TSymbolUniqueId(1241); static constexpr const TSymbolUniqueId texelFetchOffset_USampler1D1_Int1_Int1_Int1 = - TSymbolUniqueId(1225); + TSymbolUniqueId(1242); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DRect1_Int2_Int2 = - TSymbolUniqueId(1226); + TSymbolUniqueId(1243); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DRect1_Int2_Int2 = - TSymbolUniqueId(1227); + TSymbolUniqueId(1244); static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DRect1_Int2_Int2 = - TSymbolUniqueId(1228); + TSymbolUniqueId(1245); static constexpr const TSymbolUniqueId texelFetchOffset_Sampler1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(1229); + TSymbolUniqueId(1246); static constexpr const TSymbolUniqueId texelFetchOffset_ISampler1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(1230); + TSymbolUniqueId(1247); static constexpr const TSymbolUniqueId texelFetchOffset_USampler1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(1231); + TSymbolUniqueId(1248); static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(1232); + TSymbolUniqueId(1249); static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(1233); + TSymbolUniqueId(1250); static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 = - TSymbolUniqueId(1234); + TSymbolUniqueId(1251); static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(1235); + TSymbolUniqueId(1252); static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(1236); + TSymbolUniqueId(1253); static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 = - TSymbolUniqueId(1237); + TSymbolUniqueId(1254); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1238); + textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1255); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1239); + textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1256); static constexpr const TSymbolUniqueId - textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1240); + textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1257); static constexpr const TSymbolUniqueId - textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1241); + textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1258); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1242); + textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1259); static constexpr const TSymbolUniqueId textureGradOffset_Sampler1D1_Float1_Float1_Float1_Int1 = - TSymbolUniqueId(1243); + TSymbolUniqueId(1260); static constexpr const TSymbolUniqueId textureGradOffset_ISampler1D1_Float1_Float1_Float1_Int1 = - TSymbolUniqueId(1244); + TSymbolUniqueId(1261); static constexpr const TSymbolUniqueId textureGradOffset_USampler1D1_Float1_Float1_Float1_Int1 = - TSymbolUniqueId(1245); + TSymbolUniqueId(1262); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1246); + textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1263); static constexpr const TSymbolUniqueId - textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1247); + textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1264); static constexpr const TSymbolUniqueId - textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1248); + textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1265); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1249); + textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1266); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1250); + textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1267); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1251); + textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1268); static constexpr const TSymbolUniqueId - textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1252); + textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1269); static constexpr const TSymbolUniqueId - textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1253); + textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1270); static constexpr const TSymbolUniqueId - textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1254); + textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1271); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1255); + textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1272); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1256); + textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1273); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1257); + textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1274); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1258); + textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1275); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1259); + textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1276); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1260); + textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1277); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1261); + textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1278); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1262); + textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1279); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1263); + textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1280); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1264); + textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1281); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1265); + textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1282); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1266); + textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1283); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1267); + textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1284); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1268); + textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1285); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1269); + textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1286); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1270); + textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1287); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1271); + textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1288); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1272); + textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1289); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1273); + textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1290); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1274); + textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1291); static constexpr const TSymbolUniqueId - textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1275); + textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1292); static constexpr const TSymbolUniqueId - textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1276); + textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1293); static constexpr const TSymbolUniqueId textureProjGradOffset_Sampler2DRectShadow1_Float4_Float2_Float2_Int2 = - TSymbolUniqueId(1277); + TSymbolUniqueId(1294); static constexpr const TSymbolUniqueId - textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1278); + textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1295); static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(1279); + TSymbolUniqueId(1296); static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(1280); + TSymbolUniqueId(1297); static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 = - TSymbolUniqueId(1281); + TSymbolUniqueId(1298); static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(1282); + TSymbolUniqueId(1299); static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(1283); + TSymbolUniqueId(1300); static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 = - TSymbolUniqueId(1284); + TSymbolUniqueId(1301); static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 = - TSymbolUniqueId(1285); + TSymbolUniqueId(1302); static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(1286); + TSymbolUniqueId(1303); static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(1287); + TSymbolUniqueId(1304); static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 = - TSymbolUniqueId(1288); + TSymbolUniqueId(1305); static constexpr const TSymbolUniqueId textureOffset_Sampler1D1_Float1_Int1_Float1 = - TSymbolUniqueId(1289); + TSymbolUniqueId(1306); static constexpr const TSymbolUniqueId textureOffset_ISampler1D1_Float1_Int1_Float1 = - TSymbolUniqueId(1290); + TSymbolUniqueId(1307); static constexpr const TSymbolUniqueId textureOffset_USampler1D1_Float1_Int1_Float1 = - TSymbolUniqueId(1291); + TSymbolUniqueId(1308); static constexpr const TSymbolUniqueId textureOffset_Sampler1DShadow1_Float3_Int1_Float1 = - TSymbolUniqueId(1292); + TSymbolUniqueId(1309); static constexpr const TSymbolUniqueId textureOffset_Sampler1DArray1_Float2_Int1_Float1 = - TSymbolUniqueId(1293); + TSymbolUniqueId(1310); static constexpr const TSymbolUniqueId textureOffset_ISampler1DArray1_Float2_Int1_Float1 = - TSymbolUniqueId(1294); + TSymbolUniqueId(1311); static constexpr const TSymbolUniqueId textureOffset_USampler1DArray1_Float2_Int1_Float1 = - TSymbolUniqueId(1295); + TSymbolUniqueId(1312); static constexpr const TSymbolUniqueId textureOffset_Sampler1DArrayShadow1_Float3_Int1_Float1 = - TSymbolUniqueId(1296); + TSymbolUniqueId(1313); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(1297); + TSymbolUniqueId(1314); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(1298); + TSymbolUniqueId(1315); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 = - TSymbolUniqueId(1299); + TSymbolUniqueId(1316); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(1300); + TSymbolUniqueId(1317); static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(1301); + TSymbolUniqueId(1318); static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 = - TSymbolUniqueId(1302); + TSymbolUniqueId(1319); static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(1303); + TSymbolUniqueId(1320); static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(1304); + TSymbolUniqueId(1321); static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 = - TSymbolUniqueId(1305); + TSymbolUniqueId(1322); static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 = - TSymbolUniqueId(1306); + TSymbolUniqueId(1323); static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float2_Int1_Float1 = - TSymbolUniqueId(1307); + TSymbolUniqueId(1324); static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float2_Int1_Float1 = - TSymbolUniqueId(1308); + TSymbolUniqueId(1325); static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float2_Int1_Float1 = - TSymbolUniqueId(1309); + TSymbolUniqueId(1326); static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float4_Int1_Float1 = - TSymbolUniqueId(1310); + TSymbolUniqueId(1327); static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float4_Int1_Float1 = - TSymbolUniqueId(1311); + TSymbolUniqueId(1328); static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float4_Int1_Float1 = - TSymbolUniqueId(1312); + TSymbolUniqueId(1329); static constexpr const TSymbolUniqueId textureProjOffset_Sampler1DShadow1_Float4_Int1_Float1 = - TSymbolUniqueId(1313); - static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 = - TSymbolUniqueId(1314); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 = - TSymbolUniqueId(1315); - static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 = - TSymbolUniqueId(1316); - static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 = - TSymbolUniqueId(1317); - static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 = - TSymbolUniqueId(1318); - static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 = - TSymbolUniqueId(1319); - static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 = - TSymbolUniqueId(1320); - static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 = - TSymbolUniqueId(1321); - static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 = - TSymbolUniqueId(1322); - static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(1323); - static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 = - TSymbolUniqueId(1324); - static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 = - TSymbolUniqueId(1325); - static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 = - TSymbolUniqueId(1326); - static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(1327); - static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(1328); - static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(1329); + TSymbolUniqueId(1330); + static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(1331); + static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(1332); + static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(1333); static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 = - TSymbolUniqueId(1330); + TSymbolUniqueId(1334); static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 = - TSymbolUniqueId(1331); - static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 = - TSymbolUniqueId(1332); - static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 = - TSymbolUniqueId(1333); - static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 = - TSymbolUniqueId(1334); - static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 = TSymbolUniqueId(1335); - static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 = + static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 = TSymbolUniqueId(1336); + static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 = + TSymbolUniqueId(1337); + static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 = + TSymbolUniqueId(1338); + static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 = + TSymbolUniqueId(1339); + static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 = + TSymbolUniqueId(1340); static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 = - TSymbolUniqueId(1337); + TSymbolUniqueId(1341); static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 = - TSymbolUniqueId(1338); + TSymbolUniqueId(1342); static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 = - TSymbolUniqueId(1339); + TSymbolUniqueId(1343); static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 = - TSymbolUniqueId(1340); + TSymbolUniqueId(1344); static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 = - TSymbolUniqueId(1341); + TSymbolUniqueId(1345); static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 = - TSymbolUniqueId(1342); + TSymbolUniqueId(1346); static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 = - TSymbolUniqueId(1343); + TSymbolUniqueId(1347); static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 = - TSymbolUniqueId(1344); - static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3 = - TSymbolUniqueId(1345); - static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3 = - TSymbolUniqueId(1346); - static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3 = - TSymbolUniqueId(1347); - static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3_Int1 = TSymbolUniqueId(1348); - static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3_Int1 = + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 = TSymbolUniqueId(1349); - static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3_Int1 = + static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 = TSymbolUniqueId(1350); - static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 = + static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 = TSymbolUniqueId(1351); - static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 = + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 = TSymbolUniqueId(1352); - static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 = + static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 = TSymbolUniqueId(1353); - static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 = TSymbolUniqueId(1354); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 = + static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 = TSymbolUniqueId(1355); - static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 = + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4 = TSymbolUniqueId(1356); + static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4 = + TSymbolUniqueId(1357); + static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4 = + TSymbolUniqueId(1358); + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(1359); + static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(1360); + static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4_Int1 = + TSymbolUniqueId(1361); + static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1 = + TSymbolUniqueId(1362); + static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3 = + TSymbolUniqueId(1363); + static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3 = + TSymbolUniqueId(1364); + static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3 = + TSymbolUniqueId(1365); + static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3_Int1 = + TSymbolUniqueId(1366); + static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3_Int1 = + TSymbolUniqueId(1367); + static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3_Int1 = + TSymbolUniqueId(1368); static constexpr const TSymbolUniqueId textureGather_Sampler2DRectShadow1_Float2_Float1 = - TSymbolUniqueId(1357); + TSymbolUniqueId(1369); + static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 = + TSymbolUniqueId(1370); + static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 = + TSymbolUniqueId(1371); + static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 = + TSymbolUniqueId(1372); + static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 = + TSymbolUniqueId(1373); + static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 = + TSymbolUniqueId(1374); + static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 = + TSymbolUniqueId(1375); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 = - TSymbolUniqueId(1358); + TSymbolUniqueId(1376); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 = - TSymbolUniqueId(1359); + TSymbolUniqueId(1377); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 = - TSymbolUniqueId(1360); + TSymbolUniqueId(1378); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 = - TSymbolUniqueId(1361); + TSymbolUniqueId(1379); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 = - TSymbolUniqueId(1362); + TSymbolUniqueId(1380); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 = - TSymbolUniqueId(1363); + TSymbolUniqueId(1381); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 = - TSymbolUniqueId(1364); + TSymbolUniqueId(1382); static constexpr const TSymbolUniqueId - textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(1365); + textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(1383); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DRect1_Float2_Int2 = - TSymbolUniqueId(1366); + TSymbolUniqueId(1384); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DRect1_Float2_Int2 = - TSymbolUniqueId(1367); + TSymbolUniqueId(1385); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DRect1_Float2_Int2 = - TSymbolUniqueId(1368); + TSymbolUniqueId(1386); static constexpr const TSymbolUniqueId - textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2 = TSymbolUniqueId(1369); + textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2 = TSymbolUniqueId(1387); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(1370); + TSymbolUniqueId(1388); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(1371); + TSymbolUniqueId(1389); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 = - TSymbolUniqueId(1372); + TSymbolUniqueId(1390); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(1373); + TSymbolUniqueId(1391); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(1374); + TSymbolUniqueId(1392); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 = - TSymbolUniqueId(1375); + TSymbolUniqueId(1393); static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DRect1_Float2_Int2_Int1 = - TSymbolUniqueId(1376); + TSymbolUniqueId(1394); static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DRect1_Float2_Int2_Int1 = - TSymbolUniqueId(1377); + TSymbolUniqueId(1395); static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DRect1_Float2_Int2_Int1 = - TSymbolUniqueId(1378); + TSymbolUniqueId(1396); static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1379); - static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(1380); + TSymbolUniqueId(1397); + static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(1398); static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1381); + TSymbolUniqueId(1399); static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1382); + TSymbolUniqueId(1400); static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1383); + TSymbolUniqueId(1401); static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1384); + TSymbolUniqueId(1402); static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1385); - static constexpr const TSymbolUniqueId - textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1386); - static constexpr const TSymbolUniqueId - textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1387); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1388); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1389); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 = - TSymbolUniqueId(1390); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1391); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1392); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 = - TSymbolUniqueId(1393); - static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1394); - static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1395); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2 = - TSymbolUniqueId(1396); - static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2 = - TSymbolUniqueId(1397); - static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2 = - TSymbolUniqueId(1398); - static constexpr const TSymbolUniqueId - textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1399); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1400); - static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1401); - static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1402); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1403); static constexpr const TSymbolUniqueId - textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1404); - static constexpr const TSymbolUniqueId - textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1405); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1406); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1407); - static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1408); + textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1404); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1409); - static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1410); + textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1405); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 = + TSymbolUniqueId(1406); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 = + TSymbolUniqueId(1407); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 = + TSymbolUniqueId(1408); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(1409); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(1410); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 = + TSymbolUniqueId(1411); static constexpr const TSymbolUniqueId - textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1411); - static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1412); - static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1 = - TSymbolUniqueId(1413); - static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1 = + textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1412); + static constexpr const TSymbolUniqueId + textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1413); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2 = TSymbolUniqueId(1414); - static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(1415); - static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(1416); - static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(1417); - static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(1418); - static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(1419); - static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(1420); - static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(1421); - static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(1422); - static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(1423); - static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(1424); - static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(1425); - static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(1426); - static constexpr const TSymbolUniqueId dFdxFine_Float1 = TSymbolUniqueId(1427); - static constexpr const TSymbolUniqueId dFdxFine_Float2 = TSymbolUniqueId(1428); - static constexpr const TSymbolUniqueId dFdxFine_Float3 = TSymbolUniqueId(1429); - static constexpr const TSymbolUniqueId dFdxFine_Float4 = TSymbolUniqueId(1430); - static constexpr const TSymbolUniqueId dFdyFine_Float1 = TSymbolUniqueId(1431); - static constexpr const TSymbolUniqueId dFdyFine_Float2 = TSymbolUniqueId(1432); - static constexpr const TSymbolUniqueId dFdyFine_Float3 = TSymbolUniqueId(1433); - static constexpr const TSymbolUniqueId dFdyFine_Float4 = TSymbolUniqueId(1434); - static constexpr const TSymbolUniqueId dFdxCoarse_Float1 = TSymbolUniqueId(1435); - static constexpr const TSymbolUniqueId dFdxCoarse_Float2 = TSymbolUniqueId(1436); - static constexpr const TSymbolUniqueId dFdxCoarse_Float3 = TSymbolUniqueId(1437); - static constexpr const TSymbolUniqueId dFdxCoarse_Float4 = TSymbolUniqueId(1438); - static constexpr const TSymbolUniqueId dFdyCoarse_Float1 = TSymbolUniqueId(1439); - static constexpr const TSymbolUniqueId dFdyCoarse_Float2 = TSymbolUniqueId(1440); - static constexpr const TSymbolUniqueId dFdyCoarse_Float3 = TSymbolUniqueId(1441); - static constexpr const TSymbolUniqueId dFdyCoarse_Float4 = TSymbolUniqueId(1442); - static constexpr const TSymbolUniqueId fwidthFine_Float1 = TSymbolUniqueId(1443); - static constexpr const TSymbolUniqueId fwidthFine_Float2 = TSymbolUniqueId(1444); - static constexpr const TSymbolUniqueId fwidthFine_Float3 = TSymbolUniqueId(1445); - static constexpr const TSymbolUniqueId fwidthFine_Float4 = TSymbolUniqueId(1446); - static constexpr const TSymbolUniqueId fwidthCoarse_Float1 = TSymbolUniqueId(1447); - static constexpr const TSymbolUniqueId fwidthCoarse_Float2 = TSymbolUniqueId(1448); - static constexpr const TSymbolUniqueId fwidthCoarse_Float3 = TSymbolUniqueId(1449); - static constexpr const TSymbolUniqueId fwidthCoarse_Float4 = TSymbolUniqueId(1450); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(1451); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(1452); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(1453); - static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(1454); - static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(1455); - static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(1456); - static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(1457); - static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(1458); + static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2 = + TSymbolUniqueId(1415); + static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2 = + TSymbolUniqueId(1416); + static constexpr const TSymbolUniqueId + textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1417); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1418); + static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1419); + static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1420); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 = + TSymbolUniqueId(1421); + static constexpr const TSymbolUniqueId + textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1422); + static constexpr const TSymbolUniqueId + textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1423); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1424); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1425); + static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1426); + static constexpr const TSymbolUniqueId + textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1427); + static constexpr const TSymbolUniqueId + textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1428); + static constexpr const TSymbolUniqueId + textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1429); + static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1430); + static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1431); + static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1 = + TSymbolUniqueId(1432); + static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 = + TSymbolUniqueId(1433); + static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(1434); + static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 = + TSymbolUniqueId(1435); + static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(1436); + static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(1437); + static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(1438); + static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(1439); + static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(1440); + static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(1441); + static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(1442); + static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(1443); + static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(1444); + static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(1445); + static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(1446); + static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(1447); + static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(1448); + static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(1449); + static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(1450); + static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(1451); + static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(1452); + static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(1453); + static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(1454); + static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(1455); + static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(1456); + static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(1457); + static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(1458); + static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(1459); + static constexpr const TSymbolUniqueId dFdxFine_Float1 = TSymbolUniqueId(1460); + static constexpr const TSymbolUniqueId dFdxFine_Float2 = TSymbolUniqueId(1461); + static constexpr const TSymbolUniqueId dFdxFine_Float3 = TSymbolUniqueId(1462); + static constexpr const TSymbolUniqueId dFdxFine_Float4 = TSymbolUniqueId(1463); + static constexpr const TSymbolUniqueId dFdyFine_Float1 = TSymbolUniqueId(1464); + static constexpr const TSymbolUniqueId dFdyFine_Float2 = TSymbolUniqueId(1465); + static constexpr const TSymbolUniqueId dFdyFine_Float3 = TSymbolUniqueId(1466); + static constexpr const TSymbolUniqueId dFdyFine_Float4 = TSymbolUniqueId(1467); + static constexpr const TSymbolUniqueId dFdxCoarse_Float1 = TSymbolUniqueId(1468); + static constexpr const TSymbolUniqueId dFdxCoarse_Float2 = TSymbolUniqueId(1469); + static constexpr const TSymbolUniqueId dFdxCoarse_Float3 = TSymbolUniqueId(1470); + static constexpr const TSymbolUniqueId dFdxCoarse_Float4 = TSymbolUniqueId(1471); + static constexpr const TSymbolUniqueId dFdyCoarse_Float1 = TSymbolUniqueId(1472); + static constexpr const TSymbolUniqueId dFdyCoarse_Float2 = TSymbolUniqueId(1473); + static constexpr const TSymbolUniqueId dFdyCoarse_Float3 = TSymbolUniqueId(1474); + static constexpr const TSymbolUniqueId dFdyCoarse_Float4 = TSymbolUniqueId(1475); + static constexpr const TSymbolUniqueId fwidthFine_Float1 = TSymbolUniqueId(1476); + static constexpr const TSymbolUniqueId fwidthFine_Float2 = TSymbolUniqueId(1477); + static constexpr const TSymbolUniqueId fwidthFine_Float3 = TSymbolUniqueId(1478); + static constexpr const TSymbolUniqueId fwidthFine_Float4 = TSymbolUniqueId(1479); + static constexpr const TSymbolUniqueId fwidthCoarse_Float1 = TSymbolUniqueId(1480); + static constexpr const TSymbolUniqueId fwidthCoarse_Float2 = TSymbolUniqueId(1481); + static constexpr const TSymbolUniqueId fwidthCoarse_Float3 = TSymbolUniqueId(1482); + static constexpr const TSymbolUniqueId fwidthCoarse_Float4 = TSymbolUniqueId(1483); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(1484); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(1485); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(1486); + static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(1487); + static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(1488); + static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(1489); + static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(1490); + static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(1491); static constexpr const TSymbolUniqueId interpolateAtOffset_Float1_Float2 = - TSymbolUniqueId(1459); + TSymbolUniqueId(1492); static constexpr const TSymbolUniqueId interpolateAtOffset_Float2_Float2 = - TSymbolUniqueId(1460); + TSymbolUniqueId(1493); static constexpr const TSymbolUniqueId interpolateAtOffset_Float3_Float2 = - TSymbolUniqueId(1461); + TSymbolUniqueId(1494); static constexpr const TSymbolUniqueId interpolateAtOffset_Float4_Float2 = - TSymbolUniqueId(1462); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(1463); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(1464); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(1465); - static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(1466); + TSymbolUniqueId(1495); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(1496); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(1497); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(1498); + static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(1499); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float1_Int1 = - TSymbolUniqueId(1467); + TSymbolUniqueId(1500); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float2_Int1 = - TSymbolUniqueId(1468); + TSymbolUniqueId(1501); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float3_Int1 = - TSymbolUniqueId(1469); + TSymbolUniqueId(1502); static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float4_Int1 = - TSymbolUniqueId(1470); + TSymbolUniqueId(1503); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float1_Float2 = - TSymbolUniqueId(1471); + TSymbolUniqueId(1504); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float2_Float2 = - TSymbolUniqueId(1472); + TSymbolUniqueId(1505); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float3_Float2 = - TSymbolUniqueId(1473); + TSymbolUniqueId(1506); static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float4_Float2 = - TSymbolUniqueId(1474); - static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(1475); - static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(1476); + TSymbolUniqueId(1507); + static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(1508); + static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(1509); static constexpr const TSymbolUniqueId atomicCounterIncrement_AtomicCounter1 = - TSymbolUniqueId(1477); + TSymbolUniqueId(1510); static constexpr const TSymbolUniqueId atomicCounterDecrement_AtomicCounter1 = - TSymbolUniqueId(1478); + TSymbolUniqueId(1511); static constexpr const TSymbolUniqueId atomicCounterAdd_AtomicCounter1_UInt1 = - TSymbolUniqueId(1479); + TSymbolUniqueId(1512); static constexpr const TSymbolUniqueId atomicCounterSubtract_AtomicCounter1_UInt1 = - TSymbolUniqueId(1480); + TSymbolUniqueId(1513); static constexpr const TSymbolUniqueId atomicCounterMin_AtomicCounter1_UInt1 = - TSymbolUniqueId(1481); + TSymbolUniqueId(1514); static constexpr const TSymbolUniqueId atomicCounterMax_AtomicCounter1_UInt1 = - TSymbolUniqueId(1482); + TSymbolUniqueId(1515); static constexpr const TSymbolUniqueId atomicCounterAnd_AtomicCounter1_UInt1 = - TSymbolUniqueId(1483); + TSymbolUniqueId(1516); static constexpr const TSymbolUniqueId atomicCounterOr_AtomicCounter1_UInt1 = - TSymbolUniqueId(1484); + TSymbolUniqueId(1517); static constexpr const TSymbolUniqueId atomicCounterXor_AtomicCounter1_UInt1 = - TSymbolUniqueId(1485); + TSymbolUniqueId(1518); static constexpr const TSymbolUniqueId atomicCounterExchange_AtomicCounter1_UInt1 = - TSymbolUniqueId(1486); + TSymbolUniqueId(1519); static constexpr const TSymbolUniqueId atomicCounterCompSwap_AtomicCounter1_UInt1_UInt1 = - TSymbolUniqueId(1487); - static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(1488); - static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(1489); - static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(1490); - static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(1491); - static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(1492); - static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(1493); - static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(1494); - static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(1495); - static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(1496); - static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(1497); - static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(1498); - static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(1499); - static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(1500); - static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(1501); - static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(1502); - static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(1503); - static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(1504); - static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(1505); - static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(1506); - static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(1507); - static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(1508); - static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(1509); - static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(1510); - static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(1511); - static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(1512); - static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(1513); - static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(1514); - static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(1515); - static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(1516); - static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(1517); - static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(1518); - static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(1519); - static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(1520); - static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(1521); - static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(1522); - static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(1523); - static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(1524); - static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(1525); - static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(1526); - static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(1527); - static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(1528); - static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(1529); - static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(1530); - static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(1531); - static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(1532); - static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(1533); - static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(1534); - static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(1535); - static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(1536); - static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(1537); - static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(1538); - static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(1539); - static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(1540); - static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(1541); - static constexpr const TSymbolUniqueId imageSize_Image1D1 = TSymbolUniqueId(1542); - static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(1543); - static constexpr const TSymbolUniqueId imageSize_IImage1D1 = TSymbolUniqueId(1544); - static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(1545); - static constexpr const TSymbolUniqueId imageSize_UImage1D1 = TSymbolUniqueId(1546); - static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(1547); - static constexpr const TSymbolUniqueId imageSize_ImageRect1 = TSymbolUniqueId(1548); - static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(1549); - static constexpr const TSymbolUniqueId imageSize_IImageRect1 = TSymbolUniqueId(1550); - static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(1551); - static constexpr const TSymbolUniqueId imageSize_UImageRect1 = TSymbolUniqueId(1552); - static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(1553); - static constexpr const TSymbolUniqueId imageSize_Image1DArray1 = TSymbolUniqueId(1554); - static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(1555); - static constexpr const TSymbolUniqueId imageSize_IImage1DArray1 = TSymbolUniqueId(1556); - static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(1557); - static constexpr const TSymbolUniqueId imageSize_UImage1DArray1 = TSymbolUniqueId(1558); - static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(1559); - static constexpr const TSymbolUniqueId imageSize_Image2DMS1 = TSymbolUniqueId(1560); - static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(1561); - static constexpr const TSymbolUniqueId imageSize_IImage2DMS1 = TSymbolUniqueId(1562); - static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(1563); - static constexpr const TSymbolUniqueId imageSize_UImage2DMS1 = TSymbolUniqueId(1564); - static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(1565); - static constexpr const TSymbolUniqueId imageSize_Image2DMSArray1 = TSymbolUniqueId(1566); - static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(1567); - static constexpr const TSymbolUniqueId imageSize_IImage2DMSArray1 = TSymbolUniqueId(1568); - static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(1569); - static constexpr const TSymbolUniqueId imageSize_UImage2DMSArray1 = TSymbolUniqueId(1570); - static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(1571); - static constexpr const TSymbolUniqueId imageSamples_Image2DMS1 = TSymbolUniqueId(1572); - static constexpr const TSymbolUniqueId imageSamples_IImage2DMS1 = TSymbolUniqueId(1573); - static constexpr const TSymbolUniqueId imageSamples_UImage2DMS1 = TSymbolUniqueId(1574); - static constexpr const TSymbolUniqueId imageSamples_Image2DMSArray1 = TSymbolUniqueId(1575); - static constexpr const TSymbolUniqueId imageSamples_IImage2DMSArray1 = TSymbolUniqueId(1576); - static constexpr const TSymbolUniqueId imageSamples_UImage2DMSArray1 = TSymbolUniqueId(1577); - static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(1578); - static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(1579); - static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(1580); - static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(1581); - static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(1582); - static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(1583); + TSymbolUniqueId(1520); + static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(1521); + static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(1522); + static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(1523); + static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(1524); + static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(1525); + static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(1526); + static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(1527); + static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(1528); + static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(1529); + static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(1530); + static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(1531); + static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(1532); + static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(1533); + static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(1534); + static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(1535); + static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(1536); + static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(1537); + static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(1538); + static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(1539); + static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(1540); + static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(1541); + static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(1542); + static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(1543); + static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(1544); + static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(1545); + static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(1546); + static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(1547); + static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(1548); + static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(1549); + static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(1550); + static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(1551); + static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(1552); + static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(1553); + static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(1554); + static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(1555); + static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(1556); + static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(1557); + static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(1558); + static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(1559); + static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(1560); + static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(1561); + static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(1562); + static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(1563); + static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(1564); + static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(1565); + static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(1566); + static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(1567); + static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(1568); + static constexpr const TSymbolUniqueId imageSizeExt_ImageCubeArray1 = TSymbolUniqueId(1569); + static constexpr const TSymbolUniqueId imageSizeExt_IImageCubeArray1 = TSymbolUniqueId(1570); + static constexpr const TSymbolUniqueId imageSizeExt_UImageCubeArray1 = TSymbolUniqueId(1571); + static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(1572); + static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(1573); + static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(1574); + static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(1575); + static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(1576); + static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(1577); + static constexpr const TSymbolUniqueId imageSizeExt_ImageBuffer1 = TSymbolUniqueId(1578); + static constexpr const TSymbolUniqueId imageSizeExt_IImageBuffer1 = TSymbolUniqueId(1579); + static constexpr const TSymbolUniqueId imageSizeExt_UImageBuffer1 = TSymbolUniqueId(1580); + static constexpr const TSymbolUniqueId imageSize_Image1D1 = TSymbolUniqueId(1581); + static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(1582); + static constexpr const TSymbolUniqueId imageSize_IImage1D1 = TSymbolUniqueId(1583); + static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(1584); + static constexpr const TSymbolUniqueId imageSize_UImage1D1 = TSymbolUniqueId(1585); + static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(1586); + static constexpr const TSymbolUniqueId imageSize_ImageRect1 = TSymbolUniqueId(1587); + static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(1588); + static constexpr const TSymbolUniqueId imageSize_IImageRect1 = TSymbolUniqueId(1589); + static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(1590); + static constexpr const TSymbolUniqueId imageSize_UImageRect1 = TSymbolUniqueId(1591); + static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(1592); + static constexpr const TSymbolUniqueId imageSize_Image1DArray1 = TSymbolUniqueId(1593); + static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(1594); + static constexpr const TSymbolUniqueId imageSize_IImage1DArray1 = TSymbolUniqueId(1595); + static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(1596); + static constexpr const TSymbolUniqueId imageSize_UImage1DArray1 = TSymbolUniqueId(1597); + static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(1598); + static constexpr const TSymbolUniqueId imageSize_Image2DMS1 = TSymbolUniqueId(1599); + static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(1600); + static constexpr const TSymbolUniqueId imageSize_IImage2DMS1 = TSymbolUniqueId(1601); + static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(1602); + static constexpr const TSymbolUniqueId imageSize_UImage2DMS1 = TSymbolUniqueId(1603); + static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(1604); + static constexpr const TSymbolUniqueId imageSize_Image2DMSArray1 = TSymbolUniqueId(1605); + static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(1606); + static constexpr const TSymbolUniqueId imageSize_IImage2DMSArray1 = TSymbolUniqueId(1607); + static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(1608); + static constexpr const TSymbolUniqueId imageSize_UImage2DMSArray1 = TSymbolUniqueId(1609); + static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(1610); + static constexpr const TSymbolUniqueId imageSamples_Image2DMS1 = TSymbolUniqueId(1611); + static constexpr const TSymbolUniqueId imageSamples_IImage2DMS1 = TSymbolUniqueId(1612); + static constexpr const TSymbolUniqueId imageSamples_UImage2DMS1 = TSymbolUniqueId(1613); + static constexpr const TSymbolUniqueId imageSamples_Image2DMSArray1 = TSymbolUniqueId(1614); + static constexpr const TSymbolUniqueId imageSamples_IImage2DMSArray1 = TSymbolUniqueId(1615); + static constexpr const TSymbolUniqueId imageSamples_UImage2DMSArray1 = TSymbolUniqueId(1616); + static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(1617); + static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(1618); + static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(1619); + static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(1620); + static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(1621); + static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(1622); static constexpr const TSymbolUniqueId imageStore_Image2DArray1_Int3_Float4 = - TSymbolUniqueId(1584); + TSymbolUniqueId(1623); static constexpr const TSymbolUniqueId imageStore_IImage2DArray1_Int3_Int4 = - TSymbolUniqueId(1585); + TSymbolUniqueId(1624); static constexpr const TSymbolUniqueId imageStore_UImage2DArray1_Int3_UInt4 = - TSymbolUniqueId(1586); + TSymbolUniqueId(1625); static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 = - TSymbolUniqueId(1587); - static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(1588); + TSymbolUniqueId(1626); + static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(1627); static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 = - TSymbolUniqueId(1589); + TSymbolUniqueId(1628); static constexpr const TSymbolUniqueId imageStore_ImageCubeArray1_Int3_Float4 = - TSymbolUniqueId(1590); + TSymbolUniqueId(1629); static constexpr const TSymbolUniqueId imageStore_IImageCubeArray1_Int3_Int4 = - TSymbolUniqueId(1591); + TSymbolUniqueId(1630); static constexpr const TSymbolUniqueId imageStore_UImageCubeArray1_Int3_UInt4 = - TSymbolUniqueId(1592); + TSymbolUniqueId(1631); + static constexpr const TSymbolUniqueId imageStoreExt_ImageCubeArray1_Int3_Float4 = + TSymbolUniqueId(1632); + static constexpr const TSymbolUniqueId imageStoreExt_IImageCubeArray1_Int3_Int4 = + TSymbolUniqueId(1633); + static constexpr const TSymbolUniqueId imageStoreExt_UImageCubeArray1_Int3_UInt4 = + TSymbolUniqueId(1634); static constexpr const TSymbolUniqueId imageStore_ImageBuffer1_Int1_Float4 = - TSymbolUniqueId(1593); + TSymbolUniqueId(1635); static constexpr const TSymbolUniqueId imageStore_IImageBuffer1_Int1_Int4 = - TSymbolUniqueId(1594); + TSymbolUniqueId(1636); static constexpr const TSymbolUniqueId imageStore_UImageBuffer1_Int1_UInt4 = - TSymbolUniqueId(1595); - static constexpr const TSymbolUniqueId imageStore_Image1D1_Int1_Float4 = TSymbolUniqueId(1596); - static constexpr const TSymbolUniqueId imageStore_IImage1D1_Int1_Int4 = TSymbolUniqueId(1597); - static constexpr const TSymbolUniqueId imageStore_UImage1D1_Int1_UInt4 = TSymbolUniqueId(1598); + TSymbolUniqueId(1637); + static constexpr const TSymbolUniqueId imageStoreExt_ImageBuffer1_Int1_Float4 = + TSymbolUniqueId(1638); + static constexpr const TSymbolUniqueId imageStoreExt_IImageBuffer1_Int1_Int4 = + TSymbolUniqueId(1639); + static constexpr const TSymbolUniqueId imageStoreExt_UImageBuffer1_Int1_UInt4 = + TSymbolUniqueId(1640); + static constexpr const TSymbolUniqueId imageStore_Image1D1_Int1_Float4 = TSymbolUniqueId(1641); + static constexpr const TSymbolUniqueId imageStore_IImage1D1_Int1_Int4 = TSymbolUniqueId(1642); + static constexpr const TSymbolUniqueId imageStore_UImage1D1_Int1_UInt4 = TSymbolUniqueId(1643); static constexpr const TSymbolUniqueId imageStore_Image1DArray1_Int2_Float4 = - TSymbolUniqueId(1599); + TSymbolUniqueId(1644); static constexpr const TSymbolUniqueId imageStore_IImage1DArray1_Int2_Int4 = - TSymbolUniqueId(1600); + TSymbolUniqueId(1645); static constexpr const TSymbolUniqueId imageStore_UImage1DArray1_Int2_UInt4 = - TSymbolUniqueId(1601); + TSymbolUniqueId(1646); static constexpr const TSymbolUniqueId imageStore_ImageRect1_Int2_Float4 = - TSymbolUniqueId(1602); - static constexpr const TSymbolUniqueId imageStore_IImageRect1_Int2_Int4 = TSymbolUniqueId(1603); + TSymbolUniqueId(1647); + static constexpr const TSymbolUniqueId imageStore_IImageRect1_Int2_Int4 = TSymbolUniqueId(1648); static constexpr const TSymbolUniqueId imageStore_UImageRect1_Int2_UInt4 = - TSymbolUniqueId(1604); + TSymbolUniqueId(1649); static constexpr const TSymbolUniqueId imageStore_Image2DMS1_Int2_Int1_Float4 = - TSymbolUniqueId(1605); + TSymbolUniqueId(1650); static constexpr const TSymbolUniqueId imageStore_IImage2DMS1_Int2_Int1_Int4 = - TSymbolUniqueId(1606); + TSymbolUniqueId(1651); static constexpr const TSymbolUniqueId imageStore_UImage2DMS1_Int2_Int1_UInt4 = - TSymbolUniqueId(1607); + TSymbolUniqueId(1652); static constexpr const TSymbolUniqueId imageStore_Image2DMSArray1_Int3_Int1_Float4 = - TSymbolUniqueId(1608); + TSymbolUniqueId(1653); static constexpr const TSymbolUniqueId imageStore_IImage2DMSArray1_Int3_Int1_Int4 = - TSymbolUniqueId(1609); + TSymbolUniqueId(1654); static constexpr const TSymbolUniqueId imageStore_UImage2DMSArray1_Int3_Int1_UInt4 = - TSymbolUniqueId(1610); - static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(1611); - static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(1612); - static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(1613); - static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(1614); - static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(1615); - static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(1616); - static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(1617); - static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(1618); - static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(1619); - static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(1620); - static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(1621); - static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(1622); - static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(1623); - static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(1624); - static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(1625); - static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(1626); - static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(1627); - static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(1628); - static constexpr const TSymbolUniqueId imageLoad_Image1D1_Int1 = TSymbolUniqueId(1629); - static constexpr const TSymbolUniqueId imageLoad_IImage1D1_Int1 = TSymbolUniqueId(1630); - static constexpr const TSymbolUniqueId imageLoad_UImage1D1_Int1 = TSymbolUniqueId(1631); - static constexpr const TSymbolUniqueId imageLoad_Image1DArray1_Int2 = TSymbolUniqueId(1632); - static constexpr const TSymbolUniqueId imageLoad_IImage1DArray1_Int2 = TSymbolUniqueId(1633); - static constexpr const TSymbolUniqueId imageLoad_UImage1DArray1_Int2 = TSymbolUniqueId(1634); - static constexpr const TSymbolUniqueId imageLoad_ImageRect1_Int2 = TSymbolUniqueId(1635); - static constexpr const TSymbolUniqueId imageLoad_IImageRect1_Int2 = TSymbolUniqueId(1636); - static constexpr const TSymbolUniqueId imageLoad_UImageRect1_Int2 = TSymbolUniqueId(1637); - static constexpr const TSymbolUniqueId imageLoad_Image2DMS1_Int2_Int1 = TSymbolUniqueId(1638); - static constexpr const TSymbolUniqueId imageLoad_IImage2DMS1_Int2_Int1 = TSymbolUniqueId(1639); - static constexpr const TSymbolUniqueId imageLoad_UImage2DMS1_Int2_Int1 = TSymbolUniqueId(1640); - static constexpr const TSymbolUniqueId imageLoad_Image2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1641); - static constexpr const TSymbolUniqueId imageLoad_IImage2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1642); - static constexpr const TSymbolUniqueId imageLoad_UImage2DMSArray1_Int3_Int1 = - TSymbolUniqueId(1643); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_UInt1 = - TSymbolUniqueId(1644); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(1645); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(1646); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_UInt1 = - TSymbolUniqueId(1647); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(1648); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(1649); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(1650); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(1651); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(1652); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1653); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1654); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1655); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(1656); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1657); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1658); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1659); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1660); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1661); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_UInt1 = - TSymbolUniqueId(1662); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(1663); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(1664); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(1665); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1666); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1667); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(1668); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(1669); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(1670); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(1656); + static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(1657); + static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(1658); + static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(1659); + static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(1660); + static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(1661); + static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(1662); + static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(1663); + static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(1664); + static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(1665); + static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(1666); + static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(1667); + static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(1668); + static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(1669); + static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(1670); + static constexpr const TSymbolUniqueId imageLoadExt_ImageCubeArray1_Int3 = TSymbolUniqueId(1671); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageLoadExt_IImageCubeArray1_Int3 = TSymbolUniqueId(1672); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageLoadExt_UImageCubeArray1_Int3 = TSymbolUniqueId(1673); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1674); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1675); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1676); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_Int1 = - TSymbolUniqueId(1677); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_Int1 = - TSymbolUniqueId(1678); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_Int1 = - TSymbolUniqueId(1679); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_Int1 = - TSymbolUniqueId(1680); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_Int1 = - TSymbolUniqueId(1681); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_Int1 = - TSymbolUniqueId(1682); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_Int1 = - TSymbolUniqueId(1683); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_Int1 = - TSymbolUniqueId(1684); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_Int1 = - TSymbolUniqueId(1685); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1686); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1687); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1688); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(1689); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1690); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1691); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(1674); + static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(1675); + static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(1676); + static constexpr const TSymbolUniqueId imageLoadExt_ImageBuffer1_Int1 = TSymbolUniqueId(1677); + static constexpr const TSymbolUniqueId imageLoadExt_IImageBuffer1_Int1 = TSymbolUniqueId(1678); + static constexpr const TSymbolUniqueId imageLoadExt_UImageBuffer1_Int1 = TSymbolUniqueId(1679); + static constexpr const TSymbolUniqueId imageLoad_Image1D1_Int1 = TSymbolUniqueId(1680); + static constexpr const TSymbolUniqueId imageLoad_IImage1D1_Int1 = TSymbolUniqueId(1681); + static constexpr const TSymbolUniqueId imageLoad_UImage1D1_Int1 = TSymbolUniqueId(1682); + static constexpr const TSymbolUniqueId imageLoad_Image1DArray1_Int2 = TSymbolUniqueId(1683); + static constexpr const TSymbolUniqueId imageLoad_IImage1DArray1_Int2 = TSymbolUniqueId(1684); + static constexpr const TSymbolUniqueId imageLoad_UImage1DArray1_Int2 = TSymbolUniqueId(1685); + static constexpr const TSymbolUniqueId imageLoad_ImageRect1_Int2 = TSymbolUniqueId(1686); + static constexpr const TSymbolUniqueId imageLoad_IImageRect1_Int2 = TSymbolUniqueId(1687); + static constexpr const TSymbolUniqueId imageLoad_UImageRect1_Int2 = TSymbolUniqueId(1688); + static constexpr const TSymbolUniqueId imageLoad_Image2DMS1_Int2_Int1 = TSymbolUniqueId(1689); + static constexpr const TSymbolUniqueId imageLoad_IImage2DMS1_Int2_Int1 = TSymbolUniqueId(1690); + static constexpr const TSymbolUniqueId imageLoad_UImage2DMS1_Int2_Int1 = TSymbolUniqueId(1691); + static constexpr const TSymbolUniqueId imageLoad_Image2DMSArray1_Int3_Int1 = TSymbolUniqueId(1692); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageLoad_IImage2DMSArray1_Int3_Int1 = TSymbolUniqueId(1693); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageLoad_UImage2DMSArray1_Int3_Int1 = TSymbolUniqueId(1694); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_UInt1 = TSymbolUniqueId(1695); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_UInt1 = TSymbolUniqueId(1696); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_UInt1 = TSymbolUniqueId(1697); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_UInt1 = TSymbolUniqueId(1698); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_UInt1 = TSymbolUniqueId(1699); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_UInt1 = TSymbolUniqueId(1700); - static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_UInt1 = TSymbolUniqueId(1701); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_UInt1 = TSymbolUniqueId(1702); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_UInt1 = TSymbolUniqueId(1703); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1704); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1705); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1706); - static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(1707); - static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(1708); - static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(1709); - static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1710); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1711); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1712); - static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_UInt1 = TSymbolUniqueId(1713); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_UInt1 = TSymbolUniqueId(1714); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_UInt1 = TSymbolUniqueId(1715); - static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(1716); - static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(1717); - static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(1718); - static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_UInt1 = TSymbolUniqueId(1719); - static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_UInt1 = TSymbolUniqueId(1720); - static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_UInt1 = TSymbolUniqueId(1721); - static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1722); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1723); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1724); - static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1725); - static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1726); - static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1727); - static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_Int1 = TSymbolUniqueId(1728); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_Int1 = TSymbolUniqueId(1729); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_Int1 = TSymbolUniqueId(1730); - static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_Int1 = TSymbolUniqueId(1731); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_Int1 = TSymbolUniqueId(1732); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_Int1 = TSymbolUniqueId(1733); - static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_Int1 = TSymbolUniqueId(1734); - static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_Int1 = TSymbolUniqueId(1735); - static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_Int1 = TSymbolUniqueId(1736); - static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(1737); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(1738); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(1739); - static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_Int1 = TSymbolUniqueId(1740); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(1741); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(1742); - static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(1743); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(1744); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(1745); - static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_Int1 = TSymbolUniqueId(1746); - static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_Int1 = TSymbolUniqueId(1747); - static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_Int1 = TSymbolUniqueId(1748); - static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_Int1 = TSymbolUniqueId(1749); + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_Int1 = + TSymbolUniqueId(1750); + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_Int1 = + TSymbolUniqueId(1751); + static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_Int1 = + TSymbolUniqueId(1752); + static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_Int1 = + TSymbolUniqueId(1753); + static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_Int1 = + TSymbolUniqueId(1754); + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(1755); + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(1756); + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(1757); + static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(1758); + static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(1759); + static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(1760); + static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_UInt1 = + TSymbolUniqueId(1761); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_UInt1 = + TSymbolUniqueId(1762); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_UInt1 = + TSymbolUniqueId(1763); + static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_UInt1 = + TSymbolUniqueId(1764); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_UInt1 = + TSymbolUniqueId(1765); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_UInt1 = + TSymbolUniqueId(1766); + static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_UInt1 = + TSymbolUniqueId(1767); + static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_UInt1 = + TSymbolUniqueId(1768); + static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_UInt1 = + TSymbolUniqueId(1769); + static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(1770); + static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(1771); + static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(1772); + static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_UInt1 = + TSymbolUniqueId(1773); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(1774); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(1775); + static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(1776); + static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(1777); + static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(1778); + static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_UInt1 = + TSymbolUniqueId(1779); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(1780); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(1781); + static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(1782); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(1783); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(1784); + static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(1785); + static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(1786); + static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(1787); + static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(1788); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(1789); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(1790); + static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(1791); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(1792); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(1793); + static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_Int1 = + TSymbolUniqueId(1794); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_Int1 = + TSymbolUniqueId(1795); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_Int1 = + TSymbolUniqueId(1796); + static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_Int1 = + TSymbolUniqueId(1797); + static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_Int1 = + TSymbolUniqueId(1798); + static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_Int1 = + TSymbolUniqueId(1799); + static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_Int1 = + TSymbolUniqueId(1800); static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_Int1 = - TSymbolUniqueId(1750); + TSymbolUniqueId(1801); static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_Int1 = - TSymbolUniqueId(1751); + TSymbolUniqueId(1802); static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1752); + TSymbolUniqueId(1803); static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1753); + TSymbolUniqueId(1804); static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1754); + TSymbolUniqueId(1805); static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(1755); + TSymbolUniqueId(1806); static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1756); + TSymbolUniqueId(1807); static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1757); + TSymbolUniqueId(1808); static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1758); + TSymbolUniqueId(1809); static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1759); + TSymbolUniqueId(1810); static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1760); + TSymbolUniqueId(1811); static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_Int1 = - TSymbolUniqueId(1761); + TSymbolUniqueId(1812); static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_Int1 = - TSymbolUniqueId(1762); + TSymbolUniqueId(1813); static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_Int1 = - TSymbolUniqueId(1763); + TSymbolUniqueId(1814); static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(1764); + TSymbolUniqueId(1815); static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1765); + TSymbolUniqueId(1816); static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1766); + TSymbolUniqueId(1817); static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_Int1 = - TSymbolUniqueId(1767); + TSymbolUniqueId(1818); static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_Int1 = - TSymbolUniqueId(1768); + TSymbolUniqueId(1819); static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_Int1 = - TSymbolUniqueId(1769); + TSymbolUniqueId(1820); static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1770); + TSymbolUniqueId(1821); static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1771); + TSymbolUniqueId(1822); static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1772); + TSymbolUniqueId(1823); static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1773); + TSymbolUniqueId(1824); static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1774); + TSymbolUniqueId(1825); static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1775); + TSymbolUniqueId(1826); static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_UInt1 = - TSymbolUniqueId(1776); + TSymbolUniqueId(1827); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(1777); + TSymbolUniqueId(1828); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(1778); + TSymbolUniqueId(1829); static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_UInt1 = - TSymbolUniqueId(1779); + TSymbolUniqueId(1830); static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(1780); + TSymbolUniqueId(1831); static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(1781); + TSymbolUniqueId(1832); static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(1782); + TSymbolUniqueId(1833); static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(1783); + TSymbolUniqueId(1834); static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(1784); + TSymbolUniqueId(1835); static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1785); + TSymbolUniqueId(1836); static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1786); + TSymbolUniqueId(1837); static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1787); + TSymbolUniqueId(1838); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(1788); + TSymbolUniqueId(1839); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1789); + TSymbolUniqueId(1840); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1790); + TSymbolUniqueId(1841); static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1791); + TSymbolUniqueId(1842); static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1792); + TSymbolUniqueId(1843); static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1793); + TSymbolUniqueId(1844); static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_UInt1 = - TSymbolUniqueId(1794); + TSymbolUniqueId(1845); static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(1795); + TSymbolUniqueId(1846); static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(1796); + TSymbolUniqueId(1847); static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(1797); + TSymbolUniqueId(1848); static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1798); + TSymbolUniqueId(1849); static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1799); + TSymbolUniqueId(1850); static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(1800); + TSymbolUniqueId(1851); static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(1801); + TSymbolUniqueId(1852); static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(1802); + TSymbolUniqueId(1853); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1803); + TSymbolUniqueId(1854); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1804); + TSymbolUniqueId(1855); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1805); + TSymbolUniqueId(1856); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1806); + TSymbolUniqueId(1857); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1807); + TSymbolUniqueId(1858); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1808); + TSymbolUniqueId(1859); static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_Int1 = - TSymbolUniqueId(1809); + TSymbolUniqueId(1860); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_Int1 = - TSymbolUniqueId(1810); + TSymbolUniqueId(1861); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_Int1 = - TSymbolUniqueId(1811); + TSymbolUniqueId(1862); static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_Int1 = - TSymbolUniqueId(1812); + TSymbolUniqueId(1863); static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_Int1 = - TSymbolUniqueId(1813); + TSymbolUniqueId(1864); static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_Int1 = - TSymbolUniqueId(1814); + TSymbolUniqueId(1865); static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_Int1 = - TSymbolUniqueId(1815); + TSymbolUniqueId(1866); static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_Int1 = - TSymbolUniqueId(1816); + TSymbolUniqueId(1867); static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_Int1 = - TSymbolUniqueId(1817); + TSymbolUniqueId(1868); static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1818); + TSymbolUniqueId(1869); static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1819); + TSymbolUniqueId(1870); static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1820); + TSymbolUniqueId(1871); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(1821); + TSymbolUniqueId(1872); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1822); + TSymbolUniqueId(1873); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1823); + TSymbolUniqueId(1874); static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1824); + TSymbolUniqueId(1875); static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1825); + TSymbolUniqueId(1876); static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1826); + TSymbolUniqueId(1877); static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_Int1 = - TSymbolUniqueId(1827); + TSymbolUniqueId(1878); static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_Int1 = - TSymbolUniqueId(1828); + TSymbolUniqueId(1879); static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_Int1 = - TSymbolUniqueId(1829); + TSymbolUniqueId(1880); static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(1830); + TSymbolUniqueId(1881); static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1831); + TSymbolUniqueId(1882); static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1832); + TSymbolUniqueId(1883); static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_Int1 = - TSymbolUniqueId(1833); + TSymbolUniqueId(1884); static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_Int1 = - TSymbolUniqueId(1834); + TSymbolUniqueId(1885); static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_Int1 = - TSymbolUniqueId(1835); + TSymbolUniqueId(1886); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1836); + TSymbolUniqueId(1887); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1837); + TSymbolUniqueId(1888); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1838); + TSymbolUniqueId(1889); static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1839); + TSymbolUniqueId(1890); static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1840); + TSymbolUniqueId(1891); static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1841); + TSymbolUniqueId(1892); static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_UInt1 = - TSymbolUniqueId(1842); + TSymbolUniqueId(1893); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(1843); + TSymbolUniqueId(1894); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(1844); + TSymbolUniqueId(1895); static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_UInt1 = - TSymbolUniqueId(1845); + TSymbolUniqueId(1896); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(1846); + TSymbolUniqueId(1897); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(1847); + TSymbolUniqueId(1898); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(1848); + TSymbolUniqueId(1899); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(1849); + TSymbolUniqueId(1900); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(1850); + TSymbolUniqueId(1901); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1851); + TSymbolUniqueId(1902); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1852); + TSymbolUniqueId(1903); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1853); + TSymbolUniqueId(1904); static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(1854); + TSymbolUniqueId(1905); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1855); + TSymbolUniqueId(1906); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1856); + TSymbolUniqueId(1907); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1857); + TSymbolUniqueId(1908); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1858); + TSymbolUniqueId(1909); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1859); + TSymbolUniqueId(1910); static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_UInt1 = - TSymbolUniqueId(1860); + TSymbolUniqueId(1911); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(1861); + TSymbolUniqueId(1912); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(1862); + TSymbolUniqueId(1913); static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(1863); + TSymbolUniqueId(1914); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1864); + TSymbolUniqueId(1915); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1865); + TSymbolUniqueId(1916); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(1866); + TSymbolUniqueId(1917); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(1867); + TSymbolUniqueId(1918); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(1868); + TSymbolUniqueId(1919); static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1869); + TSymbolUniqueId(1920); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1870); + TSymbolUniqueId(1921); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1871); + TSymbolUniqueId(1922); static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1872); + TSymbolUniqueId(1923); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1873); + TSymbolUniqueId(1924); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(1874); + TSymbolUniqueId(1925); static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_Int1 = - TSymbolUniqueId(1875); + TSymbolUniqueId(1926); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_Int1 = - TSymbolUniqueId(1876); + TSymbolUniqueId(1927); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_Int1 = - TSymbolUniqueId(1877); + TSymbolUniqueId(1928); static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_Int1 = - TSymbolUniqueId(1878); + TSymbolUniqueId(1929); static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_Int1 = - TSymbolUniqueId(1879); + TSymbolUniqueId(1930); static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_Int1 = - TSymbolUniqueId(1880); + TSymbolUniqueId(1931); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_Int1 = - TSymbolUniqueId(1881); + TSymbolUniqueId(1932); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_Int1 = - TSymbolUniqueId(1882); + TSymbolUniqueId(1933); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_Int1 = - TSymbolUniqueId(1883); + TSymbolUniqueId(1934); static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1884); + TSymbolUniqueId(1935); static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1885); + TSymbolUniqueId(1936); static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(1886); - static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(1887); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1888); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(1889); - static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1890); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1891); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(1892); - static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_Int1 = - TSymbolUniqueId(1893); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_Int1 = - TSymbolUniqueId(1894); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_Int1 = - TSymbolUniqueId(1895); - static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(1896); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1897); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(1898); - static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_Int1 = - TSymbolUniqueId(1899); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_Int1 = - TSymbolUniqueId(1900); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_Int1 = - TSymbolUniqueId(1901); - static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1902); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1903); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(1904); - static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1905); - static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1906); - static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(1907); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_UInt1 = - TSymbolUniqueId(1908); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(1909); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(1910); - static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_UInt1 = - TSymbolUniqueId(1911); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(1912); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(1913); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(1914); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(1915); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(1916); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1917); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1918); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(1919); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(1920); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1921); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(1922); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1923); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1924); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(1925); - static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_UInt1 = - TSymbolUniqueId(1926); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(1927); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(1928); - static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(1929); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1930); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(1931); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(1932); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(1933); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(1934); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1935); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(1936); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1937); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_Int1 = TSymbolUniqueId(1938); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(1939); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(1940); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_Int1 = TSymbolUniqueId(1941); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(1941); + static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(1942); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(1943); - static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_Int1 = TSymbolUniqueId(1944); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_Int1 = + TSymbolUniqueId(1944); + static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_Int1 = TSymbolUniqueId(1945); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_Int1 = TSymbolUniqueId(1946); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_Int1 = TSymbolUniqueId(1947); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(1948); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(1949); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_Int1 = TSymbolUniqueId(1950); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_Int1 = TSymbolUniqueId(1951); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_Int1 = TSymbolUniqueId(1952); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(1953); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(1954); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(1955); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(1956); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(1957); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(1958); - static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_Int1 = TSymbolUniqueId(1959); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_UInt1 = + TSymbolUniqueId(1959); + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_UInt1 = TSymbolUniqueId(1960); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_UInt1 = TSymbolUniqueId(1961); - static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_UInt1 = TSymbolUniqueId(1962); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_UInt1 = TSymbolUniqueId(1963); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_UInt1 = TSymbolUniqueId(1964); - static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_UInt1 = TSymbolUniqueId(1965); - static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_UInt1 = TSymbolUniqueId(1966); - static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_UInt1 = TSymbolUniqueId(1967); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1968); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1969); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(1970); - static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(1971); - static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(1972); - static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(1973); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1974); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1975); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(1976); - static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_UInt1 = TSymbolUniqueId(1977); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_UInt1 = TSymbolUniqueId(1978); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_UInt1 = TSymbolUniqueId(1979); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(1980); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(1981); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(1982); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_UInt1 = TSymbolUniqueId(1983); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_UInt1 = TSymbolUniqueId(1984); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_UInt1 = TSymbolUniqueId(1985); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1986); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1987); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(1988); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1989); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1990); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(1991); - static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_UInt1 = - TSymbolUniqueId(1992); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_Int1 = TSymbolUniqueId(1992); + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_Int1 = TSymbolUniqueId(1993); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_Int1 = TSymbolUniqueId(1994); - static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(1995); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_Int1 = TSymbolUniqueId(1995); + static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_Int1 = TSymbolUniqueId(1996); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_Int1 = TSymbolUniqueId(1997); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_Int1 = TSymbolUniqueId(1998); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_Int1 = TSymbolUniqueId(1999); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_Int1 = TSymbolUniqueId(2000); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2001); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2002); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2003); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2004); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2005); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2006); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2007); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2008); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2009); - static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_Int1 = - TSymbolUniqueId(2010); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_Int1 = TSymbolUniqueId(2010); + static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_Int1 = TSymbolUniqueId(2011); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_Int1 = TSymbolUniqueId(2012); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_Int1 = TSymbolUniqueId(2013); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(2014); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(2015); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_Int1 = TSymbolUniqueId(2016); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_Int1 = TSymbolUniqueId(2017); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_Int1 = TSymbolUniqueId(2018); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2019); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2020); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2021); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2022); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2023); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2024); - static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_UInt1 = TSymbolUniqueId(2025); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2026); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_UInt1 = TSymbolUniqueId(2027); - static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_UInt1 = TSymbolUniqueId(2028); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_UInt1 = TSymbolUniqueId(2029); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_UInt1 = TSymbolUniqueId(2030); - static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_UInt1 = TSymbolUniqueId(2031); - static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_UInt1 = TSymbolUniqueId(2032); - static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_UInt1 = TSymbolUniqueId(2033); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2034); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2035); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2036); - static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(2037); - static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2038); - static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2039); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2040); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2041); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2042); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_UInt1 = TSymbolUniqueId(2043); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_UInt1 = TSymbolUniqueId(2044); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_UInt1 = TSymbolUniqueId(2045); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(2046); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2047); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2048); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_UInt1 = TSymbolUniqueId(2049); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_UInt1 = TSymbolUniqueId(2050); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_UInt1 = TSymbolUniqueId(2051); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2052); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2053); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2054); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2055); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2056); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2057); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_Int1 = TSymbolUniqueId(2058); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_Int1 = TSymbolUniqueId(2059); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_Int1 = TSymbolUniqueId(2060); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_Int1 = TSymbolUniqueId(2061); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_Int1 = TSymbolUniqueId(2062); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_Int1 = TSymbolUniqueId(2063); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_Int1 = TSymbolUniqueId(2064); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_Int1 = TSymbolUniqueId(2065); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_Int1 = TSymbolUniqueId(2066); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2067); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2068); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2069); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2070); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2071); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2072); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2073); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2074); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2075); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_Int1 = TSymbolUniqueId(2076); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_Int1 = TSymbolUniqueId(2077); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_Int1 = TSymbolUniqueId(2078); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_Int1 = TSymbolUniqueId(2079); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(2080); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(2081); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_Int1 = TSymbolUniqueId(2082); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_Int1 = TSymbolUniqueId(2083); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_Int1 = TSymbolUniqueId(2084); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2085); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2086); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2087); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2088); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2089); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2090); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_UInt1 = TSymbolUniqueId(2091); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2092); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_UInt1 = TSymbolUniqueId(2093); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_UInt1 = TSymbolUniqueId(2094); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_UInt1 = TSymbolUniqueId(2095); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_UInt1 = TSymbolUniqueId(2096); - static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_UInt1 = TSymbolUniqueId(2097); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_UInt1 = TSymbolUniqueId(2098); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_UInt1 = TSymbolUniqueId(2099); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2100); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2101); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2102); - static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(2103); - static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2104); - static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2105); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2106); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2107); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2108); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_UInt1 = + TSymbolUniqueId(2109); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(2110); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(2111); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(2112); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2113); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2114); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(2115); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(2116); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(2117); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2118); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2119); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2120); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2121); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2122); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2123); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Int1 = + TSymbolUniqueId(2124); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Int1 = + TSymbolUniqueId(2125); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Int1 = + TSymbolUniqueId(2126); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Int1 = + TSymbolUniqueId(2127); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Int1 = + TSymbolUniqueId(2128); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Int1 = + TSymbolUniqueId(2129); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Int1 = + TSymbolUniqueId(2130); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Int1 = + TSymbolUniqueId(2131); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Int1 = + TSymbolUniqueId(2132); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Int1 = + TSymbolUniqueId(2133); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Int1 = + TSymbolUniqueId(2134); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Int1 = + TSymbolUniqueId(2135); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Int1 = + TSymbolUniqueId(2136); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Int1 = + TSymbolUniqueId(2137); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Int1 = + TSymbolUniqueId(2138); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(2139); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(2140); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(2141); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Int1 = + TSymbolUniqueId(2142); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Int1 = + TSymbolUniqueId(2143); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Int1 = + TSymbolUniqueId(2144); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Int1 = + TSymbolUniqueId(2145); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2146); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2147); + static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Int1 = + TSymbolUniqueId(2148); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Int1 = + TSymbolUniqueId(2149); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Int1 = + TSymbolUniqueId(2150); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2151); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2152); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2153); + static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2154); + static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2155); + static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2156); static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Float1 = - TSymbolUniqueId(2106); + TSymbolUniqueId(2157); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Float1 = - TSymbolUniqueId(2107); + TSymbolUniqueId(2158); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Float1 = - TSymbolUniqueId(2108); + TSymbolUniqueId(2159); static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Float1 = - TSymbolUniqueId(2109); + TSymbolUniqueId(2160); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Float1 = - TSymbolUniqueId(2110); + TSymbolUniqueId(2161); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Float1 = - TSymbolUniqueId(2111); + TSymbolUniqueId(2162); static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Float1 = - TSymbolUniqueId(2112); + TSymbolUniqueId(2163); static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Float1 = - TSymbolUniqueId(2113); + TSymbolUniqueId(2164); static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Float1 = - TSymbolUniqueId(2114); + TSymbolUniqueId(2165); static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2115); + TSymbolUniqueId(2166); static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2116); + TSymbolUniqueId(2167); static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2117); + TSymbolUniqueId(2168); static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Float1 = - TSymbolUniqueId(2118); + TSymbolUniqueId(2169); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Float1 = - TSymbolUniqueId(2119); + TSymbolUniqueId(2170); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Float1 = - TSymbolUniqueId(2120); + TSymbolUniqueId(2171); static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2121); + TSymbolUniqueId(2172); static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2122); + TSymbolUniqueId(2173); static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2123); + TSymbolUniqueId(2174); static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Float1 = - TSymbolUniqueId(2124); + TSymbolUniqueId(2175); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Float1 = - TSymbolUniqueId(2125); + TSymbolUniqueId(2176); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Float1 = - TSymbolUniqueId(2126); + TSymbolUniqueId(2177); static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Float1 = - TSymbolUniqueId(2127); + TSymbolUniqueId(2178); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Float1 = - TSymbolUniqueId(2128); + TSymbolUniqueId(2179); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Float1 = - TSymbolUniqueId(2129); + TSymbolUniqueId(2180); static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Float1 = - TSymbolUniqueId(2130); + TSymbolUniqueId(2181); static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Float1 = - TSymbolUniqueId(2131); + TSymbolUniqueId(2182); static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Float1 = - TSymbolUniqueId(2132); + TSymbolUniqueId(2183); static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2133); + TSymbolUniqueId(2184); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2134); + TSymbolUniqueId(2185); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2135); + TSymbolUniqueId(2186); static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1 = - TSymbolUniqueId(2136); + TSymbolUniqueId(2187); static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1 = - TSymbolUniqueId(2137); + TSymbolUniqueId(2188); static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1 = - TSymbolUniqueId(2138); + TSymbolUniqueId(2189); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2139); + TSymbolUniqueId(2190); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2140); + TSymbolUniqueId(2191); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2141); + TSymbolUniqueId(2192); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2142); + TSymbolUniqueId(2193); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2143); + TSymbolUniqueId(2194); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2144); + TSymbolUniqueId(2195); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2145); + TSymbolUniqueId(2196); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2146); + TSymbolUniqueId(2197); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2147); + TSymbolUniqueId(2198); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2148); + TSymbolUniqueId(2199); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2149); + TSymbolUniqueId(2200); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2150); + TSymbolUniqueId(2201); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2151); + TSymbolUniqueId(2202); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2152); + TSymbolUniqueId(2203); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2153); + TSymbolUniqueId(2204); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2154); + TSymbolUniqueId(2205); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2155); + TSymbolUniqueId(2206); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2156); + TSymbolUniqueId(2207); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2157); + TSymbolUniqueId(2208); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2158); + TSymbolUniqueId(2209); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2159); + TSymbolUniqueId(2210); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2160); + TSymbolUniqueId(2211); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2161); + TSymbolUniqueId(2212); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2162); + TSymbolUniqueId(2213); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2163); + TSymbolUniqueId(2214); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2164); + TSymbolUniqueId(2215); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2165); + TSymbolUniqueId(2216); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1 = - TSymbolUniqueId(2166); + TSymbolUniqueId(2217); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1 = - TSymbolUniqueId(2167); + TSymbolUniqueId(2218); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1 = - TSymbolUniqueId(2168); + TSymbolUniqueId(2219); static constexpr const TSymbolUniqueId - imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2169); + imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2220); static constexpr const TSymbolUniqueId - imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2170); + imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2221); static constexpr const TSymbolUniqueId - imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2171); + imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2222); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2172); + TSymbolUniqueId(2223); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2173); + TSymbolUniqueId(2224); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2174); + TSymbolUniqueId(2225); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_Int1_Int1 = - TSymbolUniqueId(2175); + TSymbolUniqueId(2226); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1 = - TSymbolUniqueId(2176); + TSymbolUniqueId(2227); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1 = - TSymbolUniqueId(2177); + TSymbolUniqueId(2228); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(2178); + TSymbolUniqueId(2229); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(2179); + TSymbolUniqueId(2230); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1 = - TSymbolUniqueId(2180); + TSymbolUniqueId(2231); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(2181); + TSymbolUniqueId(2232); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(2182); + TSymbolUniqueId(2233); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1 = - TSymbolUniqueId(2183); + TSymbolUniqueId(2234); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2184); + TSymbolUniqueId(2235); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2185); + TSymbolUniqueId(2236); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2186); + TSymbolUniqueId(2237); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2187); + TSymbolUniqueId(2238); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2188); + TSymbolUniqueId(2239); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2189); + TSymbolUniqueId(2240); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_Int1_Int1 = - TSymbolUniqueId(2190); + TSymbolUniqueId(2241); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1 = - TSymbolUniqueId(2191); + TSymbolUniqueId(2242); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1 = - TSymbolUniqueId(2192); + TSymbolUniqueId(2243); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(2193); + TSymbolUniqueId(2244); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(2194); + TSymbolUniqueId(2245); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1 = - TSymbolUniqueId(2195); + TSymbolUniqueId(2246); static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(2196); + TSymbolUniqueId(2247); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(2197); + TSymbolUniqueId(2248); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1 = - TSymbolUniqueId(2198); + TSymbolUniqueId(2249); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(2199); + TSymbolUniqueId(2250); static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(2200); + TSymbolUniqueId(2251); static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1 = - TSymbolUniqueId(2201); + TSymbolUniqueId(2252); static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1 = - TSymbolUniqueId(2202); + TSymbolUniqueId(2253); static constexpr const TSymbolUniqueId - imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2203); + imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2254); static constexpr const TSymbolUniqueId - imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2204); + imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2255); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(2205); + TSymbolUniqueId(2256); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(2206); + TSymbolUniqueId(2257); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(2207); + TSymbolUniqueId(2258); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(2208); + TSymbolUniqueId(2259); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(2209); + TSymbolUniqueId(2260); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(2210); + TSymbolUniqueId(2261); static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(2211); + TSymbolUniqueId(2262); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(2212); + TSymbolUniqueId(2263); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(2213); + TSymbolUniqueId(2264); static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2214); + TSymbolUniqueId(2265); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2215); + TSymbolUniqueId(2266); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2216); + TSymbolUniqueId(2267); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(2217); + TSymbolUniqueId(2268); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2218); + TSymbolUniqueId(2269); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2219); + TSymbolUniqueId(2270); static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2220); + TSymbolUniqueId(2271); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2221); + TSymbolUniqueId(2272); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2222); + TSymbolUniqueId(2273); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(2223); + TSymbolUniqueId(2274); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(2224); + TSymbolUniqueId(2275); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(2225); + TSymbolUniqueId(2276); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(2226); + TSymbolUniqueId(2277); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(2227); + TSymbolUniqueId(2278); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(2228); + TSymbolUniqueId(2279); static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(2229); + TSymbolUniqueId(2280); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(2230); + TSymbolUniqueId(2281); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(2231); + TSymbolUniqueId(2282); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2232); + TSymbolUniqueId(2283); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2233); + TSymbolUniqueId(2284); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2234); + TSymbolUniqueId(2285); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2235); + TSymbolUniqueId(2286); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2236); + TSymbolUniqueId(2287); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2237); + TSymbolUniqueId(2288); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(2238); + TSymbolUniqueId(2289); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(2239); + TSymbolUniqueId(2290); static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(2240); + TSymbolUniqueId(2291); static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(2241); + TSymbolUniqueId(2292); static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(2242); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(2243); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(2244); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(2245); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(2246); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2247); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2248); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2249); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(2250); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2251); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2252); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2253); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2254); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2255); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(2256); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(2257); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(2258); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(2259); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2260); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2261); - static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(2262); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(2263); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(2264); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2265); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2266); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2267); - static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2268); - static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2269); - static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2270); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(2271); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(2272); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(2273); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(2274); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(2275); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(2276); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(2277); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(2278); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(2279); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2280); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2281); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2282); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(2283); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2284); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2285); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2286); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2287); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2288); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(2289); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(2290); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(2291); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(2292); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2293); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(2294); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(2295); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(2296); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(2297); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2298); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2299); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2300); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2301); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2302); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2303); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2304); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2305); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2306); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 = TSymbolUniqueId(2307); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 = TSymbolUniqueId(2308); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 = TSymbolUniqueId(2309); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 = TSymbolUniqueId(2310); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(2311); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(2312); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 = TSymbolUniqueId(2313); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 = TSymbolUniqueId(2314); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 = TSymbolUniqueId(2315); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2316); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2317); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2318); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2319); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2320); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2321); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(2322); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2323); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 = TSymbolUniqueId(2324); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 = TSymbolUniqueId(2325); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 = TSymbolUniqueId(2326); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 = TSymbolUniqueId(2327); - static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 = TSymbolUniqueId(2328); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 = TSymbolUniqueId(2329); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 = TSymbolUniqueId(2330); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2331); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2332); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2333); - static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(2334); - static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2335); - static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2336); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2337); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2338); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2339); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(2340); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(2341); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(2342); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(2343); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2344); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2345); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(2346); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(2347); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(2348); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2349); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2350); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2351); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2352); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2353); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2354); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 = TSymbolUniqueId(2355); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(2356); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(2357); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 = TSymbolUniqueId(2358); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(2359); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(2360); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(2361); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(2362); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(2363); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2364); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2365); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2366); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2367); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2368); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2369); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2370); - static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2371); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 = + TSymbolUniqueId(2372); + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 = + TSymbolUniqueId(2373); + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 = + TSymbolUniqueId(2374); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 = + TSymbolUniqueId(2375); + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 = + TSymbolUniqueId(2376); + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2377); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2378); + static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 = + TSymbolUniqueId(2379); + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 = + TSymbolUniqueId(2380); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 = + TSymbolUniqueId(2381); + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2382); + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2383); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2384); + static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2385); + static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2386); + static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2387); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 = + TSymbolUniqueId(2388); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 = + TSymbolUniqueId(2389); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 = + TSymbolUniqueId(2390); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 = + TSymbolUniqueId(2391); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 = + TSymbolUniqueId(2392); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 = + TSymbolUniqueId(2393); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 = + TSymbolUniqueId(2394); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 = + TSymbolUniqueId(2395); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 = + TSymbolUniqueId(2396); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2397); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2398); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2399); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 = + TSymbolUniqueId(2400); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(2401); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(2402); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2403); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2404); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2405); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 = + TSymbolUniqueId(2406); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(2407); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(2408); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(2409); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2410); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2411); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(2412); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(2413); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(2414); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2415); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2416); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2417); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2418); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2419); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2420); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 = + TSymbolUniqueId(2421); + static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 = + TSymbolUniqueId(2422); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(2372); + TSymbolUniqueId(2423); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(2373); + TSymbolUniqueId(2424); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(2374); + TSymbolUniqueId(2425); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(2375); + TSymbolUniqueId(2426); static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(2376); + TSymbolUniqueId(2427); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(2377); + TSymbolUniqueId(2428); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(2378); + TSymbolUniqueId(2429); static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2379); + TSymbolUniqueId(2430); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2380); + TSymbolUniqueId(2431); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2381); + TSymbolUniqueId(2432); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(2382); + TSymbolUniqueId(2433); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2383); + TSymbolUniqueId(2434); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2384); + TSymbolUniqueId(2435); static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2385); + TSymbolUniqueId(2436); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2386); + TSymbolUniqueId(2437); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2387); + TSymbolUniqueId(2438); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(2388); + TSymbolUniqueId(2439); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(2389); + TSymbolUniqueId(2440); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(2390); + TSymbolUniqueId(2441); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(2391); + TSymbolUniqueId(2442); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2392); + TSymbolUniqueId(2443); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2393); + TSymbolUniqueId(2444); static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(2394); + TSymbolUniqueId(2445); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(2395); + TSymbolUniqueId(2446); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(2396); + TSymbolUniqueId(2447); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2397); + TSymbolUniqueId(2448); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2398); + TSymbolUniqueId(2449); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2399); + TSymbolUniqueId(2450); static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2400); + TSymbolUniqueId(2451); static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2401); + TSymbolUniqueId(2452); static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2402); + TSymbolUniqueId(2453); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(2403); + TSymbolUniqueId(2454); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_UInt1 = - TSymbolUniqueId(2404); + TSymbolUniqueId(2455); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_UInt1 = - TSymbolUniqueId(2405); + TSymbolUniqueId(2456); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_UInt1 = - TSymbolUniqueId(2406); + TSymbolUniqueId(2457); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_UInt1 = - TSymbolUniqueId(2407); + TSymbolUniqueId(2458); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_UInt1 = - TSymbolUniqueId(2408); + TSymbolUniqueId(2459); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_UInt1 = - TSymbolUniqueId(2409); + TSymbolUniqueId(2460); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_UInt1 = - TSymbolUniqueId(2410); + TSymbolUniqueId(2461); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_UInt1 = - TSymbolUniqueId(2411); + TSymbolUniqueId(2462); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2412); + TSymbolUniqueId(2463); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2413); + TSymbolUniqueId(2464); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_UInt1 = - TSymbolUniqueId(2414); + TSymbolUniqueId(2465); static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_UInt1 = - TSymbolUniqueId(2415); + TSymbolUniqueId(2466); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2416); + TSymbolUniqueId(2467); static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_UInt1 = - TSymbolUniqueId(2417); + TSymbolUniqueId(2468); static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2418); + TSymbolUniqueId(2469); static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2419); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 = - TSymbolUniqueId(2420); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 = - TSymbolUniqueId(2421); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 = - TSymbolUniqueId(2422); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 = - TSymbolUniqueId(2423); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 = - TSymbolUniqueId(2424); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(2425); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 = - TSymbolUniqueId(2426); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 = - TSymbolUniqueId(2427); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 = - TSymbolUniqueId(2428); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 = - TSymbolUniqueId(2429); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2430); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2431); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 = - TSymbolUniqueId(2432); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2433); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2434); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 = - TSymbolUniqueId(2435); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 = - TSymbolUniqueId(2436); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 = - TSymbolUniqueId(2437); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 = - TSymbolUniqueId(2438); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 = - TSymbolUniqueId(2439); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(2440); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(2441); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(2442); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(2443); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(2444); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2445); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2446); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2447); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(2448); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2449); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2450); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2451); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2452); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2453); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(2454); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(2455); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(2456); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(2457); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2458); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2459); - static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(2460); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(2461); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(2462); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2463); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2464); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2465); - static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2466); - static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2467); - static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2468); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_UInt1 = - TSymbolUniqueId(2469); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2470); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2471); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(2472); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(2473); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(2474); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(2475); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2476); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2477); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(2478); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(2479); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(2480); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2481); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2482); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2483); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2484); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2485); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2486); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 = TSymbolUniqueId(2487); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(2488); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(2489); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 = TSymbolUniqueId(2490); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(2491); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(2492); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(2493); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(2494); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(2495); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2496); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2497); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2498); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2499); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2500); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2501); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2502); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2503); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2504); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_Int1 = TSymbolUniqueId(2505); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_Int1 = TSymbolUniqueId(2506); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_Int1 = TSymbolUniqueId(2507); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_Int1 = TSymbolUniqueId(2508); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(2509); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(2510); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_Int1 = TSymbolUniqueId(2511); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_Int1 = TSymbolUniqueId(2512); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_Int1 = TSymbolUniqueId(2513); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2514); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2515); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2516); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2517); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2518); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2519); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(2520); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2521); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_UInt1 = TSymbolUniqueId(2522); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_UInt1 = TSymbolUniqueId(2523); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_UInt1 = TSymbolUniqueId(2524); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_UInt1 = TSymbolUniqueId(2525); - static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_UInt1 = TSymbolUniqueId(2526); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_UInt1 = TSymbolUniqueId(2527); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_UInt1 = TSymbolUniqueId(2528); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2529); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2530); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2531); - static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(2532); - static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2533); - static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2534); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2535); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2536); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2537); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(2538); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(2539); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(2540); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(2541); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2542); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2543); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(2544); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(2545); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(2546); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2547); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2548); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2549); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2550); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2551); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2552); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_Int1 = TSymbolUniqueId(2553); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(2554); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(2555); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_Int1 = TSymbolUniqueId(2556); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(2557); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(2558); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(2559); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(2560); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(2561); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2562); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2563); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2564); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2565); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2566); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2567); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2568); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2569); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2570); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_Int1 = TSymbolUniqueId(2571); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_Int1 = TSymbolUniqueId(2572); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_Int1 = TSymbolUniqueId(2573); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_Int1 = TSymbolUniqueId(2574); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_Int1 = TSymbolUniqueId(2575); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_Int1 = TSymbolUniqueId(2576); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_Int1 = TSymbolUniqueId(2577); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_Int1 = TSymbolUniqueId(2578); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_Int1 = TSymbolUniqueId(2579); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2580); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2581); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1 = TSymbolUniqueId(2582); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2583); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2584); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1 = TSymbolUniqueId(2585); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_UInt1 = TSymbolUniqueId(2586); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_UInt1 = TSymbolUniqueId(2587); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_UInt1 = TSymbolUniqueId(2588); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_UInt1 = TSymbolUniqueId(2589); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_UInt1 = TSymbolUniqueId(2590); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_UInt1 = TSymbolUniqueId(2591); - static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_UInt1 = TSymbolUniqueId(2592); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_UInt1 = TSymbolUniqueId(2593); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_UInt1 = TSymbolUniqueId(2594); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2595); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2596); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_UInt1 = TSymbolUniqueId(2597); - static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_UInt1 = TSymbolUniqueId(2598); - static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2599); - static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_UInt1 = TSymbolUniqueId(2600); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2601); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2602); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_UInt1 = TSymbolUniqueId(2603); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_UInt1 = TSymbolUniqueId(2604); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_UInt1 = TSymbolUniqueId(2605); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_UInt1 = TSymbolUniqueId(2606); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_UInt1 = TSymbolUniqueId(2607); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2608); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_UInt1 = TSymbolUniqueId(2609); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_UInt1 = TSymbolUniqueId(2610); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_UInt1 = TSymbolUniqueId(2611); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_UInt1 = TSymbolUniqueId(2612); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2613); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2614); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1 = TSymbolUniqueId(2615); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2616); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2617); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1 = TSymbolUniqueId(2618); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_Int1 = TSymbolUniqueId(2619); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_Int1 = TSymbolUniqueId(2620); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_Int1 = TSymbolUniqueId(2621); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_Int1 = TSymbolUniqueId(2622); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_Int1 = TSymbolUniqueId(2623); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_Int1 = TSymbolUniqueId(2624); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_Int1 = TSymbolUniqueId(2625); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_Int1 = TSymbolUniqueId(2626); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_Int1 = TSymbolUniqueId(2627); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_Int1 = TSymbolUniqueId(2628); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_Int1 = TSymbolUniqueId(2629); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_Int1 = TSymbolUniqueId(2630); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_Int1 = TSymbolUniqueId(2631); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_Int1 = TSymbolUniqueId(2632); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_Int1 = TSymbolUniqueId(2633); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2634); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2635); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_Int1 = TSymbolUniqueId(2636); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Int1 = + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_Int1 = TSymbolUniqueId(2637); + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_Int1 = + TSymbolUniqueId(2638); + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_Int1 = + TSymbolUniqueId(2639); + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_Int1 = + TSymbolUniqueId(2640); + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2641); + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_Int1 = + TSymbolUniqueId(2642); + static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_Int1 = + TSymbolUniqueId(2643); + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_Int1 = + TSymbolUniqueId(2644); + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_Int1 = + TSymbolUniqueId(2645); + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2646); + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2647); + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1 = + TSymbolUniqueId(2648); + static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2649); + static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2650); + static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2651); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_UInt1 = + TSymbolUniqueId(2652); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_UInt1 = + TSymbolUniqueId(2653); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_UInt1 = + TSymbolUniqueId(2654); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_UInt1 = + TSymbolUniqueId(2655); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_UInt1 = + TSymbolUniqueId(2656); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_UInt1 = + TSymbolUniqueId(2657); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_UInt1 = + TSymbolUniqueId(2658); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_UInt1 = + TSymbolUniqueId(2659); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_UInt1 = + TSymbolUniqueId(2660); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2661); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2662); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1 = + TSymbolUniqueId(2663); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_UInt1 = + TSymbolUniqueId(2664); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(2665); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1 = + TSymbolUniqueId(2666); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2667); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2668); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1 = + TSymbolUniqueId(2669); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_UInt1 = + TSymbolUniqueId(2670); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_UInt1 = + TSymbolUniqueId(2671); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_UInt1 = + TSymbolUniqueId(2672); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_UInt1 = + TSymbolUniqueId(2673); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2674); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1 = + TSymbolUniqueId(2675); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_UInt1 = + TSymbolUniqueId(2676); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_UInt1 = + TSymbolUniqueId(2677); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_UInt1 = + TSymbolUniqueId(2678); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2679); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2680); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1 = + TSymbolUniqueId(2681); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2682); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2683); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1 = + TSymbolUniqueId(2684); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Int1 = + TSymbolUniqueId(2685); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Int1 = + TSymbolUniqueId(2686); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Int1 = + TSymbolUniqueId(2687); + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Int1 = + TSymbolUniqueId(2688); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Int1 = - TSymbolUniqueId(2638); + TSymbolUniqueId(2689); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Int1 = - TSymbolUniqueId(2639); + TSymbolUniqueId(2690); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Int1 = - TSymbolUniqueId(2640); + TSymbolUniqueId(2691); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Int1 = - TSymbolUniqueId(2641); + TSymbolUniqueId(2692); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Int1 = - TSymbolUniqueId(2642); + TSymbolUniqueId(2693); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2643); + TSymbolUniqueId(2694); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2644); + TSymbolUniqueId(2695); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Int1 = - TSymbolUniqueId(2645); + TSymbolUniqueId(2696); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Int1 = - TSymbolUniqueId(2646); + TSymbolUniqueId(2697); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2647); + TSymbolUniqueId(2698); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Int1 = - TSymbolUniqueId(2648); + TSymbolUniqueId(2699); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2649); + TSymbolUniqueId(2700); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2650); + TSymbolUniqueId(2701); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1 = - TSymbolUniqueId(2651); + TSymbolUniqueId(2702); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Int1 = - TSymbolUniqueId(2652); + TSymbolUniqueId(2703); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Int1 = - TSymbolUniqueId(2653); + TSymbolUniqueId(2704); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Int1 = - TSymbolUniqueId(2654); + TSymbolUniqueId(2705); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Int1 = - TSymbolUniqueId(2655); + TSymbolUniqueId(2706); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2656); + TSymbolUniqueId(2707); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Int1 = - TSymbolUniqueId(2657); + TSymbolUniqueId(2708); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Int1 = - TSymbolUniqueId(2658); + TSymbolUniqueId(2709); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Int1 = - TSymbolUniqueId(2659); + TSymbolUniqueId(2710); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Int1 = - TSymbolUniqueId(2660); + TSymbolUniqueId(2711); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2661); + TSymbolUniqueId(2712); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2662); + TSymbolUniqueId(2713); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1 = - TSymbolUniqueId(2663); + TSymbolUniqueId(2714); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2664); + TSymbolUniqueId(2715); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2665); + TSymbolUniqueId(2716); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2666); + TSymbolUniqueId(2717); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Float1 = - TSymbolUniqueId(2667); + TSymbolUniqueId(2718); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Float1 = - TSymbolUniqueId(2668); + TSymbolUniqueId(2719); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Float1 = - TSymbolUniqueId(2669); + TSymbolUniqueId(2720); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Float1 = - TSymbolUniqueId(2670); + TSymbolUniqueId(2721); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Float1 = - TSymbolUniqueId(2671); + TSymbolUniqueId(2722); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Float1 = - TSymbolUniqueId(2672); + TSymbolUniqueId(2723); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Float1 = - TSymbolUniqueId(2673); + TSymbolUniqueId(2724); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Float1 = - TSymbolUniqueId(2674); + TSymbolUniqueId(2725); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Float1 = - TSymbolUniqueId(2675); + TSymbolUniqueId(2726); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2676); + TSymbolUniqueId(2727); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2677); + TSymbolUniqueId(2728); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Float1 = - TSymbolUniqueId(2678); + TSymbolUniqueId(2729); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Float1 = - TSymbolUniqueId(2679); + TSymbolUniqueId(2730); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Float1 = - TSymbolUniqueId(2680); + TSymbolUniqueId(2731); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Float1 = - TSymbolUniqueId(2681); + TSymbolUniqueId(2732); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2682); + TSymbolUniqueId(2733); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2683); + TSymbolUniqueId(2734); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1 = - TSymbolUniqueId(2684); + TSymbolUniqueId(2735); static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Float1 = - TSymbolUniqueId(2685); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Float1 = - TSymbolUniqueId(2686); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Float1 = - TSymbolUniqueId(2687); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Float1 = - TSymbolUniqueId(2688); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Float1 = - TSymbolUniqueId(2689); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Float1 = - TSymbolUniqueId(2690); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Float1 = - TSymbolUniqueId(2691); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Float1 = - TSymbolUniqueId(2692); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Float1 = - TSymbolUniqueId(2693); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2694); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2695); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1 = - TSymbolUniqueId(2696); - static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1 = - TSymbolUniqueId(2697); - static constexpr const TSymbolUniqueId - imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2698); - static constexpr const TSymbolUniqueId - imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2699); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2700); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2701); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2702); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2703); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2704); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2705); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2706); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2707); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2708); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2709); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2710); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2711); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2712); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2713); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2714); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1 = - TSymbolUniqueId(2715); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2716); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2717); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2718); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2719); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1 = - TSymbolUniqueId(2720); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2721); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2722); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2723); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2724); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2725); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1 = - TSymbolUniqueId(2726); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1 = - TSymbolUniqueId(2727); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2728); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2729); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2730); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2731); - static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2732); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2733); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2734); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1 = - TSymbolUniqueId(2735); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1 = TSymbolUniqueId(2736); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Float1 = TSymbolUniqueId(2737); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Float1 = TSymbolUniqueId(2738); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Float1 = TSymbolUniqueId(2739); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Float1 = TSymbolUniqueId(2740); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Float1 = TSymbolUniqueId(2741); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Float1 = TSymbolUniqueId(2742); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Float1 = TSymbolUniqueId(2743); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Float1 = TSymbolUniqueId(2744); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1 = TSymbolUniqueId(2745); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1 = TSymbolUniqueId(2746); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1 = TSymbolUniqueId(2747); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2748); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2749); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1 = - TSymbolUniqueId(2750); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId + imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2749); + static constexpr const TSymbolUniqueId + imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2750); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1 = TSymbolUniqueId(2751); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1 = TSymbolUniqueId(2752); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1 = TSymbolUniqueId(2753); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1 = TSymbolUniqueId(2754); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1 = TSymbolUniqueId(2755); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1 = TSymbolUniqueId(2756); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1 = TSymbolUniqueId(2757); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1 = TSymbolUniqueId(2758); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1 = TSymbolUniqueId(2759); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1 = TSymbolUniqueId(2760); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1 = TSymbolUniqueId(2761); - static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1 = TSymbolUniqueId(2762); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1 = + TSymbolUniqueId(2763); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1 = + TSymbolUniqueId(2764); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1 = + TSymbolUniqueId(2765); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1 = + TSymbolUniqueId(2766); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2763); + imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2767); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2764); + imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2768); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1 = + TSymbolUniqueId(2769); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1 = + TSymbolUniqueId(2770); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1 = + TSymbolUniqueId(2771); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2772); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2773); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2774); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2775); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2776); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1 = + TSymbolUniqueId(2777); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1 = + TSymbolUniqueId(2778); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2779); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2780); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2781); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2782); static constexpr const TSymbolUniqueId - imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2765); - static constexpr const TSymbolUniqueId noise1_Float1 = TSymbolUniqueId(2766); - static constexpr const TSymbolUniqueId noise1_Float2 = TSymbolUniqueId(2767); - static constexpr const TSymbolUniqueId noise1_Float3 = TSymbolUniqueId(2768); - static constexpr const TSymbolUniqueId noise1_Float4 = TSymbolUniqueId(2769); - static constexpr const TSymbolUniqueId noise2_Float1 = TSymbolUniqueId(2770); - static constexpr const TSymbolUniqueId noise2_Float2 = TSymbolUniqueId(2771); - static constexpr const TSymbolUniqueId noise2_Float3 = TSymbolUniqueId(2772); - static constexpr const TSymbolUniqueId noise2_Float4 = TSymbolUniqueId(2773); - static constexpr const TSymbolUniqueId noise3_Float1 = TSymbolUniqueId(2774); - static constexpr const TSymbolUniqueId noise3_Float2 = TSymbolUniqueId(2775); - static constexpr const TSymbolUniqueId noise3_Float3 = TSymbolUniqueId(2776); - static constexpr const TSymbolUniqueId noise3_Float4 = TSymbolUniqueId(2777); - static constexpr const TSymbolUniqueId noise4_Float1 = TSymbolUniqueId(2778); - static constexpr const TSymbolUniqueId noise4_Float2 = TSymbolUniqueId(2779); - static constexpr const TSymbolUniqueId noise4_Float3 = TSymbolUniqueId(2780); - static constexpr const TSymbolUniqueId noise4_Float4 = TSymbolUniqueId(2781); - static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(2782); - static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(2783); - static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(2784); - static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(2785); - static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(2786); - static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(2787); - static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(2788); - static constexpr const TSymbolUniqueId barrierES3_2 = TSymbolUniqueId(2789); - static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(2790); - static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(2791); - static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(2792); - static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(2793); - static constexpr const TSymbolUniqueId EmitStreamVertex_Int1 = TSymbolUniqueId(2794); - static constexpr const TSymbolUniqueId EndStreamPrimitive_Int1 = TSymbolUniqueId(2795); - static constexpr const TSymbolUniqueId subpassLoad_SubpassInput1 = TSymbolUniqueId(2796); - static constexpr const TSymbolUniqueId pt01g = TSymbolUniqueId(2797); - static constexpr const TSymbolUniqueId subpassLoad_ISubpassInput1 = TSymbolUniqueId(2798); - static constexpr const TSymbolUniqueId pt01h = TSymbolUniqueId(2799); - static constexpr const TSymbolUniqueId subpassLoad_USubpassInput1 = TSymbolUniqueId(2800); - static constexpr const TSymbolUniqueId pt01i = TSymbolUniqueId(2801); - static constexpr const TSymbolUniqueId subpassLoad_SubpassInputMS1_Int1 = TSymbolUniqueId(2802); - static constexpr const TSymbolUniqueId pt01j = TSymbolUniqueId(2803); - static constexpr const TSymbolUniqueId subpassLoad_ISubpassInputMS1_Int1 = + imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2783); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1 = + TSymbolUniqueId(2784); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1 = + TSymbolUniqueId(2785); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1 = + TSymbolUniqueId(2786); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1 = + TSymbolUniqueId(2787); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1 = + TSymbolUniqueId(2788); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1 = + TSymbolUniqueId(2789); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1 = + TSymbolUniqueId(2790); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1 = + TSymbolUniqueId(2791); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1 = + TSymbolUniqueId(2792); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1 = + TSymbolUniqueId(2793); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1 = + TSymbolUniqueId(2794); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1 = + TSymbolUniqueId(2795); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2796); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2797); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2798); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2799); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2800); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1 = + TSymbolUniqueId(2801); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1 = + TSymbolUniqueId(2802); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1 = + TSymbolUniqueId(2803); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1 = TSymbolUniqueId(2804); - static constexpr const TSymbolUniqueId pt01k = TSymbolUniqueId(2805); - static constexpr const TSymbolUniqueId subpassLoad_USubpassInputMS1_Int1 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1 = + TSymbolUniqueId(2805); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1 = TSymbolUniqueId(2806); - static constexpr const TSymbolUniqueId pt01l = TSymbolUniqueId(2807); - static constexpr const TSymbolUniqueId anyInvocation_Bool1 = TSymbolUniqueId(2808); - static constexpr const TSymbolUniqueId allInvocations_Bool1 = TSymbolUniqueId(2809); - static constexpr const TSymbolUniqueId allInvocationsEqual_Bool1 = TSymbolUniqueId(2810); - static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1 = + TSymbolUniqueId(2807); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1 = + TSymbolUniqueId(2808); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1 = + TSymbolUniqueId(2809); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1 = + TSymbolUniqueId(2810); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1 = TSymbolUniqueId(2811); - static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(2812); - static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 = + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1 = + TSymbolUniqueId(2812); + static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1 = TSymbolUniqueId(2813); - static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(2814); - static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(2815); - static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(2816); - static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(2817); - static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(2818); - static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(2819); - static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(2820); - static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(2821); - static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(2822); - static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(2823); - static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(2824); - static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(2825); - static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(2826); - static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(2827); - static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(2828); - static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(2829); - static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(2830); - static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(2831); - static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(2832); - static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(2833); - static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(2834); - static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(2835); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2814); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2815); + static constexpr const TSymbolUniqueId + imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2816); + static constexpr const TSymbolUniqueId noise1_Float1 = TSymbolUniqueId(2817); + static constexpr const TSymbolUniqueId noise1_Float2 = TSymbolUniqueId(2818); + static constexpr const TSymbolUniqueId noise1_Float3 = TSymbolUniqueId(2819); + static constexpr const TSymbolUniqueId noise1_Float4 = TSymbolUniqueId(2820); + static constexpr const TSymbolUniqueId noise2_Float1 = TSymbolUniqueId(2821); + static constexpr const TSymbolUniqueId noise2_Float2 = TSymbolUniqueId(2822); + static constexpr const TSymbolUniqueId noise2_Float3 = TSymbolUniqueId(2823); + static constexpr const TSymbolUniqueId noise2_Float4 = TSymbolUniqueId(2824); + static constexpr const TSymbolUniqueId noise3_Float1 = TSymbolUniqueId(2825); + static constexpr const TSymbolUniqueId noise3_Float2 = TSymbolUniqueId(2826); + static constexpr const TSymbolUniqueId noise3_Float3 = TSymbolUniqueId(2827); + static constexpr const TSymbolUniqueId noise3_Float4 = TSymbolUniqueId(2828); + static constexpr const TSymbolUniqueId noise4_Float1 = TSymbolUniqueId(2829); + static constexpr const TSymbolUniqueId noise4_Float2 = TSymbolUniqueId(2830); + static constexpr const TSymbolUniqueId noise4_Float3 = TSymbolUniqueId(2831); + static constexpr const TSymbolUniqueId noise4_Float4 = TSymbolUniqueId(2832); + static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(2833); + static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(2834); + static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(2835); + static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(2836); + static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(2837); + static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(2838); + static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(2839); + static constexpr const TSymbolUniqueId barrierTCS = TSymbolUniqueId(2840); + static constexpr const TSymbolUniqueId barrierTCSES3_2 = TSymbolUniqueId(2841); + static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(2842); + static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(2843); + static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(2844); + static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(2845); + static constexpr const TSymbolUniqueId EmitStreamVertex_Int1 = TSymbolUniqueId(2846); + static constexpr const TSymbolUniqueId EndStreamPrimitive_Int1 = TSymbolUniqueId(2847); + static constexpr const TSymbolUniqueId subpassLoad_SubpassInput1 = TSymbolUniqueId(2848); + static constexpr const TSymbolUniqueId pt01g = TSymbolUniqueId(2849); + static constexpr const TSymbolUniqueId subpassLoad_ISubpassInput1 = TSymbolUniqueId(2850); + static constexpr const TSymbolUniqueId pt01h = TSymbolUniqueId(2851); + static constexpr const TSymbolUniqueId subpassLoad_USubpassInput1 = TSymbolUniqueId(2852); + static constexpr const TSymbolUniqueId pt01i = TSymbolUniqueId(2853); + static constexpr const TSymbolUniqueId subpassLoad_SubpassInputMS1_Int1 = TSymbolUniqueId(2854); + static constexpr const TSymbolUniqueId pt01j = TSymbolUniqueId(2855); + static constexpr const TSymbolUniqueId subpassLoad_ISubpassInputMS1_Int1 = + TSymbolUniqueId(2856); + static constexpr const TSymbolUniqueId pt01k = TSymbolUniqueId(2857); + static constexpr const TSymbolUniqueId subpassLoad_USubpassInputMS1_Int1 = + TSymbolUniqueId(2858); + static constexpr const TSymbolUniqueId pt01l = TSymbolUniqueId(2859); + static constexpr const TSymbolUniqueId anyInvocation_Bool1 = TSymbolUniqueId(2860); + static constexpr const TSymbolUniqueId allInvocations_Bool1 = TSymbolUniqueId(2861); + static constexpr const TSymbolUniqueId allInvocationsEqual_Bool1 = TSymbolUniqueId(2862); + static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(2863); + static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(2864); + static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(2865); + static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(2866); + static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(2867); + static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(2868); + static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(2869); + static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(2870); + static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(2871); + static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(2872); + static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(2873); + static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(2874); + static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(2875); + static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(2876); + static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(2877); + static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(2878); + static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(2879); + static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(2880); + static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(2881); + static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(2882); + static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(2883); + static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(2884); static constexpr const TSymbolUniqueId gl_MaxCombinedShaderOutputResources = - TSymbolUniqueId(2836); - static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(2837); - static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(2838); - static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(2839); - static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(2840); - static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(2841); + TSymbolUniqueId(2885); + static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(2886); + static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(2887); + static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(2888); + static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(2889); + static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(2890); static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers = - TSymbolUniqueId(2842); - static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(2843); - static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(2844); - static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(2845); - static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(2846); - static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(2847); + TSymbolUniqueId(2891); + static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(2892); + static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(2893); + static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(2894); + static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(2895); + static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(2896); static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounterBuffers = - TSymbolUniqueId(2848); + TSymbolUniqueId(2897); static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounterBuffers = - TSymbolUniqueId(2849); - static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(2850); - static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(2851); + TSymbolUniqueId(2898); + static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(2899); + static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(2900); static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponentsES3_2 = - TSymbolUniqueId(2852); - static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(2853); + TSymbolUniqueId(2901); + static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(2902); static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponentsES3_2 = - TSymbolUniqueId(2854); - static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(2855); - static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(2856); - static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(2857); + TSymbolUniqueId(2903); + static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(2904); + static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(2905); + static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(2906); static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnitsES3_2 = - TSymbolUniqueId(2858); - static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(2859); + TSymbolUniqueId(2907); + static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(2908); static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVerticesES3_2 = - TSymbolUniqueId(2860); + TSymbolUniqueId(2909); static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponents = - TSymbolUniqueId(2861); + TSymbolUniqueId(2910); static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponentsES3_2 = - TSymbolUniqueId(2862); - static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(2863); + TSymbolUniqueId(2911); + static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(2912); static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponentsES3_2 = - TSymbolUniqueId(2864); - static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(2865); + TSymbolUniqueId(2913); + static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(2914); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCountersES3_2 = - TSymbolUniqueId(2866); + TSymbolUniqueId(2915); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffers = - TSymbolUniqueId(2867); + TSymbolUniqueId(2916); static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffersES3_2 = - TSymbolUniqueId(2868); - static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(2869); + TSymbolUniqueId(2917); + static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(2918); static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponentsES3_2 = - TSymbolUniqueId(2870); + TSymbolUniqueId(2919); static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponents = - TSymbolUniqueId(2871); + TSymbolUniqueId(2920); static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponentsES3_2 = - TSymbolUniqueId(2872); + TSymbolUniqueId(2921); static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnits = - TSymbolUniqueId(2873); + TSymbolUniqueId(2922); static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnitsES3_2 = - TSymbolUniqueId(2874); + TSymbolUniqueId(2923); static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponents = - TSymbolUniqueId(2875); + TSymbolUniqueId(2924); static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponentsES3_2 = - TSymbolUniqueId(2876); + TSymbolUniqueId(2925); static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponents = - TSymbolUniqueId(2877); + TSymbolUniqueId(2926); static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponentsES3_2 = - TSymbolUniqueId(2878); - static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(2879); + TSymbolUniqueId(2927); + static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(2928); static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniformsES3_2 = - TSymbolUniqueId(2880); - static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(2881); + TSymbolUniqueId(2929); + static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(2930); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCountersES3_2 = - TSymbolUniqueId(2882); + TSymbolUniqueId(2931); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffers = - TSymbolUniqueId(2883); + TSymbolUniqueId(2932); static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffersES3_2 = - TSymbolUniqueId(2884); - static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(2885); - static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(2886); - static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(2887); - static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(2888); - static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(2889); - static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(2890); + TSymbolUniqueId(2933); + static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(2934); + static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(2935); + static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(2936); + static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(2937); + static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(2938); + static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(2939); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponents = - TSymbolUniqueId(2891); + TSymbolUniqueId(2940); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponentsES3_2 = - TSymbolUniqueId(2892); + TSymbolUniqueId(2941); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponents = - TSymbolUniqueId(2893); + TSymbolUniqueId(2942); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponentsES3_2 = - TSymbolUniqueId(2894); + TSymbolUniqueId(2943); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnits = - TSymbolUniqueId(2895); + TSymbolUniqueId(2944); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnitsES3_2 = - TSymbolUniqueId(2896); + TSymbolUniqueId(2945); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponents = - TSymbolUniqueId(2897); + TSymbolUniqueId(2946); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponentsES3_2 = - TSymbolUniqueId(2898); + TSymbolUniqueId(2947); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniforms = - TSymbolUniqueId(2899); + TSymbolUniqueId(2948); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniformsES3_2 = - TSymbolUniqueId(2900); + TSymbolUniqueId(2949); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounters = - TSymbolUniqueId(2901); + TSymbolUniqueId(2950); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCountersES3_2 = - TSymbolUniqueId(2902); + TSymbolUniqueId(2951); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffers = - TSymbolUniqueId(2903); + TSymbolUniqueId(2952); static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffersES3_2 = - TSymbolUniqueId(2904); - static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(2905); - static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(2906); - static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(2907); - static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(2908); + TSymbolUniqueId(2953); + static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(2954); + static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(2955); + static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(2956); + static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(2957); static constexpr const TSymbolUniqueId gl_MaxCombinedClipAndCullDistancesEXT = - TSymbolUniqueId(2909); - static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(2910); - static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(2911); - static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(2912); - static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(2913); - static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(2914); - static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(2915); - static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(2916); - static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(2917); - static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(2918); - static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(2919); - static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(2920); - static constexpr const TSymbolUniqueId gl_LastFragDataNonCoherent = TSymbolUniqueId(2921); - static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(2922); - static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(2923); - static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(2924); - static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(2925); - static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(2926); - static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(2927); - static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(2928); - static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(2929); - static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(2930); - static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(2931); - static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(2932); - static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(2933); - static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(2934); - static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(2935); - static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(2936); - static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(2937); - static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(2938); - static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(2939); - static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(2940); - static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(2941); - static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(2942); - static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(2943); - static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(2944); - static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(2945); - static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(2946); - static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(2947); - static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(2948); - static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(2949); - static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(2950); - static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(2951); - static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(2952); - static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(2953); - static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(2954); - static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(2955); - static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(2956); - static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(2957); - static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(2958); - static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(2959); - static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(2960); - static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(2961); - static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(2962); - static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(2963); - static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(2964); - static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(2965); - static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(2966); - static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(2967); - static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(2968); - static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(2969); - static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(2970); - static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(2971); - static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(2972); - static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(2973); - static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(2974); - static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(2975); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(2976); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(2977); - static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(2978); - static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(2979); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(2980); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(2981); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(2982); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(2983); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(2984); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(2985); - static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(2986); - static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(2987); - static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(2988); - static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(2989); - static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(2990); - static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(2991); - static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(2992); - static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(2993); - static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(2994); - static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(2995); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(2996); - static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(2997); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(2998); - static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(2999); - static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(3000); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(3001); - static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(3002); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(3003); - static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(3004); - static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(3005); - static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(3006); - static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(3007); - static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(3008); - static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(3009); - static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(3010); - static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(3011); - static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(3012); - static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(3013); - static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(3014); - static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(3015); + TSymbolUniqueId(2958); + static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(2959); + static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(2960); + static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(2961); + static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(2962); + static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(2963); + static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(2964); + static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(2965); + static constexpr const TSymbolUniqueId gl_FragCoord300 = TSymbolUniqueId(2966); + static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(2967); + static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(2968); + static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(2969); + static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(2970); + static constexpr const TSymbolUniqueId gl_LastFragDataNonCoherent = TSymbolUniqueId(2971); + static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(2972); + static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(2973); + static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(2974); + static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(2975); + static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(2976); + static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(2977); + static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(2978); + static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(2979); + static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(2980); + static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(2981); + static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(2982); + static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(2983); + static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(2984); + static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(2985); + static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(2986); + static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(2987); + static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(2988); + static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(2989); + static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(2990); + static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(2991); + static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(2992); + static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(2993); + static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(2994); + static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(2995); + static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(2996); + static constexpr const TSymbolUniqueId gl_PointSize300 = TSymbolUniqueId(2997); + static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(2998); + static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(2999); + static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(3000); + static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(3001); + static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(3002); + static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(3003); + static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(3004); + static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(3005); + static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(3006); + static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(3007); + static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(3008); + static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(3009); + static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(3010); + static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(3011); + static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(3012); + static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(3013); + static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(3014); + static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(3015); + static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(3016); + static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(3017); + static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(3018); + static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(3019); + static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(3020); + static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(3021); + static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(3022); + static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(3023); + static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(3024); + static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(3025); + static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(3026); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(3027); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(3028); + static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(3029); + static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(3030); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(3031); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(3032); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(3033); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(3034); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(3035); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(3036); + static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(3037); + static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(3038); + static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(3039); + static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(3040); + static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(3041); + static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(3042); + static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(3043); + static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(3044); + static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(3045); + static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(3046); + static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCS = TSymbolUniqueId(3047); + static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCSES3_2 = TSymbolUniqueId(3048); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(3049); + static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(3050); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(3051); + static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(3052); + static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(3053); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(3054); + static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(3055); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(3056); + static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(3057); + static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(3058); + static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(3059); + static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(3060); + static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(3061); + static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(3062); + static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(3063); + static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(3064); + static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(3065); + static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(3066); + static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(3067); + static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(3068); }; // class BuiltInId namespace BuiltInVariable { @@ -4840,10 +4922,11 @@ const TVariable *gl_BaseInstance(); const TVariable *gl_BaseVertex(); const TVariable *gl_DrawID(); const TVariable *gl_FragColor(); const TVariable *gl_FragCoord(); +const TVariable *gl_FragCoord300(); const TVariable *gl_FragDepth(); const TVariable *gl_FrontFacing(); const TVariable *gl_GlobalInvocationID(); const TVariable *gl_HelperInvocation(); const TVariable *gl_InstanceID(); @@ -4868,10 +4951,11 @@ const TVariable *gl_PatchVerticesInTCSES3_2(); const TVariable *gl_PatchVerticesInTES(); const TVariable *gl_PatchVerticesInTESES3_2(); const TVariable *gl_PointCoord(); const TVariable *gl_PointSize(); +const TVariable *gl_PointSize300(); const TVariable *gl_Position(); const TVariable *gl_PrimitiveID(); const TVariable *gl_PrimitiveIDES3_2(); const TVariable *gl_PrimitiveIDGS(); const TVariable *gl_PrimitiveIDGSES3_2(); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h @@ -21,14 +21,27 @@ class TSymbolTable; class TIntermTyped; class TIntermSwizzle; class TIntermBinary; +enum class DriverUniformMode +{ + // Define the driver uniforms as an interface block. Used by the + // Vulkan and Metal/SPIR-V backends. + InterfaceBlock, + + // Define the driver uniforms as a structure. Used by the + // direct-to-MSL Metal backend. + Structure +}; + class DriverUniform { public: - DriverUniform() : mDriverUniforms(nullptr), mEmulatedDepthRangeType(nullptr) {} + DriverUniform(DriverUniformMode mode) + : mMode(mode), mDriverUniforms(nullptr), mEmulatedDepthRangeType(nullptr) + {} virtual ~DriverUniform() = default; bool addComputeDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable); bool addGraphicsDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable); @@ -42,34 +55,43 @@ TIntermBinary *getDepthRangeReservedFieldRef() const; TIntermBinary *getNumSamplesRef() const; virtual TIntermBinary *getFlipXYRef() const { return nullptr; } virtual TIntermBinary *getNegFlipXYRef() const { return nullptr; } + virtual TIntermBinary *getPreRotationMatrixRef() const { return nullptr; } virtual TIntermBinary *getFragRotationMatrixRef() const { return nullptr; } virtual TIntermBinary *getHalfRenderAreaRef() const { return nullptr; } virtual TIntermSwizzle *getNegFlipYRef() const { return nullptr; } + virtual TIntermBinary *getEmulatedInstanceId() const { return nullptr; } + virtual TIntermBinary *getCoverageMask() const { return nullptr; } + + const TVariable *getDriverUniformsVariable() const { return mDriverUniforms; } protected: TIntermBinary *createDriverUniformRef(const char *fieldName) const; virtual TFieldList *createUniformFields(TSymbolTable *symbolTable); TType *createEmulatedDepthRangeType(TSymbolTable *symbolTable); + const DriverUniformMode mMode; const TVariable *mDriverUniforms; TType *mEmulatedDepthRangeType; }; class DriverUniformExtended : public DriverUniform { public: - DriverUniformExtended() : DriverUniform() {} + DriverUniformExtended(DriverUniformMode mode) : DriverUniform(mode) {} virtual ~DriverUniformExtended() override {} TIntermBinary *getFlipXYRef() const override; TIntermBinary *getNegFlipXYRef() const override; + TIntermBinary *getPreRotationMatrixRef() const override; TIntermBinary *getFragRotationMatrixRef() const override; TIntermBinary *getHalfRenderAreaRef() const override; TIntermSwizzle *getNegFlipYRef() const override; + TIntermBinary *getEmulatedInstanceId() const override; + TIntermBinary *getCoverageMask() const override; protected: virtual TFieldList *createUniformFields(TSymbolTable *symbolTable) override; }; diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp @@ -30,15 +30,18 @@ constexpr const char kXfbVerticesPerInstance[] = "xfbVerticesPerInstance"; constexpr const char kXfbBufferOffsets[] = "xfbBufferOffsets"; constexpr const char kAcbBufferOffsets[] = "acbBufferOffsets"; constexpr const char kDepthRange[] = "depthRange"; constexpr const char kNumSamples[] = "numSamples"; +constexpr const char kHalfRenderArea[] = "halfRenderArea"; +constexpr const char kFlipXY[] = "flipXY"; +constexpr const char kNegFlipXY[] = "negFlipXY"; +constexpr const char kPreRotation[] = "preRotation"; +constexpr const char kFragRotation[] = "fragRotation"; +constexpr const char kEmulatedInstanceId[] = "emulatedInstanceID"; +constexpr const char kCoverageMask[] = "coverageMask"; -constexpr const char kHalfRenderArea[] = "halfRenderArea"; -constexpr const char kFlipXY[] = "flipXY"; -constexpr const char kNegFlipXY[] = "negFlipXY"; -constexpr const char kFragRotation[] = "fragRotation"; } // anonymous namespace // Class DriverUniform bool DriverUniform::addComputeDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable) { @@ -49,11 +52,11 @@ ASSERT(!mDriverUniforms); // This field list mirrors the structure of ComputeDriverUniforms in ContextVk.cpp. TFieldList *driverFieldList = new TFieldList; const std::array kDriverUniformTypes = {{ - new TType(EbtUInt, 4), + new TType(EbtUInt, EbpHigh, EvqGlobal, 4), }}; for (size_t uniformIndex = 0; uniformIndex < kNumComputeDriverUniforms; ++uniformIndex) { TField *driverUniformField = @@ -62,13 +65,16 @@ SymbolType::AngleInternal); driverFieldList->push_back(driverUniformField); } // Define a driver uniform block "ANGLEUniformBlock" with instance name "ANGLEUniforms". + TLayoutQualifier layoutQualifier = TLayoutQualifier::Create(); + layoutQualifier.blockStorage = EbsStd140; + mDriverUniforms = DeclareInterfaceBlock(root, symbolTable, driverFieldList, EvqUniform, - TLayoutQualifier::Create(), TMemoryQualifier::Create(), - 0, ImmutableString(vk::kDriverUniformsBlockName), + layoutQualifier, TMemoryQualifier::Create(), 0, + ImmutableString(vk::kDriverUniformsBlockName), ImmutableString(vk::kDriverUniformsVarName)); return mDriverUniforms != nullptr; } TFieldList *DriverUniform::createUniformFields(TSymbolTable *symbolTable) @@ -80,17 +86,18 @@ // This field list mirrors the structure of GraphicsDriverUniforms in ContextVk.cpp. TFieldList *driverFieldList = new TFieldList; const std::array kDriverUniformTypes = {{ - new TType(EbtFloat, 4), - new TType(EbtUInt), // uint clipDistancesEnabled; // 32 bits for 32 clip distances max - new TType(EbtUInt), - new TType(EbtInt), - new TType(EbtInt), - new TType(EbtInt, 4), - new TType(EbtUInt, 4), + new TType(EbtFloat, EbpHigh, EvqGlobal, 4), + new TType(EbtUInt, EbpHigh, + EvqGlobal), // uint clipDistancesEnabled; // 32 bits for 32 clip distances max + new TType(EbtUInt, EbpLow, EvqGlobal), // uint xfbActiveUnpaused; // 1 bit + new TType(EbtInt, EbpHigh, EvqGlobal), + new TType(EbtInt, EbpLow, EvqGlobal), // uint numSamples; // Up to 16 + new TType(EbtInt, EbpHigh, EvqGlobal, 4), + new TType(EbtUInt, EbpHigh, EvqGlobal, 4), createEmulatedDepthRangeType(symbolTable), }}; for (size_t uniformIndex = 0; uniformIndex < kNumGraphicsDriverUniforms; ++uniformIndex) { @@ -112,23 +119,20 @@ return mEmulatedDepthRangeType; } // Create the depth range type. TFieldList *depthRangeParamsFields = new TFieldList(); - depthRangeParamsFields->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), - ImmutableString("near"), TSourceLoc(), - SymbolType::AngleInternal)); - depthRangeParamsFields->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), - ImmutableString("far"), TSourceLoc(), - SymbolType::AngleInternal)); - depthRangeParamsFields->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), - ImmutableString("diff"), TSourceLoc(), - SymbolType::AngleInternal)); + TType *floatType = new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1); + depthRangeParamsFields->push_back( + new TField(floatType, ImmutableString("near"), TSourceLoc(), SymbolType::AngleInternal)); + depthRangeParamsFields->push_back( + new TField(floatType, ImmutableString("far"), TSourceLoc(), SymbolType::AngleInternal)); + depthRangeParamsFields->push_back( + new TField(floatType, ImmutableString("diff"), TSourceLoc(), SymbolType::AngleInternal)); // This additional field might be used by subclass such as TranslatorMetal. - depthRangeParamsFields->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), - ImmutableString("reserved"), TSourceLoc(), - SymbolType::AngleInternal)); + depthRangeParamsFields->push_back(new TField(floatType, ImmutableString("reserved"), + TSourceLoc(), SymbolType::AngleInternal)); TStructure *emulatedDepthRangeParams = new TStructure( symbolTable, kEmulatedDepthRangeParams, depthRangeParamsFields, SymbolType::AngleInternal); mEmulatedDepthRangeType = new TType(emulatedDepthRangeParams, false); @@ -156,30 +160,60 @@ TExtension::UNDEFINED, emulatedDepthRangeDeclType); DeclareGlobalVariable(root, depthRangeVar); TFieldList *driverFieldList = createUniformFields(symbolTable); - // Define a driver uniform block "ANGLEUniformBlock" with instance name "ANGLEUniforms". - mDriverUniforms = DeclareInterfaceBlock(root, symbolTable, driverFieldList, EvqUniform, - TLayoutQualifier::Create(), TMemoryQualifier::Create(), - 0, ImmutableString(vk::kDriverUniformsBlockName), - ImmutableString(vk::kDriverUniformsVarName)); + if (mMode == DriverUniformMode::InterfaceBlock) + { + // Define a driver uniform block "ANGLEUniformBlock" with instance name "ANGLEUniforms". + TLayoutQualifier layoutQualifier = TLayoutQualifier::Create(); + layoutQualifier.blockStorage = EbsStd140; + + mDriverUniforms = DeclareInterfaceBlock(root, symbolTable, driverFieldList, EvqUniform, + layoutQualifier, TMemoryQualifier::Create(), 0, + ImmutableString(vk::kDriverUniformsBlockName), + ImmutableString(vk::kDriverUniformsVarName)); + } + else + { + // Declare a structure "ANGLEUniformBlock" with instance name "ANGLE_angleUniforms". + // This code path is taken only by the direct-to-Metal backend, and the assumptions + // about the naming conventions of ANGLE-internal variables run too deeply to rename + // this one. + auto varName = ImmutableString("ANGLE_angleUniforms"); + auto result = DeclareStructure(root, symbolTable, driverFieldList, EvqUniform, + TMemoryQualifier::Create(), 0, + ImmutableString(vk::kDriverUniformsBlockName), &varName); + mDriverUniforms = result.second; + } return mDriverUniforms != nullptr; } TIntermBinary *DriverUniform::createDriverUniformRef(const char *fieldName) const { - size_t fieldIndex = - FindFieldIndex(mDriverUniforms->getType().getInterfaceBlock()->fields(), fieldName); + size_t fieldIndex = 0; + if (mMode == DriverUniformMode::InterfaceBlock) + { + fieldIndex = + FindFieldIndex(mDriverUniforms->getType().getInterfaceBlock()->fields(), fieldName); + } + else + { + fieldIndex = FindFieldIndex(mDriverUniforms->getType().getStruct()->fields(), fieldName); + } TIntermSymbol *angleUniformsRef = new TIntermSymbol(mDriverUniforms); TConstantUnion *uniformIndex = new TConstantUnion; uniformIndex->setIConst(static_cast(fieldIndex)); TIntermConstantUnion *indexRef = - new TIntermConstantUnion(uniformIndex, *StaticType::GetBasic()); - return new TIntermBinary(EOpIndexDirectInterfaceBlock, angleUniformsRef, indexRef); + new TIntermConstantUnion(uniformIndex, *StaticType::GetBasic()); + if (mMode == DriverUniformMode::InterfaceBlock) + { + return new TIntermBinary(EOpIndexDirectInterfaceBlock, angleUniformsRef, indexRef); + } + return new TIntermBinary(EOpIndexDirectStruct, angleUniformsRef, indexRef); } TIntermBinary *DriverUniform::getViewportRef() const { return createDriverUniformRef(kViewport); @@ -232,20 +266,24 @@ // TFieldList *DriverUniformExtended::createUniformFields(TSymbolTable *symbolTable) { TFieldList *driverFieldList = DriverUniform::createUniformFields(symbolTable); - constexpr size_t kNumGraphicsDriverUniformsExt = 4; + constexpr size_t kNumGraphicsDriverUniformsExt = 7; constexpr std::array - kGraphicsDriverUniformNamesExt = {{kHalfRenderArea, kFlipXY, kNegFlipXY, kFragRotation}}; + kGraphicsDriverUniformNamesExt = {{kHalfRenderArea, kFlipXY, kNegFlipXY, + kEmulatedInstanceId, kCoverageMask, kFragRotation, + kPreRotation}}; const std::array kDriverUniformTypesExt = {{ - new TType(EbtFloat, 2), - new TType(EbtFloat, 2), - new TType(EbtFloat, 2), - // NOTE: There's a vec2 gap here that can be used in the future - new TType(EbtFloat, 2, 2), + new TType(EbtFloat, EbpHigh, EvqGlobal, 2), + new TType(EbtFloat, EbpLow, EvqGlobal, 2), + new TType(EbtFloat, EbpLow, EvqGlobal, 2), + new TType(EbtUInt, EbpHigh, EvqGlobal), + new TType(EbtUInt, EbpHigh, EvqGlobal), + new TType(EbtFloat, EbpLow, EvqGlobal, 2, 2), + new TType(EbtFloat, EbpLow, EvqGlobal, 2, 2), }}; for (size_t uniformIndex = 0; uniformIndex < kNumGraphicsDriverUniformsExt; ++uniformIndex) { TField *driverUniformField = @@ -275,16 +313,31 @@ TVector swizzleOffsetY = {1}; TIntermSwizzle *negFlipY = new TIntermSwizzle(negFlipXY, swizzleOffsetY); return negFlipY; } +TIntermBinary *DriverUniformExtended::getPreRotationMatrixRef() const +{ + return createDriverUniformRef(kPreRotation); +} + TIntermBinary *DriverUniformExtended::getFragRotationMatrixRef() const { return createDriverUniformRef(kFragRotation); } TIntermBinary *DriverUniformExtended::getHalfRenderAreaRef() const { return createDriverUniformRef(kHalfRenderArea); } +TIntermBinary *DriverUniformExtended::getEmulatedInstanceId() const +{ + return createDriverUniformRef(kEmulatedInstanceId); +} + +TIntermBinary *DriverUniformExtended::getCoverageMask() const +{ + return createDriverUniformRef(kCoverageMask); +} + } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h @@ -0,0 +1,25 @@ +// +// Copyright 2021 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. +// +// FindPreciseNodes.h: Propagates |precise| to AST nodes. In SPIR-V, the corresponding decoration +// (NoContraction) is applied on the intermediate result of operations that affect the |precise| +// variables, not the variables themselves. + +#ifndef COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_ +#define COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_ + +#include "common/angleutils.h" + +namespace sh +{ + +class TCompiler; +class TIntermBlock; + +void FindPreciseNodes(TCompiler *compiler, TIntermBlock *root); + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp @@ -0,0 +1,703 @@ +// +// Copyright 2021 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. +// +// FindPreciseNodes.cpp: Propagates |precise| to AST nodes. +// +// The high level algorithm is as follows. For every node that "assigns" to a precise object, +// subobject (a precise struct whose field is being assigned) or superobject (a struct with a +// precise field), two things happen: +// +// - The operation is marked precise if it's an arithmetic operation +// - The right hand side of the assignment is made precise. If only a subobject is precise, only +// the corresponding subobject of the right hand side is made precise. +// + +#include "compiler/translator/tree_util/FindPreciseNodes.h" + +#include "common/hash_utils.h" +#include "compiler/translator/Compiler.h" +#include "compiler/translator/IntermNode.h" +#include "compiler/translator/Symbol.h" +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ + +namespace +{ + +// An access chain applied to a variable. The |precise|-ness of a node does not change when +// indexing arrays, selecting matrix columns or swizzle vectors. This access chain thus only +// includes block field selections. The access chain is used to identify the part of an object +// that is or should be |precise|. If both a.b.c and a.b are precise, only a.b is every considered. +class AccessChain +{ + public: + AccessChain() = default; + + bool operator==(const AccessChain &other) const { return mChain == other.mChain; } + + const TVariable *build(TIntermTyped *lvalue); + + const TVector &getChain() const { return mChain; } + + void reduceChain(size_t newSize) + { + ASSERT(newSize <= mChain.size()); + mChain.resize(newSize); + } + void clear() { reduceChain(0); } + void push_back(size_t index) { mChain.push_back(index); } + void pop_front(size_t n); + void append(const AccessChain &other) + { + mChain.insert(mChain.end(), other.mChain.begin(), other.mChain.end()); + } + bool removePrefix(const AccessChain &other); + + private: + TVector mChain; +}; + +bool IsIndexOp(TOperator op) +{ + switch (op) + { + case EOpIndexDirect: + case EOpIndexDirectStruct: + case EOpIndexDirectInterfaceBlock: + case EOpIndexIndirect: + return true; + default: + return false; + } +} + +const TVariable *AccessChain::build(TIntermTyped *lvalue) +{ + if (lvalue->getAsSwizzleNode()) + { + return build(lvalue->getAsSwizzleNode()->getOperand()); + } + if (lvalue->getAsSymbolNode()) + { + const TVariable *var = &lvalue->getAsSymbolNode()->variable(); + + // For fields of nameless interface blocks, add the field index too. + if (var->getType().getInterfaceBlock() != nullptr) + { + mChain.push_back(var->getType().getInterfaceBlockFieldIndex()); + } + + return var; + } + TIntermBinary *binary = lvalue->getAsBinaryNode(); + ASSERT(binary); + + TOperator op = binary->getOp(); + ASSERT(IsIndexOp(op)); + + const TVariable *var = build(binary->getLeft()); + + if (op == EOpIndexDirectStruct || op == EOpIndexDirectInterfaceBlock) + { + int fieldIndex = binary->getRight()->getAsConstantUnion()->getIConst(0); + mChain.push_back(fieldIndex); + } + + return var; +} + +void AccessChain::pop_front(size_t n) +{ + std::rotate(mChain.begin(), mChain.begin() + n, mChain.end()); + reduceChain(mChain.size() - n); +} + +bool AccessChain::removePrefix(const AccessChain &other) +{ + // First, make sure the common part of the two access chains match. + size_t commonSize = std::min(mChain.size(), other.mChain.size()); + + for (size_t index = 0; index < commonSize; ++index) + { + if (mChain[index] != other.mChain[index]) + { + return false; + } + } + + // Remove the common part from the access chain. If other is a deeper access chain, this access + // chain will become empty. + pop_front(commonSize); + + return true; +} + +AccessChain GetAssignmentAccessChain(TIntermOperator *node) +{ + // The assignment is either a unary or a binary node, and the lvalue is always the first child. + AccessChain lvalueAccessChain; + lvalueAccessChain.build(node->getChildNode(0)->getAsTyped()); + return lvalueAccessChain; +} + +template +void TraverseIndexNodesOnly(TIntermNode *node, Traverser *traverser) +{ + if (node->getAsSwizzleNode()) + { + node = node->getAsSwizzleNode()->getOperand(); + } + + if (node->getAsSymbolNode()) + { + return; + } + + TIntermBinary *binary = node->getAsBinaryNode(); + ASSERT(binary); + + TOperator op = binary->getOp(); + ASSERT(IsIndexOp(op)); + + if (op == EOpIndexIndirect) + { + binary->getRight()->traverse(traverser); + } + + TraverseIndexNodesOnly(binary->getLeft(), traverser); +} + +// An object, which could be a sub-object of a variable. +struct ObjectAndAccessChain +{ + const TVariable *variable; + AccessChain accessChain; +}; + +bool operator==(const ObjectAndAccessChain &a, const ObjectAndAccessChain &b) +{ + return a.variable == b.variable && a.accessChain == b.accessChain; +} + +struct ObjectAndAccessChainHash +{ + size_t operator()(const ObjectAndAccessChain &object) const + { + size_t result = angle::ComputeGenericHash(&object.variable, sizeof(object.variable)); + if (!object.accessChain.getChain().empty()) + { + result = + result ^ angle::ComputeGenericHash(object.accessChain.getChain().data(), + object.accessChain.getChain().size() * + sizeof(object.accessChain.getChain()[0])); + } + return result; + } +}; + +// A map from variables to AST nodes that modify them (i.e. nodes where IsAssignment(op)). +using VariableToAssignmentNodeMap = angle::HashMap>; +// A set of |return| nodes from functions with a |precise| return value. +using PreciseReturnNodes = angle::HashSet; +// A set of precise objects that need processing, or have been processed. +using PreciseObjectSet = angle::HashSet; + +struct ASTInfo +{ + // Generic information about the tree: + VariableToAssignmentNodeMap variableAssignmentNodeMap; + // Information pertaining to |precise| expressions: + PreciseReturnNodes preciseReturnNodes; + PreciseObjectSet preciseObjectsToProcess; + PreciseObjectSet preciseObjectsVisited; +}; + +int GetObjectPreciseSubChainLength(const ObjectAndAccessChain &object) +{ + const TType &type = object.variable->getType(); + + if (type.isPrecise()) + { + return 0; + } + + const TFieldListCollection *block = type.getInterfaceBlock(); + if (block == nullptr) + { + block = type.getStruct(); + } + const TVector &accessChain = object.accessChain.getChain(); + + for (size_t length = 0; length < accessChain.size(); ++length) + { + ASSERT(block != nullptr); + + const TField *field = block->fields()[accessChain[length]]; + if (field->type()->isPrecise()) + { + return static_cast(length + 1); + } + + block = field->type()->getStruct(); + } + + return -1; +} + +void AddPreciseObject(ASTInfo *info, const ObjectAndAccessChain &object) +{ + if (info->preciseObjectsVisited.count(object) > 0) + { + return; + } + + info->preciseObjectsToProcess.insert(object); + info->preciseObjectsVisited.insert(object); +} + +void AddPreciseSubObjects(ASTInfo *info, const ObjectAndAccessChain &object); + +void AddObjectIfPrecise(ASTInfo *info, const ObjectAndAccessChain &object) +{ + // See if the access chain is already precise, and if so add the minimum access chain that is + // precise. + int preciseSubChainLength = GetObjectPreciseSubChainLength(object); + if (preciseSubChainLength == -1) + { + // If the access chain is not precise, see if there are any fields of it that are precise, + // and add those individually. + AddPreciseSubObjects(info, object); + return; + } + + ObjectAndAccessChain preciseObject = object; + preciseObject.accessChain.reduceChain(preciseSubChainLength); + + AddPreciseObject(info, preciseObject); +} + +void AddPreciseSubObjects(ASTInfo *info, const ObjectAndAccessChain &object) +{ + const TFieldListCollection *block = object.variable->getType().getInterfaceBlock(); + if (block == nullptr) + { + block = object.variable->getType().getStruct(); + } + const TVector &accessChain = object.accessChain.getChain(); + + for (size_t length = 0; length < accessChain.size(); ++length) + { + block = block->fields()[accessChain[length]]->type()->getStruct(); + } + + if (block == nullptr) + { + return; + } + + for (size_t fieldIndex = 0; fieldIndex < block->fields().size(); ++fieldIndex) + { + ObjectAndAccessChain subObject = object; + subObject.accessChain.push_back(fieldIndex); + + // If the field is precise, add it as a precise subobject. Otherwise recurse. + if (block->fields()[fieldIndex]->type()->isPrecise()) + { + AddPreciseObject(info, subObject); + } + else + { + AddPreciseSubObjects(info, subObject); + } + } +} + +bool IsArithmeticOp(TOperator op) +{ + switch (op) + { + case EOpNegative: + + case EOpPostIncrement: + case EOpPostDecrement: + case EOpPreIncrement: + case EOpPreDecrement: + + case EOpAdd: + case EOpSub: + case EOpMul: + case EOpDiv: + case EOpIMod: + + case EOpVectorTimesScalar: + case EOpVectorTimesMatrix: + case EOpMatrixTimesVector: + case EOpMatrixTimesScalar: + case EOpMatrixTimesMatrix: + + case EOpAddAssign: + case EOpSubAssign: + + case EOpMulAssign: + case EOpVectorTimesMatrixAssign: + case EOpVectorTimesScalarAssign: + case EOpMatrixTimesScalarAssign: + case EOpMatrixTimesMatrixAssign: + + case EOpDivAssign: + case EOpIModAssign: + + case EOpDot: + return true; + default: + return false; + } +} + +// A traverser that gathers the following information, used to kick off processing: +// +// - For each variable, the AST nodes that modify it. +// - The set of |precise| return AST node. +// - The set of |precise| access chains assigned to. +// +class InfoGatherTraverser : public TIntermTraverser +{ + public: + InfoGatherTraverser(ASTInfo *info) : TIntermTraverser(true, false, false), mInfo(info) {} + + bool visitUnary(Visit visit, TIntermUnary *node) override + { + // If the node is an assignment (i.e. ++ and --), store the relevant information. + if (!IsAssignment(node->getOp())) + { + return true; + } + + visitLvalue(node, node->getOperand()); + return false; + } + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + if (IsAssignment(node->getOp())) + { + visitLvalue(node, node->getLeft()); + + node->getRight()->traverse(this); + + return false; + } + + return true; + } + + bool visitDeclaration(Visit visit, TIntermDeclaration *node) override + { + const TIntermSequence &sequence = *(node->getSequence()); + TIntermSymbol *symbol = sequence.front()->getAsSymbolNode(); + TIntermBinary *initNode = sequence.front()->getAsBinaryNode(); + TIntermTyped *initExpression = nullptr; + + if (symbol == nullptr) + { + ASSERT(initNode->getOp() == EOpInitialize); + + symbol = initNode->getLeft()->getAsSymbolNode(); + initExpression = initNode->getRight(); + } + + ASSERT(symbol); + ObjectAndAccessChain object = {&symbol->variable(), {}}; + AddObjectIfPrecise(mInfo, object); + + if (initExpression) + { + mInfo->variableAssignmentNodeMap[object.variable].push_back(initNode); + + // Visit the init expression, which may itself have assignments. + initExpression->traverse(this); + } + + return false; + } + + bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override + { + mCurrentFunction = node->getFunction(); + + for (size_t paramIndex = 0; paramIndex < mCurrentFunction->getParamCount(); ++paramIndex) + { + ObjectAndAccessChain param = {mCurrentFunction->getParam(paramIndex), {}}; + AddObjectIfPrecise(mInfo, param); + } + + return true; + } + + bool visitBranch(Visit visit, TIntermBranch *node) override + { + if (node->getFlowOp() == EOpReturn && node->getChildCount() == 1 && + mCurrentFunction->getReturnType().isPrecise()) + { + mInfo->preciseReturnNodes.insert(node); + } + + return true; + } + + bool visitGlobalQualifierDeclaration(Visit visit, + TIntermGlobalQualifierDeclaration *node) override + { + if (node->isPrecise()) + { + ObjectAndAccessChain preciseObject = {&node->getSymbol()->variable(), {}}; + AddPreciseObject(mInfo, preciseObject); + } + + return false; + } + + private: + void visitLvalue(TIntermOperator *assignmentNode, TIntermTyped *lvalueNode) + { + AccessChain lvalueChain; + const TVariable *lvalueBase = lvalueChain.build(lvalueNode); + mInfo->variableAssignmentNodeMap[lvalueBase].push_back(assignmentNode); + + ObjectAndAccessChain lvalue = {lvalueBase, lvalueChain}; + AddObjectIfPrecise(mInfo, lvalue); + + TraverseIndexNodesOnly(lvalueNode, this); + } + + ASTInfo *mInfo = nullptr; + const TFunction *mCurrentFunction = nullptr; +}; + +// A traverser that, given an access chain, traverses an expression and marks parts of it |precise|. +// For example, in the expression |Struct1(a, Struct2(b, c), d)|: +// +// - Given access chain [1], both |b| and |c| are marked precise. +// - Given access chain [1, 0], only |b| is marked precise. +// +// When access chain is empty, arithmetic nodes are marked |precise| and any access chains found in +// their children is recursively added for processing. +// +// The access chain given to the traverser is derived from the left hand side of an assignment, +// while the traverser is run on the right hand side. +class PropagatePreciseTraverser : public TIntermTraverser +{ + public: + PropagatePreciseTraverser(ASTInfo *info) : TIntermTraverser(true, false, false), mInfo(info) {} + + void propagatePrecise(TIntermNode *expression, const AccessChain &accessChain) + { + mCurrentAccessChain = accessChain; + expression->traverse(this); + } + + bool visitUnary(Visit visit, TIntermUnary *node) override + { + // Unary operations cannot be applied to structures. + ASSERT(mCurrentAccessChain.getChain().empty()); + + // Mark arithmetic nodes as |precise|. + if (IsArithmeticOp(node->getOp())) + { + node->setIsPrecise(); + } + + // Mark the operand itself |precise| too. + return true; + } + + bool visitBinary(Visit visit, TIntermBinary *node) override + { + if (IsIndexOp(node->getOp())) + { + // Append the remaining access chain with that of the node, and mark that as |precise|. + // For example, if we are evaluating an expression and expecting to mark the access + // chain [1, 3] as |precise|, and the node itself has access chain [0, 2] applied to + // variable V, then what ends up being |precise| is V with access chain [0, 2, 1, 3]. + AccessChain nodeAccessChain; + const TVariable *baseVariable = nodeAccessChain.build(node); + nodeAccessChain.append(mCurrentAccessChain); + + ObjectAndAccessChain preciseObject = {baseVariable, nodeAccessChain}; + AddPreciseObject(mInfo, preciseObject); + + // Visit index nodes, each of which should be considered |precise| in its entirety. + mCurrentAccessChain.clear(); + TraverseIndexNodesOnly(node, this); + + return false; + } + + if (node->getOp() == EOpComma) + { + // For expr1,expr2, consider only expr2 as that's the one whose calculation is relevant. + node->getRight()->traverse(this); + return false; + } + + // Mark arithmetic nodes as |precise|. + if (IsArithmeticOp(node->getOp())) + { + node->setIsPrecise(); + } + + if (IsAssignment(node->getOp()) || node->getOp() == EOpInitialize) + { + // If the node itself is a[...] op= expr, consider only expr as |precise|, as that's the + // one whose calculation is significant. + node->getRight()->traverse(this); + + // The indices used on the left hand side are also significant in their entirety. + mCurrentAccessChain.clear(); + TraverseIndexNodesOnly(node->getLeft(), this); + + return false; + } + + // Binary operations cannot be applied to structures. + ASSERT(mCurrentAccessChain.getChain().empty()); + + // Mark the operands themselves |precise| too. + return true; + } + + void visitSymbol(TIntermSymbol *symbol) override + { + // Mark the symbol together with the current access chain as |precise|. + ObjectAndAccessChain preciseObject = {&symbol->variable(), mCurrentAccessChain}; + AddPreciseObject(mInfo, preciseObject); + } + + bool visitAggregate(Visit visit, TIntermAggregate *node) override + { + // If this is a struct constructor and the access chain is not empty, only apply |precise| + // to the field selected by the access chain. + const TType &type = node->getType(); + const bool isStructConstructor = + node->getOp() == EOpConstruct && type.getStruct() != nullptr && !type.isArray(); + + if (!mCurrentAccessChain.getChain().empty() && isStructConstructor) + { + size_t selectedFieldIndex = mCurrentAccessChain.getChain().front(); + mCurrentAccessChain.pop_front(1); + + ASSERT(selectedFieldIndex < node->getChildCount()); + + // Visit only said field. + node->getChildNode(selectedFieldIndex)->traverse(this); + return false; + } + + // If this is an array constructor, each element is equally |precise| with the same access + // chain. Otherwise there cannot be any access chain for constructors. + if (node->getOp() == EOpConstruct) + { + ASSERT(type.isArray() || mCurrentAccessChain.getChain().empty()); + return true; + } + + // Otherwise this is a function call. The access chain is irrelevant and every (non-out) + // parameter of the function call should be considered |precise|. + mCurrentAccessChain.clear(); + + const TFunction *function = node->getFunction(); + ASSERT(function); + + for (size_t paramIndex = 0; paramIndex < function->getParamCount(); ++paramIndex) + { + if (function->getParam(paramIndex)->getType().getQualifier() != EvqParamOut) + { + node->getChildNode(paramIndex)->traverse(this); + } + } + + // Mark arithmetic nodes as |precise|. + if (IsArithmeticOp(node->getOp())) + { + node->setIsPrecise(); + } + + return false; + } + + private: + ASTInfo *mInfo = nullptr; + AccessChain mCurrentAccessChain; +}; +} // anonymous namespace + +void FindPreciseNodes(TCompiler *compiler, TIntermBlock *root) +{ + ASTInfo info; + + InfoGatherTraverser infoGather(&info); + root->traverse(&infoGather); + + PropagatePreciseTraverser propagator(&info); + + // First, get return expressions out of the way by propagating |precise|. + for (TIntermBranch *returnNode : info.preciseReturnNodes) + { + ASSERT(returnNode->getChildCount() == 1); + propagator.propagatePrecise(returnNode->getChildNode(0), {}); + } + + // Now take |precise| access chains one by one, and propagate their |precise|-ness to the right + // hand side of all assignments in which they are on the left hand side, as well as the + // arithmetic expression that assigns to them. + + while (!info.preciseObjectsToProcess.empty()) + { + // Get one |precise| object to process. + auto first = info.preciseObjectsToProcess.begin(); + const ObjectAndAccessChain toProcess = *first; + info.preciseObjectsToProcess.erase(first); + + // Propagate |precise| to every node where it's assigned to. + const TVector &assignmentNodes = + info.variableAssignmentNodeMap[toProcess.variable]; + for (TIntermOperator *assignmentNode : assignmentNodes) + { + AccessChain assignmentAccessChain = GetAssignmentAccessChain(assignmentNode); + + // There are two possibilities: + // + // - The assignment is to a bigger access chain than that which is being processed, in + // which case the entire right hand side is marked |precise|, + // - The assignment is to a smaller access chain, in which case only the subobject of + // the right hand side that corresponds to the remaining part of the access chain must + // be marked |precise|. + // + // For example, if processing |a.b.c| as a |precise| access chain: + // + // - If the assignment is to |a.b.c.d|, then the entire right hand side must be + // |precise|. + // - If the assignment is to |a.b|, only the |.c| part of the right hand side expression + // must be |precise|. + // - If the assignment is to |a.e|, there is nothing to do. + // + AccessChain remainingAccessChain = toProcess.accessChain; + if (!remainingAccessChain.removePrefix(assignmentAccessChain)) + { + continue; + } + + propagator.propagatePrecise(assignmentNode, remainingAccessChain); + } + } + + // The AST nodes now contain information gathered by this post-processing step, and so the tree + // must no longer be transformed. + compiler->enableValidateNoMoreTransformations(); +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h @@ -26,56 +26,56 @@ public: static bool IsDynamicIndexingOfNonSSBOVectorOrMatrix(TIntermBinary *node); static bool IsDynamicIndexingOfVectorOrMatrix(TIntermBinary *node); static bool IsDynamicIndexingOfSwizzledVector(TIntermBinary *node); - enum PatternType + enum PatternType : unsigned int { // Matches expressions that are unfolded to if statements by UnfoldShortCircuitToIf - kUnfoldedShortCircuitExpression = 0x0001, + kUnfoldedShortCircuitExpression = 1u << 0u, // Matches expressions that return arrays with the exception of simple statements where a // constructor or function call result is assigned. - kExpressionReturningArray = 0x0001 << 1, + kExpressionReturningArray = 1u << 1u, // Matches dynamic indexing of vectors or matrices in l-values. - kDynamicIndexingOfVectorOrMatrixInLValue = 0x0001 << 2, + kDynamicIndexingOfVectorOrMatrixInLValue = 1u << 2u, // Matches declarations with more than one declared variables. - kMultiDeclaration = 0x0001 << 3, + kMultiDeclaration = 1u << 3u, // Matches declarations of arrays. - kArrayDeclaration = 0x0001 << 4, + kArrayDeclaration = 1u << 4u, // Matches declarations of structs where the struct type does not have a name. - kNamelessStructDeclaration = 0x0001 << 5, + kNamelessStructDeclaration = 1u << 5u, // Matches array length() method. - kArrayLengthMethod = 0x0001 << 6, + kArrayLengthMethod = 1u << 6u, // Matches a vector or matrix constructor whose arguments are scalarized by the // SH_SCALARIZE_VEC_OR_MAT_CONSTRUCTOR_ARGUMENTS workaround. - kScalarizedVecOrMatConstructor = 0x0001 << 7 + kScalarizedVecOrMatConstructor = 1u << 7u, }; IntermNodePatternMatcher(const unsigned int mask); - bool match(TIntermUnary *node); + bool match(TIntermUnary *node) const; - bool match(TIntermBinary *node, TIntermNode *parentNode); + bool match(TIntermBinary *node, TIntermNode *parentNode) const; // Use this version for checking binary node matches in case you're using flag // kDynamicIndexingOfVectorOrMatrixInLValue. - bool match(TIntermBinary *node, TIntermNode *parentNode, bool isLValueRequiredHere); + bool match(TIntermBinary *node, TIntermNode *parentNode, bool isLValueRequiredHere) const; - bool match(TIntermAggregate *node, TIntermNode *parentNode); - bool match(TIntermTernary *node); - bool match(TIntermDeclaration *node); + bool match(TIntermAggregate *node, TIntermNode *parentNode) const; + bool match(TIntermTernary *node) const; + bool match(TIntermDeclaration *node) const; private: const unsigned int mMask; - bool matchInternal(TIntermBinary *node, TIntermNode *parentNode); + bool matchInternal(TIntermBinary *node, TIntermNode *parentNode) const; }; } // namespace sh #endif // COMPILER_TRANSLATOR_TREEUTIL_INTERMNODEPATTERNMATCHER_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp @@ -63,11 +63,11 @@ bool IntermNodePatternMatcher::IsDynamicIndexingOfSwizzledVector(TIntermBinary *node) { return IsDynamicIndexingOfVectorOrMatrix(node) && node->getLeft()->getAsSwizzleNode(); } -bool IntermNodePatternMatcher::matchInternal(TIntermBinary *node, TIntermNode *parentNode) +bool IntermNodePatternMatcher::matchInternal(TIntermBinary *node, TIntermNode *parentNode) const { if ((mMask & kExpressionReturningArray) != 0) { if (node->isArray() && node->getOp() == EOpAssign && parentNode != nullptr && !parentNode->getAsBlock()) @@ -85,11 +85,11 @@ } } return false; } -bool IntermNodePatternMatcher::match(TIntermUnary *node) +bool IntermNodePatternMatcher::match(TIntermUnary *node) const { if ((mMask & kArrayLengthMethod) != 0) { if (node->getOp() == EOpArrayLength) { @@ -97,22 +97,22 @@ } } return false; } -bool IntermNodePatternMatcher::match(TIntermBinary *node, TIntermNode *parentNode) +bool IntermNodePatternMatcher::match(TIntermBinary *node, TIntermNode *parentNode) const { // L-value tracking information is needed to check for dynamic indexing in L-value. // Traversers that don't track l-values can still use this class and match binary nodes with // this variation of this method if they don't need to check for dynamic indexing in l-values. ASSERT((mMask & kDynamicIndexingOfVectorOrMatrixInLValue) == 0); return matchInternal(node, parentNode); } bool IntermNodePatternMatcher::match(TIntermBinary *node, TIntermNode *parentNode, - bool isLValueRequiredHere) + bool isLValueRequiredHere) const { if (matchInternal(node, parentNode)) { return true; } @@ -124,11 +124,11 @@ } } return false; } -bool IntermNodePatternMatcher::match(TIntermAggregate *node, TIntermNode *parentNode) +bool IntermNodePatternMatcher::match(TIntermAggregate *node, TIntermNode *parentNode) const { if ((mMask & kExpressionReturningArray) != 0) { if (parentNode != nullptr) { @@ -136,11 +136,14 @@ bool parentIsAssignment = (parentBinary != nullptr && (parentBinary->getOp() == EOpAssign || parentBinary->getOp() == EOpInitialize)); if (node->getType().isArray() && !parentIsAssignment && - (node->isConstructor() || node->isFunctionCall()) && !parentNode->getAsBlock()) + (node->isConstructor() || node->isFunctionCall() || + (BuiltInGroup::IsBuiltIn(node->getOp()) && + !BuiltInGroup::IsMath(node->getOp()))) && + !parentNode->getAsBlock()) { return true; } } } @@ -159,20 +162,20 @@ } } return false; } -bool IntermNodePatternMatcher::match(TIntermTernary *node) +bool IntermNodePatternMatcher::match(TIntermTernary *node) const { if ((mMask & kUnfoldedShortCircuitExpression) != 0) { return true; } return false; } -bool IntermNodePatternMatcher::match(TIntermDeclaration *node) +bool IntermNodePatternMatcher::match(TIntermDeclaration *node) const { if ((mMask & kMultiDeclaration) != 0) { if (node->getSequence()->size() > 1) { diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h @@ -21,11 +21,11 @@ TIntermFunctionPrototype *CreateInternalFunctionPrototypeNode(const TFunction &func); TIntermFunctionDefinition *CreateInternalFunctionDefinitionNode(const TFunction &func, TIntermBlock *functionBody); TIntermTyped *CreateZeroNode(const TType &type); -TIntermConstantUnion *CreateFloatNode(float value); +TIntermConstantUnion *CreateFloatNode(float value, TPrecision precision); TIntermConstantUnion *CreateIndexNode(int index); TIntermConstantUnion *CreateUIntNode(unsigned int value); TIntermConstantUnion *CreateBoolNode(bool value); TVariable *CreateTempVariable(TSymbolTable *symbolTable, const TType *type); @@ -43,10 +43,19 @@ TIntermDeclaration **declarationOut); TVariable *DeclareTempVariable(TSymbolTable *symbolTable, TIntermTyped *initializer, TQualifier qualifier, TIntermDeclaration **declarationOut); +std::pair DeclareStructure( + TIntermBlock *root, + TSymbolTable *symbolTable, + TFieldList *fieldList, + TQualifier qualifier, + const TMemoryQualifier &memoryQualifier, + uint32_t arraySize, + const ImmutableString &structTypeName, + const ImmutableString *structInstanceName); const TVariable *DeclareInterfaceBlock(TIntermBlock *root, TSymbolTable *symbolTable, TFieldList *fieldList, TQualifier qualifier, const TLayoutQualifier &layoutQualifier, @@ -72,10 +81,14 @@ TIntermTyped *CreateBuiltInFunctionCallNode(const char *name, TIntermSequence *arguments, const TSymbolTable &symbolTable, int shaderVersion); +TIntermTyped *CreateBuiltInUnaryFunctionCallNode(const char *name, + TIntermTyped *argument, + const TSymbolTable &symbolTable, + int shaderVersion); inline void GetSwizzleIndex(TVector *indexOut) {} template void GetSwizzleIndex(TVector *indexOut, T arg, ArgsT... args) diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp @@ -72,11 +72,11 @@ break; default: // CreateZeroNode is called by ParseContext that keeps parsing even when an // error occurs, so it is possible for CreateZeroNode to be called with // non-basic types. This happens only on error condition but CreateZeroNode - // needs to return a value with the correct type to continue the typecheck. + // needs to return a value with the correct type to continue the type check. // That's why we handle non-basic type by setting whatever value, we just need // the type to be right. u[i].setIConst(42); break; } @@ -111,34 +111,34 @@ } return TIntermAggregate::CreateConstructor(constType, &arguments); } -TIntermConstantUnion *CreateFloatNode(float value) +TIntermConstantUnion *CreateFloatNode(float value, TPrecision precision) { TConstantUnion *u = new TConstantUnion[1]; u[0].setFConst(value); - TType type(EbtFloat, EbpUndefined, EvqConst, 1); + TType type(EbtFloat, precision, EvqConst, 1); return new TIntermConstantUnion(u, type); } TIntermConstantUnion *CreateIndexNode(int index) { TConstantUnion *u = new TConstantUnion[1]; u[0].setIConst(index); - TType type(EbtInt, EbpUndefined, EvqConst, 1); + TType type(EbtInt, EbpHigh, EvqConst, 1); return new TIntermConstantUnion(u, type); } TIntermConstantUnion *CreateUIntNode(unsigned int value) { TConstantUnion *u = new TConstantUnion[1]; u[0].setUConst(value); - TType type(EbtUInt, EbpUndefined, EvqConst, 1); + TType type(EbtUInt, EbpHigh, EvqConst, 1); return new TIntermConstantUnion(u, type); } TIntermConstantUnion *CreateBoolNode(bool value) { @@ -222,10 +222,54 @@ CreateTempVariable(symbolTable, new TType(initializer->getType()), qualifier); *declarationOut = CreateTempInitDeclarationNode(variable, initializer); return variable; } +std::pair DeclareStructure( + TIntermBlock *root, + TSymbolTable *symbolTable, + TFieldList *fieldList, + TQualifier qualifier, + const TMemoryQualifier &memoryQualifier, + uint32_t arraySize, + const ImmutableString &structTypeName, + const ImmutableString *structInstanceName) +{ + TStructure *structure = + new TStructure(symbolTable, structTypeName, fieldList, SymbolType::AngleInternal); + + auto makeStructureType = [&](bool isStructSpecifier) { + TType *structureType = new TType(structure, isStructSpecifier); + structureType->setQualifier(qualifier); + structureType->setMemoryQualifier(memoryQualifier); + if (arraySize > 0) + { + structureType->makeArray(arraySize); + } + return structureType; + }; + + TIntermSequence insertSequence; + + TVariable *typeVar = new TVariable(symbolTable, kEmptyImmutableString, makeStructureType(true), + SymbolType::Empty); + insertSequence.push_back(new TIntermDeclaration{typeVar}); + + TVariable *instanceVar = nullptr; + if (structInstanceName) + { + instanceVar = new TVariable(symbolTable, *structInstanceName, makeStructureType(false), + SymbolType::AngleInternal); + insertSequence.push_back(new TIntermDeclaration{instanceVar}); + } + + size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(root); + root->insertChildNodes(firstFunctionIndex, insertSequence); + + return {typeVar, instanceVar}; +} + const TVariable *DeclareInterfaceBlock(TIntermBlock *root, TSymbolTable *symbolTable, TFieldList *fieldList, TQualifier qualifier, const TLayoutQualifier &layoutQualifier, @@ -277,13 +321,13 @@ return blockNode; } TIntermSymbol *ReferenceGlobalVariable(const ImmutableString &name, const TSymbolTable &symbolTable) { - const TVariable *var = static_cast(symbolTable.findGlobal(name)); - ASSERT(var); - return new TIntermSymbol(var); + const TSymbol *symbol = symbolTable.findGlobal(name); + ASSERT(symbol && symbol->isVariable()); + return new TIntermSymbol(static_cast(symbol)); } TIntermSymbol *ReferenceBuiltInVariable(const ImmutableString &name, const TSymbolTable &symbolTable, int shaderVersion) @@ -300,13 +344,22 @@ int shaderVersion) { const TFunction *fn = LookUpBuiltInFunction(name, arguments, symbolTable, shaderVersion); ASSERT(fn); TOperator op = fn->getBuiltInOp(); - if (op != EOpCallBuiltInFunction && arguments->size() == 1) + if (BuiltInGroup::IsMath(op) && arguments->size() == 1) { return new TIntermUnary(op, arguments->at(0)->getAsTyped(), fn); } return TIntermAggregate::CreateBuiltInFunctionCall(*fn, arguments); } +TIntermTyped *CreateBuiltInUnaryFunctionCallNode(const char *name, + TIntermTyped *argument, + const TSymbolTable &symbolTable, + int shaderVersion) +{ + TIntermSequence seq = {argument}; + return CreateBuiltInFunctionCallNode(name, &seq, symbolTable, shaderVersion); +} + } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h @@ -0,0 +1,328 @@ +// +// 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. +// + +#ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_ +#define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_ + +#include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/NodeType.h" + +namespace sh +{ + +// Walks the tree to rebuild nodes. +// This class is intended to be derived with overridden visitXXX functions. +// +// Each visitXXX function that does not have a Visit parameter simply has the visitor called +// exactly once, regardless of (preVisit) or (postVisit) values. + +// Each visitXXX function that has a Visit parameter behaves as follows: +// * If (preVisit): +// - The node is visited before children are traversed. +// - The returned value is used to replace the visited node. The returned value may be the same +// as the original node. +// - If multiple nodes are returned, children and post visits of the returned nodes are not +// preformed, even if it is a singleton collection. +// * If (childVisit) +// - If any new children are returned, the node is automatically rebuilt with the new children +// before post visit. +// - Depending on the type of the node, null children may be discarded. +// - Ill-typed children cause rebuild errors. Ill-typed means the node to automatically rebuild +// cannot accept a child of a certain type as input to its constructor. +// - Only instances of TIntermAggregateBase can accept Multi results for any of its children. +// If supplied, the nodes are spliced children at the spot of the original child. +// * If (postVisit) +// - The node is visited after any children are traversed. +// - Only after such a rebuild (or lack thereof), the post-visit is performed. +// +// Nodes in visit functions are allowed to be modified in place, including TIntermAggregateBase +// child sequences. +// +// The default implementations of all the visitXXX functions support full pre and post traversal +// without modifying the visited nodes. +// +class TIntermRebuild : angle::NonCopyable +{ + + enum class Action + { + ReplaceSingle, + ReplaceMulti, + Drop, + Fail, + }; + + public: + struct Fail + {}; + + enum VisitBits : size_t + { + // No bits are set. + Empty = 0u, + + // Allow visit of returned node's children. + Children = 1u << 0u, + + // Allow post visit of returned node. + Post = 1u << 1u, + + // If (Children) bit, only visit if the returned node is the same as the original node. + ChildrenRequiresSame = 1u << 2u, + + // If (Post) bit, only visit if the returned node is the same as the original node. + PostRequiresSame = 1u << 3u, + + RequireSame = ChildrenRequiresSame | PostRequiresSame, + Neither = Empty, + Both = Children | Post, + BothWhenSame = Both | RequireSame, + }; + + private: + struct NodeStackGuard; + + template + struct ConsList + { + T value; + ConsList *tail; + }; + + class BaseResult + { + BaseResult(const BaseResult &) = delete; + BaseResult &operator=(const BaseResult &) = delete; + + public: + BaseResult(BaseResult &&other) = default; + BaseResult(BaseResult &other); // For subclass move constructor impls + BaseResult(TIntermNode &node, VisitBits visit); + BaseResult(TIntermNode *node, VisitBits visit); + BaseResult(std::nullptr_t); + BaseResult(Fail); + BaseResult(std::vector &&nodes); + + void moveAssignImpl(BaseResult &other); // For subclass move assign impls + + static BaseResult Multi(std::vector &&nodes); + + template + static BaseResult Multi(Iter nodesBegin, Iter nodesEnd) + { + std::vector nodes; + for (Iter nodesCurr = nodesBegin; nodesCurr != nodesEnd; ++nodesCurr) + { + nodes.push_back(*nodesCurr); + } + return std::move(nodes); + } + + bool isFail() const; + bool isDrop() const; + TIntermNode *single() const; + const std::vector *multi() const; + + public: + Action mAction; + VisitBits mVisit; + TIntermNode *mSingle; + std::vector mMulti; + }; + + public: + class PreResult : private BaseResult + { + friend class TIntermRebuild; + + public: + PreResult(PreResult &&other); + PreResult(TIntermNode &node, VisitBits visit = VisitBits::BothWhenSame); + PreResult(TIntermNode *node, VisitBits visit = VisitBits::BothWhenSame); + PreResult(std::nullptr_t); // Used to drop a node. + PreResult(Fail); // Used to signal failure. + + void operator=(PreResult &&other); + + static PreResult Multi(std::vector &&nodes) + { + return BaseResult::Multi(std::move(nodes)); + } + + template + static PreResult Multi(Iter nodesBegin, Iter nodesEnd) + { + return BaseResult::Multi(nodesBegin, nodesEnd); + } + + using BaseResult::isDrop; + using BaseResult::isFail; + using BaseResult::multi; + using BaseResult::single; + + private: + PreResult(BaseResult &&other); + }; + + class PostResult : private BaseResult + { + friend class TIntermRebuild; + + public: + PostResult(PostResult &&other); + PostResult(TIntermNode &node); + PostResult(TIntermNode *node); + PostResult(std::nullptr_t); // Used to drop a node + PostResult(Fail); // Used to signal failure. + + void operator=(PostResult &&other); + + static PostResult Multi(std::vector &&nodes) + { + return BaseResult::Multi(std::move(nodes)); + } + + template + static PostResult Multi(Iter nodesBegin, Iter nodesEnd) + { + return BaseResult::Multi(nodesBegin, nodesEnd); + } + + using BaseResult::isDrop; + using BaseResult::isFail; + using BaseResult::multi; + using BaseResult::single; + + private: + PostResult(BaseResult &&other); + }; + + public: + TIntermRebuild(TCompiler &compiler, bool preVisit, bool postVisit); + + virtual ~TIntermRebuild(); + + // Rebuilds the tree starting at the provided root. If a new node would be returned for the + // root, the root node's children become that of the new node instead. Returns false if failure + // occurred. + ANGLE_NO_DISCARD bool rebuildRoot(TIntermBlock &root); + + protected: + virtual PreResult visitSymbolPre(TIntermSymbol &node); + virtual PreResult visitConstantUnionPre(TIntermConstantUnion &node); + virtual PreResult visitFunctionPrototypePre(TIntermFunctionPrototype &node); + virtual PreResult visitPreprocessorDirectivePre(TIntermPreprocessorDirective &node); + virtual PreResult visitUnaryPre(TIntermUnary &node); + virtual PreResult visitBinaryPre(TIntermBinary &node); + virtual PreResult visitTernaryPre(TIntermTernary &node); + virtual PreResult visitSwizzlePre(TIntermSwizzle &node); + virtual PreResult visitIfElsePre(TIntermIfElse &node); + virtual PreResult visitSwitchPre(TIntermSwitch &node); + virtual PreResult visitCasePre(TIntermCase &node); + virtual PreResult visitLoopPre(TIntermLoop &node); + virtual PreResult visitBranchPre(TIntermBranch &node); + virtual PreResult visitDeclarationPre(TIntermDeclaration &node); + virtual PreResult visitBlockPre(TIntermBlock &node); + virtual PreResult visitAggregatePre(TIntermAggregate &node); + virtual PreResult visitFunctionDefinitionPre(TIntermFunctionDefinition &node); + virtual PreResult visitGlobalQualifierDeclarationPre(TIntermGlobalQualifierDeclaration &node); + + virtual PostResult visitSymbolPost(TIntermSymbol &node); + virtual PostResult visitConstantUnionPost(TIntermConstantUnion &node); + virtual PostResult visitFunctionPrototypePost(TIntermFunctionPrototype &node); + virtual PostResult visitPreprocessorDirectivePost(TIntermPreprocessorDirective &node); + virtual PostResult visitUnaryPost(TIntermUnary &node); + virtual PostResult visitBinaryPost(TIntermBinary &node); + virtual PostResult visitTernaryPost(TIntermTernary &node); + virtual PostResult visitSwizzlePost(TIntermSwizzle &node); + virtual PostResult visitIfElsePost(TIntermIfElse &node); + virtual PostResult visitSwitchPost(TIntermSwitch &node); + virtual PostResult visitCasePost(TIntermCase &node); + virtual PostResult visitLoopPost(TIntermLoop &node); + virtual PostResult visitBranchPost(TIntermBranch &node); + virtual PostResult visitDeclarationPost(TIntermDeclaration &node); + virtual PostResult visitBlockPost(TIntermBlock &node); + virtual PostResult visitAggregatePost(TIntermAggregate &node); + virtual PostResult visitFunctionDefinitionPost(TIntermFunctionDefinition &node); + virtual PostResult visitGlobalQualifierDeclarationPost(TIntermGlobalQualifierDeclaration &node); + + // Can be used to rebuild a specific node during a traversal. Useful for fine control of + // rebuilding a node's children. + ANGLE_NO_DISCARD PostResult rebuild(TIntermNode &node); + + // Rebuilds the provided node in place. If a new node would be returned, the old node's children + // become that of the new node instead. Returns false if failure occurred. + ANGLE_NO_DISCARD bool rebuildInPlace(TIntermAggregate &node); + + // Rebuilds the provided node in place. If a new node would be returned, the old node's children + // become that of the new node instead. Returns false if failure occurred. + ANGLE_NO_DISCARD bool rebuildInPlace(TIntermBlock &node); + + // Rebuilds the provided node in place. If a new node would be returned, the old node's children + // become that of the new node instead. Returns false if failure occurred. + ANGLE_NO_DISCARD bool rebuildInPlace(TIntermDeclaration &node); + + // If currently at or below a function declaration body, this returns the function that encloses + // the currently visited node. (This returns null if at a function declaration node.) + const TFunction *getParentFunction() const; + + TIntermNode *getParentNode(size_t offset = 0) const; + + private: + template + ANGLE_NO_DISCARD bool rebuildInPlaceImpl(Node &node); + + PostResult traverseAny(TIntermNode &node); + + template + Node *traverseAnyAs(TIntermNode &node); + + template + bool traverseAnyAs(TIntermNode &node, Node *&out); + + PreResult traversePre(TIntermNode &originalNode); + TIntermNode *traverseChildren(NodeType currNodeType, + const TIntermNode &originalNode, + TIntermNode &currNode, + VisitBits visit); + PostResult traversePost(NodeType nodeType, + const TIntermNode &originalNode, + TIntermNode &currNode, + VisitBits visit); + + bool traverseAggregateBaseChildren(TIntermAggregateBase &node); + + TIntermNode *traverseUnaryChildren(TIntermUnary &node); + TIntermNode *traverseBinaryChildren(TIntermBinary &node); + TIntermNode *traverseTernaryChildren(TIntermTernary &node); + TIntermNode *traverseSwizzleChildren(TIntermSwizzle &node); + TIntermNode *traverseIfElseChildren(TIntermIfElse &node); + TIntermNode *traverseSwitchChildren(TIntermSwitch &node); + TIntermNode *traverseCaseChildren(TIntermCase &node); + TIntermNode *traverseLoopChildren(TIntermLoop &node); + TIntermNode *traverseBranchChildren(TIntermBranch &node); + TIntermNode *traverseDeclarationChildren(TIntermDeclaration &node); + TIntermNode *traverseBlockChildren(TIntermBlock &node); + TIntermNode *traverseAggregateChildren(TIntermAggregate &node); + TIntermNode *traverseFunctionDefinitionChildren(TIntermFunctionDefinition &node); + TIntermNode *traverseGlobalQualifierDeclarationChildren( + TIntermGlobalQualifierDeclaration &node); + + protected: + TCompiler &mCompiler; + TSymbolTable &mSymbolTable; + const TFunction *mParentFunc = nullptr; + GetNodeType getNodeType; + + private: + ConsList mNodeStack{nullptr, nullptr}; + bool mPreVisit; + bool mPostVisit; +}; + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp @@ -0,0 +1,1047 @@ +// +// 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. +// + +#include + +#include "compiler/translator/Compiler.h" +#include "compiler/translator/SymbolTable.h" +#include "compiler/translator/tree_util/AsNode.h" +#include "compiler/translator/tree_util/IntermRebuild.h" + +#define GUARD2(cond, failVal) \ + do \ + { \ + if (!(cond)) \ + { \ + return failVal; \ + } \ + } while (false) + +#define GUARD(cond) GUARD2(cond, nullptr) + +namespace sh +{ + +template +ANGLE_INLINE bool AllBits(T haystack, U needle) +{ + return (haystack & needle) == needle; +} + +template +ANGLE_INLINE bool AnyBits(T haystack, U needle) +{ + return (haystack & needle) != 0; +} + +//////////////////////////////////////////////////////////////////////////////// + +TIntermRebuild::BaseResult::BaseResult(BaseResult &other) + : mAction(other.mAction), + mVisit(other.mVisit), + mSingle(other.mSingle), + mMulti(std::move(other.mMulti)) +{} + +TIntermRebuild::BaseResult::BaseResult(TIntermNode &node, VisitBits visit) + : mAction(Action::ReplaceSingle), mVisit(visit), mSingle(&node) +{} + +TIntermRebuild::BaseResult::BaseResult(TIntermNode *node, VisitBits visit) + : mAction(node ? Action::ReplaceSingle : Action::Drop), + mVisit(node ? visit : VisitBits::Neither), + mSingle(node) +{} + +TIntermRebuild::BaseResult::BaseResult(std::nullptr_t) + : mAction(Action::Drop), mVisit(VisitBits::Neither), mSingle(nullptr) +{} + +TIntermRebuild::BaseResult::BaseResult(Fail) + : mAction(Action::Fail), mVisit(VisitBits::Neither), mSingle(nullptr) +{} + +TIntermRebuild::BaseResult::BaseResult(std::vector &&nodes) + : mAction(Action::ReplaceMulti), + mVisit(VisitBits::Neither), + mSingle(nullptr), + mMulti(std::move(nodes)) +{} + +void TIntermRebuild::BaseResult::moveAssignImpl(BaseResult &other) +{ + mAction = other.mAction; + mVisit = other.mVisit; + mSingle = other.mSingle; + mMulti = std::move(other.mMulti); +} + +TIntermRebuild::BaseResult TIntermRebuild::BaseResult::Multi(std::vector &&nodes) +{ + auto it = std::remove(nodes.begin(), nodes.end(), nullptr); + nodes.erase(it, nodes.end()); + return std::move(nodes); +} + +bool TIntermRebuild::BaseResult::isFail() const +{ + return mAction == Action::Fail; +} + +bool TIntermRebuild::BaseResult::isDrop() const +{ + return mAction == Action::Drop; +} + +TIntermNode *TIntermRebuild::BaseResult::single() const +{ + return mSingle; +} + +const std::vector *TIntermRebuild::BaseResult::multi() const +{ + if (mAction == Action::ReplaceMulti) + { + return &mMulti; + } + return nullptr; +} + +//////////////////////////////////////////////////////////////////////////////// + +using PreResult = TIntermRebuild::PreResult; + +PreResult::PreResult(TIntermNode &node, VisitBits visit) : BaseResult(node, visit) {} +PreResult::PreResult(TIntermNode *node, VisitBits visit) : BaseResult(node, visit) {} +PreResult::PreResult(std::nullptr_t) : BaseResult(nullptr) {} +PreResult::PreResult(Fail) : BaseResult(Fail()) {} + +PreResult::PreResult(BaseResult &&other) : BaseResult(other) {} +PreResult::PreResult(PreResult &&other) : BaseResult(other) {} + +void PreResult::operator=(PreResult &&other) +{ + moveAssignImpl(other); +} + +//////////////////////////////////////////////////////////////////////////////// + +using PostResult = TIntermRebuild::PostResult; + +PostResult::PostResult(TIntermNode &node) : BaseResult(node, VisitBits::Neither) {} +PostResult::PostResult(TIntermNode *node) : BaseResult(node, VisitBits::Neither) {} +PostResult::PostResult(std::nullptr_t) : BaseResult(nullptr) {} +PostResult::PostResult(Fail) : BaseResult(Fail()) {} + +PostResult::PostResult(PostResult &&other) : BaseResult(other) {} +PostResult::PostResult(BaseResult &&other) : BaseResult(other) {} + +void PostResult::operator=(PostResult &&other) +{ + moveAssignImpl(other); +} + +//////////////////////////////////////////////////////////////////////////////// + +TIntermRebuild::TIntermRebuild(TCompiler &compiler, bool preVisit, bool postVisit) + : mCompiler(compiler), + mSymbolTable(compiler.getSymbolTable()), + mPreVisit(preVisit), + mPostVisit(postVisit) +{ + ASSERT(preVisit || postVisit); +} + +TIntermRebuild::~TIntermRebuild() +{ + ASSERT(!mNodeStack.value); + ASSERT(!mNodeStack.tail); +} + +const TFunction *TIntermRebuild::getParentFunction() const +{ + return mParentFunc; +} + +TIntermNode *TIntermRebuild::getParentNode(size_t offset) const +{ + ASSERT(mNodeStack.tail); + auto parent = *mNodeStack.tail; + while (offset > 0) + { + --offset; + ASSERT(parent.tail); + parent = *parent.tail; + } + return parent.value; +} + +bool TIntermRebuild::rebuildRoot(TIntermBlock &root) +{ + if (!rebuildInPlace(root)) + { + return false; + } + return mCompiler.validateAST(&root); +} + +bool TIntermRebuild::rebuildInPlace(TIntermAggregate &node) +{ + return rebuildInPlaceImpl(node); +} + +bool TIntermRebuild::rebuildInPlace(TIntermBlock &node) +{ + return rebuildInPlaceImpl(node); +} + +bool TIntermRebuild::rebuildInPlace(TIntermDeclaration &node) +{ + return rebuildInPlaceImpl(node); +} + +template +bool TIntermRebuild::rebuildInPlaceImpl(Node &node) +{ + auto *newNode = traverseAnyAs(node); + if (!newNode) + { + return false; + } + + if (newNode != &node) + { + *node.getSequence() = std::move(*newNode->getSequence()); + } + + return true; +} + +PostResult TIntermRebuild::rebuild(TIntermNode &node) +{ + return traverseAny(node); +} + +//////////////////////////////////////////////////////////////////////////////// + +template +Node *TIntermRebuild::traverseAnyAs(TIntermNode &node) +{ + PostResult result(traverseAny(node)); + if (result.mAction == Action::Fail || !result.mSingle) + { + return nullptr; + } + return asNode(result.mSingle); +} + +template +bool TIntermRebuild::traverseAnyAs(TIntermNode &node, Node *&out) +{ + PostResult result(traverseAny(node)); + if (result.mAction == Action::Fail || result.mAction == Action::ReplaceMulti) + { + return false; + } + if (!result.mSingle) + { + return true; + } + out = asNode(result.mSingle); + return out != nullptr; +} + +bool TIntermRebuild::traverseAggregateBaseChildren(TIntermAggregateBase &node) +{ + auto *const children = node.getSequence(); + ASSERT(children); + TIntermSequence newChildren; + + for (TIntermNode *child : *children) + { + ASSERT(child); + PostResult result(traverseAny(*child)); + + switch (result.mAction) + { + case Action::ReplaceSingle: + newChildren.push_back(result.mSingle); + break; + + case Action::ReplaceMulti: + for (TIntermNode *newNode : result.mMulti) + { + if (newNode) + { + newChildren.push_back(newNode); + } + } + break; + + case Action::Drop: + break; + + case Action::Fail: + return false; + + default: + ASSERT(false); + return false; + } + } + + *children = std::move(newChildren); + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// + +struct TIntermRebuild::NodeStackGuard +{ + ConsList oldNodeStack; + ConsList &nodeStack; + NodeStackGuard(ConsList &nodeStack) + : oldNodeStack(nodeStack), nodeStack(nodeStack) + {} + ~NodeStackGuard() { nodeStack = oldNodeStack; } +}; + +PostResult TIntermRebuild::traverseAny(TIntermNode &originalNode) +{ + PreResult preResult = traversePre(originalNode); + if (!preResult.mSingle) + { + ASSERT(preResult.mVisit == VisitBits::Neither); + return std::move(preResult); + } + + TIntermNode *currNode = preResult.mSingle; + const VisitBits visit = preResult.mVisit; + const NodeType currNodeType = getNodeType(*currNode); + + currNode = traverseChildren(currNodeType, originalNode, *currNode, visit); + if (!currNode) + { + return Fail(); + } + + return traversePost(currNodeType, originalNode, *currNode, visit); +} + +PreResult TIntermRebuild::traversePre(TIntermNode &originalNode) +{ + if (!mPreVisit) + { + return {originalNode, VisitBits::Both}; + } + + NodeStackGuard guard(mNodeStack); + mNodeStack = {&originalNode, &guard.oldNodeStack}; + + const NodeType originalNodeType = getNodeType(originalNode); + + switch (originalNodeType) + { + case NodeType::Unknown: + ASSERT(false); + return Fail(); + case NodeType::Symbol: + return visitSymbolPre(*originalNode.getAsSymbolNode()); + case NodeType::ConstantUnion: + return visitConstantUnionPre(*originalNode.getAsConstantUnion()); + case NodeType::FunctionPrototype: + return visitFunctionPrototypePre(*originalNode.getAsFunctionPrototypeNode()); + case NodeType::PreprocessorDirective: + return visitPreprocessorDirectivePre(*originalNode.getAsPreprocessorDirective()); + case NodeType::Unary: + return visitUnaryPre(*originalNode.getAsUnaryNode()); + case NodeType::Binary: + return visitBinaryPre(*originalNode.getAsBinaryNode()); + case NodeType::Ternary: + return visitTernaryPre(*originalNode.getAsTernaryNode()); + case NodeType::Swizzle: + return visitSwizzlePre(*originalNode.getAsSwizzleNode()); + case NodeType::IfElse: + return visitIfElsePre(*originalNode.getAsIfElseNode()); + case NodeType::Switch: + return visitSwitchPre(*originalNode.getAsSwitchNode()); + case NodeType::Case: + return visitCasePre(*originalNode.getAsCaseNode()); + case NodeType::FunctionDefinition: + return visitFunctionDefinitionPre(*originalNode.getAsFunctionDefinition()); + case NodeType::Aggregate: + return visitAggregatePre(*originalNode.getAsAggregate()); + case NodeType::Block: + return visitBlockPre(*originalNode.getAsBlock()); + case NodeType::GlobalQualifierDeclaration: + return visitGlobalQualifierDeclarationPre( + *originalNode.getAsGlobalQualifierDeclarationNode()); + case NodeType::Declaration: + return visitDeclarationPre(*originalNode.getAsDeclarationNode()); + case NodeType::Loop: + return visitLoopPre(*originalNode.getAsLoopNode()); + case NodeType::Branch: + return visitBranchPre(*originalNode.getAsBranchNode()); + default: + ASSERT(false); + return Fail(); + } +} + +TIntermNode *TIntermRebuild::traverseChildren(NodeType currNodeType, + const TIntermNode &originalNode, + TIntermNode &currNode, + VisitBits visit) +{ + if (!AnyBits(visit, VisitBits::Children)) + { + return &currNode; + } + + if (AnyBits(visit, VisitBits::ChildrenRequiresSame) && &originalNode != &currNode) + { + return &currNode; + } + + NodeStackGuard guard(mNodeStack); + mNodeStack = {&currNode, &guard.oldNodeStack}; + + switch (currNodeType) + { + case NodeType::Unknown: + ASSERT(false); + return nullptr; + case NodeType::Symbol: + return &currNode; + case NodeType::ConstantUnion: + return &currNode; + case NodeType::FunctionPrototype: + return &currNode; + case NodeType::PreprocessorDirective: + return &currNode; + case NodeType::Unary: + return traverseUnaryChildren(*currNode.getAsUnaryNode()); + case NodeType::Binary: + return traverseBinaryChildren(*currNode.getAsBinaryNode()); + case NodeType::Ternary: + return traverseTernaryChildren(*currNode.getAsTernaryNode()); + case NodeType::Swizzle: + return traverseSwizzleChildren(*currNode.getAsSwizzleNode()); + case NodeType::IfElse: + return traverseIfElseChildren(*currNode.getAsIfElseNode()); + case NodeType::Switch: + return traverseSwitchChildren(*currNode.getAsSwitchNode()); + case NodeType::Case: + return traverseCaseChildren(*currNode.getAsCaseNode()); + case NodeType::FunctionDefinition: + return traverseFunctionDefinitionChildren(*currNode.getAsFunctionDefinition()); + case NodeType::Aggregate: + return traverseAggregateChildren(*currNode.getAsAggregate()); + case NodeType::Block: + return traverseBlockChildren(*currNode.getAsBlock()); + case NodeType::GlobalQualifierDeclaration: + return traverseGlobalQualifierDeclarationChildren( + *currNode.getAsGlobalQualifierDeclarationNode()); + case NodeType::Declaration: + return traverseDeclarationChildren(*currNode.getAsDeclarationNode()); + case NodeType::Loop: + return traverseLoopChildren(*currNode.getAsLoopNode()); + case NodeType::Branch: + return traverseBranchChildren(*currNode.getAsBranchNode()); + default: + ASSERT(false); + return nullptr; + } +} + +PostResult TIntermRebuild::traversePost(NodeType currNodeType, + const TIntermNode &originalNode, + TIntermNode &currNode, + VisitBits visit) +{ + if (!mPostVisit) + { + return currNode; + } + + if (!AnyBits(visit, VisitBits::Post)) + { + return currNode; + } + + if (AnyBits(visit, VisitBits::PostRequiresSame) && &originalNode != &currNode) + { + return currNode; + } + + NodeStackGuard guard(mNodeStack); + mNodeStack = {&currNode, &guard.oldNodeStack}; + + switch (currNodeType) + { + case NodeType::Unknown: + ASSERT(false); + return Fail(); + case NodeType::Symbol: + return visitSymbolPost(*currNode.getAsSymbolNode()); + case NodeType::ConstantUnion: + return visitConstantUnionPost(*currNode.getAsConstantUnion()); + case NodeType::FunctionPrototype: + return visitFunctionPrototypePost(*currNode.getAsFunctionPrototypeNode()); + case NodeType::PreprocessorDirective: + return visitPreprocessorDirectivePost(*currNode.getAsPreprocessorDirective()); + case NodeType::Unary: + return visitUnaryPost(*currNode.getAsUnaryNode()); + case NodeType::Binary: + return visitBinaryPost(*currNode.getAsBinaryNode()); + case NodeType::Ternary: + return visitTernaryPost(*currNode.getAsTernaryNode()); + case NodeType::Swizzle: + return visitSwizzlePost(*currNode.getAsSwizzleNode()); + case NodeType::IfElse: + return visitIfElsePost(*currNode.getAsIfElseNode()); + case NodeType::Switch: + return visitSwitchPost(*currNode.getAsSwitchNode()); + case NodeType::Case: + return visitCasePost(*currNode.getAsCaseNode()); + case NodeType::FunctionDefinition: + return visitFunctionDefinitionPost(*currNode.getAsFunctionDefinition()); + case NodeType::Aggregate: + return visitAggregatePost(*currNode.getAsAggregate()); + case NodeType::Block: + return visitBlockPost(*currNode.getAsBlock()); + case NodeType::GlobalQualifierDeclaration: + return visitGlobalQualifierDeclarationPost( + *currNode.getAsGlobalQualifierDeclarationNode()); + case NodeType::Declaration: + return visitDeclarationPost(*currNode.getAsDeclarationNode()); + case NodeType::Loop: + return visitLoopPost(*currNode.getAsLoopNode()); + case NodeType::Branch: + return visitBranchPost(*currNode.getAsBranchNode()); + default: + ASSERT(false); + return Fail(); + } +} + +//////////////////////////////////////////////////////////////////////////////// + +TIntermNode *TIntermRebuild::traverseAggregateChildren(TIntermAggregate &node) +{ + if (traverseAggregateBaseChildren(node)) + { + return &node; + } + return nullptr; +} + +TIntermNode *TIntermRebuild::traverseBlockChildren(TIntermBlock &node) +{ + if (traverseAggregateBaseChildren(node)) + { + return &node; + } + return nullptr; +} + +TIntermNode *TIntermRebuild::traverseDeclarationChildren(TIntermDeclaration &node) +{ + if (traverseAggregateBaseChildren(node)) + { + return &node; + } + return nullptr; +} + +TIntermNode *TIntermRebuild::traverseSwizzleChildren(TIntermSwizzle &node) +{ + auto *const operand = node.getOperand(); + ASSERT(operand); + + auto *newOperand = traverseAnyAs(*operand); + GUARD(newOperand); + + if (newOperand != operand) + { + return new TIntermSwizzle(newOperand, node.getSwizzleOffsets()); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseBinaryChildren(TIntermBinary &node) +{ + auto *const left = node.getLeft(); + ASSERT(left); + auto *const right = node.getRight(); + ASSERT(right); + + auto *const newLeft = traverseAnyAs(*left); + GUARD(newLeft); + auto *const newRight = traverseAnyAs(*right); + GUARD(newRight); + + if (newLeft != left || newRight != right) + { + TOperator op = node.getOp(); + switch (op) + { + case TOperator::EOpIndexDirectStruct: + { + if (newLeft->getType().getInterfaceBlock()) + { + op = TOperator::EOpIndexDirectInterfaceBlock; + } + } + break; + + case TOperator::EOpIndexDirectInterfaceBlock: + { + if (newLeft->getType().getStruct()) + { + op = TOperator::EOpIndexDirectStruct; + } + } + break; + + case TOperator::EOpComma: + return TIntermBinary::CreateComma(newLeft, newRight, mCompiler.getShaderVersion()); + + default: + break; + } + + return new TIntermBinary(op, newLeft, newRight); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseUnaryChildren(TIntermUnary &node) +{ + auto *const operand = node.getOperand(); + ASSERT(operand); + + auto *const newOperand = traverseAnyAs(*operand); + GUARD(newOperand); + + if (newOperand != operand) + { + return new TIntermUnary(node.getOp(), newOperand, node.getFunction()); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseTernaryChildren(TIntermTernary &node) +{ + auto *const cond = node.getCondition(); + ASSERT(cond); + auto *const true_ = node.getTrueExpression(); + ASSERT(true_); + auto *const false_ = node.getFalseExpression(); + ASSERT(false_); + + auto *const newCond = traverseAnyAs(*cond); + GUARD(newCond); + auto *const newTrue = traverseAnyAs(*true_); + GUARD(newTrue); + auto *const newFalse = traverseAnyAs(*false_); + GUARD(newFalse); + + if (newCond != cond || newTrue != true_ || newFalse != false_) + { + return new TIntermTernary(newCond, newTrue, newFalse); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseIfElseChildren(TIntermIfElse &node) +{ + auto *const cond = node.getCondition(); + ASSERT(cond); + auto *const true_ = node.getTrueBlock(); + auto *const false_ = node.getFalseBlock(); + + auto *const newCond = traverseAnyAs(*cond); + GUARD(newCond); + TIntermBlock *newTrue = nullptr; + if (true_) + { + GUARD(traverseAnyAs(*true_, newTrue)); + } + TIntermBlock *newFalse = nullptr; + if (false_) + { + GUARD(traverseAnyAs(*false_, newFalse)); + } + + if (newCond != cond || newTrue != true_ || newFalse != false_) + { + return new TIntermIfElse(newCond, newTrue, newFalse); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseSwitchChildren(TIntermSwitch &node) +{ + auto *const init = node.getInit(); + ASSERT(init); + auto *const stmts = node.getStatementList(); + ASSERT(stmts); + + auto *const newInit = traverseAnyAs(*init); + GUARD(newInit); + auto *const newStmts = traverseAnyAs(*stmts); + GUARD(newStmts); + + if (newInit != init || newStmts != stmts) + { + return new TIntermSwitch(newInit, newStmts); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseCaseChildren(TIntermCase &node) +{ + auto *const cond = node.getCondition(); + + TIntermTyped *newCond = nullptr; + if (cond) + { + GUARD(traverseAnyAs(*cond, newCond)); + } + + if (newCond != cond) + { + return new TIntermCase(newCond); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseFunctionDefinitionChildren(TIntermFunctionDefinition &node) +{ + GUARD(!mParentFunc); // Function definitions cannot be nested. + mParentFunc = node.getFunction(); + struct OnExit + { + const TFunction *&parentFunc; + OnExit(const TFunction *&parentFunc) : parentFunc(parentFunc) {} + ~OnExit() { parentFunc = nullptr; } + } onExit(mParentFunc); + + auto *const proto = node.getFunctionPrototype(); + ASSERT(proto); + auto *const body = node.getBody(); + ASSERT(body); + + auto *const newProto = traverseAnyAs(*proto); + GUARD(newProto); + auto *const newBody = traverseAnyAs(*body); + GUARD(newBody); + + if (newProto != proto || newBody != body) + { + return new TIntermFunctionDefinition(newProto, newBody); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseGlobalQualifierDeclarationChildren( + TIntermGlobalQualifierDeclaration &node) +{ + auto *const symbol = node.getSymbol(); + ASSERT(symbol); + + auto *const newSymbol = traverseAnyAs(*symbol); + GUARD(newSymbol); + + if (newSymbol != symbol) + { + return new TIntermGlobalQualifierDeclaration(newSymbol, node.isPrecise(), node.getLine()); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseLoopChildren(TIntermLoop &node) +{ + const TLoopType loopType = node.getType(); + + auto *const init = node.getInit(); + auto *const cond = node.getCondition(); + auto *const expr = node.getExpression(); + auto *const body = node.getBody(); + ASSERT(body); + +#if defined(ANGLE_ENABLE_ASSERTS) + switch (loopType) + { + case TLoopType::ELoopFor: + break; + case TLoopType::ELoopWhile: + case TLoopType::ELoopDoWhile: + ASSERT(cond); + ASSERT(!init && !expr); + break; + default: + ASSERT(false); + break; + } +#endif + + auto *const newBody = traverseAnyAs(*body); + GUARD(newBody); + TIntermNode *newInit = nullptr; + if (init) + { + GUARD(traverseAnyAs(*init, newInit)); + } + TIntermTyped *newCond = nullptr; + if (cond) + { + GUARD(traverseAnyAs(*cond, newCond)); + } + TIntermTyped *newExpr = nullptr; + if (expr) + { + GUARD(traverseAnyAs(*expr, newExpr)); + } + + if (newInit != init || newCond != cond || newExpr != expr || newBody != body) + { + switch (loopType) + { + case TLoopType::ELoopFor: + GUARD(newBody); + break; + case TLoopType::ELoopWhile: + case TLoopType::ELoopDoWhile: + GUARD(newCond && newBody); + GUARD(!newInit && !newExpr); + break; + default: + ASSERT(false); + break; + } + return new TIntermLoop(loopType, newInit, newCond, newExpr, newBody); + } + + return &node; +} + +TIntermNode *TIntermRebuild::traverseBranchChildren(TIntermBranch &node) +{ + auto *const expr = node.getExpression(); + + TIntermTyped *newExpr = nullptr; + if (expr) + { + GUARD(traverseAnyAs(*expr, newExpr)); + } + + if (newExpr != expr) + { + return new TIntermBranch(node.getFlowOp(), newExpr); + } + + return &node; +} + +//////////////////////////////////////////////////////////////////////////////// + +PreResult TIntermRebuild::visitSymbolPre(TIntermSymbol &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitConstantUnionPre(TIntermConstantUnion &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitFunctionPrototypePre(TIntermFunctionPrototype &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitPreprocessorDirectivePre(TIntermPreprocessorDirective &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitUnaryPre(TIntermUnary &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitBinaryPre(TIntermBinary &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitTernaryPre(TIntermTernary &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitSwizzlePre(TIntermSwizzle &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitIfElsePre(TIntermIfElse &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitSwitchPre(TIntermSwitch &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitCasePre(TIntermCase &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitLoopPre(TIntermLoop &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitBranchPre(TIntermBranch &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitDeclarationPre(TIntermDeclaration &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitBlockPre(TIntermBlock &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitAggregatePre(TIntermAggregate &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitFunctionDefinitionPre(TIntermFunctionDefinition &node) +{ + return {node, VisitBits::Both}; +} + +PreResult TIntermRebuild::visitGlobalQualifierDeclarationPre( + TIntermGlobalQualifierDeclaration &node) +{ + return {node, VisitBits::Both}; +} + +//////////////////////////////////////////////////////////////////////////////// + +PostResult TIntermRebuild::visitSymbolPost(TIntermSymbol &node) +{ + return node; +} + +PostResult TIntermRebuild::visitConstantUnionPost(TIntermConstantUnion &node) +{ + return node; +} + +PostResult TIntermRebuild::visitFunctionPrototypePost(TIntermFunctionPrototype &node) +{ + return node; +} + +PostResult TIntermRebuild::visitPreprocessorDirectivePost(TIntermPreprocessorDirective &node) +{ + return node; +} + +PostResult TIntermRebuild::visitUnaryPost(TIntermUnary &node) +{ + return node; +} + +PostResult TIntermRebuild::visitBinaryPost(TIntermBinary &node) +{ + return node; +} + +PostResult TIntermRebuild::visitTernaryPost(TIntermTernary &node) +{ + return node; +} + +PostResult TIntermRebuild::visitSwizzlePost(TIntermSwizzle &node) +{ + return node; +} + +PostResult TIntermRebuild::visitIfElsePost(TIntermIfElse &node) +{ + return node; +} + +PostResult TIntermRebuild::visitSwitchPost(TIntermSwitch &node) +{ + return node; +} + +PostResult TIntermRebuild::visitCasePost(TIntermCase &node) +{ + return node; +} + +PostResult TIntermRebuild::visitLoopPost(TIntermLoop &node) +{ + return node; +} + +PostResult TIntermRebuild::visitBranchPost(TIntermBranch &node) +{ + return node; +} + +PostResult TIntermRebuild::visitDeclarationPost(TIntermDeclaration &node) +{ + return node; +} + +PostResult TIntermRebuild::visitBlockPost(TIntermBlock &node) +{ + return node; +} + +PostResult TIntermRebuild::visitAggregatePost(TIntermAggregate &node) +{ + return node; +} + +PostResult TIntermRebuild::visitFunctionDefinitionPost(TIntermFunctionDefinition &node) +{ + return node; +} + +PostResult TIntermRebuild::visitGlobalQualifierDeclarationPost( + TIntermGlobalQualifierDeclaration &node) +{ + return node; +} + +} // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h @@ -109,10 +109,11 @@ // Should only be called from traverse*() functions void decrementDepth() { mPath.pop_back(); } int getCurrentTraversalDepth() const { return static_cast(mPath.size()) - 1; } + int getCurrentBlockDepth() const { return static_cast(mParentBlockStack.size()) - 1; } // RAII helper for incrementDepth/decrementDepth class ScopedNodeInTraversalPath { public: @@ -147,10 +148,26 @@ return mPath[mPath.size() - n - 2u]; } return nullptr; } + // Returns what child index is currently being visited. For example when visiting the children + // of an aggregate, it can be used to find out which argument of the parent (aggregate) node + // they correspond to. Only valid in the PreVisit call of the child. + size_t getParentChildIndex(Visit visit) const + { + ASSERT(visit == PreVisit); + return mCurrentChildIndex; + } + // Returns what child index has just been processed. Only valid in the InVisit and PostVisit + // calls of the parent node. + size_t getLastTraversedChildIndex(Visit visit) const + { + ASSERT(visit != PreVisit); + return mCurrentChildIndex; + } + const TIntermBlock *getParentBlock() const; TIntermNode *getRootNode() const { ASSERT(!mPath.empty()); @@ -211,10 +228,34 @@ // Explicitly specify a node to replace with replacement. void queueReplacementWithParent(TIntermNode *parent, TIntermNode *original, TIntermNode *replacement, OriginalNode originalStatus); + // Walk the ancestors and replace the access chain that leads to this symbol. This fixes up the + // types of the intermediate nodes, so it should be used when the type of the symbol changes. + // The AST transformation must still visit the (indirect) index nodes to transform the + // expression inside those nodes. Note that due to the way these replacements work, the AST + // transformation should not attempt to replace the actual index node itself, but only a subnode + // of that. + // + // Node 1 Node 6 + // EOpIndexDirect EOpIndexDirect + // / \ / \ + // Node 2 Node 3 Node 7 Node 3 + // EOpIndexIndirect N --> replaced with --> EOpIndexIndirect N + // / \ / \ + // Node 4 Node 5 Node 8 Node 5 + // symbol expression replacement expression + // ^ ^ + // | | + // This symbol is being replaced, This node is directly placed in the + // and the replacement is given new access chain, and its parent is + // to this function. is changed. This is why a + // replacment attempt for this node + // itself will not work. + // + void queueAccessChainReplacement(TIntermTyped *replacement); const bool preVisit; const bool inVisit; const bool postVisit; @@ -285,10 +326,12 @@ std::vector mInsertions; std::vector mReplacements; // All the nodes from root to the current node during traversing. TVector mPath; + // The current child of parent being traversed. + size_t mCurrentChildIndex; // All the code blocks from the root to the current node's parent during traversal. std::vector mParentBlockStack; }; diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp @@ -8,10 +8,11 @@ #include "compiler/translator/Compiler.h" #include "compiler/translator/InfoSink.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/IntermNode_util.h" +#include "compiler/translator/util.h" namespace sh { // Traverse the intermediate representation tree, and call a node type specific visit function for @@ -36,11 +37,14 @@ size_t childIndex = 0; size_t childCount = node->getChildCount(); while (childIndex < childCount && visit) { + mCurrentChildIndex = childIndex; node->getChildNode(childIndex)->traverse(this); + mCurrentChildIndex = childIndex; + if (inVisit && childIndex != childCount - 1) { visit = node->visit(InVisit, this); } ++childIndex; @@ -215,11 +219,12 @@ inVisit(inVisit), postVisit(postVisit), mMaxDepth(0), mMaxAllowedDepth(std::numeric_limits::max()), mInGlobalScope(true), - mSymbolTable(symbolTable) + mSymbolTable(symbolTable), + mCurrentChildIndex(0) { // Only enabling inVisit is not supported. ASSERT(!(inVisit && !preVisit && !postVisit)); } @@ -423,18 +428,23 @@ if (preVisit) visit = node->visit(PreVisit, this); if (visit) { + mCurrentChildIndex = 0; node->getFunctionPrototype()->traverse(this); + mCurrentChildIndex = 0; + if (inVisit) visit = node->visit(InVisit, this); if (visit) { - mInGlobalScope = false; + mInGlobalScope = false; + mCurrentChildIndex = 1; node->getBody()->traverse(this); - mInGlobalScope = true; + mCurrentChildIndex = 1; + mInGlobalScope = true; if (postVisit) visit = node->visit(PostVisit, this); } } } @@ -456,15 +466,19 @@ if (preVisit) visit = node->visit(PreVisit, this); if (visit) { - for (auto *child : *sequence) + for (size_t childIndex = 0; childIndex < sequence->size(); ++childIndex) { + TIntermNode *child = (*sequence)[childIndex]; if (visit) { + mCurrentChildIndex = childIndex; child->traverse(this); + mCurrentChildIndex = childIndex; + if (inVisit) { if (child != sequence->back()) visit = node->visit(InVisit, this); } @@ -526,10 +540,26 @@ ASSERT(replacement.parent); bool replaced = replacement.parent->replaceChildNode(replacement.original, replacement.replacement); ASSERT(replaced); + // Make sure the precision is not accidentally dropped. It's ok if the precision is not the + // same, as the transformations are allowed to replace an expression with one that is + // temporarily evaluated at a different (likely higher) precision. + TIntermTyped *originalAsTyped = replacement.original->getAsTyped(); + TIntermTyped *replacementAsTyped = + replacement.replacement ? replacement.replacement->getAsTyped() : nullptr; + if (originalAsTyped != nullptr && replacementAsTyped != nullptr) + { + const TType &originalType = originalAsTyped->getType(); + const TType &replacementType = replacementAsTyped->getType(); + ASSERT(!IsPrecisionApplicableToType(originalType.getBasicType()) || + !IsPrecisionApplicableToType(replacementType.getBasicType()) || + originalType.getPrecision() == EbpUndefined || + replacementType.getPrecision() != EbpUndefined); + } + if (!replacement.originalBecomesChildOfReplacement) { // In AST traversing, a parent is visited before its children. // After we replace a node, if its immediate child is to // be replaced, we need to make sure we don't update the replaced @@ -575,10 +605,43 @@ { bool originalBecomesChild = (originalStatus == OriginalNode::BECOMES_CHILD); mReplacements.push_back(NodeUpdateEntry(parent, original, replacement, originalBecomesChild)); } +void TIntermTraverser::queueAccessChainReplacement(TIntermTyped *replacement) +{ + uint32_t ancestorIndex = 0; + TIntermTyped *toReplace = nullptr; + while (true) + { + TIntermNode *ancestor = getAncestorNode(ancestorIndex); + ASSERT(ancestor != nullptr); + + TIntermBinary *asBinary = ancestor->getAsBinaryNode(); + if (asBinary == nullptr || + (asBinary->getOp() != EOpIndexDirect && asBinary->getOp() != EOpIndexIndirect)) + { + break; + } + + replacement = new TIntermBinary(asBinary->getOp(), replacement, asBinary->getRight()); + toReplace = asBinary; + + ++ancestorIndex; + } + + if (toReplace == nullptr) + { + queueReplacement(replacement, OriginalNode::IS_DROPPED); + } + else + { + queueReplacementWithParent(getAncestorNode(ancestorIndex), toReplace, replacement, + OriginalNode::IS_DROPPED); + } +} + TLValueTrackingTraverser::TLValueTrackingTraverser(bool preVisitIn, bool inVisitIn, bool postVisitIn, TSymbolTable *symbolTable) : TIntermTraverser(preVisitIn, inVisitIn, postVisitIn, symbolTable), @@ -613,11 +676,12 @@ // Both built-ins and user defined functions should have the function symbol // set. ASSERT(paramIndex < node->getFunction()->getParamCount()); TQualifier qualifier = node->getFunction()->getParam(paramIndex)->getType().getQualifier(); - setInFunctionCallOutParameter(qualifier == EvqOut || qualifier == EvqInOut); + setInFunctionCallOutParameter(qualifier == EvqParamOut || + qualifier == EvqParamInOut); ++paramIndex; } else { ASSERT(node->isConstructor()); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h @@ -0,0 +1,155 @@ +// +// 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. +// + +#ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_ +#define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_ + +#include "compiler/translator/tree_util/IntermTraverse.h" + +namespace sh +{ + +enum class NodeType +{ + Unknown, + Symbol, + ConstantUnion, + FunctionPrototype, + PreprocessorDirective, + Unary, + Binary, + Ternary, + Swizzle, + IfElse, + Switch, + Case, + FunctionDefinition, + Aggregate, + Block, + GlobalQualifierDeclaration, + Declaration, + Loop, + Branch, +}; + +// This is a function like object instead of a function that stack allocates this because +// TIntermTraverser is a heavy object to construct. +class GetNodeType : private TIntermTraverser +{ + NodeType nodeType; + + public: + GetNodeType() : TIntermTraverser(true, false, false) {} + + NodeType operator()(TIntermNode &node) + { + node.visit(Visit::PreVisit, this); + return nodeType; + } + + private: + void visitSymbol(TIntermSymbol *) override { nodeType = NodeType::Symbol; } + + void visitConstantUnion(TIntermConstantUnion *) override { nodeType = NodeType::ConstantUnion; } + + void visitFunctionPrototype(TIntermFunctionPrototype *) override + { + nodeType = NodeType::FunctionPrototype; + } + + void visitPreprocessorDirective(TIntermPreprocessorDirective *) override + { + nodeType = NodeType::PreprocessorDirective; + } + + bool visitSwizzle(Visit, TIntermSwizzle *) override + { + nodeType = NodeType::Swizzle; + return false; + } + + bool visitBinary(Visit, TIntermBinary *) override + { + nodeType = NodeType::Binary; + return false; + } + + bool visitUnary(Visit, TIntermUnary *) override + { + nodeType = NodeType::Unary; + return false; + } + + bool visitTernary(Visit, TIntermTernary *) override + { + nodeType = NodeType::Ternary; + return false; + } + + bool visitIfElse(Visit, TIntermIfElse *) override + { + nodeType = NodeType::IfElse; + return false; + } + + bool visitSwitch(Visit, TIntermSwitch *) override + { + nodeType = NodeType::Switch; + return false; + } + + bool visitCase(Visit, TIntermCase *) override + { + nodeType = NodeType::Case; + return false; + } + + bool visitFunctionDefinition(Visit, TIntermFunctionDefinition *) override + { + nodeType = NodeType::FunctionDefinition; + return false; + } + + bool visitAggregate(Visit, TIntermAggregate *) override + { + nodeType = NodeType::Aggregate; + return false; + } + + bool visitBlock(Visit, TIntermBlock *) override + { + nodeType = NodeType::Block; + return false; + } + + bool visitGlobalQualifierDeclaration(Visit, TIntermGlobalQualifierDeclaration *) override + { + nodeType = NodeType::GlobalQualifierDeclaration; + return false; + } + + bool visitDeclaration(Visit, TIntermDeclaration *) override + { + nodeType = NodeType::Declaration; + return false; + } + + bool visitLoop(Visit, TIntermLoop *) override + { + nodeType = NodeType::Loop; + return false; + } + + bool visitBranch(Visit, TIntermBranch *) override + { + nodeType = NodeType::Branch; + return false; + } +}; + +} // namespace sh + +#endif // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp @@ -84,11 +84,10 @@ // Create global variable to temporarily acts as the given variable in places such as // arithmetic, assignments an so on. TType *tmpReplacementType = new TType(type); tmpReplacementType->setQualifier(EvqGlobal); - tmpReplacementType->realize(); TVariable *tempReplaceVar = new TVariable( symbolTable, ImmutableString(std::string("ANGLE_AOM_Temp_") + varying->name().data()), tmpReplacementType, SymbolType::AngleInternal); @@ -96,18 +95,14 @@ { return false; } // Create array of vectors type - TType *varyingReplaceType = - new TType(type.getBasicType(), type.getPrecision(), type.getQualifier(), - static_cast(type.getRows()), 1); - varyingReplaceType->setInvariant(type.isInvariant()); - varyingReplaceType->setMemoryQualifier(type.getMemoryQualifier()); - varyingReplaceType->setLayoutQualifier(type.getLayoutQualifier()); + TType *varyingReplaceType = new TType(type); + varyingReplaceType->toMatrixColumnType(); + varyingReplaceType->toArrayElementType(); varyingReplaceType->makeArray(type.getCols() * type.getOutermostArraySize()); - varyingReplaceType->realize(); TVariable *varyingReplaceVar = new TVariable(symbolTable, varying->name(), varyingReplaceType, SymbolType::UserDefined); TIntermSymbol *varyingReplaceDeclarator = new TIntermSymbol(varyingReplaceVar); diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp @@ -10,14 +10,16 @@ #include "compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h" #include "common/bitset_utils.h" #include "common/debug.h" #include "common/utilities.h" +#include "compiler/translator/Compiler.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/BuiltIn.h" #include "compiler/translator/tree_util/IntermNode_util.h" #include "compiler/translator/tree_util/IntermTraverse.h" +#include "compiler/translator/tree_util/ReplaceVariable.h" #include "compiler/translator/tree_util/RunAtTheBeginningOfShader.h" #include "compiler/translator/tree_util/RunAtTheEndOfShader.h" namespace sh { @@ -52,17 +54,17 @@ public: GLClipCullDistanceReferenceTraverser(const TIntermSymbol **redeclaredSymOut, bool *nonConstIdxUsedOut, unsigned int *maxConstIdxOut, ClipCullDistanceIdxSet *constIndicesOut, - const ImmutableString &targetStr) + TQualifier targetQualifier) : TIntermTraverser(true, false, false), mRedeclaredSym(redeclaredSymOut), mUseNonConstClipCullDistanceIndex(nonConstIdxUsedOut), mMaxConstClipCullDistanceIndex(maxConstIdxOut), mConstClipCullDistanceIndices(constIndicesOut), - mTargetStr(targetStr) + mTargetQualifier(targetQualifier) { *mRedeclaredSym = nullptr; *mUseNonConstClipCullDistanceIndex = false; *mMaxConstClipCullDistanceIndex = 0; mConstClipCullDistanceIndices->reset(); @@ -76,12 +78,12 @@ if (sequence.size() != 1) { return true; } - TIntermTyped *variable = sequence.front()->getAsTyped(); - if (!variable->getAsSymbolNode() || variable->getAsSymbolNode()->getName() != mTargetStr) + TIntermSymbol *variable = sequence.front()->getAsSymbolNode(); + if (variable == nullptr || variable->getType().getQualifier() != mTargetQualifier) { return true; } *mRedeclaredSym = variable->getAsSymbolNode(); @@ -109,11 +111,11 @@ TIntermSymbol *clipCullDistance = left->getAsSymbolNode(); if (!clipCullDistance) { return true; } - if (clipCullDistance->getName() != mTargetStr) + if (clipCullDistance->getType().getQualifier() != mTargetQualifier) { return true; } const TConstantUnion *constIdx = node->getRight()->getConstantValue(); @@ -158,12 +160,12 @@ bool *mUseNonConstClipCullDistanceIndex; // Max constant index that is used to reference gl_ClipDistance unsigned int *mMaxConstClipCullDistanceIndex; // List of constant index reference of gl_ClipDistance ClipCullDistanceIdxSet *mConstClipCullDistanceIndices; - // String for gl_ClipDistance/gl_CullDistance - const ImmutableString mTargetStr; + // Qualifier for gl_ClipDistance/gl_CullDistance + const TQualifier mTargetQualifier; }; // Replace all symbolic occurrences of given variables except one symbol. class ReplaceVariableExceptOneTraverser : public TIntermTraverser { @@ -204,11 +206,11 @@ new TIntermBinary(EOpIndexDirect, rightSymbol->deepCopy(), CreateIndexNode(index)); return new TIntermBinary(EOpAssign, left, right); } -// This is only used for gl_Clipdistance +// This is only used for gl_ClipDistance TIntermNode *assignFuncWithEnableFlags(const unsigned int index, TIntermSymbol *leftSymbol, TIntermSymbol *rightSymbol, const TIntermTyped *enableFlags) { @@ -227,11 +229,11 @@ TIntermBinary *assignment = new TIntermBinary(EOpAssign, left, right); TIntermBlock *trueBlock = new TIntermBlock(); trueBlock->appendStatement(assignment); TIntermBinary *zeroAssignment = - new TIntermBinary(EOpAssign, left->deepCopy(), CreateFloatNode(0)); + new TIntermBinary(EOpAssign, left->deepCopy(), CreateFloatNode(0, EbpMedium)); TIntermBlock *falseBlock = new TIntermBlock(); falseBlock->appendStatement(zeroAssignment); return new TIntermIfElse(nonZero, trueBlock, falseBlock); } @@ -255,17 +257,16 @@ mEnabledDistances = 0; } unsigned int getEnabledClipCullDistance(const bool useNonConstIndex, const unsigned int maxConstIndex); - const TVariable *declareANGLEVariable(); + const TVariable *declareANGLEVariable(const TVariable *originalVariable); bool assignOriginalValueToANGLEVariable(const GLenum shaderType); bool assignANGLEValueToOriginalVariable(const GLenum shaderType, const bool isRedeclared, const TIntermTyped *enableFlags, - const ClipCullDistanceIdxSet *constIndices, - AssignFunc assignFunc); + const ClipCullDistanceIdxSet *constIndices); private: bool assignOriginalValueToANGLEVariableImpl(); bool assignANGLEValueToOriginalVariableImpl(const bool isRedeclared, const TIntermTyped *enableFlags, @@ -302,15 +303,18 @@ } return mEnabledDistances; } -const TVariable *ReplaceClipCullDistanceAssignments::declareANGLEVariable() +const TVariable *ReplaceClipCullDistanceAssignments::declareANGLEVariable( + const TVariable *originalVariable) { ASSERT(mEnabledDistances > 0); - TType *clipCullDistanceType = new TType(EbtFloat, EbpMedium, EvqGlobal, 1); + TType *clipCullDistanceType = new TType(originalVariable->getType()); + clipCullDistanceType->setQualifier(EvqGlobal); + clipCullDistanceType->toArrayBaseType(); clipCullDistanceType->makeArray(mEnabledDistances); mANGLEVar = new TVariable(mSymbolTable, mANGLEVarName, clipCullDistanceType, SymbolType::AngleInternal); @@ -334,11 +338,11 @@ TIntermSymbol *clipCullDistanceSymbol = new TIntermSymbol(mANGLEVar); for (unsigned int i = 0; i < mEnabledDistances; i++) { readBlock->appendStatement( - simpleAssignFunc(i, glClipCullDistanceSymbol, clipCullDistanceSymbol, nullptr)); + simpleAssignFunc(i, clipCullDistanceSymbol, glClipCullDistanceSymbol, nullptr)); } return RunAtTheBeginningOfShader(mCompiler, mRoot, readBlock); } @@ -382,11 +386,11 @@ { // gl_Clip/CullDistance[i] = 0; TIntermBinary *left = new TIntermBinary( EOpIndexDirect, glClipCullDistanceSymbol->deepCopy(), CreateIndexNode(i)); TIntermBinary *zeroAssignment = - new TIntermBinary(EOpAssign, left, CreateFloatNode(0)); + new TIntermBinary(EOpAssign, left, CreateFloatNode(0, EbpMedium)); assignBlock->appendStatement(zeroAssignment); } } } @@ -422,12 +426,11 @@ ANGLE_NO_DISCARD bool ReplaceClipCullDistanceAssignments::assignANGLEValueToOriginalVariable( const GLenum shaderType, const bool isRedeclared, const TIntermTyped *enableFlags, - const ClipCullDistanceIdxSet *constIndices, - AssignFunc assignFunc) + const ClipCullDistanceIdxSet *constIndices) { switch (shaderType) { case GL_VERTEX_SHADER: { @@ -438,12 +441,13 @@ // OpenGL ES API, or results are undefined. Values written into gl_ClipDistance for // planes that are not enabled have no effect. // ... // Shaders writing gl_CullDistance must write all enabled distances, or culling results // are undefined. - if (!assignANGLEValueToOriginalVariableImpl(isRedeclared, enableFlags, constIndices, - assignFuncWithEnableFlags)) + if (!assignANGLEValueToOriginalVariableImpl( + isRedeclared, enableFlags, constIndices, + enableFlags ? assignFuncWithEnableFlags : simpleAssignFunc)) { return false; } break; } @@ -458,55 +462,58 @@ } return true; } -} // anonymous namespace - -ANGLE_NO_DISCARD bool ReplaceClipDistanceAssignments(TCompiler *compiler, - TIntermBlock *root, - TSymbolTable *symbolTable, - const GLenum shaderType, - const TIntermTyped *clipDistanceEnableFlags) +// Common code to transform gl_ClipDistance and gl_CullDistance. Comments reference +// gl_ClipDistance, but are also applicable to gl_CullDistance. +ANGLE_NO_DISCARD bool ReplaceClipCullDistanceAssignmentsImpl( + TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const GLenum shaderType, + const TIntermTyped *clipDistanceEnableFlags, + const char *builtInName, + const char *replacementName, + TQualifier builtInQualifier) { // Collect all constant index references of gl_ClipDistance - ImmutableString glClipDistanceName("gl_ClipDistance"); + ImmutableString name(builtInName); ClipCullDistanceIdxSet constIndices; - bool useNonConstIndex = false; - const TIntermSymbol *redeclaredGlClipDistance = nullptr; - unsigned int maxConstIndex = 0; - GLClipCullDistanceReferenceTraverser indexTraverser(&redeclaredGlClipDistance, - &useNonConstIndex, &maxConstIndex, - &constIndices, glClipDistanceName); + bool useNonConstIndex = false; + const TIntermSymbol *redeclaredBuiltIn = nullptr; + unsigned int maxConstIndex = 0; + GLClipCullDistanceReferenceTraverser indexTraverser( + &redeclaredBuiltIn, &useNonConstIndex, &maxConstIndex, &constIndices, builtInQualifier); root->traverse(&indexTraverser); if (!useNonConstIndex && constIndices.none()) { // No references of gl_ClipDistance return true; } // Retrieve gl_ClipDistance variable reference // Search user redeclared gl_ClipDistance first - const TVariable *glClipDistanceVar = nullptr; - if (redeclaredGlClipDistance) + const TVariable *builtInVar = nullptr; + if (redeclaredBuiltIn) { - glClipDistanceVar = &redeclaredGlClipDistance->variable(); + builtInVar = &redeclaredBuiltIn->variable(); } else { // User defined not found, find in built-in table - glClipDistanceVar = - static_cast(symbolTable->findBuiltIn(glClipDistanceName, 300)); + builtInVar = static_cast( + symbolTable->findBuiltIn(name, compiler->getShaderVersion())); } - if (!glClipDistanceVar) + if (!builtInVar) { return false; } - ReplaceClipCullDistanceAssignments replacementUtils(compiler, root, symbolTable, - glClipDistanceVar, redeclaredGlClipDistance, - ImmutableString("ANGLEClipDistance")); + ReplaceClipCullDistanceAssignments replacementUtils(compiler, root, symbolTable, builtInVar, + redeclaredBuiltIn, + ImmutableString(replacementName)); // Declare a global variable substituting gl_ClipDistance unsigned int enabledClipDistances = replacementUtils.getEnabledClipCullDistance(useNonConstIndex, maxConstIndex); if (!enabledClipDistances) @@ -516,16 +523,16 @@ // shader either redeclaring it with a size or implicitly sized by indexing it only with // integral constant expressions. return false; } - const TVariable *clipDistanceVar = replacementUtils.declareANGLEVariable(); + const TVariable *replacementVar = replacementUtils.declareANGLEVariable(builtInVar); // Replace gl_ClipDistance reference with ANGLEClipDistance, except the declaration - ReplaceVariableExceptOneTraverser replaceTraverser(glClipDistanceVar, - new TIntermSymbol(clipDistanceVar), - /** exception */ redeclaredGlClipDistance); + ReplaceVariableExceptOneTraverser replaceTraverser(builtInVar, + new TIntermSymbol(replacementVar), + /** exception */ redeclaredBuiltIn); root->traverse(&replaceTraverser); if (!replaceTraverser.updateTree(compiler, root)) { return false; } @@ -535,100 +542,50 @@ { return false; } // Reassign ANGLEClipDistance to gl_ClipDistance but ignore those that are disabled - const bool isRedeclared = (redeclaredGlClipDistance != nullptr); - if (!replacementUtils.assignANGLEValueToOriginalVariable(shaderType, isRedeclared, - clipDistanceEnableFlags, &constIndices, - assignFuncWithEnableFlags)) + const bool isRedeclared = redeclaredBuiltIn != nullptr; + if (!replacementUtils.assignANGLEValueToOriginalVariable( + shaderType, isRedeclared, clipDistanceEnableFlags, &constIndices)) { return false; } + // If not redeclared, replace the built-in with one that is appropriately sized + if (!isRedeclared) + { + TType *resizedType = new TType(builtInVar->getType()); + resizedType->setArraySize(0, enabledClipDistances); + + TVariable *resizedVar = new TVariable(symbolTable, name, resizedType, SymbolType::BuiltIn); + + return ReplaceVariable(compiler, root, builtInVar, resizedVar); + } + return true; } +} // anonymous namespace + +ANGLE_NO_DISCARD bool ReplaceClipDistanceAssignments(TCompiler *compiler, + TIntermBlock *root, + TSymbolTable *symbolTable, + const GLenum shaderType, + const TIntermTyped *clipDistanceEnableFlags) +{ + return ReplaceClipCullDistanceAssignmentsImpl(compiler, root, symbolTable, shaderType, + clipDistanceEnableFlags, "gl_ClipDistance", + "ANGLEClipDistance", EvqClipDistance); +} + ANGLE_NO_DISCARD bool ReplaceCullDistanceAssignments(TCompiler *compiler, TIntermBlock *root, TSymbolTable *symbolTable, const GLenum shaderType) { - // Collect all constant index references of gl_CullDistance - ImmutableString glCullDistanceName("gl_CullDistance"); - ClipCullDistanceIdxSet constIndices; - bool useNonConstIndex = false; - const TIntermSymbol *redeclaredGLCullDistance = nullptr; - unsigned int maxConstIndex = 0; - GLClipCullDistanceReferenceTraverser indexTraverser(&redeclaredGLCullDistance, - &useNonConstIndex, &maxConstIndex, - &constIndices, glCullDistanceName); - root->traverse(&indexTraverser); - if (!useNonConstIndex) - { - // Nothing to do - return true; - } - - // Retrieve gl_CullDistance variable reference - // Search user redeclared gl_CullDistance first - const TVariable *glCullDistanceVar = nullptr; - if (redeclaredGLCullDistance) - { - glCullDistanceVar = &redeclaredGLCullDistance->variable(); - } - else - { - // User defined not found, find in built-in table - glCullDistanceVar = - static_cast(symbolTable->findBuiltIn(glCullDistanceName, 300)); - } - if (!glCullDistanceVar) - { - return false; - } - - ReplaceClipCullDistanceAssignments replacementUtils(compiler, root, symbolTable, - glCullDistanceVar, redeclaredGLCullDistance, - ImmutableString("ANGLECullDistance")); - - // Declare a global variable substituting gl_CullDistance - unsigned int enabledCullDistances = - replacementUtils.getEnabledClipCullDistance(useNonConstIndex, maxConstIndex); - if (!enabledCullDistances) - { - // Spec : - // The gl_CullDistance array is predeclared as unsized and must be sized by the shader - // either redeclaring it with a size or indexing it only with integral constant expressions. - return false; - } - - const TVariable *cullDistanceVar = replacementUtils.declareANGLEVariable(); - - // Replace gl_CullDistance reference with ANGLECullDistance, except the declaration - ReplaceVariableExceptOneTraverser replaceTraverser(glCullDistanceVar, - new TIntermSymbol(cullDistanceVar), - /** exception */ redeclaredGLCullDistance); - root->traverse(&replaceTraverser); - if (!replaceTraverser.updateTree(compiler, root)) - { - return false; - } - - // Read gl_CullDistance to ANGLECullDistance for getting a original data - if (!replacementUtils.assignOriginalValueToANGLEVariable(shaderType)) - { - return false; - } - - // Reassign ANGLECullDistance to gl_CullDistance but ignore those that are disabled - const bool isRedeclared = (redeclaredGLCullDistance != nullptr); - if (!replacementUtils.assignANGLEValueToOriginalVariable(shaderType, isRedeclared, nullptr, - &constIndices, simpleAssignFunc)) - { - return false; - } - - return true; + return ReplaceClipCullDistanceAssignmentsImpl(compiler, root, symbolTable, shaderType, nullptr, + "gl_CullDistance", "ANGLECullDistance", + EvqCullDistance); } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h @@ -7,24 +7,17 @@ // another variable. #ifndef COMPILER_TRANSLATOR_TREEUTIL_REPLACEVARIABLE_H_ #define COMPILER_TRANSLATOR_TREEUTIL_REPLACEVARIABLE_H_ -#include "common/debug.h" - -#include -#include +#include "common/angleutils.h" namespace sh { class TCompiler; -class TFunction; -class TIntermAggregate; class TIntermBlock; -class TIntermFunctionPrototype; -class TIntermNode; class TIntermTyped; class TSymbolTable; class TVariable; ANGLE_NO_DISCARD bool ReplaceVariable(TCompiler *compiler, diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp @@ -10,10 +10,11 @@ #include "compiler/translator/tree_util/RewriteSampleMaskVariable.h" #include "common/bitset_utils.h" #include "common/debug.h" #include "common/utilities.h" +#include "compiler/translator/Compiler.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/BuiltIn.h" #include "compiler/translator/tree_util/IntermNode_util.h" #include "compiler/translator/tree_util/IntermTraverse.h" #include "compiler/translator/tree_util/RunAtTheBeginningOfShader.h" @@ -124,12 +125,12 @@ glSampleMaskVar = &redeclaredGLSampleMask->variable(); } else { // User defined not found, find in built-in table - glSampleMaskVar = static_cast( - symbolTable->findBuiltIn(ImmutableString("gl_SampleMask"), 320)); + glSampleMaskVar = static_cast(symbolTable->findBuiltIn( + ImmutableString("gl_SampleMask"), compiler->getShaderVersion())); } if (!glSampleMaskVar) { return false; } @@ -178,11 +179,11 @@ } // Retrieve gl_SampleMaskIn variable reference const TVariable *glSampleMaskInVar = nullptr; glSampleMaskInVar = static_cast( - symbolTable->findBuiltIn(ImmutableString("gl_SampleMaskIn"), 320)); + symbolTable->findBuiltIn(ImmutableString("gl_SampleMaskIn"), compiler->getShaderVersion())); if (!glSampleMaskInVar) { return false; } diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp @@ -15,11 +15,10 @@ #include "compiler/translator/tree_util/RunAtTheBeginningOfShader.h" #include "compiler/translator/Compiler.h" #include "compiler/translator/IntermNode.h" -#include "compiler/translator/StaticType.h" #include "compiler/translator/SymbolTable.h" #include "compiler/translator/tree_util/FindMain.h" #include "compiler/translator/tree_util/IntermNode_util.h" #include "compiler/translator/tree_util/IntermTraverse.h" diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp @@ -70,20 +70,20 @@ TSymbolTable *symbolTable) { // Replace main() with main0() with the same body. TFunction *oldMain = new TFunction(symbolTable, kEmptyImmutableString, SymbolType::AngleInternal, - StaticType::GetBasic(), false); + StaticType::GetBasic(), false); TIntermFunctionDefinition *oldMainDefinition = CreateInternalFunctionDefinitionNode(*oldMain, main->getBody()); bool replaced = root->replaceChildNode(main, oldMainDefinition); ASSERT(replaced); // void main() TFunction *newMain = new TFunction(symbolTable, kMainString, SymbolType::UserDefined, - StaticType::GetBasic(), false); + StaticType::GetBasic(), false); TIntermFunctionPrototype *newMainProto = new TIntermFunctionPrototype(newMain); // { // main0(); // codeToRun diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h --- a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h @@ -11,10 +11,11 @@ #include "common/angleutils.h" #include "compiler/translator/Compiler.h" #include "compiler/translator/SymbolTable.h" +class TIntermBlock; class TIntermTyped; class TIntermSymbol; class TVariable; namespace sh @@ -32,24 +33,23 @@ // Flip/rotation TIntermTyped *getMultiplierXForDFdx(); TIntermTyped *getMultiplierYForDFdx(); TIntermTyped *getMultiplierXForDFdy(); TIntermTyped *getMultiplierYForDFdy(); + TIntermTyped *getPreRotationMatrix(); TIntermTyped *getFragRotationMatrix(); TIntermTyped *getFlipXY(); TIntermTyped *getNegFlipXY(); TIntermTyped *getFlipY(); TIntermTyped *getFragRotationMultiplyFlipXY(); // Half render area TIntermBinary *getHalfRenderArea(); - void outputLayoutString(TInfoSinkBase &sink) const; + void declareSpecConsts(TIntermBlock *root); SpecConstUsageBits getSpecConstUsageBits() const { return mUsageBits; } - static bool IsSpecConstName(const ImmutableString &name); - private: TIntermSymbol *getFlipRotation(); TIntermTyped *getNegFlipY(); TIntermSymbol *getDrawableWidth(); TIntermSymbol *getDrawableHeight(); @@ -57,10 +57,15 @@ // If unsupported, this should be set to null. TSymbolTable *mSymbolTable; ShCompileOptions mCompileOptions; + TVariable *mLineRasterEmulationVar; + TVariable *mSurfaceRotationVar; + TVariable *mDrawableWidthVar; + TVariable *mDrawableHeightVar; + // Bit is set if YFlip or Rotation has been used SpecConstUsageBits mUsageBits; }; } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp --- a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp +++ b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp @@ -33,42 +33,39 @@ // This is 2x2 matrix in column major. The first column is for dFdx and second column is for dFdy. using Mat2x2 = std::array; using Mat2x2EnumMap = angle::PackedEnumMap()>; +constexpr Mat2x2EnumMap kPreRotationMatrices = { + {{vk::SurfaceRotation::Identity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, + {vk::SurfaceRotation::Rotated90Degrees, {{0.0f, -1.0f, 1.0f, 0.0f}}}, + {vk::SurfaceRotation::Rotated180Degrees, {{-1.0f, 0.0f, 0.0f, -1.0f}}}, + {vk::SurfaceRotation::Rotated270Degrees, {{0.0f, 1.0f, -1.0f, 0.0f}}}, + {vk::SurfaceRotation::FlippedIdentity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, + {vk::SurfaceRotation::FlippedRotated90Degrees, {{0.0f, -1.0f, 1.0f, 0.0f}}}, + {vk::SurfaceRotation::FlippedRotated180Degrees, {{-1.0f, 0.0f, 0.0f, -1.0f}}}, + {vk::SurfaceRotation::FlippedRotated270Degrees, {{0.0f, 1.0f, -1.0f, 0.0f}}}}}; + constexpr Mat2x2EnumMap kFragRotationMatrices = { {{vk::SurfaceRotation::Identity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, {vk::SurfaceRotation::Rotated90Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}, {vk::SurfaceRotation::Rotated180Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}, {vk::SurfaceRotation::Rotated270Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}, {vk::SurfaceRotation::FlippedIdentity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, {vk::SurfaceRotation::FlippedRotated90Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}, {vk::SurfaceRotation::FlippedRotated180Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}, {vk::SurfaceRotation::FlippedRotated270Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}}}; -// TODO: https://issuetracker.google.com/174066134. This is to make sure the specialization constant -// code path behaves exactly the same as driver uniform code path. Not sure why this has to be -// different from kFragRotationMatrices. -constexpr Mat2x2EnumMap kHalfRenderAreaRotationMatrices = { - {{vk::SurfaceRotation::Identity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, - {vk::SurfaceRotation::Rotated90Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}, - {vk::SurfaceRotation::Rotated180Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}, - {vk::SurfaceRotation::Rotated270Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}, - {vk::SurfaceRotation::FlippedIdentity, {{1.0f, 0.0f, 0.0f, 1.0f}}}, - {vk::SurfaceRotation::FlippedRotated90Degrees, {{0.0f, 1.0f, 1.0f, 0.0f}}}, - {vk::SurfaceRotation::FlippedRotated180Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}, - {vk::SurfaceRotation::FlippedRotated270Degrees, {{1.0f, 0.0f, 0.0f, 1.0f}}}}}; - // Returns mat2(m0, m1, m2, m3) TIntermAggregate *CreateMat2x2(const Mat2x2EnumMap &matrix, vk::SurfaceRotation rotation) { auto mat2Type = new TType(EbtFloat, 2, 2); TIntermSequence mat2Args; - mat2Args.push_back(CreateFloatNode(matrix[rotation][0])); - mat2Args.push_back(CreateFloatNode(matrix[rotation][1])); - mat2Args.push_back(CreateFloatNode(matrix[rotation][2])); - mat2Args.push_back(CreateFloatNode(matrix[rotation][3])); + mat2Args.push_back(CreateFloatNode(matrix[rotation][0], EbpLow)); + mat2Args.push_back(CreateFloatNode(matrix[rotation][1], EbpLow)); + mat2Args.push_back(CreateFloatNode(matrix[rotation][2], EbpLow)); + mat2Args.push_back(CreateFloatNode(matrix[rotation][3], EbpLow)); TIntermAggregate *constVarConstructor = TIntermAggregate::CreateConstructor(*mat2Type, &mat2Args); return constVarConstructor; } @@ -87,11 +84,11 @@ CreateMat2x2(matrix, vk::SurfaceRotation::FlippedIdentity), CreateMat2x2(matrix, vk::SurfaceRotation::FlippedRotated90Degrees), CreateMat2x2(matrix, vk::SurfaceRotation::FlippedRotated180Degrees), CreateMat2x2(matrix, vk::SurfaceRotation::FlippedRotated270Degrees)}; TIntermTyped *array = TIntermAggregate::CreateConstructor(*typeMat2Array, &sequences); - return new TIntermBinary(EOpIndexDirect, array, rotation); + return new TIntermBinary(EOpIndexIndirect, array, rotation); } using Vec2 = std::array; using Vec2EnumMap = angle::PackedEnumMap()>; @@ -100,30 +97,30 @@ {vk::SurfaceRotation::Rotated90Degrees, {{1.0f, 1.0f}}}, {vk::SurfaceRotation::Rotated180Degrees, {{-1.0f, 1.0f}}}, {vk::SurfaceRotation::Rotated270Degrees, {{-1.0f, -1.0f}}}, {vk::SurfaceRotation::FlippedIdentity, {{1.0f, -1.0f}}}, {vk::SurfaceRotation::FlippedRotated90Degrees, {{1.0f, 1.0f}}}, - {vk::SurfaceRotation::FlippedRotated180Degrees, {{1.0f, 1.0f}}}, + {vk::SurfaceRotation::FlippedRotated180Degrees, {{-1.0f, 1.0f}}}, {vk::SurfaceRotation::FlippedRotated270Degrees, {{-1.0f, -1.0f}}}}}; // Returns [[flipX*m0+flipY*m1] [flipX*m2+flipY*m3]] where [m0 m1] is the first column of // kFragRotation matrix and [m2 m3] is the second column of kFragRotation matrix. -constexpr Vec2 CalcFragRotationMultiplyFlipXY(vk::SurfaceRotation rotation) +constexpr Mat2x2 CalcFragRotationMultiplyFlipXY(vk::SurfaceRotation rotation) { - return Vec2({kFlipXYValue[rotation][0] * kFragRotationMatrices[rotation][0] + - kFlipXYValue[rotation][1] * kFragRotationMatrices[rotation][1], - kFlipXYValue[rotation][0] * kFragRotationMatrices[rotation][2] + - kFlipXYValue[rotation][1] * kFragRotationMatrices[rotation][3]}); + return Mat2x2({kFlipXYValue[rotation][0] * kFragRotationMatrices[rotation][0], + kFlipXYValue[rotation][1] * kFragRotationMatrices[rotation][1], + kFlipXYValue[rotation][0] * kFragRotationMatrices[rotation][2], + kFlipXYValue[rotation][1] * kFragRotationMatrices[rotation][3]}); } // Returns vec2(vec2Values.x, vec2Values.y*yscale) TIntermAggregate *CreateVec2(Vec2EnumMap vec2Values, float yscale, vk::SurfaceRotation rotation) { auto vec2Type = new TType(EbtFloat, 2); TIntermSequence vec2Args; - vec2Args.push_back(CreateFloatNode(vec2Values[rotation][0])); - vec2Args.push_back(CreateFloatNode(vec2Values[rotation][1] * yscale)); + vec2Args.push_back(CreateFloatNode(vec2Values[rotation][0], EbpLow)); + vec2Args.push_back(CreateFloatNode(vec2Values[rotation][1] * yscale, EbpLow)); TIntermAggregate *constVarConstructor = TIntermAggregate::CreateConstructor(*vec2Type, &vec2Args); return constVarConstructor; } @@ -144,11 +141,11 @@ CreateVec2(vec2Values, yscale, vk::SurfaceRotation::FlippedIdentity), CreateVec2(vec2Values, yscale, vk::SurfaceRotation::FlippedRotated90Degrees), CreateVec2(vec2Values, yscale, vk::SurfaceRotation::FlippedRotated180Degrees), CreateVec2(vec2Values, yscale, vk::SurfaceRotation::FlippedRotated270Degrees)}; TIntermTyped *vec2Array = TIntermAggregate::CreateConstructor(*typeVec2Array, &sequences); - return new TIntermBinary(EOpIndexDirect, vec2Array, rotation); + return new TIntermBinary(EOpIndexIndirect, vec2Array, rotation); } // Returns [flipX*m0, flipY*m1], where [m0 m1] is the first column of kFragRotation matrix. constexpr Vec2 CalcRotatedFlipXYValueForDFdx(vk::SurfaceRotation rotation) { @@ -199,34 +196,59 @@ TIntermTyped *CreateFloatArrayWithRotationIndex(const Vec2EnumMap &valuesEnumMap, int subscript, float scale, TIntermSymbol *rotation) { - const TType *floatType = StaticType::GetBasic(); + const TType *floatType = StaticType::GetBasic(); TType *typeFloat8 = new TType(*floatType); typeFloat8->makeArray(static_cast(vk::SurfaceRotation::EnumCount)); TIntermSequence sequences = { - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Identity][subscript] * scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated90Degrees][subscript] * scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated180Degrees][subscript] * scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated270Degrees][subscript] * scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::FlippedIdentity][subscript] * scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::FlippedRotated90Degrees][subscript] * - scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::FlippedRotated180Degrees][subscript] * - scale), - CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::FlippedRotated270Degrees][subscript] * - scale)}; + CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Identity][subscript] * scale, EbpLow), + CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated90Degrees][subscript] * scale, + EbpLow), + CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated180Degrees][subscript] * scale, + EbpLow), + CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::Rotated270Degrees][subscript] * scale, + EbpLow), + CreateFloatNode(valuesEnumMap[vk::SurfaceRotation::FlippedIdentity][subscript] * scale, + EbpLow), + CreateFloatNode( + valuesEnumMap[vk::SurfaceRotation::FlippedRotated90Degrees][subscript] * scale, EbpLow), + CreateFloatNode( + valuesEnumMap[vk::SurfaceRotation::FlippedRotated180Degrees][subscript] * scale, + EbpLow), + CreateFloatNode( + valuesEnumMap[vk::SurfaceRotation::FlippedRotated270Degrees][subscript] * scale, + EbpLow)}; TIntermTyped *array = TIntermAggregate::CreateConstructor(*typeFloat8, &sequences); - return new TIntermBinary(EOpIndexDirect, array, rotation); + return new TIntermBinary(EOpIndexIndirect, array, rotation); +} + +const TType *MakeSpecConst(const TType &type, vk::SpecializationConstantId id) +{ + // Create a new type with the EvqSpecConst qualifier + TType *specConstType = new TType(type); + specConstType->setQualifier(EvqSpecConst); + + // Set the constant_id of the spec const + TLayoutQualifier layoutQualifier = TLayoutQualifier::Create(); + layoutQualifier.location = static_cast(id); + specConstType->setLayoutQualifier(layoutQualifier); + + return specConstType; } } // anonymous namespace SpecConst::SpecConst(TSymbolTable *symbolTable, ShCompileOptions compileOptions, GLenum shaderType) - : mSymbolTable(symbolTable), mCompileOptions(compileOptions) + : mSymbolTable(symbolTable), + mCompileOptions(compileOptions), + mLineRasterEmulationVar(nullptr), + mSurfaceRotationVar(nullptr), + mDrawableWidthVar(nullptr), + mDrawableHeightVar(nullptr) { if (shaderType == GL_FRAGMENT_SHADER || shaderType == GL_COMPUTE_SHADER) { return; } @@ -239,59 +261,79 @@ } } SpecConst::~SpecConst() {} -void SpecConst::outputLayoutString(TInfoSinkBase &sink) const +void SpecConst::declareSpecConsts(TIntermBlock *root) { // Add specialization constant declarations. The default value of the specialization // constant is irrelevant, as it will be set when creating the pipeline. - // Only emit specialized const layout string if it has been referenced. - if (mUsageBits.test(vk::SpecConstUsage::LineRasterEmulation)) + // Only emit specialized const declaration if it has been referenced. + if (mLineRasterEmulationVar != nullptr) { - sink << "layout(constant_id=" - << static_cast(vk::SpecializationConstantId::LineRasterEmulation) - << ") const bool " << kLineRasterEmulationSpecConstVarName << " = false;\n\n"; + TIntermDeclaration *decl = new TIntermDeclaration(); + decl->appendDeclarator( + new TIntermBinary(EOpInitialize, getLineRasterEmulation(), CreateBoolNode(false))); + + root->insertStatement(0, decl); } - if (mUsageBits.test(vk::SpecConstUsage::YFlip) || mUsageBits.test(vk::SpecConstUsage::Rotation)) + if (mSurfaceRotationVar != nullptr) { - sink << "layout(constant_id=" - << static_cast(vk::SpecializationConstantId::SurfaceRotation) - << ") const uint " << kSurfaceRotationSpecConstVarName << " = 0;\n\n"; + TIntermDeclaration *decl = new TIntermDeclaration(); + decl->appendDeclarator( + new TIntermBinary(EOpInitialize, getFlipRotation(), CreateUIntNode(0))); + + root->insertStatement(0, decl); } - if (mUsageBits.test(vk::SpecConstUsage::DrawableSize)) + if (mDrawableWidthVar != nullptr) { - sink << "layout(constant_id=" - << static_cast(vk::SpecializationConstantId::DrawableWidth) - << ") const uint " << kDrawableWidthSpecConstVarName << " = 0;\n\n"; - sink << "layout(constant_id=" - << static_cast(vk::SpecializationConstantId::DrawableHeight) - << ") const uint " << kDrawableHeightSpecConstVarName << " = 0;\n\n"; + TIntermDeclaration *decl = new TIntermDeclaration(); + decl->appendDeclarator( + new TIntermBinary(EOpInitialize, getDrawableWidth(), CreateFloatNode(0, EbpMedium))); + root->insertStatement(0, decl); + } + + if (mDrawableHeightVar != nullptr) + { + TIntermDeclaration *decl = new TIntermDeclaration(); + decl->appendDeclarator( + new TIntermBinary(EOpInitialize, getDrawableHeight(), CreateFloatNode(0, EbpMedium))); + root->insertStatement(1, decl); } } TIntermSymbol *SpecConst::getLineRasterEmulation() { if ((mCompileOptions & SH_ADD_BRESENHAM_LINE_RASTER_EMULATION) == 0) { return nullptr; } - TVariable *specConstVar = - new TVariable(mSymbolTable, kLineRasterEmulationSpecConstVarName, - StaticType::GetBasic(), SymbolType::AngleInternal); - mUsageBits.set(vk::SpecConstUsage::LineRasterEmulation); - return new TIntermSymbol(specConstVar); + if (mLineRasterEmulationVar == nullptr) + { + const TType *type = MakeSpecConst(*StaticType::GetBasic(), + vk::SpecializationConstantId::LineRasterEmulation); + + mLineRasterEmulationVar = new TVariable(mSymbolTable, kLineRasterEmulationSpecConstVarName, + type, SymbolType::AngleInternal); + mUsageBits.set(vk::SpecConstUsage::LineRasterEmulation); + } + return new TIntermSymbol(mLineRasterEmulationVar); } TIntermSymbol *SpecConst::getFlipRotation() { - TVariable *specConstVar = - new TVariable(mSymbolTable, kSurfaceRotationSpecConstVarName, - StaticType::GetBasic(), SymbolType::AngleInternal); - return new TIntermSymbol(specConstVar); + if (mSurfaceRotationVar == nullptr) + { + const TType *type = MakeSpecConst(*StaticType::GetBasic(), + vk::SpecializationConstantId::SurfaceRotation); + + mSurfaceRotationVar = new TVariable(mSymbolTable, kSurfaceRotationSpecConstVarName, type, + SymbolType::AngleInternal); + } + return new TIntermSymbol(mSurfaceRotationVar); } TIntermTyped *SpecConst::getMultiplierXForDFdx() { if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) @@ -334,30 +376,30 @@ mUsageBits.set(vk::SpecConstUsage::YFlip); mUsageBits.set(vk::SpecConstUsage::Rotation); return CreateFloatArrayWithRotationIndex(kRotatedFlipXYForDFdy, 1, 1, getFlipRotation()); } +TIntermTyped *SpecConst::getPreRotationMatrix() +{ + if (!(mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT)) + { + return nullptr; + } + mUsageBits.set(vk::SpecConstUsage::Rotation); + return GenerateMat2x2ArrayWithIndex(kPreRotationMatrices, getFlipRotation()); +} + TIntermTyped *SpecConst::getFragRotationMatrix() { if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) { return nullptr; } mUsageBits.set(vk::SpecConstUsage::Rotation); return GenerateMat2x2ArrayWithIndex(kFragRotationMatrices, getFlipRotation()); } -TIntermTyped *SpecConst::getHalfRenderAreaRotationMatrix() -{ - if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) - { - return nullptr; - } - mUsageBits.set(vk::SpecConstUsage::Rotation); - return GenerateMat2x2ArrayWithIndex(kHalfRenderAreaRotationMatrices, getFlipRotation()); -} - TIntermTyped *SpecConst::getFlipXY() { if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) { return nullptr; @@ -401,11 +443,11 @@ if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) { return nullptr; } - constexpr Vec2EnumMap kFragRotationMultiplyFlipXY = { + constexpr Mat2x2EnumMap kFragRotationMultiplyFlipXY = { {{vk::SurfaceRotation::Identity, CalcFragRotationMultiplyFlipXY(vk::SurfaceRotation::Identity)}, {vk::SurfaceRotation::Rotated90Degrees, CalcFragRotationMultiplyFlipXY(vk::SurfaceRotation::Rotated90Degrees)}, {vk::SurfaceRotation::Rotated180Degrees, @@ -421,29 +463,37 @@ {vk::SurfaceRotation::FlippedRotated270Degrees, CalcFragRotationMultiplyFlipXY(vk::SurfaceRotation::FlippedRotated270Degrees)}}}; mUsageBits.set(vk::SpecConstUsage::YFlip); mUsageBits.set(vk::SpecConstUsage::Rotation); - return CreateVec2ArrayWithIndex(kFragRotationMultiplyFlipXY, 1.0, getFlipRotation()); + return GenerateMat2x2ArrayWithIndex(kFragRotationMultiplyFlipXY, getFlipRotation()); } TIntermSymbol *SpecConst::getDrawableWidth() { - TVariable *widthSpecConstVar = - new TVariable(mSymbolTable, kDrawableWidthSpecConstVarName, - StaticType::GetBasic(), SymbolType::AngleInternal); - TIntermSymbol *drawableWidth = new TIntermSymbol(widthSpecConstVar); - return drawableWidth; + if (mDrawableWidthVar == nullptr) + { + const TType *type = MakeSpecConst(*StaticType::GetBasic(), + vk::SpecializationConstantId::DrawableWidth); + + mDrawableWidthVar = new TVariable(mSymbolTable, kDrawableWidthSpecConstVarName, type, + SymbolType::AngleInternal); + } + return new TIntermSymbol(mDrawableWidthVar); } TIntermSymbol *SpecConst::getDrawableHeight() { - TVariable *heightSpecConstVar = - new TVariable(mSymbolTable, kDrawableHeightSpecConstVarName, - StaticType::GetBasic(), SymbolType::AngleInternal); - TIntermSymbol *drawableHeight = new TIntermSymbol(heightSpecConstVar); - return drawableHeight; + if (mDrawableHeightVar == nullptr) + { + const TType *type = MakeSpecConst(*StaticType::GetBasic(), + vk::SpecializationConstantId::DrawableHeight); + + mDrawableHeightVar = new TVariable(mSymbolTable, kDrawableHeightSpecConstVarName, type, + SymbolType::AngleInternal); + } + return new TIntermSymbol(mDrawableHeightVar); } TIntermBinary *SpecConst::getHalfRenderArea() { if ((mCompileOptions & SH_USE_SPECIALIZATION_CONSTANT) == 0) @@ -459,23 +509,12 @@ TIntermAggregate *drawableSize = TIntermAggregate::CreateConstructor(*vec2Type, &widthHeightArgs); // drawableSize * 0.5f TIntermBinary *halfRenderArea = - new TIntermBinary(EOpVectorTimesScalar, drawableSize, CreateFloatNode(0.5)); + new TIntermBinary(EOpVectorTimesScalar, drawableSize, CreateFloatNode(0.5, EbpMedium)); mUsageBits.set(vk::SpecConstUsage::DrawableSize); - // drawableSize * 0.5f * halfRenderAreaRotationMatrix (See comment in - // kHalfRenderAreaRotationMatrices) - TIntermBinary *rotatedHalfRenderArea = - new TIntermBinary(EOpMatrixTimesVector, getHalfRenderAreaRotationMatrix(), halfRenderArea); - - return rotatedHalfRenderArea; -} - -bool SpecConst::IsSpecConstName(const ImmutableString &name) -{ - return name == kLineRasterEmulationSpecConstVarName || - name == kSurfaceRotationSpecConstVarName || name == kDrawableWidthSpecConstVarName || - name == kDrawableHeightSpecConstVarName; + // No rotation needed because drawableSize is already rotated. + return halfRenderArea; } } // namespace sh diff --git a/gfx/angle/checkout/src/compiler/translator/util.h b/gfx/angle/checkout/src/compiler/translator/util.h --- a/gfx/angle/checkout/src/compiler/translator/util.h +++ b/gfx/angle/checkout/src/compiler/translator/util.h @@ -12,11 +12,11 @@ #include #include "angle_gl.h" #include "compiler/translator/HashNames.h" #include "compiler/translator/ImmutableString.h" -#include "compiler/translator/Operator.h" +#include "compiler/translator/Operator_autogen.h" #include "compiler/translator/Types.h" // If overflow happens, clamp the value to UINT_MIN or UINT_MAX. // Return false if overflow happens. bool atoi_clamp(const char *str, unsigned int *value); @@ -52,10 +52,11 @@ GLenum GLVariableType(const TType &type); GLenum GLVariablePrecision(const TType &type); bool IsVaryingIn(TQualifier qualifier); bool IsVaryingOut(TQualifier qualifier); bool IsVarying(TQualifier qualifier); +bool IsMatrixGLType(GLenum type); bool IsGeometryShaderInput(GLenum shaderType, TQualifier qualifier); bool IsTessellationControlShaderInput(GLenum shaderType, TQualifier qualifier); bool IsTessellationControlShaderOutput(GLenum shaderType, TQualifier qualifier); bool IsTessellationEvaluationShaderInput(GLenum shaderType, TQualifier qualifier); InterpolationType GetInterpolationType(TQualifier qualifier); @@ -79,10 +80,11 @@ bool IsOutputESSL(ShShaderOutput output); bool IsOutputGLSL(ShShaderOutput output); bool IsOutputHLSL(ShShaderOutput output); bool IsOutputVulkan(ShShaderOutput output); bool IsOutputMetal(ShShaderOutput output); +bool IsOutputMetalDirect(ShShaderOutput output); bool IsInShaderStorageBlock(TIntermTyped *node); GLenum GetImageInternalFormatType(TLayoutImageInternalFormat iifq); // ESSL 1.00 shaders nest function body scope within function parameter scope @@ -91,9 +93,15 @@ // Helper functions for implicit conversions ImplicitTypeConversion GetConversion(TBasicType t1, TBasicType t2); bool IsValidImplicitConversion(ImplicitTypeConversion conversion, TOperator op); +// Whether the given basic type requires precision. +bool IsPrecisionApplicableToType(TBasicType type); + +// Whether this is the name of a built-in that can be redeclared by the shader. +bool IsRedeclarableBuiltIn(const ImmutableString &name); + size_t FindFieldIndex(const TFieldList &fieldList, const char *fieldName); } // namespace sh #endif // COMPILER_TRANSLATOR_UTIL_H_ diff --git a/gfx/angle/checkout/src/compiler/translator/util.cpp b/gfx/angle/checkout/src/compiler/translator/util.cpp --- a/gfx/angle/checkout/src/compiler/translator/util.cpp +++ b/gfx/angle/checkout/src/compiler/translator/util.cpp @@ -24,10 +24,49 @@ namespace sh { namespace { +// [primarySize-1][secondarySize-1] is the GL type with a basic type of float. +constexpr GLenum kFloatGLType[4][4] = { + // float1xS only makes sense for S == 1 + { + GL_FLOAT, + GL_NONE, + GL_NONE, + GL_NONE, + }, + // float2xS is vec2 for S == 1, and mat2xS o.w. + { + GL_FLOAT_VEC2, + GL_FLOAT_MAT2, + GL_FLOAT_MAT2x3, + GL_FLOAT_MAT2x4, + }, + // float3xS is vec3 for S == 1, and mat3xS o.w. + { + GL_FLOAT_VEC3, + GL_FLOAT_MAT3x2, + GL_FLOAT_MAT3, + GL_FLOAT_MAT3x4, + }, + // float4xS is vec4 for S == 1, and mat4xS o.w. + { + GL_FLOAT_VEC4, + GL_FLOAT_MAT4x2, + GL_FLOAT_MAT4x3, + GL_FLOAT_MAT4, + }, +}; +// [primarySize-1] is the GL type with a basic type of int. +constexpr GLenum kIntGLType[4] = {GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4}; +// [primarySize-1] is the GL type with a basic type of uint. +constexpr GLenum kUIntGLType[4] = {GL_UNSIGNED_INT, GL_UNSIGNED_INT_VEC2, GL_UNSIGNED_INT_VEC3, + GL_UNSIGNED_INT_VEC4}; +// [primarySize-1] is the GL type with a basic type of bool. +constexpr GLenum kBoolGLType[4] = {GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4}; + bool IsInterpolationIn(TQualifier qualifier) { switch (qualifier) { case EvqSmoothIn: @@ -211,171 +250,36 @@ return !gl::isInf(*value); } GLenum GLVariableType(const TType &type) { - if (type.getBasicType() == EbtFloat) - { - if (type.isVector()) - { - switch (type.getNominalSize()) - { - case 2: - return GL_FLOAT_VEC2; - case 3: - return GL_FLOAT_VEC3; - case 4: - return GL_FLOAT_VEC4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - } - else if (type.isMatrix()) - { - switch (type.getCols()) - { - case 2: - switch (type.getRows()) - { - case 2: - return GL_FLOAT_MAT2; - case 3: - return GL_FLOAT_MAT2x3; - case 4: - return GL_FLOAT_MAT2x4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - - case 3: - switch (type.getRows()) - { - case 2: - return GL_FLOAT_MAT3x2; - case 3: - return GL_FLOAT_MAT3; - case 4: - return GL_FLOAT_MAT3x4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - - case 4: - switch (type.getRows()) - { - case 2: - return GL_FLOAT_MAT4x2; - case 3: - return GL_FLOAT_MAT4x3; - case 4: - return GL_FLOAT_MAT4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - } - else - { - return GL_FLOAT; - } - } - else if (type.getBasicType() == EbtInt) - { - if (type.isVector()) - { - switch (type.getNominalSize()) - { - case 2: - return GL_INT_VEC2; - case 3: - return GL_INT_VEC3; - case 4: - return GL_INT_VEC4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - } - else - { - ASSERT(!type.isMatrix()); - return GL_INT; - } - } - else if (type.getBasicType() == EbtUInt) - { - if (type.isVector()) - { - switch (type.getNominalSize()) - { - case 2: - return GL_UNSIGNED_INT_VEC2; - case 3: - return GL_UNSIGNED_INT_VEC3; - case 4: - return GL_UNSIGNED_INT_VEC4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - } - else - { - ASSERT(!type.isMatrix()); - return GL_UNSIGNED_INT; - } - } - else if (type.getBasicType() == EbtBool) - { - if (type.isVector()) - { - switch (type.getNominalSize()) - { - case 2: - return GL_BOOL_VEC2; - case 3: - return GL_BOOL_VEC3; - case 4: - return GL_BOOL_VEC4; - default: - UNREACHABLE(); -#if !UNREACHABLE_IS_NORETURN - return GL_NONE; -#endif - } - } - else - { - ASSERT(!type.isMatrix()); - return GL_BOOL; - } - } - switch (type.getBasicType()) { + case EbtFloat: + ASSERT(type.getNominalSize() >= 1 && type.getNominalSize() <= 4); + ASSERT(type.getSecondarySize() >= 1 && type.getSecondarySize() <= 4); + + return kFloatGLType[type.getNominalSize() - 1][type.getSecondarySize() - 1]; + + case EbtInt: + ASSERT(type.getNominalSize() >= 1 && type.getNominalSize() <= 4); + ASSERT(type.getSecondarySize() == 1); + + return kIntGLType[type.getNominalSize() - 1]; + + case EbtUInt: + ASSERT(type.getNominalSize() >= 1 && type.getNominalSize() <= 4); + ASSERT(type.getSecondarySize() == 1); + + return kUIntGLType[type.getNominalSize() - 1]; + + case EbtBool: + ASSERT(type.getNominalSize() >= 1 && type.getNominalSize() <= 4); + ASSERT(type.getSecondarySize() == 1); + + return kBoolGLType[type.getNominalSize() - 1]; + case EbtSampler2D: return GL_SAMPLER_2D; case EbtSampler3D: return GL_SAMPLER_3D; case EbtSamplerCube: @@ -604,10 +508,29 @@ bool IsVarying(TQualifier qualifier) { return IsVaryingIn(qualifier) || IsVaryingOut(qualifier); } +bool IsMatrixGLType(GLenum type) +{ + switch (type) + { + case GL_FLOAT_MAT2: + case GL_FLOAT_MAT3: + case GL_FLOAT_MAT4: + case GL_FLOAT_MAT2x3: + case GL_FLOAT_MAT2x4: + case GL_FLOAT_MAT3x2: + case GL_FLOAT_MAT3x4: + case GL_FLOAT_MAT4x2: + case GL_FLOAT_MAT4x3: + return true; + default: + return false; + } +} + bool IsGeometryShaderInput(GLenum shaderType, TQualifier qualifier) { return (qualifier == EvqGeometryIn) || ((shaderType == GL_GEOMETRY_SHADER_EXT) && IsInterpolationIn(qualifier)); } @@ -785,17 +708,18 @@ switch (qualifier) { case EvqPosition: case EvqPointSize: case EvqFragDepth: - case EvqFragDepthEXT: case EvqFragColor: case EvqSecondaryFragColorEXT: case EvqFragData: case EvqSecondaryFragDataEXT: case EvqClipDistance: + case EvqCullDistance: case EvqLastFragData: + case EvqSampleMask: return true; default: break; } return false; @@ -867,10 +791,14 @@ } bool IsOutputMetal(ShShaderOutput output) { return output == SH_SPIRV_METAL_OUTPUT; } +bool IsOutputMetalDirect(ShShaderOutput output) +{ + return output == SH_MSL_METAL_OUTPUT; +} bool IsInShaderStorageBlock(TIntermTyped *node) { TIntermSwizzle *swizzleNode = node->getAsSwizzleNode(); if (swizzleNode) @@ -1043,10 +971,30 @@ break; } return false; } +bool IsPrecisionApplicableToType(TBasicType type) +{ + switch (type) + { + case EbtInt: + case EbtUInt: + case EbtFloat: + // TODO: find all types where precision is applicable; for example samplers. + // http://anglebug.com/6132 + return true; + default: + return false; + } +} + +bool IsRedeclarableBuiltIn(const ImmutableString &name) +{ + return name == "gl_ClipDistance" || name == "gl_CullDistance" || name == "gl_LastFragData"; +} + size_t FindFieldIndex(const TFieldList &fieldList, const char *fieldName) { for (size_t fieldIndex = 0; fieldIndex < fieldList.size(); ++fieldIndex) { if (strcmp(fieldList[fieldIndex]->name().data(), fieldName) == 0) diff --git a/gfx/angle/checkout/src/gpu_info_util/SystemInfo.cpp b/gfx/angle/checkout/src/gpu_info_util/SystemInfo.cpp --- a/gfx/angle/checkout/src/gpu_info_util/SystemInfo.cpp +++ b/gfx/angle/checkout/src/gpu_info_util/SystemInfo.cpp @@ -264,10 +264,15 @@ void GetDualGPUInfo(SystemInfo *info) { ASSERT(!info->gpus.empty()); // On dual-GPU systems we assume the non-Intel GPU is the graphics one. + // TODO: this is incorrect and problematic. activeGPUIndex must be removed if it cannot be + // determined correctly. A potential solution is to create an OpenGL context and parse + // GL_VENDOR. Currently, our test infrastructure is relying on this information and incorrectly + // applies test expectations on dual-GPU systems when the Intel GPU is active. + // http://anglebug.com/6174. int active = 0; bool hasIntel = false; for (size_t i = 0; i < info->gpus.size(); ++i) { if (IsIntel(info->gpus[i].vendorId)) diff --git a/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.cpp b/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.cpp --- a/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.cpp +++ b/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.cpp @@ -14,16 +14,11 @@ #include #include "common/angleutils.h" #include "common/debug.h" #include "common/system_utils.h" - -#if defined(ANGLE_PLATFORM_WINDOWS) -const char *kLibVulkanNames[] = {"vulkan-1.dll"}; -#else -const char *kLibVulkanNames[] = {"libvulkan.so", "libvulkan.so.1"}; -#endif +#include "common/vulkan/libvulkan_loader.h" namespace angle { class VulkanLibrary final : NonCopyable { @@ -38,31 +33,15 @@ if (pfnDestroyInstance) { pfnDestroyInstance(mInstance, nullptr); } } - SafeDelete(mLibVulkan); } VkInstance getVulkanInstance() { - for (const char *libraryName : kLibVulkanNames) - { - mLibVulkan = OpenSharedLibraryWithExtension(libraryName); - if (mLibVulkan) - { - if (mLibVulkan->getNative()) - { - break; - } - else - { - SafeDelete(mLibVulkan); - } - } - } - + mLibVulkan = vk::OpenLibVulkan(); if (!mLibVulkan) { // If Vulkan doesn't exist, bail-out early: return VK_NULL_HANDLE; } @@ -114,12 +93,12 @@ { return reinterpret_cast(mLibVulkan->getSymbol(fn)); } private: - Library *mLibVulkan = nullptr; - VkInstance mInstance = VK_NULL_HANDLE; + std::unique_ptr mLibVulkan = nullptr; + VkInstance mInstance = VK_NULL_HANDLE; }; ANGLE_FORMAT_PRINTF(1, 2) std::string FormatString(const char *fmt, ...) { @@ -151,11 +130,11 @@ auto pfnEnumeratePhysicalDevices = vkLibrary.getProc("vkEnumeratePhysicalDevices"); auto pfnGetPhysicalDeviceProperties = vkLibrary.getProc("vkGetPhysicalDeviceProperties"); uint32_t physicalDeviceCount = 0; - if (!pfnEnumeratePhysicalDevices || + if (!pfnEnumeratePhysicalDevices || !pfnGetPhysicalDeviceProperties || pfnEnumeratePhysicalDevices(instance, &physicalDeviceCount, nullptr) != VK_SUCCESS) { return false; } std::vector physicalDevices(physicalDeviceCount); diff --git a/gfx/angle/checkout/src/image_util/imageformats.h b/gfx/angle/checkout/src/image_util/imageformats.h --- a/gfx/angle/checkout/src/image_util/imageformats.h +++ b/gfx/angle/checkout/src/image_util/imageformats.h @@ -195,10 +195,24 @@ static void writeColor(B8G8R8X8 *dst, const gl::ColorF *src); static void writeColor(B8G8R8X8 *dst, const gl::ColorUI *src); static void average(B8G8R8X8 *dst, const B8G8R8X8 *src1, const B8G8R8X8 *src2); }; +struct R8G8B8X8 +{ + uint8_t R; + uint8_t G; + uint8_t B; + uint8_t X; + + static void readColor(gl::ColorF *dst, const R8G8B8X8 *src); + static void readColor(gl::ColorUI *dst, const R8G8B8X8 *src); + static void writeColor(R8G8B8X8 *dst, const gl::ColorF *src); + static void writeColor(R8G8B8X8 *dst, const gl::ColorUI *src); + static void average(R8G8B8X8 *dst, const R8G8B8X8 *src1, const R8G8B8X8 *src2); +}; + struct A1R5G5B5 { uint16_t ARGB; static void readColor(gl::ColorF *dst, const A1R5G5B5 *src); diff --git a/gfx/angle/checkout/src/image_util/imageformats.cpp b/gfx/angle/checkout/src/image_util/imageformats.cpp --- a/gfx/angle/checkout/src/image_util/imageformats.cpp +++ b/gfx/angle/checkout/src/image_util/imageformats.cpp @@ -467,10 +467,49 @@ *(uint32_t *)dst = (((*(uint32_t *)src1 ^ *(uint32_t *)src2) & 0xFEFEFEFE) >> 1) + (*(uint32_t *)src1 & *(uint32_t *)src2); dst->X = 255; } +void R8G8B8X8::readColor(gl::ColorUI *dst, const R8G8B8X8 *src) +{ + dst->red = src->R; + dst->green = src->G; + dst->blue = src->B; + dst->alpha = 1; +} + +void R8G8B8X8::readColor(gl::ColorF *dst, const R8G8B8X8 *src) +{ + dst->red = gl::normalizedToFloat(src->R); + dst->green = gl::normalizedToFloat(src->G); + dst->blue = gl::normalizedToFloat(src->B); + dst->alpha = 1.0f; +} + +void R8G8B8X8::writeColor(R8G8B8X8 *dst, const gl::ColorUI *src) +{ + dst->R = static_cast(src->red); + dst->G = static_cast(src->green); + dst->B = static_cast(src->blue); + dst->X = 255; +} + +void R8G8B8X8::writeColor(R8G8B8X8 *dst, const gl::ColorF *src) +{ + dst->R = gl::floatToNormalized(src->red); + dst->G = gl::floatToNormalized(src->green); + dst->B = gl::floatToNormalized(src->blue); + dst->X = 255; +} + +void R8G8B8X8::average(R8G8B8X8 *dst, const R8G8B8X8 *src1, const R8G8B8X8 *src2) +{ + *(uint32_t *)dst = (((*(uint32_t *)src1 ^ *(uint32_t *)src2) & 0xFEFEFEFE) >> 1) + + (*(uint32_t *)src1 & *(uint32_t *)src2); + dst->X = 255; +} + void A1R5G5B5::readColor(gl::ColorF *dst, const A1R5G5B5 *src) { dst->alpha = gl::normalizedToFloat<1>(gl::getShiftedData<1, 15>(src->ARGB)); dst->red = gl::normalizedToFloat<5>(gl::getShiftedData<5, 10>(src->ARGB)); dst->green = gl::normalizedToFloat<5>(gl::getShiftedData<5, 5>(src->ARGB)); diff --git a/gfx/angle/checkout/src/image_util/loadimage.h b/gfx/angle/checkout/src/image_util/loadimage.h --- a/gfx/angle/checkout/src/image_util/loadimage.h +++ b/gfx/angle/checkout/src/image_util/loadimage.h @@ -586,10 +586,30 @@ size_t inputDepthPitch, uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch); +void LoadUNorm16To32F(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch); + +void LoadUNorm32To32F(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch); + void LoadRGB32FToRGBA16F(size_t width, size_t height, size_t depth, const uint8_t *input, size_t inputRowPitch, @@ -889,10 +909,20 @@ size_t inputDepthPitch, uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch); +void LoadYuvToNative(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch); + } // namespace angle #include "loadimage.inc" #endif // IMAGEUTIL_LOADIMAGE_H_ diff --git a/gfx/angle/checkout/src/image_util/loadimage.cpp b/gfx/angle/checkout/src/image_util/loadimage.cpp --- a/gfx/angle/checkout/src/image_util/loadimage.cpp +++ b/gfx/angle/checkout/src/image_util/loadimage.cpp @@ -1716,6 +1716,81 @@ } } } } +// This conversion was added to support using a 32F depth buffer +// as emulation for 16unorm depth buffer in Metal. +// See angleproject:6597 +void LoadUNorm16To32F(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch) +{ + for (size_t z = 0; z < depth; z++) + { + for (size_t y = 0; y < height; y++) + { + const uint16_t *source = + priv::OffsetDataPointer(input, y, z, inputRowPitch, inputDepthPitch); + float *dest = + priv::OffsetDataPointer(output, y, z, outputRowPitch, outputDepthPitch); + for (size_t x = 0; x < width; x++) + { + dest[x] = static_cast(source[x]) / 0xFFFF; + } + } + } +} + +// This conversion was added to support using a 32F depth buffer +// as emulation for 16unorm depth buffer in Metal. In OpenGL ES 3.0 +// you're allowed to pass UNSIGNED_INT as input to texImage2D and +// so this conversion is neccasary. +// +// See angleproject:6597 +void LoadUNorm32To32F(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch) +{ + for (size_t z = 0; z < depth; z++) + { + for (size_t y = 0; y < height; y++) + { + const uint16_t *source = + priv::OffsetDataPointer(input, y, z, inputRowPitch, inputDepthPitch); + float *dest = + priv::OffsetDataPointer(output, y, z, outputRowPitch, outputDepthPitch); + for (size_t x = 0; x < width; x++) + { + dest[x] = static_cast(source[x]) / static_cast(0xFFFFFFFFU); + } + } + } +} + +void LoadYuvToNative(size_t width, + size_t height, + size_t depth, + const uint8_t *input, + size_t inputRowPitch, + size_t inputDepthPitch, + uint8_t *output, + size_t outputRowPitch, + size_t outputDepthPitch) +{ + // For YUV formats it is assumed that source has tightly packed data. + memcpy(output, input, inputDepthPitch); +} + } // namespace angle diff --git a/gfx/angle/checkout/src/image_util/loadtextureborder.h b/gfx/angle/checkout/src/image_util/loadtextureborder.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/image_util/loadtextureborder.h @@ -0,0 +1,26 @@ +// +// Copyright 2021 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. +// + +// loadtextureborder.h: Defines border color load functions. + +#ifndef IMAGEUTIL_LOADTEXTUREBORDER_H_ +#define IMAGEUTIL_LOADTEXTUREBORDER_H_ + +#include +#include +#include "common/Color.h" +namespace angle +{ + +void LoadA8ToR8(angle::ColorF &mBorderColor); + +void LoadLA8ToR8G8(angle::ColorF &mBorderColor); + +void LoadToNative(angle::ColorF &mBorderColor); + +} // namespace angle + +#endif // IMAGEUTIL_LOADTEXTUREBORDER_H_ diff --git a/gfx/angle/checkout/src/image_util/loadtextureborder.cpp b/gfx/angle/checkout/src/image_util/loadtextureborder.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/image_util/loadtextureborder.cpp @@ -0,0 +1,28 @@ +// +// Copyright 2021 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. +// + +// loadtextureborder.cpp: Defines border color load functions. + +#include "image_util/loadtextureborder.h" + +namespace angle +{ + +void LoadA8ToR8(angle::ColorF &mBorderColor) +{ + mBorderColor.red = mBorderColor.alpha; + mBorderColor.alpha = 0; +} + +void LoadLA8ToR8G8(angle::ColorF &mBorderColor) +{ + mBorderColor.green = mBorderColor.alpha; + mBorderColor.alpha = 0; +} + +void LoadToNative(angle::ColorF &mBorderColor) {} + +} // namespace angle diff --git a/gfx/angle/checkout/src/libANGLE/Buffer.h b/gfx/angle/checkout/src/libANGLE/Buffer.h --- a/gfx/angle/checkout/src/libANGLE/Buffer.h +++ b/gfx/angle/checkout/src/libANGLE/Buffer.h @@ -67,10 +67,22 @@ GLboolean mImmutable; GLbitfield mStorageExtUsageFlags; GLboolean mExternal; }; +// Some Vertex Array Objects track buffer data updates. +struct ContentsObserver +{ + VertexArray *vertexArray = nullptr; + uint32_t bufferIndex = 0; +}; + +ANGLE_INLINE bool operator==(const ContentsObserver &lhs, const ContentsObserver &rhs) +{ + return lhs.vertexArray == rhs.vertexArray && lhs.bufferIndex == rhs.bufferIndex; +} + class Buffer final : public RefCountObject, public LabeledObject, public angle::ObserverInterface, public angle::Subject { @@ -139,14 +151,19 @@ // Buffers are always initialized immediately when allocated InitState initState() const { return InitState::Initialized; } rx::BufferImpl *getImplementation() const { return mImpl; } - ANGLE_INLINE bool isBound() const { return mState.mBindingCount > 0; } + // Note: we pass "isWebGL" to this function to clarify it's only valid if WebGL is enabled. + // We pass the boolean flag instead of the pointer because this header can't read Context.h. + ANGLE_INLINE bool hasWebGLXFBBindingConflict(bool isWebGL) const + { + if (!isWebGL) + { + return false; + } - ANGLE_INLINE bool isBoundForTransformFeedbackAndOtherUse() const - { // The transform feedback generic binding point is not an indexed binding point but it also // does not count as a non-transform-feedback use of the buffer, so we subtract it from the // binding count when checking if the buffer is bound to a non-transform-feedback location. // See https://crbug.com/853978 return mState.mTransformFeedbackIndexedBindingCount > 0 && @@ -163,10 +180,13 @@ void *outData); // angle::ObserverInterface implementation. void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; + void addContentsObserver(VertexArray *vertexArray, uint32_t bufferIndex); + void removeContentsObserver(VertexArray *vertexArray, uint32_t bufferIndex); + private: angle::Result bufferDataImpl(Context *context, BufferBinding target, const void *data, GLsizeiptr size, @@ -176,14 +196,18 @@ BufferBinding target, GLeglClientBufferEXT clientBuffer, GLsizeiptr size, GLbitfield flags); + void onContentsChange(); + size_t getContentsObserverIndex(VertexArray *vertexArray, uint32_t bufferIndex) const; + BufferState mState; rx::BufferImpl *mImpl; angle::ObserverBinding mImplObserver; + angle::FastVector mContentsObservers; mutable IndexRangeCache mIndexRangeCache; }; } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/Buffer.cpp b/gfx/angle/checkout/src/libANGLE/Buffer.cpp --- a/gfx/angle/checkout/src/libANGLE/Buffer.cpp +++ b/gfx/angle/checkout/src/libANGLE/Buffer.cpp @@ -17,10 +17,11 @@ namespace gl { namespace { constexpr angle::SubjectIndex kImplementationSubjectIndex = 0; +constexpr size_t kInvalidContentsObserverIndex = std::numeric_limits::max(); } // anonymous namespace BufferState::BufferState() : mLabel(), mUsage(BufferUsage::StaticDraw), @@ -143,18 +144,27 @@ onStateChange(angle::SubjectMessage::SubjectChanged); return angle::Result::Stop; } + bool wholeBuffer = size == mState.mSize; + mIndexRangeCache.clear(); mState.mUsage = usage; mState.mSize = size; mState.mImmutable = (usage == BufferUsage::InvalidEnum); mState.mStorageExtUsageFlags = flags; // Notify when storage changes. - onStateChange(angle::SubjectMessage::SubjectChanged); + if (wholeBuffer) + { + onContentsChange(); + } + else + { + onStateChange(angle::SubjectMessage::SubjectChanged); + } return angle::Result::Continue; } angle::Result Buffer::bufferExternalDataImpl(Context *context, @@ -163,11 +173,11 @@ GLsizeiptr size, GLbitfield flags) { if (mState.isMapped()) { - // Per the OpenGL ES 3.0 spec, buffers are implicity unmapped when a call to + // Per the OpenGL ES 3.0 spec, buffers are implicitly unmapped when a call to // BufferData happens on a mapped buffer: // // If any portion of the buffer object is mapped in the current context or any context // current to another thread, it is as though UnmapBuffer (see section 2.10.3) is // executed in each such context prior to deleting the existing data store. @@ -212,11 +222,11 @@ mIndexRangeCache.invalidateRange(static_cast(offset), static_cast(size)); // Notify when data changes. - onStateChange(angle::SubjectMessage::ContentsChanged); + onContentsChange(); return angle::Result::Continue; } angle::Result Buffer::copyBufferSubData(const Context *context, @@ -230,11 +240,11 @@ mIndexRangeCache.invalidateRange(static_cast(destOffset), static_cast(size)); // Notify when data changes. - onStateChange(angle::SubjectMessage::ContentsChanged); + onContentsChange(); return angle::Result::Continue; } angle::Result Buffer::map(const Context *context, GLenum access) @@ -316,11 +326,11 @@ void Buffer::onDataChanged() { mIndexRangeCache.clear(); // Notify when data changes. - onStateChange(angle::SubjectMessage::ContentsChanged); + onContentsChange(); mImpl->onDataChanged(); } angle::Result Buffer::getIndexRange(const gl::Context *context, @@ -381,9 +391,54 @@ void Buffer::onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) { // Pass it along! ASSERT(index == kImplementationSubjectIndex); - ASSERT(message == angle::SubjectMessage::SubjectChanged); - onStateChange(angle::SubjectMessage::SubjectChanged); + ASSERT(message == angle::SubjectMessage::SubjectChanged || + message == angle::SubjectMessage::InternalMemoryAllocationChanged); + onStateChange(message); +} + +size_t Buffer::getContentsObserverIndex(VertexArray *vertexArray, uint32_t bufferIndex) const +{ + for (size_t observerIndex = 0; observerIndex < mContentsObservers.size(); ++observerIndex) + { + const ContentsObserver &observer = mContentsObservers[observerIndex]; + if (observer.vertexArray == vertexArray && observer.bufferIndex == bufferIndex) + { + return observerIndex; + } + } + + return kInvalidContentsObserverIndex; +} + +void Buffer::addContentsObserver(VertexArray *vertexArray, uint32_t bufferIndex) +{ + if (getContentsObserverIndex(vertexArray, bufferIndex) == kInvalidContentsObserverIndex) + { + mContentsObservers.push_back({vertexArray, bufferIndex}); + } +} + +void Buffer::removeContentsObserver(VertexArray *vertexArray, uint32_t bufferIndex) +{ + size_t foundObserver = getContentsObserverIndex(vertexArray, bufferIndex); + if (foundObserver != kInvalidContentsObserverIndex) + { + size_t lastObserverIndex = mContentsObservers.size() - 1; + if (foundObserver != lastObserverIndex) + { + mContentsObservers[foundObserver] = mContentsObservers[lastObserverIndex]; + } + mContentsObservers.pop_back(); + } +} + +void Buffer::onContentsChange() +{ + for (const ContentsObserver &observer : mContentsObservers) + { + observer.vertexArray->onBufferContentsChange(observer.bufferIndex); + } } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/Caps.h b/gfx/angle/checkout/src/libANGLE/Caps.h --- a/gfx/angle/checkout/src/libANGLE/Caps.h +++ b/gfx/angle/checkout/src/libANGLE/Caps.h @@ -8,23 +8,21 @@ #define LIBANGLE_CAPS_H_ #include "angle_gl.h" #include "libANGLE/Version.h" #include "libANGLE/angletypes.h" +#include "libANGLE/gles_extensions_autogen.h" #include "libANGLE/renderer/Format.h" #include #include #include #include #include namespace gl { - -struct Extensions; - struct TextureCaps { TextureCaps(); TextureCaps(const TextureCaps &other); TextureCaps &operator=(const TextureCaps &other); @@ -90,655 +88,11 @@ // Returns true if all the formats required to support GL_ANGLE_compressed_texture_etc are // present. Does not determine if they are natively supported without decompression. bool DetermineCompressedTextureETCSupport(const TextureCapsMap &textureCaps); -struct Extensions -{ - Extensions(); - Extensions(const Extensions &other); - - Extensions &operator=(const Extensions &other); - - // Generate a vector of supported extension strings - std::vector getStrings() const; - - // Set all texture related extension support based on the supported textures. - // Determines support for: - // GL_OES_packed_depth_stencil - // GL_OES_rgb8_rgba8 - // GL_EXT_texture_format_BGRA8888 - // GL_EXT_color_buffer_half_float, - // GL_OES_texture_half_float, GL_OES_texture_half_float_linear - // GL_OES_texture_float, GL_OES_texture_float_linear - // GL_EXT_texture_rg - // GL_EXT_texture_type_2_10_10_10_REV - // GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3, - // GL_ANGLE_texture_compression_dxt5 - // GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc. - // NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the - // HDR profile cannot be determined from the format enums alone. - // GL_OES_compressed_ETC1_RGB8_texture - // GL_EXT_sRGB - // GL_ANGLE_depth_texture, GL_OES_depth32 - // GL_EXT_color_buffer_float - // GL_EXT_texture_norm16 - // GL_EXT_texture_compression_bptc - // GL_EXT_texture_compression_rgtc - void setTextureExtensionSupport(const TextureCapsMap &textureCaps); - - // indicate if any depth texture extension is available - bool depthTextureAny() const { return (depthTextureANGLE || depthTextureOES); } - - // ES2 Extension support - - // GL_OES_element_index_uint - bool elementIndexUintOES = false; - - // GL_OES_packed_depth_stencil - bool packedDepthStencilOES = false; - - // GL_NV_read_depth - bool readDepthNV = false; - - // GL_NV_read_stencil - bool readStencilNV = false; - - // GL_NV_depth_buffer_float2 - bool depthBufferFloat2NV = false; - - // GL_OES_get_program_binary - bool getProgramBinaryOES = false; - - // GL_OES_rgb8_rgba8 - // Implies that TextureCaps for GL_RGB8 and GL_RGBA8 exist - bool rgb8rgba8OES = false; - - // GL_EXT_texture_format_BGRA8888 - // Implies that TextureCaps for GL_BGRA8 exist - bool textureFormatBGRA8888 = false; - - // GL_EXT_read_format_bgra - bool readFormatBGRA = false; - - // GL_NV_pixel_buffer_object - bool pixelBufferObjectNV = false; - - // GL_ARB_sync - bool glSyncARB = false; - - // GL_OES_mapbuffer and GL_EXT_map_buffer_range - bool mapBufferOES = false; - bool mapBufferRange = false; - - // GL_EXT_color_buffer_half_float - // Together with GL_OES_texture_half_float in a GLES 2.0 context, implies that half-float - // textures are renderable. - bool colorBufferHalfFloat = false; - - // GL_OES_texture_half_float and GL_OES_texture_half_float_linear - // Implies that TextureCaps for GL_RGB16F, GL_RGBA16F, GL_ALPHA32F_EXT, GL_LUMINANCE32F_EXT and - // GL_LUMINANCE_ALPHA32F_EXT exist - bool textureHalfFloat = false; - bool textureHalfFloatLinear = false; - - // GL_OES_texture_float and GL_OES_texture_float_linear - // Implies that TextureCaps for GL_RGB32F, GL_RGBA32F, GL_ALPHA16F_EXT, GL_LUMINANCE16F_EXT and - // GL_LUMINANCE_ALPHA16F_EXT exist - bool textureFloatOES = false; - bool textureFloatLinearOES = false; - - // GL_EXT_texture_rg - // Implies that TextureCaps for GL_R8, GL_RG8 (and floating point R/RG texture formats if - // floating point extensions are also present) exist - bool textureRG = false; - - // GL_EXT_texture_type_2_10_10_10_REV - bool textureFormat2101010REV = false; - - // GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3 and - // GL_ANGLE_texture_compression_dxt5 Implies that TextureCaps exist for - // GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT - // GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE and GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE - bool textureCompressionDXT1 = false; - bool textureCompressionDXT3 = false; - bool textureCompressionDXT5 = false; - - // GL_EXT_texture_compression_s3tc_srgb - // Implies that TextureCaps exist for GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, - // GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, and - // GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT - bool textureCompressionS3TCsRGB = false; - - // GL_KHR_texture_compression_astc_ldr - bool textureCompressionASTCLDRKHR = false; - - // GL_KHR_texture_compression_astc_hdr - bool textureCompressionASTCHDRKHR = false; - - // GL_OES_texture_compression_astc - bool textureCompressionASTCOES = false; - - // GL_KHR_texture_compression_astc_sliced_3d - bool textureCompressionSliced3dASTCKHR = false; - - // GL_EXT_texture_compression_bptc - bool textureCompressionBPTC = false; - - // GL_EXT_texture_compression_rgtc - bool textureCompressionRGTC = false; - - // GL_OES_compressed_ETC1_RGB8_texture - // Implies that TextureCaps for GL_ETC1_RGB8_OES exist - bool compressedETC1RGB8TextureOES = false; - - // GL_EXT_compressed_ETC1_RGB8_sub_texture - bool compressedETC1RGB8SubTexture = false; - - // OES_compressed_ETC2_RGB8_texture - bool compressedETC2RGB8TextureOES = false; - - // OES_compressed_ETC2_sRGB8_texture - bool compressedETC2sRGB8TextureOES = false; - - // OES_compressed_ETC2_punchthroughA_RGBA8_texture - bool compressedETC2PunchthroughARGB8TextureOES = false; - - // OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture - bool compressedETC2PunchthroughAsRGB8AlphaTextureOES = false; - - // OES_compressed_ETC2_RGBA8_texture - bool compressedETC2RGBA8TextureOES = false; - - // OES_compressed_ETC2_sRGB8_alpha8_texture - bool compressedETC2sRGB8Alpha8TextureOES = false; - - // OES_compressed_EAC_R11_unsigned_texture - bool compressedEACR11UnsignedTextureOES = false; - - // OES_compressed_EAC_R11_signed_texture - bool compressedEACR11SignedTextureOES = false; - - // OES_compressed_EAC_RG11_unsigned_texture - bool compressedEACRG11UnsignedTextureOES = false; - - // OES_compressed_EAC_RG11_signed_texture - bool compressedEACRG11SignedTextureOES = false; - - // ANGLE_compressed_texture_etc - // ONLY exposed if ETC texture formats are natively supported without decompression - // Backends should enable this extension explicitly. It is not enabled with - // setTextureExtensionSupport, use DetermineCompressedTextureETCSupport to check if all of the - // individual formats required to support this extension are available. - bool compressedTextureETC = false; - - // GL_IMG_texture_compression_pvrtc - bool compressedTexturePVRTC = false; - - // GL_EXT_pvrtc_sRGB - bool compressedTexturePVRTCsRGB = false; - - // GL_EXT_sRGB - // Implies that TextureCaps for GL_SRGB8_ALPHA8 and GL_SRGB8 exist - // TODO: Don't advertise this extension in ES3 - bool sRGB = false; - - // GL_EXT_texture_sRGB_R8 - bool sRGBR8EXT = false; - - // GL_ANGLE_depth_texture - bool depthTextureANGLE = false; - - // OES_depth_texture - bool depthTextureOES = false; - - // GL_OES_depth_texture_cube_map - bool depthTextureCubeMapOES = false; - - // GL_OES_depth24 - // Allows DEPTH_COMPONENT24_OES as a valid Renderbuffer format. - bool depth24OES = false; - - // GL_OES_depth32 - // Allows DEPTH_COMPONENT32_OES as a valid Renderbuffer format. - bool depth32OES = false; - - // GL_OES_texture_3D - bool texture3DOES = false; - - // GL_EXT_texture_storage - bool textureStorage = false; - - // GL_OES_texture_npot - bool textureNPOTOES = false; - - // GL_EXT_draw_buffers - bool drawBuffers = false; - - // GL_EXT_draw_buffers_indexed - bool drawBuffersIndexedEXT = false; - - // GL_OES_draw_buffers_indexed - bool drawBuffersIndexedOES = false; - - // Any version of the draw_buffers_indexed - bool drawBuffersIndexedAny() const { return (drawBuffersIndexedEXT || drawBuffersIndexedOES); } - - // GL_EXT_texture_filter_anisotropic - bool textureFilterAnisotropic = false; - GLfloat maxTextureAnisotropy = 0.0f; - - // GL_EXT_occlusion_query_boolean - bool occlusionQueryBoolean = false; - - // GL_NV_fence - bool fenceNV = false; - - // GL_EXT_disjoint_timer_query - bool disjointTimerQuery = false; - GLuint queryCounterBitsTimeElapsed = 0; - GLuint queryCounterBitsTimestamp = 0; - - // GL_EXT_robustness - bool robustness = false; - - // GL_KHR_robust_buffer_access_behavior - bool robustBufferAccessBehavior = false; - - // GL_EXT_blend_minmax - bool blendMinMax = false; - - // GL_ANGLE_framebuffer_blit - bool framebufferBlitANGLE = false; - // GL_NV_framebuffer_blit - bool framebufferBlitNV = false; - // Any version of the framebuffer_blit extension - bool framebufferBlitAny() const { return (framebufferBlitANGLE || framebufferBlitNV); } - - // GL_ANGLE_framebuffer_multisample - bool framebufferMultisample = false; - - // GL_EXT_multisampled_render_to_texture - bool multisampledRenderToTexture = false; - - // GL_EXT_multisampled_render_to_texture2 - bool multisampledRenderToTexture2 = false; - - // GL_ANGLE_instanced_arrays - bool instancedArraysANGLE = false; - // GL_EXT_instanced_arrays - bool instancedArraysEXT = false; - // Any version of the instanced arrays extension - bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); } - - // GL_ANGLE_pack_reverse_row_order - bool packReverseRowOrder = false; - - // GL_OES_standard_derivatives - bool standardDerivativesOES = false; - - // GL_EXT_shader_texture_lod - bool shaderTextureLOD = false; - - // GL_EXT_shader_framebuffer_fetch_non_coherent - bool shaderFramebufferFetchNonCoherentEXT = false; - - // GL_EXT_frag_depth - bool fragDepth = false; - - // OVR_multiview - bool multiview = false; - GLuint maxViews = 1; - - // OVR_multiview2 - bool multiview2 = false; - - // GL_ANGLE_texture_usage - bool textureUsage = false; - - // GL_ANGLE_translated_shader_source - bool translatedShaderSource = false; - - // GL_OES_fbo_render_mipmap - bool fboRenderMipmapOES = false; - - // GL_EXT_discard_framebuffer - bool discardFramebuffer = false; - - // EXT_debug_marker - bool debugMarker = false; - - // EXT_debug_label - bool debugLabel = false; - - // GL_OES_EGL_image - bool eglImageOES = false; - - // GL_OES_EGL_image_external - bool eglImageExternalOES = false; - - // GL_OES_EGL_image_external_essl3 - bool eglImageExternalEssl3OES = false; - - // GL_EXT_EGL_image_external_wrap_modes - bool eglImageExternalWrapModesEXT = false; - - // GL_OES_EGL_sync - bool eglSyncOES = false; - - // GL_EXT_memory_object - bool memoryObject = false; - - // GL_EXT_memory_object_fd - bool memoryObjectFd = false; - - // GL_ANGLE_memory_object_flags - bool memoryObjectFlagsANGLE = false; - - // GL_ANGLE_memory_object_fuchsia - bool memoryObjectFuchsiaANGLE = false; - - // GL_EXT_semaphore - bool semaphore = false; - - // GL_EXT_semaphore_fd - bool semaphoreFd = false; - - // GL_ANGLE_semaphore_fuchsia - bool semaphoreFuchsiaANGLE = false; - - // NV_EGL_stream_consumer_external - bool eglStreamConsumerExternalNV = false; - - // EXT_unpack_subimage - bool unpackSubimage = false; - - // NV_pack_subimage - bool packSubimage = false; - - // GL_NV_shader_noperspective_interpolation - bool noperspectiveInterpolationNV = false; - - // GL_OES_vertex_half_float - bool vertexHalfFloatOES = false; - - // GL_OES_vertex_array_object - bool vertexArrayObjectOES = false; - - // GL_OES_vertex_type_10_10_10_2 - bool vertexAttribType1010102OES = false; - - // GL_KHR_debug - bool debug = false; - GLuint maxDebugMessageLength = 0; - GLuint maxDebugLoggedMessages = 0; - GLuint maxDebugGroupStackDepth = 0; - GLuint maxLabelLength = 0; - - // KHR_no_error - bool noError = false; - - // GL_ANGLE_lossy_etc_decode - bool lossyETCDecode = false; - - // GL_CHROMIUM_bind_uniform_location - bool bindUniformLocation = false; - - // GL_CHROMIUM_sync_query - bool syncQuery = false; - - // GL_CHROMIUM_copy_texture - bool copyTexture = false; - - // GL_CHROMIUM_copy_compressed_texture - bool copyCompressedTexture = false; - - // GL_ANGLE_copy_texture_3d - bool copyTexture3d = false; - - // GL_ANGLE_webgl_compatibility - bool webglCompatibility = false; - - // GL_ANGLE_request_extension - bool requestExtension = false; - - // GL_CHROMIUM_bind_generates_resource - bool bindGeneratesResource = false; - - // GL_ANGLE_robust_client_memory - bool robustClientMemory = false; - - // GL_OES_texture_border_clamp - bool textureBorderClampOES = false; - - // GL_EXT_texture_border_clamp - bool textureBorderClampEXT = false; - - // Any version of the texture border clamp extension - bool textureBorderClampAny() const { return (textureBorderClampOES || textureBorderClampEXT); } - - // GL_EXT_texture_sRGB_decode - bool textureSRGBDecode = false; - - // GL_EXT_texture_format_sRGB_override - bool textureSRGBOverride = false; - - // GL_EXT_sRGB_write_control - bool sRGBWriteControl = false; - - // GL_CHROMIUM_color_buffer_float_rgb - bool colorBufferFloatRGB = false; - - // GL_CHROMIUM_color_buffer_float_rgba - bool colorBufferFloatRGBA = false; - - // GL_EXT_EGL_image_array - bool eglImageArray = false; - - // ES3 Extension support - - // GL_EXT_color_buffer_float - bool colorBufferFloat = false; - - // GL_EXT_multisample_compatibility. - // written against ES 3.1 but can apply to earlier versions. - bool multisampleCompatibility = false; - - // GL_CHROMIUM_framebuffer_mixed_samples - bool framebufferMixedSamples = false; - - // GL_EXT_texture_norm16 - // written against ES 3.1 but can apply to ES 3.0 as well. - bool textureNorm16 = false; - - // GL_OES_surfaceless_context - bool surfacelessContextOES = false; - - // GL_ANGLE_client_arrays - bool clientArrays = false; - - // GL_ANGLE_robust_resource_initialization - bool robustResourceInitialization = false; - - // GL_ANGLE_program_cache_control - bool programCacheControl = false; - - // GL_ANGLE_texture_rectangle - bool textureRectangle = false; - - // GL_EXT_geometry_shader - bool geometryShader = false; - - // GLES1 emulation: GLES1 extensions - // GL_OES_point_size_array - bool pointSizeArrayOES = false; - - // GL_OES_texture_cube_map - bool textureCubeMapOES = false; - - // GL_OES_point_sprite - bool pointSpriteOES = false; - - // GL_OES_draw_texture - bool drawTextureOES = false; - - // GL_OES_framebuffer_object - bool framebufferObjectOES = false; - - // EGL_ANGLE_explicit_context GL subextensions - // GL_ANGLE_explicit_context_gles1 - bool explicitContextGles1 = false; - // GL_ANGLE_explicit_context - bool explicitContext = false; - - // GL_KHR_parallel_shader_compile - bool parallelShaderCompile = false; - - // GL_EXT_separate_shader_objects - bool separateShaderObjects = false; - - // GL_OES_texture_storage_multisample_2d_array - bool textureStorageMultisample2DArrayOES = false; - - // GL_ANGLE_multiview_multisample - bool multiviewMultisample = false; - - // GL_KHR_blend_equation_advanced - bool blendEquationAdvancedKHR = false; - - // GL_EXT_blend_func_extended - bool blendFuncExtended = false; - GLuint maxDualSourceDrawBuffers = 0; - - // GL_EXT_float_blend - bool floatBlend = false; - - // GL_ANGLE_memory_size - bool memorySize = false; - - // GL_ANGLE_texture_multisample - bool textureMultisample = false; - - // GL_ANGLE_multi_draw - bool multiDraw = false; - - // GL_ANGLE_provoking_vertex - bool provokingVertex = false; - - // GL_CHROMIUM_texture_filtering_hint - bool textureFilteringCHROMIUM = false; - - // GL_CHROMIUM_lose_context - bool loseContextCHROMIUM = false; - - // GL_ANGLE_texture_external_update - bool textureExternalUpdateANGLE = false; - - // GL_ANGLE_base_vertex_base_instance - bool baseVertexBaseInstance = false; - - // GL_ANGLE_get_image - bool getImageANGLE = false; - - // GL_OES_draw_elements_base_vertex - bool drawElementsBaseVertexOES = false; - // GL_EXT_draw_elements_base_vertex - bool drawElementsBaseVertexEXT = false; - // Any version of the base vertex extension - bool drawElementsBaseVertexAny() const - { - return (drawElementsBaseVertexOES || drawElementsBaseVertexEXT); - } - - // GL_EXT_shader_non_constant_global_initializers - bool shaderNonConstGlobalInitializersEXT = false; - - // GL_OES_shader_io_blocks - bool shaderIoBlocksOES = false; - // GL_EXT_shader_io_blocks - bool shaderIoBlocksEXT = false; - // Any version of shader io block extension - bool shaderIoBlocksAny() const { return (shaderIoBlocksOES || shaderIoBlocksEXT); } - - // GL_EXT_gpu_shader5 - bool gpuShader5EXT = false; - // WEBGL_video_texture - bool webglVideoTexture = false; - - // GL_APPLE_clip_distance - bool clipDistanceAPPLE = false; - - // GL_EXT_clip_control - bool clipControlEXT = false; - - // GL_OES_texture_cube_map_array - bool textureCubeMapArrayOES = false; - // GL_EXT_texture_cube_map_array - bool textureCubeMapArrayEXT = false; - // Any version of the texture cube map array extension - bool textureCubeMapArrayAny() const - { - return (textureCubeMapArrayOES || textureCubeMapArrayEXT); - } - - // GL_EXT_shadow_samplers - bool shadowSamplersEXT = false; - - // GL_EXT_buffer_storage - bool bufferStorageEXT = false; - - // GL_EXT_external_buffer - bool externalBufferEXT = false; - - // GL_OES_texture_stencil8 - bool stencilIndex8 = false; - - // GL_OES_sample_shading - bool sampleShadingOES = false; - - // OES_shader_multisample_interpolation - bool multisampleInterpolationOES = false; - - // GL_OES_shader_image_atomic - bool shaderImageAtomicOES = false; - - // GL_OES_sample_variables - bool sampleVariablesOES = false; - - // GL_NV_robustness_video_memory_purge - bool robustnessVideoMemoryPurgeNV = false; - - // GL_ANGLE_get_tex_level_parameter - bool getTexLevelParameterANGLE = false; - - // GL_EXT_tessellation_shader - bool tessellationShaderEXT = false; - - // GL_EXT_copy_image - bool copyImageEXT = false; - - // GL_OES_texture_buffer - bool textureBufferOES = false; - // GL_EXT_texture_buffer - bool textureBufferEXT = false; - // Any version of the texture buffer extension - bool textureBufferAny() const { return (textureBufferOES || textureBufferEXT); } - - // GL_EXT_YUV_target - bool yuvTargetEXT = false; - - // GL_EXT_clip_cull_distance - bool clipCullDistanceEXT = false; - - // GL_ANGLE_get_serialized_context_string - bool getSerializedContextStringANGLE = false; - - // GL_EXT_primitive_bounding_box - bool primitiveBoundingBoxEXT = false; -}; - -// Pointer to a boolean memeber of the Extensions struct +// Pointer to a boolean member of the Extensions struct using ExtensionBool = bool Extensions::*; struct ExtensionInfo { // If this extension can be enabled or disabled with glRequestExtension @@ -795,10 +149,13 @@ // PVRTC1 textures must be squares. bool squarePvrtc1 = false; // ETC1 texture support is emulated. bool emulatedEtc1 = false; + + // No compressed TEXTURE_3D support. + bool noCompressedTexture3D = false; }; struct TypePrecision { TypePrecision(); @@ -979,10 +336,29 @@ GLint maxTessEvaluationInputComponents = 0; GLint maxTessEvaluationOutputComponents = 0; GLuint subPixelBits = 4; + // GL_EXT_blend_func_extended + GLuint maxDualSourceDrawBuffers = 0; + + // GL_EXT_texture_filter_anisotropic + GLfloat maxTextureAnisotropy = 0.0f; + + // GL_EXT_disjoint_timer_query + GLuint queryCounterBitsTimeElapsed = 0; + GLuint queryCounterBitsTimestamp = 0; + + // OVR_multiview + GLuint maxViews = 1; + + // GL_KHR_debug + GLuint maxDebugMessageLength = 0; + GLuint maxDebugLoggedMessages = 0; + GLuint maxDebugGroupStackDepth = 0; + GLuint maxLabelLength = 0; + // GL_APPLE_clip_distance/GL_EXT_clip_cull_distance GLuint maxClipDistances = 0; GLuint maxCullDistances = 0; GLuint maxCombinedClipAndCullDistances = 0; @@ -1000,10 +376,15 @@ GLfloat maxSmoothLineWidth = 0.0f; // ES 3.2 Table 20.41: Implementation Dependent Values (cont.) GLint maxTextureBufferSize = 0; GLint textureBufferOffsetAlignment = 0; + + // Direct-to-metal constants: + GLuint driverUniformsBindingIndex = 0; + GLuint defaultUniformsBindingIndex = 0; + GLuint UBOArgumentBufferBindingIndex = 0; }; Caps GenerateMinimumCaps(const Version &clientVersion, const Extensions &extensions); } // namespace gl @@ -1080,13 +461,10 @@ bool glRenderbufferImage = false; // EGL_KHR_get_all_proc_addresses bool getAllProcAddresses = false; - // EGL_ANGLE_flexible_surface_compatibility - bool flexibleSurfaceCompatibility = false; - // EGL_ANGLE_direct_composition bool directComposition = false; // EGL_ANGLE_windows_ui_composition bool windowsUIComposition = false; @@ -1141,14 +519,14 @@ // EGL_ANGLE_create_context_client_arrays bool createContextClientArrays = false; // EGL_ANGLE_program_cache_control - bool programCacheControl = false; + bool programCacheControlANGLE = false; // EGL_ANGLE_robust_resource_initialization - bool robustResourceInitialization = false; + bool robustResourceInitializationANGLE = false; // EGL_ANGLE_iosurface_client_buffer bool iosurfaceClientBuffer = false; // EGL_ANGLE_metal_texture_client_buffer @@ -1244,10 +622,22 @@ // EGL_ANGLE_external_context_and_surface bool externalContextAndSurface = false; // EGL_EXT_buffer_age bool bufferAgeEXT = false; + + // EGL_KHR_mutable_render_buffer + bool mutableRenderBufferKHR = false; + + // EGL_EXT_protected_content + bool protectedContentEXT = false; + + // EGL_ANGLE_create_surface_swap_interval + bool createSurfaceSwapIntervalANGLE = false; + + // EGL_ANGLE_context_virtualization + bool contextVirtualizationANGLE = false; }; struct DeviceExtensions { DeviceExtensions(); @@ -1264,10 +654,13 @@ // EGL_ANGLE_device_eagl bool deviceEAGL = false; // EGL_ANGLE_device_metal bool deviceMetal = false; + + // EGL_ANGLE_device_vulkan + bool deviceVulkan = false; }; struct ClientExtensions { ClientExtensions(); @@ -1304,13 +697,10 @@ bool platformANGLEVulkan = false; // EGL_ANGLE_platform_angle_metal bool platformANGLEMetal = false; - // EGL_ANGLE_platform_angle_context_virtualization - bool platformANGLEContextVirtualization = false; - // EGL_ANGLE_platform_angle_device_context_volatile_eagl bool platformANGLEDeviceContextVolatileEagl = false; // EGL_ANGLE_platform_angle_device_context_volatile_cgl bool platformANGLEDeviceContextVolatileCgl = false; @@ -1331,13 +721,10 @@ bool clientGetAllProcAddresses = false; // EGL_KHR_debug bool debug = false; - // EGL_ANGLE_explicit_context - bool explicitContext = false; - // EGL_ANGLE_feature_control bool featureControlANGLE = false; // EGL_ANGLE_platform_angle_device_type_swiftshader bool platformANGLEDeviceTypeSwiftShader = false; diff --git a/gfx/angle/checkout/src/libANGLE/Caps.cpp b/gfx/angle/checkout/src/libANGLE/Caps.cpp --- a/gfx/angle/checkout/src/libANGLE/Caps.cpp +++ b/gfx/angle/checkout/src/libANGLE/Caps.cpp @@ -4,11 +4,10 @@ // found in the LICENSE file. // #include "libANGLE/Caps.h" -#include "anglebase/no_destructor.h" #include "common/angleutils.h" #include "common/debug.h" #include "libANGLE/formatutils.h" @@ -637,31 +636,53 @@ constexpr GLenum requiredFilterFormats[] = {GL_SR8_EXT}; return GetFormatSupport(textureCaps, requiredFilterFormats, true, true, false, false, false); } +// Check for GL_EXT_texture_sRGB_RG8 support +static bool DetermineSRGBRG8TextureSupport(const TextureCapsMap &textureCaps) +{ + constexpr GLenum requiredFilterFormats[] = {GL_SRG8_EXT}; + + return GetFormatSupport(textureCaps, requiredFilterFormats, true, true, false, false, false); +} + // Check for GL_ANGLE_depth_texture support static bool DetermineDepthTextureANGLESupport(const TextureCapsMap &textureCaps) { constexpr GLenum requiredFormats[] = { GL_DEPTH_COMPONENT16, +#if !defined(ANGLE_PLATFORM_IOS) && \ + (!defined(ANGLE_PLATFORM_MACCATALYST) || !defined(ANGLE_CPU_ARM64)) + // anglebug.com/6082 + // TODO(dino): Temporarily Removing the need for GL_DEPTH_COMPONENT32_OES + // because it is not supported on iOS. + // TODO(dino): I think this needs to be a runtime check when running an iOS app on Mac. GL_DEPTH_COMPONENT32_OES, +#endif GL_DEPTH24_STENCIL8_OES, }; - return GetFormatSupport(textureCaps, requiredFormats, true, true, true, false, false); + return GetFormatSupport(textureCaps, requiredFormats, true, false, true, false, false); } // Check for GL_OES_depth_texture support static bool DetermineDepthTextureOESSupport(const TextureCapsMap &textureCaps) { constexpr GLenum requiredFormats[] = { GL_DEPTH_COMPONENT16, +#if !defined(ANGLE_PLATFORM_IOS) && \ + (!defined(ANGLE_PLATFORM_MACCATALYST) || !defined(ANGLE_CPU_ARM64)) + // anglebug.com/6082 + // TODO(dino): Temporarily Removing the need for GL_DEPTH_COMPONENT32_OES + // because it is not supported on iOS. + // TODO(dino): I think this needs to be a runtime check when running an iOS app on Mac. GL_DEPTH_COMPONENT32_OES, +#endif }; - return GetFormatSupport(textureCaps, requiredFormats, true, true, true, true, false); + return GetFormatSupport(textureCaps, requiredFormats, true, false, true, true, false); } // Check for GL_OES_depth24 static bool DetermineDepth24OESSupport(const TextureCapsMap &textureCaps) { @@ -818,291 +839,66 @@ return GetFormatSupport(textureCaps, requiredFormats, false, false, true, false, false); } void Extensions::setTextureExtensionSupport(const TextureCapsMap &textureCaps) { - // TODO(ynovikov): rgb8rgba8OES, colorBufferHalfFloat, textureHalfFloat, textureHalfFloatLinear, - // textureFloatOES, textureFloatLinearOES, textureRG, sRGB, colorBufferFloatRGB, - // colorBufferFloatRGBA and colorBufferFloat were verified. Verify the rest. - packedDepthStencilOES = DeterminePackedDepthStencilSupport(textureCaps); - rgb8rgba8OES = DetermineRGB8AndRGBA8TextureSupport(textureCaps); - readDepthNV = DetermineReadDepthSupport(textureCaps); - readStencilNV = DetermineReadStencilSupport(textureCaps); - depthBufferFloat2NV = DetermineDepthBufferFloat2Support(textureCaps); - textureFormatBGRA8888 = DetermineBGRA8TextureSupport(textureCaps); - readFormatBGRA = DetermineBGRAReadFormatSupport(textureCaps); - textureHalfFloat = DetermineHalfFloatTextureSupport(textureCaps); - textureHalfFloatLinear = - DetermineHalfFloatTextureFilteringSupport(textureCaps, textureHalfFloat); + // TODO(ynovikov): rgb8Rgba8OES, colorBufferHalfFloatEXT, textureHalfFloatOES, + // textureHalfFloatLinearOES, textureFloatOES, textureFloatLinearOES, textureRgEXT, sRGB, + // colorBufferFloatRgbCHROMIUM, colorBufferFloatRgbaCHROMIUM and colorBufferFloatEXT were + // verified. Verify the rest. + packedDepthStencilOES = DeterminePackedDepthStencilSupport(textureCaps); + rgb8Rgba8OES = DetermineRGB8AndRGBA8TextureSupport(textureCaps); + readDepthNV = DetermineReadDepthSupport(textureCaps); + readStencilNV = DetermineReadStencilSupport(textureCaps); + depthBufferFloat2NV = DetermineDepthBufferFloat2Support(textureCaps); + textureFormatBGRA8888EXT = DetermineBGRA8TextureSupport(textureCaps); + readFormatBgraEXT = DetermineBGRAReadFormatSupport(textureCaps); + textureHalfFloatOES = DetermineHalfFloatTextureSupport(textureCaps); + textureHalfFloatLinearOES = + DetermineHalfFloatTextureFilteringSupport(textureCaps, textureHalfFloatOES); textureFloatOES = DetermineFloatTextureSupport(textureCaps); textureFloatLinearOES = DetermineFloatTextureFilteringSupport(textureCaps, textureFloatOES); - textureRG = DetermineRGTextureSupport(textureCaps, textureHalfFloat, textureFloatOES); - colorBufferHalfFloat = textureHalfFloat && DetermineColorBufferHalfFloatSupport(textureCaps); - textureFormat2101010REV = DetermineTextureFormat2101010Support(textureCaps); - textureCompressionDXT1 = DetermineDXT1TextureSupport(textureCaps); - textureCompressionDXT3 = DetermineDXT3TextureSupport(textureCaps); - textureCompressionDXT5 = DetermineDXT5TextureSupport(textureCaps); - textureCompressionS3TCsRGB = DetermineS3TCsRGBTextureSupport(textureCaps); - textureCompressionASTCLDRKHR = DetermineASTCLDRTextureSupport(textureCaps); - textureCompressionASTCOES = DetermineASTCOESTExtureSupport(textureCaps); + textureRgEXT = DetermineRGTextureSupport(textureCaps, textureHalfFloatOES, textureFloatOES); + colorBufferHalfFloatEXT = + textureHalfFloatOES && DetermineColorBufferHalfFloatSupport(textureCaps); + textureType2101010REVEXT = DetermineTextureFormat2101010Support(textureCaps); + textureCompressionDxt1EXT = DetermineDXT1TextureSupport(textureCaps); + textureCompressionDxt3ANGLE = DetermineDXT3TextureSupport(textureCaps); + textureCompressionDxt5ANGLE = DetermineDXT5TextureSupport(textureCaps); + textureCompressionS3tcSrgbEXT = DetermineS3TCsRGBTextureSupport(textureCaps); + textureCompressionAstcLdrKHR = DetermineASTCLDRTextureSupport(textureCaps); + textureCompressionAstcOES = DetermineASTCOESTExtureSupport(textureCaps); compressedETC1RGB8TextureOES = DetermineETC1RGB8TextureSupport(textureCaps); compressedETC2RGB8TextureOES = DetermineETC2RGB8TextureSupport(textureCaps); - compressedETC2sRGB8TextureOES = DetermineETC2sRGB8TextureSupport(textureCaps); - compressedETC2PunchthroughARGB8TextureOES = + compressedETC2SRGB8TextureOES = DetermineETC2sRGB8TextureSupport(textureCaps); + compressedETC2PunchthroughARGBA8TextureOES = DetermineETC2PunchthroughARGB8TextureSupport(textureCaps); - compressedETC2PunchthroughAsRGB8AlphaTextureOES = + compressedETC2PunchthroughASRGB8AlphaTextureOES = DetermineETC2PunchthroughAsRGB8AlphaTextureSupport(textureCaps); compressedETC2RGBA8TextureOES = DetermineETC2RGBA8TextureSupport(textureCaps); - compressedETC2sRGB8Alpha8TextureOES = DetermineETC2sRGB8Alpha8TextureSupport(textureCaps); + compressedETC2SRGB8Alpha8TextureOES = DetermineETC2sRGB8Alpha8TextureSupport(textureCaps); compressedEACR11UnsignedTextureOES = DetermineEACR11UnsignedTextureSupport(textureCaps); compressedEACR11SignedTextureOES = DetermineEACR11SignedTextureSupport(textureCaps); compressedEACRG11UnsignedTextureOES = DetermineEACRG11UnsignedTextureSupport(textureCaps); compressedEACRG11SignedTextureOES = DetermineEACRG11SignedTextureSupport(textureCaps); - sRGB = DetermineSRGBTextureSupport(textureCaps); - sRGBR8EXT = DetermineSRGBR8TextureSupport(textureCaps); + sRGBEXT = DetermineSRGBTextureSupport(textureCaps); + textureSRGBR8EXT = DetermineSRGBR8TextureSupport(textureCaps); + textureSRGBRG8EXT = DetermineSRGBRG8TextureSupport(textureCaps); depthTextureANGLE = DetermineDepthTextureANGLESupport(textureCaps); depthTextureOES = DetermineDepthTextureOESSupport(textureCaps); depth24OES = DetermineDepth24OESSupport(textureCaps); depth32OES = DetermineDepth32Support(textureCaps); - colorBufferFloatRGB = DetermineColorBufferFloatRGBSupport(textureCaps); - colorBufferFloatRGBA = DetermineColorBufferFloatRGBASupport(textureCaps); - colorBufferFloat = DetermineColorBufferFloatSupport(textureCaps); - floatBlend = DetermineFloatBlendSupport(textureCaps); - textureNorm16 = DetermineTextureNorm16Support(textureCaps); - textureCompressionRGTC = DetermineRGTCTextureSupport(textureCaps); - textureCompressionBPTC = DetermineBPTCTextureSupport(textureCaps); - compressedTexturePVRTC = DeterminePVRTCTextureSupport(textureCaps); - compressedTexturePVRTCsRGB = DeterminePVRTCsRGBTextureSupport(textureCaps); - stencilIndex8 = DetermineStencilIndex8Support(textureCaps); -} - -const ExtensionInfoMap &GetExtensionInfoMap() -{ - auto buildExtensionInfoMap = []() { - auto enableableExtension = [](ExtensionBool member) { - ExtensionInfo info; - info.Requestable = true; - info.ExtensionsMember = member; - return info; - }; - - auto enableableDisablableExtension = [&](ExtensionBool member) { - ExtensionInfo info = enableableExtension(member); - info.Disablable = true; - return info; - }; - - auto esOnlyExtension = [](ExtensionBool member) { - ExtensionInfo info; - info.ExtensionsMember = member; - return info; - }; - - // clang-format off - ExtensionInfoMap map; - map["GL_OES_element_index_uint"] = enableableExtension(&Extensions::elementIndexUintOES); - map["GL_OES_packed_depth_stencil"] = esOnlyExtension(&Extensions::packedDepthStencilOES); - map["GL_OES_get_program_binary"] = enableableExtension(&Extensions::getProgramBinaryOES); - map["GL_OES_rgb8_rgba8"] = enableableExtension(&Extensions::rgb8rgba8OES); - map["GL_NV_read_depth"] = enableableExtension(&Extensions::readDepthNV); - map["GL_NV_read_stencil"] = enableableExtension(&Extensions::readStencilNV); - map["GL_NV_depth_buffer_float2"] = enableableExtension(&Extensions::depthBufferFloat2NV); - map["GL_EXT_texture_format_BGRA8888"] = enableableExtension(&Extensions::textureFormatBGRA8888); - map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureFormat2101010REV); - map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBGRA); - map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObjectNV); - map["GL_ARB_sync"] = enableableExtension(&Extensions::glSyncARB); - map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapBufferOES); - map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRange); - map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloat); - map["GL_OES_texture_half_float"] = enableableExtension(&Extensions::textureHalfFloat); - map["GL_OES_texture_half_float_linear"] = enableableExtension(&Extensions::textureHalfFloatLinear); - map["GL_OES_texture_float"] = enableableExtension(&Extensions::textureFloatOES); - map["GL_OES_texture_float_linear"] = enableableExtension(&Extensions::textureFloatLinearOES); - map["GL_EXT_texture_rg"] = enableableExtension(&Extensions::textureRG); - map["GL_EXT_texture_compression_dxt1"] = enableableExtension(&Extensions::textureCompressionDXT1); - map["GL_ANGLE_texture_compression_dxt3"] = enableableExtension(&Extensions::textureCompressionDXT3); - map["GL_ANGLE_texture_compression_dxt5"] = enableableExtension(&Extensions::textureCompressionDXT5); - map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3TCsRGB); - map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionASTCLDRKHR); - map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionASTCHDRKHR); - map["GL_KHR_texture_compression_astc_sliced_3d"] = enableableExtension(&Extensions::textureCompressionSliced3dASTCKHR); - map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionASTCOES); - map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBPTC); - map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRGTC); - map["GL_OES_compressed_ETC1_RGB8_texture"] = enableableExtension(&Extensions::compressedETC1RGB8TextureOES); - map["GL_EXT_compressed_ETC1_RGB8_sub_texture"] = enableableExtension(&Extensions::compressedETC1RGB8SubTexture); - map["GL_OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8TextureOES); - map["GL_OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8TextureOES); - map["GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGB8TextureOES); - map["GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughAsRGB8AlphaTextureOES); - map["GL_OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8TextureOES); - map["GL_OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2sRGB8Alpha8TextureOES); - map["GL_OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTextureOES); - map["GL_OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTextureOES); - map["GL_OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTextureOES); - map["GL_OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTextureOES); - map["GL_ANGLE_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureETC); - map["GL_IMG_texture_compression_pvrtc"] = enableableExtension(&Extensions::compressedTexturePVRTC); - map["GL_EXT_pvrtc_sRGB"] = enableableExtension(&Extensions::compressedTexturePVRTCsRGB); - map["GL_EXT_sRGB"] = enableableExtension(&Extensions::sRGB); - map["GL_EXT_texture_sRGB_R8"] = enableableExtension(&Extensions::sRGBR8EXT); - map["GL_ANGLE_depth_texture"] = esOnlyExtension(&Extensions::depthTextureANGLE); - map["GL_OES_depth_texture"] = esOnlyExtension(&Extensions::depthTextureOES); - map["GL_OES_depth_texture_cube_map"] = enableableExtension(&Extensions::depthTextureCubeMapOES); - map["GL_OES_depth24"] = esOnlyExtension(&Extensions::depth24OES); - map["GL_OES_depth32"] = esOnlyExtension(&Extensions::depth32OES); - map["GL_OES_texture_3D"] = enableableExtension(&Extensions::texture3DOES); - map["GL_EXT_texture_storage"] = enableableExtension(&Extensions::textureStorage); - map["GL_OES_texture_npot"] = enableableExtension(&Extensions::textureNPOTOES); - map["GL_EXT_draw_buffers"] = enableableExtension(&Extensions::drawBuffers); - map["GL_EXT_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedEXT); - map["GL_OES_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedOES); - map["GL_EXT_texture_filter_anisotropic"] = enableableExtension(&Extensions::textureFilterAnisotropic); - map["GL_EXT_occlusion_query_boolean"] = enableableExtension(&Extensions::occlusionQueryBoolean); - map["GL_NV_fence"] = esOnlyExtension(&Extensions::fenceNV); - map["GL_EXT_disjoint_timer_query"] = enableableExtension(&Extensions::disjointTimerQuery); - map["GL_EXT_robustness"] = esOnlyExtension(&Extensions::robustness); - map["GL_KHR_robust_buffer_access_behavior"] = esOnlyExtension(&Extensions::robustBufferAccessBehavior); - map["GL_EXT_blend_minmax"] = enableableExtension(&Extensions::blendMinMax); - map["GL_ANGLE_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitANGLE); - map["GL_NV_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitNV); - map["GL_ANGLE_framebuffer_multisample"] = enableableExtension(&Extensions::framebufferMultisample); - map["GL_EXT_multisampled_render_to_texture"] = enableableExtension(&Extensions::multisampledRenderToTexture); - map["GL_EXT_multisampled_render_to_texture2"] = enableableExtension(&Extensions::multisampledRenderToTexture2); - map["GL_ANGLE_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysANGLE); - map["GL_EXT_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysEXT); - map["GL_ANGLE_pack_reverse_row_order"] = enableableExtension(&Extensions::packReverseRowOrder); - map["GL_OES_standard_derivatives"] = enableableExtension(&Extensions::standardDerivativesOES); - map["GL_EXT_shader_texture_lod"] = enableableExtension(&Extensions::shaderTextureLOD); - map["GL_EXT_frag_depth"] = enableableExtension(&Extensions::fragDepth); - map["GL_OVR_multiview"] = enableableExtension(&Extensions::multiview); - map["GL_OVR_multiview2"] = enableableExtension(&Extensions::multiview2); - map["GL_ANGLE_texture_usage"] = enableableExtension(&Extensions::textureUsage); - map["GL_ANGLE_translated_shader_source"] = esOnlyExtension(&Extensions::translatedShaderSource); - map["GL_OES_fbo_render_mipmap"] = enableableExtension(&Extensions::fboRenderMipmapOES); - map["GL_EXT_discard_framebuffer"] = esOnlyExtension(&Extensions::discardFramebuffer); - map["GL_EXT_debug_label"] = esOnlyExtension(&Extensions::debugLabel); - map["GL_EXT_debug_marker"] = esOnlyExtension(&Extensions::debugMarker); - map["GL_OES_EGL_image"] = enableableExtension(&Extensions::eglImageOES); - map["GL_OES_EGL_image_external"] = enableableExtension(&Extensions::eglImageExternalOES); - map["GL_OES_EGL_image_external_essl3"] = enableableExtension(&Extensions::eglImageExternalEssl3OES); - map["GL_EXT_EGL_image_external_wrap_modes"] = enableableExtension(&Extensions::eglImageExternalWrapModesEXT); - map["GL_OES_EGL_sync"] = esOnlyExtension(&Extensions::eglSyncOES); - map["GL_EXT_memory_object"] = enableableExtension(&Extensions::memoryObject); - map["GL_EXT_memory_object_fd"] = enableableExtension(&Extensions::memoryObjectFd); - map["GL_ANGLE_memory_object_flags"] = enableableExtension(&Extensions::memoryObjectFlagsANGLE); - map["GL_ANGLE_memory_object_fuchsia"] = enableableExtension(&Extensions::memoryObjectFuchsiaANGLE); - map["GL_EXT_semaphore"] = enableableExtension(&Extensions::semaphore); - map["GL_EXT_semaphore_fd"] = enableableExtension(&Extensions::semaphoreFd); - map["GL_NV_EGL_stream_consumer_external"] = enableableExtension(&Extensions::eglStreamConsumerExternalNV); - map["GL_NV_shader_noperspective_interpolation"] = enableableExtension(&Extensions::noperspectiveInterpolationNV); - map["GL_ANGLE_semaphore_fuchsia"] = enableableExtension(&Extensions::semaphoreFuchsiaANGLE); - map["GL_EXT_unpack_subimage"] = enableableExtension(&Extensions::unpackSubimage); - map["GL_NV_pack_subimage"] = enableableExtension(&Extensions::packSubimage); - map["GL_EXT_color_buffer_float"] = enableableExtension(&Extensions::colorBufferFloat); - map["GL_OES_vertex_half_float"] = enableableExtension(&Extensions::vertexHalfFloatOES); - map["GL_OES_vertex_array_object"] = enableableExtension(&Extensions::vertexArrayObjectOES); - map["GL_OES_vertex_type_10_10_10_2"] = enableableExtension(&Extensions::vertexAttribType1010102OES); - map["GL_KHR_debug"] = esOnlyExtension(&Extensions::debug); - map["GL_OES_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampOES); - map["GL_EXT_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampEXT); - map["GL_KHR_no_error"] = esOnlyExtension(&Extensions::noError); - map["GL_ANGLE_lossy_etc_decode"] = enableableExtension(&Extensions::lossyETCDecode); - map["GL_CHROMIUM_bind_uniform_location"] = esOnlyExtension(&Extensions::bindUniformLocation); - map["GL_CHROMIUM_sync_query"] = enableableExtension(&Extensions::syncQuery); - map["GL_CHROMIUM_copy_texture"] = esOnlyExtension(&Extensions::copyTexture); - map["GL_CHROMIUM_copy_compressed_texture"] = esOnlyExtension(&Extensions::copyCompressedTexture); - map["GL_ANGLE_copy_texture_3d"] = enableableExtension(&Extensions::copyTexture3d); - map["GL_ANGLE_webgl_compatibility"] = esOnlyExtension(&Extensions::webglCompatibility); - map["GL_ANGLE_request_extension"] = esOnlyExtension(&Extensions::requestExtension); - map["GL_CHROMIUM_bind_generates_resource"] = esOnlyExtension(&Extensions::bindGeneratesResource); - map["GL_ANGLE_robust_client_memory"] = esOnlyExtension(&Extensions::robustClientMemory); - map["GL_EXT_texture_sRGB_decode"] = esOnlyExtension(&Extensions::textureSRGBDecode); - map["GL_EXT_texture_format_sRGB_override"] = esOnlyExtension(&Extensions::textureSRGBOverride); - map["GL_EXT_sRGB_write_control"] = esOnlyExtension(&Extensions::sRGBWriteControl); - map["GL_CHROMIUM_color_buffer_float_rgb"] = enableableExtension(&Extensions::colorBufferFloatRGB); - map["GL_CHROMIUM_color_buffer_float_rgba"] = enableableExtension(&Extensions::colorBufferFloatRGBA); - map["GL_EXT_multisample_compatibility"] = esOnlyExtension(&Extensions::multisampleCompatibility); - map["GL_CHROMIUM_framebuffer_mixed_samples"] = esOnlyExtension(&Extensions::framebufferMixedSamples); - map["GL_EXT_texture_norm16"] = enableableExtension(&Extensions::textureNorm16); - map["GL_OES_surfaceless_context"] = esOnlyExtension(&Extensions::surfacelessContextOES); - map["GL_ANGLE_client_arrays"] = esOnlyExtension(&Extensions::clientArrays); - map["GL_ANGLE_robust_resource_initialization"] = esOnlyExtension(&Extensions::robustResourceInitialization); - map["GL_ANGLE_program_cache_control"] = esOnlyExtension(&Extensions::programCacheControl); - map["GL_ANGLE_texture_rectangle"] = enableableDisablableExtension(&Extensions::textureRectangle); - map["GL_EXT_geometry_shader"] = enableableExtension(&Extensions::geometryShader); - map["GL_ANGLE_explicit_context_gles1"] = enableableExtension(&Extensions::explicitContextGles1); - map["GL_ANGLE_explicit_context"] = enableableExtension(&Extensions::explicitContext); - map["GL_KHR_parallel_shader_compile"] = enableableExtension(&Extensions::parallelShaderCompile); - map["GL_EXT_separate_shader_objects"] = enableableExtension(&Extensions::separateShaderObjects); - map["GL_OES_texture_storage_multisample_2d_array"] = enableableExtension(&Extensions::textureStorageMultisample2DArrayOES); - map["GL_ANGLE_multiview_multisample"] = enableableExtension(&Extensions::multiviewMultisample); - map["GL_KHR_blend_equation_advanced"] = esOnlyExtension(&Extensions::blendEquationAdvancedKHR); - map["GL_EXT_blend_func_extended"] = enableableExtension(&Extensions::blendFuncExtended); - map["GL_EXT_float_blend"] = enableableExtension(&Extensions::floatBlend); - map["GL_ANGLE_texture_multisample"] = enableableExtension(&Extensions::textureMultisample); - map["GL_ANGLE_multi_draw"] = enableableExtension(&Extensions::multiDraw); - map["GL_ANGLE_provoking_vertex"] = enableableExtension(&Extensions::provokingVertex); - map["GL_CHROMIUM_texture_filtering_hint"] = enableableExtension(&Extensions::textureFilteringCHROMIUM); - map["GL_CHROMIUM_lose_context"] = enableableExtension(&Extensions::loseContextCHROMIUM); - map["GL_ANGLE_texture_external_update"] = enableableExtension(&Extensions::textureExternalUpdateANGLE); - map["GL_ANGLE_base_vertex_base_instance"] = enableableExtension(&Extensions::baseVertexBaseInstance); - map["GL_ANGLE_get_image"] = enableableExtension(&Extensions::getImageANGLE); - map["GL_OES_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexOES); - map["GL_EXT_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexEXT); - map["GL_EXT_gpu_shader5"] = enableableExtension(&Extensions::gpuShader5EXT); - map["GL_APPLE_clip_distance"] = enableableExtension(&Extensions::clipDistanceAPPLE); - map["GL_EXT_clip_control"] = enableableExtension(&Extensions::clipControlEXT); - map["GL_EXT_EGL_image_array"] = enableableExtension(&Extensions::eglImageArray); - map["GL_EXT_buffer_storage"] = enableableExtension(&Extensions::bufferStorageEXT); - map["GL_EXT_external_buffer"] = enableableExtension(&Extensions::externalBufferEXT); - map["GL_OES_texture_stencil8"] = enableableExtension(&Extensions::stencilIndex8); - map["GL_OES_sample_shading"] = enableableExtension(&Extensions::sampleShadingOES); - map["GL_OES_shader_multisample_interpolation"] = enableableExtension(&Extensions::multisampleInterpolationOES); - map["GL_OES_shader_image_atomic"] = enableableExtension(&Extensions::shaderImageAtomicOES); - map["GL_OES_sample_variables"] = enableableExtension(&Extensions::sampleVariablesOES); - map["GL_EXT_shader_framebuffer_fetch_non_coherent"] = enableableExtension(&Extensions::shaderFramebufferFetchNonCoherentEXT); - map["GL_NV_robustness_video_memory_purge"] = esOnlyExtension(&Extensions::robustnessVideoMemoryPurgeNV); - map["GL_ANGLE_get_tex_level_parameter"] = enableableExtension(&Extensions::getTexLevelParameterANGLE); - map["GL_EXT_copy_image"] = enableableExtension(&Extensions::copyImageEXT); - map["GL_OES_texture_buffer"] = enableableExtension(&Extensions::textureBufferOES); - map["GL_EXT_texture_buffer"] = enableableExtension(&Extensions::textureBufferEXT); - map["GL_EXT_YUV_target"] = enableableExtension(&Extensions::yuvTargetEXT); - map["GL_OES_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksOES); - map["GL_EXT_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksEXT); - map["GL_EXT_clip_cull_distance"] = enableableExtension(&Extensions::clipCullDistanceEXT); - map["GL_ANGLE_get_serialized_context_string"] = esOnlyExtension(&Extensions::getSerializedContextStringANGLE); - map["GL_EXT_primitive_bounding_box"] = esOnlyExtension(&Extensions::primitiveBoundingBoxEXT); - // GLES1 extensions - map["GL_OES_point_size_array"] = enableableExtension(&Extensions::pointSizeArrayOES); - map["GL_OES_texture_cube_map"] = enableableExtension(&Extensions::textureCubeMapOES); - map["GL_OES_point_sprite"] = enableableExtension(&Extensions::pointSpriteOES); - map["GL_OES_draw_texture"] = enableableExtension(&Extensions::drawTextureOES); - map["GL_OES_framebuffer_object"] = enableableExtension(&Extensions::framebufferObjectOES); - map["GL_ANGLE_memory_size"] = enableableExtension(&Extensions::memorySize); - map["GL_EXT_shader_non_constant_global_initializers"] = enableableExtension(&Extensions::shaderNonConstGlobalInitializersEXT); - map["GL_WEBGL_video_texture"] = enableableExtension(&Extensions::webglVideoTexture); - map["GL_OES_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayOES); - map["GL_EXT_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayEXT); - map["GL_EXT_shadow_samplers"] = enableableExtension(&Extensions::shadowSamplersEXT); - map["GL_EXT_tessellation_shader"] = enableableExtension(&Extensions::tessellationShaderEXT); - // clang-format on - -#if defined(ANGLE_ENABLE_ASSERTS) - // Verify all extension strings start with GL_ - for (const auto &extension : map) - { - ASSERT(extension.first.rfind("GL_", 0) == 0); - } -#endif - - return map; - }; - - static const angle::base::NoDestructor extensionInfo(buildExtensionInfoMap()); - return *extensionInfo; + colorBufferFloatRgbCHROMIUM = DetermineColorBufferFloatRGBSupport(textureCaps); + colorBufferFloatRgbaCHROMIUM = DetermineColorBufferFloatRGBASupport(textureCaps); + colorBufferFloatEXT = DetermineColorBufferFloatSupport(textureCaps); + floatBlendEXT = DetermineFloatBlendSupport(textureCaps); + textureNorm16EXT = DetermineTextureNorm16Support(textureCaps); + textureCompressionRgtcEXT = DetermineRGTCTextureSupport(textureCaps); + textureCompressionBptcEXT = DetermineBPTCTextureSupport(textureCaps); + textureCompressionPvrtcIMG = DeterminePVRTCTextureSupport(textureCaps); + pvrtcSRGBEXT = DeterminePVRTCsRGBTextureSupport(textureCaps); + textureStencil8OES = DetermineStencilIndex8Support(textureCaps); } TypePrecision::TypePrecision() = default; TypePrecision::TypePrecision(const TypePrecision &other) = default; @@ -1332,16 +1128,16 @@ caps.maxShaderStorageBlockSize = 1 << 27; caps.maxCombinedShaderStorageBlocks = 4; caps.shaderStorageBufferOffsetAlignment = 256; } - if (extensions.textureRectangle) + if (extensions.textureRectangleANGLE) { caps.maxRectangleTextureSize = 64; } - if (extensions.geometryShader) + if (extensions.geometryShaderAny()) { // Table 20.40 (GL_EXT_geometry_shader) caps.maxFramebufferLayers = 256; caps.layerProvokingVertex = GL_LAST_VERTEX_CONVENTION_EXT; @@ -1452,11 +1248,10 @@ InsertExtensionString("EGL_KHR_stream", stream, &extensionStrings); InsertExtensionString("EGL_KHR_stream_consumer_gltexture", streamConsumerGLTexture, &extensionStrings); InsertExtensionString("EGL_NV_stream_consumer_gltexture_yuv", streamConsumerGLTextureYUV, &extensionStrings); InsertExtensionString("EGL_KHR_fence_sync", fenceSync, &extensionStrings); InsertExtensionString("EGL_KHR_wait_sync", waitSync, &extensionStrings); - InsertExtensionString("EGL_ANGLE_flexible_surface_compatibility", flexibleSurfaceCompatibility, &extensionStrings); InsertExtensionString("EGL_ANGLE_stream_producer_d3d_texture", streamProducerD3DTexture, &extensionStrings); 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); @@ -1464,12 +1259,12 @@ InsertExtensionString("EGL_EXT_pixel_format_float", pixelFormatFloat, &extensionStrings); InsertExtensionString("EGL_KHR_surfaceless_context", surfacelessContext, &extensionStrings); InsertExtensionString("EGL_ANGLE_display_texture_share_group", displayTextureShareGroup, &extensionStrings); InsertExtensionString("EGL_ANGLE_display_semaphore_share_group", displaySemaphoreShareGroup, &extensionStrings); InsertExtensionString("EGL_ANGLE_create_context_client_arrays", createContextClientArrays, &extensionStrings); - InsertExtensionString("EGL_ANGLE_program_cache_control", programCacheControl, &extensionStrings); - InsertExtensionString("EGL_ANGLE_robust_resource_initialization", robustResourceInitialization, &extensionStrings); + InsertExtensionString("EGL_ANGLE_program_cache_control", programCacheControlANGLE, &extensionStrings); + InsertExtensionString("EGL_ANGLE_robust_resource_initialization", robustResourceInitializationANGLE, &extensionStrings); InsertExtensionString("EGL_ANGLE_iosurface_client_buffer", iosurfaceClientBuffer, &extensionStrings); InsertExtensionString("EGL_ANGLE_metal_texture_client_buffer", mtlTextureClientBuffer, &extensionStrings); InsertExtensionString("EGL_ANGLE_create_context_extensions_enabled", createContextExtensionsEnabled, &extensionStrings); InsertExtensionString("EGL_ANDROID_presentation_time", presentationTime, &extensionStrings); InsertExtensionString("EGL_ANDROID_blob_cache", blobCache, &extensionStrings); @@ -1491,10 +1286,14 @@ InsertExtensionString("EGL_NOK_texture_from_pixmap", textureFromPixmapNOK, &extensionStrings); InsertExtensionString("EGL_NV_robustness_video_memory_purge", robustnessVideoMemoryPurgeNV, &extensionStrings); InsertExtensionString("EGL_KHR_reusable_sync", reusableSyncKHR, &extensionStrings); InsertExtensionString("EGL_ANGLE_external_context_and_surface", externalContextAndSurface, &extensionStrings); InsertExtensionString("EGL_EXT_buffer_age", bufferAgeEXT, &extensionStrings); + InsertExtensionString("EGL_KHR_mutable_render_buffer", mutableRenderBufferKHR, &extensionStrings); + InsertExtensionString("EGL_EXT_protected_content", protectedContentEXT, &extensionStrings); + InsertExtensionString("EGL_ANGLE_create_surface_swap_interval", createSurfaceSwapIntervalANGLE, &extensionStrings); + InsertExtensionString("EGL_ANGLE_context_virtualization", contextVirtualizationANGLE, &extensionStrings); // clang-format on return extensionStrings; } @@ -1508,10 +1307,11 @@ // | Extension name | Supported flag | Output vector | InsertExtensionString("EGL_ANGLE_device_d3d", deviceD3D, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_cgl", deviceCGL, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_eagl", deviceEAGL, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_metal", deviceMetal, &extensionStrings); + InsertExtensionString("EGL_ANGLE_device_vulkan", deviceVulkan, &extensionStrings); // clang-format on return extensionStrings; } @@ -1536,20 +1336,18 @@ InsertExtensionString("EGL_ANGLE_platform_angle_device_type_swiftshader", platformANGLEDeviceTypeSwiftShader, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_null", platformANGLENULL, &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_device_context_volatile_eagl", platformANGLEDeviceContextVolatileEagl, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_device_context_volatile_cgl", platformANGLEDeviceContextVolatileCgl, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_creation", deviceCreation, &extensionStrings); InsertExtensionString("EGL_ANGLE_device_creation_d3d11", deviceCreationD3D11, &extensionStrings); InsertExtensionString("EGL_ANGLE_x11_visual", x11Visual, &extensionStrings); InsertExtensionString("EGL_ANGLE_experimental_present_path", experimentalPresentPath, &extensionStrings); InsertExtensionString("EGL_KHR_client_get_all_proc_addresses", clientGetAllProcAddresses, &extensionStrings); InsertExtensionString("EGL_KHR_debug", debug, &extensionStrings); - InsertExtensionString("EGL_ANGLE_explicit_context", explicitContext, &extensionStrings); InsertExtensionString("EGL_ANGLE_feature_control", featureControlANGLE, &extensionStrings); // clang-format on return extensionStrings; } diff --git a/gfx/angle/checkout/src/libANGLE/Compiler.cpp b/gfx/angle/checkout/src/libANGLE/Compiler.cpp --- a/gfx/angle/checkout/src/libANGLE/Compiler.cpp +++ b/gfx/angle/checkout/src/libANGLE/Compiler.cpp @@ -64,11 +64,11 @@ Compiler::Compiler(rx::GLImplFactory *implFactory, const State &state, egl::Display *display) : mImplementation(implFactory->createCompiler()), mSpec(SelectShaderSpec(state.getClientMajorVersion(), state.getClientMinorVersion(), - state.getExtensions().webglCompatibility, + state.isWebGL(), state.getClientType())), mOutputType(mImplementation->getTranslatorOutputType()), mResources() { // TODO(http://anglebug.com/3819): Update for GL version specific validation @@ -95,49 +95,50 @@ mResources.MaxCombinedTextureImageUnits = caps.maxCombinedTextureImageUnits; mResources.MaxTextureImageUnits = caps.maxShaderTextureImageUnits[ShaderType::Fragment]; mResources.MaxFragmentUniformVectors = caps.maxFragmentUniformVectors; mResources.MaxDrawBuffers = caps.maxDrawBuffers; mResources.OES_standard_derivatives = extensions.standardDerivativesOES; - mResources.EXT_draw_buffers = extensions.drawBuffers; - mResources.EXT_shader_texture_lod = extensions.shaderTextureLOD; + mResources.EXT_draw_buffers = extensions.drawBuffersEXT; + mResources.EXT_shader_texture_lod = extensions.shaderTextureLodEXT; mResources.EXT_shader_non_constant_global_initializers = - extensions.shaderNonConstGlobalInitializersEXT; - mResources.OES_EGL_image_external = extensions.eglImageExternalOES; - mResources.OES_EGL_image_external_essl3 = extensions.eglImageExternalEssl3OES; - mResources.NV_EGL_stream_consumer_external = extensions.eglStreamConsumerExternalNV; - mResources.NV_shader_noperspective_interpolation = extensions.noperspectiveInterpolationNV; - mResources.ARB_texture_rectangle = extensions.textureRectangle; - mResources.EXT_gpu_shader5 = extensions.gpuShader5EXT; - mResources.OES_shader_io_blocks = extensions.shaderIoBlocksOES; - mResources.EXT_shader_io_blocks = extensions.shaderIoBlocksEXT; + extensions.shaderNonConstantGlobalInitializersEXT; + mResources.OES_EGL_image_external = extensions.EGLImageExternalOES; + mResources.OES_EGL_image_external_essl3 = extensions.EGLImageExternalEssl3OES; + mResources.NV_EGL_stream_consumer_external = extensions.EGLStreamConsumerExternalNV; + mResources.NV_shader_noperspective_interpolation = + extensions.shaderNoperspectiveInterpolationNV; + mResources.ARB_texture_rectangle = extensions.textureRectangleANGLE; + mResources.EXT_gpu_shader5 = extensions.gpuShader5EXT; + mResources.OES_shader_io_blocks = extensions.shaderIoBlocksOES; + mResources.EXT_shader_io_blocks = extensions.shaderIoBlocksEXT; mResources.OES_texture_storage_multisample_2d_array = - extensions.textureStorageMultisample2DArrayOES; + extensions.textureStorageMultisample2dArrayOES; mResources.OES_texture_3D = extensions.texture3DOES; - mResources.ANGLE_texture_multisample = extensions.textureMultisample; - mResources.ANGLE_multi_draw = extensions.multiDraw; - mResources.ANGLE_base_vertex_base_instance = extensions.baseVertexBaseInstance; + mResources.ANGLE_texture_multisample = extensions.textureMultisampleANGLE; + mResources.ANGLE_multi_draw = extensions.multiDrawANGLE; + mResources.ANGLE_base_vertex_base_instance = extensions.baseVertexBaseInstanceANGLE; mResources.APPLE_clip_distance = extensions.clipDistanceAPPLE; // OES_shader_multisample_interpolation - mResources.OES_shader_multisample_interpolation = extensions.multisampleInterpolationOES; + mResources.OES_shader_multisample_interpolation = extensions.shaderMultisampleInterpolationOES; mResources.OES_shader_image_atomic = extensions.shaderImageAtomicOES; // TODO: use shader precision caps to determine if high precision is supported? mResources.FragmentPrecisionHigh = 1; - mResources.EXT_frag_depth = extensions.fragDepth; + mResources.EXT_frag_depth = extensions.fragDepthEXT; // OVR_multiview state - mResources.OVR_multiview = extensions.multiview; + mResources.OVR_multiview = extensions.multiviewOVR; // OVR_multiview2 state - mResources.OVR_multiview2 = extensions.multiview2; - mResources.MaxViewsOVR = extensions.maxViews; + mResources.OVR_multiview2 = extensions.multiview2OVR; + mResources.MaxViewsOVR = caps.maxViews; // EXT_multisampled_render_to_texture and EXT_multisampled_render_to_texture2 - mResources.EXT_multisampled_render_to_texture = extensions.multisampledRenderToTexture; - mResources.EXT_multisampled_render_to_texture2 = extensions.multisampledRenderToTexture2; + mResources.EXT_multisampled_render_to_texture = extensions.multisampledRenderToTextureEXT; + mResources.EXT_multisampled_render_to_texture2 = extensions.multisampledRenderToTexture2EXT; // WEBGL_video_texture - mResources.WEBGL_video_texture = extensions.webglVideoTexture; + mResources.WEBGL_video_texture = extensions.videoTextureWEBGL; // OES_texture_cube_map_array mResources.OES_texture_cube_map_array = extensions.textureCubeMapArrayOES; mResources.EXT_texture_cube_map_array = extensions.textureCubeMapArrayEXT; @@ -147,27 +148,30 @@ // OES_texture_buffer mResources.OES_texture_buffer = extensions.textureBufferOES; mResources.EXT_texture_buffer = extensions.textureBufferEXT; // GL_EXT_YUV_target - mResources.EXT_YUV_target = extensions.yuvTargetEXT; + mResources.EXT_YUV_target = extensions.YUVTargetEXT; mResources.EXT_shader_framebuffer_fetch_non_coherent = extensions.shaderFramebufferFetchNonCoherentEXT; // GL_EXT_clip_cull_distance mResources.EXT_clip_cull_distance = extensions.clipCullDistanceEXT; + // GL_EXT_primitive_bounding_box + mResources.EXT_primitive_bounding_box = extensions.primitiveBoundingBoxEXT; + // GLSL ES 3.0 constants mResources.MaxVertexOutputVectors = caps.maxVertexOutputComponents / 4; mResources.MaxFragmentInputVectors = caps.maxFragmentInputComponents / 4; mResources.MinProgramTexelOffset = caps.minProgramTexelOffset; mResources.MaxProgramTexelOffset = caps.maxProgramTexelOffset; // EXT_blend_func_extended - mResources.EXT_blend_func_extended = extensions.blendFuncExtended; - mResources.MaxDualSourceDrawBuffers = extensions.maxDualSourceDrawBuffers; + mResources.EXT_blend_func_extended = extensions.blendFuncExtendedEXT; + mResources.MaxDualSourceDrawBuffers = caps.maxDualSourceDrawBuffers; // APPLE_clip_distance/EXT_clip_cull_distance mResources.MaxClipDistances = caps.maxClipDistances; mResources.MaxCullDistances = caps.maxCullDistances; mResources.MaxCombinedClipAndCullDistances = caps.maxCombinedClipAndCullDistances; @@ -215,17 +219,18 @@ mResources.MaxShaderStorageBufferBindings = caps.maxShaderStorageBufferBindings; // Needed by point size clamping workaround mResources.MaxPointSize = caps.maxAliasedPointSize; - if (state.getClientMajorVersion() == 2 && !extensions.drawBuffers) + if (state.getClientMajorVersion() == 2 && !extensions.drawBuffersEXT) { mResources.MaxDrawBuffers = 1; } // Geometry Shader constants - mResources.EXT_geometry_shader = extensions.geometryShader; + mResources.EXT_geometry_shader = extensions.geometryShaderEXT; + mResources.OES_geometry_shader = extensions.geometryShaderOES; mResources.MaxGeometryUniformComponents = caps.maxShaderUniformComponents[ShaderType::Geometry]; mResources.MaxGeometryUniformBlocks = caps.maxShaderUniformBlocks[ShaderType::Geometry]; mResources.MaxGeometryInputComponents = caps.maxGeometryInputComponents; mResources.MaxGeometryOutputComponents = caps.maxGeometryOutputComponents; mResources.MaxGeometryOutputVertices = caps.maxGeometryOutputVertices; @@ -270,10 +275,15 @@ mResources.MaxTessEvaluationAtomicCounterBuffers = caps.maxShaderAtomicCounterBuffers[ShaderType::TessEvaluation]; // Subpixel bits. mResources.SubPixelBits = static_cast(caps.subPixelBits); + + // Direct-to-metal constants: + mResources.DriverUniformsBindingIndex = caps.driverUniformsBindingIndex; + mResources.DefaultUniformsBindingIndex = caps.defaultUniformsBindingIndex; + mResources.UBOArgumentBufferBindingIndex = caps.UBOArgumentBufferBindingIndex; } Compiler::~Compiler() = default; void Compiler::onDestroy(const Context *context) diff --git a/gfx/angle/checkout/src/libANGLE/Constants.h b/gfx/angle/checkout/src/libANGLE/Constants.h --- a/gfx/angle/checkout/src/libANGLE/Constants.h +++ b/gfx/angle/checkout/src/libANGLE/Constants.h @@ -31,10 +31,13 @@ IMPLEMENTATION_MAX_VARYING_VECTORS = 32, IMPLEMENTATION_MAX_DRAW_BUFFERS = 8, IMPLEMENTATION_MAX_FRAMEBUFFER_ATTACHMENTS = IMPLEMENTATION_MAX_DRAW_BUFFERS + 2, // 2 extra for depth and/or stencil buffers + // The vast majority of devices support only one dual-source draw buffer + IMPLEMENTATION_MAX_DUAL_SOURCE_DRAW_BUFFERS = 1, + IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS = 16, IMPLEMENTATION_MAX_GEOMETRY_SHADER_UNIFORM_BUFFERS = 16, IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS = 16, IMPLEMENTATION_MAX_COMPUTE_SHADER_UNIFORM_BUFFERS = 16, @@ -102,10 +105,15 @@ // Table 6.31 MAX_VERTEX_UNIFORM_BLOCKS minimum value = 12 // Table 6.32 MAX_FRAGMENT_UNIFORM_BLOCKS minimum value = 12 constexpr uint32_t kMinimumShaderUniformBlocks = 12; // Table 6.31 MAX_VERTEX_OUTPUT_COMPONENTS minimum value = 64 constexpr uint32_t kMinimumVertexOutputComponents = 64; + +// OpenGL ES 3.2+ Minimum Values +// Table 21.42 TEXTURE_BUFFER_OFFSET_ALIGNMENT minimum value = 256 +constexpr uint32_t kMinTextureBufferOffsetAlignment = 256; + } // namespace limits } // namespace gl #endif // LIBANGLE_CONSTANTS_H_ diff --git a/gfx/angle/checkout/src/libANGLE/Context.h b/gfx/angle/checkout/src/libANGLE/Context.h --- a/gfx/angle/checkout/src/libANGLE/Context.h +++ b/gfx/angle/checkout/src/libANGLE/Context.h @@ -41,10 +41,11 @@ #include "libANGLE/angletypes.h" namespace angle { class FrameCapture; +class FrameCaptureShared; struct FrontendFeatures; } // namespace angle namespace rx { @@ -95,11 +96,11 @@ const char *message, const char *file, const char *function, unsigned int line); - void validationError(GLenum errorCode, const char *message); + void validationError(angle::EntryPoint entryPoint, GLenum errorCode, const char *message); private: Context *mContext; std::set mErrors; }; @@ -267,10 +268,12 @@ void onDefaultVertexAttributeChange(Context *context); void onActiveTextureChange(Context *context); void onQueryChange(Context *context); void onActiveTransformFeedbackChange(Context *context); void onUniformBufferStateChange(Context *context); + void onAtomicCounterBufferStateChange(Context *context); + void onShaderStorageBufferStateChange(Context *context); void onColorMaskChange(Context *context); void onBufferBindingChange(Context *context); void onBlendFuncIndexedChange(Context *context); private: @@ -364,12 +367,11 @@ egl::Error makeCurrent(egl::Display *display, egl::Surface *drawSurface, egl::Surface *readSurface); egl::Error unMakeCurrent(const egl::Display *display); - // These create and destroy methods are merely pass-throughs to - // ResourceManager, which owns these object types + // These create and destroy methods pass through to ResourceManager, which owns these objects. BufferID createBuffer(); TextureID createTexture(); RenderbufferID createRenderbuffer(); ProgramPipelineID createProgramPipeline(); MemoryObjectID createMemoryObject(); @@ -413,11 +415,10 @@ bool isVertexArrayGenerated(VertexArrayID vertexArray) const; bool isTransformFeedbackGenerated(TransformFeedbackID transformFeedback) const; bool isExternal() const { return mIsExternal; } bool saveAndRestoreState() const { return mSaveAndRestoreState; } - bool isCurrent() const { return mIsCurrent; } void getBooleanvImpl(GLenum pname, GLboolean *params) const; void getFloatvImpl(GLenum pname, GLfloat *params) const; void getIntegervImpl(GLenum pname, GLint *params) const; void getInteger64vImpl(GLenum pname, GLint64 *params) const; @@ -442,18 +443,20 @@ ANGLE_GLES_3_0_CONTEXT_API ANGLE_GLES_3_1_CONTEXT_API ANGLE_GLES_3_2_CONTEXT_API ANGLE_GLES_EXT_CONTEXT_API + angle::Result handleNoopDrawEvent(); + // Consumes an error. void handleError(GLenum errorCode, const char *message, const char *file, const char *function, unsigned int line); - void validationError(GLenum errorCode, const char *message) const; + void validationError(angle::EntryPoint entryPoint, GLenum errorCode, const char *message) const; void markContextLost(GraphicsResetStatus status); bool isContextLost() const { return mContextLost; } void setContextLost(); @@ -485,10 +488,11 @@ angle::MemoryBuffer **zeroBufferOut) const; angle::ScratchBuffer *getScratchBuffer() const; angle::Result prepareForCopyImage(); angle::Result prepareForDispatch(); + angle::Result prepareForInvalidate(GLenum target); MemoryProgramCache *getMemoryProgramCache() const { return mMemoryProgramCache; } std::mutex &getProgramCacheMutex() const; bool hasBeenCurrent() const { return mHasBeenCurrent; } @@ -503,11 +507,11 @@ bool isCurrentVertexArray(const VertexArray *va) const { return mState.isCurrentVertexArray(va); } - bool isShared() const { return mShared; } + ANGLE_INLINE bool isShared() const { return mShared; } // Once a context is setShared() it cannot be undone void setShared() { mShared = true; } const State &getState() const { return mState; } GLint getClientMajorVersion() const { return mState.getClientMajorVersion(); } @@ -586,11 +590,11 @@ bool isBufferAccessValidationEnabled() const { return mBufferAccessValidationEnabled; } const angle::FrontendFeatures &getFrontendFeatures() const; - angle::FrameCapture *getFrameCapture() { return mFrameCapture.get(); } + angle::FrameCapture *getFrameCapture() const { return mFrameCapture.get(); } const VertexArrayMap &getVertexArraysForCapture() const { return mVertexArrayMap; } const QueryMap &getQueriesForCapture() const { return mQueryMap; } const TransformFeedbackMap &getTransformFeedbacksForCapture() const { @@ -619,21 +623,27 @@ egl::ShareGroup *getShareGroup() const { return mState.getShareGroup(); } bool supportsGeometryOrTesselation() const; void dirtyAllState(); + bool isDestroyed() const { return mIsDestroyed; } + void setIsDestroyed() { mIsDestroyed = true; } + + // Needed by capture serialization logic that works with a "const" Context pointer. + void finishImmutable() const; + private: void initializeDefaultResources(); angle::Result prepareForDraw(PrimitiveMode mode); angle::Result prepareForClear(GLbitfield mask); angle::Result prepareForClearBuffer(GLenum buffer, GLint drawbuffer); angle::Result syncState(const State::DirtyBits &bitMask, const State::DirtyObjects &objectMask, Command command); - angle::Result syncDirtyBits(); - angle::Result syncDirtyBits(const State::DirtyBits &bitMask); + angle::Result syncDirtyBits(Command command); + angle::Result syncDirtyBits(const State::DirtyBits &bitMask, Command command); angle::Result syncDirtyObjects(const State::DirtyObjects &objectMask, Command command); angle::Result syncStateForReadPixels(); angle::Result syncStateForTexImage(); angle::Result syncStateForBlit(); angle::Result syncStateForClear(); @@ -676,12 +686,10 @@ GLenum internalformat, GLsizei width, GLsizei height, MultisamplingMode mode); - void convertPpoToComputeOrDraw(bool isCompute); - State mState; bool mShared; bool mSkipValidation; bool mDisplayTextureShareGroup; bool mDisplaySemaphoreShareGroup; @@ -736,11 +744,10 @@ GraphicsResetStatus mResetStatus; bool mContextLostForced; GLenum mResetStrategy; const bool mRobustAccess; const bool mSurfacelessSupported; - const bool mExplicitContextAvailable; egl::Surface *mCurrentDrawSurface; egl::Surface *mCurrentReadSurface; egl::Display *mDisplay; const bool mWebGLContext; bool mBufferAccessValidationEnabled; @@ -762,16 +769,20 @@ State::DirtyObjects mBlitDirtyObjects; State::DirtyBits mComputeDirtyBits; State::DirtyObjects mComputeDirtyObjects; State::DirtyBits mCopyImageDirtyBits; State::DirtyObjects mCopyImageDirtyObjects; + State::DirtyBits mInvalidateDirtyBits; // Binding to container objects that use dependent state updates. angle::ObserverBinding mVertexArrayObserverBinding; angle::ObserverBinding mDrawFramebufferObserverBinding; angle::ObserverBinding mReadFramebufferObserverBinding; + angle::ObserverBinding mProgramPipelineObserverBinding; std::vector mUniformBufferObserverBindings; + std::vector mAtomicCounterBufferObserverBindings; + std::vector mShaderStorageBufferObserverBindings; std::vector mSamplerObserverBindings; std::vector mImageObserverBindings; // Not really a property of context state. The size and contexts change per-api-call. mutable Optional mScratchBuffer; @@ -790,14 +801,41 @@ OverlayType mOverlay; const bool mIsExternal; const bool mSaveAndRestoreState; - bool mIsCurrent; + bool mIsDestroyed; +}; + +class ScopedContextRef +{ + public: + ScopedContextRef(Context *context) : mContext(context) + { + if (mContext) + { + mContext->addRef(); + } + } + ~ScopedContextRef() + { + if (mContext) + { + mContext->release(); + } + } + + private: + Context *const mContext; }; // Thread-local current valid context bound to the thread. +#if defined(ANGLE_PLATFORM_APPLE) +extern Context *GetCurrentValidContextTLS(); +extern void SetCurrentValidContextTLS(Context *context); +#else extern thread_local Context *gCurrentValidContext; +#endif } // namespace gl #endif // LIBANGLE_CONTEXT_H_ diff --git a/gfx/angle/checkout/src/libANGLE/Context.cpp b/gfx/angle/checkout/src/libANGLE/Context.cpp --- a/gfx/angle/checkout/src/libANGLE/Context.cpp +++ b/gfx/angle/checkout/src/libANGLE/Context.cpp @@ -4,21 +4,19 @@ // found in the LICENSE file. // // Context.cpp: Implements the gl::Context class, managing all GL state and performing // rendering operations. It is the GLES2 specific implementation of EGLContext. - -#include "libANGLE/Context.h" #include "libANGLE/Context.inl.h" #include #include #include #include #include "common/PackedEnums.h" -#include "common/angle_version.h" +#include "common/angle_version_info.h" #include "common/matrix_utils.h" #include "common/platform.h" #include "common/system_utils.h" #include "common/utilities.h" #include "libANGLE/Buffer.h" @@ -46,10 +44,15 @@ #include "libANGLE/queryutils.h" #include "libANGLE/renderer/DisplayImpl.h" #include "libANGLE/renderer/Format.h" #include "libANGLE/validationES.h" +#if defined(ANGLE_PLATFORM_APPLE) +# include +# include "common/tls.h" +#endif + namespace gl { namespace { @@ -209,21 +212,28 @@ bool GetClientArraysEnabled(const egl::AttributeMap &attribs) { return (attribs.get(EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE, EGL_TRUE) == EGL_TRUE); } -bool GetRobustResourceInit(const egl::AttributeMap &attribs) -{ - return (attribs.get(EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE, EGL_FALSE) == EGL_TRUE); +bool GetRobustResourceInit(egl::Display *display, const egl::AttributeMap &attribs) +{ + const angle::FrontendFeatures &frontendFeatures = display->getFrontendFeatures(); + return (frontendFeatures.forceRobustResourceInit.enabled || + attribs.get(EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE, EGL_FALSE) == EGL_TRUE); } EGLenum GetContextPriority(const egl::AttributeMap &attribs) { return static_cast( attribs.getAsInt(EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_MEDIUM_IMG)); } +bool GetProtectedContent(const egl::AttributeMap &attribs) +{ + return static_cast(attribs.getAsInt(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE)); +} + std::string GetObjectLabelFromPointer(GLsizei length, const GLchar *label) { std::string labelName; if (label != nullptr) { @@ -259,15 +269,22 @@ kImage0SubjectIndex = kTextureMaxSubjectIndex, kImageMaxSubjectIndex = kImage0SubjectIndex + IMPLEMENTATION_MAX_IMAGE_UNITS, kUniformBuffer0SubjectIndex = kImageMaxSubjectIndex, kUniformBufferMaxSubjectIndex = kUniformBuffer0SubjectIndex + IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS, - kSampler0SubjectIndex = kUniformBufferMaxSubjectIndex, + kAtomicCounterBuffer0SubjectIndex = kUniformBufferMaxSubjectIndex, + kAtomicCounterBufferMaxSubjectIndex = + kAtomicCounterBuffer0SubjectIndex + IMPLEMENTATION_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, + kShaderStorageBuffer0SubjectIndex = kAtomicCounterBufferMaxSubjectIndex, + kShaderStorageBufferMaxSubjectIndex = + kShaderStorageBuffer0SubjectIndex + IMPLEMENTATION_MAX_SHADER_STORAGE_BUFFER_BINDINGS, + kSampler0SubjectIndex = kShaderStorageBufferMaxSubjectIndex, kSamplerMaxSubjectIndex = kSampler0SubjectIndex + IMPLEMENTATION_MAX_ACTIVE_TEXTURES, kVertexArraySubjectIndex = kSamplerMaxSubjectIndex, kReadFramebufferSubjectIndex, - kDrawFramebufferSubjectIndex + kDrawFramebufferSubjectIndex, + kProgramPipelineSubjectIndex, }; bool IsClearBufferEnabled(const FramebufferState &fbState, GLenum buffer, GLint drawbuffer) { return buffer != GL_COLOR || fbState.getEnabledDrawBuffers()[drawbuffer]; @@ -301,11 +318,39 @@ return (attribs.get(EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE, EGL_FALSE) == EGL_TRUE); } } // anonymous namespace +#if defined(ANGLE_PLATFORM_APPLE) +// TODO(angleproject:6479): Due to a bug in Apple's dyld loader, `thread_local` will cause +// excessive memory use. Temporarily avoid it by using pthread's thread +// local storage instead. +static TLSIndex GetCurrentValidContextTLSIndex() +{ + static TLSIndex CurrentValidContextIndex = TLS_INVALID_INDEX; + static dispatch_once_t once; + dispatch_once(&once, ^{ + ASSERT(CurrentValidContextIndex == TLS_INVALID_INDEX); + CurrentValidContextIndex = CreateTLSIndex(); + }); + return CurrentValidContextIndex; +} +Context *GetCurrentValidContextTLS() +{ + TLSIndex CurrentValidContextIndex = GetCurrentValidContextTLSIndex(); + ASSERT(CurrentValidContextIndex != TLS_INVALID_INDEX); + return static_cast(GetTLSValue(CurrentValidContextIndex)); +} +void SetCurrentValidContextTLS(Context *context) +{ + TLSIndex CurrentValidContextIndex = GetCurrentValidContextTLSIndex(); + ASSERT(CurrentValidContextIndex != TLS_INVALID_INDEX); + SetTLSValue(CurrentValidContextIndex, context); +} +#else thread_local Context *gCurrentValidContext = nullptr; +#endif Context::Context(egl::Display *display, const egl::Config *config, const Context *shareContext, TextureManager *shareTextures, @@ -323,13 +368,14 @@ clientType, GetClientVersion(display, attribs), GetDebug(attribs), GetBindGeneratesResource(attribs), GetClientArraysEnabled(attribs), - GetRobustResourceInit(attribs), + GetRobustResourceInit(display, attribs), memoryProgramCache != nullptr, - GetContextPriority(attribs)), + GetContextPriority(attribs), + GetProtectedContent(attribs)), mShared(shareContext != nullptr), mSkipValidation(GetNoError(attribs)), mDisplayTextureShareGroup(shareTextures != nullptr), mDisplaySemaphoreShareGroup(shareSemaphores != nullptr), mErrors(this), @@ -343,35 +389,47 @@ mResetStatus(GraphicsResetStatus::NoError), mContextLostForced(false), mResetStrategy(GetResetStrategy(attribs)), mRobustAccess(GetRobustAccess(attribs)), mSurfacelessSupported(displayExtensions.surfacelessContext), - mExplicitContextAvailable(clientExtensions.explicitContext), mCurrentDrawSurface(static_cast(EGL_NO_SURFACE)), mCurrentReadSurface(static_cast(EGL_NO_SURFACE)), mDisplay(display), mWebGLContext(GetWebGLContext(attribs)), mBufferAccessValidationEnabled(false), mExtensionsEnabled(GetExtensionsEnabled(attribs, mWebGLContext)), mMemoryProgramCache(memoryProgramCache), mVertexArrayObserverBinding(this, kVertexArraySubjectIndex), mDrawFramebufferObserverBinding(this, kDrawFramebufferSubjectIndex), mReadFramebufferObserverBinding(this, kReadFramebufferSubjectIndex), + mProgramPipelineObserverBinding(this, kProgramPipelineSubjectIndex), mThreadPool(nullptr), mFrameCapture(new angle::FrameCapture), mRefCount(0), mOverlay(mImplementation.get()), mIsExternal(GetIsExternal(attribs)), mSaveAndRestoreState(GetSaveAndRestoreState(attribs)), - mIsCurrent(false) + mIsDestroyed(false) { for (angle::SubjectIndex uboIndex = kUniformBuffer0SubjectIndex; uboIndex < kUniformBufferMaxSubjectIndex; ++uboIndex) { mUniformBufferObserverBindings.emplace_back(this, uboIndex); } + for (angle::SubjectIndex acbIndex = kAtomicCounterBuffer0SubjectIndex; + acbIndex < kAtomicCounterBufferMaxSubjectIndex; ++acbIndex) + { + mAtomicCounterBufferObserverBindings.emplace_back(this, acbIndex); + } + + for (angle::SubjectIndex ssboIndex = kShaderStorageBuffer0SubjectIndex; + ssboIndex < kShaderStorageBufferMaxSubjectIndex; ++ssboIndex) + { + mShaderStorageBufferObserverBindings.emplace_back(this, ssboIndex); + } + for (angle::SubjectIndex samplerIndex = kSampler0SubjectIndex; samplerIndex < kSamplerMaxSubjectIndex; ++samplerIndex) { mSamplerObserverBindings.emplace_back(this, samplerIndex); } @@ -397,16 +455,10 @@ { mImplementation->setMemoryProgramCache(mMemoryProgramCache); initCaps(); - if (mDisplay->getFrontendFeatures().syncFramebufferBindingsOnTexImage.enabled) - { - mTexImageDirtyBits.set(State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING); - mTexImageDirtyBits.set(State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING); - } - mState.initialize(this); mFenceNVHandleAllocator.setBaseHandle(0); // [OpenGL ES 2.0.24] section 3.7 page 83: @@ -430,11 +482,11 @@ { Texture *zeroTexture2DArray = new Texture(mImplementation.get(), {0}, TextureType::_2DArray); mZeroTextures[TextureType::_2DArray].set(this, zeroTexture2DArray); } - if (getClientVersion() >= Version(3, 1) || mSupportedExtensions.textureMultisample) + if (getClientVersion() >= Version(3, 1) || mSupportedExtensions.textureMultisampleANGLE) { Texture *zeroTexture2DMultisample = new Texture(mImplementation.get(), {0}, TextureType::_2DMultisample); mZeroTextures[TextureType::_2DMultisample].set(this, zeroTexture2DMultisample); } @@ -466,39 +518,42 @@ { Texture *zeroTextureBuffer = new Texture(mImplementation.get(), {0}, TextureType::Buffer); mZeroTextures[TextureType::Buffer].set(this, zeroTextureBuffer); } - if (mSupportedExtensions.textureRectangle) + if (mSupportedExtensions.textureRectangleANGLE) { Texture *zeroTextureRectangle = new Texture(mImplementation.get(), {0}, TextureType::Rectangle); mZeroTextures[TextureType::Rectangle].set(this, zeroTextureRectangle); } - if (mSupportedExtensions.eglImageExternalOES || - mSupportedExtensions.eglStreamConsumerExternalNV) + if (mSupportedExtensions.EGLImageExternalOES || + mSupportedExtensions.EGLStreamConsumerExternalNV) { Texture *zeroTextureExternal = new Texture(mImplementation.get(), {0}, TextureType::External); mZeroTextures[TextureType::External].set(this, zeroTextureExternal); } // This may change native TEXTURE_2D, TEXTURE_EXTERNAL_OES and TEXTURE_RECTANGLE, // binding states. Ensure state manager is aware of this when binding // this texture type. - if (mSupportedExtensions.webglVideoTexture) + if (mSupportedExtensions.videoTextureWEBGL) { Texture *zeroTextureVideoImage = new Texture(mImplementation.get(), {0}, TextureType::VideoImage); mZeroTextures[TextureType::VideoImage].set(this, zeroTextureVideoImage); } mState.initializeZeroTextures(this, mZeroTextures); ANGLE_CONTEXT_TRY(mImplementation->initialize()); + // Add context into the share group + mState.getShareGroup()->addSharedContext(this); + bindVertexArray({0}); if (getClientVersion() >= Version(3, 0)) { // [OpenGL ES 3.0.2] section 2.14.1 pg 85: @@ -589,28 +644,38 @@ mComputeDirtyObjects.set(State::DIRTY_OBJECT_SAMPLERS); mCopyImageDirtyBits.set(State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING); mCopyImageDirtyObjects.set(State::DIRTY_OBJECT_READ_FRAMEBUFFER); + mInvalidateDirtyBits.set(State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING); + mInvalidateDirtyBits.set(State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING); + // Initialize overlay after implementation is initialized. ANGLE_CONTEXT_TRY(mOverlay.init(this)); } egl::Error Context::onDestroy(const egl::Display *display) { + if (!mHasBeenCurrent) + { + // The context is never current, so default resources are not allocated. + return egl::NoError(); + } + + // eglDestoryContext() must have been called for this Context and there must not be any Threads + // that still have it current. + ASSERT(mIsDestroyed == true && mRefCount == 0); + // Dump frame capture if enabled. - mFrameCapture->onDestroyContext(this); + getShareGroup()->getFrameCaptureShared()->onDestroyContext(this); if (mGLES1Renderer) { mGLES1Renderer->onDestroy(this, &mState); } - if (mIsCurrent) - { - ANGLE_TRY(unMakeCurrent(display)); - } + ANGLE_TRY(unMakeCurrent(display)); for (auto fence : mFenceNVMap) { if (fence.second) { @@ -703,12 +768,10 @@ { mDisplay = display; if (!mHasBeenCurrent) { - ASSERT(!mIsCurrent); - initializeDefaultResources(); initRendererString(); initVersionStrings(); initExtensionStrings(); @@ -724,16 +787,13 @@ mState.setScissorParams(0, 0, width, height); mHasBeenCurrent = true; } - if (mIsCurrent) - { - ANGLE_TRY(unsetDefaultFramebuffer()); - } - - mFrameCapture->onMakeCurrent(this, drawSurface); + ANGLE_TRY(unsetDefaultFramebuffer()); + + getShareGroup()->getFrameCaptureShared()->onMakeCurrent(this, drawSurface); // TODO(jmadill): Rework this when we support ContextImpl mState.setAllDirtyBits(); mState.setAllDirtyObjects(); @@ -747,19 +807,15 @@ { ANGLE_TRY(unsetDefaultFramebuffer()); return angle::ResultToEGL(implResult); } - mIsCurrent = true; - return egl::NoError(); } egl::Error Context::unMakeCurrent(const egl::Display *display) { - ASSERT(mIsCurrent); - ANGLE_TRY(angle::ResultToEGL(mImplementation->onUnMakeCurrent(this))); ANGLE_TRY(unsetDefaultFramebuffer()); // Return the scratch buffers to the display so they can be shared with other contexts while @@ -771,12 +827,10 @@ if (mZeroFilledBuffer.valid()) { mDisplay->returnZeroFilledBuffer(mZeroFilledBuffer.release()); } - mIsCurrent = false; - return egl::NoError(); } BufferID Context::createBuffer() { @@ -865,11 +919,11 @@ // If frame capture is enabled, don't detach the shader since we need the following // to recreate the Shader and Program during MEC setup: // 1.) Shader ID // 2.) Shader source - if (!getFrameCapture()->enabled()) + if (!getShareGroup()->getFrameCaptureShared()->enabled()) { programObject->detachShader(this, shaderObject); } } @@ -1242,12 +1296,11 @@ ProgramPipeline *programPipeline = mState.mProgramPipelineManager->checkProgramPipelineAllocation(mImplementation.get(), pipeline); ASSERT(programPipeline); - ANGLE_CONTEXT_TRY(mState.useProgramStages(this, programPipeline, stages, shaderProgram)); - mStateCache.onProgramExecutableChange(this); + ANGLE_CONTEXT_TRY(programPipeline->useProgramStages(this, stages, shaderProgram)); } void Context::bindTransformFeedback(GLenum target, TransformFeedbackID transformFeedbackHandle) { ASSERT(target == GL_TRANSFORM_FEEDBACK); @@ -1259,11 +1312,16 @@ void Context::bindProgramPipeline(ProgramPipelineID pipelineHandle) { ProgramPipeline *pipeline = mState.mProgramPipelineManager->checkProgramPipelineAllocation( mImplementation.get(), pipelineHandle); ANGLE_CONTEXT_TRY(mState.setProgramPipelineBinding(this, pipeline)); + if (pipeline && pipeline->isLinked()) + { + ANGLE_CONTEXT_TRY(mState.onProgramPipelineExecutableChange(this)); + } mStateCache.onProgramExecutableChange(this); + mProgramPipelineObserverBinding.bind(pipeline); } void Context::beginQuery(QueryType target, QueryID query) { Query *queryObject = getOrCreateQuery(query, target); @@ -1309,14 +1367,14 @@ break; case GL_QUERY_COUNTER_BITS_EXT: switch (target) { case QueryType::TimeElapsed: - params[0] = getExtensions().queryCounterBitsTimeElapsed; + params[0] = getCaps().queryCounterBitsTimeElapsed; break; case QueryType::Timestamp: - params[0] = getExtensions().queryCounterBitsTimestamp; + params[0] = getCaps().queryCounterBitsTimestamp; break; default: UNREACHABLE(); params[0] = 0; break; @@ -1499,22 +1557,32 @@ case GL_SMOOTH_LINE_WIDTH_RANGE: params[0] = mState.mCaps.minSmoothLineWidth; params[1] = mState.mCaps.maxSmoothLineWidth; break; case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: - ASSERT(mState.mExtensions.textureFilterAnisotropic); - *params = mState.mExtensions.maxTextureAnisotropy; + ASSERT(mState.mExtensions.textureFilterAnisotropicEXT); + *params = mState.mCaps.maxTextureAnisotropy; break; case GL_MAX_TEXTURE_LOD_BIAS: *params = mState.mCaps.maxLODBias; break; case GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: *params = mState.mCaps.minInterpolationOffset; break; case GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: *params = mState.mCaps.maxInterpolationOffset; break; + case GL_PRIMITIVE_BOUNDING_BOX: + params[0] = mState.mBoundingBoxMinX; + params[1] = mState.mBoundingBoxMinY; + params[2] = mState.mBoundingBoxMinZ; + params[3] = mState.mBoundingBoxMinW; + params[4] = mState.mBoundingBoxMaxX; + params[5] = mState.mBoundingBoxMaxY; + params[6] = mState.mBoundingBoxMaxZ; + params[7] = mState.mBoundingBoxMaxW; + break; default: mState.getFloatv(pname, params); break; } } @@ -1668,13 +1736,20 @@ *params = static_cast(mExtensionStrings.size()); break; // Desktop client flags case GL_CONTEXT_FLAGS: + { ASSERT(getClientType() == EGL_OPENGL_API); - *params = 0; - break; + GLint contextFlags = 0; + if (mState.hasProtectedContent()) + { + contextFlags |= GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT; + } + *params = contextFlags; + } + break; case GL_CONTEXT_PROFILE_MASK: ASSERT(getClientType() == EGL_OPENGL_API); *params = GL_CONTEXT_COMPATIBILITY_PROFILE_BIT; break; @@ -1683,25 +1758,25 @@ *params = static_cast(mRequestableExtensionStrings.size()); break; // GL_KHR_debug case GL_MAX_DEBUG_MESSAGE_LENGTH: - *params = mState.mExtensions.maxDebugMessageLength; + *params = mState.mCaps.maxDebugMessageLength; break; case GL_MAX_DEBUG_LOGGED_MESSAGES: - *params = mState.mExtensions.maxDebugLoggedMessages; + *params = mState.mCaps.maxDebugLoggedMessages; break; case GL_MAX_DEBUG_GROUP_STACK_DEPTH: - *params = mState.mExtensions.maxDebugGroupStackDepth; + *params = mState.mCaps.maxDebugGroupStackDepth; break; case GL_MAX_LABEL_LENGTH: - *params = mState.mExtensions.maxLabelLength; + *params = mState.mCaps.maxLabelLength; break; // GL_OVR_multiview2 case GL_MAX_VIEWS_OVR: - *params = mState.mExtensions.maxViews; + *params = mState.mCaps.maxViews; break; // GL_EXT_disjoint_timer_query case GL_GPU_DISJOINT_EXT: *params = mImplementation->getGPUDisjoint(); @@ -2021,11 +2096,11 @@ *params = mState.getMaxShaderCompilerThreads(); break; // GL_EXT_blend_func_extended case GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT: - *params = mState.mExtensions.maxDualSourceDrawBuffers; + *params = mState.mCaps.maxDualSourceDrawBuffers; break; // OES_shader_multisample_interpolation case GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES: *params = mState.mCaps.subPixelInterpolationOffsetBits; @@ -2447,10 +2522,11 @@ GLsizei instanceCount) { // No-op if count draws no primitives for given mode if (noopDrawInstanced(mode, count, instanceCount)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY( @@ -2466,10 +2542,11 @@ GLsizei instances) { // No-op if count draws no primitives for given mode if (noopDrawInstanced(mode, count, instances)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY( @@ -2484,10 +2561,11 @@ GLint basevertex) { // No-op if count draws no primitives for given mode if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY( @@ -2503,10 +2581,11 @@ GLint basevertex) { // No-op if count draws no primitives for given mode if (noopDrawInstanced(mode, count, instancecount)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY(mImplementation->drawElementsInstancedBaseVertex( @@ -2522,10 +2601,11 @@ const void *indices) { // No-op if count draws no primitives for given mode if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY( @@ -2542,10 +2622,11 @@ GLint basevertex) { // No-op if count draws no primitives for given mode if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY(mImplementation->drawRangeElementsBaseVertex(this, mode, start, end, count, @@ -2687,13 +2768,15 @@ unsigned int line) { mErrors.handleError(errorCode, message, file, function, line); } -void Context::validationError(GLenum errorCode, const char *message) const -{ - const_cast(this)->mErrors.validationError(errorCode, message); +void Context::validationError(angle::EntryPoint entryPoint, + GLenum errorCode, + const char *message) const +{ + const_cast(this)->mErrors.validationError(entryPoint, errorCode, message); } // Get one of the recorded errors and clear its flag, if any. // [OpenGL ES 2.0.24] section 2.5 page 13. GLenum Context::getError() @@ -2727,11 +2810,15 @@ // Stop skipping validation, since many implementation entrypoint assume they can't // be called when lost, or with null object arguments, etc. mSkipValidation = false; // Make sure we update TLS. +#if defined(ANGLE_PLATFORM_APPLE) + SetCurrentValidContextTLS(nullptr); +#else gCurrentValidContext = nullptr; +#endif } GLenum Context::getGraphicsResetStatus() { // Even if the application doesn't want to know about resets, we want to know @@ -3129,11 +3216,11 @@ if (getClientType() == EGL_OPENGL_ES_API) { versionString << "OpenGL ES "; } versionString << clientVersion.major << "." << clientVersion.minor << ".0 (ANGLE " - << ANGLE_VERSION_STRING << ")"; + << angle::GetANGLEVersionString() << ")"; mVersionString = MakeStaticString(versionString.str()); std::ostringstream shadingLanguageVersionString; if (getClientType() == EGL_OPENGL_ES_API) { @@ -3143,12 +3230,12 @@ { ASSERT(getClientType() == EGL_OPENGL_API); shadingLanguageVersionString << "OpenGL GLSL "; } shadingLanguageVersionString << (clientVersion.major == 2 ? 1 : clientVersion.major) << "." - << clientVersion.minor << "0 (ANGLE " << ANGLE_VERSION_STRING - << ")"; + << clientVersion.minor << "0 (ANGLE " + << angle::GetANGLEVersionString() << ")"; mShadingLanguageString = MakeStaticString(shadingLanguageVersionString.str()); } void Context::initExtensionStrings() { @@ -3353,195 +3440,190 @@ Extensions Context::generateSupportedExtensions() const { Extensions supportedExtensions = mImplementation->getNativeExtensions(); // Explicitly enable GL_KHR_parallel_shader_compile - supportedExtensions.parallelShaderCompile = true; + supportedExtensions.parallelShaderCompileKHR = true; if (getClientVersion() < ES_2_0) { // Default extensions for GLES1 - supportedExtensions.pointSizeArrayOES = true; - supportedExtensions.textureCubeMapOES = true; - supportedExtensions.pointSpriteOES = true; - supportedExtensions.drawTextureOES = true; - supportedExtensions.framebufferObjectOES = true; - supportedExtensions.parallelShaderCompile = false; - supportedExtensions.texture3DOES = false; - supportedExtensions.clipDistanceAPPLE = false; + supportedExtensions.pointSizeArrayOES = true; + supportedExtensions.textureCubeMapOES = true; + supportedExtensions.pointSpriteOES = true; + supportedExtensions.drawTextureOES = true; + supportedExtensions.framebufferObjectOES = true; + supportedExtensions.parallelShaderCompileKHR = false; + supportedExtensions.texture3DOES = false; + supportedExtensions.clipDistanceAPPLE = false; } if (getClientVersion() < ES_3_0) { // Disable ES3+ extensions - supportedExtensions.colorBufferFloat = false; - supportedExtensions.eglImageExternalEssl3OES = false; - supportedExtensions.textureNorm16 = false; - supportedExtensions.multiview = false; - supportedExtensions.multiview2 = false; - supportedExtensions.maxViews = 1u; - supportedExtensions.copyTexture3d = false; - supportedExtensions.textureMultisample = false; - supportedExtensions.drawBuffersIndexedEXT = false; - supportedExtensions.drawBuffersIndexedOES = false; - supportedExtensions.eglImageArray = false; - supportedExtensions.textureSRGBOverride = false; + supportedExtensions.colorBufferFloatEXT = false; + supportedExtensions.EGLImageExternalEssl3OES = false; + supportedExtensions.textureNorm16EXT = false; + supportedExtensions.multiviewOVR = false; + supportedExtensions.multiview2OVR = false; + supportedExtensions.copyTexture3dANGLE = false; + supportedExtensions.textureMultisampleANGLE = false; + supportedExtensions.drawBuffersIndexedEXT = false; + supportedExtensions.drawBuffersIndexedOES = false; + supportedExtensions.EGLImageArrayEXT = false; + supportedExtensions.textureFormatSRGBOverrideEXT = false; // Requires glCompressedTexImage3D - supportedExtensions.textureCompressionASTCOES = false; + supportedExtensions.textureCompressionAstcOES = false; // Don't expose GL_EXT_texture_sRGB_decode without sRGB texture support - if (!supportedExtensions.sRGB) + if (!supportedExtensions.sRGBEXT) { - supportedExtensions.textureSRGBDecode = false; + supportedExtensions.textureSRGBDecodeEXT = false; } // Don't expose GL_OES_texture_float_linear without full legacy float texture support // The renderer may report OES_texture_float_linear without OES_texture_float // This is valid in a GLES 3.0 context, but not in a GLES 2.0 context - if (!(supportedExtensions.textureFloatOES && supportedExtensions.textureHalfFloat)) + if (!(supportedExtensions.textureFloatOES && supportedExtensions.textureHalfFloatOES)) { - supportedExtensions.textureFloatLinearOES = false; - supportedExtensions.textureHalfFloatLinear = false; + supportedExtensions.textureFloatLinearOES = false; + supportedExtensions.textureHalfFloatLinearOES = false; } // Because of the difference in the SNORM to FLOAT conversion formula // between GLES 2.0 and 3.0, vertex type 10_10_10_2 is disabled // when the context version is lower than 3.0 - supportedExtensions.vertexAttribType1010102OES = false; + supportedExtensions.vertexType1010102OES = false; // GL_EXT_YUV_target requires ESSL3 - supportedExtensions.yuvTargetEXT = false; + supportedExtensions.YUVTargetEXT = false; // GL_EXT_clip_cull_distance requires ESSL3 supportedExtensions.clipCullDistanceEXT = false; } if (getClientVersion() < ES_3_1) { // Disable ES3.1+ extensions - supportedExtensions.geometryShader = false; + supportedExtensions.geometryShaderEXT = false; + supportedExtensions.geometryShaderOES = false; supportedExtensions.tessellationShaderEXT = false; // TODO(http://anglebug.com/2775): Multisample arrays could be supported on ES 3.0 as well // once 2D multisample texture extension is exposed there. - supportedExtensions.textureStorageMultisample2DArrayOES = false; + supportedExtensions.textureStorageMultisample2dArrayOES = false; } if (getClientVersion() > ES_2_0) { // FIXME(geofflang): Don't support EXT_sRGB in non-ES2 contexts // supportedExtensions.sRGB = false; - // If colorBufferFloat is disabled but colorBufferHalfFloat is enabled, then we will expose - // some floating-point formats as color buffer targets but reject blits between fixed-point - // and floating-point formats (this behavior is only enabled in colorBufferFloat, and must - // be rejected if only colorBufferHalfFloat is enabled). + // If colorBufferFloatEXT is disabled but colorBufferHalfFloatEXT is enabled, then we will + // expose some floating-point formats as color buffer targets but reject blits between + // fixed-point and floating-point formats (this behavior is only enabled in + // colorBufferFloatEXT, and must be rejected if only colorBufferHalfFloatEXT is enabled). // dEQP does not check for this, and will assume that floating-point and fixed-point formats // can be blit onto each other if the format is available. - // We require colorBufferFloat to be present in order to enable colorBufferHalfFloat, so - // that blitting is always allowed if the requested formats are exposed and have the correct - // feature capabilities. - // WebGL 2 wants to support colorBufferHalfFloat without colorBufferFloat. - if (!supportedExtensions.colorBufferFloat && !mWebGLContext) + // We require colorBufferFloatEXT to be present in order to enable colorBufferHalfFloatEXT, + // so that blitting is always allowed if the requested formats are exposed and have the + // correct feature capabilities. WebGL 2 wants to support colorBufferHalfFloatEXT without + // colorBufferFloatEXT. + if (!supportedExtensions.colorBufferFloatEXT && !mWebGLContext) { - supportedExtensions.colorBufferHalfFloat = false; + supportedExtensions.colorBufferHalfFloatEXT = false; } // Disable support for CHROMIUM_color_buffer_float_rgb[a] in ES 3.0+, these extensions are // non-conformant in ES 3.0 and superseded by EXT_color_buffer_float. - supportedExtensions.colorBufferFloatRGB = false; - supportedExtensions.colorBufferFloatRGBA = false; + supportedExtensions.colorBufferFloatRgbCHROMIUM = false; + supportedExtensions.colorBufferFloatRgbaCHROMIUM = false; } if (getFrontendFeatures().disableAnisotropicFiltering.enabled) { - supportedExtensions.textureFilterAnisotropic = false; + supportedExtensions.textureFilterAnisotropicEXT = false; } // Some extensions are always available because they are implemented in the GL layer. - supportedExtensions.bindUniformLocation = true; - supportedExtensions.vertexArrayObjectOES = true; - supportedExtensions.bindGeneratesResource = true; - supportedExtensions.clientArrays = true; - supportedExtensions.requestExtension = true; - supportedExtensions.multiDraw = true; + supportedExtensions.bindUniformLocationCHROMIUM = true; + supportedExtensions.vertexArrayObjectOES = true; + supportedExtensions.bindGeneratesResourceCHROMIUM = true; + supportedExtensions.clientArraysANGLE = true; + supportedExtensions.requestExtensionANGLE = true; + supportedExtensions.multiDrawANGLE = true; // Enable the no error extension if the context was created with the flag. - supportedExtensions.noError = mSkipValidation; + supportedExtensions.noErrorKHR = mSkipValidation; // Enable surfaceless to advertise we'll have the correct behavior when there is no default FBO supportedExtensions.surfacelessContextOES = mSurfacelessSupported; // Explicitly enable GL_KHR_debug - supportedExtensions.debug = true; - supportedExtensions.maxDebugMessageLength = 1024; - supportedExtensions.maxDebugLoggedMessages = 1024; - supportedExtensions.maxDebugGroupStackDepth = 1024; - supportedExtensions.maxLabelLength = 1024; + supportedExtensions.debugKHR = true; // Explicitly enable GL_EXT_debug_label - supportedExtensions.debugLabel = true; + supportedExtensions.debugLabelEXT = true; // Explicitly enable GL_ANGLE_robust_client_memory if the context supports validation. - supportedExtensions.robustClientMemory = !mSkipValidation; + supportedExtensions.robustClientMemoryANGLE = !mSkipValidation; // Determine robust resource init availability from EGL. - supportedExtensions.robustResourceInitialization = mState.isRobustResourceInitEnabled(); - - // mState.mExtensions.robustBufferAccessBehavior is true only if robust access is true and the - // backend supports it. - supportedExtensions.robustBufferAccessBehavior = - mRobustAccess && supportedExtensions.robustBufferAccessBehavior; + supportedExtensions.robustResourceInitializationANGLE = mState.isRobustResourceInitEnabled(); + + // mState.mExtensions.robustBufferAccessBehaviorKHR is true only if robust access is true and + // the backend supports it. + supportedExtensions.robustBufferAccessBehaviorKHR = + mRobustAccess && supportedExtensions.robustBufferAccessBehaviorKHR; // Enable the cache control query unconditionally. - supportedExtensions.programCacheControl = true; - - // Enable EGL_ANGLE_explicit_context subextensions - if (mExplicitContextAvailable) - { - // GL_ANGLE_explicit_context_gles1 - supportedExtensions.explicitContextGles1 = true; - // GL_ANGLE_explicit_context - supportedExtensions.explicitContext = true; - } + supportedExtensions.programCacheControlANGLE = true; // If EGL_KHR_fence_sync is not enabled, don't expose GL_OES_EGL_sync. ASSERT(mDisplay); if (!mDisplay->getExtensions().fenceSync) { - supportedExtensions.eglSyncOES = false; + supportedExtensions.EGLSyncOES = false; } if (mDisplay->getExtensions().robustnessVideoMemoryPurgeNV) { supportedExtensions.robustnessVideoMemoryPurgeNV = true; } - supportedExtensions.memorySize = true; + supportedExtensions.memorySizeANGLE = true; // GL_CHROMIUM_lose_context is implemented in the frontend supportedExtensions.loseContextCHROMIUM = true; // The ASTC texture extensions have dependency requirements. - if (supportedExtensions.textureCompressionASTCHDRKHR || - supportedExtensions.textureCompressionSliced3dASTCKHR) + if (supportedExtensions.textureCompressionAstcHdrKHR || + supportedExtensions.textureCompressionAstcSliced3dKHR) { // GL_KHR_texture_compression_astc_hdr cannot be exposed without also exposing // GL_KHR_texture_compression_astc_ldr - ASSERT(supportedExtensions.textureCompressionASTCLDRKHR); - } - - if (supportedExtensions.textureCompressionASTCOES) + ASSERT(supportedExtensions.textureCompressionAstcLdrKHR); + } + + if (supportedExtensions.textureCompressionAstcOES) { // GL_OES_texture_compression_astc cannot be exposed without also exposing // GL_KHR_texture_compression_astc_ldr and GL_KHR_texture_compression_astc_hdr - ASSERT(supportedExtensions.textureCompressionASTCLDRKHR); - ASSERT(supportedExtensions.textureCompressionASTCHDRKHR); - } - - // GL_ANGLE_get_tex_level_parameter is implemented in the frontend + ASSERT(supportedExtensions.textureCompressionAstcLdrKHR); + ASSERT(supportedExtensions.textureCompressionAstcHdrKHR); + } + + // GL_KHR_protected_textures + // If EGL_KHR_protected_content is not supported then GL_EXT_protected_texture + // can not be supported. + if (!mDisplay->getExtensions().protectedContentEXT) + { + supportedExtensions.protectedTexturesEXT = false; + } + + // GL_ANGLE_get_tex_level_parameter is implemented in the front-end supportedExtensions.getTexLevelParameterANGLE = true; // Always enabled. Will return a default string if capture is not enabled. supportedExtensions.getSerializedContextStringANGLE = true; @@ -3550,43 +3632,44 @@ void Context::initCaps() { mState.mCaps = mImplementation->getNativeCaps(); + // TODO (http://anglebug.com/6010): mSupportedExtensions should not be modified here mSupportedExtensions = generateSupportedExtensions(); if (!mDisplay->getFrontendFeatures().allowCompressedFormats.enabled) { INFO() << "Limiting compressed format support.\n"; mSupportedExtensions.compressedEACR11SignedTextureOES = false; mSupportedExtensions.compressedEACR11UnsignedTextureOES = false; mSupportedExtensions.compressedEACRG11SignedTextureOES = false; mSupportedExtensions.compressedEACRG11UnsignedTextureOES = false; - mSupportedExtensions.compressedETC1RGB8SubTexture = false; + mSupportedExtensions.compressedETC1RGB8SubTextureEXT = false; mSupportedExtensions.compressedETC1RGB8TextureOES = false; - mSupportedExtensions.compressedETC2PunchthroughARGB8TextureOES = false; - mSupportedExtensions.compressedETC2PunchthroughAsRGB8AlphaTextureOES = false; + mSupportedExtensions.compressedETC2PunchthroughARGBA8TextureOES = false; + mSupportedExtensions.compressedETC2PunchthroughASRGB8AlphaTextureOES = false; mSupportedExtensions.compressedETC2RGB8TextureOES = false; mSupportedExtensions.compressedETC2RGBA8TextureOES = false; - mSupportedExtensions.compressedETC2sRGB8Alpha8TextureOES = false; - mSupportedExtensions.compressedETC2sRGB8TextureOES = false; - mSupportedExtensions.compressedTextureETC = false; - mSupportedExtensions.compressedTexturePVRTC = false; - mSupportedExtensions.compressedTexturePVRTCsRGB = false; - mSupportedExtensions.copyCompressedTexture = false; - mSupportedExtensions.textureCompressionASTCHDRKHR = false; - mSupportedExtensions.textureCompressionASTCLDRKHR = false; - mSupportedExtensions.textureCompressionASTCOES = false; - mSupportedExtensions.textureCompressionBPTC = false; - mSupportedExtensions.textureCompressionDXT1 = false; - mSupportedExtensions.textureCompressionDXT3 = false; - mSupportedExtensions.textureCompressionDXT5 = false; - mSupportedExtensions.textureCompressionRGTC = false; - mSupportedExtensions.textureCompressionS3TCsRGB = false; - mSupportedExtensions.textureCompressionSliced3dASTCKHR = false; - mSupportedExtensions.textureFilteringCHROMIUM = false; + mSupportedExtensions.compressedETC2SRGB8Alpha8TextureOES = false; + mSupportedExtensions.compressedETC2SRGB8TextureOES = false; + mSupportedExtensions.compressedTextureEtcANGLE = false; + mSupportedExtensions.textureCompressionPvrtcIMG = false; + mSupportedExtensions.pvrtcSRGBEXT = false; + mSupportedExtensions.copyCompressedTextureCHROMIUM = false; + mSupportedExtensions.textureCompressionAstcHdrKHR = false; + mSupportedExtensions.textureCompressionAstcLdrKHR = false; + mSupportedExtensions.textureCompressionAstcOES = false; + mSupportedExtensions.textureCompressionBptcEXT = false; + mSupportedExtensions.textureCompressionDxt1EXT = false; + mSupportedExtensions.textureCompressionDxt3ANGLE = false; + mSupportedExtensions.textureCompressionDxt5ANGLE = false; + mSupportedExtensions.textureCompressionRgtcEXT = false; + mSupportedExtensions.textureCompressionS3tcSrgbEXT = false; + mSupportedExtensions.textureCompressionAstcSliced3dKHR = false; + mSupportedExtensions.textureFilteringHintCHROMIUM = false; mState.mCaps.compressedTextureFormats.clear(); } mState.mExtensions = mSupportedExtensions; @@ -3606,10 +3689,20 @@ mState.mCaps.maxSmoothPointSize = 1.0f; mState.mCaps.minSmoothLineWidth = 1.0f; mState.mCaps.maxSmoothLineWidth = 1.0f; } + mState.mCaps.maxDebugMessageLength = 1024; + mState.mCaps.maxDebugLoggedMessages = 1024; + mState.mCaps.maxDebugGroupStackDepth = 1024; + mState.mCaps.maxLabelLength = 1024; + + if (getClientVersion() < Version(3, 0)) + { + mState.mCaps.maxViews = 1u; + } + #if 0 // This logging can generate a lot of spam in test suites that create many contexts # define ANGLE_LOG_LIMITED_CAP(cap, limit) \ INFO() << "Limiting " << #cap << " to implementation limit " << (limit) << " (was " \ << (cap) << ")." @@ -3722,12 +3815,17 @@ ANGLE_LIMIT_CAP(mState.mCaps.maxFramebufferLayers, IMPLEMENTATION_MAX_FRAMEBUFFER_LAYERS); ANGLE_LIMIT_CAP(mState.mCaps.maxSampleMaskWords, MAX_SAMPLE_MASK_WORDS); + ANGLE_LIMIT_CAP(mState.mCaps.maxViews, IMPLEMENTATION_ANGLE_MULTIVIEW_MAX_VIEWS); + + ANGLE_LIMIT_CAP(mState.mCaps.maxDualSourceDrawBuffers, + IMPLEMENTATION_MAX_DUAL_SOURCE_DRAW_BUFFERS); + // WebGL compatibility - mState.mExtensions.webglCompatibility = mWebGLContext; + mState.mExtensions.webglCompatibilityANGLE = mWebGLContext; for (const auto &extensionInfo : GetExtensionInfoMap()) { // If the user has requested that extensions start disabled and they are requestable, // disable them. if (!mExtensionsEnabled && extensionInfo.second.Requestable) @@ -3740,21 +3838,28 @@ if (mWebGLContext && getLimitations().emulatedEtc1) { mSupportedExtensions.compressedETC1RGB8TextureOES = false; } - // If we're capturing application calls for replay, don't expose any binary formats to prevent - // traces from trying to use cached results - if (getFrameCapture()->enabled() || getFrontendFeatures().captureLimits.enabled) + // If we're capturing application calls for replay, apply some feature limits to increase + // portability of the trace. + if (getShareGroup()->getFrameCaptureShared()->enabled() || + getFrontendFeatures().captureLimits.enabled) { INFO() << "Limit some features because " - << (getFrameCapture()->enabled() ? "FrameCapture is enabled" - : "FrameCapture limits were forced") + << (getShareGroup()->getFrameCaptureShared()->enabled() + ? "FrameCapture is enabled" + : "FrameCapture limits were forced") << std::endl; - INFO() << "Limiting binary format support count to zero"; - mDisplay->overrideFrontendFeatures({"disable_program_binary"}, true); + if (!getFrontendFeatures().enableProgramBinaryForCapture.enabled) + { + // Some apps insist on being able to use glProgramBinary. For those, we'll allow the + // extension to remain on. Otherwise, force the extension off. + INFO() << "Disabling GL_OES_get_program_binary for trace portability"; + mDisplay->overrideFrontendFeatures({"disable_program_binary"}, true); + } // Set to the most common limit per gpuinfo.org. Required for several platforms we test. constexpr GLint maxImageUnits = 8; INFO() << "Limiting image unit count to " << maxImageUnits; ANGLE_LIMIT_CAP(mState.mCaps.maxImageUnits, maxImageUnits); @@ -3765,35 +3870,61 @@ constexpr GLint uniformBufferOffsetAlignment = 256; ASSERT(uniformBufferOffsetAlignment % mState.mCaps.uniformBufferOffsetAlignment == 0); INFO() << "Setting uniform buffer offset alignment to " << uniformBufferOffsetAlignment; mState.mCaps.uniformBufferOffsetAlignment = uniformBufferOffsetAlignment; + // Also limit texture buffer offset alignment, if enabled + if (mState.mExtensions.textureBufferAny()) + { + constexpr GLint textureBufferOffsetAlignment = + gl::limits::kMinTextureBufferOffsetAlignment; + ASSERT(textureBufferOffsetAlignment % mState.mCaps.textureBufferOffsetAlignment == 0); + INFO() << "Setting texture buffer offset alignment to " << textureBufferOffsetAlignment; + mState.mCaps.textureBufferOffsetAlignment = textureBufferOffsetAlignment; + } + INFO() << "Disabling GL_EXT_map_buffer_range and GL_OES_mapbuffer during capture, which " "are not supported on some native drivers"; - mState.mExtensions.mapBufferRange = false; - mState.mExtensions.mapBufferOES = false; + mState.mExtensions.mapBufferRangeEXT = false; + mState.mExtensions.mapbufferOES = false; INFO() << "Disabling GL_CHROMIUM_bind_uniform_location during capture, which is not " "supported on native drivers"; - mState.mExtensions.bindUniformLocation = false; + mState.mExtensions.bindUniformLocationCHROMIUM = false; INFO() << "Disabling GL_NV_shader_noperspective_interpolation during capture, which is not " "supported on some native drivers"; - mState.mExtensions.noperspectiveInterpolationNV = false; - - // Nvidia's Vulkan driver only supports 4 draw buffers + mState.mExtensions.shaderNoperspectiveInterpolationNV = false; + + // NVIDIA's Vulkan driver only supports 4 draw buffers constexpr GLint maxDrawBuffers = 4; INFO() << "Limiting draw buffer count to " << maxDrawBuffers; ANGLE_LIMIT_CAP(mState.mCaps.maxDrawBuffers, maxDrawBuffers); + + // Unity based applications are sending down GL streams with undefined behavior. + // Disabling EGL_KHR_create_context_no_error (which enables a new EGL attrib) prevents that, + // but we don't have the infrastructure for disabling EGL extensions yet. + // Instead, disable GL_KHR_no_error (which disables exposing the GL extension), which + // prevents writing invalid calls to the capture. + INFO() << "Enabling validation to prevent invalid calls from being captured. This " + "effectively disables GL_KHR_no_error and enables GL_ANGLE_robust_client_memory."; + mSkipValidation = false; + mState.mExtensions.noErrorKHR = mSkipValidation; + mState.mExtensions.robustClientMemoryANGLE = !mSkipValidation; + + INFO() << "Disabling GL_OES_depth32 during capture, which is not widely supported on " + "mobile"; + mState.mExtensions.depth32OES = false; } // Disable support for OES_get_program_binary if (mDisplay->getFrontendFeatures().disableProgramBinary.enabled) { mState.mExtensions.getProgramBinaryOES = false; mState.mCaps.shaderBinaryFormats.clear(); mState.mCaps.programBinaryFormats.clear(); + mMemoryProgramCache = nullptr; } #undef ANGLE_LIMIT_CAP #undef ANGLE_LOG_CAP_LIMIT @@ -3828,11 +3959,11 @@ formatCaps.blendable && formatInfo.blendSupport(getClientVersion(), mState.mExtensions); // OpenGL ES does not support multisampling with non-rendererable formats // OpenGL ES 3.0 or prior does not support multisampling with integer formats if (!formatCaps.renderbuffer || - (getClientVersion() < ES_3_1 && !mSupportedExtensions.textureMultisample && + (getClientVersion() < ES_3_1 && !mSupportedExtensions.textureMultisampleANGLE && formatInfo.isInt())) { formatCaps.sampleCounts.clear(); } else @@ -3850,11 +3981,11 @@ mState.mCaps.maxSamples = std::min(static_cast(mState.mCaps.maxSamples), formatMaxSamples); } // Handle GLES 3.1 MAX_*_SAMPLES values similarly to MAX_SAMPLES. - if (getClientVersion() >= ES_3_1 || mSupportedExtensions.textureMultisample) + if (getClientVersion() >= ES_3_1 || mSupportedExtensions.textureMultisampleANGLE) { // GLES 3.1 section 9.2.5: "Implementations must support creation of renderbuffers // in these required formats with up to the value of MAX_SAMPLES multisamples, with // the exception that the signed and unsigned integer formats are required only to // support creation of renderbuffers with up to the value of MAX_INTEGER_SAMPLES @@ -3929,11 +4060,11 @@ { mValidBufferBindings.set(BufferBinding::Texture); } mThreadPool = angle::WorkerThreadPool::Create( - mState.mExtensions.parallelShaderCompile || + mState.mExtensions.parallelShaderCompileKHR || getFrontendFeatures().enableCompressingPipelineCacheInThreadPool.enabled); // Reinitialize some dirty bits that depend on extensions. if (mState.isRobustResourceInitEnabled()) { @@ -3949,12 +4080,12 @@ mCopyImageDirtyObjects.set(State::DIRTY_OBJECT_READ_ATTACHMENTS); } // We need to validate buffer bounds if we are in a WebGL or robust access context and the // back-end does not support robust buffer access behaviour. - mBufferAccessValidationEnabled = - (!mSupportedExtensions.robustBufferAccessBehavior && (mState.isWebGL() || mRobustAccess)); + mBufferAccessValidationEnabled = (!mSupportedExtensions.robustBufferAccessBehaviorKHR && + (mState.isWebGL() || mRobustAccess)); // Cache this in the VertexArrays. They need to check it in state change notifications. for (auto vaoIter : mVertexArrayMap) { VertexArray *vao = vaoIter.second; @@ -3986,19 +4117,15 @@ } ANGLE_INLINE angle::Result Context::prepareForCopyImage() { ANGLE_TRY(syncDirtyObjects(mCopyImageDirtyObjects, Command::CopyImage)); - return syncDirtyBits(mCopyImageDirtyBits); + return syncDirtyBits(mCopyImageDirtyBits, Command::CopyImage); } ANGLE_INLINE angle::Result Context::prepareForDispatch() { - // We always assume PPOs are used for draws, until they aren't. If we are executing a dispatch - // with a PPO, we need to convert it from a "draw"-type to "dispatch"-type. - convertPpoToComputeOrDraw(true); - // Converting a PPO from graphics to compute requires re-linking it. // The compute shader must have successfully linked before being included in the PPO, so no link // errors that would have been caught during validation should be possible when re-linking the // PPO with the compute shader. Program *program = mState.getProgram(); @@ -4011,19 +4138,32 @@ // place. ANGLE_CHECK(this, goodResult, "Program pipeline link failed", GL_INVALID_OPERATION); } ANGLE_TRY(syncDirtyObjects(mComputeDirtyObjects, Command::Dispatch)); - return syncDirtyBits(mComputeDirtyBits); + return syncDirtyBits(mComputeDirtyBits, Command::Dispatch); +} + +angle::Result Context::prepareForInvalidate(GLenum target) +{ + // Only sync the FBO that's being invalidated. Per the GLES3 spec, GL_FRAMEBUFFER is equivalent + // to GL_DRAW_FRAMEBUFFER for the purposes of invalidation. + GLenum effectiveTarget = target; + if (effectiveTarget == GL_FRAMEBUFFER) + { + effectiveTarget = GL_DRAW_FRAMEBUFFER; + } + ANGLE_TRY(mState.syncDirtyObject(this, effectiveTarget)); + return syncDirtyBits(mInvalidateDirtyBits, Command::Invalidate); } angle::Result Context::syncState(const State::DirtyBits &bitMask, const State::DirtyObjects &objectMask, Command command) { ANGLE_TRY(syncDirtyObjects(objectMask, command)); - ANGLE_TRY(syncDirtyBits(bitMask)); + ANGLE_TRY(syncDirtyBits(bitMask, command)); return angle::Result::Continue; } void Context::blitFramebuffer(GLint srcX0, GLint srcY0, @@ -4655,19 +4795,13 @@ mState.setObjectDirty(GL_READ_FRAMEBUFFER); } void Context::discardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments) { - // Only sync the FBO - ANGLE_CONTEXT_TRY(mState.syncDirtyObject(this, target)); - - Framebuffer *framebuffer = mState.getTargetFramebuffer(target); - ASSERT(framebuffer); - // The specification isn't clear what should be done when the framebuffer isn't complete. - // We leave it up to the framebuffer implementation to decide what to do. - ANGLE_CONTEXT_TRY(framebuffer->discard(this, numAttachments, attachments)); + // We threat it the same way as GLES3 glInvalidateFramebuffer. + invalidateFramebuffer(target, numAttachments, attachments); } void Context::invalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments) @@ -4679,12 +4813,11 @@ if (!framebuffer->isComplete(this)) { return; } - // Only sync the FBO - ANGLE_CONTEXT_TRY(mState.syncDirtyObject(this, target)); + ANGLE_CONTEXT_TRY(prepareForInvalidate(target)); ANGLE_CONTEXT_TRY(framebuffer->invalidate(this, numAttachments, attachments)); } void Context::invalidateSubFramebuffer(GLenum target, GLsizei numAttachments, @@ -4701,12 +4834,11 @@ { return; } Rectangle area(x, y, width, height); - // Only sync the FBO - ANGLE_CONTEXT_TRY(mState.syncDirtyObject(this, target)); + ANGLE_CONTEXT_TRY(prepareForInvalidate(target)); ANGLE_CONTEXT_TRY(framebuffer->invalidateSub(this, numAttachments, attachments, area)); } void Context::texImage2D(TextureTarget target, GLint level, @@ -5459,11 +5591,11 @@ case GL_PACK_REVERSE_ROW_ORDER_ANGLE: mState.setPackReverseRowOrder(param != 0); break; case GL_UNPACK_ROW_LENGTH: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimageEXT); mState.setUnpackRowLength(param); break; case GL_UNPACK_IMAGE_HEIGHT: ASSERT(getClientMajorVersion() >= 3); @@ -5474,31 +5606,31 @@ ASSERT(getClientMajorVersion() >= 3); mState.setUnpackSkipImages(param); break; case GL_UNPACK_SKIP_ROWS: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimageEXT); mState.setUnpackSkipRows(param); break; case GL_UNPACK_SKIP_PIXELS: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().unpackSubimageEXT); mState.setUnpackSkipPixels(param); break; case GL_PACK_ROW_LENGTH: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimageNV); mState.setPackRowLength(param); break; case GL_PACK_SKIP_ROWS: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimageNV); mState.setPackSkipRows(param); break; case GL_PACK_SKIP_PIXELS: - ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimage); + ASSERT((getClientMajorVersion() >= 3) || getExtensions().packSubimageNV); mState.setPackSkipPixels(param); break; default: UNREACHABLE(); @@ -5663,11 +5795,11 @@ mStateCache.onVertexArrayStateChange(this); } void Context::vertexBindingDivisor(GLuint bindingIndex, GLuint divisor) { - mState.setVertexBindingDivisor(bindingIndex, divisor); + mState.setVertexBindingDivisor(this, bindingIndex, divisor); mStateCache.onVertexArrayFormatChange(this); } void Context::viewport(GLint x, GLint y, GLsizei width, GLsizei height) { @@ -5821,11 +5953,12 @@ GLenum severity, GLsizei length, const GLchar *buf) { std::string msg(buf, (length > 0) ? static_cast(length) : strlen(buf)); - mState.getDebug().insertMessage(source, type, id, severity, std::move(msg), gl::LOG_INFO); + mState.getDebug().insertMessage(source, type, id, severity, std::move(msg), gl::LOG_INFO, + angle::EntryPoint::GLDebugMessageInsert); } void Context::debugMessageCallback(GLDEBUGPROCKHR callback, const void *userParam) { mState.getDebug().setCallback(callback, userParam); @@ -5849,10 +5982,15 @@ std::string msg(message, (length > 0) ? static_cast(length) : strlen(message)); ANGLE_CONTEXT_TRY(mImplementation->pushDebugGroup(this, source, id, msg)); mState.getDebug().pushGroup(source, id, std::move(msg)); } +angle::Result Context::handleNoopDrawEvent() +{ + return (mImplementation->handleNoopDrawEvent()); +} + void Context::popDebugGroup() { mState.getDebug().popGroup(); ANGLE_CONTEXT_TRY(mImplementation->popDebugGroup(this)); } @@ -5864,11 +6002,18 @@ GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) { - UNIMPLEMENTED(); + mState.mBoundingBoxMinX = minX; + mState.mBoundingBoxMinY = minY; + mState.mBoundingBoxMinZ = minZ; + mState.mBoundingBoxMinW = minW; + mState.mBoundingBoxMaxX = maxX; + mState.mBoundingBoxMaxY = maxY; + mState.mBoundingBoxMaxZ = maxZ; + mState.mBoundingBoxMaxW = maxW; } void Context::bufferStorage(BufferBinding target, GLsizeiptr size, const void *data, @@ -5974,10 +6119,20 @@ if (target == BufferBinding::Uniform) { mUniformBufferObserverBindings[index].bind(object); mStateCache.onUniformBufferStateChange(this); } + else if (target == BufferBinding::AtomicCounter) + { + mAtomicCounterBufferObserverBindings[index].bind(object); + mStateCache.onAtomicCounterBufferStateChange(this); + } + else if (target == BufferBinding::ShaderStorage) + { + mShaderStorageBufferObserverBindings[index].bind(object); + mStateCache.onShaderStorageBufferStateChange(this); + } else { mStateCache.onBufferBindingChange(this); } } @@ -6229,43 +6384,16 @@ // This must be called before convertPpoToComputeOrDraw() so it uses the PPO's compute values // before convertPpoToComputeOrDraw() reverts the PPO back to graphics. MarkShaderStorageUsage(this); - // We always assume PPOs are used for draws, until they aren't. If we just executed a dispatch - // with a PPO, we need to convert it back to a "draw"-type. - // We don't re-link the PPO again, since it's possible for that link to generate validation - // errors due to bad VS/FS, and we want to catch those errors during validation of the draw - // command: 11.1.3.11 Validation It is not always possible to determine at link time if a - // program object can execute successfully, given that LinkProgram can not know the state of the - // remainder of the pipeline. Therefore validation is done when the first rendering command - // which triggers shader invocations is issued, to determine if the set of active program - // objects can be executed. - convertPpoToComputeOrDraw(false); - if (ANGLE_UNLIKELY(IsError(result))) { return; } } -void Context::convertPpoToComputeOrDraw(bool isCompute) -{ - Program *program = mState.getProgram(); - ProgramPipeline *pipeline = mState.getProgramPipeline(); - if (!program && pipeline) - { - pipeline->getExecutable().setIsCompute(isCompute); - pipeline->resetIsLinked(); - - // The PPO's isCompute() has changed, so its ProgramExecutable will produce different - // results for things like getShaderStorageBlocks() or getImageBindings(). - mState.mDirtyBits.set(State::DirtyBitType::DIRTY_BIT_PROGRAM_EXECUTABLE); - mStateCache.onProgramExecutableChange(this); - } -} - void Context::dispatchComputeIndirect(GLintptr indirect) { ANGLE_CONTEXT_TRY(prepareForDispatch()); ANGLE_CONTEXT_TRY(mImplementation->dispatchComputeIndirect(this, indirect)); @@ -6354,10 +6482,11 @@ GLsizei instanceCount, GLuint baseInstance) { if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); Program *programObject = mState.getLinkedProgram(this); @@ -6386,10 +6515,11 @@ GLint baseVertex, GLuint baseInstance) { if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); Program *programObject = mState.getLinkedProgram(this); @@ -6450,11 +6580,11 @@ return framebuffer->checkStatus(this).status; } void Context::compileShader(ShaderProgramID shader) { - Shader *shaderObject = GetValidShader(this, shader); + Shader *shaderObject = GetValidShader(this, angle::EntryPoint::GLCompileShader, shader); if (!shaderObject) { return; } shaderObject->compile(this); @@ -7192,10 +7322,28 @@ programObject->validate(mState.mCaps); } void Context::validateProgramPipeline(ProgramPipelineID pipeline) { + // GLES spec 3.2, Section 7.4 "Program Pipeline Objects" + // If pipeline is a name that has been generated (without subsequent deletion) by + // GenProgramPipelines, but refers to a program pipeline object that has not been + // previously bound, the GL first creates a new state vector in the same manner as + // when BindProgramPipeline creates a new program pipeline object. + // + // void BindProgramPipeline( uint pipeline ); + // pipeline is the program pipeline object name. The resulting program pipeline + // object is a new state vector, comprising all the state and with the same initial values + // listed in table 21.20. + // + // If we do not have a pipeline object that's been created with glBindProgramPipeline, we leave + // VALIDATE_STATUS at it's default false value without generating a pipeline object. + if (!getProgramPipeline(pipeline)) + { + return; + } + ProgramPipeline *programPipeline = mState.mProgramPipelineManager->checkProgramPipelineAllocation(mImplementation.get(), pipeline); ASSERT(programPipeline); @@ -8525,10 +8673,22 @@ Semaphore *semaphoreObject = getSemaphore(semaphore); ASSERT(semaphoreObject != nullptr); ANGLE_CONTEXT_TRY(semaphoreObject->importZirconHandle(this, handleType, handle)); } +void Context::eGLImageTargetTexStorage(GLenum target, GLeglImageOES image, const GLint *attrib_list) +{ + return; +} + +void Context::eGLImageTargetTextureStorage(GLuint texture, + GLeglImageOES image, + const GLint *attrib_list) +{ + return; +} + void Context::eGLImageTargetTexture2D(TextureType target, GLeglImageOES image) { Texture *texture = getTextureByType(target); egl::Image *imageObject = static_cast(image); ANGLE_CONTEXT_TRY(texture->setEGLImageTarget(this, target, imageObject)); @@ -8695,12 +8855,11 @@ return mDisplaySemaphoreShareGroup; } GLenum Context::getConvertedRenderbufferFormat(GLenum internalformat) const { - if (mState.mExtensions.webglCompatibility && mState.mClientVersion.major == 2 && - internalformat == GL_DEPTH_STENCIL) + if (isWebGL() && mState.mClientVersion.major == 2 && internalformat == GL_DEPTH_STENCIL) { return GL_DEPTH24_STENCIL8; } if (getClientType() == EGL_OPENGL_API && internalformat == GL_DEPTH_COMPONENT) { @@ -8777,10 +8936,26 @@ UNREACHABLE(); break; } break; + case kProgramPipelineSubjectIndex: + switch (message) + { + case angle::SubjectMessage::SubjectChanged: + ANGLE_CONTEXT_TRY(mState.onProgramPipelineExecutableChange(this)); + mStateCache.onProgramExecutableChange(this); + break; + case angle::SubjectMessage::ProgramRelinked: + ANGLE_CONTEXT_TRY(mState.mProgramPipeline->link(this)); + break; + default: + UNREACHABLE(); + break; + } + break; + default: if (index < kTextureMaxSubjectIndex) { if (message != angle::SubjectMessage::ContentsChanged && message != angle::SubjectMessage::BindingChanged) @@ -8800,10 +8975,20 @@ else if (index < kUniformBufferMaxSubjectIndex) { mState.onUniformBufferStateChange(index - kUniformBuffer0SubjectIndex); mStateCache.onUniformBufferStateChange(this); } + else if (index < kAtomicCounterBufferMaxSubjectIndex) + { + mState.onAtomicCounterBufferStateChange(index - kAtomicCounterBuffer0SubjectIndex); + mStateCache.onAtomicCounterBufferStateChange(this); + } + else if (index < kShaderStorageBufferMaxSubjectIndex) + { + mState.onShaderStorageBufferStateChange(index - kShaderStorageBuffer0SubjectIndex); + mStateCache.onShaderStorageBufferStateChange(this); + } else { ASSERT(index < kSamplerMaxSubjectIndex); mState.setSamplerDirty(index - kSampler0SubjectIndex); mState.onActiveTextureStateChange(this, index - kSampler0SubjectIndex); @@ -8920,11 +9105,11 @@ } void Context::onPreSwap() const { // Dump frame capture if enabled. - mFrameCapture->onEndFrame(this); + getShareGroup()->getFrameCaptureShared()->onEndFrame(this); } void Context::getTexImage(TextureTarget target, GLint level, GLenum format, @@ -8935,10 +9120,18 @@ Buffer *packBuffer = mState.getTargetBuffer(BufferBinding::PixelPack); ANGLE_CONTEXT_TRY(texture->getTexImage(this, mState.getPackState(), packBuffer, target, level, format, type, pixels)); } +void Context::getCompressedTexImage(TextureTarget target, GLint level, void *pixels) +{ + Texture *texture = getTextureByTarget(target); + Buffer *packBuffer = mState.getTargetBuffer(BufferBinding::PixelPack); + ANGLE_CONTEXT_TRY(texture->getCompressedTexImage(this, mState.getPackState(), packBuffer, + target, level, pixels)); +} + void Context::getRenderbufferImage(GLenum target, GLenum format, GLenum type, void *pixels) { Renderbuffer *renderbuffer = mState.getCurrentRenderbuffer(); Buffer *packBuffer = mState.getTargetBuffer(BufferBinding::PixelPack); ANGLE_CONTEXT_TRY(renderbuffer->getRenderbufferImage(this, mState.getPackState(), packBuffer, @@ -8967,18 +9160,24 @@ return mDisplay->getProgramCacheMutex(); } bool Context::supportsGeometryOrTesselation() const { - return mState.getClientVersion() == ES_3_2 || mState.getExtensions().geometryShader || + return mState.getClientVersion() == ES_3_2 || mState.getExtensions().geometryShaderAny() || mState.getExtensions().tessellationShaderEXT; } void Context::dirtyAllState() { mState.setAllDirtyBits(); mState.setAllDirtyObjects(); + mState.gles1().setAllDirty(); +} + +void Context::finishImmutable() const +{ + ANGLE_CONTEXT_TRY(mImplementation->finish(this)); } // ErrorSet implementation. ErrorSet::ErrorSet(Context *context) : mContext(context) {} @@ -9007,21 +9206,21 @@ ASSERT(errorCode != GL_NO_ERROR); mErrors.insert(errorCode); mContext->getState().getDebug().insertMessage(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, errorCode, GL_DEBUG_SEVERITY_HIGH, message, - gl::LOG_WARN); -} - -void ErrorSet::validationError(GLenum errorCode, const char *message) + gl::LOG_WARN, angle::EntryPoint::GLInvalid); +} + +void ErrorSet::validationError(angle::EntryPoint entryPoint, GLenum errorCode, const char *message) { ASSERT(errorCode != GL_NO_ERROR); mErrors.insert(errorCode); mContext->getState().getDebug().insertMessage(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, errorCode, GL_DEBUG_SEVERITY_HIGH, message, - gl::LOG_INFO); + gl::LOG_INFO, entryPoint); } bool ErrorSet::empty() const { return mErrors.empty(); @@ -9254,10 +9453,20 @@ void StateCache::onUniformBufferStateChange(Context *context) { updateBasicDrawStatesError(); } +void StateCache::onAtomicCounterBufferStateChange(Context *context) +{ + updateBasicDrawStatesError(); +} + +void StateCache::onShaderStorageBufferStateChange(Context *context) +{ + updateBasicDrawStatesError(); +} + void StateCache::onColorMaskChange(Context *context) { updateBasicDrawStatesError(); } @@ -9310,11 +9519,11 @@ // INVALID_OPERATION is generated by DrawArrays and DrawArraysInstanced if mode is not // identical to primitiveMode. The error INVALID_OPERATION is also generated by // DrawElements, DrawElementsInstanced, and DrawRangeElements while transform feedback is // active and not paused, regardless of mode. Any primitive type may be used while transform // feedback is paused. - if (!context->getExtensions().geometryShader && + if (!context->getExtensions().geometryShaderAny() && !context->getExtensions().tessellationShaderEXT && context->getClientVersion() < ES_3_2) { mCachedValidDrawModes.fill(false); mCachedValidDrawModes[curTransformFeedback->getPrimitiveMode()] = true; return; @@ -9347,18 +9556,18 @@ bool isGLES31 = context->getClientVersion() >= Version(3, 1); mCachedValidBindTextureTypes = {{ {TextureType::_2D, true}, {TextureType::_2DArray, isGLES3}, - {TextureType::_2DMultisample, isGLES31 || exts.textureMultisample}, - {TextureType::_2DMultisampleArray, exts.textureStorageMultisample2DArrayOES}, + {TextureType::_2DMultisample, isGLES31 || exts.textureMultisampleANGLE}, + {TextureType::_2DMultisampleArray, exts.textureStorageMultisample2dArrayOES}, {TextureType::_3D, isGLES3 || exts.texture3DOES}, - {TextureType::External, exts.eglImageExternalOES || exts.eglStreamConsumerExternalNV}, - {TextureType::Rectangle, exts.textureRectangle}, + {TextureType::External, exts.EGLImageExternalOES || exts.EGLStreamConsumerExternalNV}, + {TextureType::Rectangle, exts.textureRectangleANGLE}, {TextureType::CubeMap, true}, {TextureType::CubeMapArray, exts.textureCubeMapArrayAny()}, - {TextureType::VideoImage, exts.webglVideoTexture}, + {TextureType::VideoImage, exts.videoTextureWEBGL}, {TextureType::Buffer, exts.textureBufferAny()}, }}; } void StateCache::updateValidDrawElementsTypes(Context *context) @@ -9383,13 +9592,13 @@ { VertexAttribTypeCase halfFloatValidity = (context->getExtensions().vertexHalfFloatOES) ? VertexAttribTypeCase::Valid : VertexAttribTypeCase::Invalid; - VertexAttribTypeCase vertexType1010102Validity = - (context->getExtensions().vertexAttribType1010102OES) ? VertexAttribTypeCase::ValidSize3or4 - : VertexAttribTypeCase::Invalid; + VertexAttribTypeCase vertexType1010102Validity = (context->getExtensions().vertexType1010102OES) + ? VertexAttribTypeCase::ValidSize3or4 + : VertexAttribTypeCase::Invalid; if (context->getClientMajorVersion() <= 2) { mCachedVertexAttribTypesValidation = {{ {VertexAttribType::Byte, VertexAttribTypeCase::Valid}, @@ -9460,10 +9669,10 @@ } } void StateCache::updateCanDraw(Context *context) { - mCachedCanDraw = (context->isGLES1() || - (context->getState().getProgramExecutable() && - context->getState().getProgramExecutable()->hasVertexAndFragmentShader())); + mCachedCanDraw = + (context->isGLES1() || (context->getState().getProgramExecutable() && + context->getState().getProgramExecutable()->hasVertexShader())); } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/Context.inl.h b/gfx/angle/checkout/src/libANGLE/Context.inl.h --- a/gfx/angle/checkout/src/libANGLE/Context.inl.h +++ b/gfx/angle/checkout/src/libANGLE/Context.inl.h @@ -9,10 +9,11 @@ // of the defined functions #ifndef LIBANGLE_CONTEXT_INL_H_ #define LIBANGLE_CONTEXT_INL_H_ +#include "libANGLE/Context.h" #include "libANGLE/GLES1Renderer.h" #include "libANGLE/renderer/ContextImpl.h" #define ANGLE_HANDLE_ERR(X) \ (void)(X); \ @@ -82,22 +83,22 @@ } return count < kMinimumPrimitiveCounts[mode]; } -ANGLE_INLINE angle::Result Context::syncDirtyBits() +ANGLE_INLINE angle::Result Context::syncDirtyBits(Command command) { const State::DirtyBits &dirtyBits = mState.getDirtyBits(); - ANGLE_TRY(mImplementation->syncState(this, dirtyBits, mAllDirtyBits)); + ANGLE_TRY(mImplementation->syncState(this, dirtyBits, mAllDirtyBits, command)); mState.clearDirtyBits(); return angle::Result::Continue; } -ANGLE_INLINE angle::Result Context::syncDirtyBits(const State::DirtyBits &bitMask) +ANGLE_INLINE angle::Result Context::syncDirtyBits(const State::DirtyBits &bitMask, Command command) { const State::DirtyBits &dirtyBits = (mState.getDirtyBits() & bitMask); - ANGLE_TRY(mImplementation->syncState(this, dirtyBits, bitMask)); + ANGLE_TRY(mImplementation->syncState(this, dirtyBits, bitMask, command)); mState.clearDirtyBits(dirtyBits); return angle::Result::Continue; } ANGLE_INLINE angle::Result Context::syncDirtyObjects(const State::DirtyObjects &objectMask, @@ -114,18 +115,19 @@ } ANGLE_TRY(syncDirtyObjects(mDrawDirtyObjects, Command::Draw)); ASSERT(!isRobustResourceInitEnabled() || !mState.getDrawFramebuffer()->hasResourceThatNeedsInit()); - return syncDirtyBits(); + return syncDirtyBits(Command::Draw); } ANGLE_INLINE void Context::drawArrays(PrimitiveMode mode, GLint first, GLsizei count) { // No-op if count draws no primitives for given mode if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY(mImplementation->drawArrays(this, mode, first, count)); @@ -138,10 +140,11 @@ const void *indices) { // No-op if count draws no primitives for given mode if (noopDraw(mode, count)) { + ANGLE_CONTEXT_TRY(mImplementation->handleNoopDrawEvent()); return; } ANGLE_CONTEXT_TRY(prepareForDraw(mode)); ANGLE_CONTEXT_TRY(mImplementation->drawElements(this, mode, count, type, indices)); diff --git a/gfx/angle/checkout/src/libANGLE/Context_gl.cpp b/gfx/angle/checkout/src/libANGLE/Context_gl.cpp --- a/gfx/angle/checkout/src/libANGLE/Context_gl.cpp +++ b/gfx/angle/checkout/src/libANGLE/Context_gl.cpp @@ -33,15 +33,10 @@ const void *data) { UNIMPLEMENTED(); } -void Context::getCompressedTexImage(GLenum target, GLint level, void *img) -{ - UNIMPLEMENTED(); -} - void Context::loadTransposeMatrixd(const GLdouble *m) { UNIMPLEMENTED(); } diff --git a/gfx/angle/checkout/src/libANGLE/Context_gl_1_autogen.h b/gfx/angle/checkout/src/libANGLE/Context_gl_1_autogen.h --- a/gfx/angle/checkout/src/libANGLE/Context_gl_1_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/Context_gl_1_autogen.h @@ -267,11 +267,10 @@ GLenum type, const void *pixels); \ void compressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, \ GLint border, GLsizei imageSize, const void *data); \ void compressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, \ GLenum format, GLsizei imageSize, const void *data); \ - void getCompressedTexImage(GLenum target, GLint level, void *img); \ void loadTransposeMatrixd(const GLdouble *m); \ void loadTransposeMatrixf(const GLfloat *m); \ void multTransposeMatrixd(const GLdouble *m); \ void multTransposeMatrixf(const GLfloat *m); \ void multiTexCoord1d(GLenum target, GLdouble s); \ diff --git a/gfx/angle/checkout/src/libANGLE/Context_gles_ext_autogen.h b/gfx/angle/checkout/src/libANGLE/Context_gles_ext_autogen.h --- a/gfx/angle/checkout/src/libANGLE/Context_gles_ext_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/Context_gles_ext_autogen.h @@ -29,10 +29,11 @@ void loadPaletteFromModelViewMatrix(); \ void matrixIndexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \ void weightPointer(GLint size, GLenum type, GLsizei stride, const void *pointer); \ /* GL_OES_point_size_array */ \ void pointSizePointer(VertexAttribType typePacked, GLsizei stride, const void *pointer); \ + /* GL_OES_point_sprite */ \ /* GL_OES_query_matrix */ \ GLbitfield queryMatrixx(GLfixed *mantissa, GLint *exponent); \ /* GL_OES_texture_cube_map */ \ void getTexGenfv(GLenum coord, GLenum pname, GLfloat *params); \ void getTexGeniv(GLenum coord, GLenum pname, GLint *params); \ @@ -44,81 +45,43 @@ void texGenx(GLenum coord, GLenum pname, GLfixed param); \ void texGenxv(GLenum coord, GLenum pname, const GLfixed *params); \ \ /* GLES2+ Extensions */ \ \ - /* GL_ANGLE_base_vertex_base_instance */ \ - void drawArraysInstancedBaseInstance(PrimitiveMode modePacked, GLint first, GLsizei count, \ - GLsizei instanceCount, GLuint baseInstance); \ - void drawElementsInstancedBaseVertexBaseInstance( \ - PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, \ - const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); \ - void multiDrawArraysInstancedBaseInstance( \ - PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \ - const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); \ - void multiDrawElementsInstancedBaseVertexBaseInstance( \ - PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, \ - const GLvoid *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, \ - const GLuint *baseInstances, GLsizei drawcount); \ + /* GL_ANGLE_depth_texture */ \ /* GL_ANGLE_framebuffer_blit */ \ - /* GL_ANGLE_framebuffer_multisample */ \ /* GL_ANGLE_instanced_arrays */ \ - /* GL_ANGLE_memory_object_flags */ \ - void texStorageMemFlags2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \ - GLsizei width, GLsizei height, MemoryObjectID memoryPacked, \ - GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \ - void texStorageMemFlags2DMultisample( \ - TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, \ - GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked, \ - GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \ - void texStorageMemFlags3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \ - GLsizei width, GLsizei height, GLsizei depth, \ - MemoryObjectID memoryPacked, GLuint64 offset, \ - GLbitfield createFlags, GLbitfield usageFlags); \ - void texStorageMemFlags3DMultisample(TextureType targetPacked, GLsizei samples, \ - GLenum internalFormat, GLsizei width, GLsizei height, \ - GLsizei depth, GLboolean fixedSampleLocations, \ - MemoryObjectID memoryPacked, GLuint64 offset, \ - GLbitfield createFlags, GLbitfield usageFlags); \ - /* GL_ANGLE_memory_object_fuchsia */ \ - void importMemoryZirconHandle(MemoryObjectID memoryPacked, GLuint64 size, \ - HandleType handleTypePacked, GLuint handle); \ - /* GL_ANGLE_multi_draw */ \ - void multiDrawArrays(PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \ - GLsizei drawcount); \ - void multiDrawArraysInstanced(PrimitiveMode modePacked, const GLint *firsts, \ - const GLsizei *counts, const GLsizei *instanceCounts, \ - GLsizei drawcount); \ - void multiDrawElements(PrimitiveMode modePacked, const GLsizei *counts, \ - DrawElementsType typePacked, const GLvoid *const *indices, \ - GLsizei drawcount); \ - void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts, \ - DrawElementsType typePacked, const GLvoid *const *indices, \ - const GLsizei *instanceCounts, GLsizei drawcount); \ - /* GL_ANGLE_provoking_vertex */ \ - void provokingVertex(ProvokingVertexConvention modePacked); \ - /* GL_ANGLE_semaphore_fuchsia */ \ - void importSemaphoreZirconHandle(SemaphoreID semaphorePacked, HandleType handleTypePacked, \ - GLuint handle); \ - /* GL_ANGLE_texture_multisample */ \ + /* GL_ANGLE_pack_reverse_row_order */ \ + /* GL_ANGLE_texture_usage */ \ /* GL_ANGLE_translated_shader_source */ \ void getTranslatedShaderSource(ShaderProgramID shaderPacked, GLsizei bufsize, GLsizei *length, \ GLchar *source); \ + /* GL_APPLE_clip_distance */ \ + /* GL_ARB_sync */ \ /* GL_EXT_EGL_image_array */ \ + /* GL_EXT_EGL_image_external_wrap_modes */ \ + /* GL_EXT_EGL_image_storage */ \ + void eGLImageTargetTexStorage(GLenum target, GLeglImageOES image, const GLint *attrib_list); \ + void eGLImageTargetTextureStorage(GLuint texture, GLeglImageOES image, \ + const GLint *attrib_list); \ /* GL_EXT_YUV_target */ \ /* GL_EXT_blend_func_extended */ \ void bindFragDataLocation(ShaderProgramID programPacked, GLuint color, const GLchar *name); \ void bindFragDataLocationIndexed(ShaderProgramID programPacked, GLuint colorNumber, \ GLuint index, const GLchar *name); \ GLint getFragDataIndex(ShaderProgramID programPacked, const GLchar *name); \ GLint getProgramResourceLocationIndex(ShaderProgramID programPacked, GLenum programInterface, \ const GLchar *name); \ + /* GL_EXT_blend_minmax */ \ /* GL_EXT_buffer_storage */ \ void bufferStorage(BufferBinding targetPacked, GLsizeiptr size, const void *data, \ GLbitfield flags); \ /* GL_EXT_clip_control */ \ void clipControl(GLenum origin, GLenum depth); \ + /* GL_EXT_clip_cull_distance */ \ + /* GL_EXT_color_buffer_float */ \ + /* GL_EXT_color_buffer_half_float */ \ /* GL_EXT_compressed_ETC1_RGB8_sub_texture */ \ /* GL_EXT_copy_image */ \ /* GL_EXT_debug_label */ \ void labelObject(GLenum type, GLuint object, GLsizei length, const GLchar *label); \ /* GL_EXT_debug_marker */ \ @@ -141,11 +104,14 @@ /* GL_EXT_external_buffer */ \ void bufferStorageExternal(BufferBinding targetPacked, GLintptr offset, GLsizeiptr size, \ GLeglClientBufferEXT clientBuffer, GLbitfield flags); \ void namedBufferStorageExternal(GLuint buffer, GLintptr offset, GLsizeiptr size, \ GLeglClientBufferEXT clientBuffer, GLbitfield flags); \ + /* GL_EXT_float_blend */ \ + /* GL_EXT_frag_depth */ \ /* GL_EXT_geometry_shader */ \ + /* GL_EXT_gpu_shader5 */ \ /* GL_EXT_instanced_arrays */ \ /* GL_EXT_map_buffer_range */ \ /* GL_EXT_memory_object */ \ void bufferStorageMem(TextureType targetPacked, GLsizeiptr size, MemoryObjectID memoryPacked, \ GLuint64 offset); \ @@ -173,22 +139,26 @@ GLsizei depth, GLboolean fixedSampleLocations, \ MemoryObjectID memoryPacked, GLuint64 offset); \ /* GL_EXT_memory_object_fd */ \ void importMemoryFd(MemoryObjectID memoryPacked, GLuint64 size, HandleType handleTypePacked, \ GLint fd); \ + /* GL_EXT_multisample_compatibility */ \ /* GL_EXT_multisampled_render_to_texture */ \ void framebufferTexture2DMultisample(GLenum target, GLenum attachment, \ TextureTarget textargetPacked, TextureID texturePacked, \ GLint level, GLsizei samples); \ void renderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, \ GLsizei width, GLsizei height); \ /* GL_EXT_multisampled_render_to_texture2 */ \ /* GL_EXT_occlusion_query_boolean */ \ /* GL_EXT_primitive_bounding_box */ \ + /* GL_EXT_protected_textures */ \ + /* GL_EXT_pvrtc_sRGB */ \ /* GL_EXT_read_format_bgra */ \ /* GL_EXT_robustness */ \ /* GL_EXT_sRGB */ \ + /* GL_EXT_sRGB_write_control */ \ /* GL_EXT_semaphore */ \ void deleteSemaphores(GLsizei n, const SemaphoreID *semaphoresPacked); \ void genSemaphores(GLsizei n, SemaphoreID *semaphoresPacked); \ void getSemaphoreParameterui64v(SemaphoreID semaphorePacked, GLenum pname, GLuint64 *params); \ GLboolean isSemaphore(SemaphoreID semaphorePacked) const; \ @@ -204,10 +174,13 @@ void importSemaphoreFd(SemaphoreID semaphorePacked, HandleType handleTypePacked, GLint fd); \ /* GL_EXT_separate_shader_objects */ \ /* GL_EXT_shader_framebuffer_fetch_non_coherent */ \ void framebufferFetchBarrier(); \ /* GL_EXT_shader_io_blocks */ \ + /* GL_EXT_shader_non_constant_global_initializers */ \ + /* GL_EXT_shader_texture_lod */ \ + /* GL_EXT_shadow_samplers */ \ /* GL_EXT_tessellation_shader */ \ /* GL_EXT_texture_border_clamp */ \ /* GL_EXT_texture_buffer */ \ /* GL_EXT_texture_compression_bptc */ \ /* GL_EXT_texture_compression_dxt1 */ \ @@ -215,18 +188,33 @@ /* GL_EXT_texture_compression_s3tc */ \ /* GL_EXT_texture_compression_s3tc_srgb */ \ /* GL_EXT_texture_cube_map_array */ \ /* GL_EXT_texture_filter_anisotropic */ \ /* GL_EXT_texture_format_BGRA8888 */ \ + /* GL_EXT_texture_format_sRGB_override */ \ + /* GL_EXT_texture_norm16 */ \ + /* GL_EXT_texture_rg */ \ /* GL_EXT_texture_sRGB_R8 */ \ /* GL_EXT_texture_sRGB_RG8 */ \ + /* GL_EXT_texture_sRGB_decode */ \ /* GL_EXT_texture_storage */ \ void texStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); \ + /* GL_EXT_texture_type_2_10_10_10_REV */ \ + /* GL_EXT_unpack_subimage */ \ + /* GL_IMG_texture_compression_pvrtc */ \ + /* GL_IMG_texture_compression_pvrtc2 */ \ /* GL_KHR_blend_equation_advanced */ \ /* GL_KHR_debug */ \ + /* GL_KHR_no_error */ \ /* GL_KHR_parallel_shader_compile */ \ void maxShaderCompilerThreads(GLuint count); \ + /* GL_KHR_robust_buffer_access_behavior */ \ + /* GL_KHR_texture_compression_astc_hdr */ \ + /* GL_KHR_texture_compression_astc_ldr */ \ + /* GL_KHR_texture_compression_astc_sliced_3d */ \ + /* GL_NV_EGL_stream_consumer_external */ \ + /* GL_NV_depth_buffer_float2 */ \ /* GL_NV_fence */ \ void deleteFencesNV(GLsizei n, const FenceNVID *fencesPacked); \ void finishFenceNV(FenceNVID fencePacked); \ void genFencesNV(GLsizei n, FenceNVID *fencesPacked); \ void getFenceivNV(FenceNVID fencePacked, GLenum pname, GLint *params); \ @@ -234,57 +222,153 @@ void setFenceNV(FenceNVID fencePacked, GLenum condition); \ GLboolean testFenceNV(FenceNVID fencePacked); \ /* GL_NV_framebuffer_blit */ \ void blitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, \ GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); \ + /* GL_NV_pack_subimage */ \ + /* GL_NV_pixel_buffer_object */ \ + /* GL_NV_read_depth */ \ + /* GL_NV_read_stencil */ \ + /* GL_NV_robustness_video_memory_purge */ \ + /* GL_NV_shader_noperspective_interpolation */ \ /* GL_OES_EGL_image */ \ void eGLImageTargetRenderbufferStorage(GLenum target, GLeglImageOES image); \ void eGLImageTargetTexture2D(TextureType targetPacked, GLeglImageOES image); \ + /* GL_OES_EGL_image_external */ \ + /* GL_OES_EGL_image_external_essl3 */ \ + /* GL_OES_EGL_sync */ \ + /* GL_OES_compressed_EAC_R11_signed_texture */ \ + /* GL_OES_compressed_EAC_R11_unsigned_texture */ \ + /* GL_OES_compressed_EAC_RG11_signed_texture */ \ + /* GL_OES_compressed_EAC_RG11_unsigned_texture */ \ /* GL_OES_compressed_ETC1_RGB8_texture */ \ + /* GL_OES_compressed_ETC2_RGB8_texture */ \ + /* GL_OES_compressed_ETC2_RGBA8_texture */ \ + /* GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture */ \ + /* GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture */ \ + /* GL_OES_compressed_ETC2_sRGB8_alpha8_texture */ \ + /* GL_OES_compressed_ETC2_sRGB8_texture */ \ /* GL_OES_copy_image */ \ + /* GL_OES_depth24 */ \ /* GL_OES_depth32 */ \ + /* GL_OES_depth_texture */ \ + /* GL_OES_depth_texture_cube_map */ \ /* GL_OES_draw_buffers_indexed */ \ /* GL_OES_draw_elements_base_vertex */ \ + /* GL_OES_element_index_uint */ \ + /* GL_OES_fbo_render_mipmap */ \ + /* GL_OES_geometry_shader */ \ /* GL_OES_get_program_binary */ \ /* GL_OES_mapbuffer */ \ void *mapBuffer(BufferBinding targetPacked, GLenum access); \ + /* GL_OES_packed_depth_stencil */ \ + /* GL_OES_rgb8_rgba8 */ \ /* GL_OES_sample_shading */ \ + /* GL_OES_sample_variables */ \ + /* GL_OES_shader_image_atomic */ \ /* GL_OES_shader_io_blocks */ \ + /* GL_OES_shader_multisample_interpolation */ \ + /* GL_OES_standard_derivatives */ \ + /* GL_OES_surfaceless_context */ \ /* GL_OES_texture_3D */ \ void framebufferTexture3D(GLenum target, GLenum attachment, TextureTarget textargetPacked, \ TextureID texturePacked, GLint level, GLint zoffset); \ /* GL_OES_texture_border_clamp */ \ /* GL_OES_texture_buffer */ \ + /* GL_OES_texture_compression_astc */ \ /* GL_OES_texture_cube_map_array */ \ + /* GL_OES_texture_float */ \ + /* GL_OES_texture_float_linear */ \ /* GL_OES_texture_half_float */ \ + /* GL_OES_texture_half_float_linear */ \ + /* GL_OES_texture_npot */ \ /* GL_OES_texture_stencil8 */ \ /* GL_OES_texture_storage_multisample_2d_array */ \ /* GL_OES_vertex_array_object */ \ + /* GL_OES_vertex_half_float */ \ + /* GL_OES_vertex_type_10_10_10_2 */ \ /* GL_OVR_multiview */ \ void framebufferTextureMultiview(GLenum target, GLenum attachment, TextureID texturePacked, \ GLint level, GLint baseViewIndex, GLsizei numViews); \ /* GL_OVR_multiview2 */ \ + /* GL_WEBGL_video_texture */ \ \ /* ANGLE Extensions */ \ \ + /* GL_ANGLE_base_vertex_base_instance */ \ + void drawArraysInstancedBaseInstance(PrimitiveMode modePacked, GLint first, GLsizei count, \ + GLsizei instanceCount, GLuint baseInstance); \ + void drawElementsInstancedBaseVertexBaseInstance( \ + PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, \ + const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); \ + void multiDrawArraysInstancedBaseInstance( \ + PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \ + const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); \ + void multiDrawElementsInstancedBaseVertexBaseInstance( \ + PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, \ + const GLvoid *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, \ + const GLuint *baseInstances, GLsizei drawcount); \ + /* GL_ANGLE_client_arrays */ \ + /* GL_ANGLE_compressed_texture_etc */ \ /* GL_ANGLE_copy_texture_3d */ \ void copyTexture3D(TextureID sourceIdPacked, GLint sourceLevel, \ TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, \ GLint internalFormat, GLenum destType, GLboolean unpackFlipY, \ GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); \ void copySubTexture3D(TextureID sourceIdPacked, GLint sourceLevel, \ TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, \ GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLint z, \ GLint width, GLint height, GLint depth, GLboolean unpackFlipY, \ GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); \ + /* GL_ANGLE_framebuffer_multisample */ \ /* GL_ANGLE_get_image */ \ void getTexImage(TextureTarget targetPacked, GLint level, GLenum format, GLenum type, \ void *pixels); \ + void getCompressedTexImage(TextureTarget targetPacked, GLint level, void *pixels); \ void getRenderbufferImage(GLenum target, GLenum format, GLenum type, void *pixels); \ /* GL_ANGLE_get_serialized_context_string */ \ /* GL_ANGLE_get_tex_level_parameter */ \ + /* GL_ANGLE_lossy_etc_decode */ \ + /* GL_ANGLE_memory_object_flags */ \ + void texStorageMemFlags2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \ + GLsizei width, GLsizei height, MemoryObjectID memoryPacked, \ + GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \ + void texStorageMemFlags2DMultisample( \ + TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, \ + GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked, \ + GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); \ + void texStorageMemFlags3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat, \ + GLsizei width, GLsizei height, GLsizei depth, \ + MemoryObjectID memoryPacked, GLuint64 offset, \ + GLbitfield createFlags, GLbitfield usageFlags); \ + void texStorageMemFlags3DMultisample(TextureType targetPacked, GLsizei samples, \ + GLenum internalFormat, GLsizei width, GLsizei height, \ + GLsizei depth, GLboolean fixedSampleLocations, \ + MemoryObjectID memoryPacked, GLuint64 offset, \ + GLbitfield createFlags, GLbitfield usageFlags); \ + /* GL_ANGLE_memory_object_fuchsia */ \ + void importMemoryZirconHandle(MemoryObjectID memoryPacked, GLuint64 size, \ + HandleType handleTypePacked, GLuint handle); \ + /* GL_ANGLE_memory_size */ \ + /* GL_ANGLE_multi_draw */ \ + void multiDrawArrays(PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, \ + GLsizei drawcount); \ + void multiDrawArraysInstanced(PrimitiveMode modePacked, const GLint *firsts, \ + const GLsizei *counts, const GLsizei *instanceCounts, \ + GLsizei drawcount); \ + void multiDrawElements(PrimitiveMode modePacked, const GLsizei *counts, \ + DrawElementsType typePacked, const GLvoid *const *indices, \ + GLsizei drawcount); \ + void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts, \ + DrawElementsType typePacked, const GLvoid *const *indices, \ + const GLsizei *instanceCounts, GLsizei drawcount); \ + /* GL_ANGLE_multiview_multisample */ \ /* GL_ANGLE_program_binary */ \ + /* GL_ANGLE_program_cache_control */ \ + /* GL_ANGLE_provoking_vertex */ \ + void provokingVertex(ProvokingVertexConvention modePacked); \ + /* GL_ANGLE_relaxed_vertex_attribute_type */ \ /* GL_ANGLE_request_extension */ \ void requestExtension(const GLchar *name); \ void disableExtension(const GLchar *name); \ /* GL_ANGLE_robust_client_memory */ \ void getBooleanvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *params); \ @@ -425,18 +509,32 @@ GLint *params); \ void getQueryObjecti64vRobust(QueryID idPacked, GLenum pname, GLsizei bufSize, \ GLsizei *length, GLint64 *params); \ void getQueryObjectui64vRobust(QueryID idPacked, GLenum pname, GLsizei bufSize, \ GLsizei *length, GLuint64 *params); \ + /* GL_ANGLE_robust_fragment_shader_output */ \ + /* GL_ANGLE_robust_resource_initialization */ \ + /* GL_ANGLE_semaphore_fuchsia */ \ + void importSemaphoreZirconHandle(SemaphoreID semaphorePacked, HandleType handleTypePacked, \ + GLuint handle); \ + /* GL_ANGLE_texture_compression_dxt3 */ \ + /* GL_ANGLE_texture_compression_dxt5 */ \ /* GL_ANGLE_texture_external_update */ \ void texImage2DExternal(TextureTarget targetPacked, GLint level, GLint internalformat, \ GLsizei width, GLsizei height, GLint border, GLenum format, \ GLenum type); \ void invalidateTexture(TextureType targetPacked); \ + /* GL_ANGLE_texture_multisample */ \ + /* GL_ANGLE_texture_rectangle */ \ + /* GL_ANGLE_webgl_compatibility */ \ + /* GL_ANGLE_yuv_internal_format */ \ + /* GL_CHROMIUM_bind_generates_resource */ \ /* GL_CHROMIUM_bind_uniform_location */ \ void bindUniformLocation(ShaderProgramID programPacked, UniformLocation locationPacked, \ const GLchar *name); \ + /* GL_CHROMIUM_color_buffer_float_rgb */ \ + /* GL_CHROMIUM_color_buffer_float_rgba */ \ /* GL_CHROMIUM_copy_compressed_texture */ \ void compressedCopyTexture(TextureID sourceIdPacked, TextureID destIdPacked); \ /* GL_CHROMIUM_copy_texture */ \ void copyTexture(TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked, \ TextureID destIdPacked, GLint destLevel, GLint internalFormat, \ @@ -449,8 +547,9 @@ GLboolean unpackUnmultiplyAlpha); \ /* GL_CHROMIUM_framebuffer_mixed_samples */ \ void coverageModulation(GLenum components); \ /* GL_CHROMIUM_lose_context */ \ void loseContext(GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked); \ - /* GL_CHROMIUM_path_rendering */ + /* GL_CHROMIUM_sync_query */ \ + /* GL_CHROMIUM_texture_filtering_hint */ #endif // ANGLE_CONTEXT_API_EXT_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/Debug.h b/gfx/angle/checkout/src/libANGLE/Debug.h --- a/gfx/angle/checkout/src/libANGLE/Debug.h +++ b/gfx/angle/checkout/src/libANGLE/Debug.h @@ -51,17 +51,19 @@ void insertMessage(GLenum source, GLenum type, GLuint id, GLenum severity, const std::string &message, - gl::LogSeverity logSeverity) const; + gl::LogSeverity logSeverity, + angle::EntryPoint entryPoint) const; void insertMessage(GLenum source, GLenum type, GLuint id, GLenum severity, std::string &&message, - gl::LogSeverity logSeverity) const; + gl::LogSeverity logSeverity, + angle::EntryPoint entryPoint) const; void setMessageControl(GLenum source, GLenum type, GLenum severity, std::vector &&ids, diff --git a/gfx/angle/checkout/src/libANGLE/Debug.cpp b/gfx/angle/checkout/src/libANGLE/Debug.cpp --- a/gfx/angle/checkout/src/libANGLE/Debug.cpp +++ b/gfx/angle/checkout/src/libANGLE/Debug.cpp @@ -147,28 +147,34 @@ void Debug::insertMessage(GLenum source, GLenum type, GLuint id, GLenum severity, const std::string &message, - gl::LogSeverity logSeverity) const + gl::LogSeverity logSeverity, + angle::EntryPoint entryPoint) const { std::string messageCopy(message); - insertMessage(source, type, id, severity, std::move(messageCopy), logSeverity); + insertMessage(source, type, id, severity, std::move(messageCopy), logSeverity, entryPoint); } void Debug::insertMessage(GLenum source, GLenum type, GLuint id, GLenum severity, std::string &&message, - gl::LogSeverity logSeverity) const + gl::LogSeverity logSeverity, + angle::EntryPoint entryPoint) const { { // output all messages to the debug log const char *messageTypeString = GLMessageTypeToString(type); const char *severityString = GLSeverityToString(severity); std::ostringstream messageStream; + if (entryPoint != angle::EntryPoint::GLInvalid) + { + messageStream << GetEntryPointName(entryPoint) << ": "; + } messageStream << "GL " << messageTypeString << ": " << severityString << ": " << message; switch (logSeverity) { case gl::LOG_FATAL: FATAL() << messageStream.str(); @@ -310,11 +316,11 @@ } void Debug::pushGroup(GLenum source, GLuint id, std::string &&message) { insertMessage(source, GL_DEBUG_TYPE_PUSH_GROUP, id, GL_DEBUG_SEVERITY_NOTIFICATION, - std::string(message), gl::LOG_INFO); + std::string(message), gl::LOG_INFO, angle::EntryPoint::GLPushDebugGroup); Group g; g.source = source; g.id = id; g.message = std::move(message); @@ -328,11 +334,11 @@ Group g = mGroups.back(); mGroups.pop_back(); insertMessage(g.source, GL_DEBUG_TYPE_POP_GROUP, g.id, GL_DEBUG_SEVERITY_NOTIFICATION, - g.message, gl::LOG_INFO); + g.message, gl::LOG_INFO, angle::EntryPoint::GLPopDebugGroup); } size_t Debug::getGroupStackDepth() const { return mGroups.size(); @@ -361,11 +367,11 @@ msg += " (this message will no longer repeat)"; } // Release the lock before we call insertMessage. It will re-acquire the lock. insertMessage(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_PERFORMANCE, 0, severity, std::move(msg), - gl::LOG_INFO); + gl::LOG_INFO, angle::EntryPoint::GLInvalid); } bool Debug::isMessageEnabled(GLenum source, GLenum type, GLuint id, GLenum severity) const { if (!mOutputEnabled) diff --git a/gfx/angle/checkout/src/libANGLE/Display.h b/gfx/angle/checkout/src/libANGLE/Display.h --- a/gfx/angle/checkout/src/libANGLE/Display.h +++ b/gfx/angle/checkout/src/libANGLE/Display.h @@ -17,10 +17,11 @@ #include "libANGLE/AttributeMap.h" #include "libANGLE/BlobCache.h" #include "libANGLE/Caps.h" #include "libANGLE/Config.h" +#include "libANGLE/Context.h" #include "libANGLE/Debug.h" #include "libANGLE/Error.h" #include "libANGLE/LoggingAnnotator.h" #include "libANGLE/MemoryProgramCache.h" #include "libANGLE/Observer.h" @@ -69,10 +70,12 @@ std::vector featureOverridesDisabled; bool featuresAllDisabled; EGLNativeDisplayType displayId; }; +using ContextSet = std::set; + class ShareGroup final : angle::NonCopyable { public: ShareGroup(rx::EGLImplFactory *factory); @@ -84,20 +87,30 @@ rx::Serial generateFramebufferSerial() { return mFramebufferSerialFactory.generate(); } angle::FrameCaptureShared *getFrameCaptureShared() { return mFrameCaptureShared.get(); } + void finishAllContexts(); + + const ContextSet &getContexts() const { return mContexts; } + void addSharedContext(gl::Context *context); + + size_t getShareGroupContextCount() const { return mContexts.size(); } + protected: ~ShareGroup(); private: size_t mRefCount; rx::ShareGroupImpl *mImplementation; rx::SerialFactory mFramebufferSerialFactory; // Note: we use a raw pointer here so we can exclude frame capture sources from the build. std::unique_ptr mFrameCaptureShared; + + // The list of contexts within the share group + ContextSet mContexts; }; // Constant coded here as a reasonable limit. constexpr EGLAttrib kProgramCacheSizeAbsoluteMax = 0x4000000; @@ -113,11 +126,11 @@ // Observer implementation. void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; Error initialize(); - Error terminate(const Thread *thread); + Error terminate(Thread *thread); // Called before all display state dependent EGL functions. Backends can set up, for example, // thread-specific backend state through this function. Not called for functions that do not // need the state. Error prepareForCall(); // Called on eglReleaseThread. Backends can tear down thread-specific backend state through @@ -169,24 +182,21 @@ Error createSync(const gl::Context *currentContext, EGLenum type, const AttributeMap &attribs, Sync **outSync); - Error makeCurrent(gl::Context *previousContext, + Error makeCurrent(Thread *thread, + gl::Context *previousContext, Surface *drawSurface, Surface *readSurface, gl::Context *context); Error destroySurface(Surface *surface); void destroyImage(Image *image); void destroyStream(Stream *stream); - Error destroyContext(const Thread *thread, gl::Context *context); - Error destroyContextWithSurfaces(const Thread *thread, - gl::Context *context, - gl::Context *currentContext, - Surface *currentDrawSurface, - Surface *currentReadSurface); + Error destroyContext(Thread *thread, gl::Context *context); + void destroySync(Sync *sync); bool isInitialized() const; bool isValidConfig(const Config *config) const; bool isValidContext(const gl::Context *context) const; @@ -260,13 +270,10 @@ gl::Version getMaxSupportedESVersion() const; const DisplayState &getState() const { return mState; } - typedef std::set ContextSet; - const ContextSet &getContextSet() { return mContextSet; } - const angle::FrontendFeatures &getFrontendFeatures() { return mFrontendFeatures; } void overrideFrontendFeatures(const std::vector &featureNames, bool enabled); const angle::FeatureList &getFeatures() const { return mFeatures; } @@ -297,11 +304,11 @@ void setupDisplayPlatform(rx::DisplayImpl *impl); void updateAttribsFromEnvironment(const AttributeMap &attribMap); Error restoreLostDevice(); - Error releaseContext(gl::Context *context); + Error releaseContext(gl::Context *context, Thread *thread); void initDisplayExtensions(); void initVendorString(); void initVersionString(); void initializeFrontendFeatures(); @@ -360,10 +367,12 @@ std::vector mScratchBuffers; std::vector mZeroFilledBuffers; std::mutex mDisplayGlobalMutex; std::mutex mProgramCacheMutex; + + bool mIsTerminated; }; } // namespace egl #endif // LIBANGLE_DISPLAY_H_ diff --git a/gfx/angle/checkout/src/libANGLE/Display.cpp b/gfx/angle/checkout/src/libANGLE/Display.cpp --- a/gfx/angle/checkout/src/libANGLE/Display.cpp +++ b/gfx/angle/checkout/src/libANGLE/Display.cpp @@ -186,11 +186,17 @@ if (angleDefaultEnv == "null") { return EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE; } #endif +#if defined(ANGLE_ENABLE_METAL) + if (angleDefaultEnv == "metal") + { + return EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE; + } +#endif #if defined(ANGLE_ENABLE_D3D11) return EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE; #elif defined(ANGLE_ENABLE_D3D9) return EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE; #elif defined(ANGLE_ENABLE_VULKAN) && defined(ANGLE_PLATFORM_ANDROID) @@ -255,21 +261,26 @@ switch (displayType) { case EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE: UNREACHABLE(); +#if !UNREACHABLE_IS_NORETURN break; +#endif case EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE: #if defined(ANGLE_ENABLE_D3D9) || defined(ANGLE_ENABLE_D3D11) impl = new rx::DisplayD3D(state); + break; #else // A D3D display was requested on a platform that doesn't support it UNREACHABLE(); +# if !UNREACHABLE_IS_NORETURN + break; +# endif #endif - break; case EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE: #if defined(ANGLE_ENABLE_OPENGL) # if defined(ANGLE_PLATFORM_WINDOWS) impl = new rx::DisplayWGL(state); @@ -292,31 +303,35 @@ if (deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE) { impl = new rx::DisplayEGL(state); break; } - else +# if defined(ANGLE_USE_X11) + if (platformType == EGL_PLATFORM_X11_EXT) { -# if defined(ANGLE_USE_X11) - if (platformType == EGL_PLATFORM_X11_EXT) - { - impl = new rx::DisplayGLX(state); - break; - } + impl = new rx::DisplayGLX(state); + break; + } # endif - } + break; + # elif defined(ANGLE_PLATFORM_ANDROID) // No GL support on this platform, fail display creation. impl = nullptr; + break; + # else # error Unsupported OpenGL platform. # endif #else // No display available UNREACHABLE(); +# if !UNREACHABLE_IS_NORETURN + break; +# endif + #endif // defined(ANGLE_ENABLE_OPENGL) - break; case EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE: #if defined(ANGLE_ENABLE_OPENGL) # if defined(ANGLE_PLATFORM_WINDOWS) impl = new rx::DisplayWGL(state); @@ -354,23 +369,31 @@ #endif // defined(ANGLE_ENABLE_OPENGL) break; case EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE: #if defined(ANGLE_ENABLE_VULKAN) -# if defined(ANGLE_PLATFORM_WINDOWS) +# if defined(ANGLE_USE_VULKAN_NULL_DISPLAY) + if (rx::IsVulkanNullDisplayAvailable()) + { + impl = rx::CreateVulkanNullDisplay(state); + } + break; +# elif defined(ANGLE_PLATFORM_WINDOWS) if (rx::IsVulkanWin32DisplayAvailable()) { impl = rx::CreateVulkanWin32Display(state); } + break; # elif defined(ANGLE_PLATFORM_LINUX) # if defined(ANGLE_USE_X11) if (platformType == EGL_PLATFORM_X11_EXT && rx::IsVulkanXcbDisplayAvailable()) { impl = rx::CreateVulkanXcbDisplay(state); break; } -# elif defined(ANGLE_USE_VULKAN_DISPLAY) +# endif +# if defined(ANGLE_USE_VULKAN_DISPLAY) if (platformType == EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE && rx::IsVulkanSimpleDisplayAvailable()) { impl = rx::CreateVulkanSimpleDisplay(state); } @@ -382,63 +405,78 @@ else { // Not supported creation type on vulkan display, fail display creation. impl = nullptr; } +# endif break; -# endif # elif defined(ANGLE_PLATFORM_ANDROID) if (rx::IsVulkanAndroidDisplayAvailable()) { impl = rx::CreateVulkanAndroidDisplay(state); } + break; # elif defined(ANGLE_PLATFORM_FUCHSIA) if (rx::IsVulkanFuchsiaDisplayAvailable()) { impl = rx::CreateVulkanFuchsiaDisplay(state); } + break; # elif defined(ANGLE_PLATFORM_GGP) if (rx::IsVulkanGGPDisplayAvailable()) { impl = rx::CreateVulkanGGPDisplay(state); } + break; # elif defined(ANGLE_PLATFORM_APPLE) if (rx::IsVulkanMacDisplayAvailable()) { impl = rx::CreateVulkanMacDisplay(state); } + break; # else # error Unsupported Vulkan platform. # endif #else // No display available UNREACHABLE(); +# if !UNREACHABLE_IS_NORETURN + break; +# endif #endif // defined(ANGLE_ENABLE_VULKAN) - break; + case EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE: #if defined(ANGLE_ENABLE_METAL) if (rx::IsMetalDisplayAvailable()) { impl = rx::CreateMetalDisplay(state); break; } #endif // No display available UNREACHABLE(); +#if !UNREACHABLE_IS_NORETURN break; +#endif + case EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE: #if defined(ANGLE_ENABLE_NULL) impl = new rx::DisplayNULL(state); + break; #else // No display available UNREACHABLE(); +# if !UNREACHABLE_IS_NORETURN + break; +# endif #endif // defined(ANGLE_ENABLE_NULL) - break; default: UNREACHABLE(); +#if !UNREACHABLE_IS_NORETURN break; +#endif } return impl; } @@ -492,10 +530,26 @@ : mRefCount(1), mImplementation(factory->createShareGroup()), mFrameCaptureShared(new angle::FrameCaptureShared) {} +void ShareGroup::finishAllContexts() +{ + for (gl::Context *shareContext : mContexts) + { + if (shareContext->hasBeenCurrent() && !shareContext->isDestroyed()) + { + shareContext->finish(); + } + } +} + +void ShareGroup::addSharedContext(gl::Context *context) +{ + mContexts.insert(context); +} + ShareGroup::~ShareGroup() { SafeDelete(mImplementation); } @@ -696,18 +750,16 @@ mTextureManager(nullptr), mSemaphoreManager(nullptr), mBlobCache(gl::kDefaultMaxProgramCacheMemoryBytes), mMemoryProgramCache(mBlobCache), mGlobalTextureShareGroupUsers(0), - mGlobalSemaphoreShareGroupUsers(0) + mGlobalSemaphoreShareGroupUsers(0), + mIsTerminated(false) {} Display::~Display() { - // TODO(jmadill): When is this called? - // terminate(); - if (mPlatform == EGL_PLATFORM_ANGLE_ANGLE) { ANGLEPlatformDisplayMap *displays = GetANGLEPlatformDisplayMap(); ANGLEPlatformDisplayMap::iterator iter = displays->find(mState.displayId); if (iter != displays->end()) @@ -808,10 +860,12 @@ } } Error Display::initialize() { + mIsTerminated = false; + ASSERT(mImplementation != nullptr); mImplementation->setBlobCache(&mBlobCache); // Enable shader caching if debug layers are turned on. This allows us to test that shaders are // properly saved & restored on all platforms. The cache won't allocate space until it's used @@ -845,11 +899,11 @@ mConfigSet = mImplementation->generateConfigs(); if (mConfigSet.size() == 0) { mImplementation->terminate(); - return EglNotInitialized(); + return EglNotInitialized() << "No configs were generated."; } // OpenGL ES1 is implemented in the frontend, explicitly add ES1 support to all configs for (auto &config : mConfigSet) { @@ -889,10 +943,12 @@ ERR() << "Failed to initialize display because device creation failed: " << error.getMessage(); mImplementation->terminate(); return error; } + // Don't leak Device memory. + ASSERT(mDevice == nullptr); mDevice = new Device(this, impl.release()); } else { mDevice = nullptr; @@ -901,26 +957,43 @@ mInitialized = true; return NoError(); } -Error Display::terminate(const Thread *thread) +Error Display::terminate(Thread *thread) { + mIsTerminated = true; + if (!mInitialized) { return NoError(); } - mMemoryProgramCache.clear(); - mBlobCache.setBlobCacheFuncs(nullptr, nullptr); + // EGL 1.5 Specification + // 3.2 Initialization + // If contexts or surfaces, created with respect to dpy are current (see section 3.7.3) to any + // thread, then they are not actually destroyed while they remain current. If other resources + // created with respect to dpy are in use by any current context or surface, then they are also + // not destroyed until the corresponding context or surface is no longer current. + for (const gl::Context *context : mContextSet) + { + if (context->getRefCount() > 0) + { + return NoError(); + } + } + // Destroy all of the Contexts for this Display, since none of them are current anymore. while (!mContextSet.empty()) { - ANGLE_TRY(destroyContext(thread, *mContextSet.begin())); + gl::Context *context = *mContextSet.begin(); + context->setIsDestroyed(); + ANGLE_TRY(releaseContext(context, thread)); } - ANGLE_TRY(makeCurrent(thread->getContext(), nullptr, nullptr, nullptr)); + mMemoryProgramCache.clear(); + mBlobCache.setBlobCacheFuncs(nullptr, nullptr); // The global texture and semaphore managers should be deleted with the last context that uses // it. ASSERT(mGlobalTextureShareGroupUsers == 0 && mTextureManager == nullptr); ASSERT(mGlobalSemaphoreShareGroupUsers == 0 && mSemaphoreManager == nullptr); @@ -1018,11 +1091,12 @@ if (mImplementation->testDeviceLost()) { ANGLE_TRY(restoreLostDevice()); } - SurfacePointer surface(new WindowSurface(mImplementation, configuration, window, attribs), + SurfacePointer surface(new WindowSurface(mImplementation, configuration, window, attribs, + mFrontendFeatures.forceRobustResourceInit.enabled), this); ANGLE_TRY(surface->initialize(this)); ASSERT(outSurface != nullptr); *outSurface = surface.release(); @@ -1046,11 +1120,13 @@ if (mImplementation->testDeviceLost()) { ANGLE_TRY(restoreLostDevice()); } - SurfacePointer surface(new PbufferSurface(mImplementation, configuration, attribs), this); + SurfacePointer surface(new PbufferSurface(mImplementation, configuration, attribs, + mFrontendFeatures.forceRobustResourceInit.enabled), + this); ANGLE_TRY(surface->initialize(this)); ASSERT(outSurface != nullptr); *outSurface = surface.release(); mState.surfaceSet.insert(*outSurface); @@ -1070,11 +1146,13 @@ { ANGLE_TRY(restoreLostDevice()); } SurfacePointer surface( - new PbufferSurface(mImplementation, configuration, buftype, clientBuffer, attribs), this); + new PbufferSurface(mImplementation, configuration, buftype, clientBuffer, attribs, + mFrontendFeatures.forceRobustResourceInit.enabled), + this); ANGLE_TRY(surface->initialize(this)); ASSERT(outSurface != nullptr); *outSurface = surface.release(); mState.surfaceSet.insert(*outSurface); @@ -1092,11 +1170,12 @@ if (mImplementation->testDeviceLost()) { ANGLE_TRY(restoreLostDevice()); } - SurfacePointer surface(new PixmapSurface(mImplementation, configuration, nativePixmap, attribs), + SurfacePointer surface(new PixmapSurface(mImplementation, configuration, nativePixmap, attribs, + mFrontendFeatures.forceRobustResourceInit.enabled), this); ANGLE_TRY(surface->initialize(this)); ASSERT(outSurface != nullptr); *outSurface = surface.release(); @@ -1172,10 +1251,11 @@ gl::Context *shareContext, EGLenum clientType, const AttributeMap &attribs, gl::Context **outContext) { + ASSERT(!mIsTerminated); ASSERT(isInitialized()); if (mImplementation->testDeviceLost()) { ANGLE_TRY(restoreLostDevice()); @@ -1250,12 +1330,10 @@ } ASSERT(context != nullptr); mContextSet.insert(context); - context->addRef(); - ASSERT(outContext != nullptr); *outContext = context; return NoError(); } @@ -1283,30 +1361,39 @@ *outSync = sync; return NoError(); } -Error Display::makeCurrent(gl::Context *previousContext, +Error Display::makeCurrent(Thread *thread, + gl::Context *previousContext, egl::Surface *drawSurface, egl::Surface *readSurface, gl::Context *context) { if (!mInitialized) { return NoError(); } - // If the context is changing we need to update the reference counts. If it's not, e.g. just - // changing the surfaces leave the reference count alone. Otherwise the reference count might go - // to zero even though we know we are not done with the context. bool contextChanged = context != previousContext; if (previousContext != nullptr && contextChanged) { - ANGLE_TRY(previousContext->unMakeCurrent(this)); - ANGLE_TRY(releaseContext(previousContext)); + previousContext->release(); + thread->setCurrent(nullptr); + + auto error = previousContext->unMakeCurrent(this); + if (previousContext->getRefCount() == 0 && previousContext->isDestroyed()) + { + // The previous Context may have been created with a different Display. + Display *previousDisplay = previousContext->getDisplay(); + ANGLE_TRY(previousDisplay->releaseContext(previousContext, thread)); + } + ANGLE_TRY(error); } + thread->setCurrent(context); + ANGLE_TRY(mImplementation->makeCurrent(this, drawSurface, readSurface, context)); if (context != nullptr) { ANGLE_TRY(context->makeCurrent(this, drawSurface, readSurface)); @@ -1392,18 +1479,18 @@ // releaseContext must be called with the context being deleted as current. // To do that we can only call this in two places, Display::makeCurrent at the point where this // context is being made uncurrent and in Display::destroyContext where we make the context current // as part of destruction. -Error Display::releaseContext(gl::Context *context) +Error Display::releaseContext(gl::Context *context, Thread *thread) { - context->release(); - size_t refCount = context->getRefCount(); - if (refCount > 0) - { - return NoError(); - } + ASSERT(context->getRefCount() == 0); + + // Use scoped_ptr to make sure the context is always freed. + std::unique_ptr unique_context(context); + ASSERT(mContextSet.find(context) != mContextSet.end()); + mContextSet.erase(context); if (context->usingDisplayTextureShareGroup()) { ASSERT(mGlobalTextureShareGroupUsers >= 1 && mTextureManager != nullptr); if (mGlobalTextureShareGroupUsers == 1) @@ -1430,60 +1517,62 @@ } mGlobalSemaphoreShareGroupUsers--; } ANGLE_TRY(context->onDestroy(this)); - mContextSet.erase(context); - SafeDelete(context); return NoError(); } -Error Display::destroyContext(const Thread *thread, gl::Context *context) +Error Display::destroyContext(Thread *thread, gl::Context *context) { - return destroyContextWithSurfaces(thread, context, thread->getContext(), - thread->getCurrentDrawSurface(), - thread->getCurrentReadSurface()); -} + auto *currentContext = thread->getContext(); + auto *currentDrawSurface = thread->getCurrentDrawSurface(); + auto *currentReadSurface = thread->getCurrentReadSurface(); -Error Display::destroyContextWithSurfaces(const Thread *thread, - gl::Context *context, - gl::Context *currentContext, - Surface *currentDrawSurface, - Surface *currentReadSurface) -{ - size_t refCount = context->getRefCount(); - if (refCount > 1) + context->setIsDestroyed(); + + // If the context is still current on at least 1 thread, just return since it'll be released + // once no threads have it current anymore. + if (context->getRefCount() > 0) { - context->release(); return NoError(); } - // This is the last reference for this context, so we can destroy it now. - bool changeContextForDeletion = context != currentContext; - // For external context, we cannot change the current native context, and the API user should // make sure the native context is current. - if (changeContextForDeletion && context->isExternal()) + if (context->isExternal()) + { + ANGLE_TRY(releaseContext(context, thread)); + } + else { - ASSERT(!currentContext); - changeContextForDeletion = false; + // Keep |currentContext| alive, while releasing |context|. + gl::ScopedContextRef scopedContextRef(currentContext); + + // Make the context current, so we can release resources belong to the context, and then + // when context is released from the current, it will be destroyed. + // TODO(http://www.anglebug.com/6322): Don't require a Context to be current in order to + // destroy it. + ANGLE_TRY(makeCurrent(thread, currentContext, nullptr, nullptr, context)); + ANGLE_TRY( + makeCurrent(thread, context, currentDrawSurface, currentReadSurface, currentContext)); } - // Make the context being deleted current during its deletion. This allows it to delete - // any resources it's holding. - if (changeContextForDeletion) + // If eglTerminate() has previously been called and this is the last Context the Display owns, + // we can now fully terminate the display and release all of its resources. + if (mIsTerminated) { - ANGLE_TRY(makeCurrent(currentContext, nullptr, nullptr, context)); - } + for (const gl::Context *ctx : mContextSet) + { + if (ctx->getRefCount() > 0) + { + return NoError(); + } + } - ANGLE_TRY(releaseContext(context)); - - // Set the previous context back to current - if (changeContextForDeletion) - { - ANGLE_TRY(makeCurrent(context, currentDrawSurface, currentReadSurface, currentContext)); + return terminate(thread); } return NoError(); } @@ -1642,13 +1731,10 @@ # endif #endif #if defined(ANGLE_ENABLE_OPENGL) extensions.platformANGLEOpenGL = true; - - // Selecting context virtualization is currently only supported in the OpenGL backend. - extensions.platformANGLEContextVirtualization = true; #endif #if defined(ANGLE_ENABLE_NULL) extensions.platformANGLENULL = true; #endif @@ -1688,11 +1774,10 @@ extensions.platformANGLEDeviceContextVolatileCgl = true; #endif extensions.clientGetAllProcAddresses = true; extensions.debug = true; - extensions.explicitContext = true; extensions.featureControlANGLE = true; extensions.deviceQueryEXT = true; return extensions; } @@ -1738,11 +1823,11 @@ // Force EGL_KHR_get_all_proc_addresses on. mDisplayExtensions.getAllProcAddresses = true; // Enable program cache control since it is not back-end dependent. - mDisplayExtensions.programCacheControl = true; + mDisplayExtensions.programCacheControlANGLE = true; // Request extension is implemented in the ANGLE frontend mDisplayExtensions.createContextExtensionsEnabled = true; // Blob cache extension is provided by the ANGLE frontend @@ -1753,10 +1838,14 @@ mDisplayExtensions.recordable = true; // All backends support specific context versions mDisplayExtensions.createContextBackwardsCompatible = true; + // Note: we don't notify the back-end of a change to the renderbuffer right now. This extension + // is implemented only in the front-end. A full implementation involves notifying the back-end. + mDisplayExtensions.mutableRenderBufferKHR = true; + mDisplayExtensionString = GenerateExtensionsString(mDisplayExtensions); } bool Display::isValidNativeWindow(EGLNativeWindowType window) const { diff --git a/gfx/angle/checkout/src/libANGLE/ErrorStrings.h b/gfx/angle/checkout/src/libANGLE/ErrorStrings.h --- a/gfx/angle/checkout/src/libANGLE/ErrorStrings.h +++ b/gfx/angle/checkout/src/libANGLE/ErrorStrings.h @@ -178,15 +178,16 @@ MSG kFramebufferIncompleteUnsupportedNonUniqueAttachments = "Framebuffer is incomplete: Non-unique attachments are unsupported."; MSG kFramebufferIncompleteUnsupportedSeparateDepthStencilBuffers = "Framebuffer is incomplete: Separate depth and stencil buffers are unsupported."; MSG kFramebufferIncompleteWebGLDepthStencilInconsistant = "Framebuffer is incomplete: WebGL depth stencil state is inconsistent."; MSG kFramebufferTextureInvalidLayer = "Layer invalid for framebuffer texture attachment."; MSG kFramebufferTextureInvalidMipLevel = "Mip level invalid for framebuffer texture attachment."; -MSG kFramebufferTextureLayerIncorrectTextureType = "Texture is not a three-dimensional or two-dimensionsal array texture."; +MSG kFramebufferTextureLayerIncorrectTextureType = "Texture is not a three-dimensional or two-dimensional array texture."; MSG kGenerateMipmapNotAllowed = "Texture format does not support mipmap generation."; MSG kGenerateMipmapZeroSize = "Cannot generate mipmaps for a zero-size texture in a WebGL context."; -MSG kGeometryShaderExtensionNotEnabled = "GL_EXT_geometry_shader extension not enabled."; +MSG kGeometryShaderExtensionNotEnabled = "GL_EXT_geometry_shader or GL_OES_geometry_shader extension not enabled."; MSG kGetImageExtensionNotEnabled = "GL_ANGLE_get_image extension not enabled."; +MSG kGetImageCompressed = "Texture is compressed, call GetCompressedTexImage instead."; MSG kGLES1Only = "GLES1-only function."; MSG kImageSizeMustBeZero = "imageSize must be 0 if no texture data is provided."; MSG kImageSizeTooSmall = "imageSize is too small."; MSG kImmutableMemoryObject = "The memory object is immutable."; MSG kImmutableTextureBound = "The value of TEXTURE_IMMUTABLE_FORMAT for the texture currently bound to target on the active texture unit is true."; @@ -207,13 +208,15 @@ MSG kIndexExceedsTransformFeedbackBufferBindings = "Index is greater than or equal to the number of TRANSFORM_FEEDBACK_BUFFER indexed binding points."; MSG kInsufficientBufferSize = "Insufficient buffer size."; MSG kInsufficientParams = "More parameters are required than were provided."; MSG kInsufficientVertexBufferSize = "Vertex buffer is not big enough for the draw call"; MSG kIntegerOverflow = "Integer overflow."; +MSG kInternalFormatRequiresTexture2D = "internalformat is an ETC1 or PVRTC1 format."; MSG kInternalFormatRequiresTexture2DArray = "internalformat is an ETC2/EAC format and target is not GL_TEXTURE_2D_ARRAY."; MSG kInternalFormatRequiresTexture2DArrayS3TC = "internalformat is an S3TC format and target is not GL_TEXTURE_2D_ARRAY."; MSG kInternalFormatRequiresTexture2DArrayRGTC = "internalformat is an RGTC format and target is not GL_TEXTURE_2D_ARRAY."; +MSG kInternalFormatRequiresTexture2DArrayBPTC = "internalformat is a BPTC format and target is not GL_TEXTURE_2D_ARRAY."; MSG kInternalFormatRequiresTexture2DArrayASTC = "internalformat is an ASTC format and target is not GL_TEXTURE_2D_ARRAY."; MSG kInvalidAccessBits = "Invalid access bits."; MSG kInvalidAccessBitsFlush = "The explicit flushing bit may only be set if the buffer is mapped for writing."; MSG kInvalidAccessBitsRead = "Invalid access bits when mapping buffer for reading"; MSG kInvalidAccessBitsReadWrite = "Need to map buffer for either reading or writing."; @@ -525,10 +528,11 @@ MSG kTextureDepthOutOfRange = "Depth must be less than or equal to MAX_ARRAY_TEXTURE_LAYERS"; MSG kTransfomFeedbackAlreadyActive = "Transform feedback is already active."; MSG kTransformFeedbackActiveDelete = "Attempt to delete an active transform feedback."; MSG kTransformFeedbackActiveDuringLink = "Cannot link program while program is associated with an active transform feedback object."; MSG kTransformFeedbackBufferDoubleBound = "A transform feedback buffer that would be written to is also bound to a non-transform-feedback target, which would cause undefined behavior."; +MSG kTransformFeedbackBufferMissing = "Every binding point used in transform feedback mode must have a buffer object bound."; MSG kTransformFeedbackBufferMultipleOutputs = "Transform feedback has a buffer bound to multiple outputs."; MSG kTransformFeedbackBufferTooSmall = "Not enough space in bound transform feedback buffers."; MSG kTransformFeedbackDoesNotExist = "Transform feedback object that does not exist."; MSG kTransformFeedbackNotActive = "No Transform Feedback object is active."; MSG kTransformFeedbackNotPaused = "The active Transform Feedback object is not paused."; @@ -563,11 +567,13 @@ MSG kZeroBoundToTarget = "Zero is bound to target."; MSG kUnrecognizedShaderStageBit = "Unrecognized shader stage bit."; MSG kProgramNotSeparable = "Program object was not linked with its PROGRAM_SEPARABLE status set."; MSG kProgramPipelineDoesNotExist = "Program pipeline does not exist."; MSG kNotAllStagesOfSeparableProgramUsed = "A program object is active for at least one, but not all of the shader stages that were present when the program was linked."; +MSG kNoExecutableCodeInstalled = "There is no current program object specified by UseProgram, there is a current program pipeline object, and that object is empty (no executable code is installed for any stage)."; MSG kProgramPipelineLinkFailed = "Program pipeline link failed"; +MSG kProtectedTexturesExtensionRequired = "GL_EXT_protected_textures not enabled."; // clang-format on #undef MSG } // namespace err diff --git a/gfx/angle/checkout/src/libANGLE/Framebuffer.h b/gfx/angle/checkout/src/libANGLE/Framebuffer.h --- a/gfx/angle/checkout/src/libANGLE/Framebuffer.h +++ b/gfx/angle/checkout/src/libANGLE/Framebuffer.h @@ -20,10 +20,11 @@ #include "libANGLE/Error.h" #include "libANGLE/FramebufferAttachment.h" #include "libANGLE/Observer.h" #include "libANGLE/RefCountObject.h" #include "libANGLE/State.h" +#include "libANGLE/angletypes.h" namespace rx { class GLImplFactory; class FramebufferImpl; @@ -42,14 +43,11 @@ struct Caps; class Context; struct Extensions; class Framebuffer; class ImageIndex; -struct Rectangle; class Renderbuffer; -class State; -class Texture; class TextureCapsMap; struct FramebufferStatus { bool isComplete() const; @@ -132,14 +130,16 @@ FramebufferID id() const { return mId; } bool isDefault() const; - const gl::Offset &getSurfaceTextureOffset() const { return mSurfaceTextureOffset; } + const Offset &getSurfaceTextureOffset() const { return mSurfaceTextureOffset; } rx::Serial getFramebufferSerial() const { return mFramebufferSerial; } + bool isBoundAsDrawFramebuffer(const Context *context) const; + private: const FramebufferAttachment *getWebGLDepthStencilAttachment() const; const FramebufferAttachment *getWebGLDepthAttachment() const; const FramebufferAttachment *getWebGLStencilAttachment() const; @@ -154,11 +154,11 @@ std::vector mColorAttachments; FramebufferAttachment mDepthAttachment; FramebufferAttachment mStencilAttachment; // Tracks all the color buffers attached to this FramebufferDesc - gl::DrawBufferMask mColorAttachmentsMask; + DrawBufferMask mColorAttachmentsMask; std::vector mDrawBufferStates; GLenum mReadBufferState; DrawBufferMask mEnabledDrawBuffers; ComponentTypeMask mDrawBufferTypeMask; @@ -183,11 +183,11 @@ FramebufferAttachment mDefaultFramebufferReadAttachment; // EXT_sRGB_write_control SrgbWriteControlMode mSrgbWriteControlMode; - gl::Offset mSurfaceTextureOffset; + Offset mSurfaceTextureOffset; }; class Framebuffer final : public angle::ObserverInterface, public LabeledObject, public angle::Subject @@ -326,11 +326,11 @@ bool hasValidDepthStencil() const; // Returns the offset into the texture backing the default framebuffer's surface if any. Returns // zero offset otherwise. The renderer will apply the offset to scissor and viewport rects used // for draws, clears, and blits. - const gl::Offset &getSurfaceTextureOffset() const; + const Offset &getSurfaceTextureOffset() const; angle::Result discard(const Context *context, size_t count, const GLenum *attachments); angle::Result invalidate(const Context *context, size_t count, const GLenum *attachments); angle::Result invalidateSub(const Context *context, size_t count, @@ -448,11 +448,11 @@ const ImageIndex &textureIndex, FramebufferAttachmentObject *resource, GLsizei numViews, GLuint baseViewIndex, bool isMultiview, - GLsizei samples); + GLsizei samplesIn); void commitWebGL1DepthStencilIfConsistent(const Context *context, GLsizei numViews, GLuint baseViewIndex, bool isMultiview, GLsizei samples); @@ -491,12 +491,11 @@ bool partialClearNeedsInit(const Context *context, bool color, bool depth, bool stencil); bool partialBufferClearNeedsInit(const Context *context, GLenum bufferType); FramebufferAttachment *getAttachmentFromSubjectIndex(angle::SubjectIndex index); - ANGLE_INLINE void updateFloat32ColorAttachmentBits(size_t index, - const gl::InternalFormat *format) + ANGLE_INLINE void updateFloat32ColorAttachmentBits(size_t index, const InternalFormat *format) { mFloat32ColorAttachmentBits.set(index, format->type == GL_FLOAT); } FramebufferState mState; diff --git a/gfx/angle/checkout/src/libANGLE/Framebuffer.cpp b/gfx/angle/checkout/src/libANGLE/Framebuffer.cpp --- a/gfx/angle/checkout/src/libANGLE/Framebuffer.cpp +++ b/gfx/angle/checkout/src/libANGLE/Framebuffer.cpp @@ -34,32 +34,35 @@ { namespace { +// Check the |checkAttachment| in reference to |firstAttachment| for the sake of multiview +// framebuffer completeness. FramebufferStatus CheckMultiviewStateMatchesForCompleteness( const FramebufferAttachment *firstAttachment, - const FramebufferAttachment *secondAttachment) + const FramebufferAttachment *checkAttachment) { - ASSERT(firstAttachment && secondAttachment); - ASSERT(firstAttachment->isAttached() && secondAttachment->isAttached()); + ASSERT(firstAttachment && checkAttachment); + ASSERT(firstAttachment->isAttached() && checkAttachment->isAttached()); - if (firstAttachment->getNumViews() != secondAttachment->getNumViews()) + if (firstAttachment->isMultiview() != checkAttachment->isMultiview()) + { + return FramebufferStatus::Incomplete(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR, + err::kFramebufferIncompleteMultiviewMismatch); + } + if (firstAttachment->getNumViews() != checkAttachment->getNumViews()) { return FramebufferStatus::Incomplete(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR, err::kFramebufferIncompleteMultiviewViewsMismatch); } - if (firstAttachment->getBaseViewIndex() != secondAttachment->getBaseViewIndex()) + if (checkAttachment->getBaseViewIndex() + checkAttachment->getNumViews() > + checkAttachment->getSize().depth) { return FramebufferStatus::Incomplete(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR, err::kFramebufferIncompleteMultiviewBaseViewMismatch); } - if (firstAttachment->isMultiview() != secondAttachment->isMultiview()) - { - return FramebufferStatus::Incomplete(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR, - err::kFramebufferIncompleteMultiviewMismatch); - } return FramebufferStatus::Complete(); } FramebufferStatus CheckAttachmentCompleteness(const Context *context, @@ -176,11 +179,11 @@ } else { // CHROMIUM_framebuffer_mixed_samples allows a framebuffer to be considered complete // when its depth or stencil samples are a multiple of the number of color samples. - if (!context->getExtensions().framebufferMixedSamples) + if (!context->getExtensions().framebufferMixedSamplesCHROMIUM) { return FramebufferStatus::Incomplete( GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE, err::kFramebufferIncompleteMultisampleInconsistentSampleCounts); } @@ -773,10 +776,15 @@ bool FramebufferState::isDefault() const { return mId == Framebuffer::kDefaultDrawFramebufferHandle; } +bool FramebufferState::isBoundAsDrawFramebuffer(const Context *context) const +{ + return context->getState().getDrawFramebuffer()->id() == mId; +} + const FramebufferID Framebuffer::kDefaultDrawFramebufferHandle = {0}; Framebuffer::Framebuffer(const Caps &caps, rx::GLImplFactory *factory, FramebufferID id, @@ -1489,11 +1497,11 @@ err::kFramebufferIncompleteDefaultZeroSize); } // In ES 2.0 and WebGL, all color attachments must have the same width and height. // In ES 3.0, there is no such restriction. - if ((state.getClientMajorVersion() < 3 || state.getExtensions().webglCompatibility) && + if ((state.getClientMajorVersion() < 3 || state.getExtensions().webglCompatibilityANGLE) && !mState.attachmentsHaveSameDimensions()) { return FramebufferStatus::Incomplete( GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS, err::kFramebufferIncompleteInconsistantAttachmentSizes); @@ -1509,11 +1517,11 @@ } // The WebGL conformance tests implicitly define that all framebuffer // attachments must be unique. For example, the same level of a texture can // not be attached to two different color attachments. - if (state.getExtensions().webglCompatibility) + if (state.getExtensions().webglCompatibilityANGLE) { if (!mState.colorAttachmentsAreUniqueImages()) { return FramebufferStatus::Incomplete(GL_FRAMEBUFFER_UNSUPPORTED, err::kFramebufferIncompleteAttachmentsNotUnique); @@ -1791,12 +1799,23 @@ const ImageIndex &textureIndex, FramebufferAttachmentObject *resource, GLsizei numViews, GLuint baseViewIndex, bool isMultiview, - GLsizei samples) + GLsizei samplesIn) { + GLsizei samples = samplesIn; + // Match the sample count to the attachment's sample count. + if (resource) + { + const InternalFormat *info = resource->getAttachmentFormat(binding, textureIndex).info; + ASSERT(info); + GLenum internalformat = info->internalFormat; + const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); + samples = formatCaps.getNearestSamples(samples); + } + // Context may be null in unit tests. if (!context || !context->isWebGL1()) { setAttachmentImpl(context, type, binding, textureIndex, resource, numViews, baseViewIndex, isMultiview, samples); diff --git a/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.h b/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.h --- a/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.h +++ b/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.h @@ -210,10 +210,11 @@ virtual GLsizei getAttachmentSamples(const ImageIndex &imageIndex) const = 0; virtual bool isRenderable(const Context *context, GLenum binding, const ImageIndex &imageIndex) const = 0; virtual bool isYUV() const = 0; + virtual bool hasProtectedContent() const = 0; virtual void onAttach(const Context *context, rx::Serial framebufferSerial) = 0; virtual void onDetach(const Context *context, rx::Serial framebufferSerial) = 0; virtual GLuint getId() const = 0; diff --git a/gfx/angle/checkout/src/libANGLE/GLES1Renderer.h b/gfx/angle/checkout/src/libANGLE/GLES1Renderer.h --- a/gfx/angle/checkout/src/libANGLE/GLES1Renderer.h +++ b/gfx/angle/checkout/src/libANGLE/GLES1Renderer.h @@ -25,10 +25,55 @@ class Program; class State; class Shader; class ShaderProgramManager; +enum class GLES1StateEnables : uint64_t +{ + Lighting = 0, + Fog = 1, + ClipPlanes = 2, + DrawTexture = 3, + PointRasterization = 4, + PointSprite = 5, + RescaleNormal = 6, + Normalize = 7, + AlphaTest = 8, + ShadeModelFlat = 9, + ColorMaterial = 10, + LightModelTwoSided = 11, + Tex2d0 = 12, + Tex2d1 = 13, + Tex2d2 = 14, + Tex2d3 = 15, + TexCube0 = 16, + TexCube1 = 17, + TexCube2 = 18, + TexCube3 = 19, + PointSpriteCoordReplaces0 = 20, + PointSpriteCoordReplaces1 = 21, + PointSpriteCoordReplaces2 = 22, + PointSpriteCoordReplaces3 = 23, + Light0 = 24, + Light1 = 25, + Light2 = 26, + Light3 = 27, + Light4 = 28, + Light5 = 29, + Light6 = 30, + Light7 = 31, + ClipPlane0 = 32, + ClipPlane1 = 33, + ClipPlane2 = 34, + ClipPlane3 = 35, + ClipPlane4 = 36, + ClipPlane5 = 37, + + InvalidEnum = 38, + EnumCount = 38, +}; + class GLES1Renderer final : angle::NonCopyable { public: GLES1Renderer(); ~GLES1Renderer(); @@ -115,22 +160,31 @@ static constexpr int kTextureCoordAttribIndexBase = 4; bool mRendererProgramInitialized; ShaderProgramManager *mShaderPrograms; + using GLES1StateEnabledBitSet = angle::PackedEnumBitSet; + + GLES1StateEnabledBitSet mGLES1StateEnabled; + + const char *getShaderBool(GLES1StateEnables state); + void addShaderDefine(std::stringstream &outStream, + GLES1StateEnables state, + const char *enableString); + void addVertexShaderDefs(std::stringstream &outStream); + void addFragmentShaderDefs(std::stringstream &outStream); + struct GLES1ProgramState { ShaderProgramID program; UniformLocation projMatrixLoc; UniformLocation modelviewMatrixLoc; UniformLocation textureMatrixLoc; UniformLocation modelviewInvTrLoc; // Texturing - UniformLocation enableTexture2DLoc; - UniformLocation enableTextureCubeMapLoc; std::array tex2DSamplerLocs; std::array texCubeSamplerLocs; UniformLocation textureFormatLoc; @@ -150,34 +204,24 @@ UniformLocation op2rgbLoc; UniformLocation op2alphaLoc; UniformLocation textureEnvColorLoc; UniformLocation rgbScaleLoc; UniformLocation alphaScaleLoc; - UniformLocation pointSpriteCoordReplaceLoc; // Alpha test - UniformLocation enableAlphaTestLoc; UniformLocation alphaFuncLoc; UniformLocation alphaTestRefLoc; // Shading, materials, and lighting - UniformLocation shadeModelFlatLoc; - UniformLocation enableLightingLoc; - UniformLocation enableRescaleNormalLoc; - UniformLocation enableNormalizeLoc; - UniformLocation enableColorMaterialLoc; - UniformLocation materialAmbientLoc; UniformLocation materialDiffuseLoc; UniformLocation materialSpecularLoc; UniformLocation materialEmissiveLoc; UniformLocation materialSpecularExponentLoc; UniformLocation lightModelSceneAmbientLoc; - UniformLocation lightModelTwoSidedLoc; - UniformLocation lightEnablesLoc; UniformLocation lightAmbientsLoc; UniformLocation lightDiffusesLoc; UniformLocation lightSpecularsLoc; UniformLocation lightPositionsLoc; UniformLocation lightDirectionsLoc; @@ -186,31 +230,25 @@ UniformLocation lightAttenuationConstsLoc; UniformLocation lightAttenuationLinearsLoc; UniformLocation lightAttenuationQuadraticsLoc; // Fog - UniformLocation fogEnableLoc; UniformLocation fogModeLoc; UniformLocation fogDensityLoc; UniformLocation fogStartLoc; UniformLocation fogEndLoc; UniformLocation fogColorLoc; // Clip planes - UniformLocation enableClipPlanesLoc; - UniformLocation clipPlaneEnablesLoc; UniformLocation clipPlanesLoc; // Point rasterization - UniformLocation pointRasterizationLoc; UniformLocation pointSizeMinLoc; UniformLocation pointSizeMaxLoc; UniformLocation pointDistanceAttenuationLoc; - UniformLocation pointSpriteEnabledLoc; // Draw texture - UniformLocation enableDrawTextureLoc; UniformLocation drawTextureCoordsLoc; UniformLocation drawTextureDimsLoc; UniformLocation drawTextureNormalizedCropRectLoc; }; @@ -237,14 +275,12 @@ std::array texCombineOp2Rgbs; std::array texCombineOp2Alphas; std::array texEnvColors; std::array texEnvRgbScales; std::array texEnvAlphaScales; - std::array pointSpriteCoordReplaces; // Lighting - std::array lightEnables; std::array lightAmbients; std::array lightDiffuses; std::array lightSpeculars; std::array lightPositions; std::array lightDirections; @@ -253,19 +289,18 @@ std::array attenuationConsts; std::array attenuationLinears; std::array attenuationQuadratics; // Clip planes - std::array clipPlaneEnables; std::array clipPlanes; // Texture crop rectangles std::array texCropRects; }; - GLES1UniformBuffers mUniformBuffers; - GLES1ProgramState mProgramState; + angle::HashMap mUniformBuffers; + angle::HashMap mProgramStates; bool mDrawTextureEnabled = false; GLfloat mDrawTextureCoords[4] = {0.0f, 0.0f, 0.0f, 0.0f}; GLfloat mDrawTextureDims[2] = {0.0f, 0.0f}; }; diff --git a/gfx/angle/checkout/src/libANGLE/GLES1Renderer.cpp b/gfx/angle/checkout/src/libANGLE/GLES1Renderer.cpp --- a/gfx/angle/checkout/src/libANGLE/GLES1Renderer.cpp +++ b/gfx/angle/checkout/src/libANGLE/GLES1Renderer.cpp @@ -35,122 +35,170 @@ { if (mRendererProgramInitialized) { (void)state->setProgram(context, 0); - mShaderPrograms->deleteProgram(context, {mProgramState.program}); + for (const auto &iter : mProgramStates) + { + const GLES1ProgramState &programState = iter.second; + mShaderPrograms->deleteProgram(context, {programState.program}); + } mShaderPrograms->release(context); mShaderPrograms = nullptr; mRendererProgramInitialized = false; } } GLES1Renderer::~GLES1Renderer() = default; angle::Result GLES1Renderer::prepareForDraw(PrimitiveMode mode, Context *context, State *glState) { - ANGLE_TRY(initializeRendererProgram(context, glState)); - GLES1State &gles1State = glState->gles1(); - Program *programObject = getProgram(mProgramState.program); + std::array tex2DEnables; + std::array texCubeEnables; + + std::vector tex2DFormats = {GL_RGBA, GL_RGBA, GL_RGBA, GL_RGBA}; + + std::array texCropRects; + Vec4Uniform *cropRectBuffer = texCropRects.data(); + + for (int i = 0; i < kTexUnitCount; i++) + { + // GL_OES_cube_map allows only one of TEXTURE_2D / TEXTURE_CUBE_MAP + // to be enabled per unit, thankfully. From the extension text: + // + // -- Section 3.8.10 "Texture Application" + // + // Replace the beginning sentences of the first paragraph (page 138) + // with: + // + // "Texturing is enabled or disabled using the generic Enable + // and Disable commands, respectively, with the symbolic constants + // TEXTURE_2D or TEXTURE_CUBE_MAP_OES to enable the two-dimensional or cube + // map texturing respectively. If the cube map texture and the two- + // dimensional texture are enabled, then cube map texturing is used. If + // texturing is disabled, a rasterized fragment is passed on unaltered to the + // next stage of the GL (although its texture coordinates may be discarded). + // Otherwise, a texture value is found according to the parameter values of + // the currently bound texture image of the appropriate dimensionality. + + texCubeEnables[i] = gles1State.isTextureTargetEnabled(i, TextureType::CubeMap); + tex2DEnables[i] = + !texCubeEnables[i] && (gles1State.isTextureTargetEnabled(i, TextureType::_2D)); + + Texture *curr2DTexture = glState->getSamplerTexture(i, TextureType::_2D); + if (curr2DTexture) + { + tex2DFormats[i] = gl::GetUnsizedFormat( + curr2DTexture->getFormat(TextureTarget::_2D, 0).info->internalFormat); + + const gl::Rectangle &cropRect = curr2DTexture->getCrop(); + + GLfloat textureWidth = + static_cast(curr2DTexture->getWidth(TextureTarget::_2D, 0)); + GLfloat textureHeight = + static_cast(curr2DTexture->getHeight(TextureTarget::_2D, 0)); + + if (textureWidth > 0.0f && textureHeight > 0.0f) + { + cropRectBuffer[i][0] = cropRect.x / textureWidth; + cropRectBuffer[i][1] = cropRect.y / textureHeight; + cropRectBuffer[i][2] = cropRect.width / textureWidth; + cropRectBuffer[i][3] = cropRect.height / textureHeight; + } + } + } + mGLES1StateEnabled[GLES1StateEnables::Tex2d0] = tex2DEnables[0]; + mGLES1StateEnabled[GLES1StateEnables::Tex2d1] = tex2DEnables[1]; + mGLES1StateEnabled[GLES1StateEnables::Tex2d2] = tex2DEnables[2]; + mGLES1StateEnabled[GLES1StateEnables::Tex2d3] = tex2DEnables[3]; + + mGLES1StateEnabled[GLES1StateEnables::TexCube0] = texCubeEnables[0]; + mGLES1StateEnabled[GLES1StateEnables::TexCube1] = texCubeEnables[1]; + mGLES1StateEnabled[GLES1StateEnables::TexCube2] = texCubeEnables[2]; + mGLES1StateEnabled[GLES1StateEnables::TexCube3] = texCubeEnables[3]; - GLES1UniformBuffers &uniformBuffers = mUniformBuffers; + bool enableClipPlanes = false; + bool clipPlaneEnables[kClipPlaneCount]; + for (int i = 0; i < kClipPlaneCount; i++) + { + clipPlaneEnables[i] = glState->getEnableFeature(GL_CLIP_PLANE0 + i); + enableClipPlanes = enableClipPlanes || clipPlaneEnables[i]; + } + mGLES1StateEnabled[GLES1StateEnables::ClipPlanes] = enableClipPlanes; + mGLES1StateEnabled[GLES1StateEnables::DrawTexture] = mDrawTextureEnabled; + mGLES1StateEnabled[GLES1StateEnables::PointRasterization] = mode == PrimitiveMode::Points; + mGLES1StateEnabled[GLES1StateEnables::ShadeModelFlat] = + gles1State.mShadeModel == ShadingModel::Flat; + mGLES1StateEnabled[GLES1StateEnables::AlphaTest] = glState->getEnableFeature(GL_ALPHA_TEST); + mGLES1StateEnabled[GLES1StateEnables::Lighting] = glState->getEnableFeature(GL_LIGHTING); + mGLES1StateEnabled[GLES1StateEnables::RescaleNormal] = + glState->getEnableFeature(GL_RESCALE_NORMAL); + mGLES1StateEnabled[GLES1StateEnables::Normalize] = glState->getEnableFeature(GL_NORMALIZE); + mGLES1StateEnabled[GLES1StateEnables::Fog] = glState->getEnableFeature(GL_FOG); + mGLES1StateEnabled[GLES1StateEnables::PointSprite] = + glState->getEnableFeature(GL_POINT_SPRITE_OES); + mGLES1StateEnabled[GLES1StateEnables::ColorMaterial] = + glState->getEnableFeature(GL_COLOR_MATERIAL); + + // TODO (lfy@google.com): Implement two-sided lighting model (lightModel.twoSided) + mGLES1StateEnabled[GLES1StateEnables::LightModelTwoSided] = false; + + bool pointSpriteCoordReplaces[kTexUnitCount]; + for (int i = 0; i < kTexUnitCount; i++) + { + const auto &env = gles1State.textureEnvironment(i); + pointSpriteCoordReplaces[i] = env.pointSpriteCoordReplace; + } + mGLES1StateEnabled[GLES1StateEnables::PointSpriteCoordReplaces0] = pointSpriteCoordReplaces[0]; + mGLES1StateEnabled[GLES1StateEnables::PointSpriteCoordReplaces1] = pointSpriteCoordReplaces[1]; + mGLES1StateEnabled[GLES1StateEnables::PointSpriteCoordReplaces2] = pointSpriteCoordReplaces[2]; + mGLES1StateEnabled[GLES1StateEnables::PointSpriteCoordReplaces3] = pointSpriteCoordReplaces[3]; + + bool lightEnables[kLightCount]; + for (int i = 0; i < kLightCount; i++) + { + const auto &light = gles1State.mLights[i]; + lightEnables[i] = light.enabled; + } + mGLES1StateEnabled[GLES1StateEnables::Light0] = lightEnables[0]; + mGLES1StateEnabled[GLES1StateEnables::Light1] = lightEnables[1]; + mGLES1StateEnabled[GLES1StateEnables::Light2] = lightEnables[2]; + mGLES1StateEnabled[GLES1StateEnables::Light3] = lightEnables[3]; + mGLES1StateEnabled[GLES1StateEnables::Light4] = lightEnables[4]; + mGLES1StateEnabled[GLES1StateEnables::Light5] = lightEnables[5]; + mGLES1StateEnabled[GLES1StateEnables::Light6] = lightEnables[6]; + mGLES1StateEnabled[GLES1StateEnables::Light7] = lightEnables[7]; + + mGLES1StateEnabled[GLES1StateEnables::ClipPlane0] = clipPlaneEnables[0]; + mGLES1StateEnabled[GLES1StateEnables::ClipPlane1] = clipPlaneEnables[1]; + mGLES1StateEnabled[GLES1StateEnables::ClipPlane2] = clipPlaneEnables[2]; + mGLES1StateEnabled[GLES1StateEnables::ClipPlane3] = clipPlaneEnables[3]; + mGLES1StateEnabled[GLES1StateEnables::ClipPlane4] = clipPlaneEnables[4]; + mGLES1StateEnabled[GLES1StateEnables::ClipPlane5] = clipPlaneEnables[5]; + + ANGLE_TRY(initializeRendererProgram(context, glState)); + + uint64_t stateEnables = mGLES1StateEnabled.to_ulong(); + const GLES1ProgramState &programState = mProgramStates[stateEnables]; + + Program *programObject = getProgram(programState.program); + + GLES1UniformBuffers &uniformBuffers = mUniformBuffers[stateEnables]; // If anything is dirty in gles1 or the common parts of gles1/2, just redo these parts // completely for now. // Feature enables - { - setUniform1i(context, programObject, mProgramState.enableAlphaTestLoc, - glState->getEnableFeature(GL_ALPHA_TEST)); - setUniform1i(context, programObject, mProgramState.enableLightingLoc, - glState->getEnableFeature(GL_LIGHTING)); - setUniform1i(context, programObject, mProgramState.enableRescaleNormalLoc, - glState->getEnableFeature(GL_RESCALE_NORMAL)); - setUniform1i(context, programObject, mProgramState.enableNormalizeLoc, - glState->getEnableFeature(GL_NORMALIZE)); - setUniform1i(context, programObject, mProgramState.enableColorMaterialLoc, - glState->getEnableFeature(GL_COLOR_MATERIAL)); - setUniform1i(context, programObject, mProgramState.fogEnableLoc, - glState->getEnableFeature(GL_FOG)); - - bool enableClipPlanes = false; - for (int i = 0; i < kClipPlaneCount; i++) - { - uniformBuffers.clipPlaneEnables[i] = glState->getEnableFeature(GL_CLIP_PLANE0 + i); - enableClipPlanes = enableClipPlanes || uniformBuffers.clipPlaneEnables[i]; - } - - setUniform1i(context, programObject, mProgramState.enableClipPlanesLoc, enableClipPlanes); - } // Texture unit enables and format info { - std::array &tex2DEnables = uniformBuffers.tex2DEnables; - std::array &texCubeEnables = uniformBuffers.texCubeEnables; - - std::vector tex2DFormats = {GL_RGBA, GL_RGBA, GL_RGBA, GL_RGBA}; - - Vec4Uniform *cropRectBuffer = uniformBuffers.texCropRects.data(); - - for (int i = 0; i < kTexUnitCount; i++) - { - // GL_OES_cube_map allows only one of TEXTURE_2D / TEXTURE_CUBE_MAP - // to be enabled per unit, thankfully. From the extension text: - // - // -- Section 3.8.10 "Texture Application" - // - // Replace the beginning sentences of the first paragraph (page 138) - // with: - // - // "Texturing is enabled or disabled using the generic Enable - // and Disable commands, respectively, with the symbolic constants - // TEXTURE_2D or TEXTURE_CUBE_MAP_OES to enable the two-dimensional or cube - // map texturing respectively. If the cube map texture and the two- - // dimensional texture are enabled, then cube map texturing is used. If - // texturing is disabled, a rasterized fragment is passed on unaltered to the - // next stage of the GL (although its texture coordinates may be discarded). - // Otherwise, a texture value is found according to the parameter values of - // the currently bound texture image of the appropriate dimensionality. - - texCubeEnables[i] = gles1State.isTextureTargetEnabled(i, TextureType::CubeMap); - tex2DEnables[i] = - !texCubeEnables[i] && (gles1State.isTextureTargetEnabled(i, TextureType::_2D)); - - Texture *curr2DTexture = glState->getSamplerTexture(i, TextureType::_2D); - if (curr2DTexture) - { - tex2DFormats[i] = gl::GetUnsizedFormat( - curr2DTexture->getFormat(TextureTarget::_2D, 0).info->internalFormat); - - const gl::Rectangle &cropRect = curr2DTexture->getCrop(); - - GLfloat textureWidth = - static_cast(curr2DTexture->getWidth(TextureTarget::_2D, 0)); - GLfloat textureHeight = - static_cast(curr2DTexture->getHeight(TextureTarget::_2D, 0)); - - if (textureWidth > 0.0f && textureHeight > 0.0f) - { - cropRectBuffer[i][0] = cropRect.x / textureWidth; - cropRectBuffer[i][1] = cropRect.y / textureHeight; - cropRectBuffer[i][2] = cropRect.width / textureWidth; - cropRectBuffer[i][3] = cropRect.height / textureHeight; - } - } - } - - setUniform1iv(context, programObject, mProgramState.enableTexture2DLoc, kTexUnitCount, - tex2DEnables.data()); - setUniform1iv(context, programObject, mProgramState.enableTextureCubeMapLoc, kTexUnitCount, - texCubeEnables.data()); - - setUniform1iv(context, programObject, mProgramState.textureFormatLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.textureFormatLoc, kTexUnitCount, tex2DFormats.data()); - setUniform4fv(programObject, mProgramState.drawTextureNormalizedCropRectLoc, kTexUnitCount, + setUniform4fv(programObject, programState.drawTextureNormalizedCropRectLoc, kTexUnitCount, reinterpret_cast(cropRectBuffer)); } // Client state / current vector enables if (gles1State.isDirty(GLES1State::DIRTY_GLES1_CLIENT_STATE_ENABLE) || @@ -188,29 +236,29 @@ // Matrices if (gles1State.isDirty(GLES1State::DIRTY_GLES1_MATRICES)) { angle::Mat4 proj = gles1State.mProjectionMatrices.back(); - setUniformMatrix4fv(programObject, mProgramState.projMatrixLoc, 1, GL_FALSE, proj.data()); + setUniformMatrix4fv(programObject, programState.projMatrixLoc, 1, GL_FALSE, proj.data()); angle::Mat4 modelview = gles1State.mModelviewMatrices.back(); - setUniformMatrix4fv(programObject, mProgramState.modelviewMatrixLoc, 1, GL_FALSE, + setUniformMatrix4fv(programObject, programState.modelviewMatrixLoc, 1, GL_FALSE, modelview.data()); angle::Mat4 modelviewInvTr = modelview.transpose().inverse(); - setUniformMatrix4fv(programObject, mProgramState.modelviewInvTrLoc, 1, GL_FALSE, + setUniformMatrix4fv(programObject, programState.modelviewInvTrLoc, 1, GL_FALSE, modelviewInvTr.data()); Mat4Uniform *textureMatrixBuffer = uniformBuffers.textureMatrices.data(); for (int i = 0; i < kTexUnitCount; i++) { angle::Mat4 textureMatrix = gles1State.mTextureMatrices[i].back(); memcpy(textureMatrixBuffer + i, textureMatrix.data(), sizeof(Mat4Uniform)); } - setUniformMatrix4fv(programObject, mProgramState.textureMatrixLoc, kTexUnitCount, GL_FALSE, + setUniformMatrix4fv(programObject, programState.textureMatrixLoc, kTexUnitCount, GL_FALSE, reinterpret_cast(uniformBuffers.textureMatrices.data())); } if (gles1State.isDirty(GLES1State::DIRTY_GLES1_TEXTURE_ENVIRONMENT)) { @@ -241,101 +289,84 @@ uniformBuffers.texEnvColors[i][2] = env.color.blue; uniformBuffers.texEnvColors[i][3] = env.color.alpha; uniformBuffers.texEnvRgbScales[i] = env.rgbScale; uniformBuffers.texEnvAlphaScales[i] = env.alphaScale; - - uniformBuffers.pointSpriteCoordReplaces[i] = env.pointSpriteCoordReplace; } - setUniform1iv(context, programObject, mProgramState.textureEnvModeLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.textureEnvModeLoc, kTexUnitCount, uniformBuffers.texEnvModes.data()); - setUniform1iv(context, programObject, mProgramState.combineRgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.combineRgbLoc, kTexUnitCount, uniformBuffers.texCombineRgbs.data()); - setUniform1iv(context, programObject, mProgramState.combineAlphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.combineAlphaLoc, kTexUnitCount, uniformBuffers.texCombineAlphas.data()); - setUniform1iv(context, programObject, mProgramState.src0rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src0rgbLoc, kTexUnitCount, uniformBuffers.texCombineSrc0Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.src0alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src0alphaLoc, kTexUnitCount, uniformBuffers.texCombineSrc0Alphas.data()); - setUniform1iv(context, programObject, mProgramState.src1rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src1rgbLoc, kTexUnitCount, uniformBuffers.texCombineSrc1Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.src1alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src1alphaLoc, kTexUnitCount, uniformBuffers.texCombineSrc1Alphas.data()); - setUniform1iv(context, programObject, mProgramState.src2rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src2rgbLoc, kTexUnitCount, uniformBuffers.texCombineSrc2Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.src2alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.src2alphaLoc, kTexUnitCount, uniformBuffers.texCombineSrc2Alphas.data()); - setUniform1iv(context, programObject, mProgramState.op0rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op0rgbLoc, kTexUnitCount, uniformBuffers.texCombineOp0Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.op0alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op0alphaLoc, kTexUnitCount, uniformBuffers.texCombineOp0Alphas.data()); - setUniform1iv(context, programObject, mProgramState.op1rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op1rgbLoc, kTexUnitCount, uniformBuffers.texCombineOp1Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.op1alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op1alphaLoc, kTexUnitCount, uniformBuffers.texCombineOp1Alphas.data()); - setUniform1iv(context, programObject, mProgramState.op2rgbLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op2rgbLoc, kTexUnitCount, uniformBuffers.texCombineOp2Rgbs.data()); - setUniform1iv(context, programObject, mProgramState.op2alphaLoc, kTexUnitCount, + setUniform1iv(context, programObject, programState.op2alphaLoc, kTexUnitCount, uniformBuffers.texCombineOp2Alphas.data()); - setUniform4fv(programObject, mProgramState.textureEnvColorLoc, kTexUnitCount, + setUniform4fv(programObject, programState.textureEnvColorLoc, kTexUnitCount, reinterpret_cast(uniformBuffers.texEnvColors.data())); - setUniform1fv(programObject, mProgramState.rgbScaleLoc, kTexUnitCount, + setUniform1fv(programObject, programState.rgbScaleLoc, kTexUnitCount, uniformBuffers.texEnvRgbScales.data()); - setUniform1fv(programObject, mProgramState.alphaScaleLoc, kTexUnitCount, + setUniform1fv(programObject, programState.alphaScaleLoc, kTexUnitCount, uniformBuffers.texEnvAlphaScales.data()); - - setUniform1iv(context, programObject, mProgramState.pointSpriteCoordReplaceLoc, - kTexUnitCount, uniformBuffers.pointSpriteCoordReplaces.data()); } // Alpha test if (gles1State.isDirty(GLES1State::DIRTY_GLES1_ALPHA_TEST)) { - setUniform1i(context, programObject, mProgramState.alphaFuncLoc, + setUniform1i(context, programObject, programState.alphaFuncLoc, ToGLenum(gles1State.mAlphaTestFunc)); - setUniform1f(programObject, mProgramState.alphaTestRefLoc, gles1State.mAlphaTestRef); + setUniform1f(programObject, programState.alphaTestRefLoc, gles1State.mAlphaTestRef); } // Shading, materials, and lighting - if (gles1State.isDirty(GLES1State::DIRTY_GLES1_SHADE_MODEL)) - { - setUniform1i(context, programObject, mProgramState.shadeModelFlatLoc, - gles1State.mShadeModel == ShadingModel::Flat); - } - if (gles1State.isDirty(GLES1State::DIRTY_GLES1_MATERIAL)) { const auto &material = gles1State.mMaterial; - setUniform4fv(programObject, mProgramState.materialAmbientLoc, 1, material.ambient.data()); - setUniform4fv(programObject, mProgramState.materialDiffuseLoc, 1, material.diffuse.data()); - setUniform4fv(programObject, mProgramState.materialSpecularLoc, 1, - material.specular.data()); - setUniform4fv(programObject, mProgramState.materialEmissiveLoc, 1, - material.emissive.data()); - setUniform1f(programObject, mProgramState.materialSpecularExponentLoc, + setUniform4fv(programObject, programState.materialAmbientLoc, 1, material.ambient.data()); + setUniform4fv(programObject, programState.materialDiffuseLoc, 1, material.diffuse.data()); + setUniform4fv(programObject, programState.materialSpecularLoc, 1, material.specular.data()); + setUniform4fv(programObject, programState.materialEmissiveLoc, 1, material.emissive.data()); + setUniform1f(programObject, programState.materialSpecularExponentLoc, material.specularExponent); } if (gles1State.isDirty(GLES1State::DIRTY_GLES1_LIGHTS)) { const auto &lightModel = gles1State.mLightModel; - setUniform4fv(programObject, mProgramState.lightModelSceneAmbientLoc, 1, + setUniform4fv(programObject, programState.lightModelSceneAmbientLoc, 1, lightModel.color.data()); - // TODO (lfy@google.com): Implement two-sided lighting model - // gl->uniform1i(mProgramState.lightModelTwoSidedLoc, lightModel.twoSided); - for (int i = 0; i < kLightCount; i++) { - const auto &light = gles1State.mLights[i]; - uniformBuffers.lightEnables[i] = light.enabled; + const auto &light = gles1State.mLights[i]; memcpy(uniformBuffers.lightAmbients.data() + i, light.ambient.data(), sizeof(Vec4Uniform)); memcpy(uniformBuffers.lightDiffuses.data() + i, light.diffuse.data(), sizeof(Vec4Uniform)); memcpy(uniformBuffers.lightSpeculars.data() + i, light.specular.data(), @@ -349,83 +380,69 @@ uniformBuffers.attenuationConsts[i] = light.attenuationConst; uniformBuffers.attenuationLinears[i] = light.attenuationLinear; uniformBuffers.attenuationQuadratics[i] = light.attenuationQuadratic; } - setUniform1iv(context, programObject, mProgramState.lightEnablesLoc, kLightCount, - uniformBuffers.lightEnables.data()); - setUniform4fv(programObject, mProgramState.lightAmbientsLoc, kLightCount, + setUniform4fv(programObject, programState.lightAmbientsLoc, kLightCount, reinterpret_cast(uniformBuffers.lightAmbients.data())); - setUniform4fv(programObject, mProgramState.lightDiffusesLoc, kLightCount, + setUniform4fv(programObject, programState.lightDiffusesLoc, kLightCount, reinterpret_cast(uniformBuffers.lightDiffuses.data())); - setUniform4fv(programObject, mProgramState.lightSpecularsLoc, kLightCount, + setUniform4fv(programObject, programState.lightSpecularsLoc, kLightCount, reinterpret_cast(uniformBuffers.lightSpeculars.data())); - setUniform4fv(programObject, mProgramState.lightPositionsLoc, kLightCount, + setUniform4fv(programObject, programState.lightPositionsLoc, kLightCount, reinterpret_cast(uniformBuffers.lightPositions.data())); - setUniform3fv(programObject, mProgramState.lightDirectionsLoc, kLightCount, + setUniform3fv(programObject, programState.lightDirectionsLoc, kLightCount, reinterpret_cast(uniformBuffers.lightDirections.data())); - setUniform1fv(programObject, mProgramState.lightSpotlightExponentsLoc, kLightCount, + setUniform1fv(programObject, programState.lightSpotlightExponentsLoc, kLightCount, reinterpret_cast(uniformBuffers.spotlightExponents.data())); - setUniform1fv(programObject, mProgramState.lightSpotlightCutoffAnglesLoc, kLightCount, + setUniform1fv(programObject, programState.lightSpotlightCutoffAnglesLoc, kLightCount, reinterpret_cast(uniformBuffers.spotlightCutoffAngles.data())); - setUniform1fv(programObject, mProgramState.lightAttenuationConstsLoc, kLightCount, + setUniform1fv(programObject, programState.lightAttenuationConstsLoc, kLightCount, reinterpret_cast(uniformBuffers.attenuationConsts.data())); - setUniform1fv(programObject, mProgramState.lightAttenuationLinearsLoc, kLightCount, + setUniform1fv(programObject, programState.lightAttenuationLinearsLoc, kLightCount, reinterpret_cast(uniformBuffers.attenuationLinears.data())); - setUniform1fv(programObject, mProgramState.lightAttenuationQuadraticsLoc, kLightCount, + setUniform1fv(programObject, programState.lightAttenuationQuadraticsLoc, kLightCount, reinterpret_cast(uniformBuffers.attenuationQuadratics.data())); } if (gles1State.isDirty(GLES1State::DIRTY_GLES1_FOG)) { const FogParameters &fog = gles1State.fogParameters(); - setUniform1i(context, programObject, mProgramState.fogModeLoc, ToGLenum(fog.mode)); - setUniform1f(programObject, mProgramState.fogDensityLoc, fog.density); - setUniform1f(programObject, mProgramState.fogStartLoc, fog.start); - setUniform1f(programObject, mProgramState.fogEndLoc, fog.end); - setUniform4fv(programObject, mProgramState.fogColorLoc, 1, fog.color.data()); + setUniform1i(context, programObject, programState.fogModeLoc, ToGLenum(fog.mode)); + setUniform1f(programObject, programState.fogDensityLoc, fog.density); + setUniform1f(programObject, programState.fogStartLoc, fog.start); + setUniform1f(programObject, programState.fogEndLoc, fog.end); + setUniform4fv(programObject, programState.fogColorLoc, 1, fog.color.data()); } // Clip planes if (gles1State.isDirty(GLES1State::DIRTY_GLES1_CLIP_PLANES)) { - bool enableClipPlanes = false; for (int i = 0; i < kClipPlaneCount; i++) { - uniformBuffers.clipPlaneEnables[i] = glState->getEnableFeature(GL_CLIP_PLANE0 + i); - enableClipPlanes = enableClipPlanes || uniformBuffers.clipPlaneEnables[i]; gles1State.getClipPlane( i, reinterpret_cast(uniformBuffers.clipPlanes.data() + i)); } - setUniform1i(context, programObject, mProgramState.enableClipPlanesLoc, enableClipPlanes); - setUniform1iv(context, programObject, mProgramState.clipPlaneEnablesLoc, kClipPlaneCount, - uniformBuffers.clipPlaneEnables.data()); - setUniform4fv(programObject, mProgramState.clipPlanesLoc, kClipPlaneCount, + setUniform4fv(programObject, programState.clipPlanesLoc, kClipPlaneCount, reinterpret_cast(uniformBuffers.clipPlanes.data())); } // Point rasterization { const PointParameters &pointParams = gles1State.mPointParameters; - setUniform1i(context, programObject, mProgramState.pointRasterizationLoc, - mode == PrimitiveMode::Points); - setUniform1i(context, programObject, mProgramState.pointSpriteEnabledLoc, - glState->getEnableFeature(GL_POINT_SPRITE_OES)); - setUniform1f(programObject, mProgramState.pointSizeMinLoc, pointParams.pointSizeMin); - setUniform1f(programObject, mProgramState.pointSizeMaxLoc, pointParams.pointSizeMax); - setUniform3fv(programObject, mProgramState.pointDistanceAttenuationLoc, 1, + setUniform1f(programObject, programState.pointSizeMinLoc, pointParams.pointSizeMin); + setUniform1f(programObject, programState.pointSizeMaxLoc, pointParams.pointSizeMax); + setUniform3fv(programObject, programState.pointDistanceAttenuationLoc, 1, pointParams.pointDistanceAttenuation.data()); } // Draw texture { - setUniform1i(context, programObject, mProgramState.enableDrawTextureLoc, - mDrawTextureEnabled ? 1 : 0); - setUniform4fv(programObject, mProgramState.drawTextureCoordsLoc, 1, mDrawTextureCoords); - setUniform2fv(programObject, mProgramState.drawTextureDimsLoc, 1, mDrawTextureDims); + setUniform4fv(programObject, programState.drawTextureCoordsLoc, 1, mDrawTextureCoords); + setUniform2fv(programObject, programState.drawTextureDimsLoc, 1, mDrawTextureDims); } gles1State.clearDirty(); // None of those are changes in sampler, so there is no need to set the GL_PROGRAM dirty. // Otherwise, put the dirtying here. @@ -612,26 +629,146 @@ programObject->detachShader(context, getShader(fragmentShader)); return angle::Result::Continue; } +const char *GLES1Renderer::getShaderBool(GLES1StateEnables state) +{ + if (mGLES1StateEnabled[state]) + { + return "true"; + } + else + { + return "false"; + } +} + +void GLES1Renderer::addShaderDefine(std::stringstream &outStream, + GLES1StateEnables state, + const char *enableString) +{ + outStream << "\n"; + outStream << "#define " << enableString << " " << getShaderBool(state); +} + +void GLES1Renderer::addVertexShaderDefs(std::stringstream &outStream) +{ + addShaderDefine(outStream, GLES1StateEnables::DrawTexture, "enable_draw_texture"); + addShaderDefine(outStream, GLES1StateEnables::PointRasterization, "point_rasterization"); + addShaderDefine(outStream, GLES1StateEnables::RescaleNormal, "enable_rescale_normal"); + addShaderDefine(outStream, GLES1StateEnables::Normalize, "enable_normalize"); +} + +void GLES1Renderer::addFragmentShaderDefs(std::stringstream &outStream) +{ + addShaderDefine(outStream, GLES1StateEnables::Lighting, "enable_lighting"); + addShaderDefine(outStream, GLES1StateEnables::Fog, "enable_fog"); + addShaderDefine(outStream, GLES1StateEnables::ClipPlanes, "enable_clip_planes"); + addShaderDefine(outStream, GLES1StateEnables::DrawTexture, "enable_draw_texture"); + addShaderDefine(outStream, GLES1StateEnables::PointRasterization, "point_rasterization"); + addShaderDefine(outStream, GLES1StateEnables::PointSprite, "point_sprite_enabled"); + addShaderDefine(outStream, GLES1StateEnables::AlphaTest, "enable_alpha_test"); + addShaderDefine(outStream, GLES1StateEnables::ShadeModelFlat, "shade_model_flat"); + addShaderDefine(outStream, GLES1StateEnables::ColorMaterial, "enable_color_material"); + addShaderDefine(outStream, GLES1StateEnables::LightModelTwoSided, "light_model_two_sided"); + + // bool enable_texture_2d[kMaxTexUnits] = bool[kMaxTexUnits](...); + outStream << "\n"; + outStream << "bool enable_texture_2d[kMaxTexUnits] = bool[kMaxTexUnits](" + << getShaderBool(GLES1StateEnables::Tex2d0) << ", " + << getShaderBool(GLES1StateEnables::Tex2d1) << ", " + << getShaderBool(GLES1StateEnables::Tex2d2) << ", " + << getShaderBool(GLES1StateEnables::Tex2d3) << ");"; + + // bool enable_texture_cube_map[kMaxTexUnits] = bool[kMaxTexUnits](...); + outStream << "\n"; + outStream << "bool enable_texture_cube_map[kMaxTexUnits] = bool[kMaxTexUnits](" + << getShaderBool(GLES1StateEnables::TexCube0) << ", " + << getShaderBool(GLES1StateEnables::TexCube1) << ", " + << getShaderBool(GLES1StateEnables::TexCube2) << ", " + << getShaderBool(GLES1StateEnables::TexCube3) << ");"; + + // bool point_sprite_coord_replace[kMaxTexUnits] = bool[kMaxTexUnits](...); + outStream << "\n"; + outStream << "bool point_sprite_coord_replace[kMaxTexUnits] = bool[kMaxTexUnits](" + << getShaderBool(GLES1StateEnables::PointSpriteCoordReplaces0) << ", " + << getShaderBool(GLES1StateEnables::PointSpriteCoordReplaces1) << ", " + << getShaderBool(GLES1StateEnables::PointSpriteCoordReplaces2) << ", " + << getShaderBool(GLES1StateEnables::PointSpriteCoordReplaces3) << ");"; + + // bool light_enables[kMaxLights] = bool[kMaxLights](...); + outStream << "\n"; + outStream << "bool light_enables[kMaxLights] = bool[kMaxLights](" + << getShaderBool(GLES1StateEnables::Light0) << ", " + << getShaderBool(GLES1StateEnables::Light1) << ", " + << getShaderBool(GLES1StateEnables::Light2) << ", " + << getShaderBool(GLES1StateEnables::Light3) << ", " + << getShaderBool(GLES1StateEnables::Light4) << ", " + << getShaderBool(GLES1StateEnables::Light5) << ", " + << getShaderBool(GLES1StateEnables::Light6) << ", " + << getShaderBool(GLES1StateEnables::Light7) << ");"; + + // bool clip_plane_enables[kMaxClipPlanes] = bool[kMaxClipPlanes]( + outStream << "\n"; + outStream << "bool clip_plane_enables[kMaxClipPlanes] = bool[kMaxClipPlanes](" + << getShaderBool(GLES1StateEnables::ClipPlane0) << ", " + << getShaderBool(GLES1StateEnables::ClipPlane1) << ", " + << getShaderBool(GLES1StateEnables::ClipPlane2) << ", " + << getShaderBool(GLES1StateEnables::ClipPlane3) << ", " + << getShaderBool(GLES1StateEnables::ClipPlane4) << ", " + << getShaderBool(GLES1StateEnables::ClipPlane5) << ");"; +} + angle::Result GLES1Renderer::initializeRendererProgram(Context *context, State *glState) { - if (mRendererProgramInitialized) + uint64_t currentGLES1State = mGLES1StateEnabled.to_ulong(); + + // See if we have the shader for this combination of states + if (mProgramStates.find(currentGLES1State) != mProgramStates.end()) { + Program *programObject = getProgram(mProgramStates[currentGLES1State].program); + + // If this is different than the current program, we need to sync everything + // TODO: This could be optimized to only dirty state that differs between the two programs + if (glState->getProgram()->id() != programObject->id()) + { + glState->gles1().setAllDirty(); + } + + ANGLE_TRY(glState->setProgram(context, programObject)); return angle::Result::Continue; } - mShaderPrograms = new ShaderProgramManager(); + if (!mRendererProgramInitialized) + { + mShaderPrograms = new ShaderProgramManager(); + } + + // If we get here, we don't have a shader for this state, need to create it + GLES1ProgramState &programState = mProgramStates[currentGLES1State]; ShaderProgramID vertexShader; ShaderProgramID fragmentShader; - ANGLE_TRY(compileShader(context, ShaderType::Vertex, kGLES1DrawVShader, &vertexShader)); + std::stringstream GLES1DrawVShaderStateDefs; + addVertexShaderDefs(GLES1DrawVShaderStateDefs); + + std::stringstream vertexStream; + vertexStream << kGLES1DrawVShaderHeader; + vertexStream << GLES1DrawVShaderStateDefs.str(); + vertexStream << kGLES1DrawVShader; + + ANGLE_TRY( + compileShader(context, ShaderType::Vertex, vertexStream.str().c_str(), &vertexShader)); + + std::stringstream GLES1DrawFShaderStateDefs; + addFragmentShaderDefs(GLES1DrawFShaderStateDefs); std::stringstream fragmentStream; fragmentStream << kGLES1DrawFShaderHeader; + fragmentStream << GLES1DrawFShaderStateDefs.str(); fragmentStream << kGLES1DrawFShaderUniformDefs; fragmentStream << kGLES1DrawFShaderFunctions; fragmentStream << kGLES1DrawFShaderMultitexturing; fragmentStream << kGLES1DrawFShaderMain; @@ -651,136 +788,113 @@ ss << "texcoord" << i; attribLocs[kTextureCoordAttribIndexBase + i] = ss.str(); } ANGLE_TRY(linkProgram(context, glState, vertexShader, fragmentShader, attribLocs, - &mProgramState.program)); + &programState.program)); mShaderPrograms->deleteShader(context, vertexShader); mShaderPrograms->deleteShader(context, fragmentShader); - Program *programObject = getProgram(mProgramState.program); + Program *programObject = getProgram(programState.program); - mProgramState.projMatrixLoc = programObject->getUniformLocation("projection"); - mProgramState.modelviewMatrixLoc = programObject->getUniformLocation("modelview"); - mProgramState.textureMatrixLoc = programObject->getUniformLocation("texture_matrix"); - mProgramState.modelviewInvTrLoc = programObject->getUniformLocation("modelview_invtr"); + programState.projMatrixLoc = programObject->getUniformLocation("projection"); + programState.modelviewMatrixLoc = programObject->getUniformLocation("modelview"); + programState.textureMatrixLoc = programObject->getUniformLocation("texture_matrix"); + programState.modelviewInvTrLoc = programObject->getUniformLocation("modelview_invtr"); for (int i = 0; i < kTexUnitCount; i++) { std::stringstream ss2d; std::stringstream sscube; ss2d << "tex_sampler" << i; sscube << "tex_cube_sampler" << i; - mProgramState.tex2DSamplerLocs[i] = programObject->getUniformLocation(ss2d.str().c_str()); - mProgramState.texCubeSamplerLocs[i] = + programState.tex2DSamplerLocs[i] = programObject->getUniformLocation(ss2d.str().c_str()); + programState.texCubeSamplerLocs[i] = programObject->getUniformLocation(sscube.str().c_str()); } - mProgramState.enableTexture2DLoc = programObject->getUniformLocation("enable_texture_2d"); - mProgramState.enableTextureCubeMapLoc = - programObject->getUniformLocation("enable_texture_cube_map"); + programState.textureFormatLoc = programObject->getUniformLocation("texture_format"); + programState.textureEnvModeLoc = programObject->getUniformLocation("texture_env_mode"); + programState.combineRgbLoc = programObject->getUniformLocation("combine_rgb"); + programState.combineAlphaLoc = programObject->getUniformLocation("combine_alpha"); + programState.src0rgbLoc = programObject->getUniformLocation("src0_rgb"); + programState.src0alphaLoc = programObject->getUniformLocation("src0_alpha"); + programState.src1rgbLoc = programObject->getUniformLocation("src1_rgb"); + programState.src1alphaLoc = programObject->getUniformLocation("src1_alpha"); + programState.src2rgbLoc = programObject->getUniformLocation("src2_rgb"); + programState.src2alphaLoc = programObject->getUniformLocation("src2_alpha"); + programState.op0rgbLoc = programObject->getUniformLocation("op0_rgb"); + programState.op0alphaLoc = programObject->getUniformLocation("op0_alpha"); + programState.op1rgbLoc = programObject->getUniformLocation("op1_rgb"); + programState.op1alphaLoc = programObject->getUniformLocation("op1_alpha"); + programState.op2rgbLoc = programObject->getUniformLocation("op2_rgb"); + programState.op2alphaLoc = programObject->getUniformLocation("op2_alpha"); + programState.textureEnvColorLoc = programObject->getUniformLocation("texture_env_color"); + programState.rgbScaleLoc = programObject->getUniformLocation("texture_env_rgb_scale"); + programState.alphaScaleLoc = programObject->getUniformLocation("texture_env_alpha_scale"); - mProgramState.textureFormatLoc = programObject->getUniformLocation("texture_format"); - mProgramState.textureEnvModeLoc = programObject->getUniformLocation("texture_env_mode"); - mProgramState.combineRgbLoc = programObject->getUniformLocation("combine_rgb"); - mProgramState.combineAlphaLoc = programObject->getUniformLocation("combine_alpha"); - mProgramState.src0rgbLoc = programObject->getUniformLocation("src0_rgb"); - mProgramState.src0alphaLoc = programObject->getUniformLocation("src0_alpha"); - mProgramState.src1rgbLoc = programObject->getUniformLocation("src1_rgb"); - mProgramState.src1alphaLoc = programObject->getUniformLocation("src1_alpha"); - mProgramState.src2rgbLoc = programObject->getUniformLocation("src2_rgb"); - mProgramState.src2alphaLoc = programObject->getUniformLocation("src2_alpha"); - mProgramState.op0rgbLoc = programObject->getUniformLocation("op0_rgb"); - mProgramState.op0alphaLoc = programObject->getUniformLocation("op0_alpha"); - mProgramState.op1rgbLoc = programObject->getUniformLocation("op1_rgb"); - mProgramState.op1alphaLoc = programObject->getUniformLocation("op1_alpha"); - mProgramState.op2rgbLoc = programObject->getUniformLocation("op2_rgb"); - mProgramState.op2alphaLoc = programObject->getUniformLocation("op2_alpha"); - mProgramState.textureEnvColorLoc = programObject->getUniformLocation("texture_env_color"); - mProgramState.rgbScaleLoc = programObject->getUniformLocation("texture_env_rgb_scale"); - mProgramState.alphaScaleLoc = programObject->getUniformLocation("texture_env_alpha_scale"); - mProgramState.pointSpriteCoordReplaceLoc = - programObject->getUniformLocation("point_sprite_coord_replace"); + programState.alphaFuncLoc = programObject->getUniformLocation("alpha_func"); + programState.alphaTestRefLoc = programObject->getUniformLocation("alpha_test_ref"); - mProgramState.enableAlphaTestLoc = programObject->getUniformLocation("enable_alpha_test"); - mProgramState.alphaFuncLoc = programObject->getUniformLocation("alpha_func"); - mProgramState.alphaTestRefLoc = programObject->getUniformLocation("alpha_test_ref"); - - mProgramState.shadeModelFlatLoc = programObject->getUniformLocation("shade_model_flat"); - mProgramState.enableLightingLoc = programObject->getUniformLocation("enable_lighting"); - mProgramState.enableRescaleNormalLoc = - programObject->getUniformLocation("enable_rescale_normal"); - mProgramState.enableNormalizeLoc = programObject->getUniformLocation("enable_normalize"); - mProgramState.enableColorMaterialLoc = - programObject->getUniformLocation("enable_color_material"); - - mProgramState.materialAmbientLoc = programObject->getUniformLocation("material_ambient"); - mProgramState.materialDiffuseLoc = programObject->getUniformLocation("material_diffuse"); - mProgramState.materialSpecularLoc = programObject->getUniformLocation("material_specular"); - mProgramState.materialEmissiveLoc = programObject->getUniformLocation("material_emissive"); - mProgramState.materialSpecularExponentLoc = + programState.materialAmbientLoc = programObject->getUniformLocation("material_ambient"); + programState.materialDiffuseLoc = programObject->getUniformLocation("material_diffuse"); + programState.materialSpecularLoc = programObject->getUniformLocation("material_specular"); + programState.materialEmissiveLoc = programObject->getUniformLocation("material_emissive"); + programState.materialSpecularExponentLoc = programObject->getUniformLocation("material_specular_exponent"); - mProgramState.lightModelSceneAmbientLoc = + programState.lightModelSceneAmbientLoc = programObject->getUniformLocation("light_model_scene_ambient"); - mProgramState.lightModelTwoSidedLoc = - programObject->getUniformLocation("light_model_two_sided"); - mProgramState.lightEnablesLoc = programObject->getUniformLocation("light_enables"); - mProgramState.lightAmbientsLoc = programObject->getUniformLocation("light_ambients"); - mProgramState.lightDiffusesLoc = programObject->getUniformLocation("light_diffuses"); - mProgramState.lightSpecularsLoc = programObject->getUniformLocation("light_speculars"); - mProgramState.lightPositionsLoc = programObject->getUniformLocation("light_positions"); - mProgramState.lightDirectionsLoc = programObject->getUniformLocation("light_directions"); - mProgramState.lightSpotlightExponentsLoc = + programState.lightAmbientsLoc = programObject->getUniformLocation("light_ambients"); + programState.lightDiffusesLoc = programObject->getUniformLocation("light_diffuses"); + programState.lightSpecularsLoc = programObject->getUniformLocation("light_speculars"); + programState.lightPositionsLoc = programObject->getUniformLocation("light_positions"); + programState.lightDirectionsLoc = programObject->getUniformLocation("light_directions"); + programState.lightSpotlightExponentsLoc = programObject->getUniformLocation("light_spotlight_exponents"); - mProgramState.lightSpotlightCutoffAnglesLoc = + programState.lightSpotlightCutoffAnglesLoc = programObject->getUniformLocation("light_spotlight_cutoff_angles"); - mProgramState.lightAttenuationConstsLoc = + programState.lightAttenuationConstsLoc = programObject->getUniformLocation("light_attenuation_consts"); - mProgramState.lightAttenuationLinearsLoc = + programState.lightAttenuationLinearsLoc = programObject->getUniformLocation("light_attenuation_linears"); - mProgramState.lightAttenuationQuadraticsLoc = + programState.lightAttenuationQuadraticsLoc = programObject->getUniformLocation("light_attenuation_quadratics"); - mProgramState.fogEnableLoc = programObject->getUniformLocation("enable_fog"); - mProgramState.fogModeLoc = programObject->getUniformLocation("fog_mode"); - mProgramState.fogDensityLoc = programObject->getUniformLocation("fog_density"); - mProgramState.fogStartLoc = programObject->getUniformLocation("fog_start"); - mProgramState.fogEndLoc = programObject->getUniformLocation("fog_end"); - mProgramState.fogColorLoc = programObject->getUniformLocation("fog_color"); + programState.fogModeLoc = programObject->getUniformLocation("fog_mode"); + programState.fogDensityLoc = programObject->getUniformLocation("fog_density"); + programState.fogStartLoc = programObject->getUniformLocation("fog_start"); + programState.fogEndLoc = programObject->getUniformLocation("fog_end"); + programState.fogColorLoc = programObject->getUniformLocation("fog_color"); - mProgramState.enableClipPlanesLoc = programObject->getUniformLocation("enable_clip_planes"); - mProgramState.clipPlaneEnablesLoc = programObject->getUniformLocation("clip_plane_enables"); - mProgramState.clipPlanesLoc = programObject->getUniformLocation("clip_planes"); + programState.clipPlanesLoc = programObject->getUniformLocation("clip_planes"); - mProgramState.pointRasterizationLoc = programObject->getUniformLocation("point_rasterization"); - mProgramState.pointSizeMinLoc = programObject->getUniformLocation("point_size_min"); - mProgramState.pointSizeMaxLoc = programObject->getUniformLocation("point_size_max"); - mProgramState.pointDistanceAttenuationLoc = + programState.pointSizeMinLoc = programObject->getUniformLocation("point_size_min"); + programState.pointSizeMaxLoc = programObject->getUniformLocation("point_size_max"); + programState.pointDistanceAttenuationLoc = programObject->getUniformLocation("point_distance_attenuation"); - mProgramState.pointSpriteEnabledLoc = programObject->getUniformLocation("point_sprite_enabled"); - mProgramState.enableDrawTextureLoc = programObject->getUniformLocation("enable_draw_texture"); - mProgramState.drawTextureCoordsLoc = programObject->getUniformLocation("draw_texture_coords"); - mProgramState.drawTextureDimsLoc = programObject->getUniformLocation("draw_texture_dims"); - mProgramState.drawTextureNormalizedCropRectLoc = + programState.drawTextureCoordsLoc = programObject->getUniformLocation("draw_texture_coords"); + programState.drawTextureDimsLoc = programObject->getUniformLocation("draw_texture_dims"); + programState.drawTextureNormalizedCropRectLoc = programObject->getUniformLocation("draw_texture_normalized_crop_rect"); ANGLE_TRY(glState->setProgram(context, programObject)); for (int i = 0; i < kTexUnitCount; i++) { - setUniform1i(context, programObject, mProgramState.tex2DSamplerLocs[i], i); - setUniform1i(context, programObject, mProgramState.texCubeSamplerLocs[i], - i + kTexUnitCount); + setUniform1i(context, programObject, programState.tex2DSamplerLocs[i], i); + setUniform1i(context, programObject, programState.texCubeSamplerLocs[i], i + kTexUnitCount); } + glState->setObjectDirty(GL_PROGRAM); - glState->setObjectDirty(GL_PROGRAM); + // We just created a new program, we need to sync everything + glState->gles1().setAllDirty(); mRendererProgramInitialized = true; return angle::Result::Continue; } diff --git a/gfx/angle/checkout/src/libANGLE/GLES1Shaders.inc b/gfx/angle/checkout/src/libANGLE/GLES1Shaders.inc --- a/gfx/angle/checkout/src/libANGLE/GLES1Shaders.inc +++ b/gfx/angle/checkout/src/libANGLE/GLES1Shaders.inc @@ -4,14 +4,35 @@ // found in the LICENSE file. // // GLES1Shaders.inc: Defines GLES1 emulation shader. -constexpr char kGLES1DrawVShader[] = R"(#version 300 es +// The following variables are added in GLES1Renderer::initializeRendererProgram +// clip_plane_enables +// enable_alpha_test +// enable_clip_planes +// enable_color_material +// enable_draw_texture +// enable_fog +// enable_lighting +// enable_normalize +// enable_rescale_normal +// enable_texture_2d +// enable_texture_cube_map +// light_enables +// light_model_two_sided +// point_rasterization +// point_sprite_coord_replace +// point_sprite_enabled +// shade_model_flat + +constexpr char kGLES1DrawVShaderHeader[] = R"(#version 300 es precision highp float; -#define kMaxTexUnits 4 +#define kMaxTexUnits 4)"; + +constexpr char kGLES1DrawVShader[] = R"( in vec4 pos; in vec3 normal; in vec4 color; in float pointsize; @@ -23,23 +44,18 @@ uniform mat4 projection; uniform mat4 modelview; uniform mat4 modelview_invtr; uniform mat4 texture_matrix[kMaxTexUnits]; -uniform bool enable_rescale_normal; -uniform bool enable_normalize; - // Point rasterization////////////////////////////////////////////////////////// -uniform bool point_rasterization; uniform float point_size_min; uniform float point_size_max; uniform vec3 point_distance_attenuation; // GL_OES_draw_texture uniforms///////////////////////////////////////////////// -uniform bool enable_draw_texture; uniform vec4 draw_texture_coords; uniform vec2 draw_texture_dims; uniform vec4 draw_texture_normalized_crop_rect[kMaxTexUnits]; // Varyings///////////////////////////////////////////////////////////////////// @@ -257,13 +273,10 @@ constexpr char kGLES1DrawFShaderUniformDefs[] = R"( // Texture units /////////////////////////////////////////////////////////////// -uniform bool enable_texture_2d[kMaxTexUnits]; -uniform bool enable_texture_cube_map[kMaxTexUnits]; - // These are not arrays because hw support for arrays // of samplers is rather lacking. uniform sampler2D tex_sampler0; uniform samplerCube tex_cube_sampler0; @@ -295,11 +308,10 @@ uniform int op2_rgb[kMaxTexUnits]; uniform int op2_alpha[kMaxTexUnits]; uniform vec4 texture_env_color[kMaxTexUnits]; uniform float texture_env_rgb_scale[kMaxTexUnits]; uniform float texture_env_alpha_scale[kMaxTexUnits]; -uniform bool point_sprite_coord_replace[kMaxTexUnits]; // Vertex attributes//////////////////////////////////////////////////////////// in vec4 pos_varying; in vec3 normal_varying; @@ -310,30 +322,23 @@ in vec4 texcoord2_varying; in vec4 texcoord3_varying; // Alpha test/////////////////////////////////////////////////////////////////// -uniform bool enable_alpha_test; uniform int alpha_func; uniform float alpha_test_ref; // Shading: flat shading, lighting, and materials/////////////////////////////// -uniform bool shade_model_flat; -uniform bool enable_lighting; -uniform bool enable_color_material; - uniform vec4 material_ambient; uniform vec4 material_diffuse; uniform vec4 material_specular; uniform vec4 material_emissive; uniform float material_specular_exponent; uniform vec4 light_model_scene_ambient; -uniform bool light_model_two_sided; -uniform bool light_enables[kMaxLights]; uniform vec4 light_ambients[kMaxLights]; uniform vec4 light_diffuses[kMaxLights]; uniform vec4 light_speculars[kMaxLights]; uniform vec4 light_positions[kMaxLights]; uniform vec3 light_directions[kMaxLights]; @@ -343,32 +348,24 @@ uniform float light_attenuation_linears[kMaxLights]; uniform float light_attenuation_quadratics[kMaxLights]; // Fog ///////////////////////////////////////////////////////////////////////// -uniform bool enable_fog; uniform int fog_mode; uniform float fog_density; uniform float fog_start; uniform float fog_end; uniform vec4 fog_color; // User clip plane ///////////////////////////////////////////////////////////// -uniform bool enable_clip_planes; -uniform bool clip_plane_enables[kMaxClipPlanes]; uniform vec4 clip_planes[kMaxClipPlanes]; // Point rasterization////////////////////////////////////////////////////////// -uniform bool point_rasterization; -uniform bool point_sprite_enabled; - // GL_OES_draw_texture////////////////////////////////////////////////////////// -uniform bool enable_draw_texture; - // Outgoing fragment//////////////////////////////////////////////////////////// out vec4 frag_color; )"; diff --git a/gfx/angle/checkout/src/libANGLE/GLES1State.h b/gfx/angle/checkout/src/libANGLE/GLES1State.h --- a/gfx/angle/checkout/src/libANGLE/GLES1State.h +++ b/gfx/angle/checkout/src/libANGLE/GLES1State.h @@ -175,10 +175,11 @@ void popMatrix(); using MatrixStack = angle::FixedVector; MatrixStack ¤tMatrixStack(); const MatrixStack ¤tMatrixStack() const; + const MatrixStack &getMatrixStack(MatrixType mode) const; const angle::Mat4 &getModelviewMatrix() const; void loadMatrix(const angle::Mat4 &m); void multMatrix(const angle::Mat4 &m); @@ -216,20 +217,15 @@ const PointParameters &pointParameters() const; AttributesMask getVertexArraysAttributeMask() const; AttributesMask getActiveAttributesMask() const; + bool shouldHandleDirtyProgram(); + void setHint(GLenum target, GLenum mode); GLenum getHint(GLenum target) const; - private: - friend class State; - friend class GLES1Renderer; - - // Back pointer for reading from State. - const State *mGLState; - enum DirtyGles1Type { DIRTY_GLES1_TEXTURE_UNIT_ENABLE = 0, DIRTY_GLES1_CLIENT_STATE_ENABLE, DIRTY_GLES1_FEATURE_ENABLE, @@ -244,19 +240,30 @@ DIRTY_GLES1_POINT_PARAMETERS, DIRTY_GLES1_ALPHA_TEST, DIRTY_GLES1_LOGIC_OP, DIRTY_GLES1_CLIP_PLANES, DIRTY_GLES1_HINT_SETTING, + DIRTY_GLES1_PROGRAM, DIRTY_GLES1_MAX, }; + + void setAllDirty() { mDirtyBits.set(); } + + private: + friend class State; + friend class GLES1Renderer; + + // Back pointer for reading from State. + const State *mGLState; + using DirtyBits = angle::BitSet; DirtyBits mDirtyBits; - void setDirty(DirtyGles1Type type); - void setAllDirty(); - void clearDirty(); - bool isDirty(DirtyGles1Type type) const; + void setDirty(DirtyGles1Type type) { mDirtyBits.set(type); } + void clearDirty() { mDirtyBits.reset(); } + void clearDirtyBits(const DirtyGles1Type &bitset) { mDirtyBits &= ~bitset; } + bool isDirty(DirtyGles1Type type) const { return mDirtyBits.test(type); } // All initial state values come from the // OpenGL ES 1.1 spec. std::vector> mTexUnitEnables; diff --git a/gfx/angle/checkout/src/libANGLE/GLES1State.cpp b/gfx/angle/checkout/src/libANGLE/GLES1State.cpp --- a/gfx/angle/checkout/src/libANGLE/GLES1State.cpp +++ b/gfx/angle/checkout/src/libANGLE/GLES1State.cpp @@ -217,10 +217,17 @@ const angle::Vector3 &GLES1State::getCurrentNormal() const { return mCurrentNormal; } +bool GLES1State::shouldHandleDirtyProgram() +{ + bool ret = isDirty(DIRTY_GLES1_PROGRAM); + clearDirtyBits(DIRTY_GLES1_PROGRAM); + return ret; +} + void GLES1State::setCurrentTextureCoords(unsigned int unit, const TextureCoordF &coords) { setDirty(DIRTY_GLES1_CURRENT_VECTOR); mCurrentTextureCoords[unit] = coords; } @@ -291,13 +298,13 @@ const angle::Mat4 &GLES1State::getModelviewMatrix() const { return mModelviewMatrices.back(); } -const GLES1State::MatrixStack &GLES1State::currentMatrixStack() const +const GLES1State::MatrixStack &GLES1State::getMatrixStack(MatrixType mode) const { - switch (mMatrixMode) + switch (mode) { case MatrixType::Modelview: return mModelviewMatrices; case MatrixType::Projection: return mProjectionMatrices; @@ -307,10 +314,15 @@ UNREACHABLE(); return mModelviewMatrices; } } +const GLES1State::MatrixStack &GLES1State::currentMatrixStack() const +{ + return getMatrixStack(mMatrixMode); +} + void GLES1State::loadMatrix(const angle::Mat4 &m) { setDirty(DIRTY_GLES1_MATRICES); currentMatrixStack().back() = m; } @@ -563,26 +575,6 @@ UNREACHABLE(); return 0; } } -void GLES1State::setDirty(DirtyGles1Type type) -{ - mDirtyBits.set(type); -} - -void GLES1State::setAllDirty() -{ - mDirtyBits.set(); -} - -void GLES1State::clearDirty() -{ - mDirtyBits.reset(); -} - -bool GLES1State::isDirty(DirtyGles1Type type) const -{ - return mDirtyBits.test(type); -} - } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/Image.h b/gfx/angle/checkout/src/libANGLE/Image.h --- a/gfx/angle/checkout/src/libANGLE/Image.h +++ b/gfx/angle/checkout/src/libANGLE/Image.h @@ -50,17 +50,19 @@ bool isRenderable(const gl::Context *context, GLenum binding, const gl::ImageIndex &imageIndex) const override; bool isYUV() const override; + bool hasProtectedContent() const override; protected: // Set the image target of this sibling void setTargetImage(const gl::Context *context, egl::Image *imageTarget); // Orphan all EGL image sources and targets - angle::Result orphanImages(const gl::Context *context); + angle::Result orphanImages(const gl::Context *context, + RefCountObjectReleaser *outReleaseImage); void notifySiblings(angle::SubjectMessage message); private: friend class Image; @@ -97,10 +99,11 @@ bool isRenderable(const gl::Context *context, GLenum binding, const gl::ImageIndex &imageIndex) const override; bool isTextureable(const gl::Context *context) const; bool isYUV() const override; + bool hasProtectedContent() const override; void onAttach(const gl::Context *context, rx::Serial framebufferSerial) override; void onDetach(const gl::Context *context, rx::Serial framebufferSerial) override; GLuint getId() const override; @@ -135,10 +138,11 @@ bool yuv; gl::Extents size; size_t samples; EGLenum sourceType; EGLenum colorspace; + bool hasProtectedContent; }; class Image final : public RefCountObject, public LabeledObject { public: @@ -160,10 +164,11 @@ bool isYUV() const; size_t getWidth() const; size_t getHeight() const; bool isLayered() const; size_t getSamples() const; + bool hasProtectedContent() const; Error initialize(const Display *display); rx::ImageImpl *getImplementation() const; diff --git a/gfx/angle/checkout/src/libANGLE/Image.cpp b/gfx/angle/checkout/src/libANGLE/Image.cpp --- a/gfx/angle/checkout/src/libANGLE/Image.cpp +++ b/gfx/angle/checkout/src/libANGLE/Image.cpp @@ -69,19 +69,22 @@ ASSERT(imageTarget != nullptr); mTargetOf.set(DisplayFromContext(context), imageTarget); imageTarget->addTargetSibling(this); } -angle::Result ImageSibling::orphanImages(const gl::Context *context) +angle::Result ImageSibling::orphanImages(const gl::Context *context, + RefCountObjectReleaser *outReleaseImage) { + ASSERT(outReleaseImage != nullptr); + if (mTargetOf.get() != nullptr) { // Can't be a target and have sources. ASSERT(mSourcesOf.empty()); ANGLE_TRY(mTargetOf->orphanSibling(context, this)); - mTargetOf.set(DisplayFromContext(context), nullptr); + *outReleaseImage = mTargetOf.set(DisplayFromContext(context), nullptr); } else { for (Image *sourceImage : mSourcesOf) { @@ -133,10 +136,15 @@ bool ImageSibling::isYUV() const { return mTargetOf.get() && mTargetOf->isYUV(); } +bool ImageSibling::hasProtectedContent() const +{ + return mTargetOf.get() && mTargetOf->hasProtectedContent(); +} + void ImageSibling::notifySiblings(angle::SubjectMessage message) { if (mTargetOf.get()) { mTargetOf->notifySiblings(this, message); @@ -201,10 +209,15 @@ bool ExternalImageSibling::isYUV() const { return mImplementation->isYUV(); } +bool ExternalImageSibling::hasProtectedContent() const +{ + return mImplementation->hasProtectedContent(); +} + void ExternalImageSibling::onAttach(const gl::Context *context, rx::Serial framebufferSerial) {} void ExternalImageSibling::onDetach(const gl::Context *context, rx::Serial framebufferSerial) {} GLuint ExternalImageSibling::getId() const @@ -247,11 +260,12 @@ yuv(false), size(), samples(), sourceType(target), colorspace( - static_cast(attribs.get(EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_DEFAULT_EXT))) + static_cast(attribs.get(EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_DEFAULT_EXT))), + hasProtectedContent(static_cast(attribs.get(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE))) {} ImageState::~ImageState() {} Image::Image(rx::EGLImplFactory *factory, @@ -412,10 +426,15 @@ size_t Image::getSamples() const { return mState.samples; } +bool Image::hasProtectedContent() const +{ + return mState.hasProtectedContent; +} + rx::ImageImpl *Image::getImplementation() const { return mImplementation; } @@ -424,10 +443,12 @@ if (IsExternalImageTarget(mState.sourceType)) { ExternalImageSibling *externalSibling = rx::GetAs(mState.source); ANGLE_TRY(externalSibling->initialize(display)); + mState.hasProtectedContent = externalSibling->hasProtectedContent(); + // Only external siblings can be YUV mState.yuv = externalSibling->isYUV(); } mState.format = mState.source->getAttachmentFormat(GL_NONE, mState.imageIndex); diff --git a/gfx/angle/checkout/src/libANGLE/MemoryObject.h b/gfx/angle/checkout/src/libANGLE/MemoryObject.h --- a/gfx/angle/checkout/src/libANGLE/MemoryObject.h +++ b/gfx/angle/checkout/src/libANGLE/MemoryObject.h @@ -36,10 +36,12 @@ bool isImmutable() const { return mImmutable; } angle::Result setDedicatedMemory(const Context *context, bool dedicatedMemory); bool isDedicatedMemory() const { return mDedicatedMemory; } + angle::Result setProtectedMemory(const Context *context, bool protectedMemory); + bool isProtectedMemory() const { return mProtectedMemory; } angle::Result importFd(Context *context, GLuint64 size, HandleType handleType, GLint fd); angle::Result importZirconHandle(Context *context, GLuint64 size, HandleType handleType, @@ -48,10 +50,11 @@ private: std::unique_ptr mImplementation; bool mImmutable; bool mDedicatedMemory; + bool mProtectedMemory; }; } // namespace gl #endif // LIBANGLE_MEMORYOBJECT_H_ diff --git a/gfx/angle/checkout/src/libANGLE/MemoryObject.cpp b/gfx/angle/checkout/src/libANGLE/MemoryObject.cpp --- a/gfx/angle/checkout/src/libANGLE/MemoryObject.cpp +++ b/gfx/angle/checkout/src/libANGLE/MemoryObject.cpp @@ -16,11 +16,12 @@ MemoryObject::MemoryObject(rx::GLImplFactory *factory, MemoryObjectID id) : RefCountObject(factory->generateSerial(), id), mImplementation(factory->createMemoryObject()), mImmutable(false), - mDedicatedMemory(false) + mDedicatedMemory(false), + mProtectedMemory(false) {} MemoryObject::~MemoryObject() {} void MemoryObject::onDestroy(const Context *context) @@ -33,10 +34,17 @@ ANGLE_TRY(mImplementation->setDedicatedMemory(context, dedicatedMemory)); mDedicatedMemory = dedicatedMemory; return angle::Result::Continue; } +angle::Result MemoryObject::setProtectedMemory(const Context *context, bool protectedMemory) +{ + ANGLE_TRY(mImplementation->setProtectedMemory(context, protectedMemory)); + mProtectedMemory = protectedMemory; + return angle::Result::Continue; +} + angle::Result MemoryObject::importFd(Context *context, GLuint64 size, HandleType handleType, GLint fd) { diff --git a/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.cpp b/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.cpp --- a/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.cpp +++ b/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.cpp @@ -14,15 +14,16 @@ #include "libANGLE/MemoryProgramCache.h" #include #include -#include "common/angle_version.h" +#include "common/angle_version_info.h" #include "common/utilities.h" #include "libANGLE/BinaryStream.h" #include "libANGLE/Context.h" #include "libANGLE/Uniform.h" +#include "libANGLE/capture/FrameCapture.h" #include "libANGLE/histogram_macros.h" #include "libANGLE/renderer/ProgramImpl.h" #include "platform/PlatformMethods.h" namespace gl @@ -59,20 +60,20 @@ return stream; } HashStream &operator<<(HashStream &stream, const ProgramBindings &bindings) { - for (const auto &binding : bindings) + for (const auto &binding : bindings.getStableIterationMap()) { stream << binding.first << binding.second; } return stream; } HashStream &operator<<(HashStream &stream, const ProgramAliasedBindings &bindings) { - for (const auto &binding : bindings) + for (const auto &binding : bindings.getStableIterationMap()) { stream << binding.first << binding.second.location; } return stream; } @@ -113,21 +114,24 @@ { hashStream << program->getAttachedShader(shaderType); } // Add some ANGLE metadata and Context properties, such as version and back-end. - hashStream << ANGLE_COMMIT_HASH << context->getClientMajorVersion() + hashStream << angle::GetANGLECommitHash() << context->getClientMajorVersion() << context->getClientMinorVersion() << context->getString(GL_RENDERER); // Hash pre-link program properties. hashStream << program->getAttributeBindings() << program->getUniformLocationBindings() << program->getFragmentOutputLocations() << program->getFragmentOutputIndexes() << program->getState().getTransformFeedbackVaryingNames() << program->getState().getTransformFeedbackBufferMode() << program->getState().getOutputLocations() << program->getState().getSecondaryOutputLocations(); + // Include the status of FrameCapture, which adds source strings to the binary + hashStream << context->getShareGroup()->getFrameCaptureShared()->enabled(); + // Call the secure SHA hashing function. const std::string &programKey = hashStream.str(); angle::base::SHA1HashBytes(reinterpret_cast(programKey.c_str()), programKey.length(), hashOut->data()); } diff --git a/gfx/angle/checkout/src/libANGLE/Observer.h b/gfx/angle/checkout/src/libANGLE/Observer.h --- a/gfx/angle/checkout/src/libANGLE/Observer.h +++ b/gfx/angle/checkout/src/libANGLE/Observer.h @@ -49,10 +49,13 @@ // Indicates a bound gl::Buffer is now mapped or unmapped. Passed from gl::Buffer, through // gl::VertexArray, into gl::Context. Used to track validation. SubjectMapped, SubjectUnmapped, + // Indicates a bound buffer was reallocated when it was mapped, to prevent having to flush + // pending commands and waiting for the GPU to become idle. + InternalMemoryAllocationChanged, // Indicates an external change to the default framebuffer. SurfaceChanged, // Indicates a separable program's textures or images changed in the ProgramExecutable. @@ -62,10 +65,13 @@ // Indicates a separable program's sampler uniforms were updated. SamplerUniformsUpdated, // Indicates a Storage of back-end in gl::Texture has been released. StorageReleased, + + // Indicates that all pending updates are complete in the subject. + InitializationComplete, }; // The observing class inherits from this interface class. class ObserverInterface { @@ -90,10 +96,12 @@ private: ObserverInterface *mObserver; SubjectIndex mIndex; }; +constexpr size_t kMaxFixedObservers = 8; + // Maintains a list of observer bindings. Sends update messages to the observer. class Subject : NonCopyable { public: Subject(); @@ -116,11 +124,10 @@ } private: // Keep a short list of observers so we can allocate/free them quickly. But since we support // unlimited bindings, have a spill-over list of that uses dynamic allocation. - static constexpr size_t kMaxFixedObservers = 8; angle::FastVector mObservers; }; // Keeps a binding between a Subject and Observer, with a specific subject index. class ObserverBinding final : public ObserverBindingBase diff --git a/gfx/angle/checkout/src/libANGLE/Overlay.cpp b/gfx/angle/checkout/src/libANGLE/Overlay.cpp --- a/gfx/angle/checkout/src/libANGLE/Overlay.cpp +++ b/gfx/angle/checkout/src/libANGLE/Overlay.cpp @@ -37,11 +37,11 @@ Overlay::~Overlay() = default; angle::Result Overlay::init(const Context *context) { initOverlayWidgets(); - mLastPerSecondUpdate = angle::GetCurrentTime(); + mLastPerSecondUpdate = angle::GetCurrentSystemTime(); ASSERT(std::all_of( mState.mOverlayWidgets.begin(), mState.mOverlayWidgets.end(), [](const std::unique_ptr &widget) { return widget.get() != nullptr; })); @@ -82,11 +82,11 @@ { // Increment FPS counter. getPerSecondWidget(WidgetId::FPS)->add(1); // Update per second values every second. - double currentTime = angle::GetCurrentTime(); + double currentTime = angle::GetCurrentSystemTime(); double timeDiff = currentTime - mLastPerSecondUpdate; if (timeDiff >= 1.0) { for (const std::unique_ptr &widget : mState.mOverlayWidgets) { diff --git a/gfx/angle/checkout/src/libANGLE/Program.h b/gfx/angle/checkout/src/libANGLE/Program.h --- a/gfx/angle/checkout/src/libANGLE/Program.h +++ b/gfx/angle/checkout/src/libANGLE/Program.h @@ -109,10 +109,13 @@ void LoadShaderVar(BinaryInputStream *stream, sh::ShaderVariable *var); void WriteInterfaceBlock(BinaryOutputStream *stream, const InterfaceBlock &block); void LoadInterfaceBlock(BinaryInputStream *stream, InterfaceBlock *block); +void WriteShInterfaceBlock(BinaryOutputStream *stream, const sh::InterfaceBlock &block); +void LoadShInterfaceBlock(BinaryInputStream *stream, sh::InterfaceBlock *block); + void WriteShaderVariableBuffer(BinaryOutputStream *stream, const ShaderVariableBuffer &var); void LoadShaderVariableBuffer(BinaryInputStream *stream, ShaderVariableBuffer *var); // Struct used for correlating uniforms/elements of uniform arrays to handles struct VariableLocation @@ -185,10 +188,12 @@ using const_iterator = angle::HashMap::const_iterator; const_iterator begin() const; const_iterator end() const; + std::map getStableIterationMap() const; + private: angle::HashMap mBindings; }; // Uniforms and Fragment Outputs require special treatment due to array notation (e.g., "[0]") @@ -205,10 +210,12 @@ using const_iterator = angle::HashMap::const_iterator; const_iterator begin() const; const_iterator end() const; + std::map getStableIterationMap() const; + private: angle::HashMap mBindings; }; class ProgramState final : angle::NonCopyable @@ -243,11 +250,10 @@ } const std::vector &getProgramInputs() const { return mExecutable->getProgramInputs(); } - DrawBufferMask getActiveOutputVariables() const { return mActiveOutputVariables; } const std::vector &getOutputVariables() const { return mExecutable->getOutputVariables(); } const std::vector &getOutputLocations() const @@ -343,16 +349,10 @@ const std::string &getLabel() const { return mLabel; } uint32_t getLocationsUsedForXfbExtension() const { return mLocationsUsedForXfbExtension; } - const std::vector &getOutputVariableTypes() const { return mOutputVariableTypes; } - - ComponentTypeMask getDrawBufferTypeMask() const { return mDrawBufferTypeMask; } - - bool isYUVOutput() const { return mYUVOutput; } - bool hasBinaryRetrieveableHint() const { return mBinaryRetrieveableHint; } bool isSeparable() const { return mSeparable; } int getDrawIDLocation() const { return mDrawIDLocation; } @@ -385,20 +385,10 @@ std::vector mUniformLocations; std::vector mBufferVariables; RangeUI mAtomicCounterUniformRange; - DrawBufferMask mActiveOutputVariables; - - // Fragment output variable base types: FLOAT, INT, or UINT. Ordered by location. - std::vector mOutputVariableTypes; - ComponentTypeMask mDrawBufferTypeMask; - - // GL_EXT_YUV_target. YUV output shaders can only have one ouput and can only write to YUV - // framebuffers. - bool mYUVOutput; - bool mBinaryRetrieveableHint; bool mSeparable; bool mEarlyFramentTestsOptimization; rx::SpecConstUsageBits mSpecConstUsageBits; @@ -439,23 +429,11 @@ ShaderType backShaderStage = ShaderType::InvalidEnum; }; using ProgramMergedVaryings = std::vector; -// TODO: Copy necessary shader state into Program. http://anglebug.com/5506 -class HasAttachedShaders -{ - public: - virtual Shader *getAttachedShader(ShaderType shaderType) const = 0; - - ShaderType getTransformFeedbackStage() const; - - protected: - virtual ~HasAttachedShaders() {} -}; - -class Program final : public LabeledObject, public angle::Subject, public HasAttachedShaders +class Program final : public LabeledObject, public angle::Subject { public: Program(rx::GLImplFactory *factory, ShaderProgramManager *manager, ShaderProgramID handle); void onDestroy(const Context *context); @@ -472,22 +450,21 @@ void attachShader(Shader *shader); void detachShader(const Context *context, Shader *shader); int getAttachedShadersCount() const; - // HasAttachedShaders implementation - Shader *getAttachedShader(ShaderType shaderType) const override; + Shader *getAttachedShader(ShaderType shaderType) const; void bindAttributeLocation(GLuint index, const char *name); void bindUniformLocation(UniformLocation location, const char *name); // EXT_blend_func_extended void bindFragmentOutputLocation(GLuint index, const char *name); void bindFragmentOutputIndex(GLuint index, const char *name); // KHR_parallel_shader_compile - // Try to link the program asynchrously. As a result, background threads may be launched to + // Try to link the program asynchronously. As a result, background threads may be launched to // execute the linking tasks concurrently. angle::Result link(const Context *context); // Peek whether there is any running linking tasks. bool isLinking() const; @@ -529,16 +506,10 @@ GLint getActiveAttributeMaxLength() const; const std::vector &getAttributes() const; GLint getFragDataLocation(const std::string &name) const; size_t getOutputResourceCount() const; - const std::vector &getOutputVariableTypes() const; - DrawBufferMask getActiveOutputVariables() const - { - ASSERT(!mLinkingState); - return mState.mActiveOutputVariables; - } // EXT_blend_func_extended GLint getFragDataIndex(const std::string &name) const; void getActiveUniform(GLuint index, @@ -772,18 +743,10 @@ return mState.getNumViews(); } bool usesMultiview() const { return mState.usesMultiview(); } - ComponentTypeMask getDrawBufferTypeMask() const; - - bool isYUVOutput() const - { - ASSERT(!mLinkingState); - return mState.isYUVOutput(); - } - const std::vector &getTransformFeedbackStrides() const; // Program dirty bits. enum DirtyBitType { @@ -848,18 +811,10 @@ void linkSamplerAndImageBindings(GLuint *combinedImageUniformsCount); bool linkAtomicCounterBuffers(); void updateLinkedShaderStages(); - int getOutputLocationForLink(const sh::ShaderVariable &outputVariable) const; - bool isOutputSecondaryForLink(const sh::ShaderVariable &outputVariable) const; - bool linkOutputVariables(const Caps &caps, - const Extensions &extensions, - const Version &version, - GLuint combinedImageUniformsCount, - GLuint combinedShaderStorageBlocksCount); - void setUniformValuesFromBindingQualifiers(); bool shouldIgnoreUniform(UniformLocation location) const; void initInterfaceBlockBindings(); diff --git a/gfx/angle/checkout/src/libANGLE/Program.cpp b/gfx/angle/checkout/src/libANGLE/Program.cpp --- a/gfx/angle/checkout/src/libANGLE/Program.cpp +++ b/gfx/angle/checkout/src/libANGLE/Program.cpp @@ -10,11 +10,11 @@ #include "libANGLE/Program.h" #include #include -#include "common/angle_version.h" +#include "common/angle_version_info.h" #include "common/bitset_utils.h" #include "common/debug.h" #include "common/platform.h" #include "common/string_utils.h" #include "common/utilities.h" @@ -25,10 +25,11 @@ #include "libANGLE/ProgramLinkedResources.h" #include "libANGLE/ResourceManager.h" #include "libANGLE/Uniform.h" #include "libANGLE/VaryingPacking.h" #include "libANGLE/Version.h" +#include "libANGLE/capture/FrameCapture.h" #include "libANGLE/features.h" #include "libANGLE/histogram_macros.h" #include "libANGLE/queryconversions.h" #include "libANGLE/renderer/GLImplFactory.h" #include "libANGLE/renderer/ProgramImpl.h" @@ -786,10 +787,50 @@ block->arrayElement = stream->readInt(); LoadShaderVariableBuffer(stream, block); } +void WriteShInterfaceBlock(BinaryOutputStream *stream, const sh::InterfaceBlock &block) +{ + stream->writeString(block.name); + stream->writeString(block.mappedName); + stream->writeString(block.instanceName); + stream->writeInt(block.arraySize); + stream->writeEnum(block.layout); + stream->writeBool(block.isRowMajorLayout); + stream->writeInt(block.binding); + stream->writeBool(block.staticUse); + stream->writeBool(block.active); + stream->writeEnum(block.blockType); + + stream->writeInt(block.fields.size()); + for (const sh::ShaderVariable &shaderVariable : block.fields) + { + WriteShaderVar(stream, shaderVariable); + } +} + +void LoadShInterfaceBlock(BinaryInputStream *stream, sh::InterfaceBlock *block) +{ + block->name = stream->readString(); + block->mappedName = stream->readString(); + block->instanceName = stream->readString(); + block->arraySize = stream->readInt(); + block->layout = stream->readEnum(); + block->isRowMajorLayout = stream->readBool(); + block->binding = stream->readInt(); + block->staticUse = stream->readBool(); + block->active = stream->readBool(); + block->blockType = stream->readEnum(); + + block->fields.resize(stream->readInt()); + for (sh::ShaderVariable &variable : block->fields) + { + LoadShaderVar(stream, &variable); + } +} + // Saves the linking context for later use in resolveLink(). struct Program::LinkingState { std::shared_ptr linkedExecutable; ProgramLinkedResources resources; @@ -1053,10 +1094,15 @@ ProgramBindings::const_iterator ProgramBindings::end() const { return mBindings.end(); } +std::map ProgramBindings::getStableIterationMap() const +{ + return std::map(mBindings.begin(), mBindings.end()); +} + // ProgramAliasedBindings implementation. ProgramAliasedBindings::ProgramAliasedBindings() {} ProgramAliasedBindings::~ProgramAliasedBindings() {} @@ -1146,10 +1192,15 @@ ProgramAliasedBindings::const_iterator ProgramAliasedBindings::end() const { return mBindings.end(); } +std::map ProgramAliasedBindings::getStableIterationMap() const +{ + return std::map(mBindings.begin(), mBindings.end()); +} + // ImageBinding implementation. ImageBinding::ImageBinding(size_t count, TextureType textureTypeIn) : textureType(textureTypeIn), boundImageUnits(count, 0) {} ImageBinding::ImageBinding(GLuint imageUnit, size_t count, TextureType textureTypeIn) @@ -1169,11 +1220,10 @@ ProgramState::ProgramState() : mLabel(), mAttachedShaders{}, mLocationsUsedForXfbExtension(0), mAtomicCounterUniformRange(0, 0), - mYUVOutput(false), mBinaryRetrieveableHint(false), mSeparable(false), mNumViews(-1), mDrawIDLocation(-1), mBaseVertexLocation(-1), @@ -1503,30 +1553,30 @@ bool result = linkValidateShaders(infoLog); ASSERT(result); std::unique_ptr linkingState(new LinkingState()); ProgramMergedVaryings mergedVaryings; + LinkingVariables linkingVariables(mState); ProgramLinkedResources &resources = linkingState->resources; + resources.init(&mState.mExecutable->mUniformBlocks, &mState.mExecutable->mUniforms, + &mState.mExecutable->mShaderStorageBlocks, &mState.mBufferVariables, + &mState.mExecutable->mAtomicCounterBuffers); + if (mState.mAttachedShaders[ShaderType::Compute]) { - resources.init(&mState.mExecutable->mUniformBlocks, &mState.mExecutable->mUniforms, - &mState.mExecutable->mComputeShaderStorageBlocks, &mState.mBufferVariables, - &mState.mExecutable->mAtomicCounterBuffers); - GLuint combinedImageUniforms = 0u; if (!linkUniforms(context->getCaps(), context->getClientVersion(), infoLog, mState.mUniformLocationBindings, &combinedImageUniforms, &resources.unusedUniforms)) { return angle::Result::Continue; } GLuint combinedShaderStorageBlocks = 0u; if (!linkInterfaceBlocks(context->getCaps(), context->getClientVersion(), - context->getExtensions().webglCompatibility, infoLog, - &combinedShaderStorageBlocks)) + context->isWebGL(), infoLog, &combinedShaderStorageBlocks)) { return angle::Result::Continue; } // [OpenGL ES 3.1] Chapter 8.22 Page 203: @@ -1548,14 +1598,10 @@ InitUniformBlockLinker(mState, &resources.uniformBlockLinker); InitShaderStorageBlockLinker(mState, &resources.shaderStorageBlockLinker); } else { - resources.init(&mState.mExecutable->mUniformBlocks, &mState.mExecutable->mUniforms, - &mState.mExecutable->mGraphicsShaderStorageBlocks, &mState.mBufferVariables, - &mState.mExecutable->mAtomicCounterBuffers); - if (!linkAttributes(context, infoLog)) { return angle::Result::Continue; } @@ -1572,24 +1618,16 @@ return angle::Result::Continue; } GLuint combinedShaderStorageBlocks = 0u; if (!linkInterfaceBlocks(context->getCaps(), context->getClientVersion(), - context->getExtensions().webglCompatibility, infoLog, - &combinedShaderStorageBlocks)) + context->isWebGL(), infoLog, &combinedShaderStorageBlocks)) { return angle::Result::Continue; } - if (!LinkValidateProgramGlobalNames(infoLog, *this)) - { - return angle::Result::Continue; - } - - if (!linkOutputVariables(context->getCaps(), context->getExtensions(), - context->getClientVersion(), combinedImageUniforms, - combinedShaderStorageBlocks)) + if (!LinkValidateProgramGlobalNames(infoLog, getExecutable(), linkingVariables)) { return angle::Result::Continue; } gl::Shader *vertexShader = mState.mAttachedShaders[ShaderType::Vertex]; @@ -1600,22 +1638,31 @@ } gl::Shader *fragmentShader = mState.mAttachedShaders[ShaderType::Fragment]; if (fragmentShader) { + if (!mState.mExecutable->linkValidateOutputVariables( + context->getCaps(), context->getExtensions(), context->getClientVersion(), + combinedImageUniforms, combinedShaderStorageBlocks, + fragmentShader->getActiveOutputVariables(), fragmentShader->getShaderVersion(), + mFragmentOutputLocations, mFragmentOutputIndexes)) + { + return angle::Result::Continue; + } + mState.mEarlyFramentTestsOptimization = fragmentShader->hasEarlyFragmentTestsOptimization(); mState.mSpecConstUsageBits |= fragmentShader->getSpecConstUsageBits(); } InitUniformBlockLinker(mState, &resources.uniformBlockLinker); InitShaderStorageBlockLinker(mState, &resources.shaderStorageBlockLinker); - mergedVaryings = GetMergedVaryingsFromShaders(*this, getExecutable()); - if (!mState.mExecutable->linkMergedVaryings(context, *this, mergedVaryings, - mState.mTransformFeedbackVaryingNames, - isSeparable(), &resources.varyingPacking)) + mergedVaryings = GetMergedVaryingsFromLinkingVariables(linkingVariables); + if (!mState.mExecutable->linkMergedVaryings( + context, mergedVaryings, mState.mTransformFeedbackVaryingNames, linkingVariables, + isSeparable(), &resources.varyingPacking)) { return angle::Result::Continue; } } @@ -1706,19 +1753,10 @@ if (shader) { mState.mExecutable->setLinkedShaderStages(shader->getType()); } } - - if (mState.mExecutable->hasLinkedShaderStage(ShaderType::Compute)) - { - mState.mExecutable->setIsCompute(true); - } - else - { - mState.mExecutable->setIsCompute(false); - } } void ProgramState::updateActiveSamplers() { mExecutable->mActiveSamplerRefCounts.fill(0); @@ -1799,14 +1837,10 @@ } mState.mExecutable->reset(); mState.mUniformLocations.clear(); mState.mBufferVariables.clear(); - mState.mOutputVariableTypes.clear(); - mState.mDrawBufferTypeMask.reset(); - mState.mYUVOutput = false; - mState.mActiveOutputVariables.reset(); mState.mComputeShaderLocalSize.fill(1); mState.mNumViews = -1; mState.mDrawIDLocation = -1; mState.mBaseVertexLocation = -1; mState.mBaseInstanceLocation = -1; @@ -2288,16 +2322,10 @@ { ASSERT(!mLinkingState); return (mLinked ? mState.mExecutable->getOutputVariables().size() : 0); } -const std::vector &Program::getOutputVariableTypes() const -{ - ASSERT(!mLinkingState); - return mState.mOutputVariableTypes; -} - void Program::getResourceName(const std::string name, GLsizei bufSize, GLsizei *length, GLchar *dest) const { @@ -2415,16 +2443,10 @@ { ASSERT(!mLinkingState); return mFragmentOutputIndexes; } -ComponentTypeMask Program::getDrawBufferTypeMask() const -{ - ASSERT(!mLinkingState); - return mState.mDrawBufferTypeMask; -} - const std::vector &Program::getTransformFeedbackStrides() const { ASSERT(!mLinkingState); return mState.mExecutable->getTransformFeedbackStrides(); } @@ -3603,24 +3625,20 @@ for (; lowIter != mState.mExecutable->getUniforms().rend() && lowIter->isImage(); ++lowIter) { --low; } - mState.mExecutable->mImageUniformRange = RangeUI(low, high); - *combinedImageUniforms = 0u; - // The Program is still linking, so getExecutable().isCompute() isn't accurate yet. - bool hasComputeShader = mState.mAttachedShaders[ShaderType::Compute] != nullptr; - std::vector &imageBindings = hasComputeShader - ? mState.mExecutable->mComputeImageBindings - : mState.mExecutable->mGraphicsImageBindings; + mState.mExecutable->mImageUniformRange = RangeUI(low, high); + *combinedImageUniforms = 0u; + std::vector &imageBindings = mState.mExecutable->mImageBindings; // If uniform is a image type, insert it into the mImageBindings array. for (unsigned int imageIndex : mState.mExecutable->getImageUniformRange()) { // ES3.1 (section 7.6.1) and GLSL ES3.1 (section 4.4.5), Uniform*i{v} commands // cannot load values into a uniform defined as an image. if declare without a // binding qualifier, any uniform image variable (include all elements of - // unbound image array) shoud be bound to unit zero. + // unbound image array) should be bound to unit zero. auto &imageUniform = mState.mExecutable->getUniforms()[imageIndex]; TextureType textureType = ImageTypeToTextureType(imageUniform.type); const GLuint arraySize = imageUniform.isArray() ? imageUniform.arraySizes[0] : 1u; if (imageUniform.binding == -1) @@ -3710,11 +3728,11 @@ // Assigns locations to all attributes (except built-ins) from the bindings and program locations. bool Program::linkAttributes(const Context *context, InfoLog &infoLog) { const Caps &caps = context->getCaps(); const Limitations &limitations = context->getLimitations(); - bool webglCompatibility = context->getExtensions().webglCompatibility; + bool webglCompatibility = context->isWebGL(); int shaderVersion = -1; unsigned int usedLocations = 0; Shader *vertexShader = mState.getAttachedShader(gl::ShaderType::Vertex); @@ -3965,371 +3983,10 @@ } return true; } -int Program::getOutputLocationForLink(const sh::ShaderVariable &outputVariable) const -{ - if (outputVariable.location != -1) - { - return outputVariable.location; - } - int apiLocation = mFragmentOutputLocations.getBinding(outputVariable); - if (apiLocation != -1) - { - return apiLocation; - } - return -1; -} - -bool Program::isOutputSecondaryForLink(const sh::ShaderVariable &outputVariable) const -{ - if (outputVariable.index != -1) - { - ASSERT(outputVariable.index == 0 || outputVariable.index == 1); - return (outputVariable.index == 1); - } - int apiIndex = mFragmentOutputIndexes.getBinding(outputVariable); - if (apiIndex != -1) - { - // Index layout qualifier from the shader takes precedence, so the index from the API is - // checked only if the index was not set in the shader. This is not specified in the EXT - // spec, but is specified in desktop OpenGL specs. - return (apiIndex == 1); - } - // EXT_blend_func_extended: Outputs get index 0 by default. - return false; -} - -namespace -{ - -bool FindUsedOutputLocation(std::vector &outputLocations, - unsigned int baseLocation, - unsigned int elementCount, - const std::vector &reservedLocations, - unsigned int variableIndex) -{ - if (baseLocation + elementCount > outputLocations.size()) - { - elementCount = baseLocation < outputLocations.size() - ? static_cast(outputLocations.size() - baseLocation) - : 0; - } - for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) - { - const unsigned int location = baseLocation + elementIndex; - if (outputLocations[location].used()) - { - VariableLocation locationInfo(elementIndex, variableIndex); - if (std::find(reservedLocations.begin(), reservedLocations.end(), locationInfo) == - reservedLocations.end()) - { - return true; - } - } - } - return false; -} - -void AssignOutputLocations(std::vector &outputLocations, - unsigned int baseLocation, - unsigned int elementCount, - const std::vector &reservedLocations, - unsigned int variableIndex, - sh::ShaderVariable &outputVariable) -{ - if (baseLocation + elementCount > outputLocations.size()) - { - outputLocations.resize(baseLocation + elementCount); - } - for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) - { - VariableLocation locationInfo(elementIndex, variableIndex); - if (std::find(reservedLocations.begin(), reservedLocations.end(), locationInfo) == - reservedLocations.end()) - { - outputVariable.location = baseLocation; - const unsigned int location = baseLocation + elementIndex; - outputLocations[location] = locationInfo; - } - } -} - -} // anonymous namespace - -bool Program::linkOutputVariables(const Caps &caps, - const Extensions &extensions, - const Version &version, - GLuint combinedImageUniformsCount, - GLuint combinedShaderStorageBlocksCount) -{ - InfoLog &infoLog = mState.mExecutable->getInfoLog(); - Shader *fragmentShader = mState.mAttachedShaders[ShaderType::Fragment]; - - ASSERT(mState.mOutputVariableTypes.empty()); - ASSERT(mState.mActiveOutputVariables.none()); - ASSERT(mState.mDrawBufferTypeMask.none()); - ASSERT(!mState.mYUVOutput); - - if (!fragmentShader) - { - // No fragment shader, so nothing to link - return true; - } - - const std::vector &outputVariables = - fragmentShader->getActiveOutputVariables(); - - // Gather output variable types - for (const sh::ShaderVariable &outputVariable : outputVariables) - { - if (outputVariable.isBuiltIn() && outputVariable.name != "gl_FragColor" && - outputVariable.name != "gl_FragData") - { - continue; - } - - unsigned int baseLocation = - (outputVariable.location == -1 ? 0u - : static_cast(outputVariable.location)); - - // GLSL ES 3.10 section 4.3.6: Output variables cannot be arrays of arrays or arrays of - // structures, so we may use getBasicTypeElementCount(). - unsigned int elementCount = outputVariable.getBasicTypeElementCount(); - for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) - { - const unsigned int location = baseLocation + elementIndex; - if (location >= mState.mOutputVariableTypes.size()) - { - mState.mOutputVariableTypes.resize(location + 1, GL_NONE); - } - ASSERT(location < mState.mActiveOutputVariables.size()); - mState.mActiveOutputVariables.set(location); - mState.mOutputVariableTypes[location] = VariableComponentType(outputVariable.type); - ComponentType componentType = - GLenumToComponentType(mState.mOutputVariableTypes[location]); - SetComponentTypeMask(componentType, location, &mState.mDrawBufferTypeMask); - } - - if (outputVariable.yuv) - { - ASSERT(outputVariables.size() == 1); - mState.mYUVOutput = true; - } - } - - if (version >= ES_3_1) - { - // [OpenGL ES 3.1] Chapter 8.22 Page 203: - // A link error will be generated if the sum of the number of active image uniforms used in - // all shaders, the number of active shader storage blocks, and the number of active - // fragment shader outputs exceeds the implementation-dependent value of - // MAX_COMBINED_SHADER_OUTPUT_RESOURCES. - if (combinedImageUniformsCount + combinedShaderStorageBlocksCount + - mState.mActiveOutputVariables.count() > - static_cast(caps.maxCombinedShaderOutputResources)) - { - infoLog - << "The sum of the number of active image uniforms, active shader storage blocks " - "and active fragment shader outputs exceeds " - "MAX_COMBINED_SHADER_OUTPUT_RESOURCES (" - << caps.maxCombinedShaderOutputResources << ")"; - return false; - } - } - - // Skip this step for GLES2 shaders. - if (fragmentShader && fragmentShader->getShaderVersion() == 100) - return true; - - mState.mExecutable->mOutputVariables = outputVariables; - mState.mExecutable->mYUVOutput = mState.mYUVOutput; - // TODO(jmadill): any caps validation here? - - // EXT_blend_func_extended doesn't specify anything related to binding specific elements of an - // output array in explicit terms. - // - // Assuming fragData is an output array, you can defend the position that: - // P1) you must support binding "fragData" because it's specified - // P2) you must support querying "fragData[x]" because it's specified - // P3) you must support binding "fragData[0]" because it's a frequently used pattern - // - // Then you can make the leap of faith: - // P4) you must support binding "fragData[x]" because you support "fragData[0]" - // P5) you must support binding "fragData[x]" because you support querying "fragData[x]" - // - // The spec brings in the "world of arrays" when it mentions binding the arrays and the - // automatic binding. Thus it must be interpreted that the thing is not undefined, rather you - // must infer the only possible interpretation (?). Note again: this need of interpretation - // might be completely off of what GL spec logic is. - // - // The other complexity is that unless you implement this feature, it's hard to understand what - // should happen when the client invokes the feature. You cannot add an additional error as it - // is not specified. One can ignore it, but obviously it creates the discrepancies... - - std::vector reservedLocations; - - // Process any output API bindings for arrays that don't alias to the first element. - for (const auto &binding : mFragmentOutputLocations) - { - size_t nameLengthWithoutArrayIndex; - unsigned int arrayIndex = ParseArrayIndex(binding.first, &nameLengthWithoutArrayIndex); - if (arrayIndex == 0 || arrayIndex == GL_INVALID_INDEX) - { - continue; - } - for (unsigned int outputVariableIndex = 0; - outputVariableIndex < mState.mExecutable->getOutputVariables().size(); - outputVariableIndex++) - { - const sh::ShaderVariable &outputVariable = - mState.mExecutable->getOutputVariables()[outputVariableIndex]; - // Check that the binding corresponds to an output array and its array index fits. - if (outputVariable.isBuiltIn() || !outputVariable.isArray() || - !angle::BeginsWith(outputVariable.name, binding.first, - nameLengthWithoutArrayIndex) || - arrayIndex >= outputVariable.getOutermostArraySize()) - { - continue; - } - - // Get the API index that corresponds to this exact binding. - // This index may differ from the index used for the array's base. - auto &outputLocations = mFragmentOutputIndexes.getBindingByName(binding.first) == 1 - ? mState.mExecutable->mSecondaryOutputLocations - : mState.mExecutable->mOutputLocations; - unsigned int location = binding.second.location; - VariableLocation locationInfo(arrayIndex, outputVariableIndex); - if (location >= outputLocations.size()) - { - outputLocations.resize(location + 1); - } - if (outputLocations[location].used()) - { - infoLog << "Location of variable " << outputVariable.name - << " conflicts with another variable."; - return false; - } - outputLocations[location] = locationInfo; - - // Note the array binding location so that it can be skipped later. - reservedLocations.push_back(locationInfo); - } - } - - // Reserve locations for output variables whose location is fixed in the shader or through the - // API. Otherwise, the remaining unallocated outputs will be processed later. - for (unsigned int outputVariableIndex = 0; - outputVariableIndex < mState.mExecutable->getOutputVariables().size(); - outputVariableIndex++) - { - const sh::ShaderVariable &outputVariable = - mState.mExecutable->getOutputVariables()[outputVariableIndex]; - - // Don't store outputs for gl_FragDepth, gl_FragColor, etc. - if (outputVariable.isBuiltIn()) - continue; - - int fixedLocation = getOutputLocationForLink(outputVariable); - if (fixedLocation == -1) - { - // Here we're only reserving locations for variables whose location is fixed. - continue; - } - unsigned int baseLocation = static_cast(fixedLocation); - - auto &outputLocations = isOutputSecondaryForLink(outputVariable) - ? mState.mExecutable->mSecondaryOutputLocations - : mState.mExecutable->mOutputLocations; - - // GLSL ES 3.10 section 4.3.6: Output variables cannot be arrays of arrays or arrays of - // structures, so we may use getBasicTypeElementCount(). - unsigned int elementCount = outputVariable.getBasicTypeElementCount(); - if (FindUsedOutputLocation(outputLocations, baseLocation, elementCount, reservedLocations, - outputVariableIndex)) - { - infoLog << "Location of variable " << outputVariable.name - << " conflicts with another variable."; - return false; - } - AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations, - outputVariableIndex, - mState.mExecutable->mOutputVariables[outputVariableIndex]); - } - - // Here we assign locations for the output variables that don't yet have them. Note that we're - // not necessarily able to fit the variables optimally, since then we might have to try - // different arrangements of output arrays. Now we just assign the locations in the order that - // we got the output variables. The spec isn't clear on what kind of algorithm is required for - // finding locations for the output variables, so this should be acceptable at least for now. - GLuint maxLocation = static_cast(caps.maxDrawBuffers); - if (!mState.mExecutable->getSecondaryOutputLocations().empty()) - { - // EXT_blend_func_extended: Program outputs will be validated against - // MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT if there's even one output with index one. - maxLocation = extensions.maxDualSourceDrawBuffers; - } - - for (unsigned int outputVariableIndex = 0; - outputVariableIndex < mState.mExecutable->getOutputVariables().size(); - outputVariableIndex++) - { - const sh::ShaderVariable &outputVariable = - mState.mExecutable->getOutputVariables()[outputVariableIndex]; - - // Don't store outputs for gl_FragDepth, gl_FragColor, etc. - if (outputVariable.isBuiltIn()) - continue; - - int fixedLocation = getOutputLocationForLink(outputVariable); - auto &outputLocations = isOutputSecondaryForLink(outputVariable) - ? mState.mExecutable->mSecondaryOutputLocations - : mState.mExecutable->mOutputLocations; - unsigned int baseLocation = 0; - unsigned int elementCount = outputVariable.getBasicTypeElementCount(); - if (fixedLocation != -1) - { - // Secondary inputs might have caused the max location to drop below what has already - // been explicitly assigned locations. Check for any fixed locations above the max - // that should cause linking to fail. - baseLocation = static_cast(fixedLocation); - } - else - { - // No fixed location, so try to fit the output in unassigned locations. - // Try baseLocations starting from 0 one at a time and see if the variable fits. - while (FindUsedOutputLocation(outputLocations, baseLocation, elementCount, - reservedLocations, outputVariableIndex)) - { - baseLocation++; - } - AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations, - outputVariableIndex, - mState.mExecutable->mOutputVariables[outputVariableIndex]); - } - - // Check for any elements assigned above the max location that are actually used. - if (baseLocation + elementCount > maxLocation && - (baseLocation >= maxLocation || - FindUsedOutputLocation(outputLocations, maxLocation, - baseLocation + elementCount - maxLocation, reservedLocations, - outputVariableIndex))) - { - // EXT_blend_func_extended: Linking can fail: - // "if the explicit binding assignments do not leave enough space for the linker to - // automatically assign a location for a varying out array, which requires multiple - // contiguous locations." - infoLog << "Could not fit output variable into available locations: " - << outputVariable.name; - return false; - } - } - - return true; -} - void Program::setUniformValuesFromBindingQualifiers() { for (unsigned int samplerIndex : mState.mExecutable->getSamplerUniformRange()) { const auto &samplerUniform = mState.mExecutable->getUniforms()[samplerIndex]; @@ -4584,12 +4241,12 @@ angle::Result Program::serialize(const Context *context, angle::MemoryBuffer *binaryOut) const { BinaryOutputStream stream; - stream.writeBytes(reinterpret_cast(ANGLE_COMMIT_HASH), - ANGLE_COMMIT_HASH_SIZE); + stream.writeBytes(reinterpret_cast(angle::GetANGLECommitHash()), + angle::GetANGLECommitHashSize()); // nullptr context is supported when computing binary length. if (context) { stream.writeInt(context->getClientVersion().major); @@ -4636,27 +4293,36 @@ { WARN() << "Saving program binary with transform feedback, which is not supported on this " "driver."; } - stream.writeInt(mState.mOutputVariableTypes.size()); - for (const auto &outputVariableType : mState.mOutputVariableTypes) - { - stream.writeInt(outputVariableType); - } - - static_assert( - IMPLEMENTATION_MAX_DRAW_BUFFERS * 2 <= 8 * sizeof(uint32_t), - "All bits of mDrawBufferTypeMask and mActiveOutputVariables can be contained in 32 bits"); - stream.writeInt(static_cast(mState.mDrawBufferTypeMask.to_ulong())); - stream.writeInt(static_cast(mState.mActiveOutputVariables.to_ulong())); - - stream.writeBool(mState.isYUVOutput()); - stream.writeInt(mState.getAtomicCounterUniformRange().low()); stream.writeInt(mState.getAtomicCounterUniformRange().high()); + if (context->getShareGroup()->getFrameCaptureShared()->enabled()) + { + // Serialize the source for each stage for re-use during capture + for (ShaderType shaderType : mState.mExecutable->getLinkedShaderStages()) + { + gl::Shader *shader = getAttachedShader(shaderType); + if (shader) + { + stream.writeString(shader->getSourceString()); + } + else + { + // If we don't have an attached shader, which would occur if this program was + // created via glProgramBinary, pull from our cached copy + const angle::ProgramSources &cachedLinkedSources = + context->getShareGroup()->getFrameCaptureShared()->getProgramSources(id()); + const std::string &cachedSourceString = cachedLinkedSources[shaderType]; + ASSERT(!cachedSourceString.empty()); + stream.writeString(cachedSourceString.c_str()); + } + } + } + mProgram->save(context, &stream); ASSERT(binaryOut); if (!binaryOut->resize(stream.length())) { @@ -4670,14 +4336,13 @@ angle::Result Program::deserialize(const Context *context, BinaryInputStream &stream, InfoLog &infoLog) { - unsigned char commitString[ANGLE_COMMIT_HASH_SIZE]; - stream.readBytes(commitString, ANGLE_COMMIT_HASH_SIZE); - if (memcmp(commitString, ANGLE_COMMIT_HASH, sizeof(unsigned char) * ANGLE_COMMIT_HASH_SIZE) != - 0) + std::vector commitString(angle::GetANGLECommitHashSize(), 0); + stream.readBytes(commitString.data(), commitString.size()); + if (memcmp(commitString.data(), angle::GetANGLECommitHash(), commitString.size()) != 0) { infoLog << "Invalid program binary version."; return angle::Result::Stop; } @@ -4722,25 +4387,10 @@ BufferVariable bufferVariable; LoadBufferVariable(&stream, &bufferVariable); mState.mBufferVariables.push_back(bufferVariable); } - size_t outputTypeCount = stream.readInt(); - for (size_t outputIndex = 0; outputIndex < outputTypeCount; ++outputIndex) - { - mState.mOutputVariableTypes.push_back(stream.readInt()); - } - - static_assert(IMPLEMENTATION_MAX_DRAW_BUFFERS * 2 <= 8 * sizeof(uint32_t), - "All bits of mDrawBufferTypeMask and mActiveOutputVariables types and mask fit " - "into 32 bits each"); - mState.mDrawBufferTypeMask = gl::ComponentTypeMask(stream.readInt()); - mState.mActiveOutputVariables = - gl::DrawBufferMask(stream.readInt()); - - stream.readBool(&mState.mYUVOutput); - unsigned int atomicCounterRangeLow = stream.readInt(); unsigned int atomicCounterRangeHigh = stream.readInt(); mState.mAtomicCounterUniformRange = RangeUI(atomicCounterRangeLow, atomicCounterRangeHigh); static_assert(static_cast(ShaderType::EnumCount) <= sizeof(unsigned long) * 8, @@ -4760,10 +4410,27 @@ } postResolveLink(context); mState.mExecutable->updateCanDrawWith(); + if (context->getShareGroup()->getFrameCaptureShared()->enabled()) + { + // Extract the source for each stage from the program binary + angle::ProgramSources sources; + + for (ShaderType shaderType : mState.mExecutable->getLinkedShaderStages()) + { + std::string shaderSource = stream.readString(); + ASSERT(shaderSource.length() > 0); + sources[shaderType] = std::move(shaderSource); + } + + // Store it for use during mid-execution capture + context->getShareGroup()->getFrameCaptureShared()->setProgramSources(id(), + std::move(sources)); + } + return angle::Result::Continue; } void Program::postResolveLink(const gl::Context *context) { @@ -4771,31 +4438,17 @@ mState.mExecutable->mActiveImageShaderBits.fill({}); mState.mExecutable->updateActiveImages(getExecutable()); setUniformValuesFromBindingQualifiers(); - if (context->getExtensions().multiDraw) + if (context->getExtensions().multiDrawANGLE) { mState.mDrawIDLocation = getUniformLocation("gl_DrawID").value; } - if (context->getExtensions().baseVertexBaseInstance) + if (context->getExtensions().baseVertexBaseInstanceANGLE) { mState.mBaseVertexLocation = getUniformLocation("gl_BaseVertex").value; mState.mBaseInstanceLocation = getUniformLocation("gl_BaseInstance").value; } } - -// HasAttachedShaders implementation. -ShaderType HasAttachedShaders::getTransformFeedbackStage() const -{ - if (getAttachedShader(ShaderType::Geometry)) - { - return ShaderType::Geometry; - } - if (getAttachedShader(ShaderType::TessEvaluation)) - { - return ShaderType::TessEvaluation; - } - return ShaderType::Vertex; -} } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/ProgramExecutable.h b/gfx/angle/checkout/src/libANGLE/ProgramExecutable.h --- a/gfx/angle/checkout/src/libANGLE/ProgramExecutable.h +++ b/gfx/angle/checkout/src/libANGLE/ProgramExecutable.h @@ -122,59 +122,30 @@ InfoLog &getInfoLog() { return mInfoLog; } void getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog) const; std::string getInfoLogString() const; void resetInfoLog() { mInfoLog.reset(); } - void resetLinkedShaderStages() - { - mLinkedComputeShaderStages.reset(); - mLinkedGraphicsShaderStages.reset(); - } - const ShaderBitSet &getLinkedShaderStages() const - { - return isCompute() ? mLinkedComputeShaderStages : mLinkedGraphicsShaderStages; - } + void resetLinkedShaderStages() { mLinkedShaderStages.reset(); } + const ShaderBitSet &getLinkedShaderStages() const { return mLinkedShaderStages; } void setLinkedShaderStages(ShaderType shaderType) { - if (shaderType == ShaderType::Compute) - { - mLinkedComputeShaderStages.set(ShaderType::Compute); - } - else - { - mLinkedGraphicsShaderStages.set(shaderType); - } - + mLinkedShaderStages.set(shaderType); updateCanDrawWith(); } bool hasLinkedShaderStage(ShaderType shaderType) const { ASSERT(shaderType != ShaderType::InvalidEnum); - return (shaderType == ShaderType::Compute) ? mLinkedComputeShaderStages[shaderType] - : mLinkedGraphicsShaderStages[shaderType]; + return mLinkedShaderStages[shaderType]; } - size_t getLinkedShaderStageCount() const - { - return isCompute() ? mLinkedComputeShaderStages.count() - : mLinkedGraphicsShaderStages.count(); - } + size_t getLinkedShaderStageCount() const { return mLinkedShaderStages.count(); } bool hasLinkedTessellationShader() const { - return mLinkedGraphicsShaderStages[ShaderType::TessControl] || - mLinkedGraphicsShaderStages[ShaderType::TessEvaluation]; + return mLinkedShaderStages[ShaderType::TessEvaluation]; } - ShaderType getTransformFeedbackStage() const; - ShaderType getLinkedTransformFeedbackStage() const; - // A PPO can have both graphics and compute programs attached, so - // we don't know if the PPO is a 'graphics' or 'compute' PPO until the - // actual draw/dispatch call. - bool isCompute() const { return mIsCompute; } - void setIsCompute(bool isCompute) { mIsCompute = isCompute; } - const AttributesMask &getActiveAttribLocationsMask() const { return mActiveAttribLocationsMask; } bool isAttribLocationActive(size_t attribLocation) const; @@ -211,27 +182,23 @@ bool hasDefaultUniforms() const; bool hasTextures() const; bool hasUniformBuffers() const; bool hasStorageBuffers() const; - bool hasGraphicsStorageBuffers() const; - bool hasComputeStorageBuffers() const; bool hasAtomicCounterBuffers() const; bool hasImages() const; - bool hasGraphicsImages() const; - bool hasComputeImages() const; bool hasTransformFeedbackOutput() const { return !getLinkedTransformFeedbackVaryings().empty(); } bool usesFramebufferFetch() const; // Count the number of uniform and storage buffer declarations, counting arrays as one. size_t getTransformFeedbackBufferCount() const { return mTransformFeedbackStrides.size(); } void updateCanDrawWith(); - bool hasVertexAndFragmentShader() const { return mCanDrawWith; } + bool hasVertexShader() const { return mCanDrawWith; } const std::vector &getProgramInputs() const { return mProgramInputs; } const std::vector &getOutputVariables() const { return mOutputVariables; } const std::vector &getOutputLocations() const { return mOutputLocations; } const std::vector &getSecondaryOutputLocations() const @@ -243,18 +210,12 @@ const UniformBlockBindingMask &getActiveUniformBlockBindings() const { return mActiveUniformBlockBindings; } const std::vector &getSamplerBindings() const { return mSamplerBindings; } - const std::vector &getImageBindings() const - { - return isCompute() ? mComputeImageBindings : mGraphicsImageBindings; - } - std::vector *getImageBindings() - { - return isCompute() ? &mComputeImageBindings : &mGraphicsImageBindings; - } + const std::vector &getImageBindings() const { return mImageBindings; } + std::vector *getImageBindings() { return &mImageBindings; } const RangeUI &getDefaultUniformRange() const { return mDefaultUniformRange; } const RangeUI &getSamplerUniformRange() const { return mSamplerUniformRange; } const RangeUI &getImageUniformRange() const { return mImageUniformRange; } const RangeUI &getFragmentInoutRange() const { return mFragmentInoutRange; } const std::vector &getLinkedTransformFeedbackVaryings() const @@ -267,14 +228,12 @@ ASSERT(uniformBlockIndex < mUniformBlocks.size()); return mUniformBlocks[uniformBlockIndex].binding; } GLuint getShaderStorageBlockBinding(GLuint blockIndex) const { - ASSERT((isCompute() && (blockIndex < mComputeShaderStorageBlocks.size())) || - (!isCompute() && (blockIndex < mGraphicsShaderStorageBlocks.size()))); - return isCompute() ? mComputeShaderStorageBlocks[blockIndex].binding - : mGraphicsShaderStorageBlocks[blockIndex].binding; + ASSERT(blockIndex < mShaderStorageBlocks.size()); + return mShaderStorageBlocks[blockIndex].binding; } const std::vector &getTransformFeedbackStrides() const { return mTransformFeedbackStrides; } @@ -282,11 +241,11 @@ { return mAtomicCounterBuffers; } const std::vector &getShaderStorageBlocks() const { - return isCompute() ? mComputeShaderStorageBlocks : mGraphicsShaderStorageBlocks; + return mShaderStorageBlocks; } const LinkedUniform &getUniformByIndex(GLuint index) const { ASSERT(index < static_cast(mUniforms.size())); return mUniforms[index]; @@ -302,12 +261,11 @@ return static_cast(mAtomicCounterBuffers.size()); } ANGLE_INLINE GLuint getActiveShaderStorageBlockCount() const { - size_t shaderStorageBlocksSize = - isCompute() ? mComputeShaderStorageBlocks.size() : mGraphicsShaderStorageBlocks.size(); + size_t shaderStorageBlocksSize = mShaderStorageBlocks.size(); return static_cast(shaderStorageBlocksSize); } GLuint getUniformIndexFromImageIndex(GLuint imageIndex) const; @@ -319,10 +277,20 @@ const std::vector &getLinkedInputVaryings(ShaderType shaderType) const { return mLinkedInputVaryings[shaderType]; } + const std::vector &getLinkedUniforms(ShaderType shaderType) const + { + return mLinkedUniforms[shaderType]; + } + + const std::vector &getLinkedUniformBlocks(ShaderType shaderType) const + { + return mLinkedUniformBlocks[shaderType]; + } + int getLinkedShaderVersion(ShaderType shaderType) const { return mLinkedShaderVersions[shaderType]; } @@ -346,20 +314,23 @@ void resetCachedValidateSamplersResult() { mCachedValidateSamplersResult.reset(); } bool validateSamplers(InfoLog *infoLog, const Caps &caps) const { // Use the cache if: - // - we aren't using an infolog (which gives the full error). + // - we aren't using an info log (which gives the full error). // - The sample mapping hasn't changed and we've already validated. if (infoLog == nullptr && mCachedValidateSamplersResult.valid()) { return mCachedValidateSamplersResult.value(); } return validateSamplersImpl(infoLog, caps); } + ComponentTypeMask getFragmentOutputsTypeMask() const { return mDrawBufferTypeMask; } + DrawBufferMask getActiveOutputVariablesMask() const { return mActiveOutputVariablesMask; } + private: // TODO(timvp): http://anglebug.com/3570: Investigate removing these friend // class declarations and accessing the necessary members with getters/setters. friend class Program; friend class ProgramPipeline; @@ -370,13 +341,13 @@ // Scans the sampler bindings for type conflicts with sampler 'textureUnitIndex'. void setSamplerUniformTextureTypeAndFormat(size_t textureUnitIndex, std::vector &samplerBindings); bool linkMergedVaryings(const Context *context, - const HasAttachedShaders &programOrPipeline, const ProgramMergedVaryings &mergedVaryings, const std::vector &transformFeedbackVaryingNames, + const LinkingVariables &linkingVariables, bool isSeparable, ProgramVaryingPacking *varyingPacking); bool linkValidateTransformFeedback( const Context *context, @@ -391,14 +362,23 @@ void updateTransformFeedbackStrides(); bool validateSamplersImpl(InfoLog *infoLog, const Caps &caps) const; + bool linkValidateOutputVariables(const Caps &caps, + const Extensions &extensions, + const Version &version, + GLuint combinedImageUniformsCount, + GLuint combinedShaderStorageBlocksCount, + const std::vector &outputVariables, + int fragmentShaderVersion, + const ProgramAliasedBindings &fragmentOutputLocations, + const ProgramAliasedBindings &fragmentOutputIndices); + InfoLog mInfoLog; - ShaderBitSet mLinkedGraphicsShaderStages; - ShaderBitSet mLinkedComputeShaderStages; + ShaderBitSet mLinkedShaderStages; angle::BitSet mActiveAttribLocationsMask; unsigned int mMaxActiveAttribLocation; ComponentTypeMask mAttributesTypeMask; // mAttributesMask is identical to mActiveAttribLocationsMask with built-in attributes removed. @@ -420,10 +400,11 @@ // Names and mapped names of output variables that are arrays include [0] in the end, similarly // to uniforms. std::vector mOutputVariables; std::vector mOutputLocations; + DrawBufferMask mActiveOutputVariablesMask; // EXT_blend_func_extended secondary outputs (ones with index 1) std::vector mSecondaryOutputLocations; bool mYUVOutput; // Vertex attributes, Fragment input varyings, etc. std::vector mProgramInputs; @@ -451,40 +432,33 @@ // For faster iteration on the blocks currently being bound. UniformBlockBindingMask mActiveUniformBlockBindings; std::vector mAtomicCounterBuffers; RangeUI mImageUniformRange; - std::vector mComputeShaderStorageBlocks; - std::vector mGraphicsShaderStorageBlocks; + std::vector mShaderStorageBlocks; RangeUI mFragmentInoutRange; // An array of the samplers that are used by the program std::vector mSamplerBindings; // An array of the images that are used by the program - std::vector mComputeImageBindings; - std::vector mGraphicsImageBindings; + std::vector mImageBindings; // TODO: http://anglebug.com/3570: Remove mPipelineHas*UniformBuffers once PPO's have valid data // in mUniformBlocks - bool mPipelineHasGraphicsUniformBuffers; - bool mPipelineHasComputeUniformBuffers; - bool mPipelineHasGraphicsStorageBuffers; - bool mPipelineHasComputeStorageBuffers; - bool mPipelineHasGraphicsAtomicCounterBuffers; - bool mPipelineHasComputeAtomicCounterBuffers; - bool mPipelineHasGraphicsDefaultUniforms; - bool mPipelineHasComputeDefaultUniforms; - bool mPipelineHasGraphicsTextures; - bool mPipelineHasComputeTextures; - bool mPipelineHasGraphicsImages; - bool mPipelineHasComputeImages; - - bool mIsCompute; + bool mPipelineHasUniformBuffers; + bool mPipelineHasStorageBuffers; + bool mPipelineHasAtomicCounterBuffers; + bool mPipelineHasDefaultUniforms; + bool mPipelineHasTextures; + bool mPipelineHasImages; ShaderMap> mLinkedOutputVaryings; ShaderMap> mLinkedInputVaryings; + ShaderMap> mLinkedUniforms; + ShaderMap> mLinkedUniformBlocks; + ShaderMap mLinkedShaderVersions; // GL_EXT_geometry_shader. PrimitiveMode mGeometryShaderInputPrimitiveType; PrimitiveMode mGeometryShaderOutputPrimitiveType; @@ -496,10 +470,14 @@ GLenum mTessGenMode; GLenum mTessGenSpacing; GLenum mTessGenVertexOrder; GLenum mTessGenPointMode; + // Fragment output variable base types: FLOAT, INT, or UINT. Ordered by location. + std::vector mOutputVariableTypes; + ComponentTypeMask mDrawBufferTypeMask; + // Cache for sampler validation mutable Optional mCachedValidateSamplersResult; }; } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/ProgramExecutable.cpp b/gfx/angle/checkout/src/libANGLE/ProgramExecutable.cpp --- a/gfx/angle/checkout/src/libANGLE/ProgramExecutable.cpp +++ b/gfx/angle/checkout/src/libANGLE/ProgramExecutable.cpp @@ -6,10 +6,11 @@ // ProgramExecutable.cpp: Collects the interfaces common to both Programs and // ProgramPipelines in order to execute/draw with either. #include "libANGLE/ProgramExecutable.h" +#include "common/string_utils.h" #include "libANGLE/Context.h" #include "libANGLE/Program.h" #include "libANGLE/Shader.h" namespace gl @@ -59,10 +60,98 @@ break; } } return var; } + +bool FindUsedOutputLocation(std::vector &outputLocations, + unsigned int baseLocation, + unsigned int elementCount, + const std::vector &reservedLocations, + unsigned int variableIndex) +{ + if (baseLocation + elementCount > outputLocations.size()) + { + elementCount = baseLocation < outputLocations.size() + ? static_cast(outputLocations.size() - baseLocation) + : 0; + } + for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) + { + const unsigned int location = baseLocation + elementIndex; + if (outputLocations[location].used()) + { + VariableLocation locationInfo(elementIndex, variableIndex); + if (std::find(reservedLocations.begin(), reservedLocations.end(), locationInfo) == + reservedLocations.end()) + { + return true; + } + } + } + return false; +} + +void AssignOutputLocations(std::vector &outputLocations, + unsigned int baseLocation, + unsigned int elementCount, + const std::vector &reservedLocations, + unsigned int variableIndex, + sh::ShaderVariable &outputVariable) +{ + if (baseLocation + elementCount > outputLocations.size()) + { + outputLocations.resize(baseLocation + elementCount); + } + for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) + { + VariableLocation locationInfo(elementIndex, variableIndex); + if (std::find(reservedLocations.begin(), reservedLocations.end(), locationInfo) == + reservedLocations.end()) + { + outputVariable.location = baseLocation; + const unsigned int location = baseLocation + elementIndex; + outputLocations[location] = locationInfo; + } + } +} + +int GetOutputLocationForLink(const ProgramAliasedBindings &fragmentOutputLocations, + const sh::ShaderVariable &outputVariable) +{ + if (outputVariable.location != -1) + { + return outputVariable.location; + } + int apiLocation = fragmentOutputLocations.getBinding(outputVariable); + if (apiLocation != -1) + { + return apiLocation; + } + return -1; +} + +bool IsOutputSecondaryForLink(const ProgramAliasedBindings &fragmentOutputIndexes, + const sh::ShaderVariable &outputVariable) +{ + if (outputVariable.index != -1) + { + ASSERT(outputVariable.index == 0 || outputVariable.index == 1); + return (outputVariable.index == 1); + } + int apiIndex = fragmentOutputIndexes.getBinding(outputVariable); + if (apiIndex != -1) + { + // Index layout qualifier from the shader takes precedence, so the index from the API is + // checked only if the index was not set in the shader. This is not specified in the EXT + // spec, but is specified in desktop OpenGL specs. + return (apiIndex == 1); + } + // EXT_blend_func_extended: Outputs get index 0 by default. + return false; +} + } // anonymous namespace ProgramExecutable::ProgramExecutable() : mMaxActiveAttribLocation(0), mAttributesTypeMask(0), @@ -73,23 +162,16 @@ mTransformFeedbackBufferMode(GL_INTERLEAVED_ATTRIBS), mDefaultUniformRange(0, 0), mSamplerUniformRange(0, 0), mImageUniformRange(0, 0), mFragmentInoutRange(0, 0), - mPipelineHasGraphicsUniformBuffers(false), - mPipelineHasComputeUniformBuffers(false), - mPipelineHasGraphicsStorageBuffers(false), - mPipelineHasComputeStorageBuffers(false), - mPipelineHasGraphicsAtomicCounterBuffers(false), - mPipelineHasComputeAtomicCounterBuffers(false), - mPipelineHasGraphicsDefaultUniforms(false), - mPipelineHasComputeDefaultUniforms(false), - mPipelineHasGraphicsTextures(false), - mPipelineHasComputeTextures(false), - mPipelineHasGraphicsImages(false), - mPipelineHasComputeImages(false), - mIsCompute(false), + mPipelineHasUniformBuffers(false), + mPipelineHasStorageBuffers(false), + mPipelineHasAtomicCounterBuffers(false), + mPipelineHasDefaultUniforms(false), + mPipelineHasTextures(false), + mPipelineHasImages(false), // [GL_EXT_geometry_shader] Table 20.22 mGeometryShaderInputPrimitiveType(PrimitiveMode::Triangles), mGeometryShaderOutputPrimitiveType(PrimitiveMode::TriangleStrip), mGeometryShaderInvocations(1), mGeometryShaderMaxVertices(0), @@ -101,12 +183,11 @@ { reset(); } ProgramExecutable::ProgramExecutable(const ProgramExecutable &other) - : mLinkedGraphicsShaderStages(other.mLinkedGraphicsShaderStages), - mLinkedComputeShaderStages(other.mLinkedComputeShaderStages), + : mLinkedShaderStages(other.mLinkedShaderStages), mActiveAttribLocationsMask(other.mActiveAttribLocationsMask), mMaxActiveAttribLocation(other.mMaxActiveAttribLocation), mAttributesTypeMask(other.mAttributesTypeMask), mAttributesMask(other.mAttributesMask), mActiveSamplersMask(other.mActiveSamplersMask), @@ -131,26 +212,18 @@ mSamplerUniformRange(other.mSamplerUniformRange), mUniformBlocks(other.mUniformBlocks), mActiveUniformBlockBindings(other.mActiveUniformBlockBindings), mAtomicCounterBuffers(other.mAtomicCounterBuffers), mImageUniformRange(other.mImageUniformRange), - mComputeShaderStorageBlocks(other.mComputeShaderStorageBlocks), - mGraphicsShaderStorageBlocks(other.mGraphicsShaderStorageBlocks), + mShaderStorageBlocks(other.mShaderStorageBlocks), mFragmentInoutRange(other.mFragmentInoutRange), - mPipelineHasGraphicsUniformBuffers(other.mPipelineHasGraphicsUniformBuffers), - mPipelineHasComputeUniformBuffers(other.mPipelineHasComputeUniformBuffers), - mPipelineHasGraphicsStorageBuffers(other.mPipelineHasGraphicsStorageBuffers), - mPipelineHasComputeStorageBuffers(other.mPipelineHasComputeStorageBuffers), - mPipelineHasGraphicsAtomicCounterBuffers(other.mPipelineHasGraphicsAtomicCounterBuffers), - mPipelineHasComputeAtomicCounterBuffers(other.mPipelineHasComputeAtomicCounterBuffers), - mPipelineHasGraphicsDefaultUniforms(other.mPipelineHasGraphicsDefaultUniforms), - mPipelineHasComputeDefaultUniforms(other.mPipelineHasComputeDefaultUniforms), - mPipelineHasGraphicsTextures(other.mPipelineHasGraphicsTextures), - mPipelineHasComputeTextures(other.mPipelineHasComputeTextures), - mPipelineHasGraphicsImages(other.mPipelineHasGraphicsImages), - mPipelineHasComputeImages(other.mPipelineHasComputeImages), - mIsCompute(other.mIsCompute) + mPipelineHasUniformBuffers(other.mPipelineHasUniformBuffers), + mPipelineHasStorageBuffers(other.mPipelineHasStorageBuffers), + mPipelineHasAtomicCounterBuffers(other.mPipelineHasAtomicCounterBuffers), + mPipelineHasDefaultUniforms(other.mPipelineHasDefaultUniforms), + mPipelineHasTextures(other.mPipelineHasTextures), + mPipelineHasImages(other.mPipelineHasImages) { reset(); } ProgramExecutable::~ProgramExecutable() = default; @@ -175,31 +248,25 @@ mLinkedTransformFeedbackVaryings.clear(); mTransformFeedbackStrides.clear(); mUniforms.clear(); mUniformBlocks.clear(); mActiveUniformBlockBindings.reset(); - mComputeShaderStorageBlocks.clear(); - mGraphicsShaderStorageBlocks.clear(); + mShaderStorageBlocks.clear(); mAtomicCounterBuffers.clear(); mOutputVariables.clear(); mOutputLocations.clear(); + mActiveOutputVariablesMask.reset(); mSecondaryOutputLocations.clear(); mYUVOutput = false; mSamplerBindings.clear(); - mComputeImageBindings.clear(); - mGraphicsImageBindings.clear(); + mImageBindings.clear(); - mPipelineHasGraphicsUniformBuffers = false; - mPipelineHasComputeUniformBuffers = false; - mPipelineHasGraphicsStorageBuffers = false; - mPipelineHasComputeStorageBuffers = false; - mPipelineHasGraphicsAtomicCounterBuffers = false; - mPipelineHasComputeAtomicCounterBuffers = false; - mPipelineHasGraphicsDefaultUniforms = false; - mPipelineHasComputeDefaultUniforms = false; - mPipelineHasGraphicsTextures = false; - mPipelineHasComputeTextures = false; + mPipelineHasUniformBuffers = false; + mPipelineHasStorageBuffers = false; + mPipelineHasAtomicCounterBuffers = false; + mPipelineHasDefaultUniforms = false; + mPipelineHasTextures = false; mGeometryShaderInputPrimitiveType = PrimitiveMode::Triangles; mGeometryShaderOutputPrimitiveType = PrimitiveMode::TriangleStrip; mGeometryShaderInvocations = 1; mGeometryShaderMaxVertices = 0; @@ -207,10 +274,13 @@ mTessControlShaderVertices = 0; mTessGenMode = GL_NONE; mTessGenSpacing = GL_NONE; mTessGenVertexOrder = GL_NONE; mTessGenPointMode = GL_NONE; + + mOutputVariableTypes.clear(); + mDrawBufferTypeMask.reset(); } void ProgramExecutable::load(bool isSeparable, gl::BinaryInputStream *stream) { static_assert(MAX_VERTEX_ATTRIBS * 2 <= sizeof(uint32_t) * 8, @@ -223,24 +293,17 @@ unsigned int fragmentInoutRangeLow = stream->readInt(); unsigned int fragmentInoutRangeHigh = stream->readInt(); mFragmentInoutRange = RangeUI(fragmentInoutRangeLow, fragmentInoutRangeHigh); - mLinkedGraphicsShaderStages = ShaderBitSet(stream->readInt()); - mLinkedComputeShaderStages = ShaderBitSet(stream->readInt()); - mIsCompute = stream->readBool(); + mLinkedShaderStages = ShaderBitSet(stream->readInt()); - mPipelineHasGraphicsUniformBuffers = stream->readBool(); - mPipelineHasComputeUniformBuffers = stream->readBool(); - mPipelineHasGraphicsStorageBuffers = stream->readBool(); - mPipelineHasComputeStorageBuffers = stream->readBool(); - mPipelineHasGraphicsAtomicCounterBuffers = stream->readBool(); - mPipelineHasComputeAtomicCounterBuffers = stream->readBool(); - mPipelineHasGraphicsDefaultUniforms = stream->readBool(); - mPipelineHasComputeDefaultUniforms = stream->readBool(); - mPipelineHasGraphicsTextures = stream->readBool(); - mPipelineHasComputeTextures = stream->readBool(); + mPipelineHasUniformBuffers = stream->readBool(); + mPipelineHasStorageBuffers = stream->readBool(); + mPipelineHasAtomicCounterBuffers = stream->readBool(); + mPipelineHasDefaultUniforms = stream->readBool(); + mPipelineHasTextures = stream->readBool(); mGeometryShaderInputPrimitiveType = stream->readEnum(); mGeometryShaderOutputPrimitiveType = stream->readEnum(); mGeometryShaderInvocations = stream->readInt(); mGeometryShaderMaxVertices = stream->readInt(); @@ -300,18 +363,11 @@ for (size_t shaderStorageBlockIndex = 0; shaderStorageBlockIndex < shaderStorageBlockCount; ++shaderStorageBlockIndex) { InterfaceBlock shaderStorageBlock; LoadInterfaceBlock(stream, &shaderStorageBlock); - if (isCompute()) - { - mComputeShaderStorageBlocks.push_back(shaderStorageBlock); - } - else - { - mGraphicsShaderStorageBlocks.push_back(shaderStorageBlock); - } + mShaderStorageBlocks.push_back(shaderStorageBlock); } size_t atomicCounterBufferCount = stream->readInt(); ASSERT(getAtomicCounterBuffers().empty()); for (size_t bufferIndex = 0; bufferIndex < atomicCounterBufferCount; ++bufferIndex) @@ -360,10 +416,26 @@ stream->readInt(&locationData.index); stream->readBool(&locationData.ignored); mOutputLocations.push_back(locationData); } + mActiveOutputVariablesMask = + gl::DrawBufferMask(stream->readInt()); + + size_t outputTypeCount = stream->readInt(); + for (size_t outputIndex = 0; outputIndex < outputTypeCount; ++outputIndex) + { + mOutputVariableTypes.push_back(stream->readInt()); + } + + static_assert(IMPLEMENTATION_MAX_DRAW_BUFFERS * 2 <= 8 * sizeof(uint32_t), + "All bits of mDrawBufferTypeMask and mActiveOutputVariables types and mask fit " + "into 32 bits each"); + mDrawBufferTypeMask = gl::ComponentTypeMask(stream->readInt()); + + stream->readBool(&mYUVOutput); + size_t secondaryOutputVarCount = stream->readInt(); ASSERT(getSecondaryOutputLocations().empty()); for (size_t outputIndex = 0; outputIndex < secondaryOutputVarCount; ++outputIndex) { VariableLocation locationData; @@ -403,25 +475,18 @@ ImageBinding imageBinding(elementCount, textureType); for (size_t elementIndex = 0; elementIndex < elementCount; ++elementIndex) { imageBinding.boundImageUnits[elementIndex] = stream->readInt(); } - if (isCompute()) - { - mComputeImageBindings.emplace_back(imageBinding); - } - else - { - mGraphicsImageBindings.emplace_back(imageBinding); - } + mImageBindings.emplace_back(imageBinding); } // These values are currently only used by PPOs, so only load them when the program is marked // separable to save memory. if (isSeparable) { - for (ShaderType shaderType : mLinkedGraphicsShaderStages) + for (ShaderType shaderType : mLinkedShaderStages) { mLinkedOutputVaryings[shaderType].resize(stream->readInt()); for (sh::ShaderVariable &variable : mLinkedOutputVaryings[shaderType]) { LoadShaderVar(stream, &variable); @@ -429,23 +494,19 @@ mLinkedInputVaryings[shaderType].resize(stream->readInt()); for (sh::ShaderVariable &variable : mLinkedInputVaryings[shaderType]) { LoadShaderVar(stream, &variable); } - mLinkedShaderVersions[shaderType] = stream->readInt(); - } - for (ShaderType shaderType : mLinkedComputeShaderStages) - { - mLinkedOutputVaryings[shaderType].resize(stream->readInt()); - for (sh::ShaderVariable &variable : mLinkedOutputVaryings[shaderType]) + mLinkedUniforms[shaderType].resize(stream->readInt()); + for (sh::ShaderVariable &variable : mLinkedUniforms[shaderType]) { LoadShaderVar(stream, &variable); } - mLinkedInputVaryings[shaderType].resize(stream->readInt()); - for (sh::ShaderVariable &variable : mLinkedInputVaryings[shaderType]) + mLinkedUniformBlocks[shaderType].resize(stream->readInt()); + for (sh::InterfaceBlock &shaderStorageBlock : mLinkedUniformBlocks[shaderType]) { - LoadShaderVar(stream, &variable); + LoadShInterfaceBlock(stream, &shaderStorageBlock); } mLinkedShaderVersions[shaderType] = stream->readInt(); } } } @@ -460,24 +521,17 @@ stream->writeInt(mMaxActiveAttribLocation); stream->writeInt(mFragmentInoutRange.low()); stream->writeInt(mFragmentInoutRange.high()); - stream->writeInt(mLinkedGraphicsShaderStages.bits()); - stream->writeInt(mLinkedComputeShaderStages.bits()); - stream->writeBool(mIsCompute); + stream->writeInt(mLinkedShaderStages.bits()); - stream->writeBool(mPipelineHasGraphicsUniformBuffers); - stream->writeBool(mPipelineHasComputeUniformBuffers); - stream->writeBool(mPipelineHasGraphicsStorageBuffers); - stream->writeBool(mPipelineHasComputeStorageBuffers); - stream->writeBool(mPipelineHasGraphicsAtomicCounterBuffers); - stream->writeBool(mPipelineHasComputeAtomicCounterBuffers); - stream->writeBool(mPipelineHasGraphicsDefaultUniforms); - stream->writeBool(mPipelineHasComputeDefaultUniforms); - stream->writeBool(mPipelineHasGraphicsTextures); - stream->writeBool(mPipelineHasComputeTextures); + stream->writeBool(mPipelineHasUniformBuffers); + stream->writeBool(mPipelineHasStorageBuffers); + stream->writeBool(mPipelineHasAtomicCounterBuffers); + stream->writeBool(mPipelineHasDefaultUniforms); + stream->writeBool(mPipelineHasTextures); ASSERT(mGeometryShaderInvocations >= 1 && mGeometryShaderMaxVertices >= 0); stream->writeEnum(mGeometryShaderInputPrimitiveType); stream->writeEnum(mGeometryShaderOutputPrimitiveType); stream->writeInt(mGeometryShaderInvocations); @@ -557,10 +611,25 @@ stream->writeInt(outputVar.arrayIndex); stream->writeIntOrNegOne(outputVar.index); stream->writeBool(outputVar.ignored); } + stream->writeInt(static_cast(mActiveOutputVariablesMask.to_ulong())); + + stream->writeInt(mOutputVariableTypes.size()); + for (const auto &outputVariableType : mOutputVariableTypes) + { + stream->writeInt(outputVariableType); + } + + static_assert( + IMPLEMENTATION_MAX_DRAW_BUFFERS * 2 <= 8 * sizeof(uint32_t), + "All bits of mDrawBufferTypeMask and mActiveOutputVariables can be contained in 32 bits"); + stream->writeInt(static_cast(mDrawBufferTypeMask.to_ulong())); + + stream->writeBool(mYUVOutput); + stream->writeInt(getSecondaryOutputLocations().size()); for (const auto &outputVar : getSecondaryOutputLocations()) { stream->writeInt(outputVar.arrayIndex); stream->writeIntOrNegOne(outputVar.index); @@ -598,11 +667,11 @@ // These values are currently only used by PPOs, so only save them when the program is marked // separable to save memory. if (isSeparable) { - for (ShaderType shaderType : mLinkedGraphicsShaderStages) + for (ShaderType shaderType : mLinkedShaderStages) { stream->writeInt(mLinkedOutputVaryings[shaderType].size()); for (const sh::ShaderVariable &shaderVariable : mLinkedOutputVaryings[shaderType]) { WriteShaderVar(stream, shaderVariable); @@ -610,23 +679,19 @@ stream->writeInt(mLinkedInputVaryings[shaderType].size()); for (const sh::ShaderVariable &shaderVariable : mLinkedInputVaryings[shaderType]) { WriteShaderVar(stream, shaderVariable); } - stream->writeInt(mLinkedShaderVersions[shaderType]); - } - for (ShaderType shaderType : mLinkedComputeShaderStages) - { - stream->writeInt(mLinkedOutputVaryings[shaderType].size()); - for (const sh::ShaderVariable &shaderVariable : mLinkedOutputVaryings[shaderType]) + stream->writeInt(mLinkedUniforms[shaderType].size()); + for (const sh::ShaderVariable &shaderVariable : mLinkedUniforms[shaderType]) { WriteShaderVar(stream, shaderVariable); } - stream->writeInt(mLinkedInputVaryings[shaderType].size()); - for (const sh::ShaderVariable &shaderVariable : mLinkedInputVaryings[shaderType]) + stream->writeInt(mLinkedUniformBlocks[shaderType].size()); + for (const sh::InterfaceBlock &shaderStorageBlock : mLinkedUniformBlocks[shaderType]) { - WriteShaderVar(stream, shaderVariable); + WriteShInterfaceBlock(stream, shaderStorageBlock); } stream->writeInt(mLinkedShaderVersions[shaderType]); } } } @@ -661,63 +726,38 @@ return mAttributesMask; } bool ProgramExecutable::hasDefaultUniforms() const { - return !getDefaultUniformRange().empty() || - (isCompute() ? mPipelineHasComputeDefaultUniforms : mPipelineHasGraphicsDefaultUniforms); + return !getDefaultUniformRange().empty() || mPipelineHasDefaultUniforms; } bool ProgramExecutable::hasTextures() const { - return !getSamplerBindings().empty() || - (isCompute() ? mPipelineHasComputeTextures : mPipelineHasGraphicsTextures); + return !getSamplerBindings().empty() || mPipelineHasTextures; } // TODO: http://anglebug.com/3570: Remove mHas*UniformBuffers once PPO's have valid data in // mUniformBlocks bool ProgramExecutable::hasUniformBuffers() const { - return !getUniformBlocks().empty() || - (isCompute() ? mPipelineHasComputeUniformBuffers : mPipelineHasGraphicsUniformBuffers); + return !mUniformBlocks.empty() || mPipelineHasUniformBuffers; } bool ProgramExecutable::hasStorageBuffers() const { - return (isCompute() ? hasComputeStorageBuffers() : hasGraphicsStorageBuffers()); -} - -bool ProgramExecutable::hasGraphicsStorageBuffers() const -{ - return !mGraphicsShaderStorageBlocks.empty() || mPipelineHasGraphicsStorageBuffers; -} - -bool ProgramExecutable::hasComputeStorageBuffers() const -{ - return !mComputeShaderStorageBlocks.empty() || mPipelineHasComputeStorageBuffers; + return !mShaderStorageBlocks.empty() || mPipelineHasStorageBuffers; } bool ProgramExecutable::hasAtomicCounterBuffers() const { - return !getAtomicCounterBuffers().empty() || - (isCompute() ? mPipelineHasComputeAtomicCounterBuffers - : mPipelineHasGraphicsAtomicCounterBuffers); + return !mAtomicCounterBuffers.empty() || mPipelineHasAtomicCounterBuffers; } bool ProgramExecutable::hasImages() const { - return (isCompute() ? hasComputeImages() : hasGraphicsImages()); -} - -bool ProgramExecutable::hasGraphicsImages() const -{ - return !mGraphicsImageBindings.empty() || mPipelineHasGraphicsImages; -} - -bool ProgramExecutable::hasComputeImages() const -{ - return !mComputeImageBindings.empty() || mPipelineHasComputeImages; + return !mImageBindings.empty() || mPipelineHasImages; } bool ProgramExecutable::usesFramebufferFetch() const { return (mFragmentInoutRange.length() > 0); @@ -766,33 +806,29 @@ } } mActiveSamplersMask.set(textureUnit); } } + + // Invalidate the validation cache. + resetCachedValidateSamplersResult(); } void ProgramExecutable::updateActiveImages(const ProgramExecutable &executable) { - const std::vector *imageBindings = getImageBindings(); - for (uint32_t imageIndex = 0; imageIndex < imageBindings->size(); ++imageIndex) + const std::vector &imageBindings = executable.getImageBindings(); + for (uint32_t imageIndex = 0; imageIndex < imageBindings.size(); ++imageIndex) { - const gl::ImageBinding &imageBinding = imageBindings->at(imageIndex); + const gl::ImageBinding &imageBinding = imageBindings.at(imageIndex); uint32_t uniformIndex = executable.getUniformIndexFromImageIndex(imageIndex); const gl::LinkedUniform &imageUniform = executable.getUniforms()[uniformIndex]; const ShaderBitSet shaderBits = imageUniform.activeShaders(); for (GLint imageUnit : imageBinding.boundImageUnits) { mActiveImagesMask.set(imageUnit); - if (isCompute()) - { - mActiveImageShaderBits[imageUnit].set(gl::ShaderType::Compute); - } - else - { - mActiveImageShaderBits[imageUnit] |= shaderBits; - } + mActiveImageShaderBits[imageUnit] |= shaderBits; } } } void ProgramExecutable::setSamplerUniformTextureTypeAndFormat( @@ -843,12 +879,11 @@ mActiveSamplerFormats[textureUnitIndex] = foundFormat; } void ProgramExecutable::updateCanDrawWith() { - mCanDrawWith = - (hasLinkedShaderStage(ShaderType::Vertex) && hasLinkedShaderStage(ShaderType::Fragment)); + mCanDrawWith = hasLinkedShaderStage(ShaderType::Vertex); } void ProgramExecutable::saveLinkedStateInfo(const ProgramState &state) { for (ShaderType shaderType : getLinkedShaderStages()) @@ -856,32 +891,34 @@ Shader *shader = state.getAttachedShader(shaderType); ASSERT(shader); mLinkedOutputVaryings[shaderType] = shader->getOutputVaryings(); mLinkedInputVaryings[shaderType] = shader->getInputVaryings(); mLinkedShaderVersions[shaderType] = shader->getShaderVersion(); + mLinkedUniforms[shaderType] = shader->getUniforms(); + mLinkedUniformBlocks[shaderType] = shader->getUniformBlocks(); } } bool ProgramExecutable::isYUVOutput() const { - return !isCompute() && mYUVOutput; + return mYUVOutput; } ShaderType ProgramExecutable::getLinkedTransformFeedbackStage() const { - return GetLastPreFragmentStage(mLinkedGraphicsShaderStages); + return GetLastPreFragmentStage(mLinkedShaderStages); } bool ProgramExecutable::linkMergedVaryings( const Context *context, - const HasAttachedShaders &programOrPipeline, const ProgramMergedVaryings &mergedVaryings, const std::vector &transformFeedbackVaryingNames, + const LinkingVariables &linkingVariables, bool isSeparable, ProgramVaryingPacking *varyingPacking) { - ShaderType tfStage = programOrPipeline.getTransformFeedbackStage(); + ShaderType tfStage = GetLastPreFragmentStage(linkingVariables.isShaderStageUsedBitset); if (!linkValidateTransformFeedback(context, mergedVaryings, tfStage, transformFeedbackVaryingNames)) { return false; @@ -893,11 +930,11 @@ if (context->getLimitations().noFlexibleVaryingPacking) { // D3D9 pack mode is strictly more strict than WebGL, so takes priority. packMode = PackMode::ANGLE_NON_CONFORMANT_D3D9; } - else if (context->getExtensions().webglCompatibility) + else if (context->isWebGL()) { packMode = PackMode::WEBGL_STRICT; } // Build active shader stage map. @@ -906,11 +943,11 @@ { // - Check for attached shaders to handle the case of a Program linking the currently // attached shaders. // - Check for linked shaders to handle the case of a PPO linking separable programs before // drawing. - if (programOrPipeline.getAttachedShader(shaderType) || + if (linkingVariables.isShaderStageUsedBitset[shaderType] || getLinkedShaderStages().test(shaderType)) { activeShadersMask[shaderType] = true; } } @@ -1137,6 +1174,264 @@ mCachedValidateSamplersResult = true; return true; } +bool ProgramExecutable::linkValidateOutputVariables( + const Caps &caps, + const Extensions &extensions, + const Version &version, + GLuint combinedImageUniformsCount, + GLuint combinedShaderStorageBlocksCount, + const std::vector &outputVariables, + int fragmentShaderVersion, + const ProgramAliasedBindings &fragmentOutputLocations, + const ProgramAliasedBindings &fragmentOutputIndices) +{ + ASSERT(mOutputVariableTypes.empty()); + ASSERT(mActiveOutputVariablesMask.none()); + ASSERT(mDrawBufferTypeMask.none()); + ASSERT(!mYUVOutput); + + // Gather output variable types + for (const sh::ShaderVariable &outputVariable : outputVariables) + { + if (outputVariable.isBuiltIn() && outputVariable.name != "gl_FragColor" && + outputVariable.name != "gl_FragData") + { + continue; + } + + unsigned int baseLocation = + (outputVariable.location == -1 ? 0u + : static_cast(outputVariable.location)); + + // GLSL ES 3.10 section 4.3.6: Output variables cannot be arrays of arrays or arrays of + // structures, so we may use getBasicTypeElementCount(). + unsigned int elementCount = outputVariable.getBasicTypeElementCount(); + for (unsigned int elementIndex = 0; elementIndex < elementCount; elementIndex++) + { + const unsigned int location = baseLocation + elementIndex; + if (location >= mOutputVariableTypes.size()) + { + mOutputVariableTypes.resize(location + 1, GL_NONE); + } + ASSERT(location < mActiveOutputVariablesMask.size()); + mActiveOutputVariablesMask.set(location); + mOutputVariableTypes[location] = VariableComponentType(outputVariable.type); + ComponentType componentType = GLenumToComponentType(mOutputVariableTypes[location]); + SetComponentTypeMask(componentType, location, &mDrawBufferTypeMask); + } + + if (outputVariable.yuv) + { + ASSERT(outputVariables.size() == 1); + mYUVOutput = true; + } + } + + if (version >= ES_3_1) + { + // [OpenGL ES 3.1] Chapter 8.22 Page 203: + // A link error will be generated if the sum of the number of active image uniforms used in + // all shaders, the number of active shader storage blocks, and the number of active + // fragment shader outputs exceeds the implementation-dependent value of + // MAX_COMBINED_SHADER_OUTPUT_RESOURCES. + if (combinedImageUniformsCount + combinedShaderStorageBlocksCount + + mActiveOutputVariablesMask.count() > + static_cast(caps.maxCombinedShaderOutputResources)) + { + mInfoLog + << "The sum of the number of active image uniforms, active shader storage blocks " + "and active fragment shader outputs exceeds " + "MAX_COMBINED_SHADER_OUTPUT_RESOURCES (" + << caps.maxCombinedShaderOutputResources << ")"; + return false; + } + } + + mOutputVariables = outputVariables; + + if (fragmentShaderVersion == 100) + { + return true; + } + + // EXT_blend_func_extended doesn't specify anything related to binding specific elements of an + // output array in explicit terms. + // + // Assuming fragData is an output array, you can defend the position that: + // P1) you must support binding "fragData" because it's specified + // P2) you must support querying "fragData[x]" because it's specified + // P3) you must support binding "fragData[0]" because it's a frequently used pattern + // + // Then you can make the leap of faith: + // P4) you must support binding "fragData[x]" because you support "fragData[0]" + // P5) you must support binding "fragData[x]" because you support querying "fragData[x]" + // + // The spec brings in the "world of arrays" when it mentions binding the arrays and the + // automatic binding. Thus it must be interpreted that the thing is not undefined, rather you + // must infer the only possible interpretation (?). Note again: this need of interpretation + // might be completely off of what GL spec logic is. + // + // The other complexity is that unless you implement this feature, it's hard to understand what + // should happen when the client invokes the feature. You cannot add an additional error as it + // is not specified. One can ignore it, but obviously it creates the discrepancies... + + std::vector reservedLocations; + + // Process any output API bindings for arrays that don't alias to the first element. + for (const auto &bindingPair : fragmentOutputLocations) + { + const std::string &name = bindingPair.first; + const ProgramBinding &binding = bindingPair.second; + + size_t nameLengthWithoutArrayIndex; + unsigned int arrayIndex = ParseArrayIndex(name, &nameLengthWithoutArrayIndex); + if (arrayIndex == 0 || arrayIndex == GL_INVALID_INDEX) + { + continue; + } + for (unsigned int outputVariableIndex = 0; outputVariableIndex < mOutputVariables.size(); + outputVariableIndex++) + { + const sh::ShaderVariable &outputVariable = mOutputVariables[outputVariableIndex]; + // Check that the binding corresponds to an output array and its array index fits. + if (outputVariable.isBuiltIn() || !outputVariable.isArray() || + !angle::BeginsWith(outputVariable.name, name, nameLengthWithoutArrayIndex) || + arrayIndex >= outputVariable.getOutermostArraySize()) + { + continue; + } + + // Get the API index that corresponds to this exact binding. + // This index may differ from the index used for the array's base. + std::vector &outputLocations = + fragmentOutputIndices.getBindingByName(name) == 1 ? mSecondaryOutputLocations + : mOutputLocations; + unsigned int location = binding.location; + VariableLocation locationInfo(arrayIndex, outputVariableIndex); + if (location >= outputLocations.size()) + { + outputLocations.resize(location + 1); + } + if (outputLocations[location].used()) + { + mInfoLog << "Location of variable " << outputVariable.name + << " conflicts with another variable."; + return false; + } + outputLocations[location] = locationInfo; + + // Note the array binding location so that it can be skipped later. + reservedLocations.push_back(locationInfo); + } + } + + // Reserve locations for output variables whose location is fixed in the shader or through the + // API. Otherwise, the remaining unallocated outputs will be processed later. + for (unsigned int outputVariableIndex = 0; outputVariableIndex < mOutputVariables.size(); + outputVariableIndex++) + { + const sh::ShaderVariable &outputVariable = mOutputVariables[outputVariableIndex]; + + // Don't store outputs for gl_FragDepth, gl_FragColor, etc. + if (outputVariable.isBuiltIn()) + continue; + + int fixedLocation = GetOutputLocationForLink(fragmentOutputLocations, outputVariable); + if (fixedLocation == -1) + { + // Here we're only reserving locations for variables whose location is fixed. + continue; + } + unsigned int baseLocation = static_cast(fixedLocation); + + std::vector &outputLocations = + IsOutputSecondaryForLink(fragmentOutputIndices, outputVariable) + ? mSecondaryOutputLocations + : mOutputLocations; + + // GLSL ES 3.10 section 4.3.6: Output variables cannot be arrays of arrays or arrays of + // structures, so we may use getBasicTypeElementCount(). + unsigned int elementCount = outputVariable.getBasicTypeElementCount(); + if (FindUsedOutputLocation(outputLocations, baseLocation, elementCount, reservedLocations, + outputVariableIndex)) + { + mInfoLog << "Location of variable " << outputVariable.name + << " conflicts with another variable."; + return false; + } + AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations, + outputVariableIndex, mOutputVariables[outputVariableIndex]); + } + + // Here we assign locations for the output variables that don't yet have them. Note that we're + // not necessarily able to fit the variables optimally, since then we might have to try + // different arrangements of output arrays. Now we just assign the locations in the order that + // we got the output variables. The spec isn't clear on what kind of algorithm is required for + // finding locations for the output variables, so this should be acceptable at least for now. + GLuint maxLocation = static_cast(caps.maxDrawBuffers); + if (!mSecondaryOutputLocations.empty()) + { + // EXT_blend_func_extended: Program outputs will be validated against + // MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT if there's even one output with index one. + maxLocation = caps.maxDualSourceDrawBuffers; + } + + for (unsigned int outputVariableIndex = 0; outputVariableIndex < mOutputVariables.size(); + outputVariableIndex++) + { + const sh::ShaderVariable &outputVariable = mOutputVariables[outputVariableIndex]; + + // Don't store outputs for gl_FragDepth, gl_FragColor, etc. + if (outputVariable.isBuiltIn()) + continue; + + int fixedLocation = GetOutputLocationForLink(fragmentOutputLocations, outputVariable); + std::vector &outputLocations = + IsOutputSecondaryForLink(fragmentOutputIndices, outputVariable) + ? mSecondaryOutputLocations + : mOutputLocations; + unsigned int baseLocation = 0; + unsigned int elementCount = outputVariable.getBasicTypeElementCount(); + if (fixedLocation != -1) + { + // Secondary inputs might have caused the max location to drop below what has already + // been explicitly assigned locations. Check for any fixed locations above the max + // that should cause linking to fail. + baseLocation = static_cast(fixedLocation); + } + else + { + // No fixed location, so try to fit the output in unassigned locations. + // Try baseLocations starting from 0 one at a time and see if the variable fits. + while (FindUsedOutputLocation(outputLocations, baseLocation, elementCount, + reservedLocations, outputVariableIndex)) + { + baseLocation++; + } + AssignOutputLocations(outputLocations, baseLocation, elementCount, reservedLocations, + outputVariableIndex, mOutputVariables[outputVariableIndex]); + } + + // Check for any elements assigned above the max location that are actually used. + if (baseLocation + elementCount > maxLocation && + (baseLocation >= maxLocation || + FindUsedOutputLocation(outputLocations, maxLocation, + baseLocation + elementCount - maxLocation, reservedLocations, + outputVariableIndex))) + { + // EXT_blend_func_extended: Linking can fail: + // "if the explicit binding assignments do not leave enough space for the linker to + // automatically assign a location for a varying out array, which requires multiple + // contiguous locations." + mInfoLog << "Could not fit output variable into available locations: " + << outputVariable.name; + return false; + } + } + + return true; +} + } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.h b/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.h --- a/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.h +++ b/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.h @@ -37,10 +37,11 @@ class InfoLog; struct InterfaceBlock; enum class LinkMismatchError; struct LinkedUniform; class ProgramState; +class ProgramPipelineState; class ProgramBindings; class ProgramAliasedBindings; class Shader; struct ShaderVariableBuffer; struct UnusedUniform; @@ -234,10 +235,23 @@ AtomicCounterBufferLinker atomicCounterBufferLinker; std::vector unusedUniforms; std::vector unusedInterfaceBlocks; }; +struct LinkingVariables final : private angle::NonCopyable +{ + LinkingVariables(const ProgramState &state); + LinkingVariables(const ProgramPipelineState &state); + ~LinkingVariables(); + + ShaderMap> outputVaryings; + ShaderMap> inputVaryings; + ShaderMap> uniforms; + ShaderMap> uniformBlocks; + ShaderBitSet isShaderStageUsedBitset; +}; + class CustomBlockLayoutEncoderFactory : angle::NonCopyable { public: virtual ~CustomBlockLayoutEncoderFactory() {} @@ -261,11 +275,13 @@ std::map &sizeMapOut) const; CustomBlockLayoutEncoderFactory *mCustomEncoderFactory; }; -bool LinkValidateProgramGlobalNames(InfoLog &infoLog, const HasAttachedShaders &programOrPipeline); +bool LinkValidateProgramGlobalNames(InfoLog &infoLog, + const ProgramExecutable &executable, + const LinkingVariables &linkingVariables); bool LinkValidateShaderInterfaceMatching(const std::vector &outputVaryings, const std::vector &inputVaryings, ShaderType frontShaderType, ShaderType backShaderType, int frontShaderVersion, diff --git a/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.cpp b/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.cpp --- a/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.cpp +++ b/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.cpp @@ -877,12 +877,12 @@ // Locations which have been allocated for an unused uniform. std::set ignoredLocations; int maxUniformLocation = -1; - // Gather uniform locations that have been set either using the bindUniformLocation API or by - // using a location layout qualifier and check conflicts between them. + // Gather uniform locations that have been set either using the bindUniformLocationCHROMIUM API + // or by using a location layout qualifier and check conflicts between them. if (!gatherUniformLocationsAndCheckConflicts(infoLog, uniformLocationBindings, &ignoredLocations, &maxUniformLocation)) { return false; } @@ -1403,10 +1403,43 @@ ProgramLinkedResources::ProgramLinkedResources() = default; ProgramLinkedResources::~ProgramLinkedResources() = default; +LinkingVariables::LinkingVariables(const ProgramState &state) +{ + for (ShaderType shaderType : kAllGraphicsShaderTypes) + { + Shader *shader = state.getAttachedShader(shaderType); + if (shader) + { + outputVaryings[shaderType] = shader->getOutputVaryings(); + inputVaryings[shaderType] = shader->getInputVaryings(); + uniforms[shaderType] = shader->getUniforms(); + uniformBlocks[shaderType] = shader->getUniformBlocks(); + isShaderStageUsedBitset.set(shaderType); + } + } +} + +LinkingVariables::LinkingVariables(const ProgramPipelineState &state) +{ + for (ShaderType shaderType : state.getExecutable().getLinkedShaderStages()) + { + const Program *program = state.getShaderProgram(shaderType); + ASSERT(program); + outputVaryings[shaderType] = program->getExecutable().getLinkedOutputVaryings(shaderType); + inputVaryings[shaderType] = program->getExecutable().getLinkedInputVaryings(shaderType); + uniforms[shaderType] = program->getState().getExecutable().getLinkedUniforms(shaderType); + uniformBlocks[shaderType] = + program->getState().getExecutable().getLinkedUniformBlocks(shaderType); + isShaderStageUsedBitset.set(shaderType); + } +} + +LinkingVariables::~LinkingVariables() = default; + void ProgramLinkedResources::init(std::vector *uniformBlocksOut, std::vector *uniformsOut, std::vector *shaderStorageBlocksOut, std::vector *bufferVariablesOut, std::vector *atomicCounterBuffersOut) @@ -1499,36 +1532,38 @@ bufferDataSize = dataOffset; } } } -// Note: this is broken for pipelines with modified/discarded shaders. http://anglebug.com/5506 -bool LinkValidateProgramGlobalNames(InfoLog &infoLog, const HasAttachedShaders &programOrPipeline) +bool LinkValidateProgramGlobalNames(InfoLog &infoLog, + const ProgramExecutable &executable, + const LinkingVariables &linkingVariables) { angle::HashMap uniformMap; using BlockAndFieldPair = std::pair; angle::HashMap> uniformBlockFieldMap; for (ShaderType shaderType : kAllGraphicsShaderTypes) { - Shader *shader = programOrPipeline.getAttachedShader(shaderType); - if (!shader) + if (!linkingVariables.isShaderStageUsedBitset[shaderType]) { continue; } // Build a map of Uniforms - const std::vector uniforms = shader->getUniforms(); + const std::vector &uniforms = linkingVariables.uniforms[shaderType]; for (const auto &uniform : uniforms) { uniformMap[uniform.name] = &uniform; } // Build a map of Uniform Blocks // This will also detect any field name conflicts between Uniform Blocks without instance // names - const std::vector &uniformBlocks = shader->getUniformBlocks(); + const std::vector &uniformBlocks = + linkingVariables.uniformBlocks[shaderType]; + for (const auto &uniformBlock : uniformBlocks) { // Only uniform blocks without an instance name can create a conflict with their field // names if (!uniformBlock.instanceName.empty()) @@ -1583,23 +1618,22 @@ } } } // Validate no uniform names conflict with attribute names - Shader *vertexShader = programOrPipeline.getAttachedShader(ShaderType::Vertex); - if (vertexShader) + if (linkingVariables.isShaderStageUsedBitset[ShaderType::Vertex]) { // ESSL 3.00.6 section 4.3.5: // If a uniform variable name is declared in one stage (e.g., a vertex shader) // but not in another (e.g., a fragment shader), then that name is still // available in the other stage for a different use. std::unordered_set uniforms; - for (const sh::ShaderVariable &uniform : vertexShader->getUniforms()) + for (const sh::ShaderVariable &uniform : linkingVariables.uniforms[ShaderType::Vertex]) { uniforms.insert(uniform.name); } - for (const auto &attrib : vertexShader->getActiveAttributes()) + for (const auto &attrib : executable.getProgramInputs()) { if (uniforms.count(attrib.name)) { infoLog << "Name conflicts between a uniform and an attribute: " << attrib.name; return false; diff --git a/gfx/angle/checkout/src/libANGLE/ProgramPipeline.h b/gfx/angle/checkout/src/libANGLE/ProgramPipeline.h --- a/gfx/angle/checkout/src/libANGLE/ProgramPipeline.h +++ b/gfx/angle/checkout/src/libANGLE/ProgramPipeline.h @@ -36,16 +36,11 @@ ProgramPipelineState(); ~ProgramPipelineState(); const std::string &getLabel() const; - const ProgramExecutable &getProgramExecutable() const - { - ASSERT(mExecutable); - return *mExecutable; - } - ProgramExecutable &getProgramExecutable() + ProgramExecutable &getExecutable() const { ASSERT(mExecutable); return *mExecutable; } @@ -90,11 +85,11 @@ }; class ProgramPipeline final : public RefCountObject, public LabeledObject, public angle::ObserverInterface, - public HasAttachedShaders + public angle::Subject { public: ProgramPipeline(rx::GLImplFactory *factory, ProgramPipelineID handle); ~ProgramPipeline() override; @@ -104,12 +99,11 @@ const std::string &getLabel() const override; const ProgramPipelineState &getState() const { return mState; } ProgramPipelineState &getState() { return mState; } - const ProgramExecutable &getExecutable() const { return mState.getProgramExecutable(); } - ProgramExecutable &getExecutable() { return mState.getProgramExecutable(); } + ProgramExecutable &getExecutable() const { return mState.getExecutable(); } rx::ProgramPipelineImpl *getImplementation() const; Program *getActiveShaderProgram() { return mState.getActiveShaderProgram(); } void activeShaderProgram(Program *shaderProgram); @@ -121,26 +115,26 @@ program->resolveLink(context); } return program; } - void useProgramStages(const Context *context, GLbitfield stages, Program *shaderProgram); + angle::Result useProgramStages(const Context *context, + GLbitfield stages, + Program *shaderProgram); Program *getShaderProgram(ShaderType shaderType) const { return mState.mPrograms[shaderType]; } void resetIsLinked() { mState.mIsLinked = false; } angle::Result link(const gl::Context *context); bool linkVaryings(InfoLog &infoLog) const; void validate(const gl::Context *context); GLboolean isValid() const { return mState.isValid(); } + bool isLinked() const { return mState.mIsLinked; } // ObserverInterface implementation. void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; - // HasAttachedShaders implementation - Shader *getAttachedShader(ShaderType shaderType) const override; - private: void updateLinkedShaderStages(); void updateExecutableAttributes(); void updateTransformFeedbackMembers(); void updateShaderStorageBlocks(); diff --git a/gfx/angle/checkout/src/libANGLE/ProgramPipeline.cpp b/gfx/angle/checkout/src/libANGLE/ProgramPipeline.cpp --- a/gfx/angle/checkout/src/libANGLE/ProgramPipeline.cpp +++ b/gfx/angle/checkout/src/libANGLE/ProgramPipeline.cpp @@ -122,12 +122,14 @@ { for (const ShaderType shaderType : mExecutable->getLinkedShaderStages()) { const Program *program = getShaderProgram(shaderType); ASSERT(program); - mExecutable->setActiveTextureMask(program->getExecutable().getActiveSamplersMask()); - mExecutable->setActiveImagesMask(program->getExecutable().getActiveImagesMask()); + mExecutable->setActiveTextureMask(mExecutable->getActiveSamplersMask() | + program->getExecutable().getActiveSamplersMask()); + mExecutable->setActiveImagesMask(mExecutable->getActiveImagesMask() | + program->getExecutable().getActiveImagesMask()); // Updates mActiveSamplerRefCounts, mActiveSamplerTypes, and mActiveSamplerFormats mExecutable->updateActiveSamplers(program->getState()); } } @@ -194,19 +196,20 @@ void ProgramPipeline::activeShaderProgram(Program *shaderProgram) { mState.activeShaderProgram(shaderProgram); } -void ProgramPipeline::useProgramStages(const Context *context, - GLbitfield stages, - Program *shaderProgram) +angle::Result ProgramPipeline::useProgramStages(const Context *context, + GLbitfield stages, + Program *shaderProgram) { mState.useProgramStages(context, stages, shaderProgram, &mProgramObserverBindings); updateLinkedShaderStages(); - updateExecutable(); mState.mIsLinked = false; + + return link(context); } void ProgramPipeline::updateLinkedShaderStages() { mState.mExecutable->resetLinkedShaderStages(); @@ -235,10 +238,11 @@ const ProgramExecutable &vertexExecutable = vertexProgram->getExecutable(); mState.mExecutable->mActiveAttribLocationsMask = vertexExecutable.mActiveAttribLocationsMask; mState.mExecutable->mMaxActiveAttribLocation = vertexExecutable.mMaxActiveAttribLocation; mState.mExecutable->mAttributesTypeMask = vertexExecutable.mAttributesTypeMask; mState.mExecutable->mAttributesMask = vertexExecutable.mAttributesMask; + mState.mExecutable->mProgramInputs = vertexExecutable.mProgramInputs; } void ProgramPipeline::updateTransformFeedbackMembers() { ShaderType lastVertexProcessingStage = @@ -258,82 +262,58 @@ lastPreFragmentExecutable.mLinkedTransformFeedbackVaryings; } void ProgramPipeline::updateShaderStorageBlocks() { - mState.mExecutable->mComputeShaderStorageBlocks.clear(); - mState.mExecutable->mGraphicsShaderStorageBlocks.clear(); + mState.mExecutable->mShaderStorageBlocks.clear(); // Only copy the storage blocks from each Program in the PPO once, since each Program could // contain multiple shader stages. ShaderBitSet handledStages; - for (const gl::ShaderType shaderType : kAllGraphicsShaderTypes) + for (const gl::ShaderType shaderType : gl::AllShaderTypes()) { const Program *shaderProgram = getShaderProgram(shaderType); if (shaderProgram && !handledStages.test(shaderType)) { // Only add each Program's blocks once. handledStages |= shaderProgram->getExecutable().getLinkedShaderStages(); for (const InterfaceBlock &block : shaderProgram->getExecutable().getShaderStorageBlocks()) { - mState.mExecutable->mGraphicsShaderStorageBlocks.emplace_back(block); + mState.mExecutable->mShaderStorageBlocks.emplace_back(block); } } } - - const Program *computeProgram = getShaderProgram(ShaderType::Compute); - if (computeProgram) - { - for (const InterfaceBlock &block : computeProgram->getExecutable().getShaderStorageBlocks()) - { - mState.mExecutable->mComputeShaderStorageBlocks.emplace_back(block); - } - } } void ProgramPipeline::updateImageBindings() { - mState.mExecutable->mComputeImageBindings.clear(); - mState.mExecutable->mGraphicsImageBindings.clear(); + mState.mExecutable->mImageBindings.clear(); mState.mExecutable->mActiveImageShaderBits.fill({}); // Only copy the storage blocks from each Program in the PPO once, since each Program could // contain multiple shader stages. ShaderBitSet handledStages; - for (const gl::ShaderType shaderType : kAllGraphicsShaderTypes) + for (const gl::ShaderType shaderType : gl::AllShaderTypes()) { const Program *shaderProgram = getShaderProgram(shaderType); if (shaderProgram && !handledStages.test(shaderType)) { // Only add each Program's blocks once. handledStages |= shaderProgram->getExecutable().getLinkedShaderStages(); for (const ImageBinding &imageBinding : shaderProgram->getState().getImageBindings()) { - mState.mExecutable->mGraphicsImageBindings.emplace_back(imageBinding); + mState.mExecutable->mImageBindings.emplace_back(imageBinding); } mState.mExecutable->updateActiveImages(shaderProgram->getExecutable()); } } - - const Program *computeProgram = getShaderProgram(ShaderType::Compute); - if (computeProgram) - { - for (const ImageBinding &imageBinding : computeProgram->getState().getImageBindings()) - { - mState.mExecutable->mComputeImageBindings.emplace_back(imageBinding); - } - - mState.mExecutable->setIsCompute(true); - mState.mExecutable->updateActiveImages(computeProgram->getExecutable()); - mState.mExecutable->setIsCompute(false); - } } void ProgramPipeline::updateExecutableGeometryProperties() { Program *geometryProgram = getShaderProgram(gl::ShaderType::Geometry); @@ -415,80 +395,47 @@ } void ProgramPipeline::updateHasBooleans() { // Need to check all of the shader stages, not just linked, so we handle Compute correctly. - for (const gl::ShaderType shaderType : kAllGraphicsShaderTypes) + for (const gl::ShaderType shaderType : gl::AllShaderTypes()) { const Program *shaderProgram = getShaderProgram(shaderType); if (shaderProgram) { const ProgramExecutable &executable = shaderProgram->getExecutable(); if (executable.hasUniformBuffers()) { - mState.mExecutable->mPipelineHasGraphicsUniformBuffers = true; + mState.mExecutable->mPipelineHasUniformBuffers = true; } - if (executable.hasGraphicsStorageBuffers()) + if (executable.hasStorageBuffers()) { - mState.mExecutable->mPipelineHasGraphicsStorageBuffers = true; + mState.mExecutable->mPipelineHasStorageBuffers = true; } if (executable.hasAtomicCounterBuffers()) { - mState.mExecutable->mPipelineHasGraphicsAtomicCounterBuffers = true; + mState.mExecutable->mPipelineHasAtomicCounterBuffers = true; } if (executable.hasDefaultUniforms()) { - mState.mExecutable->mPipelineHasGraphicsDefaultUniforms = true; + mState.mExecutable->mPipelineHasDefaultUniforms = true; } if (executable.hasTextures()) { - mState.mExecutable->mPipelineHasGraphicsTextures = true; - } - if (executable.hasGraphicsImages()) - { - mState.mExecutable->mPipelineHasGraphicsImages = true; + mState.mExecutable->mPipelineHasTextures = true; } - } - } - - const Program *computeProgram = getShaderProgram(ShaderType::Compute); - if (computeProgram) - { - const ProgramExecutable &executable = computeProgram->getExecutable(); - - if (executable.hasUniformBuffers()) - { - mState.mExecutable->mPipelineHasComputeUniformBuffers = true; - } - if (executable.hasComputeStorageBuffers()) - { - mState.mExecutable->mPipelineHasComputeStorageBuffers = true; - } - if (executable.hasAtomicCounterBuffers()) - { - mState.mExecutable->mPipelineHasComputeAtomicCounterBuffers = true; - } - if (executable.hasDefaultUniforms()) - { - mState.mExecutable->mPipelineHasComputeDefaultUniforms = true; - } - if (executable.hasTextures()) - { - mState.mExecutable->mPipelineHasComputeTextures = true; - } - if (executable.hasComputeImages()) - { - mState.mExecutable->mPipelineHasComputeImages = true; + if (executable.hasImages()) + { + mState.mExecutable->mPipelineHasImages = true; + } } } } void ProgramPipeline::updateExecutable() { - mState.mExecutable->reset(); - // Vertex Shader ProgramExecutable properties updateExecutableAttributes(); updateTransformFeedbackMembers(); updateShaderStorageBlocks(); updateImageBindings(); @@ -520,34 +467,57 @@ return angle::Result::Continue; } ProgramMergedVaryings mergedVaryings; ProgramVaryingPacking varyingPacking; + LinkingVariables linkingVariables(mState); - if (!getExecutable().isCompute()) + mState.mExecutable->reset(); + + if (mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Vertex)) { InfoLog &infoLog = mState.mExecutable->getInfoLog(); infoLog.reset(); if (!linkVaryings(infoLog)) { return angle::Result::Stop; } - if (!LinkValidateProgramGlobalNames(infoLog, *this)) + if (!LinkValidateProgramGlobalNames(infoLog, getExecutable(), linkingVariables)) { return angle::Result::Stop; } - mergedVaryings = GetMergedVaryingsFromShaders(*this, getExecutable()); + Program *fragmentShaderProgram = getShaderProgram(ShaderType::Fragment); + if (fragmentShaderProgram) + { + // We should also be validating image uniforms and SSBOs. + const int combinedImageUniforms = 0; + const int combinedShaderStorageBlocks = 0; + const ProgramExecutable &fragmentExecutable = fragmentShaderProgram->getExecutable(); + if (!mState.mExecutable->linkValidateOutputVariables( + context->getCaps(), context->getExtensions(), context->getClientVersion(), + combinedImageUniforms, combinedShaderStorageBlocks, + fragmentExecutable.getOutputVariables(), + fragmentExecutable.getLinkedShaderVersion(ShaderType::Fragment), + ProgramAliasedBindings(), ProgramAliasedBindings())) + { + return angle::Result::Continue; + } + } + mergedVaryings = GetMergedVaryingsFromLinkingVariables(linkingVariables); // If separable program objects are in use, the set of attributes captured is taken // from the program object active on the last vertex processing stage. ShaderType lastVertexProcessingStage = gl::GetLastPreFragmentStage(getExecutable().getLinkedShaderStages()); if (lastVertexProcessingStage == ShaderType::InvalidEnum) { - return angle::Result::Stop; + // If there is no active program for the vertex or fragment shader stages, the results + // of vertex and fragment shader execution will respectively be undefined. However, + // this is not an error. + return angle::Result::Continue; } Program *tfProgram = getShaderProgram(lastVertexProcessingStage); ASSERT(tfProgram); @@ -557,32 +527,43 @@ } const std::vector &transformFeedbackVaryingNames = tfProgram->getState().getTransformFeedbackVaryingNames(); - if (!mState.mExecutable->linkMergedVaryings(context, *this, mergedVaryings, - transformFeedbackVaryingNames, false, - &varyingPacking)) + if (!mState.mExecutable->linkMergedVaryings(context, mergedVaryings, + transformFeedbackVaryingNames, linkingVariables, + false, &varyingPacking)) { return angle::Result::Stop; } } - ANGLE_TRY(getImplementation()->link(context, mergedVaryings, varyingPacking)); + if (mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Vertex) || + mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Compute)) + { + ANGLE_TRY(getImplementation()->link(context, mergedVaryings, varyingPacking)); + } + + mState.mExecutable->mActiveSamplerRefCounts.fill(0); + updateExecutable(); mState.mIsLinked = true; + onStateChange(angle::SubjectMessage::SubjectChanged); return angle::Result::Continue; } bool ProgramPipeline::linkVaryings(InfoLog &infoLog) const { ShaderType previousShaderType = ShaderType::InvalidEnum; - for (ShaderType shaderType : getExecutable().getLinkedShaderStages()) + for (ShaderType shaderType : kAllGraphicsShaderTypes) { Program *program = getShaderProgram(shaderType); - ASSERT(program); + if (!program) + { + continue; + } ProgramExecutable &executable = program->getExecutable(); if (previousShaderType != ShaderType::InvalidEnum) { Program *previousProgram = getShaderProgram(previousShaderType); @@ -607,11 +588,11 @@ // can be redeclared in Geometry or Tessellation shaders as well. Program *vertexProgram = mState.mPrograms[ShaderType::Vertex]; Program *fragmentProgram = mState.mPrograms[ShaderType::Fragment]; if (!vertexProgram || !fragmentProgram) { - return false; + return true; } ProgramExecutable &vertexExecutable = vertexProgram->getExecutable(); ProgramExecutable &fragmentExecutable = fragmentProgram->getExecutable(); return LinkValidateBuiltInVaryings( vertexExecutable.getLinkedOutputVaryings(ShaderType::Vertex), @@ -649,10 +630,19 @@ return; } } } + intptr_t drawStatesError = context->getStateCache().getBasicDrawStatesError(context); + if (drawStatesError) + { + mState.mValid = false; + const char *errorMessage = reinterpret_cast(drawStatesError); + infoLog << errorMessage << "\n"; + return; + } + if (!linkVaryings(infoLog)) { mState.mValid = false; for (const ShaderType shaderType : mState.mExecutable->getLinkedShaderStages()) @@ -672,28 +662,21 @@ void ProgramPipeline::onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) { switch (message) { case angle::SubjectMessage::ProgramTextureOrImageBindingChanged: - mState.mIsLinked = false; mState.mExecutable->mActiveSamplerRefCounts.fill(0); mState.updateExecutableTextures(); break; case angle::SubjectMessage::ProgramRelinked: mState.mIsLinked = false; - updateExecutable(); + onStateChange(angle::SubjectMessage::ProgramRelinked); break; case angle::SubjectMessage::SamplerUniformsUpdated: - getExecutable().resetCachedValidateSamplersResult(); + mState.mExecutable->resetCachedValidateSamplersResult(); break; default: UNREACHABLE(); break; } } - -Shader *ProgramPipeline::getAttachedShader(ShaderType shaderType) const -{ - const Program *program = mState.mPrograms[shaderType]; - return program ? program->getAttachedShader(shaderType) : nullptr; -} } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/RefCountObject.h b/gfx/angle/checkout/src/libANGLE/RefCountObject.h --- a/gfx/angle/checkout/src/libANGLE/RefCountObject.h +++ b/gfx/angle/checkout/src/libANGLE/RefCountObject.h @@ -54,10 +54,54 @@ mutable size_t mRefCount; }; template +class RefCountObjectReleaser : angle::NonCopyable +{ + public: + using ContextType = ContextT; + using ErrorType = ErrorT; + + RefCountObjectReleaser() {} + RefCountObjectReleaser(const ContextType *context, ObjectType *object) + : mContext(context), mObject(object) + {} + + RefCountObjectReleaser(RefCountObjectReleaser &&other) + : mContext(other.mContext), mObject(other.mObject) + { + other.mContext = nullptr; + other.mObject = nullptr; + } + + RefCountObjectReleaser &operator=(RefCountObjectReleaser &&other) + { + mContext = other.mContext; + mObject = other.mObject; + + other.mContext = nullptr; + other.mObject = nullptr; + + return *this; + } + + ~RefCountObjectReleaser() + { + if (mObject) + { + reinterpret_cast *>(mObject)->release(mContext); + mObject = nullptr; + } + } + + private: + const ContextType *mContext = nullptr; + ObjectType *mObject = nullptr; +}; + +template class BindingPointer { public: using ContextType = ContextT; using ErrorType = ErrorT; @@ -91,11 +135,12 @@ // Objects have to be released before the resource manager is destroyed, so they must be // explicitly cleaned up. ASSERT(mObject == nullptr); } - void set(const ContextType *context, ObjectType *newObject) + RefCountObjectReleaser set(const ContextType *context, + ObjectType *newObject) { // addRef first in case newObject == mObject and this is the last reference to it. if (newObject != nullptr) { reinterpret_cast *>(newObject)->addRef(); @@ -103,14 +148,11 @@ // Store the old pointer in a temporary so we can set the pointer before calling release. // Otherwise the object could still be referenced when its destructor is called. ObjectType *oldObject = mObject; mObject = newObject; - if (oldObject != nullptr) - { - reinterpret_cast *>(oldObject)->release(context); - } + return RefCountObjectReleaser(context, oldObject); } void assign(ObjectType *object) { mObject = object; } ObjectType *get() const { return mObject; } @@ -185,12 +227,11 @@ OffsetBindingPointer() : mOffset(0), mSize(0) {} void set(const ContextType *context, ObjectType *newObject, GLintptr offset, GLsizeiptr size) { set(context, newObject); - mOffset = offset; - mSize = size; + updateOffsetAndSize(newObject, offset, size); } GLintptr getOffset() const { return mOffset; } GLsizeiptr getSize() const { return mSize; } @@ -202,14 +243,20 @@ bool operator!=(const OffsetBindingPointer &other) const { return !(*this == other); } - void assign(ObjectType *object, GLintptr offset, GLsizeiptr size) + void assign(ObjectType *newObject, GLintptr offset, GLsizeiptr size) { - assign(object); - if (object) + assign(newObject); + updateOffsetAndSize(newObject, offset, size); + } + + private: + ANGLE_INLINE void updateOffsetAndSize(ObjectType *newObject, GLintptr offset, GLsizeiptr size) + { + if (newObject) { mOffset = offset; mSize = size; } else @@ -217,11 +264,10 @@ mOffset = 0; mSize = 0; } } - private: // Delete the unparameterized functions. This forces an explicit offset and size. using BindingPointer::set; using BindingPointer::assign; GLintptr mOffset; @@ -269,10 +315,13 @@ class Display; using RefCountObject = angle::RefCountObject; template +using RefCountObjectReleaser = angle::RefCountObjectReleaser; + +template using BindingPointer = angle::BindingPointer; } // namespace egl #endif // LIBANGLE_REFCOUNTOBJECT_H_ diff --git a/gfx/angle/checkout/src/libANGLE/Renderbuffer.h b/gfx/angle/checkout/src/libANGLE/Renderbuffer.h --- a/gfx/angle/checkout/src/libANGLE/Renderbuffer.h +++ b/gfx/angle/checkout/src/libANGLE/Renderbuffer.h @@ -42,10 +42,11 @@ GLsizei getHeight() const; const Format &getFormat() const; GLsizei getSamples() const; MultisamplingMode getMultisamplingMode() const; InitState getInitState() const; + void setProtectedContent(bool hasProtectedContent); private: friend class Renderbuffer; void update(GLsizei width, @@ -58,10 +59,11 @@ GLsizei mWidth; GLsizei mHeight; Format mFormat; GLsizei mSamples; MultisamplingMode mMultisamplingMode; + bool mHasProtectedContent; // For robust resource init. InitState mInitState; }; @@ -81,11 +83,11 @@ angle::Result setStorage(const Context *context, GLenum internalformat, GLsizei width, GLsizei height); angle::Result setStorageMultisample(const Context *context, - GLsizei samples, + GLsizei samplesIn, GLenum internalformat, GLsizei width, GLsizei height, MultisamplingMode mode); angle::Result setStorageEGLImageTarget(const Context *context, egl::Image *imageTarget); diff --git a/gfx/angle/checkout/src/libANGLE/Renderbuffer.cpp b/gfx/angle/checkout/src/libANGLE/Renderbuffer.cpp --- a/gfx/angle/checkout/src/libANGLE/Renderbuffer.cpp +++ b/gfx/angle/checkout/src/libANGLE/Renderbuffer.cpp @@ -32,10 +32,11 @@ : mWidth(0), mHeight(0), mFormat(GL_RGBA4), mSamples(0), mMultisamplingMode(MultisamplingMode::Regular), + mHasProtectedContent(false), mInitState(InitState::Initialized) {} RenderbufferState::~RenderbufferState() {} @@ -74,16 +75,22 @@ const Format &format, GLsizei samples, MultisamplingMode multisamplingMode, InitState initState) { - mWidth = width; - mHeight = height; - mFormat = format; - mSamples = samples; - mMultisamplingMode = multisamplingMode; - mInitState = InitState::MayNeedInit; + mWidth = width; + mHeight = height; + mFormat = format; + mSamples = samples; + mMultisamplingMode = multisamplingMode; + mInitState = InitState::MayNeedInit; + mHasProtectedContent = false; +} + +void RenderbufferState::setProtectedContent(bool hasProtectedContent) +{ + mHasProtectedContent = hasProtectedContent; } // Renderbuffer implementation. Renderbuffer::Renderbuffer(rx::GLImplFactory *implFactory, RenderbufferID id) : RefCountObject(implFactory->generateSerial(), id), @@ -95,11 +102,12 @@ mImplObserverBinding.bind(mImplementation.get()); } void Renderbuffer::onDestroy(const Context *context) { - (void)(orphanImages(context)); + egl::RefCountObjectReleaser releaseImage; + (void)orphanImages(context, &releaseImage); if (mImplementation) { mImplementation->onDestroy(context); } @@ -120,32 +128,36 @@ angle::Result Renderbuffer::setStorage(const Context *context, GLenum internalformat, GLsizei width, GLsizei height) { - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); + ANGLE_TRY(mImplementation->setStorage(context, internalformat, width, height)); mState.update(width, height, Format(internalformat), 0, MultisamplingMode::Regular, InitState::MayNeedInit); onStateChange(angle::SubjectMessage::SubjectChanged); return angle::Result::Continue; } angle::Result Renderbuffer::setStorageMultisample(const Context *context, - GLsizei samples, + GLsizei samplesIn, GLenum internalformat, GLsizei width, GLsizei height, MultisamplingMode mode) { - ANGLE_TRY(orphanImages(context)); + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); - // Potentially adjust "samples" to a supported value + // Potentially adjust "samplesIn" to a supported value const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); - samples = formatCaps.getNearestSamples(samples); + GLsizei samples = formatCaps.getNearestSamples(samplesIn); ANGLE_TRY(mImplementation->setStorageMultisample(context, samples, internalformat, width, height, mode)); mState.update(width, height, Format(internalformat), samples, mode, InitState::MayNeedInit); @@ -154,18 +166,22 @@ return angle::Result::Continue; } angle::Result Renderbuffer::setStorageEGLImageTarget(const Context *context, egl::Image *image) { - ANGLE_TRY(orphanImages(context)); + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); + ANGLE_TRY(mImplementation->setStorageEGLImageTarget(context, image)); setTargetImage(context, image); mState.update(static_cast(image->getWidth()), static_cast(image->getHeight()), Format(image->getFormat()), 0, MultisamplingMode::Regular, image->sourceInitState()); + mState.setProtectedContent(image->hasProtectedContent()); + onStateChange(angle::SubjectMessage::SubjectChanged); return angle::Result::Continue; } diff --git a/gfx/angle/checkout/src/libANGLE/ResourceManager.cpp b/gfx/angle/checkout/src/libANGLE/ResourceManager.cpp --- a/gfx/angle/checkout/src/libANGLE/ResourceManager.cpp +++ b/gfx/angle/checkout/src/libANGLE/ResourceManager.cpp @@ -95,20 +95,17 @@ { ImplT::DeleteObject(context, resource); } } -// Unclear why Clang warns about weak vtables in this case. -ANGLE_DISABLE_WEAK_TEMPLATE_VTABLES_WARNING template class TypedResourceManager; template class TypedResourceManager; template class TypedResourceManager; template class TypedResourceManager; template class TypedResourceManager; template class TypedResourceManager; template class TypedResourceManager; -ANGLE_REENABLE_WEAK_TEMPLATE_VTABLES_WARNING // BufferManager Implementation. BufferManager::~BufferManager() = default; // static diff --git a/gfx/angle/checkout/src/libANGLE/Shader.h b/gfx/angle/checkout/src/libANGLE/Shader.h --- a/gfx/angle/checkout/src/libANGLE/Shader.h +++ b/gfx/angle/checkout/src/libANGLE/Shader.h @@ -245,21 +245,21 @@ } unsigned int getMaxComputeSharedMemory() const { return mMaxComputeSharedMemory; } bool hasBeenDeleted() const { return mDeleteStatus; } + void resolveCompile(); + private: struct CompilingState; ~Shader() override; static void GetSourceImpl(const std::string &source, GLsizei bufSize, GLsizei *length, char *buffer); - void resolveCompile(); - ShaderState mState; std::unique_ptr mImplementation; const gl::Limitations mRendererLimitations; const ShaderProgramID mHandle; const ShaderType mType; diff --git a/gfx/angle/checkout/src/libANGLE/Shader.cpp b/gfx/angle/checkout/src/libANGLE/Shader.cpp --- a/gfx/angle/checkout/src/libANGLE/Shader.cpp +++ b/gfx/angle/checkout/src/libANGLE/Shader.cpp @@ -345,20 +345,20 @@ ShCompileOptions options = (SH_OBJECT_CODE | SH_VARIABLES | SH_EMULATE_GL_DRAW_ID | SH_EMULATE_GL_BASE_VERTEX_BASE_INSTANCE); // Add default options to WebGL shaders to prevent unexpected behavior during // compilation. - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { options |= SH_INIT_GL_POSITION; options |= SH_LIMIT_CALL_STACK_DEPTH; options |= SH_LIMIT_EXPRESSION_COMPLEXITY; options |= SH_ENFORCE_PACKING_RESTRICTIONS; options |= SH_INIT_SHARED_VARIABLES; } - // Some targets (eg D3D11 Feature Level 9_3 and below) do not support non-constant loop + // Some targets (e.g. D3D11 Feature Level 9_3 and below) do not support non-constant loop // indexes in fragment shaders. Shader compilation will fail. To provide a better error // message we can instruct the compiler to pre-validate. if (mRendererLimitations.shadersRequireIndexedLoopValidation) { options |= SH_VALIDATE_LOOP_INDEXING; @@ -367,10 +367,16 @@ if (context->getFrontendFeatures().scalarizeVecAndMatConstructorArgs.enabled) { options |= SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS; } + if (context->getFrontendFeatures().forceInitShaderVariables.enabled) + { + options |= SH_INIT_OUTPUT_VARIABLES; + options |= SH_INITIALIZE_UNINITIALIZED_LOCALS; + } + mCurrentMaxComputeWorkGroupInvocations = static_cast(context->getCaps().maxComputeWorkGroupInvocations); mMaxComputeSharedMemory = context->getCaps().maxComputeSharedMemorySize; diff --git a/gfx/angle/checkout/src/libANGLE/State.h b/gfx/angle/checkout/src/libANGLE/State.h --- a/gfx/angle/checkout/src/libANGLE/State.h +++ b/gfx/angle/checkout/src/libANGLE/State.h @@ -94,34 +94,36 @@ SemaphoreManager *shareSemaphores, const OverlayType *overlay, const EGLenum clientType, const Version &clientVersion, bool debug, - bool bindGeneratesResource, + bool bindGeneratesResourceCHROMIUM, bool clientArraysEnabled, bool robustResourceInit, bool programBinaryCacheEnabled, - EGLenum contextPriority); + EGLenum contextPriority, + bool hasProtectedContent); ~State(); void initialize(Context *context); void reset(const Context *context); // Getters ContextID getContextID() const { return mID; } EGLenum getClientType() const { return mClientType; } EGLenum getContextPriority() const { return mContextPriority; } + bool hasProtectedContent() const { return mHasProtectedContent; } GLint getClientMajorVersion() const { return mClientVersion.major; } GLint getClientMinorVersion() const { return mClientVersion.minor; } const Version &getClientVersion() const { return mClientVersion; } const Caps &getCaps() const { return mCaps; } const TextureCapsMap &getTextureCaps() const { return mTextureCaps; } const Extensions &getExtensions() const { return mExtensions; } const Limitations &getLimitations() const { return mLimitations; } egl::ShareGroup *getShareGroup() const { return mShareGroup; } - bool isWebGL() const { return mExtensions.webglCompatibility; } + bool isWebGL() const { return mExtensions.webglCompatibilityANGLE; } bool isWebGL1() const { return (isWebGL() && mClientVersion.major == 2); } const TextureCaps &getTextureCap(GLenum internalFormat) const { @@ -407,14 +409,10 @@ void setActiveQuery(const Context *context, QueryType type, Query *query); QueryID getActiveQueryId(QueryType type) const; Query *getActiveQuery(QueryType type) const; // Program Pipeline binding manipulation - angle::Result useProgramStages(const Context *context, - ProgramPipeline *programPipeline, - GLbitfield stages, - Program *shaderProgram); angle::Result setProgramPipelineBinding(const Context *context, ProgramPipeline *pipeline); void detachProgramPipeline(const Context *context, ProgramPipelineID pipeline); //// Typed buffer binding point manipulation //// ANGLE_INLINE void setBufferBinding(const Context *context, BufferBinding target, Buffer *buffer) @@ -535,11 +533,11 @@ { mVertexArray->setVertexAttribBinding(context, attribIndex, bindingIndex); mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY); } - void setVertexBindingDivisor(GLuint bindingIndex, GLuint divisor); + void setVertexBindingDivisor(const Context *context, GLuint bindingIndex, GLuint divisor); // Pixel pack state manipulation void setPackAlignment(GLint alignment); GLint getPackAlignment() const { return mPack.alignment; } void setPackReverseRowOrder(bool reverseRowOrder); @@ -601,12 +599,11 @@ bool isRobustResourceInitEnabled() const { return mRobustResourceInit; } // Sets the dirty bit for the program executable. angle::Result onProgramExecutableChange(const Context *context, Program *program); // Sets the dirty bit for the program pipeline executable. - angle::Result onProgramPipelineExecutableChange(const Context *context, - ProgramPipeline *program); + angle::Result onProgramPipelineExecutableChange(const Context *context); enum DirtyBitType { // Note: process draw framebuffer binding first, so that other dirty bits whose effect // depend on the current draw framebuffer are not processed while the old framebuffer is @@ -702,16 +699,16 @@ DIRTY_OBJECT_ACTIVE_TEXTURES, // Top-level dirty bit. Also see mDirtyActiveTextures. DIRTY_OBJECT_TEXTURES_INIT, DIRTY_OBJECT_IMAGES_INIT, DIRTY_OBJECT_READ_ATTACHMENTS, DIRTY_OBJECT_DRAW_ATTACHMENTS, - DIRTY_OBJECT_READ_FRAMEBUFFER, - DIRTY_OBJECT_DRAW_FRAMEBUFFER, DIRTY_OBJECT_VERTEX_ARRAY, DIRTY_OBJECT_TEXTURES, // Top-level dirty bit. Also see mDirtyTextures. DIRTY_OBJECT_IMAGES, // Top-level dirty bit. Also see mDirtyImages. DIRTY_OBJECT_SAMPLERS, // Top-level dirty bit. Also see mDirtySamplers. + DIRTY_OBJECT_READ_FRAMEBUFFER, + DIRTY_OBJECT_DRAW_FRAMEBUFFER, DIRTY_OBJECT_PROGRAM, DIRTY_OBJECT_UNKNOWN, DIRTY_OBJECT_MAX = DIRTY_OBJECT_UNKNOWN, }; @@ -778,10 +775,12 @@ void onActiveTextureStateChange(const Context *context, size_t textureUnit); void onImageStateChange(const Context *context, size_t unit); void onUniformBufferStateChange(size_t uniformBufferIndex); + void onAtomicCounterBufferStateChange(size_t atomicCounterBufferIndex); + void onShaderStorageBufferStateChange(size_t shaderStorageBufferIndex); bool isCurrentTransformFeedback(const TransformFeedback *tf) const { return tf == mTransformFeedback.get(); } @@ -846,13 +845,18 @@ { return *mShaderProgramManager; } const SyncManager &getSyncManagerForCapture() const { return *mSyncManager; } const SamplerManager &getSamplerManagerForCapture() const { return *mSamplerManager; } + const ProgramPipelineManager *getProgramPipelineManagerForCapture() const + { + return mProgramPipelineManager; + } const SamplerBindingVector &getSamplerBindingsForCapture() const { return mSamplers; } const ActiveQueryMap &getActiveQueriesForCapture() const { return mActiveQueries; } + void initializeForCapture(const Context *context); bool hasConstantAlphaBlendFunc() const { return (mBlendFuncConstantAlphaDrawBuffers & mBlendStateExt.mEnabledMask).any(); } @@ -904,15 +908,10 @@ return mBlendFuncConstantColorDrawBuffers; } const std::vector &getImageUnits() const { return mImageUnits; } - const ProgramPipelineManager *getProgramPipelineManagerForCapture() const - { - return mProgramPipelineManager; - } - private: friend class Context; void unsetActiveTextures(const ActiveTextureMask &textureMask); void setActiveTextureDirty(size_t textureIndex, Texture *texture); @@ -941,13 +940,13 @@ angle::Result syncProgram(const Context *context, Command command); using DirtyObjectHandler = angle::Result (State::*)(const Context *context, Command command); static constexpr DirtyObjectHandler kDirtyObjectHandlers[DIRTY_OBJECT_MAX] = { &State::syncActiveTextures, &State::syncTexturesInit, &State::syncImagesInit, - &State::syncReadAttachments, &State::syncDrawAttachments, &State::syncReadFramebuffer, - &State::syncDrawFramebuffer, &State::syncVertexArray, &State::syncTextures, - &State::syncImages, &State::syncSamplers, &State::syncProgram}; + &State::syncReadAttachments, &State::syncDrawAttachments, &State::syncVertexArray, + &State::syncTextures, &State::syncImages, &State::syncSamplers, + &State::syncReadFramebuffer, &State::syncDrawFramebuffer, &State::syncProgram}; // Robust init must happen before Framebuffer init for the Vulkan back-end. static_assert(DIRTY_OBJECT_ACTIVE_TEXTURES < DIRTY_OBJECT_TEXTURES_INIT, "init order"); static_assert(DIRTY_OBJECT_TEXTURES_INIT < DIRTY_OBJECT_DRAW_FRAMEBUFFER, "init order"); static_assert(DIRTY_OBJECT_IMAGES_INIT < DIRTY_OBJECT_DRAW_FRAMEBUFFER, "init order"); @@ -957,25 +956,33 @@ static_assert(DIRTY_OBJECT_ACTIVE_TEXTURES == 0, "check DIRTY_OBJECT_ACTIVE_TEXTURES index"); static_assert(DIRTY_OBJECT_TEXTURES_INIT == 1, "check DIRTY_OBJECT_TEXTURES_INIT index"); static_assert(DIRTY_OBJECT_IMAGES_INIT == 2, "check DIRTY_OBJECT_IMAGES_INIT index"); static_assert(DIRTY_OBJECT_READ_ATTACHMENTS == 3, "check DIRTY_OBJECT_READ_ATTACHMENTS index"); static_assert(DIRTY_OBJECT_DRAW_ATTACHMENTS == 4, "check DIRTY_OBJECT_DRAW_ATTACHMENTS index"); - static_assert(DIRTY_OBJECT_READ_FRAMEBUFFER == 5, "check DIRTY_OBJECT_READ_FRAMEBUFFER index"); - static_assert(DIRTY_OBJECT_DRAW_FRAMEBUFFER == 6, "check DIRTY_OBJECT_DRAW_FRAMEBUFFER index"); - static_assert(DIRTY_OBJECT_VERTEX_ARRAY == 7, "check DIRTY_OBJECT_VERTEX_ARRAY index"); - static_assert(DIRTY_OBJECT_TEXTURES == 8, "check DIRTY_OBJECT_TEXTURES index"); - static_assert(DIRTY_OBJECT_IMAGES == 9, "check DIRTY_OBJECT_IMAGES index"); - static_assert(DIRTY_OBJECT_SAMPLERS == 10, "check DIRTY_OBJECT_SAMPLERS index"); + static_assert(DIRTY_OBJECT_VERTEX_ARRAY == 5, "check DIRTY_OBJECT_VERTEX_ARRAY index"); + static_assert(DIRTY_OBJECT_TEXTURES == 6, "check DIRTY_OBJECT_TEXTURES index"); + static_assert(DIRTY_OBJECT_IMAGES == 7, "check DIRTY_OBJECT_IMAGES index"); + static_assert(DIRTY_OBJECT_SAMPLERS == 8, "check DIRTY_OBJECT_SAMPLERS index"); + static_assert(DIRTY_OBJECT_READ_FRAMEBUFFER == 9, "check DIRTY_OBJECT_READ_FRAMEBUFFER index"); + static_assert(DIRTY_OBJECT_DRAW_FRAMEBUFFER == 10, "check DIRTY_OBJECT_DRAW_FRAMEBUFFER index"); static_assert(DIRTY_OBJECT_PROGRAM == 11, "check DIRTY_OBJECT_PROGRAM index"); + // Container (FBO) object must handled after the texture so that if texture code adds dirty bit + // to container object, they will be picked up in the same draw call. + static_assert(DIRTY_OBJECT_TEXTURES < DIRTY_OBJECT_READ_FRAMEBUFFER, + "State::syncDirtyObjects order"); + static_assert(DIRTY_OBJECT_TEXTURES < DIRTY_OBJECT_DRAW_FRAMEBUFFER, + "State::syncDirtyObjects order"); + // Dispatch table for buffer update functions. static const angle::PackedEnumMap kBufferSetters; ContextID mID; EGLenum mClientType; EGLenum mContextPriority; + bool mHasProtectedContent; Version mClientVersion; // Caps to use for validation Caps mCaps; TextureCapsMap mTextureCaps; @@ -994,14 +1001,10 @@ FramebufferManager *mFramebufferManager; ProgramPipelineManager *mProgramPipelineManager; MemoryObjectManager *mMemoryObjectManager; SemaphoreManager *mSemaphoreManager; - // Cached values from Context's caps - GLuint mMaxDrawBuffers; - GLuint mMaxCombinedTextureImageUnits; - ColorF mColorClearValue; GLfloat mDepthClearValue; int mStencilClearValue; RasterizerState mRasterizer; @@ -1055,11 +1058,11 @@ VertexAttribVector mVertexAttribCurrentValues; // From glVertexAttrib VertexArray *mVertexArray; ComponentTypeMask mCurrentValuesTypeMask; // Texture and sampler bindings - size_t mActiveSampler; // Active texture unit selector - GL_TEXTURE0 + GLint mActiveSampler; // Active texture unit selector - GL_TEXTURE0 TextureBindingMap mSamplerTextures; // Active Textures Cache // --------------------- @@ -1149,10 +1152,25 @@ // OES_draw_buffers_indexed DrawBufferMask mBlendFuncConstantAlphaDrawBuffers; DrawBufferMask mBlendFuncConstantColorDrawBuffers; bool mNoSimultaneousConstantColorAndAlphaBlendFunc; + // Whether the indexed variants of setBlend* have been called. If so, the call to the + // non-indexed variants are not no-oped. + bool mSetBlendIndexedInvoked; + bool mSetBlendFactorsIndexedInvoked; + bool mSetBlendEquationsIndexedInvoked; + + // GL_EXT_primitive_bounding_box + GLfloat mBoundingBoxMinX; + GLfloat mBoundingBoxMinY; + GLfloat mBoundingBoxMinZ; + GLfloat mBoundingBoxMinW; + GLfloat mBoundingBoxMaxX; + GLfloat mBoundingBoxMaxY; + GLfloat mBoundingBoxMaxZ; + GLfloat mBoundingBoxMaxW; }; ANGLE_INLINE angle::Result State::syncDirtyObjects(const Context *context, const DirtyObjects &bitset, Command command) diff --git a/gfx/angle/checkout/src/libANGLE/State.cpp b/gfx/angle/checkout/src/libANGLE/State.cpp --- a/gfx/angle/checkout/src/libANGLE/State.cpp +++ b/gfx/angle/checkout/src/libANGLE/State.cpp @@ -116,14 +116,14 @@ uint32_t gIDCounter = 1; } // namespace template -ANGLE_INLINE void UpdateNonTFBufferBinding(const Context *context, - BindingT *binding, - Buffer *buffer, - ArgsT... args) +ANGLE_INLINE void UpdateNonTFBufferBindingWebGL(const Context *context, + BindingT *binding, + Buffer *buffer, + ArgsT... args) { Buffer *oldBuffer = binding->get(); if (oldBuffer) { oldBuffer->onNonTFBindingChanged(-1); @@ -136,11 +136,14 @@ buffer->onNonTFBindingChanged(1); } } template -void UpdateTFBufferBinding(const Context *context, BindingT *binding, bool indexed, ArgsT... args) +void UpdateTFBufferBindingWebGL(const Context *context, + BindingT *binding, + bool indexed, + ArgsT... args) { if (binding->get()) (*binding)->onTFBindingChanged(context, false, indexed); binding->set(context, args...); if (binding->get()) @@ -150,74 +153,118 @@ void UpdateBufferBinding(const Context *context, BindingPointer *binding, Buffer *buffer, BufferBinding target) { - if (target == BufferBinding::TransformFeedback) + if (context->isWebGL()) { - UpdateTFBufferBinding(context, binding, false, buffer); + if (target == BufferBinding::TransformFeedback) + { + UpdateTFBufferBindingWebGL(context, binding, false, buffer); + } + else + { + UpdateNonTFBufferBindingWebGL(context, binding, buffer); + } } else { - UpdateNonTFBufferBinding(context, binding, buffer); + binding->set(context, buffer); } } void UpdateIndexedBufferBinding(const Context *context, OffsetBindingPointer *binding, Buffer *buffer, BufferBinding target, GLintptr offset, GLsizeiptr size) { - if (target == BufferBinding::TransformFeedback) + if (context->isWebGL()) { - UpdateTFBufferBinding(context, binding, true, buffer, offset, size); + if (target == BufferBinding::TransformFeedback) + { + UpdateTFBufferBindingWebGL(context, binding, true, buffer, offset, size); + } + else + { + UpdateNonTFBufferBindingWebGL(context, binding, buffer, offset, size); + } } else { - UpdateNonTFBufferBinding(context, binding, buffer, offset, size); + binding->set(context, buffer, offset, size); } } // These template functions must be defined before they are instantiated in kBufferSetters. template void State::setGenericBufferBindingWithBit(const Context *context, Buffer *buffer) { - UpdateNonTFBufferBinding(context, &mBoundBuffers[Target], buffer); + if (context->isWebGL()) + { + UpdateNonTFBufferBindingWebGL(context, &mBoundBuffers[Target], buffer); + } + else + { + mBoundBuffers[Target].set(context, buffer); + } mDirtyBits.set(kBufferBindingDirtyBits[Target]); } template void State::setGenericBufferBinding(const Context *context, Buffer *buffer) { - UpdateNonTFBufferBinding(context, &mBoundBuffers[Target], buffer); + if (context->isWebGL()) + { + UpdateNonTFBufferBindingWebGL(context, &mBoundBuffers[Target], buffer); + } + else + { + mBoundBuffers[Target].set(context, buffer); + } } template <> void State::setGenericBufferBinding(const Context *context, Buffer *buffer) { - UpdateTFBufferBinding(context, &mBoundBuffers[BufferBinding::TransformFeedback], false, buffer); + if (context->isWebGL()) + { + UpdateTFBufferBindingWebGL(context, &mBoundBuffers[BufferBinding::TransformFeedback], false, + buffer); + } + else + { + mBoundBuffers[BufferBinding::TransformFeedback].set(context, buffer); + } } template <> void State::setGenericBufferBinding(const Context *context, Buffer *buffer) { Buffer *oldBuffer = mVertexArray->mState.mElementArrayBuffer.get(); if (oldBuffer) { oldBuffer->removeObserver(&mVertexArray->mState.mElementArrayBuffer); - oldBuffer->onNonTFBindingChanged(-1); + oldBuffer->removeContentsObserver(mVertexArray, kElementArrayBufferIndex); + if (context->isWebGL()) + { + oldBuffer->onNonTFBindingChanged(-1); + } oldBuffer->release(context); } mVertexArray->mState.mElementArrayBuffer.assign(buffer); if (buffer) { buffer->addObserver(&mVertexArray->mState.mElementArrayBuffer); - buffer->onNonTFBindingChanged(1); + buffer->addContentsObserver(mVertexArray, kElementArrayBufferIndex); + if (context->isWebGL()) + { + buffer->onNonTFBindingChanged(1); + } buffer->addRef(); } mVertexArray->mDirtyBits.set(VertexArray::DIRTY_BIT_ELEMENT_ARRAY_BUFFER); mVertexArray->mIndexRangeCache.invalidate(); mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY); @@ -287,18 +334,20 @@ SemaphoreManager *shareSemaphores, const OverlayType *overlay, const EGLenum clientType, const Version &clientVersion, bool debug, - bool bindGeneratesResource, + bool bindGeneratesResourceCHROMIUM, bool clientArraysEnabled, bool robustResourceInit, bool programBinaryCacheEnabled, - EGLenum contextPriority) + EGLenum contextPriority, + bool hasProtectedContent) : mID({gIDCounter++}), mClientType(clientType), mContextPriority(contextPriority), + mHasProtectedContent(hasProtectedContent), mClientVersion(clientVersion), mShareGroup(shareGroup), mBufferManager(AllocateOrGetSharedResourceManager(shareContextState, &State::mBufferManager)), mShaderProgramManager( AllocateOrGetSharedResourceManager(shareContextState, &State::mShaderProgramManager)), @@ -315,12 +364,10 @@ mMemoryObjectManager( AllocateOrGetSharedResourceManager(shareContextState, &State::mMemoryObjectManager)), mSemaphoreManager(AllocateOrGetSharedResourceManager(shareContextState, &State::mSemaphoreManager, shareSemaphores)), - mMaxDrawBuffers(0), - mMaxCombinedTextureImageUnits(0), mDepthClearValue(0), mStencilClearValue(0), mScissorTest(false), mSampleAlphaToCoverage(false), mSampleCoverage(false), @@ -334,11 +381,11 @@ mStencilBackRef(0), mLineWidth(0), mGenerateMipmapHint(GL_NONE), mTextureFilteringHint(GL_NONE), mFragmentShaderDerivativeHint(GL_NONE), - mBindGeneratesResource(bindGeneratesResource), + mBindGeneratesResource(bindGeneratesResourceCHROMIUM), mClientArraysEnabled(clientArraysEnabled), mNearZ(0), mFarZ(0), mReadFramebuffer(nullptr), mDrawFramebuffer(nullptr), @@ -356,25 +403,32 @@ mProgramBinaryCacheEnabled(programBinaryCacheEnabled), mTextureRectangleEnabled(true), mMaxShaderCompilerThreads(std::numeric_limits::max()), mPatchVertices(3), mOverlay(overlay), - mNoSimultaneousConstantColorAndAlphaBlendFunc(false) + mNoSimultaneousConstantColorAndAlphaBlendFunc(false), + mSetBlendIndexedInvoked(false), + mSetBlendFactorsIndexedInvoked(false), + mSetBlendEquationsIndexedInvoked(false), + mBoundingBoxMinX(-1.0f), + mBoundingBoxMinY(-1.0f), + mBoundingBoxMinZ(-1.0f), + mBoundingBoxMinW(1.0f), + mBoundingBoxMaxX(1.0f), + mBoundingBoxMaxY(1.0f), + mBoundingBoxMaxZ(1.0f), + mBoundingBoxMaxW(1.0f) {} State::~State() {} void State::initialize(Context *context) { - const Caps &caps = context->getCaps(); - const Extensions &extensions = context->getExtensions(); const Extensions &nativeExtensions = context->getImplementation()->getNativeExtensions(); const Version &clientVersion = context->getClientVersion(); - mMaxDrawBuffers = static_cast(caps.maxDrawBuffers); - mBlendStateExt = BlendStateExt(mMaxDrawBuffers); - mMaxCombinedTextureImageUnits = static_cast(caps.maxCombinedTextureImageUnits); + mBlendStateExt = BlendStateExt(mCaps.maxDrawBuffers); setColorClearValue(0.0f, 0.0f, 0.0f, 0.0f); mDepthClearValue = 1.0f; mStencilClearValue = 0; @@ -395,11 +449,11 @@ mSampleCoverage = false; mSampleCoverageValue = 1.0f; mSampleCoverageInvert = false; - mMaxSampleMaskWords = static_cast(caps.maxSampleMaskWords); + mMaxSampleMaskWords = static_cast(mCaps.maxSampleMaskWords); mSampleMask = false; mSampleMaskValues.fill(~GLbitfield(0)); mGenerateMipmapHint = GL_DONT_CARE; mTextureFilteringHint = GL_DONT_CARE; @@ -417,70 +471,71 @@ mClipControlOrigin = GL_LOWER_LEFT_EXT; mClipControlDepth = GL_NEGATIVE_ONE_TO_ONE_EXT; mActiveSampler = 0; - mVertexAttribCurrentValues.resize(caps.maxVertexAttributes); + mVertexAttribCurrentValues.resize(mCaps.maxVertexAttributes); // Set all indexes in state attributes type mask to float (default) for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++) { SetComponentTypeMask(ComponentType::Float, i, &mCurrentValuesTypeMask); } - mUniformBuffers.resize(caps.maxUniformBufferBindings); - - mSamplerTextures[TextureType::_2D].resize(caps.maxCombinedTextureImageUnits); - mSamplerTextures[TextureType::CubeMap].resize(caps.maxCombinedTextureImageUnits); + mUniformBuffers.resize(mCaps.maxUniformBufferBindings); + + mSamplerTextures[TextureType::_2D].resize(mCaps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::CubeMap].resize(mCaps.maxCombinedTextureImageUnits); if (clientVersion >= Version(3, 0) || nativeExtensions.texture3DOES) { - mSamplerTextures[TextureType::_3D].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::_3D].resize(mCaps.maxCombinedTextureImageUnits); } if (clientVersion >= Version(3, 0)) { - mSamplerTextures[TextureType::_2DArray].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::_2DArray].resize(mCaps.maxCombinedTextureImageUnits); } - if (clientVersion >= Version(3, 1) || nativeExtensions.textureMultisample) + if (clientVersion >= Version(3, 1) || nativeExtensions.textureMultisampleANGLE) { - mSamplerTextures[TextureType::_2DMultisample].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::_2DMultisample].resize(mCaps.maxCombinedTextureImageUnits); } if (clientVersion >= Version(3, 1)) { mSamplerTextures[TextureType::_2DMultisampleArray].resize( - caps.maxCombinedTextureImageUnits); - - mAtomicCounterBuffers.resize(caps.maxAtomicCounterBufferBindings); - mShaderStorageBuffers.resize(caps.maxShaderStorageBufferBindings); - mImageUnits.resize(caps.maxImageUnits); + mCaps.maxCombinedTextureImageUnits); + + mAtomicCounterBuffers.resize(mCaps.maxAtomicCounterBufferBindings); + mShaderStorageBuffers.resize(mCaps.maxShaderStorageBufferBindings); + mImageUnits.resize(mCaps.maxImageUnits); } - if (clientVersion >= Version(3, 2) || extensions.textureCubeMapArrayAny()) + if (clientVersion >= Version(3, 2) || mExtensions.textureCubeMapArrayAny()) { - mSamplerTextures[TextureType::CubeMapArray].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::CubeMapArray].resize(mCaps.maxCombinedTextureImageUnits); } - if (clientVersion >= Version(3, 2) || extensions.textureBufferAny()) + if (clientVersion >= Version(3, 2) || mExtensions.textureBufferAny()) { - mSamplerTextures[TextureType::Buffer].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::Buffer].resize(mCaps.maxCombinedTextureImageUnits); } - if (nativeExtensions.textureRectangle) + if (nativeExtensions.textureRectangleANGLE) { - mSamplerTextures[TextureType::Rectangle].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::Rectangle].resize(mCaps.maxCombinedTextureImageUnits); } - if (nativeExtensions.eglImageExternalOES || nativeExtensions.eglStreamConsumerExternalNV) + if (nativeExtensions.EGLImageExternalOES || nativeExtensions.EGLStreamConsumerExternalNV) { - mSamplerTextures[TextureType::External].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::External].resize(mCaps.maxCombinedTextureImageUnits); } - if (nativeExtensions.webglVideoTexture) + if (nativeExtensions.videoTextureWEBGL) { - mSamplerTextures[TextureType::VideoImage].resize(caps.maxCombinedTextureImageUnits); + mSamplerTextures[TextureType::VideoImage].resize(mCaps.maxCombinedTextureImageUnits); } - mCompleteTextureBindings.reserve(caps.maxCombinedTextureImageUnits); - for (int32_t textureIndex = 0; textureIndex < caps.maxCombinedTextureImageUnits; ++textureIndex) + mCompleteTextureBindings.reserve(mCaps.maxCombinedTextureImageUnits); + for (int32_t textureIndex = 0; textureIndex < mCaps.maxCombinedTextureImageUnits; + ++textureIndex) { mCompleteTextureBindings.emplace_back(context, textureIndex); } - mSamplers.resize(caps.maxCombinedTextureImageUnits); + mSamplers.resize(mCaps.maxCombinedTextureImageUnits); for (QueryType type : angle::AllEnums()) { mActiveQueries[type].set(context, nullptr); } @@ -491,20 +546,20 @@ mReadFramebuffer = nullptr; mDrawFramebuffer = nullptr; mPrimitiveRestart = false; - mDebug.setMaxLoggedMessages(extensions.maxDebugLoggedMessages); + mDebug.setMaxLoggedMessages(mCaps.maxDebugLoggedMessages); mMultiSampling = true; mSampleAlphaToOne = false; mCoverageModulation = GL_NONE; mNoSimultaneousConstantColorAndAlphaBlendFunc = context->getLimitations().noSimultaneousConstantColorAndAlphaBlendFunc || - context->getExtensions().webglCompatibility; + context->getExtensions().webglCompatibilityANGLE; // GLES1 emulation: Initialize state for GLES1 if version applies // TODO(http://anglebug.com/3745): When on desktop client only do this in compatibility profile if (clientVersion < Version(2, 0) || mClientType == EGL_OPENGL_API) { @@ -512,11 +567,11 @@ } } void State::reset(const Context *context) { - // Force a sync so clear doesn't end up deferencing stale pointers. + // Force a sync so clear doesn't end up dereferencing stale pointers. (void)syncActiveTextures(context, Command::Other); mActiveTexturesCache.clear(); for (TextureBindingVector &bindingVec : mSamplerTextures) { @@ -842,24 +897,35 @@ } } void State::setBlend(bool enabled) { - mBlendState.blend = enabled; - - mBlendStateExt.setEnabled(enabled); - mDirtyBits.set(DIRTY_BIT_BLEND_ENABLED); + if (mSetBlendIndexedInvoked || mBlendState.blend != enabled) + { + mBlendState.blend = enabled; + + mSetBlendIndexedInvoked = false; + mBlendStateExt.setEnabled(enabled); + mDirtyBits.set(DIRTY_BIT_BLEND_ENABLED); + } } void State::setBlendIndexed(bool enabled, GLuint index) { + mSetBlendIndexedInvoked = true; mBlendStateExt.setEnabledIndexed(index, enabled); mDirtyBits.set(DIRTY_BIT_BLEND_ENABLED); } void State::setBlendFactors(GLenum sourceRGB, GLenum destRGB, GLenum sourceAlpha, GLenum destAlpha) { + if (!mSetBlendFactorsIndexedInvoked && mBlendState.sourceBlendRGB == sourceRGB && + mBlendState.destBlendRGB == destRGB && mBlendState.sourceBlendAlpha == sourceAlpha && + mBlendState.destBlendAlpha == destAlpha) + { + return; + } mBlendState.sourceBlendRGB = sourceRGB; mBlendState.destBlendRGB = destRGB; mBlendState.sourceBlendAlpha = sourceAlpha; mBlendState.destBlendAlpha = destAlpha; @@ -883,10 +949,11 @@ { mBlendFuncConstantAlphaDrawBuffers.reset(); } } + mSetBlendFactorsIndexedInvoked = false; mBlendStateExt.setFactors(sourceRGB, destRGB, sourceAlpha, destAlpha); mDirtyBits.set(DIRTY_BIT_BLEND_FUNCS); } void State::setBlendFactorsIndexed(GLenum sourceRGB, @@ -899,48 +966,59 @@ { mBlendFuncConstantColorDrawBuffers.set(index, hasConstantColor(sourceRGB, destRGB)); mBlendFuncConstantAlphaDrawBuffers.set(index, hasConstantAlpha(sourceRGB, destRGB)); } + mSetBlendFactorsIndexedInvoked = true; mBlendStateExt.setFactorsIndexed(index, sourceRGB, destRGB, sourceAlpha, destAlpha); mDirtyBits.set(DIRTY_BIT_BLEND_FUNCS); } void State::setBlendColor(float red, float green, float blue, float alpha) { // In ES2 without render-to-float extensions, BlendColor clamps to [0,1] on store. // On ES3+, or with render-to-float exts enabled, it does not clamp on store. const bool isES2 = mClientVersion.major == 2; const bool hasFloatBlending = - mExtensions.colorBufferFloat || mExtensions.colorBufferHalfFloat || - mExtensions.colorBufferFloatRGB || mExtensions.colorBufferFloatRGBA; + mExtensions.colorBufferFloatEXT || mExtensions.colorBufferHalfFloatEXT || + mExtensions.colorBufferFloatRgbCHROMIUM || mExtensions.colorBufferFloatRgbaCHROMIUM; if (isES2 && !hasFloatBlending) { red = clamp01(red); green = clamp01(green); blue = clamp01(blue); alpha = clamp01(alpha); } - mBlendColor.red = red; - mBlendColor.green = green; - mBlendColor.blue = blue; - mBlendColor.alpha = alpha; - mDirtyBits.set(DIRTY_BIT_BLEND_COLOR); + if (mBlendColor.red != red || mBlendColor.green != green || mBlendColor.blue != blue || + mBlendColor.alpha != alpha) + { + mBlendColor.red = red; + mBlendColor.green = green; + mBlendColor.blue = blue; + mBlendColor.alpha = alpha; + mDirtyBits.set(DIRTY_BIT_BLEND_COLOR); + } } void State::setBlendEquation(GLenum rgbEquation, GLenum alphaEquation) { - mBlendState.blendEquationRGB = rgbEquation; - mBlendState.blendEquationAlpha = alphaEquation; - - mBlendStateExt.setEquations(rgbEquation, alphaEquation); - mDirtyBits.set(DIRTY_BIT_BLEND_EQUATIONS); + if (mSetBlendEquationsIndexedInvoked || mBlendState.blendEquationRGB != rgbEquation || + mBlendState.blendEquationAlpha != alphaEquation) + { + mBlendState.blendEquationRGB = rgbEquation; + mBlendState.blendEquationAlpha = alphaEquation; + + mSetBlendEquationsIndexedInvoked = false; + mBlendStateExt.setEquations(rgbEquation, alphaEquation); + mDirtyBits.set(DIRTY_BIT_BLEND_EQUATIONS); + } } void State::setBlendEquationIndexed(GLenum rgbEquation, GLenum alphaEquation, GLuint index) { + mSetBlendEquationsIndexedInvoked = true; mBlendStateExt.setEquationsIndexed(index, rgbEquation, alphaEquation); mDirtyBits.set(DIRTY_BIT_BLEND_EQUATIONS); } void State::setStencilTest(bool enabled) @@ -1787,16 +1865,27 @@ } void State::setVertexArrayBinding(const Context *context, VertexArray *vertexArray) { if (mVertexArray == vertexArray) + { return; - if (mVertexArray) - mVertexArray->onBindingChanged(context, -1); + } + + if (context->isWebGL()) + { + if (mVertexArray) + { + mVertexArray->onBindingChanged(context, -1); + } + if (vertexArray) + { + vertexArray->onBindingChanged(context, 1); + } + } + mVertexArray = vertexArray; - if (vertexArray) - vertexArray->onBindingChanged(context, 1); mDirtyBits.set(DIRTY_BIT_VERTEX_ARRAY_BINDING); if (mVertexArray && mVertexArray->hasAnyDirtyBit()) { mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY); @@ -1843,13 +1932,13 @@ getVertexArray()->setVertexAttribFormat(attribIndex, size, type, normalized, pureInteger, relativeOffset); mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY); } -void State::setVertexBindingDivisor(GLuint bindingIndex, GLuint divisor) +void State::setVertexBindingDivisor(const Context *context, GLuint bindingIndex, GLuint divisor) { - getVertexArray()->setVertexBindingDivisor(bindingIndex, divisor); + getVertexArray()->setVertexBindingDivisor(context, bindingIndex, divisor); mDirtyObjects.set(DIRTY_OBJECT_VERTEX_ARRAY); } angle::Result State::setProgram(const Context *context, Program *newProgram) { @@ -1917,21 +2006,10 @@ } return false; } -angle::Result State::useProgramStages(const Context *context, - ProgramPipeline *programPipeline, - GLbitfield stages, - Program *shaderProgram) -{ - programPipeline->useProgramStages(context, stages, shaderProgram); - ANGLE_TRY(onProgramPipelineExecutableChange(context, programPipeline)); - - return angle::Result::Continue; -} - angle::Result State::setProgramPipelineBinding(const Context *context, ProgramPipeline *pipeline) { if (mProgramPipeline.get() == pipeline) { return angle::Result::Continue; @@ -1957,15 +2035,10 @@ { mExecutable = nullptr; } } - if (mProgramPipeline.get()) - { - ANGLE_TRY(onProgramPipelineExecutableChange(context, mProgramPipeline.get())); - } - return angle::Result::Continue; } void State::detachProgramPipeline(const Context *context, ProgramPipelineID pipeline) { @@ -2086,14 +2159,10 @@ return mShaderStorageBuffers[index]; } angle::Result State::detachBuffer(Context *context, const Buffer *buffer) { - if (!buffer->isBound()) - { - return angle::Result::Continue; - } BufferID bufferID = buffer->id(); for (gl::BufferBinding target : angle::AllEnums()) { if (mBoundBuffers[target].id() == bufferID) { @@ -2405,10 +2474,13 @@ *params = GL_TRUE; break; case GL_CLIP_DEPTH_MODE_EXT: *params = GL_TRUE; break; + case GL_ROBUST_FRAGMENT_SHADER_OUTPUT_ANGLE: + *params = mExtensions.robustFragmentShaderOutputANGLE ? GL_TRUE : GL_FALSE; + break; default: UNREACHABLE(); break; } } @@ -2541,11 +2613,11 @@ angle::Result State::getIntegerv(const Context *context, GLenum pname, GLint *params) const { if (pname >= GL_DRAW_BUFFER0_EXT && pname <= GL_DRAW_BUFFER15_EXT) { size_t drawBuffer = (pname - GL_DRAW_BUFFER0_EXT); - ASSERT(drawBuffer < mMaxDrawBuffers); + ASSERT(drawBuffer < static_cast(mCaps.maxDrawBuffers)); Framebuffer *framebuffer = mDrawFramebuffer; // The default framebuffer may have fewer draw buffer states than a user-created one. The // user is always allowed to query up to GL_MAX_DRAWBUFFERS so just return GL_NONE here if // the draw buffer is out of range for this framebuffer. *params = drawBuffer < framebuffer->getDrawbufferStateCount() @@ -2819,67 +2891,67 @@ *params = 0; } } break; case GL_TEXTURE_BINDING_2D: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::_2D) .value; break; case GL_TEXTURE_BINDING_RECTANGLE_ANGLE: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::Rectangle) .value; break; case GL_TEXTURE_BINDING_CUBE_MAP: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::CubeMap) .value; break; case GL_TEXTURE_BINDING_3D: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::_3D) .value; break; case GL_TEXTURE_BINDING_2D_ARRAY: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::_2DArray) .value; break; case GL_TEXTURE_BINDING_2D_MULTISAMPLE: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::_2DMultisample) .value; break; case GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::_2DMultisampleArray) .value; break; case GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::CubeMapArray) .value; break; case GL_TEXTURE_BINDING_EXTERNAL_OES: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::External) .value; break; // GL_OES_texture_buffer case GL_TEXTURE_BINDING_BUFFER: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerTextureId(static_cast(mActiveSampler), TextureType::Buffer) .value; break; case GL_TEXTURE_BUFFER_BINDING: @@ -2910,11 +2982,11 @@ case GL_READ_BUFFER: *params = mReadFramebuffer->getReadBufferState(); break; case GL_SAMPLER_BINDING: - ASSERT(mActiveSampler < mMaxCombinedTextureImageUnits); + ASSERT(mActiveSampler < mCaps.maxCombinedTextureImageUnits); *params = getSamplerId(static_cast(mActiveSampler)).value; break; case GL_DEBUG_LOGGED_MESSAGES: *params = static_cast(mDebug.getMessageCount()); break; @@ -3193,12 +3265,12 @@ UNREACHABLE(); break; } } -// TODO(https://anglebug.com/3889): Remove this helper function after blink and chromium part -// refactory done. +// TODO(http://anglebug.com/3889): Remove this helper function after blink and chromium part +// refactor done. Texture *State::getTextureForActiveSampler(TextureType type, size_t index) { if (type != TextureType::VideoImage) { return mSamplerTextures[type][index].get(); @@ -3261,11 +3333,11 @@ } angle::Result State::syncImagesInit(const Context *context, Command command) { ASSERT(mRobustResourceInit); - ASSERT(mProgram); + ASSERT(mExecutable); for (size_t imageUnitIndex : mExecutable->getActiveImagesMask()) { Texture *texture = mImageUnits[imageUnitIndex].texture.get(); if (texture) { @@ -3488,19 +3560,19 @@ } return angle::Result::Continue; } -angle::Result State::onProgramPipelineExecutableChange(const Context *context, - ProgramPipeline *programPipeline) +angle::Result State::onProgramPipelineExecutableChange(const Context *context) { mDirtyBits.set(DIRTY_BIT_PROGRAM_EXECUTABLE); // Set any bound textures. - const ActiveTextureTypeArray &textureTypes = - programPipeline->getExecutable().getActiveSamplerTypes(); - for (size_t textureIndex : programPipeline->getExecutable().getActiveSamplersMask()) + const ProgramExecutable &executable = mProgramPipeline->getExecutable(); + const ActiveTextureTypeArray &textureTypes = executable.getActiveSamplerTypes(); + + for (size_t textureIndex : executable.getActiveSamplersMask()) { TextureType type = textureTypes[textureIndex]; // This can happen if there is a conflicting texture type. if (type == TextureType::InvalidEnum) @@ -3508,11 +3580,11 @@ Texture *texture = getTextureForActiveSampler(type, textureIndex); updateTextureBinding(context, textureIndex, texture); } - for (size_t imageUnitIndex : programPipeline->getExecutable().getActiveImagesMask()) + for (size_t imageUnitIndex : executable.getActiveImagesMask()) { Texture *image = mImageUnits[imageUnitIndex].texture.get(); if (!image) continue; @@ -3626,10 +3698,20 @@ { // This could be represented by a different dirty bit. Using the same one keeps it simple. mDirtyBits.set(DIRTY_BIT_UNIFORM_BUFFER_BINDINGS); } +void State::onAtomicCounterBufferStateChange(size_t atomicCounterBufferIndex) +{ + mDirtyBits.set(DIRTY_BIT_ATOMIC_COUNTER_BUFFER_BINDING); +} + +void State::onShaderStorageBufferStateChange(size_t shaderStorageBufferIndex) +{ + mDirtyBits.set(DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING); +} + AttributesMask State::getAndResetDirtyCurrentValues() const { AttributesMask retVal = mDirtyCurrentValues; mDirtyCurrentValues.reset(); return retVal; @@ -3640,8 +3722,19 @@ ExtendedDirtyBits retVal = mExtendedDirtyBits; mExtendedDirtyBits.reset(); return retVal; } +void State::initializeForCapture(const Context *context) +{ + mCaps = context->getCaps(); + mExtensions = context->getExtensions(); + + // This little kludge gets around the frame capture "constness". It should be safe because + // nothing in the context is modified in a non-compatible way during capture. + Context *mutableContext = const_cast(context); + initialize(mutableContext); +} + constexpr State::DirtyObjectHandler State::kDirtyObjectHandlers[DIRTY_OBJECT_MAX]; } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/Surface.h b/gfx/angle/checkout/src/libANGLE/Surface.h --- a/gfx/angle/checkout/src/libANGLE/Surface.h +++ b/gfx/angle/checkout/src/libANGLE/Surface.h @@ -47,10 +47,12 @@ { SurfaceState(const egl::Config *configIn, const AttributeMap &attributesIn); ~SurfaceState(); bool isRobustResourceInitEnabled() const; + bool hasProtectedContent() const; + EGLint getPreferredSwapInterval() const; EGLLabelKHR label; const egl::Config *config; AttributeMap attributes; @@ -130,10 +132,11 @@ bool getMipmapTexture() const; EGLint getMipmapLevel() const; EGLint getHorizontalResolution() const; EGLint getVerticalResolution() const; EGLenum getMultisampleResolve() const; + bool hasProtectedContent() const override; gl::Texture *getBoundTexture() const { return mTexture; } EGLint isFixedSize() const; @@ -148,14 +151,10 @@ void onAttach(const gl::Context *context, rx::Serial framebufferSerial) override {} void onDetach(const gl::Context *context, rx::Serial framebufferSerial) override {} GLuint getId() const override; - bool flexibleSurfaceCompatibilityRequested() const - { - return mFlexibleSurfaceCompatibilityRequested; - } EGLint getOrientation() const { return mOrientation; } bool directComposition() const { return mState.directComposition; } gl::InitState initState(const gl::ImageIndex &imageIndex) const override; @@ -186,14 +185,17 @@ // otherwise. const gl::Offset &getTextureOffset() const { return mTextureOffset; } Error getBufferAge(const gl::Context *context, EGLint *age) const; + void setRenderBuffer(EGLint value); + protected: Surface(EGLint surfaceType, const egl::Config *config, const AttributeMap &attributes, + bool forceRobustResourceInit, EGLenum buftype = EGL_NONE); ~Surface() override; rx::FramebufferAttachmentObjectImpl *getAttachmentImpl() const override; gl::Framebuffer *createDefaultFramebuffer(const Display *display); @@ -209,11 +211,10 @@ EGLint mType; EGLenum mBuftype; bool mPostSubBufferRequested; - bool mFlexibleSurfaceCompatibilityRequested; bool mLargestPbuffer; EGLenum mGLColorspace; EGLenum mVGAlphaFormat; EGLenum mVGColorspace; @@ -264,25 +265,28 @@ { public: WindowSurface(rx::EGLImplFactory *implFactory, const Config *config, EGLNativeWindowType window, - const AttributeMap &attribs); + const AttributeMap &attribs, + bool robustResourceInit); ~WindowSurface() override; }; class PbufferSurface final : public Surface { public: PbufferSurface(rx::EGLImplFactory *implFactory, const Config *config, - const AttributeMap &attribs); + const AttributeMap &attribs, + bool robustResourceInit); PbufferSurface(rx::EGLImplFactory *implFactory, const Config *config, EGLenum buftype, EGLClientBuffer clientBuffer, - const AttributeMap &attribs); + const AttributeMap &attribs, + bool robustResourceInit); protected: ~PbufferSurface() override; }; @@ -290,11 +294,12 @@ { public: PixmapSurface(rx::EGLImplFactory *implFactory, const Config *config, NativePixmapType nativePixmap, - const AttributeMap &attribs); + const AttributeMap &attribs, + bool robustResourceInit); protected: ~PixmapSurface() override; }; diff --git a/gfx/angle/checkout/src/libANGLE/Surface.cpp b/gfx/angle/checkout/src/libANGLE/Surface.cpp --- a/gfx/angle/checkout/src/libANGLE/Surface.cpp +++ b/gfx/angle/checkout/src/libANGLE/Surface.cpp @@ -46,13 +46,24 @@ bool SurfaceState::isRobustResourceInitEnabled() const { return attributes.get(EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE, EGL_FALSE) == EGL_TRUE; } +bool SurfaceState::hasProtectedContent() const +{ + return attributes.get(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE) == EGL_TRUE; +} + +EGLint SurfaceState::getPreferredSwapInterval() const +{ + return attributes.getAsInt(EGL_SWAP_INTERVAL_ANGLE, 1); +} + Surface::Surface(EGLint surfaceType, const egl::Config *config, const AttributeMap &attributes, + bool forceRobustResourceInit, EGLenum buftype) : FramebufferAttachmentObject(), mState(config, attributes), mImplementation(nullptr), mRefCount(0), @@ -85,12 +96,10 @@ mInitState(gl::InitState::Initialized), mImplObserverBinding(this, kSurfaceImplSubjectIndex) { mPostSubBufferRequested = (attributes.get(EGL_POST_SUB_BUFFER_SUPPORTED_NV, EGL_FALSE) == EGL_TRUE); - mFlexibleSurfaceCompatibilityRequested = - (attributes.get(EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, EGL_FALSE) == EGL_TRUE); if (mType == EGL_PBUFFER_BIT) { mLargestPbuffer = (attributes.get(EGL_LARGEST_PBUFFER, EGL_FALSE) == EGL_TRUE); } @@ -106,10 +115,11 @@ static_cast(attributes.get(EGL_VG_ALPHA_FORMAT, EGL_VG_ALPHA_FORMAT_NONPRE)); mVGColorspace = static_cast(attributes.get(EGL_VG_COLORSPACE, EGL_VG_COLORSPACE_sRGB)); mMipmapTexture = (attributes.get(EGL_MIPMAP_TEXTURE, EGL_FALSE) == EGL_TRUE); mRobustResourceInitialization = + forceRobustResourceInit || (attributes.get(EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE, EGL_FALSE) == EGL_TRUE); if (mRobustResourceInitialization) { mInitState = gl::InitState::MayNeedInit; } @@ -625,10 +635,15 @@ bool Surface::isTimestampsEnabled() const { return mState.timestampsEnabled; } +bool Surface::hasProtectedContent() const +{ + return mState.hasProtectedContent(); +} + const SupportedCompositorTiming &Surface::getSupportedCompositorTimings() const { return mState.supportedCompositorTimings; } @@ -672,47 +687,56 @@ UNREACHABLE(); break; } } +void Surface::setRenderBuffer(EGLint value) +{ + mRenderBuffer = value; +} + WindowSurface::WindowSurface(rx::EGLImplFactory *implFactory, const egl::Config *config, EGLNativeWindowType window, - const AttributeMap &attribs) - : Surface(EGL_WINDOW_BIT, config, attribs) + const AttributeMap &attribs, + bool robustResourceInit) + : Surface(EGL_WINDOW_BIT, config, attribs, robustResourceInit) { mImplementation = implFactory->createWindowSurface(mState, window, attribs); } WindowSurface::~WindowSurface() {} PbufferSurface::PbufferSurface(rx::EGLImplFactory *implFactory, const Config *config, - const AttributeMap &attribs) - : Surface(EGL_PBUFFER_BIT, config, attribs) + const AttributeMap &attribs, + bool robustResourceInit) + : Surface(EGL_PBUFFER_BIT, config, attribs, robustResourceInit) { mImplementation = implFactory->createPbufferSurface(mState, attribs); } PbufferSurface::PbufferSurface(rx::EGLImplFactory *implFactory, const Config *config, EGLenum buftype, EGLClientBuffer clientBuffer, - const AttributeMap &attribs) - : Surface(EGL_PBUFFER_BIT, config, attribs, buftype) + const AttributeMap &attribs, + bool robustResourceInit) + : Surface(EGL_PBUFFER_BIT, config, attribs, robustResourceInit, buftype) { mImplementation = implFactory->createPbufferFromClientBuffer(mState, buftype, clientBuffer, attribs); } PbufferSurface::~PbufferSurface() {} PixmapSurface::PixmapSurface(rx::EGLImplFactory *implFactory, const Config *config, NativePixmapType nativePixmap, - const AttributeMap &attribs) - : Surface(EGL_PIXMAP_BIT, config, attribs) + const AttributeMap &attribs, + bool robustResourceInit) + : Surface(EGL_PIXMAP_BIT, config, attribs, robustResourceInit) { mImplementation = implFactory->createPixmapSurface(mState, nativePixmap, attribs); } PixmapSurface::~PixmapSurface() {} diff --git a/gfx/angle/checkout/src/libANGLE/Texture.h b/gfx/angle/checkout/src/libANGLE/Texture.h --- a/gfx/angle/checkout/src/libANGLE/Texture.h +++ b/gfx/angle/checkout/src/libANGLE/Texture.h @@ -141,14 +141,16 @@ TextureType getType() const { return mType; } const SwizzleState &getSwizzleState() const { return mSwizzleState; } const SamplerState &getSamplerState() const { return mSamplerState; } GLenum getUsage() const { return mUsage; } + bool hasProtectedContent() const { return mHasProtectedContent; } GLenum getDepthStencilTextureMode() const { return mDepthStencilTextureMode; } bool isStencilMode() const { return mDepthStencilTextureMode == GL_STENCIL_INDEX; } bool hasBeenBoundAsImage() const { return mHasBeenBoundAsImage; } + bool hasBeenBoundAsAttachment() const { return mHasBeenBoundAsAttachment; } gl::SrgbOverride getSRGBOverride() const { return mSrgbOverride; } // Returns the desc of the base level. Only valid for cube-complete/mip-complete textures. const ImageDesc &getBaseLevelDesc() const; @@ -172,10 +174,12 @@ InitState getInitState() const { return mInitState; } const OffsetBindingPointer &getBuffer() const { return mBuffer; } + const std::string &getLabel() const { return mLabel; } + private: // Texture needs access to the ImageDesc functions. friend class Texture; friend bool operator==(const TextureState &a, const TextureState &b); @@ -213,17 +217,21 @@ GLuint mMaxLevel; GLenum mDepthStencilTextureMode; bool mHasBeenBoundAsImage; + bool mHasBeenBoundAsAttachment; bool mImmutableFormat; GLuint mImmutableLevels; // From GL_ANGLE_texture_usage GLenum mUsage; + // GL_EXT_protected_textures + bool mHasProtectedContent; + std::vector mImageDescs; // GLES1 emulation: Texture crop rectangle // For GL_OES_draw_texture Rectangle mCropRect; @@ -237,10 +245,11 @@ InitState mInitState; mutable SamplerFormat mCachedSamplerFormat; mutable GLenum mCachedSamplerCompareMode; mutable bool mCachedSamplerFormatValid; + std::string mLabel; }; bool operator==(const TextureState &a, const TextureState &b); bool operator!=(const TextureState &a, const TextureState &b); @@ -323,10 +332,13 @@ GLuint getImmutableLevels() const; void setUsage(const Context *context, GLenum usage); GLenum getUsage() const; + void setProtectedContent(Context *context, bool hasProtectedContent); + bool hasProtectedContent() const override; + const TextureState &getState() const { return mState; } void setBorderColor(const Context *context, const ColorGeneric &color); const ColorGeneric &getBorderColor() const; @@ -460,11 +472,11 @@ GLenum internalFormat, const Extents &size); angle::Result setStorageMultisample(Context *context, TextureType type, - GLsizei samples, + GLsizei samplesIn, GLint internalformat, const Extents &size, bool fixedSampleLocations); angle::Result setStorageExternalMemory(Context *context, @@ -512,10 +524,17 @@ GLint level, GLenum format, GLenum type, void *pixels); + angle::Result getCompressedTexImage(const Context *context, + const PixelPackState &packState, + Buffer *packBuffer, + TextureTarget target, + GLint level, + void *pixels); + rx::TextureImpl *getImplementation() const { return mTexture; } // FramebufferAttachmentObject implementation Extents getAttachmentSize(const ImageIndex &imageIndex) const override; Format getAttachmentFormat(GLenum binding, const ImageIndex &imageIndex) const override; @@ -589,22 +608,27 @@ DIRTY_BIT_MAX_LEVEL, DIRTY_BIT_DEPTH_STENCIL_TEXTURE_MODE, // Image state DIRTY_BIT_BOUND_AS_IMAGE, + DIRTY_BIT_BOUND_AS_ATTACHMENT, // Misc - DIRTY_BIT_LABEL, DIRTY_BIT_USAGE, DIRTY_BIT_IMPLEMENTATION, DIRTY_BIT_COUNT, }; using DirtyBits = angle::BitSet; angle::Result syncState(const Context *context, Command source); bool hasAnyDirtyBit() const { return mDirtyBits.any(); } + bool hasAnyDirtyBitExcludingBoundAsAttachmentBit() const + { + static constexpr DirtyBits kBoundAsAttachment = DirtyBits({DIRTY_BIT_BOUND_AS_ATTACHMENT}); + return mDirtyBits.any() && mDirtyBits != kBoundAsAttachment; + } // ObserverInterface implementation. void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; private: @@ -642,12 +666,10 @@ rx::TextureImpl *mTexture; angle::ObserverBinding mImplObserver; // For EXT_texture_buffer, observes buffer changes. angle::ObserverBinding mBufferObserver; - std::string mLabel; - egl::Surface *mBoundSurface; egl::Stream *mBoundStream; // We track all the serials of the Framebuffers this texture is attached to. Note that this // allows duplicates because different ranges of a Texture can be bound to the same Framebuffer. diff --git a/gfx/angle/checkout/src/libANGLE/Texture.cpp b/gfx/angle/checkout/src/libANGLE/Texture.cpp --- a/gfx/angle/checkout/src/libANGLE/Texture.cpp +++ b/gfx/angle/checkout/src/libANGLE/Texture.cpp @@ -139,13 +139,15 @@ mSrgbOverride(SrgbOverride::Default), mBaseLevel(0), mMaxLevel(kInitialMaxLevel), mDepthStencilTextureMode(GL_DEPTH_COMPONENT), mHasBeenBoundAsImage(false), + mHasBeenBoundAsAttachment(false), mImmutableFormat(false), mImmutableLevels(0), mUsage(GL_NONE), + mHasProtectedContent(false), mImageDescs((IMPLEMENTATION_MAX_TEXTURE_LEVELS + 1) * (type == TextureType::CubeMap ? 6 : 1)), mCropRect(0, 0, 0, 0), mGenerateMipmapHint(GL_FALSE), mInitState(InitState::Initialized), mCachedSamplerFormat(SamplerFormat::InvalidEnum), @@ -354,11 +356,11 @@ state.getExtensions()) && !IsPointSampled(samplerState)) { return false; } - bool npotSupport = state.getExtensions().textureNPOTOES || state.getClientMajorVersion() >= 3; + bool npotSupport = state.getExtensions().textureNpotOES || state.getClientMajorVersion() >= 3; if (!npotSupport) { if ((samplerState.getWrapS() != GL_CLAMP_TO_EDGE && samplerState.getWrapS() != GL_CLAMP_TO_BORDER && !isPow2(baseImageDesc.size.width)) || (samplerState.getWrapT() != GL_CLAMP_TO_EDGE && @@ -401,11 +403,11 @@ // Sampler object state which does not affect sampling for the type of texture bound // to a texture unit, such as TEXTURE_WRAP_R for an external texture, does not affect // completeness. if (mType == TextureType::External) { - if (!state.getExtensions().eglImageExternalWrapModesEXT) + if (!state.getExtensions().EGLImageExternalWrapModesEXT) { if (samplerState.getWrapS() != GL_CLAMP_TO_EDGE || samplerState.getWrapT() != GL_CLAMP_TO_EDGE) { return false; @@ -562,20 +564,40 @@ const GLuint baseLevel = getEffectiveBaseLevel(); const GLuint maxLevel = std::min(getEffectiveMaxLevel(), getMipmapMaxLevel()); // The mip chain will have either one or more sequential levels, or max levels, // but not a sparse one. - for (size_t descIndex = baseLevel; descIndex < mImageDescs.size();) + Optional expectedSize; + for (size_t enabledLevel = baseLevel; enabledLevel <= maxLevel; ++enabledLevel, ++levelCount) { - if (!mImageDescs[descIndex].size.empty()) + // Note: for cube textures, we only check the first face. + TextureTarget target = TextureTypeToTarget(mType, 0); + size_t descIndex = GetImageDescIndex(target, enabledLevel); + const Extents &levelSize = mImageDescs[descIndex].size; + + if (levelSize.empty()) + { + break; + } + if (expectedSize.valid()) { - levelCount++; + Extents newSize = expectedSize.value(); + newSize.width = std::max(1, newSize.width >> 1); + newSize.height = std::max(1, newSize.height >> 1); + + if (!IsArrayTextureType(mType)) + { + newSize.depth = std::max(1, newSize.depth >> 1); + } + + if (newSize != levelSize) + { + break; + } } - descIndex = (mType == TextureType::CubeMap) ? descIndex + 6 : descIndex + 1; + expectedSize = levelSize; } - // The original image already takes account into the levelCount. - levelCount = std::min(maxLevel - baseLevel + 1, levelCount); return levelCount; } ImageDesc::ImageDesc() @@ -631,13 +653,13 @@ // Scan for any uninitialized images. If there are none, set the init state of the entire // texture to initialized. The cost of the scan is only paid after doing image // initialization which is already very expensive. bool allImagesInitialized = true; - for (const ImageDesc &desc : mImageDescs) + for (const ImageDesc &initDesc : mImageDescs) { - if (desc.initState == InitState::MayNeedInit) + if (initDesc.initState == InitState::MayNeedInit) { allImagesInitialized = false; break; } } @@ -722,11 +744,10 @@ : RefCountObject(factory->generateSerial(), id), mState(type), mTexture(factory->createTexture(mState)), mImplObserver(this, rx::kTextureImageImplObserverMessageIndex), mBufferObserver(this, kBufferSubjectIndex), - mLabel(), mBoundSurface(nullptr), mBoundStream(nullptr) { mImplObserver.bind(mTexture); @@ -745,11 +766,12 @@ { mBoundStream->releaseTextures(); mBoundStream = nullptr; } - (void)(orphanImages(context)); + egl::RefCountObjectReleaser releaseImage; + (void)orphanImages(context, &releaseImage); mState.mBuffer.set(context, nullptr, 0, 0); if (mTexture) { @@ -762,17 +784,21 @@ SafeDelete(mTexture); } void Texture::setLabel(const Context *context, const std::string &label) { - mLabel = label; - signalDirtyState(DIRTY_BIT_LABEL); + mState.mLabel = label; + + if (mTexture) + { + mTexture->onLabelUpdate(); + } } const std::string &Texture::getLabel() const { - return mLabel; + return mState.mLabel; } void Texture::setSwizzleRed(const Context *context, GLenum swizzleRed) { mState.mSwizzleState.swizzleRed = swizzleRed; @@ -1044,10 +1070,20 @@ GLenum Texture::getUsage() const { return mState.mUsage; } +void Texture::setProtectedContent(Context *context, bool hasProtectedContent) +{ + mState.mHasProtectedContent = hasProtectedContent; +} + +bool Texture::hasProtectedContent() const +{ + return mState.mHasProtectedContent; +} + const TextureState &Texture::getTextureState() const { return mState; } @@ -1169,11 +1205,13 @@ { ASSERT(TextureTargetToType(target) == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ImageIndex index = ImageIndex::MakeFromTarget(target, level, size.depth); ANGLE_TRY(mTexture->setImage(context, index, internalFormat, size, format, type, unpackState, unpackBuffer, pixels)); @@ -1224,11 +1262,13 @@ { ASSERT(TextureTargetToType(target) == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ImageIndex index = ImageIndex::MakeFromTarget(target, level, size.depth); ANGLE_TRY(mTexture->setCompressedImage(context, index, internalFormat, size, unpackState, imageSize, pixels)); @@ -1273,11 +1313,13 @@ { ASSERT(TextureTargetToType(target) == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ImageIndex index = ImageIndex::MakeFromTarget(target, level, 1); const InternalFormat &internalFormatInfo = GetInternalFormatInfo(internalFormat, GL_UNSIGNED_BYTE); @@ -1438,11 +1480,13 @@ ASSERT(TextureTargetToType(target) == mState.mType); ASSERT(source->getType() != TextureType::CubeMap); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); // Initialize source texture. // Note: we don't have a way to notify which portions of the image changed currently. ANGLE_TRY(source->ensureInitialized(context)); @@ -1495,11 +1539,13 @@ angle::Result Texture::copyCompressedTexture(Context *context, const Texture *source) { // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ANGLE_TRY(mTexture->copyCompressedTexture(context, source)); ASSERT(source->getType() != TextureType::CubeMap && getType() != TextureType::CubeMap); const auto &sourceDesc = @@ -1517,11 +1563,13 @@ { ASSERT(type == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); mState.mImmutableFormat = true; mState.mImmutableLevels = static_cast(levels); mState.clearImageDescs(); mState.setImageDescChain(0, static_cast(levels - 1), size, Format(internalFormat), @@ -1551,11 +1599,13 @@ { ASSERT(TextureTargetToType(target) == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ImageIndex index = ImageIndex::MakeFromTarget(target, level, size.depth); ANGLE_TRY(mTexture->setImageExternal(context, index, internalFormat, size, format, type)); @@ -1569,24 +1619,26 @@ return angle::Result::Continue; } angle::Result Texture::setStorageMultisample(Context *context, TextureType type, - GLsizei samples, + GLsizei samplesIn, GLint internalFormat, const Extents &size, bool fixedSampleLocations) { ASSERT(type == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); // Potentially adjust "samples" to a supported value const TextureCaps &formatCaps = context->getTextureCaps().get(internalFormat); - samples = formatCaps.getNearestSamples(samples); + GLsizei samples = formatCaps.getNearestSamples(samplesIn); mState.mImmutableFormat = true; mState.mImmutableLevels = static_cast(1); mState.clearImageDescs(); mState.setImageDescChainMultisample(size, Format(internalFormat), samples, fixedSampleLocations, @@ -1612,11 +1664,13 @@ { ASSERT(type == mState.mType); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ANGLE_TRY(mTexture->setStorageExternalMemory(context, type, levels, internalFormat, size, memoryObject, offset, createFlags, usageFlags)); mState.mImmutableFormat = true; @@ -1642,24 +1696,33 @@ // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); // EGL_KHR_gl_image states that images are only orphaned when generating mipmaps if the texture // is not mip complete. + egl::RefCountObjectReleaser releaseImage; if (!isMipmapComplete()) { - ANGLE_TRY(orphanImages(context)); + ANGLE_TRY(orphanImages(context, &releaseImage)); } const GLuint baseLevel = mState.getEffectiveBaseLevel(); const GLuint maxLevel = mState.getMipmapMaxLevel(); if (maxLevel <= baseLevel) { return angle::Result::Continue; } - ANGLE_TRY(syncState(context, Command::GenerateMipmap)); + // If any dimension is zero, this is a no-op: + // + // > Otherwise, if level_base is not defined, or if any dimension is zero, all mipmap levels are + // > left unchanged. This is not an error. + const ImageDesc &baseImageInfo = mState.getImageDesc(mState.getBaseImageTarget(), baseLevel); + if (baseImageInfo.size.empty()) + { + return angle::Result::Continue; + } // Clear the base image(s) immediately if needed if (context->isRobustResourceInitEnabled()) { ImageIndexIterator it = @@ -1675,15 +1738,15 @@ ANGLE_TRY(initializeContents(context, index)); } } } + ANGLE_TRY(syncState(context, Command::GenerateMipmap)); ANGLE_TRY(mTexture->generateMipmap(context)); // Propagate the format and size of the base mip to the smaller ones. Cube maps are guaranteed // to have faces of the same size and format so any faces can be picked. - const ImageDesc &baseImageInfo = mState.getImageDesc(mState.getBaseImageTarget(), baseLevel); mState.setImageDescChain(baseLevel, maxLevel, baseImageInfo.size, baseImageInfo.format, InitState::Initialized); signalDirtyStorage(InitState::Initialized); @@ -1705,10 +1768,11 @@ // Set the image info to the size and format of the surface ASSERT(mState.mType == TextureType::_2D || mState.mType == TextureType::Rectangle); Extents size(surface->getWidth(), surface->getHeight(), 1); ImageDesc desc(size, surface->getBindTexImageFormat(), InitState::Initialized); mState.setImageDesc(NonCubeTextureTypeToTarget(mState.mType), 0, desc); + mState.mHasProtectedContent = surface->hasProtectedContent(); signalDirtyStorage(InitState::Initialized); return angle::Result::Continue; } angle::Result Texture::releaseTexImageFromSurface(const Context *context) @@ -1718,10 +1782,11 @@ ANGLE_TRY(mTexture->releaseTexImage(context)); // Erase the image info for level 0 ASSERT(mState.mType == TextureType::_2D || mState.mType == TextureType::Rectangle); mState.clearImageDesc(NonCubeTextureTypeToTarget(mState.mType), 0); + mState.mHasProtectedContent = false; signalDirtyStorage(InitState::Initialized); return angle::Result::Continue; } void Texture::bindStream(egl::Stream *stream) @@ -1794,11 +1859,13 @@ ASSERT(type == TextureType::_2D || type == TextureType::External || type == TextureType::_2DArray); // Release from previous calls to eglBindTexImage, to avoid calling the Impl after ANGLE_TRY(releaseTexImageInternal(context)); - ANGLE_TRY(orphanImages(context)); + + egl::RefCountObjectReleaser releaseImage; + ANGLE_TRY(orphanImages(context, &releaseImage)); ANGLE_TRY(mTexture->setEGLImageTarget(context, type, imageTarget)); setTargetImage(context, imageTarget); @@ -1808,10 +1875,11 @@ auto initState = imageTarget->sourceInitState(); mState.clearImageDescs(); mState.setImageDesc(NonCubeTextureTypeToTarget(type), 0, ImageDesc(size, imageTarget->getFormat(), initState)); + mState.mHasProtectedContent = imageTarget->hasProtectedContent(); signalDirtyStorage(initState); return angle::Result::Continue; } @@ -1992,10 +2060,16 @@ { addRef(); // Duplicates allowed for multiple attachment points. See the comment in the header. mBoundFramebufferSerials.push_back(framebufferSerial); + + if (!mState.mHasBeenBoundAsAttachment) + { + mDirtyBits.set(DIRTY_BIT_BOUND_AS_ATTACHMENT); + mState.mHasBeenBoundAsAttachment = true; + } } void Texture::onDetach(const Context *context, rx::Serial framebufferSerial) { // Erase first instance. If there are multiple bindings, leave the others. @@ -2018,10 +2092,11 @@ angle::Result Texture::syncState(const Context *context, Command source) { ASSERT(hasAnyDirtyBit() || source == Command::GenerateMipmap); ANGLE_TRY(mTexture->syncState(context, mDirtyBits, source)); mDirtyBits.reset(); + mState.mInitState = InitState::Initialized; return angle::Result::Continue; } rx::FramebufferAttachmentObjectImpl *Texture::getAttachmentImpl() const { @@ -2131,11 +2206,11 @@ void Texture::setInitState(InitState initState) { for (ImageDesc &imageDesc : mState.mImageDescs) { - // Only modifiy defined images, undefined images will remain in the initialized state + // Only modify defined images, undefined images will remain in the initialized state if (!imageDesc.size.empty()) { imageDesc.initState = initState; } } @@ -2189,18 +2264,11 @@ void Texture::onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) { switch (message) { case angle::SubjectMessage::ContentsChanged: - if (index == kBufferSubjectIndex) - { - // If the contents of the buffer attached to a texture buffer has changed, mark the - // texture dirty. - signalDirtyState(DIRTY_BIT_IMPLEMENTATION); - onStateChange(angle::SubjectMessage::ContentsChanged); - } - else + if (index != kBufferSubjectIndex) { // ContentsChange originates from TextureStorage11::resolveAndReleaseTexture // which resolves the underlying multisampled texture if it exists and so // Texture will signal dirty storage to invalidate its own cache and the // attached framebuffer's cache. @@ -2253,10 +2321,20 @@ case angle::SubjectMessage::SubjectMapped: case angle::SubjectMessage::SubjectUnmapped: case angle::SubjectMessage::BindingChanged: ASSERT(index == kBufferSubjectIndex); break; + case angle::SubjectMessage::InitializationComplete: + ASSERT(index == rx::kTextureImageImplObserverMessageIndex); + setInitState(InitState::Initialized); + break; + case angle::SubjectMessage::InternalMemoryAllocationChanged: + // Need to mark the texture dirty to give the back end a chance to handle the new + // buffer. For example, the Vulkan back end needs to create a new buffer view that + // points to the newly allocated buffer and update the texture descriptor set. + signalDirtyState(DIRTY_BIT_IMPLEMENTATION); + break; default: UNREACHABLE(); break; } } @@ -2278,19 +2356,36 @@ GLint level, GLenum format, GLenum type, void *pixels) { - if (hasAnyDirtyBit()) + // No-op if the image level is empty. + if (getExtents(target, level).empty()) { - ANGLE_TRY(syncState(context, Command::Other)); + return angle::Result::Continue; } return mTexture->getTexImage(context, packState, packBuffer, target, level, format, type, pixels); } +angle::Result Texture::getCompressedTexImage(const Context *context, + const PixelPackState &packState, + Buffer *packBuffer, + TextureTarget target, + GLint level, + void *pixels) +{ + // No-op if the image level is empty. + if (getExtents(target, level).empty()) + { + return angle::Result::Continue; + } + + return mTexture->getCompressedTexImage(context, packState, packBuffer, target, level, pixels); +} + void Texture::onBindAsImageTexture() { if (!mState.mHasBeenBoundAsImage) { mDirtyBits.set(DIRTY_BIT_BOUND_AS_IMAGE); diff --git a/gfx/angle/checkout/src/libANGLE/TransformFeedback.h b/gfx/angle/checkout/src/libANGLE/TransformFeedback.h --- a/gfx/angle/checkout/src/libANGLE/TransformFeedback.h +++ b/gfx/angle/checkout/src/libANGLE/TransformFeedback.h @@ -98,11 +98,11 @@ GLsizeiptr getVerticesDrawn() const { return mState.getVerticesDrawn(); } GLsizeiptr getPrimitivesDrawn() const { return mState.getPrimitivesDrawn(); } // Returns true if any buffer bound to this object is also bound to another target. - bool buffersBoundForOtherUse() const; + bool buffersBoundForOtherUseInWebGL() const; angle::Result detachBuffer(const Context *context, BufferID bufferID); rx::TransformFeedbackImpl *getImplementation() const; diff --git a/gfx/angle/checkout/src/libANGLE/TransformFeedback.cpp b/gfx/angle/checkout/src/libANGLE/TransformFeedback.cpp --- a/gfx/angle/checkout/src/libANGLE/TransformFeedback.cpp +++ b/gfx/angle/checkout/src/libANGLE/TransformFeedback.cpp @@ -304,15 +304,15 @@ size_t TransformFeedback::getIndexedBufferCount() const { return mState.mIndexedBuffers.size(); } -bool TransformFeedback::buffersBoundForOtherUse() const +bool TransformFeedback::buffersBoundForOtherUseInWebGL() const { for (auto &buffer : mState.mIndexedBuffers) { - if (buffer.get() && buffer->isBoundForTransformFeedbackAndOtherUse()) + if (buffer.get() && buffer->hasWebGLXFBBindingConflict(true)) { return true; } } return false; diff --git a/gfx/angle/checkout/src/libANGLE/VaryingPacking.h b/gfx/angle/checkout/src/libANGLE/VaryingPacking.h --- a/gfx/angle/checkout/src/libANGLE/VaryingPacking.h +++ b/gfx/angle/checkout/src/libANGLE/VaryingPacking.h @@ -20,14 +20,14 @@ #include namespace gl { -class HasAttachedShaders; class InfoLog; class ProgramExecutable; struct Caps; +struct LinkingVariables; struct ProgramVaryingRef; using ProgramMergedVaryings = std::vector; // A varying can have different names between stages if matched by the location layout qualifier. @@ -320,11 +320,10 @@ // Looks up the front stage from the back stage. ShaderMap mBackToFrontStageMap; }; -// Takes an abstract handle to a program or pipeline. -ProgramMergedVaryings GetMergedVaryingsFromShaders(const HasAttachedShaders &programOrPipeline, - const ProgramExecutable &programExecutable); +ProgramMergedVaryings GetMergedVaryingsFromLinkingVariables( + const LinkingVariables &linkingVariables); } // namespace gl #endif // LIBANGLE_VARYINGPACKING_H_ diff --git a/gfx/angle/checkout/src/libANGLE/VaryingPacking.cpp b/gfx/angle/checkout/src/libANGLE/VaryingPacking.cpp --- a/gfx/angle/checkout/src/libANGLE/VaryingPacking.cpp +++ b/gfx/angle/checkout/src/libANGLE/VaryingPacking.cpp @@ -1014,12 +1014,10 @@ activeShaders[frontShaderStage] = false; // Special case for start-after-vertex. if (frontShaderStage != ShaderType::Vertex) { - ASSERT(isSeparableProgram); - ShaderType emulatedFrontShaderStage = ShaderType::Vertex; ShaderType backShaderStage = frontShaderStage; if (!mVaryingPackings[emulatedFrontShaderStage].collectAndPackUserVaryings( infoLog, GetMaxShaderInputVectors(caps, backShaderStage), packMode, @@ -1060,12 +1058,10 @@ } // Special case for stop-before-fragment. if (frontShaderStage != ShaderType::Fragment) { - ASSERT(isSeparableProgram); - if (!mVaryingPackings[frontShaderStage].collectAndPackUserVaryings( infoLog, GetMaxShaderOutputVectors(caps, frontShaderStage), packMode, frontShaderStage, ShaderType::InvalidEnum, mergedVaryings, tfVaryings, isSeparableProgram)) { @@ -1077,31 +1073,27 @@ } return true; } -ProgramMergedVaryings GetMergedVaryingsFromShaders(const HasAttachedShaders &programOrPipeline, - const ProgramExecutable &programExecutable) +ProgramMergedVaryings GetMergedVaryingsFromLinkingVariables( + const LinkingVariables &linkingVariables) { ShaderType frontShaderType = ShaderType::InvalidEnum; ProgramMergedVaryings merged; for (ShaderType backShaderType : kAllGraphicsShaderTypes) { - Shader *backShader = programOrPipeline.getAttachedShader(backShaderType); - - if (!backShader && !programExecutable.hasLinkedShaderStage(backShaderType)) + if (!linkingVariables.isShaderStageUsedBitset[backShaderType]) { continue; } const std::vector &backShaderOutputVaryings = - backShader ? backShader->getOutputVaryings() - : programExecutable.getLinkedOutputVaryings(backShaderType); + linkingVariables.outputVaryings[backShaderType]; const std::vector &backShaderInputVaryings = - backShader ? backShader->getInputVaryings() - : programExecutable.getLinkedInputVaryings(backShaderType); + linkingVariables.inputVaryings[backShaderType]; // Add outputs. These are always unmatched since we walk shader stages sequentially. for (const sh::ShaderVariable &frontVarying : backShaderOutputVaryings) { ProgramVaryingRef ref; diff --git a/gfx/angle/checkout/src/libANGLE/VertexArray.h b/gfx/angle/checkout/src/libANGLE/VertexArray.h --- a/gfx/angle/checkout/src/libANGLE/VertexArray.h +++ b/gfx/angle/checkout/src/libANGLE/VertexArray.h @@ -30,10 +30,12 @@ namespace gl { class Buffer; +constexpr uint32_t kElementArrayBufferIndex = MAX_VERTEX_ATTRIBS; + class VertexArrayState final : angle::NonCopyable { public: VertexArrayState(VertexArray *vertexArray, size_t maxAttribs, size_t maxBindings); ~VertexArrayState(); @@ -105,16 +107,27 @@ AttributesMask mCachedMappedArrayBuffers; AttributesMask mCachedMutableOrImpersistentArrayBuffers; AttributesMask mCachedInvalidMappedArrayBuffer; }; +class VertexArrayBufferContentsObservers final : angle::NonCopyable +{ + public: + VertexArrayBufferContentsObservers(VertexArray *vertexArray); + void enableForBuffer(Buffer *buffer, uint32_t bufferIndex); + void disableForBuffer(Buffer *buffer, uint32_t bufferIndex); + + private: + VertexArray *mVertexArray; +}; + class VertexArray final : public angle::ObserverInterface, public LabeledObject, public angle::Subject { public: - // Dirty bits for VertexArrays use a heirarchical design. At the top level, each attribute + // Dirty bits for VertexArrays use a hierarchical design. At the top level, each attribute // has a single dirty bit. Then an array of MAX_ATTRIBS dirty bits each has a dirty bit for // enabled/pointer/format/binding. Bindings are handled similarly. Note that because the // total number of dirty bits is 33, it will not be as fast on a 32-bit machine, which // can't support the advanced 64-bit scanning intrinsics. We could consider packing the // binding and attribute bits together if this becomes a problem. @@ -223,11 +236,11 @@ size_t bindingIndex, Buffer *boundBuffer, GLintptr offset, GLsizei stride); void setVertexAttribBinding(const Context *context, size_t attribIndex, GLuint bindingIndex); - void setVertexBindingDivisor(size_t bindingIndex, GLuint divisor); + void setVertexBindingDivisor(const Context *context, size_t bindingIndex, GLuint divisor); Buffer *getElementArrayBuffer() const { return mState.getElementArrayBuffer(); } size_t getMaxAttribs() const { return mState.getMaxAttribs(); } size_t getMaxBindings() const { return mState.getMaxBindings(); } @@ -263,10 +276,11 @@ bool isBufferAccessValidationEnabled() const { return mBufferAccessValidationEnabled; } // Observer implementation void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; + void onBufferContentsChange(uint32_t bufferIndex); static size_t GetVertexIndexFromDirtyBit(size_t dirtyBit); angle::Result syncState(const Context *context); bool hasAnyDirtyBit() const { return mDirtyBits.any(); } @@ -396,10 +410,11 @@ IndexRange mPayload; }; mutable IndexRangeCache mIndexRangeCache; bool mBufferAccessValidationEnabled; + VertexArrayBufferContentsObservers mContentsObservers; }; } // namespace gl #endif // LIBANGLE_VERTEXARRAY_H_ diff --git a/gfx/angle/checkout/src/libANGLE/VertexArray.cpp b/gfx/angle/checkout/src/libANGLE/VertexArray.cpp --- a/gfx/angle/checkout/src/libANGLE/VertexArray.cpp +++ b/gfx/angle/checkout/src/libANGLE/VertexArray.cpp @@ -19,14 +19,12 @@ { namespace { bool IsElementArrayBufferSubjectIndex(angle::SubjectIndex subjectIndex) { - return (subjectIndex == MAX_VERTEX_ATTRIBS); + return (subjectIndex == kElementArrayBufferIndex); } - -constexpr angle::SubjectIndex kElementArrayBufferIndex = MAX_VERTEX_ATTRIBS; } // namespace // VertexArrayState implementation. VertexArrayState::VertexArrayState(VertexArray *vertexArray, size_t maxAttribs, @@ -112,32 +110,50 @@ size_t maxAttribs, size_t maxAttribBindings) : mId(id), mState(this, maxAttribs, maxAttribBindings), mVertexArray(factory->createVertexArray(mState)), - mBufferAccessValidationEnabled(false) + mBufferAccessValidationEnabled(false), + mContentsObservers(this) { for (size_t attribIndex = 0; attribIndex < maxAttribBindings; ++attribIndex) { mArrayBufferObserverBindings.emplace_back(this, attribIndex); } + + mVertexArray->setContentsObservers(&mContentsObservers); } void VertexArray::onDestroy(const Context *context) { bool isBound = context->isCurrentVertexArray(this); - for (VertexBinding &binding : mState.mVertexBindings) + for (uint32_t bindingIndex = 0; bindingIndex < gl::MAX_VERTEX_ATTRIB_BINDINGS; ++bindingIndex) + { + VertexBinding &binding = mState.mVertexBindings[bindingIndex]; + Buffer *buffer = binding.getBuffer().get(); + if (isBound) + { + if (buffer) + { + buffer->onNonTFBindingChanged(-1); + } + } + if (buffer) + { + // Note: the non-contents observer is unbound in the ObserverBinding destructor. + buffer->removeContentsObserver(this, bindingIndex); + } + binding.setBuffer(context, nullptr); + } + if (mState.mElementArrayBuffer.get()) { if (isBound) { - if (binding.getBuffer().get()) - binding.getBuffer()->onNonTFBindingChanged(-1); + mState.mElementArrayBuffer->onNonTFBindingChanged(-1); } - binding.setBuffer(context, nullptr); + mState.mElementArrayBuffer->removeContentsObserver(this, kElementArrayBufferIndex); } - if (isBound && mState.mElementArrayBuffer.get()) - mState.mElementArrayBuffer->onNonTFBindingChanged(-1); mState.mElementArrayBuffer.bind(context, nullptr); mVertexArray->destroy(context); SafeDelete(mVertexArray); delete this; } @@ -161,18 +177,20 @@ { bool isBound = context->isCurrentVertexArray(this); bool anyBufferDetached = false; for (uint32_t bindingIndex = 0; bindingIndex < gl::MAX_VERTEX_ATTRIB_BINDINGS; ++bindingIndex) { - VertexBinding &binding = mState.mVertexBindings[bindingIndex]; - if (binding.getBuffer().id() == bufferID) + VertexBinding &binding = mState.mVertexBindings[bindingIndex]; + const BindingPointer &bufferBinding = binding.getBuffer(); + if (bufferBinding.id() == bufferID) { if (isBound) { - if (binding.getBuffer().get()) - binding.getBuffer()->onNonTFBindingChanged(-1); + if (bufferBinding.get()) + bufferBinding->onNonTFBindingChanged(-1); } + bufferBinding->removeContentsObserver(this, bindingIndex); binding.setBuffer(context, nullptr); mArrayBufferObserverBindings[bindingIndex].reset(); if (context->getClientVersion() >= ES_3_1) { @@ -290,11 +308,11 @@ } ANGLE_INLINE void VertexArray::updateCachedTransformFeedbackBindingValidation(size_t bindingIndex, const Buffer *buffer) { - const bool hasConflict = buffer && buffer->isBoundForTransformFeedbackAndOtherUse(); + const bool hasConflict = buffer && buffer->hasWebGLXFBBindingConflict(true); mCachedTransformFeedbackConflictedBindingsMask.set(bindingIndex, hasConflict); } bool VertexArray::bindVertexBufferImpl(const Context *context, size_t bindingIndex, @@ -324,10 +342,11 @@ // Several nullptr checks are combined here for optimization purposes. if (oldBuffer) { oldBuffer->onNonTFBindingChanged(-1); oldBuffer->removeObserver(observer); + oldBuffer->removeContentsObserver(this, static_cast(bindingIndex)); oldBuffer->release(context); } binding->assignBuffer(boundBuffer); binding->setOffset(offset); @@ -338,23 +357,29 @@ if (boundBuffer) { boundBuffer->addRef(); boundBuffer->onNonTFBindingChanged(1); boundBuffer->addObserver(observer); - mCachedTransformFeedbackConflictedBindingsMask.set( - bindingIndex, boundBuffer->isBoundForTransformFeedbackAndOtherUse()); + if (context->isWebGL()) + { + mCachedTransformFeedbackConflictedBindingsMask.set( + bindingIndex, boundBuffer->hasWebGLXFBBindingConflict(true)); + } mState.mClientMemoryAttribsMask &= ~binding->getBoundAttributesMask(); bool isMapped = boundBuffer->isMapped() == GL_TRUE; bool isImmutable = boundBuffer->isImmutable() == GL_TRUE; bool isPersistent = (boundBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0; updateCachedArrayBuffersMasks(isMapped, isImmutable, isPersistent, binding->getBoundAttributesMask()); } else { - mCachedTransformFeedbackConflictedBindingsMask.set(bindingIndex, false); + if (context->isWebGL()) + { + mCachedTransformFeedbackConflictedBindingsMask.set(bindingIndex, false); + } mState.mClientMemoryAttribsMask |= binding->getBoundAttributesMask(); updateCachedArrayBuffersMasks(false, false, false, binding->getBoundAttributesMask()); } return true; @@ -393,23 +418,33 @@ // Update client attribs mask. bool hasBuffer = mState.mVertexBindings[bindingIndex].getBuffer().get() != nullptr; mState.mClientMemoryAttribsMask.set(attribIndex, !hasBuffer); } -void VertexArray::setVertexBindingDivisor(size_t bindingIndex, GLuint divisor) +void VertexArray::setVertexBindingDivisor(const Context *context, + size_t bindingIndex, + GLuint divisor) { ASSERT(bindingIndex < getMaxBindings()); VertexBinding &binding = mState.mVertexBindings[bindingIndex]; + if (binding.getDivisor() == divisor) + { + return; + } + binding.setDivisor(divisor); setDirtyBindingBit(bindingIndex, DIRTY_BINDING_DIVISOR); // Trigger updates in all bound attributes. - for (size_t attribIndex : binding.getBoundAttributesMask()) + if (context->isBufferAccessValidationEnabled()) { - mState.mVertexAttributes[attribIndex].updateCachedElementLimit(binding); + for (size_t attribIndex : binding.getBoundAttributesMask()) + { + mState.mVertexAttributes[attribIndex].updateCachedElementLimit(binding); + } } } ANGLE_INLINE bool VertexArray::setVertexAttribFormatImpl(VertexAttribute *attrib, GLint size, @@ -453,11 +488,11 @@ void VertexArray::setVertexAttribDivisor(const Context *context, size_t attribIndex, GLuint divisor) { ASSERT(attribIndex < getMaxAttribs()); setVertexAttribBinding(context, attribIndex, static_cast(attribIndex)); - setVertexBindingDivisor(attribIndex, divisor); + setVertexBindingDivisor(context, attribIndex, divisor); } void VertexArray::enableAttribute(size_t attribIndex, bool enabledState) { ASSERT(attribIndex < getMaxAttribs()); @@ -504,11 +539,11 @@ { setVertexAttribBinding(context, attribIndex, static_cast(attribIndex)); } GLsizei effectiveStride = - stride != 0 ? stride : static_cast(ComputeVertexAttributeTypeSize(attrib)); + stride == 0 ? static_cast(ComputeVertexAttributeTypeSize(attrib)) : stride; if (attrib.vertexAttribArrayStride != static_cast(stride)) { attribDirty = true; } @@ -616,10 +651,11 @@ void VertexArray::onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) { switch (message) { case angle::SubjectMessage::ContentsChanged: + ASSERT(IsElementArrayBufferSubjectIndex(index)); setDependentDirtyBit(true, index); break; case angle::SubjectMessage::SubjectChanged: if (!IsElementArrayBufferSubjectIndex(index)) @@ -653,10 +689,14 @@ updateCachedMappedArrayBuffersBinding(mState.mVertexBindings[index]); } onStateChange(angle::SubjectMessage::SubjectUnmapped); break; + case angle::SubjectMessage::InternalMemoryAllocationChanged: + setDependentDirtyBit(false, index); + break; + default: UNREACHABLE(); break; } } @@ -727,6 +767,25 @@ mTypeKey = type; mIndexCountKey = indexCount; mOffsetKey = offset; mPayload = indexRange; } + +void VertexArray::onBufferContentsChange(uint32_t bufferIndex) +{ + setDependentDirtyBit(true, bufferIndex); +} + +VertexArrayBufferContentsObservers::VertexArrayBufferContentsObservers(VertexArray *vertexArray) + : mVertexArray(vertexArray) +{} + +void VertexArrayBufferContentsObservers::enableForBuffer(Buffer *buffer, uint32_t bufferIndex) +{ + buffer->addContentsObserver(mVertexArray, bufferIndex); +} + +void VertexArrayBufferContentsObservers::disableForBuffer(Buffer *buffer, uint32_t bufferIndex) +{ + buffer->removeContentsObserver(mVertexArray, bufferIndex); +} } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/angletypes.h b/gfx/angle/checkout/src/libANGLE/angletypes.h --- a/gfx/angle/checkout/src/libANGLE/angletypes.h +++ b/gfx/angle/checkout/src/libANGLE/angletypes.h @@ -36,10 +36,11 @@ Clear, CopyImage, Dispatch, Draw, GenerateMipmap, + Invalidate, ReadPixels, TexImage, Other }; @@ -47,43 +48,76 @@ { MayNeedInit, Initialized, }; -struct Rectangle +template +struct RectangleImpl { - Rectangle() : x(0), y(0), width(0), height(0) {} - constexpr Rectangle(int x_in, int y_in, int width_in, int height_in) + RectangleImpl() : x(T(0)), y(T(0)), width(T(0)), height(T(0)) {} + constexpr RectangleImpl(T x_in, T y_in, T width_in, T height_in) : x(x_in), y(y_in), width(width_in), height(height_in) {} + explicit constexpr RectangleImpl(const T corners[4]) + : x(corners[0]), + y(corners[1]), + width(corners[2] - corners[0]), + height(corners[3] - corners[1]) + {} + template + explicit constexpr RectangleImpl(const RectangleImpl rect) + : x(rect.x), y(rect.y), width(rect.width), height(rect.height) + {} - int x0() const { return x; } - int y0() const { return y; } - int x1() const { return x + width; } - int y1() const { return y + height; } + T x0() const { return x; } + T y0() const { return y; } + T x1() const { return x + width; } + T y1() const { return y + height; } - bool isReversedX() const { return width < 0; } - bool isReversedY() const { return height < 0; } + bool isReversedX() const { return width < T(0); } + bool isReversedY() const { return height < T(0); } // Returns a rectangle with the same area but flipped in X, Y, neither or both. - Rectangle flip(bool flipX, bool flipY) const; + RectangleImpl flip(bool flipX, bool flipY) const + { + RectangleImpl flipped = *this; + if (flipX) + { + flipped.x = flipped.x + flipped.width; + flipped.width = -flipped.width; + } + if (flipY) + { + flipped.y = flipped.y + flipped.height; + flipped.height = -flipped.height; + } + return flipped; + } // Returns a rectangle with the same area but with height and width guaranteed to be positive. - Rectangle removeReversal() const; - - bool encloses(const gl::Rectangle &inside) const; + RectangleImpl removeReversal() const { return flip(isReversedX(), isReversedY()); } - bool empty() const { return width == 0 && height == 0; } + bool encloses(const RectangleImpl &inside) const + { + return x0() <= inside.x0() && y0() <= inside.y0() && x1() >= inside.x1() && + y1() >= inside.y1(); + } - int x; - int y; - int width; - int height; + bool empty() const; + + T x; + T y; + T width; + T height; }; -bool operator==(const Rectangle &a, const Rectangle &b); -bool operator!=(const Rectangle &a, const Rectangle &b); +template +bool operator==(const RectangleImpl &a, const RectangleImpl &b); +template +bool operator!=(const RectangleImpl &a, const RectangleImpl &b); + +using Rectangle = RectangleImpl; enum class ClipSpaceOrigin { LowerLeft = 0, UpperLeft = 1 @@ -577,10 +611,11 @@ using EquationStorage = StorageType()>; using ColorMaskStorage = StorageType; BlendStateExt(const size_t drawBuffers = 1); + BlendStateExt(const BlendStateExt &other); BlendStateExt &operator=(const BlendStateExt &other); ///////// Blending Toggle ///////// void setEnabled(const bool enabled); @@ -669,27 +704,27 @@ const FactorStorage::Type srcAlpha, const FactorStorage::Type dstAlpha) const; ///////// Data Members ///////// - const FactorStorage::Type mMaxFactorMask; + FactorStorage::Type mMaxFactorMask; FactorStorage::Type mSrcColor; FactorStorage::Type mDstColor; FactorStorage::Type mSrcAlpha; FactorStorage::Type mDstAlpha; - const EquationStorage::Type mMaxEquationMask; + EquationStorage::Type mMaxEquationMask; EquationStorage::Type mEquationColor; EquationStorage::Type mEquationAlpha; - const ColorMaskStorage::Type mMaxColorMask; + ColorMaskStorage::Type mMaxColorMask; ColorMaskStorage::Type mColorMask; - const DrawBufferMask mMaxEnabledMask; + DrawBufferMask mMaxEnabledMask; DrawBufferMask mEnabledMask; - const size_t mMaxDrawBuffers; + size_t mMaxDrawBuffers; }; // Used in StateCache using StorageBuffersMask = angle::BitSet; diff --git a/gfx/angle/checkout/src/libANGLE/angletypes.cpp b/gfx/angle/checkout/src/libANGLE/angletypes.cpp --- a/gfx/angle/checkout/src/libANGLE/angletypes.cpp +++ b/gfx/angle/checkout/src/libANGLE/angletypes.cpp @@ -10,10 +10,12 @@ #include "libANGLE/Program.h" #include "libANGLE/State.h" #include "libANGLE/VertexArray.h" #include "libANGLE/VertexAttribute.h" +#include + namespace gl { namespace { bool IsStencilNoOp(GLenum stencilFunc, @@ -353,15 +355,13 @@ mMaxEnabledMask(0xFF >> (8 - drawBuffers)), mEnabledMask(), mMaxDrawBuffers(drawBuffers) {} -BlendStateExt &BlendStateExt::operator=(const BlendStateExt &other) -{ - memcpy(this, &other, sizeof(BlendStateExt)); - return *this; -} +BlendStateExt::BlendStateExt(const BlendStateExt &other) = default; + +BlendStateExt &BlendStateExt::operator=(const BlendStateExt &other) = default; void BlendStateExt::setEnabled(const bool enabled) { mEnabledMask = enabled ? mMaxEnabledMask : DrawBufferMask::Zero(); } @@ -624,34 +624,21 @@ *minimum = b; *maximum = a; } } -Rectangle Rectangle::flip(bool flipX, bool flipY) const +template <> +bool RectangleImpl::empty() const { - Rectangle flipped = *this; - if (flipX) - { - flipped.x = flipped.x + flipped.width; - flipped.width = -flipped.width; - } - if (flipY) - { - flipped.y = flipped.y + flipped.height; - flipped.height = -flipped.height; - } - return flipped; + return width == 0 && height == 0; } -Rectangle Rectangle::removeReversal() const +template <> +bool RectangleImpl::empty() const { - return flip(isReversedX(), isReversedY()); -} - -bool Rectangle::encloses(const gl::Rectangle &inside) const -{ - return x0() <= inside.x0() && y0() <= inside.y0() && x1() >= inside.x1() && y1() >= inside.y1(); + return std::abs(width) < std::numeric_limits::epsilon() && + std::abs(height) < std::numeric_limits::epsilon(); } bool ClipRectangle(const Rectangle &source, const Rectangle &clip, Rectangle *intersection) { angle::CheckedNumeric sourceX2(source.x); diff --git a/gfx/angle/checkout/src/libANGLE/capture/FrameCapture.h b/gfx/angle/checkout/src/libANGLE/capture/FrameCapture.h --- a/gfx/angle/checkout/src/libANGLE/capture/FrameCapture.h +++ b/gfx/angle/checkout/src/libANGLE/capture/FrameCapture.h @@ -37,10 +37,11 @@ std::string name; ParamType type; ParamValue value; gl::GLenumGroup enumGroup; // only used for param type GLenum, GLboolean and GLbitfield ParamData data; + int dataNElements = 0; int arrayClientPointerIndex = -1; size_t readBufferSizeBytes = 0; }; class ParamBuffer final : angle::NonCopyable @@ -53,10 +54,12 @@ ParamBuffer &operator=(ParamBuffer &&other); template void addValueParam(const char *paramName, ParamType paramType, T paramValue); template + void setValueParamAtIndex(const char *paramName, ParamType paramType, T paramValue, int index); + template void addEnumParam(const char *paramName, gl::GLenumGroup enumGroup, ParamType paramType, T paramValue); @@ -106,10 +109,11 @@ const char *name() const; EntryPoint entryPoint; std::string customFunctionName; ParamBuffer params; + bool isActive = true; }; class ReplayContext { public: @@ -205,53 +209,78 @@ private: DataCounters mCounters; StringCounters mStringCounters; }; -using BufferSet = std::set; -using BufferCalls = std::map>; +using BufferCalls = std::map>; // true means mapped, false means unmapped -using BufferMapStatusMap = std::map; +using BufferMapStatusMap = std::map; using FenceSyncSet = std::set; using FenceSyncCalls = std::map>; +using ResourceSet = std::set; +using ResourceCalls = std::map>; + +class TrackedResource final : angle::NonCopyable +{ + public: + TrackedResource(); + ~TrackedResource(); + + ResourceSet &getStartingResources() { return mStartingResources; } + ResourceSet &getNewResources() { return mNewResources; } + ResourceSet &getResourcesToRegen() { return mResourcesToRegen; } + ResourceSet &getResourcesToRestore() { return mResourcesToRestore; } + + void setGennedResource(GLuint id); + void setDeletedResource(GLuint id); + void setModifiedResource(GLuint id); + + ResourceCalls &getResourceRegenCalls() { return mResourceRegenCalls; } + ResourceCalls &getResourceRestoreCalls() { return mResourceRestoreCalls; } + + private: + // Resource regen calls will delete and gen a resource + ResourceCalls mResourceRegenCalls; + // Resource restore calls will restore the contents of a resource + ResourceCalls mResourceRestoreCalls; + + // Resources created during startup + ResourceSet mStartingResources; + + // Resources created during the run that need to be deleted + ResourceSet mNewResources; + // Resources deleted during the run that need to be recreated + ResourceSet mResourcesToRegen; + // Resources modified during the run that need to be restored + ResourceSet mResourcesToRestore; +}; + +using TrackedResourceArray = + std::array(ResourceIDType::EnumCount)>; + // Helper to track resource changes during the capture class ResourceTracker final : angle::NonCopyable { public: ResourceTracker(); ~ResourceTracker(); - BufferCalls &getBufferRegenCalls() { return mBufferRegenCalls; } - BufferCalls &getBufferRestoreCalls() { return mBufferRestoreCalls; } BufferCalls &getBufferMapCalls() { return mBufferMapCalls; } BufferCalls &getBufferUnmapCalls() { return mBufferUnmapCalls; } std::vector &getBufferBindingCalls() { return mBufferBindingCalls; } - BufferSet &getStartingBuffers() { return mStartingBuffers; } - BufferSet &getNewBuffers() { return mNewBuffers; } - BufferSet &getBuffersToRegen() { return mBuffersToRegen; } - BufferSet &getBuffersToRestore() { return mBuffersToRestore; } + void setBufferMapped(GLuint id); + void setBufferUnmapped(GLuint id); - void setGennedBuffer(gl::BufferID id); - void setDeletedBuffer(gl::BufferID id); - void setBufferModified(gl::BufferID id); - void setBufferMapped(gl::BufferID id); - void setBufferUnmapped(gl::BufferID id); + bool getStartingBuffersMappedCurrent(GLuint id) const; + bool getStartingBuffersMappedInitial(GLuint id) const; - const bool &getStartingBuffersMappedCurrent(gl::BufferID id) - { - return mStartingBuffersMappedCurrent[id]; - } - const bool &getStartingBuffersMappedInitial(gl::BufferID id) - { - return mStartingBuffersMappedInitial[id]; - } - void setStartingBufferMapped(gl::BufferID id, bool mapped) + void setStartingBufferMapped(GLuint id, bool mapped) { // Track the current state (which will change throughout the trace) mStartingBuffersMappedCurrent[id] = mapped; // And the initial state, to compare during frame loop reset @@ -264,32 +293,24 @@ FenceSyncSet &getStartingFenceSyncs() { return mStartingFenceSyncs; } FenceSyncCalls &getFenceSyncRegenCalls() { return mFenceSyncRegenCalls; } FenceSyncSet &getFenceSyncsToRegen() { return mFenceSyncsToRegen; } void setDeletedFenceSync(GLsync sync); + TrackedResource &getTrackedResource(ResourceIDType type) + { + return mTrackedResources[static_cast(type)]; + } + private: - // Buffer regen calls will delete and gen a buffer - BufferCalls mBufferRegenCalls; - // Buffer restore calls will restore the contents of a buffer - BufferCalls mBufferRestoreCalls; // Buffer map calls will map a buffer with correct offset, length, and access flags BufferCalls mBufferMapCalls; // Buffer unmap calls will bind and unmap a given buffer BufferCalls mBufferUnmapCalls; // Buffer binding calls to restore bindings recorded during MEC std::vector mBufferBindingCalls; - // Starting buffers include all the buffers created during setup for MEC - BufferSet mStartingBuffers; - // New buffers are those generated while capturing - BufferSet mNewBuffers; - // Buffers to regen are a list of starting buffers that need to be deleted and genned - BufferSet mBuffersToRegen; - // Buffers to restore include any starting buffers with contents modified during the run - BufferSet mBuffersToRestore; - // Whether a given buffer was mapped at the start of the trace BufferMapStatusMap mStartingBuffersMappedInitial; // The status of buffer mapping throughout the trace, modified with each Map/Unmap call BufferMapStatusMap mStartingBuffersMappedCurrent; @@ -301,15 +322,21 @@ // Fence sync regen calls will create a fence sync objects FenceSyncCalls mFenceSyncRegenCalls; // Fence syncs to regen are a list of starting fence sync objects that were deleted and need to // be regen'ed. FenceSyncSet mFenceSyncsToRegen; + + TrackedResourceArray mTrackedResources; }; // Used by the CPP replay to filter out unnecessary code. using HasResourceTypeMap = angle::PackedEnumBitSet; +// Map of ResourceType to IDs and range of setup calls +using ResourceIDToSetupCallsMap = + PackedEnumMap>>; + // Map of buffer ID to offset and size used when mapped using BufferDataMap = std::map>; // A dictionary of sources indexed by shader type. using ProgramSources = gl::ShaderMap; @@ -320,19 +347,43 @@ // Map from textureID to level and data using TextureLevels = std::map>; using TextureLevelDataMap = std::map; -// Map from ContextID to surface dimensions -using SurfaceDimensions = std::map; +struct SurfaceParams +{ + gl::Extents extents; + egl::ColorSpace colorSpace; +}; + +// Map from ContextID to SurfaceParams +using SurfaceParamsMap = std::map; + +using CallVector = std::vector *>; class FrameCapture final : angle::NonCopyable { public: FrameCapture(); ~FrameCapture(); + std::vector &getSetupCalls() { return mSetupCalls; } + void clearSetupCalls() { mSetupCalls.clear(); } + + void reset(); + + private: + std::vector mSetupCalls; +}; + +// Shared class for any items that need to be tracked by FrameCapture across shared contexts +class FrameCaptureShared final : angle::NonCopyable +{ + public: + FrameCaptureShared(); + ~FrameCaptureShared(); + void captureCall(const gl::Context *context, CallCapture &&call, bool isCallValid); void checkForCaptureTrigger(); void onEndFrame(const gl::Context *context); void onDestroyContext(const gl::Context *context); void onMakeCurrent(const gl::Context *context, const egl::Surface *drawSurface); @@ -349,80 +400,11 @@ gl::BufferID id, GLintptr offset, GLsizeiptr length, bool writable); - ResourceTracker &getResouceTracker() { return mResourceTracker; } - - private: - void captureClientArraySnapshot(const gl::Context *context, - size_t vertexCount, - size_t instanceCount); - void captureMappedBufferSnapshot(const gl::Context *context, const CallCapture &call); - - void copyCompressedTextureData(const gl::Context *context, const CallCapture &call); - void captureCompressedTextureData(const gl::Context *context, const CallCapture &call); - - void reset(); - void maybeOverrideEntryPoint(const gl::Context *context, CallCapture &call); - void maybeCapturePreCallUpdates(const gl::Context *context, CallCapture &call); - void maybeCapturePostCallUpdates(const gl::Context *context); - void maybeCaptureDrawArraysClientData(const gl::Context *context, - CallCapture &call, - size_t instanceCount); - void maybeCaptureDrawElementsClientData(const gl::Context *context, - CallCapture &call, - size_t instanceCount); - - static void ReplayCall(gl::Context *context, - ReplayContext *replayContext, - const CallCapture &call); - - void setCaptureActive() { mCaptureActive = true; } - void setCaptureInactive() { mCaptureActive = false; } - bool isCaptureActive() { return mCaptureActive; } - - std::vector mSetupCalls; - std::vector mFrameCalls; - - // We save one large buffer of binary data for the whole CPP replay. - // This simplifies a lot of file management. - std::vector mBinaryData; - - bool mEnabled = false; - bool mSerializeStateEnabled; - std::string mOutDirectory; - std::string mCaptureLabel; - bool mCompression; - gl::AttribArray mClientVertexArrayMap; - uint32_t mFrameIndex; - uint32_t mCaptureStartFrame; - uint32_t mCaptureEndFrame; - bool mIsFirstFrame = true; - bool mWroteIndexFile = false; - SurfaceDimensions mDrawSurfaceDimensions; - gl::AttribArray mClientArraySizes; - size_t mReadBufferSize; - HasResourceTypeMap mHasResourceType; - BufferDataMap mBufferDataMap; - - ResourceTracker mResourceTracker; - - // If you don't know which frame you want to start capturing at, use the capture trigger. - // Initialize it to the number of frames you want to capture, and then clear the value to 0 when - // you reach the content you want to capture. Currently only available on Android. - uint32_t mCaptureTrigger; - - bool mCaptureActive = false; -}; - -// Shared class for any items that need to be tracked by FrameCapture across shared contexts -class FrameCaptureShared final : angle::NonCopyable -{ - public: - FrameCaptureShared(); - ~FrameCaptureShared(); + void trackTextureUpdate(const gl::Context *context, const CallCapture &call); const std::string &getShaderSource(gl::ShaderProgramID id) const; void setShaderSource(gl::ShaderProgramID id, std::string sources); const ProgramSources &getProgramSources(gl::ShaderProgramID id) const; @@ -448,35 +430,183 @@ EntryPoint entryPoint); // Remove any cached texture levels on deletion void deleteCachedTextureLevelData(gl::TextureID id); + void eraseBufferDataMapEntry(const gl::BufferID bufferId) + { + const auto &bufferDataInfo = mBufferDataMap.find(bufferId); + if (bufferDataInfo != mBufferDataMap.end()) + { + mBufferDataMap.erase(bufferDataInfo); + } + } + + bool hasBufferData(gl::BufferID bufferID) + { + const auto &bufferDataInfo = mBufferDataMap.find(bufferID); + if (bufferDataInfo != mBufferDataMap.end()) + { + return true; + } + return false; + } + + std::pair getBufferDataOffsetAndLength(gl::BufferID bufferID) + { + const auto &bufferDataInfo = mBufferDataMap.find(bufferID); + ASSERT(bufferDataInfo != mBufferDataMap.end()); + return bufferDataInfo->second; + } + + void setCaptureActive() { mCaptureActive = true; } + void setCaptureInactive() { mCaptureActive = false; } + bool isCaptureActive() { return mCaptureActive; } + bool usesMidExecutionCapture() { return mCaptureStartFrame > 1; } + + gl::ContextID getWindowSurfaceContextID() const { return mWindowSurfaceContextID; } + + void markResourceSetupCallsInactive(std::vector *setupCalls, + ResourceIDType type, + GLuint id, + gl::Range range); + + void updateReadBufferSize(size_t readBufferSize) + { + mReadBufferSize = std::max(mReadBufferSize, readBufferSize); + } + + template + void handleGennedResource(ResourceType resourceID) + { + if (isCaptureActive()) + { + ResourceIDType idType = GetResourceIDTypeFromType::IDType; + TrackedResource &tracker = mResourceTracker.getTrackedResource(idType); + tracker.setGennedResource(resourceID.value); + } + } + + template + void handleDeletedResource(ResourceType resourceID) + { + if (isCaptureActive()) + { + ResourceIDType idType = GetResourceIDTypeFromType::IDType; + TrackedResource &tracker = mResourceTracker.getTrackedResource(idType); + tracker.setDeletedResource(resourceID.value); + } + } + private: + void writeCppReplayIndexFiles(const gl::Context *, bool writeResetContextCall); + void writeMainContextCppReplay(const gl::Context *context, + const std::vector &setupCalls); + + void captureClientArraySnapshot(const gl::Context *context, + size_t vertexCount, + size_t instanceCount); + void captureMappedBufferSnapshot(const gl::Context *context, const CallCapture &call); + + void copyCompressedTextureData(const gl::Context *context, const CallCapture &call); + void captureCompressedTextureData(const gl::Context *context, const CallCapture &call); + + void reset(); + void maybeOverrideEntryPoint(const gl::Context *context, + CallCapture &call, + std::vector &newCalls); + void maybeCapturePreCallUpdates(const gl::Context *context, + CallCapture &call, + std::vector *shareGroupSetupCalls, + ResourceIDToSetupCallsMap *resourceIDToSetupCalls); + void maybeCapturePostCallUpdates(const gl::Context *context); + void maybeCaptureDrawArraysClientData(const gl::Context *context, + CallCapture &call, + size_t instanceCount); + void maybeCaptureDrawElementsClientData(const gl::Context *context, + CallCapture &call, + size_t instanceCount); + void updateCopyImageSubData(CallCapture &call); + void overrideProgramBinary(const gl::Context *context, + CallCapture &call, + std::vector &outCalls); + void updateResourceCounts(const CallCapture &call); + + void runMidExecutionCapture(const gl::Context *context); + + void scanSetupCalls(const gl::Context *context, std::vector &setupCalls); + + static void ReplayCall(gl::Context *context, + ReplayContext *replayContext, + const CallCapture &call); + + std::vector mFrameCalls; + gl::ContextID mLastContextId; + + // We save one large buffer of binary data for the whole CPP replay. + // This simplifies a lot of file management. + std::vector mBinaryData; + + bool mEnabled; + bool mSerializeStateEnabled; + std::string mOutDirectory; + std::string mCaptureLabel; + bool mCompression; + gl::AttribArray mClientVertexArrayMap; + uint32_t mFrameIndex; + uint32_t mCaptureStartFrame; + uint32_t mCaptureEndFrame; + bool mIsFirstFrame = true; + bool mWroteIndexFile = false; + SurfaceParamsMap mDrawSurfaceParams; + gl::AttribArray mClientArraySizes; + size_t mReadBufferSize; + HasResourceTypeMap mHasResourceType; + ResourceIDToSetupCallsMap mResourceIDToSetupCalls; + BufferDataMap mBufferDataMap; + bool mValidateSerializedState = false; + std::string mValidationExpression; + bool mTrimEnabled = true; + PackedEnumMap mMaxAccessedResourceIDs; + + ResourceTracker mResourceTracker; + + // If you don't know which frame you want to start capturing at, use the capture trigger. + // Initialize it to the number of frames you want to capture, and then clear the value to 0 when + // you reach the content you want to capture. Currently only available on Android. + uint32_t mCaptureTrigger; + + bool mCaptureActive; + std::vector mActiveFrameIndices; + // Cache most recently compiled and linked sources. ShaderSourceMap mCachedShaderSource; ProgramSourceMap mCachedProgramSources; // Cache a shadow copy of texture level data - TextureLevels mCachedTextureLevels; TextureLevelDataMap mCachedTextureLevelData; + + gl::ContextID mWindowSurfaceContextID; + + std::vector mShareGroupSetupCalls; }; template void CaptureCallToFrameCapture(CaptureFuncT captureFunc, bool isCallValid, gl::Context *context, ArgsT... captureParams) { - FrameCapture *frameCapture = context->getFrameCapture(); - if (!frameCapture->isCapturing()) + FrameCaptureShared *frameCaptureShared = context->getShareGroup()->getFrameCaptureShared(); + if (!frameCaptureShared->isCapturing()) { return; } CallCapture call = captureFunc(context->getState(), isCallValid, captureParams...); - frameCapture->captureCall(context, std::move(call), isCallValid); + frameCaptureShared->captureCall(context, std::move(call), isCallValid); } template void ParamBuffer::addValueParam(const char *paramName, ParamType paramType, T paramValue) { @@ -484,10 +614,23 @@ InitParamValue(paramType, paramValue, &capture.value); mParamCaptures.emplace_back(std::move(capture)); } template +void ParamBuffer::setValueParamAtIndex(const char *paramName, + ParamType paramType, + T paramValue, + int index) +{ + ASSERT(mParamCaptures.size() > static_cast(index)); + + ParamCapture capture(paramName, paramType); + InitParamValue(paramType, paramValue, &capture.value); + mParamCaptures[index] = std::move(capture); +} + +template void ParamBuffer::addEnumParam(const char *paramName, gl::GLenumGroup enumGroup, ParamType paramType, T paramValue) { @@ -495,12 +638,10 @@ InitParamValue(paramType, paramValue, &capture.value); capture.enumGroup = enumGroup; mParamCaptures.emplace_back(std::move(capture)); } -std::ostream &operator<<(std::ostream &os, const ParamCapture &capture); - // Pointer capture helpers. void CaptureMemory(const void *source, size_t size, ParamCapture *paramCapture); void CaptureString(const GLchar *str, ParamCapture *paramCapture); void CaptureStringLimit(const GLchar *str, uint32_t limit, ParamCapture *paramCapture); void CaptureVertexPointerGLES1(const gl::State &glState, @@ -533,13 +674,21 @@ void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture); template void CaptureGenHandles(GLsizei n, T *handles, ParamCapture *paramCapture) { + paramCapture->dataNElements = n; CaptureGenHandlesImpl(n, reinterpret_cast(handles), paramCapture); } +template +void CaptureArray(T *elements, GLsizei n, ParamCapture *paramCapture) +{ + paramCapture->dataNElements = n; + CaptureMemory(elements, n * sizeof(T), paramCapture); +} + void CaptureShaderStrings(GLsizei count, const GLchar *const *strings, const GLint *length, ParamCapture *paramCapture); @@ -550,15 +699,35 @@ void WriteParamValueReplay(std::ostream &os, const CallCapture &call, GLboolean value); template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + GLboolean *value); + +template <> void WriteParamValueReplay(std::ostream &os, const CallCapture &call, const void *value); template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + void *value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + const GLfloat *value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + const GLuint *value); + +template <> void WriteParamValueReplay(std::ostream &os, const CallCapture &call, GLDEBUGPROCKHR value); template <> @@ -644,10 +813,50 @@ template <> void WriteParamValueReplay(std::ostream &os, const CallCapture &call, GLsync value); +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + GLeglImageOES value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + GLubyte value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLContext value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLContext value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLContext value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLDEBUGPROCKHR value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLGetBlobFuncANDROID value); + +template <> +void WriteParamValueReplay(std::ostream &os, + const CallCapture &call, + EGLSetBlobFuncANDROID value); + // General fallback for any unspecific type. template void WriteParamValueReplay(std::ostream &os, const CallCapture &call, T value) { os << value; @@ -657,11 +866,11 @@ template void CaptureTextureAndSamplerParameter_params(GLenum pname, const T *param, angle::ParamCapture *paramCapture) { - if (pname == GL_TEXTURE_BORDER_COLOR) + if (pname == GL_TEXTURE_BORDER_COLOR || pname == GL_TEXTURE_CROP_RECT_OES) { CaptureMemory(param, sizeof(T) * 4, paramCapture); } else { diff --git a/gfx/angle/checkout/src/libANGLE/capture/FrameCapture_mock.cpp b/gfx/angle/checkout/src/libANGLE/capture/FrameCapture_mock.cpp --- a/gfx/angle/checkout/src/libANGLE/capture/FrameCapture_mock.cpp +++ b/gfx/angle/checkout/src/libANGLE/capture/FrameCapture_mock.cpp @@ -18,16 +18,25 @@ CallCapture::~CallCapture() {} ParamBuffer::~ParamBuffer() {} ParamCapture::~ParamCapture() {} ResourceTracker::ResourceTracker() {} ResourceTracker::~ResourceTracker() {} +TrackedResource::TrackedResource() {} +TrackedResource::~TrackedResource() {} FrameCapture::FrameCapture() {} FrameCapture::~FrameCapture() {} -void FrameCapture::onEndFrame(const gl::Context *context) {} -void FrameCapture::onMakeCurrent(const gl::Context *context, const egl::Surface *drawSurface) {} -void FrameCapture::onDestroyContext(const gl::Context *context) {} -void FrameCapture::replay(gl::Context *context) {} -FrameCaptureShared::FrameCaptureShared() {} +FrameCaptureShared::FrameCaptureShared() : mEnabled(false) {} FrameCaptureShared::~FrameCaptureShared() {} +void FrameCaptureShared::onEndFrame(const gl::Context *context) {} +void FrameCaptureShared::onMakeCurrent(const gl::Context *context, const egl::Surface *drawSurface) +{} +void FrameCaptureShared::onDestroyContext(const gl::Context *context) {} +void FrameCaptureShared::replay(gl::Context *context) {} +const ProgramSources &FrameCaptureShared::getProgramSources(gl::ShaderProgramID id) const +{ + const auto &foundSources = mCachedProgramSources.find(id); + return foundSources->second; +} +void FrameCaptureShared::setProgramSources(gl::ShaderProgramID id, ProgramSources sources) {} } // namespace angle diff --git a/gfx/angle/checkout/src/libANGLE/capture/capture_gles_ext_autogen.h b/gfx/angle/checkout/src/libANGLE/capture/capture_gles_ext_autogen.h --- a/gfx/angle/checkout/src/libANGLE/capture/capture_gles_ext_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/capture/capture_gles_ext_autogen.h @@ -88,10 +88,12 @@ GLint depth, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); +// GL_ANGLE_depth_texture + // GL_ANGLE_framebuffer_blit angle::CallCapture CaptureBlitFramebufferANGLE(const State &glState, bool isCallValid, GLint srcX0, GLint srcY0, @@ -119,10 +121,15 @@ TextureTarget targetPacked, GLint level, GLenum format, GLenum type, void *pixels); +angle::CallCapture CaptureGetCompressedTexImageANGLE(const State &glState, + bool isCallValid, + TextureTarget targetPacked, + GLint level, + void *pixels); angle::CallCapture CaptureGetRenderbufferImageANGLE(const State &glState, bool isCallValid, GLenum target, GLenum format, GLenum type, @@ -247,10 +254,12 @@ DrawElementsType typePacked, const GLvoid *const *indices, const GLsizei *instanceCounts, GLsizei drawcount); +// GL_ANGLE_pack_reverse_row_order + // GL_ANGLE_program_binary // GL_ANGLE_provoking_vertex angle::CallCapture CaptureProvokingVertexANGLE(const State &glState, bool isCallValid, @@ -769,10 +778,14 @@ bool isCallValid, SemaphoreID semaphorePacked, HandleType handleTypePacked, GLuint handle); +// GL_ANGLE_texture_compression_dxt3 + +// GL_ANGLE_texture_compression_dxt5 + // GL_ANGLE_texture_external_update angle::CallCapture CaptureTexImage2DExternalANGLE(const State &glState, bool isCallValid, TextureTarget targetPacked, GLint level, @@ -803,18 +816,24 @@ angle::CallCapture CaptureSampleMaskiANGLE(const State &glState, bool isCallValid, GLuint maskNumber, GLbitfield mask); +// GL_ANGLE_texture_usage + // GL_ANGLE_translated_shader_source angle::CallCapture CaptureGetTranslatedShaderSourceANGLE(const State &glState, bool isCallValid, ShaderProgramID shaderPacked, GLsizei bufsize, GLsizei *length, GLchar *source); +// GL_APPLE_clip_distance + +// GL_ARB_sync + // GL_CHROMIUM_bind_uniform_location angle::CallCapture CaptureBindUniformLocationCHROMIUM(const State &glState, bool isCallValid, ShaderProgramID programPacked, UniformLocation locationPacked, @@ -867,10 +886,22 @@ GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked); // GL_EXT_EGL_image_array +// GL_EXT_EGL_image_storage +angle::CallCapture CaptureEGLImageTargetTexStorageEXT(const State &glState, + bool isCallValid, + GLenum target, + GLeglImageOES image, + const GLint *attrib_list); +angle::CallCapture CaptureEGLImageTargetTextureStorageEXT(const State &glState, + bool isCallValid, + GLuint texture, + GLeglImageOES image, + const GLint *attrib_list); + // GL_EXT_YUV_target // GL_EXT_blend_func_extended angle::CallCapture CaptureBindFragDataLocationEXT(const State &glState, bool isCallValid, @@ -893,10 +924,12 @@ ShaderProgramID programPacked, GLenum programInterface, const GLchar *name, GLint returnValue); +// GL_EXT_blend_minmax + // GL_EXT_buffer_storage angle::CallCapture CaptureBufferStorageEXT(const State &glState, bool isCallValid, BufferBinding targetPacked, GLsizeiptr size, @@ -907,10 +940,16 @@ angle::CallCapture CaptureClipControlEXT(const State &glState, bool isCallValid, GLenum origin, GLenum depth); +// GL_EXT_clip_cull_distance + +// GL_EXT_color_buffer_float + +// GL_EXT_color_buffer_half_float + // GL_EXT_copy_image angle::CallCapture CaptureCopyImageSubDataEXT(const State &glState, bool isCallValid, GLuint srcName, GLenum srcTarget, @@ -1112,18 +1151,22 @@ GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +// GL_EXT_float_blend + // GL_EXT_geometry_shader angle::CallCapture CaptureFramebufferTextureEXT(const State &glState, bool isCallValid, GLenum target, GLenum attachment, TextureID texturePacked, GLint level); +// GL_EXT_gpu_shader5 + // GL_EXT_instanced_arrays angle::CallCapture CaptureDrawArraysInstancedEXT(const State &glState, bool isCallValid, PrimitiveMode modePacked, GLint start, @@ -1271,10 +1314,14 @@ GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +// GL_EXT_protected_textures + +// GL_EXT_pvrtc_sRGB + // GL_EXT_read_format_bgra // GL_EXT_robustness angle::CallCapture CaptureGetGraphicsResetStatusEXT(const State &glState, bool isCallValid, @@ -1302,10 +1349,12 @@ GLsizei bufSize, void *data); // GL_EXT_sRGB +// GL_EXT_sRGB_write_control + // GL_EXT_semaphore angle::CallCapture CaptureDeleteSemaphoresEXT(const State &glState, bool isCallValid, GLsizei n, const SemaphoreID *semaphoresPacked); @@ -1618,10 +1667,16 @@ // GL_EXT_shader_framebuffer_fetch_non_coherent angle::CallCapture CaptureFramebufferFetchBarrierEXT(const State &glState, bool isCallValid); // GL_EXT_shader_io_blocks +// GL_EXT_shader_non_constant_global_initializers + +// GL_EXT_shader_texture_lod + +// GL_EXT_shadow_samplers + // GL_EXT_tessellation_shader angle::CallCapture CapturePatchParameteriEXT(const State &glState, bool isCallValid, GLenum pname, GLint value); @@ -1696,14 +1751,22 @@ // GL_EXT_texture_filter_anisotropic // GL_EXT_texture_format_BGRA8888 +// GL_EXT_texture_format_sRGB_override + +// GL_EXT_texture_norm16 + +// GL_EXT_texture_rg + // GL_EXT_texture_sRGB_R8 // GL_EXT_texture_sRGB_RG8 +// GL_EXT_texture_sRGB_decode + // GL_EXT_texture_storage angle::CallCapture CaptureTexStorage1DEXT(const State &glState, bool isCallValid, GLenum target, GLsizei levels, @@ -1723,10 +1786,18 @@ GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +// GL_EXT_texture_type_2_10_10_10_REV + +// GL_EXT_unpack_subimage + +// GL_IMG_texture_compression_pvrtc + +// GL_IMG_texture_compression_pvrtc2 + // GL_KHR_blend_equation_advanced angle::CallCapture CaptureBlendBarrierKHR(const State &glState, bool isCallValid); // GL_KHR_debug angle::CallCapture CaptureDebugMessageCallbackKHR(const State &glState, @@ -1794,15 +1865,25 @@ GLenum source, GLuint id, GLsizei length, const GLchar *message); +// GL_KHR_no_error + // GL_KHR_parallel_shader_compile angle::CallCapture CaptureMaxShaderCompilerThreadsKHR(const State &glState, bool isCallValid, GLuint count); +// GL_KHR_robust_buffer_access_behavior + +// GL_KHR_texture_compression_astc_hdr + +// GL_KHR_texture_compression_astc_ldr + +// GL_KHR_texture_compression_astc_sliced_3d + // GL_NV_fence angle::CallCapture CaptureDeleteFencesNV(const State &glState, bool isCallValid, GLsizei n, const FenceNVID *fencesPacked); @@ -1843,20 +1924,34 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +// GL_NV_pixel_buffer_object + +// GL_NV_read_depth + +// GL_NV_read_stencil + +// GL_NV_robustness_video_memory_purge + +// GL_NV_shader_noperspective_interpolation + // GL_OES_EGL_image angle::CallCapture CaptureEGLImageTargetRenderbufferStorageOES(const State &glState, bool isCallValid, GLenum target, GLeglImageOES image); angle::CallCapture CaptureEGLImageTargetTexture2DOES(const State &glState, bool isCallValid, TextureType targetPacked, GLeglImageOES image); +// GL_OES_EGL_image_external + +// GL_OES_EGL_image_external_essl3 + // GL_OES_compressed_ETC1_RGB8_texture // GL_OES_copy_image angle::CallCapture CaptureCopyImageSubDataOES(const State &glState, bool isCallValid, @@ -1874,12 +1969,16 @@ GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +// GL_OES_depth24 + // GL_OES_depth32 +// GL_OES_depth_texture + // GL_OES_draw_buffers_indexed angle::CallCapture CaptureBlendEquationSeparateiOES(const State &glState, bool isCallValid, GLuint buf, GLenum modeRGB, @@ -1985,10 +2084,14 @@ GLfixed height); angle::CallCapture CaptureDrawTexxvOES(const State &glState, bool isCallValid, const GLfixed *coords); +// GL_OES_element_index_uint + +// GL_OES_fbo_render_mipmap + // GL_OES_framebuffer_object angle::CallCapture CaptureBindFramebufferOES(const State &glState, bool isCallValid, GLenum target, FramebufferID framebufferPacked); @@ -2056,10 +2159,18 @@ GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +// GL_OES_geometry_shader +angle::CallCapture CaptureFramebufferTextureOES(const State &glState, + bool isCallValid, + GLenum target, + GLenum attachment, + TextureID texturePacked, + GLint level); + // GL_OES_get_program_binary angle::CallCapture CaptureGetProgramBinaryOES(const State &glState, bool isCallValid, ShaderProgramID programPacked, GLsizei bufSize, @@ -2105,31 +2216,47 @@ GLint size, GLenum type, GLsizei stride, const void *pointer); +// GL_OES_packed_depth_stencil + // GL_OES_point_size_array angle::CallCapture CapturePointSizePointerOES(const State &glState, bool isCallValid, VertexAttribType typePacked, GLsizei stride, const void *pointer); +// GL_OES_point_sprite + // GL_OES_query_matrix angle::CallCapture CaptureQueryMatrixxOES(const State &glState, bool isCallValid, GLfixed *mantissa, GLint *exponent, GLbitfield returnValue); +// GL_OES_rgb8_rgba8 + // GL_OES_sample_shading angle::CallCapture CaptureMinSampleShadingOES(const State &glState, bool isCallValid, GLfloat value); +// GL_OES_sample_variables + +// GL_OES_shader_image_atomic + // GL_OES_shader_io_blocks +// GL_OES_shader_multisample_interpolation + +// GL_OES_standard_derivatives + +// GL_OES_surfaceless_context + // GL_OES_texture_3D angle::CallCapture CaptureCompressedTexImage3DOES(const State &glState, bool isCallValid, TextureTarget targetPacked, GLint level, @@ -2252,10 +2379,12 @@ GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); +// GL_OES_texture_compression_astc + // GL_OES_texture_cube_map angle::CallCapture CaptureGetTexGenfvOES(const State &glState, bool isCallValid, GLenum coord, GLenum pname, @@ -2301,12 +2430,20 @@ GLenum pname, const GLfixed *params); // GL_OES_texture_cube_map_array +// GL_OES_texture_float + +// GL_OES_texture_float_linear + // GL_OES_texture_half_float +// GL_OES_texture_half_float_linear + +// GL_OES_texture_npot + // GL_OES_texture_stencil8 // GL_OES_texture_storage_multisample_2d_array angle::CallCapture CaptureTexStorage3DMultisampleOES(const State &glState, bool isCallValid, @@ -2333,10 +2470,14 @@ angle::CallCapture CaptureIsVertexArrayOES(const State &glState, bool isCallValid, VertexArrayID arrayPacked, GLboolean returnValue); +// GL_OES_vertex_half_float + +// GL_OES_vertex_type_10_10_10_2 + // GL_OVR_multiview angle::CallCapture CaptureFramebufferTextureMultiviewOVR(const State &glState, bool isCallValid, GLenum target, GLenum attachment, @@ -2464,10 +2605,16 @@ GLint level, GLenum format, GLenum type, void *pixels, angle::ParamCapture *paramCapture); +void CaptureGetCompressedTexImageANGLE_pixels(const State &glState, + bool isCallValid, + TextureTarget targetPacked, + GLint level, + void *pixels, + angle::ParamCapture *paramCapture); void CaptureGetRenderbufferImageANGLE_pixels(const State &glState, bool isCallValid, GLenum target, GLenum format, GLenum type, @@ -3624,10 +3771,22 @@ bool isCallValid, ShaderProgramID programPacked, UniformLocation locationPacked, const GLchar *name, angle::ParamCapture *paramCapture); +void CaptureEGLImageTargetTexStorageEXT_attrib_list(const State &glState, + bool isCallValid, + GLenum target, + GLeglImageOES image, + const GLint *attrib_list, + angle::ParamCapture *paramCapture); +void CaptureEGLImageTargetTextureStorageEXT_attrib_list(const State &glState, + bool isCallValid, + GLuint texture, + GLeglImageOES image, + const GLint *attrib_list, + angle::ParamCapture *paramCapture); void CaptureBindFragDataLocationEXT_name(const State &glState, bool isCallValid, ShaderProgramID programPacked, GLuint color, const GLchar *name, diff --git a/gfx/angle/checkout/src/libANGLE/capture/frame_capture_utils_autogen.h b/gfx/angle/checkout/src/libANGLE/capture/frame_capture_utils_autogen.h --- a/gfx/angle/checkout/src/libANGLE/capture/frame_capture_utils_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/capture/frame_capture_utils_autogen.h @@ -15,19 +15,46 @@ namespace angle { enum class ParamType { + TAHardwareBufferConstPointer, TAlphaTestFunc, TBufferBinding, TBufferID, TBufferIDConstPointer, TBufferIDPointer, TBufferUsage, TClientVertexArrayType, + TCompositorTiming, TCullFaceMode, TDrawElementsType, + TEGLAttrib, + TEGLClientBuffer, + TEGLConfig, + TEGLContext, + TEGLDEBUGPROCKHR, + TEGLDeviceEXT, + TEGLDisplay, + TEGLFrameTokenANGLE, + TEGLGetBlobFuncANDROID, + TEGLImage, + TEGLLabelKHR, + TEGLNativeDisplayType, + TEGLNativePixmapType, + TEGLNativeWindowType, + TEGLObjectKHR, + TEGLSetBlobFuncANDROID, + TEGLStreamKHR, + TEGLSurface, + TEGLSync, + TEGLTime, + TEGLTimeKHR, + TEGLenum, + TEGLint, + TEGLnsecsANDROID, + TEGLuint64KHR, TFenceNVID, TFenceNVIDConstPointer, TFenceNVIDPointer, TFramebufferID, TFramebufferIDConstPointer, @@ -93,10 +120,11 @@ TMaterialParameter, TMatrixType, TMemoryObjectID, TMemoryObjectIDConstPointer, TMemoryObjectIDPointer, + TObjectType, TPointParameter, TPrimitiveMode, TProgramPipelineID, TProgramPipelineIDConstPointer, TProgramPipelineIDPointer, @@ -124,38 +152,67 @@ TTextureID, TTextureIDConstPointer, TTextureIDPointer, TTextureTarget, TTextureType, + TTimestamp, TTransformFeedbackID, TTransformFeedbackIDConstPointer, TTransformFeedbackIDPointer, TUniformBlockIndex, TUniformLocation, TVertexArrayID, TVertexArrayIDConstPointer, TVertexArrayIDPointer, TVertexAttribType, + TcharConstPointer, TvoidConstPointer, TvoidConstPointerPointer, TvoidPointer, TvoidPointerPointer, }; -constexpr uint32_t kParamTypeCount = 122; +constexpr uint32_t kParamTypeCount = 152; union ParamValue { + const AHardwareBuffer *AHardwareBufferConstPointerVal; gl::AlphaTestFunc AlphaTestFuncVal; gl::BufferBinding BufferBindingVal; gl::BufferID BufferIDVal; const gl::BufferID *BufferIDConstPointerVal; gl::BufferID *BufferIDPointerVal; gl::BufferUsage BufferUsageVal; gl::ClientVertexArrayType ClientVertexArrayTypeVal; + egl::CompositorTiming CompositorTimingVal; gl::CullFaceMode CullFaceModeVal; gl::DrawElementsType DrawElementsTypeVal; + EGLAttrib EGLAttribVal; + EGLClientBuffer EGLClientBufferVal; + EGLConfig EGLConfigVal; + EGLContext EGLContextVal; + EGLDEBUGPROCKHR EGLDEBUGPROCKHRVal; + EGLDeviceEXT EGLDeviceEXTVal; + EGLDisplay EGLDisplayVal; + EGLFrameTokenANGLE EGLFrameTokenANGLEVal; + EGLGetBlobFuncANDROID EGLGetBlobFuncANDROIDVal; + EGLImage EGLImageVal; + EGLLabelKHR EGLLabelKHRVal; + EGLNativeDisplayType EGLNativeDisplayTypeVal; + EGLNativePixmapType EGLNativePixmapTypeVal; + EGLNativeWindowType EGLNativeWindowTypeVal; + EGLObjectKHR EGLObjectKHRVal; + EGLSetBlobFuncANDROID EGLSetBlobFuncANDROIDVal; + EGLStreamKHR EGLStreamKHRVal; + EGLSurface EGLSurfaceVal; + EGLSync EGLSyncVal; + EGLTime EGLTimeVal; + EGLTimeKHR EGLTimeKHRVal; + EGLenum EGLenumVal; + EGLint EGLintVal; + EGLnsecsANDROID EGLnsecsANDROIDVal; + EGLuint64KHR EGLuint64KHRVal; gl::FenceNVID FenceNVIDVal; const gl::FenceNVID *FenceNVIDConstPointerVal; gl::FenceNVID *FenceNVIDPointerVal; gl::FramebufferID FramebufferIDVal; const gl::FramebufferID *FramebufferIDConstPointerVal; @@ -221,10 +278,11 @@ gl::MaterialParameter MaterialParameterVal; gl::MatrixType MatrixTypeVal; gl::MemoryObjectID MemoryObjectIDVal; const gl::MemoryObjectID *MemoryObjectIDConstPointerVal; gl::MemoryObjectID *MemoryObjectIDPointerVal; + egl::ObjectType ObjectTypeVal; gl::PointParameter PointParameterVal; gl::PrimitiveMode PrimitiveModeVal; gl::ProgramPipelineID ProgramPipelineIDVal; const gl::ProgramPipelineID *ProgramPipelineIDConstPointerVal; gl::ProgramPipelineID *ProgramPipelineIDPointerVal; @@ -252,29 +310,38 @@ gl::TextureID TextureIDVal; const gl::TextureID *TextureIDConstPointerVal; gl::TextureID *TextureIDPointerVal; gl::TextureTarget TextureTargetVal; gl::TextureType TextureTypeVal; + egl::Timestamp TimestampVal; gl::TransformFeedbackID TransformFeedbackIDVal; const gl::TransformFeedbackID *TransformFeedbackIDConstPointerVal; gl::TransformFeedbackID *TransformFeedbackIDPointerVal; gl::UniformBlockIndex UniformBlockIndexVal; gl::UniformLocation UniformLocationVal; gl::VertexArrayID VertexArrayIDVal; const gl::VertexArrayID *VertexArrayIDConstPointerVal; gl::VertexArrayID *VertexArrayIDPointerVal; gl::VertexAttribType VertexAttribTypeVal; + const char *charConstPointerVal; const void *voidConstPointerVal; const void *const *voidConstPointerPointerVal; void *voidPointerVal; void **voidPointerPointerVal; }; template T GetParamVal(const ParamValue &value); template <> +inline const AHardwareBuffer *GetParamVal(const ParamValue &value) +{ + return value.AHardwareBufferConstPointerVal; +} + +template <> inline gl::AlphaTestFunc GetParamVal( const ParamValue &value) { return value.AlphaTestFuncVal; } @@ -319,10 +386,17 @@ { return value.ClientVertexArrayTypeVal; } template <> +inline egl::CompositorTiming GetParamVal( + const ParamValue &value) +{ + return value.CompositorTimingVal; +} + +template <> inline gl::CullFaceMode GetParamVal( const ParamValue &value) { return value.CullFaceModeVal; } @@ -333,10 +407,169 @@ { return value.DrawElementsTypeVal; } template <> +inline EGLAttrib GetParamVal(const ParamValue &value) +{ + return value.EGLAttribVal; +} + +template <> +inline EGLClientBuffer GetParamVal( + const ParamValue &value) +{ + return value.EGLClientBufferVal; +} + +template <> +inline EGLConfig GetParamVal(const ParamValue &value) +{ + return value.EGLConfigVal; +} + +template <> +inline EGLContext GetParamVal(const ParamValue &value) +{ + return value.EGLContextVal; +} + +template <> +inline EGLDEBUGPROCKHR GetParamVal( + const ParamValue &value) +{ + return value.EGLDEBUGPROCKHRVal; +} + +template <> +inline EGLDeviceEXT GetParamVal(const ParamValue &value) +{ + return value.EGLDeviceEXTVal; +} + +template <> +inline EGLDisplay GetParamVal(const ParamValue &value) +{ + return value.EGLDisplayVal; +} + +template <> +inline EGLFrameTokenANGLE GetParamVal( + const ParamValue &value) +{ + return value.EGLFrameTokenANGLEVal; +} + +template <> +inline EGLGetBlobFuncANDROID GetParamVal( + const ParamValue &value) +{ + return value.EGLGetBlobFuncANDROIDVal; +} + +template <> +inline EGLImage GetParamVal(const ParamValue &value) +{ + return value.EGLImageVal; +} + +template <> +inline EGLLabelKHR GetParamVal(const ParamValue &value) +{ + return value.EGLLabelKHRVal; +} + +template <> +inline EGLNativeDisplayType GetParamVal( + const ParamValue &value) +{ + return value.EGLNativeDisplayTypeVal; +} + +template <> +inline EGLNativePixmapType GetParamVal( + const ParamValue &value) +{ + return value.EGLNativePixmapTypeVal; +} + +template <> +inline EGLNativeWindowType GetParamVal( + const ParamValue &value) +{ + return value.EGLNativeWindowTypeVal; +} + +template <> +inline EGLObjectKHR GetParamVal(const ParamValue &value) +{ + return value.EGLObjectKHRVal; +} + +template <> +inline EGLSetBlobFuncANDROID GetParamVal( + const ParamValue &value) +{ + return value.EGLSetBlobFuncANDROIDVal; +} + +template <> +inline EGLStreamKHR GetParamVal(const ParamValue &value) +{ + return value.EGLStreamKHRVal; +} + +template <> +inline EGLSurface GetParamVal(const ParamValue &value) +{ + return value.EGLSurfaceVal; +} + +template <> +inline EGLSync GetParamVal(const ParamValue &value) +{ + return value.EGLSyncVal; +} + +template <> +inline EGLTime GetParamVal(const ParamValue &value) +{ + return value.EGLTimeVal; +} + +template <> +inline EGLTimeKHR GetParamVal(const ParamValue &value) +{ + return value.EGLTimeKHRVal; +} + +template <> +inline EGLenum GetParamVal(const ParamValue &value) +{ + return value.EGLenumVal; +} + +template <> +inline EGLint GetParamVal(const ParamValue &value) +{ + return value.EGLintVal; +} + +template <> +inline EGLnsecsANDROID GetParamVal( + const ParamValue &value) +{ + return value.EGLnsecsANDROIDVal; +} + +template <> +inline EGLuint64KHR GetParamVal(const ParamValue &value) +{ + return value.EGLuint64KHRVal; +} + +template <> inline gl::FenceNVID GetParamVal(const ParamValue &value) { return value.FenceNVIDVal; } @@ -780,10 +1013,16 @@ { return value.MemoryObjectIDPointerVal; } template <> +inline egl::ObjectType GetParamVal(const ParamValue &value) +{ + return value.ObjectTypeVal; +} + +template <> inline gl::PointParameter GetParamVal( const ParamValue &value) { return value.PointParameterVal; } @@ -993,10 +1232,16 @@ { return value.TextureTypeVal; } template <> +inline egl::Timestamp GetParamVal(const ParamValue &value) +{ + return value.TimestampVal; +} + +template <> inline gl::TransformFeedbackID GetParamVal(const ParamValue &value) { return value.TransformFeedbackIDVal; } @@ -1057,10 +1302,16 @@ { return value.VertexAttribTypeVal; } template <> +inline const char *GetParamVal(const ParamValue &value) +{ + return value.charConstPointerVal; +} + +template <> inline const void *GetParamVal(const ParamValue &value) { return value.voidConstPointerVal; } @@ -1093,10 +1344,12 @@ template T AccessParamValue(ParamType paramType, const ParamValue &value) { switch (paramType) { + case ParamType::TAHardwareBufferConstPointer: + return GetParamVal(value); case ParamType::TAlphaTestFunc: return GetParamVal(value); case ParamType::TBufferBinding: return GetParamVal(value); case ParamType::TBufferID: @@ -1107,14 +1360,66 @@ return GetParamVal(value); case ParamType::TBufferUsage: return GetParamVal(value); case ParamType::TClientVertexArrayType: return GetParamVal(value); + case ParamType::TCompositorTiming: + return GetParamVal(value); case ParamType::TCullFaceMode: return GetParamVal(value); case ParamType::TDrawElementsType: return GetParamVal(value); + case ParamType::TEGLAttrib: + return GetParamVal(value); + case ParamType::TEGLClientBuffer: + return GetParamVal(value); + case ParamType::TEGLConfig: + return GetParamVal(value); + case ParamType::TEGLContext: + return GetParamVal(value); + case ParamType::TEGLDEBUGPROCKHR: + return GetParamVal(value); + case ParamType::TEGLDeviceEXT: + return GetParamVal(value); + case ParamType::TEGLDisplay: + return GetParamVal(value); + case ParamType::TEGLFrameTokenANGLE: + return GetParamVal(value); + case ParamType::TEGLGetBlobFuncANDROID: + return GetParamVal(value); + case ParamType::TEGLImage: + return GetParamVal(value); + case ParamType::TEGLLabelKHR: + return GetParamVal(value); + case ParamType::TEGLNativeDisplayType: + return GetParamVal(value); + case ParamType::TEGLNativePixmapType: + return GetParamVal(value); + case ParamType::TEGLNativeWindowType: + return GetParamVal(value); + case ParamType::TEGLObjectKHR: + return GetParamVal(value); + case ParamType::TEGLSetBlobFuncANDROID: + return GetParamVal(value); + case ParamType::TEGLStreamKHR: + return GetParamVal(value); + case ParamType::TEGLSurface: + return GetParamVal(value); + case ParamType::TEGLSync: + return GetParamVal(value); + case ParamType::TEGLTime: + return GetParamVal(value); + case ParamType::TEGLTimeKHR: + return GetParamVal(value); + case ParamType::TEGLenum: + return GetParamVal(value); + case ParamType::TEGLint: + return GetParamVal(value); + case ParamType::TEGLnsecsANDROID: + return GetParamVal(value); + case ParamType::TEGLuint64KHR: + return GetParamVal(value); case ParamType::TFenceNVID: return GetParamVal(value); case ParamType::TFenceNVIDConstPointer: return GetParamVal(value); case ParamType::TFenceNVIDPointer: @@ -1249,10 +1554,12 @@ return GetParamVal(value); case ParamType::TMemoryObjectIDConstPointer: return GetParamVal(value); case ParamType::TMemoryObjectIDPointer: return GetParamVal(value); + case ParamType::TObjectType: + return GetParamVal(value); case ParamType::TPointParameter: return GetParamVal(value); case ParamType::TPrimitiveMode: return GetParamVal(value); case ParamType::TProgramPipelineID: @@ -1311,10 +1618,12 @@ return GetParamVal(value); case ParamType::TTextureTarget: return GetParamVal(value); case ParamType::TTextureType: return GetParamVal(value); + case ParamType::TTimestamp: + return GetParamVal(value); case ParamType::TTransformFeedbackID: return GetParamVal(value); case ParamType::TTransformFeedbackIDConstPointer: return GetParamVal(value); case ParamType::TTransformFeedbackIDPointer: @@ -1329,10 +1638,12 @@ return GetParamVal(value); case ParamType::TVertexArrayIDPointer: return GetParamVal(value); case ParamType::TVertexAttribType: return GetParamVal(value); + case ParamType::TcharConstPointer: + return GetParamVal(value); case ParamType::TvoidConstPointer: return GetParamVal(value); case ParamType::TvoidConstPointerPointer: return GetParamVal(value); case ParamType::TvoidPointer: @@ -1344,10 +1655,17 @@ template void SetParamVal(T valueIn, ParamValue *valueOut); template <> +inline void SetParamVal(const AHardwareBuffer *valueIn, + ParamValue *valueOut) +{ + valueOut->AHardwareBufferConstPointerVal = valueIn; +} + +template <> inline void SetParamVal(gl::AlphaTestFunc valueIn, ParamValue *valueOut) { valueOut->AlphaTestFuncVal = valueIn; } @@ -1388,10 +1706,17 @@ { valueOut->ClientVertexArrayTypeVal = valueIn; } template <> +inline void SetParamVal(egl::CompositorTiming valueIn, + ParamValue *valueOut) +{ + valueOut->CompositorTimingVal = valueIn; +} + +template <> inline void SetParamVal(gl::CullFaceMode valueIn, ParamValue *valueOut) { valueOut->CullFaceModeVal = valueIn; } @@ -1401,10 +1726,166 @@ { valueOut->DrawElementsTypeVal = valueIn; } template <> +inline void SetParamVal(EGLAttrib valueIn, ParamValue *valueOut) +{ + valueOut->EGLAttribVal = valueIn; +} + +template <> +inline void SetParamVal(EGLClientBuffer valueIn, ParamValue *valueOut) +{ + valueOut->EGLClientBufferVal = valueIn; +} + +template <> +inline void SetParamVal(EGLConfig valueIn, ParamValue *valueOut) +{ + valueOut->EGLConfigVal = valueIn; +} + +template <> +inline void SetParamVal(EGLContext valueIn, ParamValue *valueOut) +{ + valueOut->EGLContextVal = valueIn; +} + +template <> +inline void SetParamVal(EGLDEBUGPROCKHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLDEBUGPROCKHRVal = valueIn; +} + +template <> +inline void SetParamVal(EGLDeviceEXT valueIn, ParamValue *valueOut) +{ + valueOut->EGLDeviceEXTVal = valueIn; +} + +template <> +inline void SetParamVal(EGLDisplay valueIn, ParamValue *valueOut) +{ + valueOut->EGLDisplayVal = valueIn; +} + +template <> +inline void SetParamVal(EGLFrameTokenANGLE valueIn, + ParamValue *valueOut) +{ + valueOut->EGLFrameTokenANGLEVal = valueIn; +} + +template <> +inline void SetParamVal(EGLGetBlobFuncANDROID valueIn, + ParamValue *valueOut) +{ + valueOut->EGLGetBlobFuncANDROIDVal = valueIn; +} + +template <> +inline void SetParamVal(EGLImage valueIn, ParamValue *valueOut) +{ + valueOut->EGLImageVal = valueIn; +} + +template <> +inline void SetParamVal(EGLLabelKHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLLabelKHRVal = valueIn; +} + +template <> +inline void SetParamVal(EGLNativeDisplayType valueIn, + ParamValue *valueOut) +{ + valueOut->EGLNativeDisplayTypeVal = valueIn; +} + +template <> +inline void SetParamVal(EGLNativePixmapType valueIn, + ParamValue *valueOut) +{ + valueOut->EGLNativePixmapTypeVal = valueIn; +} + +template <> +inline void SetParamVal(EGLNativeWindowType valueIn, + ParamValue *valueOut) +{ + valueOut->EGLNativeWindowTypeVal = valueIn; +} + +template <> +inline void SetParamVal(EGLObjectKHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLObjectKHRVal = valueIn; +} + +template <> +inline void SetParamVal(EGLSetBlobFuncANDROID valueIn, + ParamValue *valueOut) +{ + valueOut->EGLSetBlobFuncANDROIDVal = valueIn; +} + +template <> +inline void SetParamVal(EGLStreamKHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLStreamKHRVal = valueIn; +} + +template <> +inline void SetParamVal(EGLSurface valueIn, ParamValue *valueOut) +{ + valueOut->EGLSurfaceVal = valueIn; +} + +template <> +inline void SetParamVal(EGLSync valueIn, ParamValue *valueOut) +{ + valueOut->EGLSyncVal = valueIn; +} + +template <> +inline void SetParamVal(EGLTime valueIn, ParamValue *valueOut) +{ + valueOut->EGLTimeVal = valueIn; +} + +template <> +inline void SetParamVal(EGLTimeKHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLTimeKHRVal = valueIn; +} + +template <> +inline void SetParamVal(EGLenum valueIn, ParamValue *valueOut) +{ + valueOut->EGLenumVal = valueIn; +} + +template <> +inline void SetParamVal(EGLint valueIn, ParamValue *valueOut) +{ + valueOut->EGLintVal = valueIn; +} + +template <> +inline void SetParamVal(EGLnsecsANDROID valueIn, ParamValue *valueOut) +{ + valueOut->EGLnsecsANDROIDVal = valueIn; +} + +template <> +inline void SetParamVal(EGLuint64KHR valueIn, ParamValue *valueOut) +{ + valueOut->EGLuint64KHRVal = valueIn; +} + +template <> inline void SetParamVal(gl::FenceNVID valueIn, ParamValue *valueOut) { valueOut->FenceNVIDVal = valueIn; } @@ -1839,10 +2320,16 @@ { valueOut->MemoryObjectIDPointerVal = valueIn; } template <> +inline void SetParamVal(egl::ObjectType valueIn, ParamValue *valueOut) +{ + valueOut->ObjectTypeVal = valueIn; +} + +template <> inline void SetParamVal(gl::PointParameter valueIn, ParamValue *valueOut) { valueOut->PointParameterVal = valueIn; } @@ -2045,10 +2532,16 @@ { valueOut->TextureTypeVal = valueIn; } template <> +inline void SetParamVal(egl::Timestamp valueIn, ParamValue *valueOut) +{ + valueOut->TimestampVal = valueIn; +} + +template <> inline void SetParamVal(gl::TransformFeedbackID valueIn, ParamValue *valueOut) { valueOut->TransformFeedbackIDVal = valueIn; } @@ -2108,10 +2601,16 @@ { valueOut->VertexAttribTypeVal = valueIn; } template <> +inline void SetParamVal(const char *valueIn, ParamValue *valueOut) +{ + valueOut->charConstPointerVal = valueIn; +} + +template <> inline void SetParamVal(const void *valueIn, ParamValue *valueOut) { valueOut->voidConstPointerVal = valueIn; } @@ -2143,10 +2642,13 @@ template void InitParamValue(ParamType paramType, T valueIn, ParamValue *valueOut) { switch (paramType) { + case ParamType::TAHardwareBufferConstPointer: + SetParamVal(valueIn, valueOut); + break; case ParamType::TAlphaTestFunc: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferBinding: SetParamVal(valueIn, valueOut); @@ -2164,16 +2666,94 @@ SetParamVal(valueIn, valueOut); break; case ParamType::TClientVertexArrayType: SetParamVal(valueIn, valueOut); break; + case ParamType::TCompositorTiming: + SetParamVal(valueIn, valueOut); + break; case ParamType::TCullFaceMode: SetParamVal(valueIn, valueOut); break; case ParamType::TDrawElementsType: SetParamVal(valueIn, valueOut); break; + case ParamType::TEGLAttrib: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLClientBuffer: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLConfig: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLContext: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLDEBUGPROCKHR: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLDeviceEXT: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLDisplay: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLFrameTokenANGLE: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLGetBlobFuncANDROID: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLImage: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLLabelKHR: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLNativeDisplayType: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLNativePixmapType: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLNativeWindowType: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLObjectKHR: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLSetBlobFuncANDROID: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLStreamKHR: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLSurface: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLSync: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLTime: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLTimeKHR: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLenum: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLint: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLnsecsANDROID: + SetParamVal(valueIn, valueOut); + break; + case ParamType::TEGLuint64KHR: + SetParamVal(valueIn, valueOut); + break; case ParamType::TFenceNVID: SetParamVal(valueIn, valueOut); break; case ParamType::TFenceNVIDConstPointer: SetParamVal(valueIn, valueOut); @@ -2377,10 +2957,13 @@ SetParamVal(valueIn, valueOut); break; case ParamType::TMemoryObjectIDPointer: SetParamVal(valueIn, valueOut); break; + case ParamType::TObjectType: + SetParamVal(valueIn, valueOut); + break; case ParamType::TPointParameter: SetParamVal(valueIn, valueOut); break; case ParamType::TPrimitiveMode: SetParamVal(valueIn, valueOut); @@ -2470,10 +3053,13 @@ SetParamVal(valueIn, valueOut); break; case ParamType::TTextureType: SetParamVal(valueIn, valueOut); break; + case ParamType::TTimestamp: + SetParamVal(valueIn, valueOut); + break; case ParamType::TTransformFeedbackID: SetParamVal(valueIn, valueOut); break; case ParamType::TTransformFeedbackIDConstPointer: SetParamVal(valueIn, valueOut); @@ -2497,10 +3083,13 @@ SetParamVal(valueIn, valueOut); break; case ParamType::TVertexAttribType: SetParamVal(valueIn, valueOut); break; + case ParamType::TcharConstPointer: + SetParamVal(valueIn, valueOut); + break; case ParamType::TvoidConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TvoidConstPointerPointer: SetParamVal(valueIn, valueOut); @@ -2539,8 +3128,90 @@ InvalidEnum = EnumCount }; ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType); const char *GetResourceIDTypeName(ResourceIDType resourceIDType); + +template +struct GetResourceIDTypeFromType; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Buffer; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::FenceNV; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Framebuffer; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::MemoryObject; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::ProgramPipeline; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Query; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Renderbuffer; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Sampler; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Semaphore; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::ShaderProgram; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::Texture; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::TransformFeedback; +}; + +template <> +struct GetResourceIDTypeFromType +{ + static constexpr ResourceIDType IDType = ResourceIDType::VertexArray; +}; + } // namespace angle #endif // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/capture/gl_enum_utils.h b/gfx/angle/checkout/src/libANGLE/capture/gl_enum_utils.h --- a/gfx/angle/checkout/src/libANGLE/capture/gl_enum_utils.h +++ b/gfx/angle/checkout/src/libANGLE/capture/gl_enum_utils.h @@ -19,10 +19,11 @@ const char *GLbooleanToString(unsigned int value); const char *GLenumToString(GLenumGroup enumGroup, unsigned int value); std::string GLbitfieldToString(GLenumGroup enumGroup, unsigned int value); void OutputGLenumString(std::ostream &out, GLenumGroup enumGroup, unsigned int value); void OutputGLbitfieldString(std::ostream &out, GLenumGroup enumGroup, unsigned int value); +const char *GLinternalFormatToString(unsigned int format); extern const char kUnknownGLenumString[]; } // namespace gl #endif // LIBANGLE_GL_ENUM_UTILS_H_ diff --git a/gfx/angle/checkout/src/libANGLE/format_map_autogen.cpp b/gfx/angle/checkout/src/libANGLE/format_map_autogen.cpp --- a/gfx/angle/checkout/src/libANGLE/format_map_autogen.cpp +++ b/gfx/angle/checkout/src/libANGLE/format_map_autogen.cpp @@ -1181,10 +1181,11 @@ { switch (internalFormat) { case GL_RG8: case GL_RG: + case GL_SRG8_EXT: return true; default: break; } break; diff --git a/gfx/angle/checkout/src/libANGLE/formatutils.h b/gfx/angle/checkout/src/libANGLE/formatutils.h --- a/gfx/angle/checkout/src/libANGLE/formatutils.h +++ b/gfx/angle/checkout/src/libANGLE/formatutils.h @@ -14,10 +14,11 @@ #include #include "angle_gl.h" #include "common/android_util.h" #include "libANGLE/Caps.h" +#include "libANGLE/Config.h" #include "libANGLE/Error.h" #include "libANGLE/Version.h" #include "libANGLE/VertexAttribute.h" #include "libANGLE/angletypes.h" @@ -64,10 +65,11 @@ return GL_BGRA8_SRGB_ANGLEX; case GL_RGBA8: return GL_SRGB8_ALPHA8; case GL_RGB8: case GL_BGRX8_ANGLEX: + case GL_RGBX8_ANGLEX: return GL_SRGB8; case GL_RGBA16F: return GL_RGBA16F; default: return GL_NONE; @@ -290,10 +292,13 @@ typedef angle::HashMap> InternalFormatInfoMap; const InternalFormatInfoMap &GetInternalFormatMap(); int GetAndroidHardwareBufferFormatFromChannelSizes(const egl::AttributeMap &attribMap); +GLenum GetConfigColorBufferFormat(const egl::Config *config); +GLenum GetConfigDepthStencilBufferFormat(const egl::Config *config); + ANGLE_INLINE int GetNativeVisualID(const InternalFormat &internalFormat) { int nativeVisualId = 0; #if defined(ANGLE_PLATFORM_ANDROID) nativeVisualId = @@ -352,10 +357,11 @@ angle::FormatID GetVertexFormatID(const VertexAttribute &attrib, VertexAttribType currentValueType); angle::FormatID GetCurrentValueFormatID(VertexAttribType currentValueType); const VertexFormat &GetVertexFormatFromID(angle::FormatID vertexFormatID); size_t GetVertexFormatSize(angle::FormatID vertexFormatID); +angle::FormatID ConvertFormatSignedness(const angle::Format &format); ANGLE_INLINE bool IsS3TCFormat(const GLenum format) { switch (format) { @@ -387,10 +393,25 @@ default: return false; } } +ANGLE_INLINE bool IsBPTCFormat(const GLenum format) +{ + switch (format) + { + case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT: + case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: + case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: + case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: + return true; + + default: + return false; + } +} + ANGLE_INLINE bool IsASTC2DFormat(const GLenum format) { if ((format >= GL_COMPRESSED_RGBA_ASTC_4x4_KHR && format <= GL_COMPRESSED_RGBA_ASTC_12x12_KHR) || (format >= GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR && @@ -399,10 +420,23 @@ return true; } return false; } +ANGLE_INLINE bool IsETC1Format(const GLenum format) +{ + switch (format) + { + case GL_ETC1_RGB8_OES: + case GL_ETC1_SRGB8_NV: + return true; + + default: + return false; + } +} + ANGLE_INLINE bool IsETC2EACFormat(const GLenum format) { // ES 3.1, Table 8.19 switch (format) { @@ -483,8 +517,34 @@ else { return ComponentType::Float; } } + +constexpr std::size_t kMaxYuvPlaneCount = 3; +template +using YuvPlaneArray = std::array; + +struct YuvFormatInfo +{ + // Sized types only. + YuvFormatInfo(GLenum internalFormat, const Extents &yPlaneExtent); + + GLenum glInternalFormat; + uint32_t planeCount; + YuvPlaneArray planeBpp; + YuvPlaneArray planeExtent; + YuvPlaneArray planePitch; + YuvPlaneArray planeSize; + YuvPlaneArray planeOffset; +}; + +bool IsYuvFormat(GLenum format); +uint32_t GetPlaneCount(GLenum format); +uint32_t GetYPlaneBpp(GLenum format); +uint32_t GetChromaPlaneBpp(GLenum format); +void GetSubSampleFactor(GLenum format, + int *horizontalSubsampleFactor, + int *verticalSubsampleFactor); } // namespace gl #endif // LIBANGLE_FORMATUTILS_H_ diff --git a/gfx/angle/checkout/src/libANGLE/formatutils.cpp b/gfx/angle/checkout/src/libANGLE/formatutils.cpp --- a/gfx/angle/checkout/src/libANGLE/formatutils.cpp +++ b/gfx/angle/checkout/src/libANGLE/formatutils.cpp @@ -140,23 +140,26 @@ } // R8, RG8 static bool SizedRGSupport(const Version &clientVersion, const Extensions &extensions) { - return clientVersion >= Version(3, 0) || (extensions.textureStorage && extensions.textureRG); + return clientVersion >= Version(3, 0) || + (extensions.textureStorageEXT && extensions.textureRgEXT); } // R16F, RG16F with HALF_FLOAT_OES type static bool SizedHalfFloatOESRGSupport(const Version &clientVersion, const Extensions &extensions) { - return extensions.textureStorage && extensions.textureHalfFloat && extensions.textureRG; + return extensions.textureStorageEXT && extensions.textureHalfFloatOES && + extensions.textureRgEXT; } static bool SizedHalfFloatOESRGTextureAttachmentSupport(const Version &clientVersion, const Extensions &extensions) { - return SizedHalfFloatOESRGSupport(clientVersion, extensions) && extensions.colorBufferHalfFloat; + return SizedHalfFloatOESRGSupport(clientVersion, extensions) && + extensions.colorBufferHalfFloatEXT; } // R16F, RG16F with either HALF_FLOAT_OES or HALF_FLOAT types static bool SizedHalfFloatRGSupport(const Version &clientVersion, const Extensions &extensions) { @@ -177,12 +180,12 @@ { // HALF_FLOAT if (clientVersion >= Version(3, 0)) { // WebGL 2 supports EXT_color_buffer_half_float. - return extensions.colorBufferFloat || - (extensions.webglCompatibility && extensions.colorBufferHalfFloat); + return extensions.colorBufferFloatEXT || + (extensions.webglCompatibilityANGLE && extensions.colorBufferHalfFloatEXT); } // HALF_FLOAT_OES else { return SizedHalfFloatOESRGTextureAttachmentSupport(clientVersion, extensions); @@ -191,24 +194,25 @@ static bool SizedHalfFloatRGRenderbufferSupport(const Version &clientVersion, const Extensions &extensions) { return (clientVersion >= Version(3, 0) || - (extensions.textureHalfFloat && extensions.textureRG)) && - (extensions.colorBufferFloat || extensions.colorBufferHalfFloat); + (extensions.textureHalfFloatOES && extensions.textureRgEXT)) && + (extensions.colorBufferFloatEXT || extensions.colorBufferHalfFloatEXT); } // RGB16F, RGBA16F with HALF_FLOAT_OES type static bool SizedHalfFloatOESSupport(const Version &clientVersion, const Extensions &extensions) { - return extensions.textureStorage && extensions.textureHalfFloat; + return extensions.textureStorageEXT && extensions.textureHalfFloatOES; } static bool SizedHalfFloatOESTextureAttachmentSupport(const Version &clientVersion, const Extensions &extensions) { - return SizedHalfFloatOESSupport(clientVersion, extensions) && extensions.colorBufferHalfFloat; + return SizedHalfFloatOESSupport(clientVersion, extensions) && + extensions.colorBufferHalfFloatEXT; } // RGB16F, RGBA16F with either HALF_FLOAT_OES or HALF_FLOAT types static bool SizedHalfFloatSupport(const Version &clientVersion, const Extensions &extensions) { @@ -232,11 +236,11 @@ return true; } // HALF_FLOAT_OES else { - return extensions.textureHalfFloatLinear; + return extensions.textureHalfFloatLinearOES; } } static bool SizedHalfFloatRGBTextureAttachmentSupport(const Version &clientVersion, const Extensions &extensions) @@ -246,11 +250,11 @@ { // It is unclear how EXT_color_buffer_half_float applies to ES3.0 and above, however, // dEQP GLES3 es3fFboColorbufferTests.cpp verifies that texture attachment of GL_RGB16F // is possible, so assume that all GLES implementations support it. // The WebGL version of the extension explicitly forbids RGB formats. - return extensions.colorBufferHalfFloat && !extensions.webglCompatibility; + return extensions.colorBufferHalfFloatEXT && !extensions.webglCompatibilityANGLE; } // HALF_FLOAT_OES else { return SizedHalfFloatOESTextureAttachmentSupport(clientVersion, extensions); @@ -258,24 +262,24 @@ } static bool SizedHalfFloatRGBRenderbufferSupport(const Version &clientVersion, const Extensions &extensions) { - return !extensions.webglCompatibility && - ((clientVersion >= Version(3, 0) || extensions.textureHalfFloat) && - extensions.colorBufferHalfFloat); + return !extensions.webglCompatibilityANGLE && + ((clientVersion >= Version(3, 0) || extensions.textureHalfFloatOES) && + extensions.colorBufferHalfFloatEXT); } static bool SizedHalfFloatRGBATextureAttachmentSupport(const Version &clientVersion, const Extensions &extensions) { // HALF_FLOAT if (clientVersion >= Version(3, 0)) { // WebGL 2 supports EXT_color_buffer_half_float. - return extensions.colorBufferFloat || - (extensions.webglCompatibility && extensions.colorBufferHalfFloat); + return extensions.colorBufferFloatEXT || + (extensions.webglCompatibilityANGLE && extensions.colorBufferHalfFloatEXT); } // HALF_FLOAT_OES else { return SizedHalfFloatOESTextureAttachmentSupport(clientVersion, extensions); @@ -283,50 +287,50 @@ } static bool SizedHalfFloatRGBARenderbufferSupport(const Version &clientVersion, const Extensions &extensions) { - return (clientVersion >= Version(3, 0) || extensions.textureHalfFloat) && - (extensions.colorBufferFloat || extensions.colorBufferHalfFloat); + return (clientVersion >= Version(3, 0) || extensions.textureHalfFloatOES) && + (extensions.colorBufferFloatEXT || extensions.colorBufferHalfFloatEXT); } // R32F, RG32F static bool SizedFloatRGSupport(const Version &clientVersion, const Extensions &extensions) { return clientVersion >= Version(3, 0) || - (extensions.textureStorage && extensions.textureFloatOES && extensions.textureRG); + (extensions.textureStorageEXT && extensions.textureFloatOES && extensions.textureRgEXT); } // RGB32F static bool SizedFloatRGBSupport(const Version &clientVersion, const Extensions &extensions) { return clientVersion >= Version(3, 0) || - (extensions.textureStorage && extensions.textureFloatOES) || - extensions.colorBufferFloatRGB; + (extensions.textureStorageEXT && extensions.textureFloatOES) || + extensions.colorBufferFloatRgbCHROMIUM; } // RGBA32F static bool SizedFloatRGBASupport(const Version &clientVersion, const Extensions &extensions) { return clientVersion >= Version(3, 0) || - (extensions.textureStorage && extensions.textureFloatOES) || - extensions.colorBufferFloatRGBA; + (extensions.textureStorageEXT && extensions.textureFloatOES) || + extensions.colorBufferFloatRgbaCHROMIUM; } static bool SizedFloatRGBARenderableSupport(const Version &clientVersion, const Extensions &extensions) { // This logic is the same for both Renderbuffers and TextureAttachment. - return extensions.colorBufferFloatRGBA || // ES2 - extensions.colorBufferFloat; // ES3 + return extensions.colorBufferFloatRgbaCHROMIUM || // ES2 + extensions.colorBufferFloatEXT; // ES3 } static bool Float32BlendableSupport(const Version &clientVersion, const Extensions &extensions) { // EXT_float_blend may be exposed on ES2 client contexts. Ensure that RGBA32F is renderable. - return (extensions.colorBufferFloatRGBA || extensions.colorBufferFloat) && - extensions.floatBlend; + return (extensions.colorBufferFloatRgbaCHROMIUM || extensions.colorBufferFloatEXT) && + extensions.floatBlendEXT; } InternalFormat::InternalFormat() : internalFormat(GL_NONE), sized(false), @@ -371,11 +375,11 @@ switch (format) { case GL_BGRA_EXT: // BGRA textures may be enabled but calling glReadPixels with BGRA is disallowed without // GL_EXT_texture_format_BGRA8888. Read as RGBA instead. - if (!extensions.readFormatBGRA) + if (!extensions.readFormatBgraEXT) { return GL_RGBA; } return GL_BGRA_EXT; @@ -595,10 +599,229 @@ ASSERT(!formatInfo.sized || (*map).count(formatInfo.internalFormat) == 0); ASSERT((*map)[formatInfo.internalFormat].count(formatInfo.type) == 0); (*map)[formatInfo.internalFormat][formatInfo.type] = formatInfo; } +// YuvFormatInfo implementation +YuvFormatInfo::YuvFormatInfo(GLenum internalFormat, const Extents &yPlaneExtent) +{ + ASSERT(gl::IsYuvFormat(internalFormat)); + ASSERT((gl::GetPlaneCount(internalFormat) > 0) && (gl::GetPlaneCount(internalFormat) <= 3)); + + glInternalFormat = internalFormat; + planeCount = gl::GetPlaneCount(internalFormat); + + // Chroma planes of a YUV format can be subsampled + int horizontalSubsampleFactor = 0; + int verticalSubsampleFactor = 0; + gl::GetSubSampleFactor(internalFormat, &horizontalSubsampleFactor, &verticalSubsampleFactor); + + // Compute plane Bpp + planeBpp[0] = gl::GetYPlaneBpp(internalFormat); + planeBpp[1] = gl::GetChromaPlaneBpp(internalFormat); + planeBpp[2] = (planeCount > 2) ? planeBpp[1] : 0; + + // Compute plane extent + planeExtent[0] = yPlaneExtent; + planeExtent[1] = {(yPlaneExtent.width / horizontalSubsampleFactor), + (yPlaneExtent.height / verticalSubsampleFactor), yPlaneExtent.depth}; + planeExtent[2] = (planeCount > 2) ? planeExtent[1] : Extents(); + + // Compute plane pitch + planePitch[0] = planeExtent[0].width * planeBpp[0]; + planePitch[1] = planeExtent[1].width * planeBpp[1]; + planePitch[2] = planeExtent[2].width * planeBpp[2]; + + // Compute plane size + planeSize[0] = planePitch[0] * planeExtent[0].height; + planeSize[1] = planePitch[1] * planeExtent[1].height; + planeSize[2] = planePitch[2] * planeExtent[2].height; + + // Compute plane offset + planeOffset[0] = 0; + planeOffset[1] = planeSize[0]; + planeOffset[2] = planeSize[0] + planeSize[1]; +} + +// YUV format related helpers +bool IsYuvFormat(GLenum format) +{ + switch (format) + { + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + case GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16R16_2PLANE_420_UNORM_ANGLE: + case GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE: + return true; + default: + return false; + } +} + +uint32_t GetPlaneCount(GLenum format) +{ + switch (format) + { + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + case GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16R16_2PLANE_420_UNORM_ANGLE: + return 2; + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + case GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE: + return 3; + default: + UNREACHABLE(); + return 0; + } +} + +uint32_t GetYPlaneBpp(GLenum format) +{ + switch (format) + { + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + return 1; + case GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16R16_2PLANE_420_UNORM_ANGLE: + case GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE: + return 2; + default: + UNREACHABLE(); + return 0; + } +} + +uint32_t GetChromaPlaneBpp(GLenum format) +{ + // 2 plane 420 YUV formats have CbCr channels interleaved. + // 3 plane 420 YUV formats have separate Cb and Cr planes. + switch (format) + { + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + return 1; + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + case GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE: + return 2; + case GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16R16_2PLANE_420_UNORM_ANGLE: + return 4; + default: + UNREACHABLE(); + return 0; + } +} + +void GetSubSampleFactor(GLenum format, int *horizontalSubsampleFactor, int *verticalSubsampleFactor) +{ + ASSERT(horizontalSubsampleFactor && verticalSubsampleFactor); + + switch (format) + { + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + case GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE: + case GL_G16_B16R16_2PLANE_420_UNORM_ANGLE: + case GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE: + *horizontalSubsampleFactor = 2; + *verticalSubsampleFactor = 2; + break; + default: + UNREACHABLE(); + break; + } +} + +struct FormatBits +{ + constexpr GLuint pixelBytes() const + { + return (red + green + blue + alpha + shared + unused) / 8; + } + constexpr GLuint componentCount() const + { + return ((red > 0) ? 1 : 0) + ((green > 0) ? 1 : 0) + ((blue > 0) ? 1 : 0) + + ((alpha > 0) ? 1 : 0); + } + constexpr bool valid() const + { + return ((red + green + blue + alpha + shared + unused) % 8) == 0; + } + + GLuint red; + GLuint green; + GLuint blue; + GLuint alpha; + GLuint unused; + GLuint shared; +}; + +template +constexpr FormatBits FB() +{ + constexpr FormatBits formatBits = {red, green, blue, alpha, unused, shared}; + static_assert(formatBits.valid(), "Invalid FormatBits"); + return formatBits; +} + +void AddRGBAXFormat(InternalFormatInfoMap *map, + GLenum internalFormat, + bool sized, + const FormatBits &formatBits, + GLenum format, + GLenum type, + GLenum componentType, + bool srgb, + InternalFormat::SupportCheckFunction textureSupport, + InternalFormat::SupportCheckFunction filterSupport, + InternalFormat::SupportCheckFunction textureAttachmentSupport, + InternalFormat::SupportCheckFunction renderbufferSupport, + InternalFormat::SupportCheckFunction blendSupport) +{ + ASSERT(formatBits.valid()); + + InternalFormat formatInfo; + formatInfo.internalFormat = internalFormat; + formatInfo.sized = sized; + formatInfo.sizedInternalFormat = + sized ? internalFormat : GetSizedFormatInternal(internalFormat, type); + formatInfo.redBits = formatBits.red; + formatInfo.greenBits = formatBits.green; + formatInfo.blueBits = formatBits.blue; + formatInfo.alphaBits = formatBits.alpha; + formatInfo.sharedBits = formatBits.shared; + formatInfo.pixelBytes = formatBits.pixelBytes(); + formatInfo.componentCount = formatBits.componentCount(); + formatInfo.format = format; + formatInfo.type = type; + formatInfo.componentType = componentType; + formatInfo.colorEncoding = (srgb ? GL_SRGB : GL_LINEAR); + formatInfo.textureSupport = textureSupport; + formatInfo.filterSupport = filterSupport; + formatInfo.textureAttachmentSupport = textureAttachmentSupport; + formatInfo.renderbufferSupport = renderbufferSupport; + formatInfo.blendSupport = blendSupport; + + InsertFormatInfo(map, formatInfo); +} + void AddRGBAFormat(InternalFormatInfoMap *map, GLenum internalFormat, bool sized, GLuint red, GLuint green, @@ -613,34 +836,13 @@ InternalFormat::SupportCheckFunction filterSupport, InternalFormat::SupportCheckFunction textureAttachmentSupport, InternalFormat::SupportCheckFunction renderbufferSupport, InternalFormat::SupportCheckFunction blendSupport) { - InternalFormat formatInfo; - formatInfo.internalFormat = internalFormat; - formatInfo.sized = sized; - formatInfo.sizedInternalFormat = - sized ? internalFormat : GetSizedFormatInternal(internalFormat, type); - formatInfo.redBits = red; - formatInfo.greenBits = green; - formatInfo.blueBits = blue; - formatInfo.alphaBits = alpha; - formatInfo.sharedBits = shared; - formatInfo.pixelBytes = (red + green + blue + alpha + shared) / 8; - formatInfo.componentCount = - ((red > 0) ? 1 : 0) + ((green > 0) ? 1 : 0) + ((blue > 0) ? 1 : 0) + ((alpha > 0) ? 1 : 0); - formatInfo.format = format; - formatInfo.type = type; - formatInfo.componentType = componentType; - formatInfo.colorEncoding = (srgb ? GL_SRGB : GL_LINEAR); - formatInfo.textureSupport = textureSupport; - formatInfo.filterSupport = filterSupport; - formatInfo.textureAttachmentSupport = textureAttachmentSupport; - formatInfo.renderbufferSupport = renderbufferSupport; - formatInfo.blendSupport = blendSupport; - - InsertFormatInfo(map, formatInfo); + return AddRGBAXFormat(map, internalFormat, sized, {red, green, blue, alpha, 0, shared}, format, + type, componentType, srgb, textureSupport, filterSupport, + textureAttachmentSupport, renderbufferSupport, blendSupport); } static void AddLUMAFormat(InternalFormatInfoMap *map, GLenum internalFormat, bool sized, @@ -749,10 +951,55 @@ formatInfo.blendSupport = blendSupport; InsertFormatInfo(map, formatInfo); } +void AddYUVFormat(InternalFormatInfoMap *map, + GLenum internalFormat, + bool sized, + GLuint cr, + GLuint y, + GLuint cb, + GLuint alpha, + GLuint shared, + GLenum format, + GLenum type, + GLenum componentType, + bool srgb, + InternalFormat::SupportCheckFunction textureSupport, + InternalFormat::SupportCheckFunction filterSupport, + InternalFormat::SupportCheckFunction textureAttachmentSupport, + InternalFormat::SupportCheckFunction renderbufferSupport, + InternalFormat::SupportCheckFunction blendSupport) +{ + ASSERT(sized); + + InternalFormat formatInfo; + formatInfo.internalFormat = internalFormat; + formatInfo.sized = sized; + formatInfo.sizedInternalFormat = internalFormat; + formatInfo.redBits = cr; + formatInfo.greenBits = y; + formatInfo.blueBits = cb; + formatInfo.alphaBits = alpha; + formatInfo.sharedBits = shared; + formatInfo.pixelBytes = (cr + y + cb + alpha + shared) / 8; + formatInfo.componentCount = + ((cr > 0) ? 1 : 0) + ((y > 0) ? 1 : 0) + ((cb > 0) ? 1 : 0) + ((alpha > 0) ? 1 : 0); + formatInfo.format = format; + formatInfo.type = type; + formatInfo.componentType = componentType; + formatInfo.colorEncoding = (srgb ? GL_SRGB : GL_LINEAR); + formatInfo.textureSupport = textureSupport; + formatInfo.filterSupport = filterSupport; + formatInfo.textureAttachmentSupport = textureAttachmentSupport; + formatInfo.renderbufferSupport = renderbufferSupport; + formatInfo.blendSupport = blendSupport; + + InsertFormatInfo(map, formatInfo); +} + // Notes: // 1. "Texture supported" includes all the means by which texture can be created, however, // GL_EXT_texture_storage in ES2 is a special case, when only glTexStorage* is allowed. // The assumption is that ES2 validation will not check textureSupport for sized formats. // @@ -769,269 +1016,277 @@ map[GL_NONE][GL_NONE] = InternalFormat(); // clang-format off // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddRGBAFormat(&map, GL_R8, true, 8, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, SizedRGSupport, AlwaysSupported, SizedRGSupport, RequireESOrExt<3, 0, &Extensions::textureRG>, RequireESOrExt<3, 0, &Extensions::textureRG>); - AddRGBAFormat(&map, GL_R8_SNORM, true, 8, 0, 0, 0, 0, GL_RED, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG8, true, 8, 8, 0, 0, 0, GL_RG, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, SizedRGSupport, AlwaysSupported, SizedRGSupport, RequireESOrExt<3, 0, &Extensions::textureRG>, RequireESOrExt<3, 0, &Extensions::textureRG>); - AddRGBAFormat(&map, GL_RG8_SNORM, true, 8, 8, 0, 0, 0, GL_RG, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB8, true, 8, 8, 8, 0, 0, GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorage>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorage>, RequireESOrExt<3, 0, &Extensions::rgb8rgba8OES>, RequireESOrExt<3, 0, &Extensions::rgb8rgba8OES>); - AddRGBAFormat(&map, GL_RGB8_SNORM, true, 8, 8, 8, 0, 0, GL_RGB, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB565, true, 5, 6, 5, 0, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorage>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorage>, RequireES<2, 0>, RequireES<2, 0>); - AddRGBAFormat(&map, GL_RGBA4, true, 4, 4, 4, 4, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorage>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorage>, RequireES<2, 0>, RequireES<2, 0>); - AddRGBAFormat(&map, GL_RGB5_A1, true, 5, 5, 5, 1, 0, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorage>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorage>, RequireES<2, 0>, RequireES<2, 0>); - AddRGBAFormat(&map, GL_RGBA8, true, 8, 8, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorage>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorage>, RequireESOrExt<3, 0, &Extensions::rgb8rgba8OES>, RequireESOrExt<3, 0, &Extensions::rgb8rgba8OES>); - AddRGBAFormat(&map, GL_RGBA8_SNORM, true, 8, 8, 8, 8, 0, GL_RGBA, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB10_A2, true, 10, 10, 10, 2, 0, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, RequireES<3, 0>, RequireES<3, 0>, RequireES<3, 0>); - AddRGBAFormat(&map, GL_RGB10_A2UI, true, 10, 10, 10, 2, 0, GL_RGBA_INTEGER, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_SRGB8, true, 8, 8, 8, 0, 0, GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_SRGB8_ALPHA8, true, 8, 8, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireESOrExt<3, 0, &Extensions::sRGB>, AlwaysSupported, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::sRGB>, RequireESOrExt<3, 0, &Extensions::sRGB>); - AddRGBAFormat(&map, GL_R11F_G11F_B10F, true, 11, 11, 10, 0, 0, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_FLOAT, false, RequireES<3, 0>, AlwaysSupported, RequireExt<&Extensions::colorBufferFloat>, RequireExt<&Extensions::colorBufferFloat>, RequireExt<&Extensions::colorBufferFloat>); - AddRGBAFormat(&map, GL_RGB9_E5, true, 9, 9, 9, 0, 5, GL_RGB, GL_UNSIGNED_INT_5_9_9_9_REV, GL_FLOAT, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_R8I, true, 8, 0, 0, 0, 0, GL_RED_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_R8UI, true, 8, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_R16I, true, 16, 0, 0, 0, 0, GL_RED_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_R16UI, true, 16, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_R32I, true, 32, 0, 0, 0, 0, GL_RED_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_R32UI, true, 32, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG8I, true, 8, 8, 0, 0, 0, GL_RG_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG8UI, true, 8, 8, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG16I, true, 16, 16, 0, 0, 0, GL_RG_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG16UI, true, 16, 16, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG32I, true, 32, 32, 0, 0, 0, GL_RG_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RG32UI, true, 32, 32, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGB8I, true, 8, 8, 8, 0, 0, GL_RGB_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB8UI, true, 8, 8, 8, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB16I, true, 16, 16, 16, 0, 0, GL_RGB_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB16UI, true, 16, 16, 16, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB32I, true, 32, 32, 32, 0, 0, GL_RGB_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB32UI, true, 32, 32, 32, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA8I, true, 8, 8, 8, 8, 0, GL_RGBA_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGBA8UI, true, 8, 8, 8, 8, 0, GL_RGBA_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGBA16I, true, 16, 16, 16, 16, 0, GL_RGBA_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGBA16UI, true, 16, 16, 16, 16, 0, GL_RGBA_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGBA32I, true, 32, 32, 32, 32, 0, GL_RGBA_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_RGBA32UI, true, 32, 32, 32, 32, 0, GL_RGBA_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R8, true, 8, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, SizedRGSupport, AlwaysSupported, SizedRGSupport, RequireESOrExt<3, 0, &Extensions::textureRgEXT>, RequireESOrExt<3, 0, &Extensions::textureRgEXT>); + AddRGBAFormat(&map, GL_R8_SNORM, true, 8, 0, 0, 0, 0, GL_RED, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RG8, true, 8, 8, 0, 0, 0, GL_RG, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, SizedRGSupport, AlwaysSupported, SizedRGSupport, RequireESOrExt<3, 0, &Extensions::textureRgEXT>, RequireESOrExt<3, 0, &Extensions::textureRgEXT>); + AddRGBAFormat(&map, GL_RG8_SNORM, true, 8, 8, 0, 0, 0, GL_RG, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB8, true, 8, 8, 8, 0, 0, GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, RequireESOrExt<3, 0, &Extensions::rgb8Rgba8OES>, RequireESOrExt<3, 0, &Extensions::rgb8Rgba8OES>); + AddRGBAFormat(&map, GL_RGB8_SNORM, true, 8, 8, 8, 0, 0, GL_RGB, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB565, true, 5, 6, 5, 0, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, RequireES<2, 0>, RequireES<2, 0>); + AddRGBAFormat(&map, GL_RGBA4, true, 4, 4, 4, 4, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, RequireES<2, 0>, RequireES<2, 0>); + AddRGBAFormat(&map, GL_RGB5_A1, true, 5, 5, 5, 1, 0, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, RequireES<2, 0>, RequireES<2, 0>); + AddRGBAFormat(&map, GL_RGBA8, true, 8, 8, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::textureStorageEXT>, RequireESOrExt<3, 0, &Extensions::rgb8Rgba8OES>, RequireESOrExt<3, 0, &Extensions::rgb8Rgba8OES>); + AddRGBAFormat(&map, GL_RGBA8_SNORM, true, 8, 8, 8, 8, 0, GL_RGBA, GL_BYTE, GL_SIGNED_NORMALIZED, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB10_A2UI, true, 10, 10, 10, 2, 0, GL_RGBA_INTEGER, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_SRGB8, true, 8, 8, 8, 0, 0, GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_SRGB8_ALPHA8, true, 8, 8, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireESOrExt<3, 0, &Extensions::sRGBEXT>, AlwaysSupported, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::sRGBEXT>, RequireESOrExt<3, 0, &Extensions::sRGBEXT>); + AddRGBAFormat(&map, GL_R11F_G11F_B10F, true, 11, 11, 10, 0, 0, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_FLOAT, false, RequireES<3, 0>, AlwaysSupported, RequireExt<&Extensions::colorBufferFloatEXT>, RequireExt<&Extensions::colorBufferFloatEXT>, RequireExt<&Extensions::colorBufferFloatEXT>); + AddRGBAFormat(&map, GL_RGB9_E5, true, 9, 9, 9, 0, 5, GL_RGB, GL_UNSIGNED_INT_5_9_9_9_REV, GL_FLOAT, false, RequireES<3, 0>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_R8I, true, 8, 0, 0, 0, 0, GL_RED_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R8UI, true, 8, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R16I, true, 16, 0, 0, 0, 0, GL_RED_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R16UI, true, 16, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R32I, true, 32, 0, 0, 0, 0, GL_RED_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_R32UI, true, 32, 0, 0, 0, 0, GL_RED_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG8I, true, 8, 8, 0, 0, 0, GL_RG_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG8UI, true, 8, 8, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG16I, true, 16, 16, 0, 0, 0, GL_RG_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG16UI, true, 16, 16, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG32I, true, 32, 32, 0, 0, 0, GL_RG_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RG32UI, true, 32, 32, 0, 0, 0, GL_RG_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGB8I, true, 8, 8, 8, 0, 0, GL_RGB_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB8UI, true, 8, 8, 8, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB16I, true, 16, 16, 16, 0, 0, GL_RGB_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB16UI, true, 16, 16, 16, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB32I, true, 32, 32, 32, 0, 0, GL_RGB_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB32UI, true, 32, 32, 32, 0, 0, GL_RGB_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGBA8I, true, 8, 8, 8, 8, 0, GL_RGBA_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGBA8UI, true, 8, 8, 8, 8, 0, GL_RGBA_INTEGER, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGBA16I, true, 16, 16, 16, 16, 0, GL_RGBA_INTEGER, GL_SHORT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGBA16UI, true, 16, 16, 16, 16, 0, GL_RGBA_INTEGER, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGBA32I, true, 32, 32, 32, 32, 0, GL_RGBA_INTEGER, GL_INT, GL_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); + AddRGBAFormat(&map, GL_RGBA32UI, true, 32, 32, 32, 32, 0, GL_RGBA_INTEGER, GL_UNSIGNED_INT, GL_UNSIGNED_INT, false, RequireES<3, 0>, NeverSupported, RequireES<3, 0>, RequireES<3, 0>, NeverSupported); - AddRGBAFormat(&map, GL_BGRA8_EXT, true, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>); - AddRGBAFormat(&map, GL_BGRA4_ANGLEX, true, 4, 4, 4, 4, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>); - AddRGBAFormat(&map, GL_BGR5_A1_ANGLEX, true, 5, 5, 5, 1, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>, RequireExt<&Extensions::textureFormatBGRA8888>); + AddRGBAFormat(&map, GL_BGRA8_EXT, true, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888EXT>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>); + AddRGBAFormat(&map, GL_BGRA4_ANGLEX, true, 4, 4, 4, 4, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888EXT>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>); + AddRGBAFormat(&map, GL_BGR5_A1_ANGLEX, true, 5, 5, 5, 1, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888EXT>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>, RequireExt<&Extensions::textureFormatBGRA8888EXT>); // Special format that is used for D3D textures that are used within ANGLE via the // EGL_ANGLE_d3d_texture_client_buffer extension. We don't allow uploading texture images with // this format, but textures in this format can be created from D3D textures, and filtering them // and rendering to them is allowed. AddRGBAFormat(&map, GL_BGRA8_SRGB_ANGLEX, true, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, NeverSupported, AlwaysSupported, AlwaysSupported, AlwaysSupported, AlwaysSupported); // Special format which is not really supported, so always false for all supports. AddRGBAFormat(&map, GL_BGRX8_ANGLEX, true, 8, 8, 8, 0, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_BGR565_ANGLEX, true, 5, 6, 5, 1, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGBX8_ANGLEX, true, 8, 8, 8, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_BGR565_ANGLEX, true, 5, 6, 5, 0, 0, GL_BGRA_EXT, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_BGR10_A2_ANGLEX, true, 10, 10, 10, 2, 0, GL_BGRA_EXT, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + // This format is supported on ES 2.0 with two extensions, so keep it out-of-line to not widen the table above even more. + // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddRGBAFormat(&map, GL_RGB10_A2, true, 10, 10, 10, 2, 0, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireESOrExtAndExt<3, 0, &Extensions::textureStorageEXT, &Extensions::textureType2101010REVEXT>, AlwaysSupported, RequireES<3, 0>, RequireES<3, 0>, RequireES<3, 0>); + // Floating point formats // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend // It's not possible to have two entries per sized format. // E.g. for GL_RG16F, one with GL_HALF_FLOAT type and the other with GL_HALF_FLOAT_OES type. // So, GL_HALF_FLOAT type formats conditions are merged with GL_HALF_FLOAT_OES type conditions. AddRGBAFormat(&map, GL_R16F, true, 16, 0, 0, 0, 0, GL_RED, GL_HALF_FLOAT, GL_FLOAT, false, SizedHalfFloatRGSupport, SizedHalfFloatFilterSupport, SizedHalfFloatRGTextureAttachmentSupport, SizedHalfFloatRGRenderbufferSupport, SizedHalfFloatRGRenderbufferSupport); AddRGBAFormat(&map, GL_RG16F, true, 16, 16, 0, 0, 0, GL_RG, GL_HALF_FLOAT, GL_FLOAT, false, SizedHalfFloatRGSupport, SizedHalfFloatFilterSupport, SizedHalfFloatRGTextureAttachmentSupport, SizedHalfFloatRGRenderbufferSupport, SizedHalfFloatRGRenderbufferSupport); AddRGBAFormat(&map, GL_RGB16F, true, 16, 16, 16, 0, 0, GL_RGB, GL_HALF_FLOAT, GL_FLOAT, false, SizedHalfFloatSupport, SizedHalfFloatFilterSupport, SizedHalfFloatRGBTextureAttachmentSupport, SizedHalfFloatRGBRenderbufferSupport, SizedHalfFloatRGBRenderbufferSupport); AddRGBAFormat(&map, GL_RGBA16F, true, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT, GL_FLOAT, false, SizedHalfFloatSupport, SizedHalfFloatFilterSupport, SizedHalfFloatRGBATextureAttachmentSupport, SizedHalfFloatRGBARenderbufferSupport, SizedHalfFloatRGBARenderbufferSupport); - AddRGBAFormat(&map, GL_R32F, true, 32, 0, 0, 0, 0, GL_RED, GL_FLOAT, GL_FLOAT, false, SizedFloatRGSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloat>, RequireExt<&Extensions::colorBufferFloat>, Float32BlendableSupport); - AddRGBAFormat(&map, GL_RG32F, true, 32, 32, 0, 0, 0, GL_RG, GL_FLOAT, GL_FLOAT, false, SizedFloatRGSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloat>, RequireExt<&Extensions::colorBufferFloat>, Float32BlendableSupport); - AddRGBAFormat(&map, GL_RGB32F, true, 32, 32, 32, 0, 0, GL_RGB, GL_FLOAT, GL_FLOAT, false, SizedFloatRGBSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloatRGB>, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_R32F, true, 32, 0, 0, 0, 0, GL_RED, GL_FLOAT, GL_FLOAT, false, SizedFloatRGSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloatEXT>, RequireExt<&Extensions::colorBufferFloatEXT>, Float32BlendableSupport); + AddRGBAFormat(&map, GL_RG32F, true, 32, 32, 0, 0, 0, GL_RG, GL_FLOAT, GL_FLOAT, false, SizedFloatRGSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloatEXT>, RequireExt<&Extensions::colorBufferFloatEXT>, Float32BlendableSupport); + AddRGBAFormat(&map, GL_RGB32F, true, 32, 32, 32, 0, 0, GL_RGB, GL_FLOAT, GL_FLOAT, false, SizedFloatRGBSupport, RequireExt<&Extensions::textureFloatLinearOES>, RequireExt<&Extensions::colorBufferFloatRgbCHROMIUM>, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGBA32F, true, 32, 32, 32, 32, 0, GL_RGBA, GL_FLOAT, GL_FLOAT, false, SizedFloatRGBASupport, RequireExt<&Extensions::textureFloatLinearOES>, SizedFloatRGBARenderableSupport, SizedFloatRGBARenderableSupport, Float32BlendableSupport); // ANGLE Depth stencil formats - // | Internal format |sized| D |S | X | Format | Type | Component type | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT16, true, 16, 0, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, RequireES<1, 0>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, RequireES<1, 0>, RequireES<1, 0>, RequireES<1, 0>); - AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT24, true, 24, 0, 8, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_UNSIGNED_NORMALIZED, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depthTextureANGLE>, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depth24OES>, RequireESOrExt<3, 0, &Extensions::depth24OES>); - AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT32F, true, 32, 0, 0, GL_DEPTH_COMPONENT, GL_FLOAT, GL_FLOAT, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depthTextureANGLE>, RequireES<3, 0>, RequireES<3, 0>, RequireES<3, 0>); - AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT32_OES, true, 32, 0, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_UNSIGNED_NORMALIZED, RequireExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, AlwaysSupported, RequireExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, RequireExtOrExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES, &Extensions::depth32OES>, RequireExtOrExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES, &Extensions::depth32OES>); - AddDepthStencilFormat(&map, GL_DEPTH24_STENCIL8, true, 24, 8, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_NORMALIZED, RequireESOrExt<3, 0, &Extensions::depthTextureANGLE>, AlwaysSupported, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>); - AddDepthStencilFormat(&map, GL_DEPTH32F_STENCIL8, true, 32, 8, 24, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_FLOAT, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>); + // | Internal format |sized| D |S | X | Format | Type | Component type | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT16, true, 16, 0, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, RequireES<1, 0>, RequireES<1, 0>, RequireES<1, 0>); + AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT24, true, 24, 0, 8, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_UNSIGNED_NORMALIZED, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depthTextureANGLE>, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depth24OES>, RequireESOrExt<3, 0, &Extensions::depth24OES>); + AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT32F, true, 32, 0, 0, GL_DEPTH_COMPONENT, GL_FLOAT, GL_FLOAT, RequireES<3, 0>, RequireESOrExt<3, 0, &Extensions::depthTextureANGLE>, RequireES<3, 0>, RequireES<3, 0>, RequireES<3, 0>); + AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT32_OES, true, 32, 0, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_UNSIGNED_NORMALIZED, RequireExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, AlwaysSupported, RequireExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES>, RequireExtOrExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES, &Extensions::depth32OES>, RequireExtOrExtOrExt<&Extensions::depthTextureANGLE, &Extensions::depthTextureOES, &Extensions::depth32OES>); + AddDepthStencilFormat(&map, GL_DEPTH24_STENCIL8, true, 24, 8, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_NORMALIZED, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>, AlwaysSupported, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>, RequireESOrExtOrExt<3, 0, &Extensions::depthTextureANGLE, &Extensions::packedDepthStencilOES>); + AddDepthStencilFormat(&map, GL_DEPTH32F_STENCIL8, true, 32, 8, 24, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_FLOAT, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, AlwaysSupported, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>, RequireESOrExt<3, 0, &Extensions::depthBufferFloat2NV>); // STENCIL_INDEX8 is special-cased, see around the bottom of the list. // Luminance alpha formats // | Internal format |sized| L | A | Format | Type | Component type | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddLUMAFormat(&map, GL_ALPHA8_EXT, true, 0, 8, GL_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorage>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE8_EXT, true, 8, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorage>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE8_ALPHA8_EXT, true, 8, 8, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorage>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_ALPHA16F_EXT, true, 0, 16, GL_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE16F_EXT, true, 16, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE_ALPHA16F_EXT, true, 16, 16, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_ALPHA32F_EXT, true, 0, 32, GL_ALPHA, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE32F_EXT, true, 32, 0, GL_LUMINANCE, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE_ALPHA32F_EXT, true, 32, 32, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorage, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_ALPHA8_EXT, true, 0, 8, GL_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorageEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE8_EXT, true, 8, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorageEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE8_ALPHA8_EXT, true, 8, 8, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireExt<&Extensions::textureStorageEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_ALPHA16F_EXT, true, 0, 16, GL_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE16F_EXT, true, 16, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE_ALPHA16F_EXT, true, 16, 16, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_ALPHA32F_EXT, true, 0, 32, GL_ALPHA, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE32F_EXT, true, 32, 0, GL_LUMINANCE, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE_ALPHA32F_EXT, true, 32, 32, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_FLOAT, RequireExtAndExt<&Extensions::textureStorageEXT, &Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); // Compressed formats, From ES 3.0.1 spec, table 3.16 // | Internal format |W |H |D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_R11_EAC, 4, 4, 1, 64, 1, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedEACR11UnsignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_R11_EAC, 4, 4, 1, 64, 1, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedEACR11SignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RG11_EAC, 4, 4, 1, 128, 2, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedEACRG11UnsignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RG11_EAC, 4, 4, 1, 128, 2, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedEACRG11SignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB8_ETC2, 4, 4, 1, 64, 3, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2RGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ETC2, 4, 4, 1, 64, 3, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2sRGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 1, 64, 3, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2PunchthroughARGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 1, 64, 3, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2PunchthroughAsRGB8AlphaTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA8_ETC2_EAC, 4, 4, 1, 128, 4, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2RGBA8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 4, 4, 1, 128, 4, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureETC, &Extensions::compressedETC2sRGB8Alpha8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_R11_EAC, 4, 4, 1, 64, 1, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedEACR11UnsignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_R11_EAC, 4, 4, 1, 64, 1, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedEACR11SignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RG11_EAC, 4, 4, 1, 128, 2, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedEACRG11UnsignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RG11_EAC, 4, 4, 1, 128, 2, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedEACRG11SignedTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB8_ETC2, 4, 4, 1, 64, 3, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2RGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ETC2, 4, 4, 1, 64, 3, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2SRGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 1, 64, 3, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2PunchthroughARGBA8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 1, 64, 3, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2PunchthroughASRGB8AlphaTextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA8_ETC2_EAC, 4, 4, 1, 128, 4, false, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2RGBA8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 4, 4, 1, 128, 4, true, RequireESOrExtOrExt<3, 0, &Extensions::compressedTextureEtcANGLE, &Extensions::compressedETC2SRGB8Alpha8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_EXT_texture_compression_dxt1 // | Internal format |W |H |D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::textureCompressionDXT1>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, 4, 4, 1, 64, 4, false, RequireExt<&Extensions::textureCompressionDXT1>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::textureCompressionDxt1EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, 4, 4, 1, 64, 4, false, RequireExt<&Extensions::textureCompressionDxt1EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_ANGLE_texture_compression_dxt3 - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionDXT3>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionDxt3ANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_ANGLE_texture_compression_dxt5 - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionDXT5>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionDxt5ANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_OES_compressed_ETC1_RGB8_texture AddCompressedFormat(&map, GL_ETC1_RGB8_OES, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::compressedETC1RGB8TextureOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_EXT_texture_compression_s3tc_srgb // | Internal format |W |H |D | BS |CC|SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::textureCompressionS3TCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, 4, 4, 1, 64, 4, true, RequireExt<&Extensions::textureCompressionS3TCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionS3TCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionS3TCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::textureCompressionS3tcSrgbEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, 4, 4, 1, 64, 4, true, RequireExt<&Extensions::textureCompressionS3tcSrgbEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionS3tcSrgbEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionS3tcSrgbEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_KHR_texture_compression_astc_ldr and KHR_texture_compression_astc_hdr and GL_OES_texture_compression_astc // | Internal format | W | H |D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, 5, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, 5, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, 6, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, 6, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, 8, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, 8, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, 8, 8, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, 10, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, 10, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, 10, 8, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, 10, 10, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, 12, 10, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, 12, 12, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, 5, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, 5, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, 6, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, 6, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, 8, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, 8, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, 8, 8, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, 10, 5, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, 10, 6, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, 10, 8, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, 10, 10, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, 12, 10, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, 12, 12, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, 5, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, 5, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, 6, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, 6, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, 8, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, 8, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, 8, 8, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, 10, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, 10, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, 10, 8, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, 10, 10, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, 12, 10, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, 12, 12, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCLDRKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, 5, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, 5, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, 6, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, 6, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, 8, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, 8, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, 8, 8, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, 10, 5, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, 10, 6, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, 10, 8, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, 10, 10, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, 12, 10, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, 12, 12, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcLdrKHR>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_3x3x3_OES, 3, 3, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x3x3_OES, 4, 3, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4x3_OES, 4, 4, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4x4_OES, 4, 4, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x4x4_OES, 5, 4, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5x4_OES, 5, 5, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5x5_OES, 5, 5, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x5x5_OES, 6, 5, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6x5_OES, 6, 6, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6x6_OES, 6, 6, 6, 128, 4, false, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_3x3x3_OES, 3, 3, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x3x3_OES, 4, 3, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4x3_OES, 4, 4, 3, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_4x4x4_OES, 4, 4, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x4x4_OES, 5, 4, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5x4_OES, 5, 5, 4, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_5x5x5_OES, 5, 5, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x5x5_OES, 6, 5, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6x5_OES, 6, 6, 5, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_ASTC_6x6x6_OES, 6, 6, 6, 128, 4, false, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES, 3, 3, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES, 4, 3, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES, 4, 4, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES, 4, 4, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES, 5, 4, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES, 5, 5, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES, 5, 5, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES, 6, 5, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES, 6, 6, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES, 6, 6, 6, 128, 4, true, RequireExt<&Extensions::textureCompressionASTCOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES, 3, 3, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES, 4, 3, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES, 4, 4, 3, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES, 4, 4, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES, 5, 4, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES, 5, 5, 4, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES, 5, 5, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES, 6, 5, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES, 6, 6, 5, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES, 6, 6, 6, 128, 4, true, RequireExt<&Extensions::textureCompressionAstcOES>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From EXT_texture_compression_rgtc // | Internal format | W | H |D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_RED_RGTC1_EXT, 4, 4, 1, 64, 1, false, RequireExt<&Extensions::textureCompressionRGTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RED_RGTC1_EXT, 4, 4, 1, 64, 1, false, RequireExt<&Extensions::textureCompressionRGTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RED_GREEN_RGTC2_EXT, 4, 4, 1, 128, 2, false, RequireExt<&Extensions::textureCompressionRGTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT, 4, 4, 1, 128, 2, false, RequireExt<&Extensions::textureCompressionRGTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RED_RGTC1_EXT, 4, 4, 1, 64, 1, false, RequireExt<&Extensions::textureCompressionRgtcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RED_RGTC1_EXT, 4, 4, 1, 64, 1, false, RequireExt<&Extensions::textureCompressionRgtcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RED_GREEN_RGTC2_EXT, 4, 4, 1, 128, 2, false, RequireExt<&Extensions::textureCompressionRgtcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT, 4, 4, 1, 128, 2, false, RequireExt<&Extensions::textureCompressionRgtcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From EXT_texture_compression_bptc // | Internal format | W | H |D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_BPTC_UNORM_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBPTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionBPTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBPTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBPTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_BPTC_UNORM_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBptcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT, 4, 4, 1, 128, 4, true, RequireExt<&Extensions::textureCompressionBptcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBptcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT, 4, 4, 1, 128, 4, false, RequireExt<&Extensions::textureCompressionBptcEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_IMG_texture_compression_pvrtc // | Internal format | W | H | D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::compressedTexturePVRTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG, 8, 4, 1, 64, 3, false, RequireExt<&Extensions::compressedTexturePVRTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, 4, 4, 1, 64, 4, false, RequireExt<&Extensions::compressedTexturePVRTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, 8, 4, 1, 64, 4, false, RequireExt<&Extensions::compressedTexturePVRTC>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::textureCompressionPvrtcIMG>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG, 8, 4, 1, 64, 3, false, RequireExt<&Extensions::textureCompressionPvrtcIMG>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, 4, 4, 1, 64, 4, false, RequireExt<&Extensions::textureCompressionPvrtcIMG>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, 8, 4, 1, 64, 4, false, RequireExt<&Extensions::textureCompressionPvrtcIMG>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_EXT_pvrtc_sRGB - // | Internal format | W | H | D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT, 8, 4, 1, 64, 3, true, RequireExt<&Extensions::compressedTexturePVRTCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::compressedTexturePVRTCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT, 8, 4, 1, 64, 4, true, RequireExt<&Extensions::compressedTexturePVRTCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT, 4, 4, 1, 64, 4, true, RequireExt<&Extensions::compressedTexturePVRTCsRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + // | Internal format | W | H | D | BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT, 8, 4, 1, 64, 3, true, RequireExtAndExt<&Extensions::textureCompressionPvrtcIMG, &Extensions::pvrtcSRGBEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT, 4, 4, 1, 64, 3, true, RequireExtAndExt<&Extensions::textureCompressionPvrtcIMG, &Extensions::pvrtcSRGBEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT, 8, 4, 1, 64, 4, true, RequireExtAndExt<&Extensions::textureCompressionPvrtcIMG, &Extensions::pvrtcSRGBEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT, 4, 4, 1, 64, 4, true, RequireExtAndExt<&Extensions::textureCompressionPvrtcIMG, &Extensions::pvrtcSRGBEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // For STENCIL_INDEX8 we chose a normalized component type for the following reasons: // - Multisampled buffer are disallowed for non-normalized integer component types and we want to support it for STENCIL_INDEX8 // - All other stencil formats (all depth-stencil) are either float or normalized // - It affects only validation of internalformat in RenderbufferStorageMultisample. // | Internal format |sized|D |S |X | Format | Type | Component type | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddDepthStencilFormat(&map, GL_STENCIL_INDEX8, true, 0, 8, 0, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireESOrExt<1, 0, &Extensions::stencilIndex8>, NeverSupported, RequireESOrExt<1, 0, &Extensions::stencilIndex8>, RequireES<1, 0>, RequireES<1, 0>); + AddDepthStencilFormat(&map, GL_STENCIL_INDEX8, true, 0, 8, 0, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireESOrExt<1, 0, &Extensions::textureStencil8OES>, NeverSupported, RequireESOrExt<1, 0, &Extensions::textureStencil8OES>, RequireES<1, 0>, RequireES<1, 0>); // From GL_ANGLE_lossy_etc_decode // | Internal format |W |H |D |BS |CC| SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddCompressedFormat(&map, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyETCDecode>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyETCDecode>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::lossyETCDecode>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyETCDecode>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::lossyETCDecode>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyEtcDecodeANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyEtcDecodeANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::lossyEtcDecodeANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, false, RequireExt<&Extensions::lossyEtcDecodeANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddCompressedFormat(&map, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE, 4, 4, 1, 64, 3, true, RequireExt<&Extensions::lossyEtcDecodeANGLE>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From GL_EXT_texture_norm16 // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddRGBAFormat(&map, GL_R16_EXT, true, 16, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>); - AddRGBAFormat(&map, GL_R16_SNORM_EXT, true, 16, 0, 0, 0, 0, GL_RED, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG16_EXT, true, 16, 16, 0, 0, 0, GL_RG, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>); - AddRGBAFormat(&map, GL_RG16_SNORM_EXT, true, 16, 16, 0, 0, 0, GL_RG, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB16_EXT, true, 16, 16, 16, 0, 0, GL_RGB, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB16_SNORM_EXT, true, 16, 16, 16, 0, 0, GL_RGB, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA16_EXT, true, 16, 16, 16, 16, 0, GL_RGBA, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>, RequireExt<&Extensions::textureNorm16>); - AddRGBAFormat(&map, GL_RGBA16_SNORM_EXT, true, 16, 16, 16, 16, 0, GL_RGBA, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_R16_EXT, true, 16, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>); + AddRGBAFormat(&map, GL_R16_SNORM_EXT, true, 16, 0, 0, 0, 0, GL_RED, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RG16_EXT, true, 16, 16, 0, 0, 0, GL_RG, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>); + AddRGBAFormat(&map, GL_RG16_SNORM_EXT, true, 16, 16, 0, 0, 0, GL_RG, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB16_EXT, true, 16, 16, 16, 0, 0, GL_RGB, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB16_SNORM_EXT, true, 16, 16, 16, 0, 0, GL_RGB, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGBA16_EXT, true, 16, 16, 16, 16, 0, GL_RGBA, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>, RequireExt<&Extensions::textureNorm16EXT>); + AddRGBAFormat(&map, GL_RGBA16_SNORM_EXT, true, 16, 16, 16, 16, 0, GL_RGBA, GL_SHORT, GL_SIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // From EXT_texture_sRGB_R8 // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddRGBAFormat(&map, GL_SR8_EXT, true, 8, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::sRGBR8EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_SR8_EXT, true, 8, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::textureSRGBR8EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + + // From EXT_texture_sRGB_RG8 + // | Internal format |sized| R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddRGBAFormat(&map, GL_SRG8_EXT, true, 8, 8, 0, 0, 0, GL_RG, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::textureSRGBRG8EXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); // Unsized formats - // | Internal format |sized | R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend - AddRGBAFormat(&map, GL_RED, false, 8, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureRG>, AlwaysSupported, RequireExt<&Extensions::textureRG>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RED, false, 8, 0, 0, 0, 0, GL_RED, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RED, false, 16, 0, 0, 0, 0, GL_RED, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG, false, 8, 8, 0, 0, 0, GL_RG, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureRG>, AlwaysSupported, RequireExt<&Extensions::textureRG>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG, false, 8, 8, 0, 0, 0, GL_RG, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG, false, 16, 16, 0, 0, 0, GL_RG, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB, false, 8, 8, 8, 0, 0, GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB, false, 5, 6, 5, 0, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB, false, 8, 8, 8, 0, 0, GL_RGB, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB, false, 10, 10, 10, 0, 0, GL_RGB, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormat2101010REV>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 4, 4, 4, 4, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 5, 5, 5, 1, 0, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 8, 8, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 16, 16, 16, 16, 0, GL_RGBA, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16>, AlwaysSupported, RequireExt<&Extensions::textureNorm16>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 10, 10, 10, 2, 0, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormat2101010REV>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 8, 8, 8, 8, 0, GL_RGBA, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_SRGB, false, 8, 8, 8, 0, 0, GL_SRGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::sRGB>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_SRGB_ALPHA_EXT, false, 8, 8, 8, 8, 0, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::sRGB>, AlwaysSupported, RequireExt<&Extensions::sRGB>, NeverSupported, NeverSupported); + // | Internal format |sized | R | G | B | A |S |X | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddRGBAXFormat(&map, GL_RED, false, FB< 8, 0, 0, 0, 0, 0>(), GL_RED, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureRgEXT>, AlwaysSupported, RequireExt<&Extensions::textureRgEXT>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RED, false, FB< 8, 0, 0, 0, 0, 0>(), GL_RED, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RED, false, FB<16, 0, 0, 0, 0, 0>(), GL_RED, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RG, false, FB< 8, 8, 0, 0, 0, 0>(), GL_RG, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureRgEXT>, AlwaysSupported, RequireExt<&Extensions::textureRgEXT>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RG, false, FB< 8, 8, 0, 0, 0, 0>(), GL_RG, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RG, false, FB<16, 16, 0, 0, 0, 0>(), GL_RG, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGB, false, FB< 8, 8, 8, 0, 0, 0>(), GL_RGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGB, false, FB< 5, 6, 5, 0, 0, 0>(), GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGB, false, FB< 8, 8, 8, 0, 0, 0>(), GL_RGB, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGB, false, FB<10, 10, 10, 0, 0, 2>(), GL_RGB, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureType2101010REVEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB< 4, 4, 4, 4, 0, 0>(), GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB< 5, 5, 5, 1, 0, 0>(), GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB< 8, 8, 8, 8, 0, 0>(), GL_RGBA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, AlwaysSupported, AlwaysSupported, RequireESOrExt<2, 0, &Extensions::framebufferObjectOES>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB<16, 16, 16, 16, 0, 0>(), GL_RGBA, GL_UNSIGNED_SHORT, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureNorm16EXT>, AlwaysSupported, RequireExt<&Extensions::textureNorm16EXT>, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB<10, 10, 10, 2, 0, 0>(), GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureType2101010REVEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_RGBA, false, FB< 8, 8, 8, 8, 0, 0>(), GL_RGBA, GL_BYTE, GL_SIGNED_NORMALIZED, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_SRGB, false, FB< 8, 8, 8, 0, 0, 0>(), GL_SRGB, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::sRGBEXT>, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); + AddRGBAXFormat(&map, GL_SRGB_ALPHA_EXT, false, FB< 8, 8, 8, 8, 0, 0>(), GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, true, RequireExt<&Extensions::sRGBEXT>, AlwaysSupported, RequireExt<&Extensions::sRGBEXT>, NeverSupported, NeverSupported); #if (defined(ANGLE_PLATFORM_IOS) && !defined(ANGLE_PLATFORM_MACCATALYST)) || (defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64)) angle::SystemInfo info; if (angle::GetSystemInfo(&info)) { if (info.needsEAGLOnMac) @@ -1040,15 +1295,15 @@ AddRGBAFormat(&map, GL_BGRA_EXT, false, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireES<2, 0>, AlwaysSupported, RequireES<2, 0>, NeverSupported, NeverSupported); } else { // Using OpenGL.framework. - AddRGBAFormat(&map, GL_BGRA_EXT, false, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888>, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_BGRA_EXT, false, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888EXT>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888EXT>, NeverSupported, NeverSupported); } } #else - AddRGBAFormat(&map, GL_BGRA_EXT, false, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888>, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_BGRA_EXT, false, 8, 8, 8, 8, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::textureFormatBGRA8888EXT>, AlwaysSupported, RequireExt<&Extensions::textureFormatBGRA8888EXT>, NeverSupported, NeverSupported); #endif // Unsized integer formats // |Internal format |sized | R | G | B | A |S | Format | Type | Component type | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend AddRGBAFormat(&map, GL_RED_INTEGER, false, 8, 0, 0, 0, 0, GL_RED_INTEGER, GL_BYTE, GL_INT, false, RequireES<3, 0>, NeverSupported, NeverSupported, NeverSupported, NeverSupported); @@ -1081,29 +1336,29 @@ // |Internal format |sized | R | G | B | A |S | Format | Type | Comp | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend AddRGBAFormat(&map, GL_RED, false, 16, 0, 0, 0, 0, GL_RED, GL_HALF_FLOAT, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RG, false, 16, 16, 0, 0, 0, GL_RG, GL_HALF_FLOAT, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGB, false, 16, 16, 16, 0, 0, GL_RGB, GL_HALF_FLOAT, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGBA, false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RED, false, 16, 0, 0, 0, 0, GL_RED, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloat, &Extensions::textureRG>, RequireExt<&Extensions::textureHalfFloatLinear>, AlwaysSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG, false, 16, 16, 0, 0, 0, GL_RG, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloat, &Extensions::textureRG>, RequireExt<&Extensions::textureHalfFloatLinear>, AlwaysSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGB, false, 16, 16, 16, 0, 0, GL_RGB, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, RequireExt<&Extensions::colorBufferHalfFloat>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RGBA, false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, RequireExt<&Extensions::colorBufferHalfFloat>, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RED, false, 32, 0, 0, 0, 0, GL_RED, GL_FLOAT, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloatOES, &Extensions::textureRG>, RequireExt<&Extensions::textureFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); - AddRGBAFormat(&map, GL_RG, false, 32, 32, 0, 0, 0, GL_RG, GL_FLOAT, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloatOES, &Extensions::textureRG>, RequireExt<&Extensions::textureFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RED, false, 16, 0, 0, 0, 0, GL_RED, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloatOES, &Extensions::textureRgEXT>, RequireExt<&Extensions::textureHalfFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RG, false, 16, 16, 0, 0, 0, GL_RG, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureHalfFloatOES, &Extensions::textureRgEXT>, RequireExt<&Extensions::textureHalfFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGB, false, 16, 16, 16, 0, 0, GL_RGB, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, RequireExt<&Extensions::colorBufferHalfFloatEXT>, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RGBA, false, 16, 16, 16, 16, 0, GL_RGBA, GL_HALF_FLOAT_OES, GL_FLOAT, false, RequireExt<&Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, RequireExt<&Extensions::colorBufferHalfFloatEXT>, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RED, false, 32, 0, 0, 0, 0, GL_RED, GL_FLOAT, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloatOES, &Extensions::textureRgEXT>, RequireExt<&Extensions::textureFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); + AddRGBAFormat(&map, GL_RG, false, 32, 32, 0, 0, 0, GL_RG, GL_FLOAT, GL_FLOAT, false, RequireExtAndExt<&Extensions::textureFloatOES, &Extensions::textureRgEXT>, RequireExt<&Extensions::textureFloatLinearOES>, AlwaysSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGB, false, 32, 32, 32, 0, 0, GL_RGB, GL_FLOAT, GL_FLOAT, false, RequireExt<&Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGB, false, 9, 9, 9, 0, 5, GL_RGB, GL_UNSIGNED_INT_5_9_9_9_REV, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGB, false, 11, 11, 10, 0, 0, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_FLOAT, false, NeverSupported, NeverSupported, NeverSupported, NeverSupported, NeverSupported); AddRGBAFormat(&map, GL_RGBA, false, 32, 32, 32, 32, 0, GL_RGBA, GL_FLOAT, GL_FLOAT, false, RequireExt<&Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); // Unsized luminance alpha formats // | Internal format |sized | L | A | Format | Type | Component type | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend AddLUMAFormat(&map, GL_ALPHA, false, 0, 8, GL_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, AlwaysSupported, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); AddLUMAFormat(&map, GL_LUMINANCE, false, 8, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, AlwaysSupported, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); AddLUMAFormat(&map, GL_LUMINANCE_ALPHA, false, 8, 8, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, AlwaysSupported, AlwaysSupported, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_ALPHA, false, 0, 16, GL_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE, false, 16, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); - AddLUMAFormat(&map, GL_LUMINANCE_ALPHA, false, 16, 16, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloat>, RequireExt<&Extensions::textureHalfFloatLinear>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_ALPHA, false, 0, 16, GL_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE, false, 16, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); + AddLUMAFormat(&map, GL_LUMINANCE_ALPHA, false, 16, 16, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_FLOAT, RequireExt<&Extensions::textureHalfFloatOES>, RequireExt<&Extensions::textureHalfFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); AddLUMAFormat(&map, GL_ALPHA, false, 0, 32, GL_ALPHA, GL_FLOAT, GL_FLOAT, RequireExt<&Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); AddLUMAFormat(&map, GL_LUMINANCE, false, 32, 0, GL_LUMINANCE, GL_FLOAT, GL_FLOAT, RequireExt<&Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); AddLUMAFormat(&map, GL_LUMINANCE_ALPHA, false, 32, 32, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_FLOAT, RequireExt<&Extensions::textureFloatOES>, RequireExt<&Extensions::textureFloatLinearOES>, NeverSupported, NeverSupported, NeverSupported); // Unsized depth stencil formats @@ -1114,10 +1369,15 @@ AddDepthStencilFormat(&map, GL_DEPTH_COMPONENT, false, 24, 8, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_NORMALIZED, RequireESOrExt<3, 0, &Extensions::packedDepthStencilOES>, AlwaysSupported, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>); AddDepthStencilFormat(&map, GL_DEPTH_STENCIL, false, 24, 8, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_NORMALIZED, RequireESOrExt<3, 0, &Extensions::packedDepthStencilOES>, AlwaysSupported, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>, RequireExtAndExt<&Extensions::packedDepthStencilOES, &Extensions::depthTextureANGLE>); AddDepthStencilFormat(&map, GL_DEPTH_STENCIL, false, 32, 8, 24, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_FLOAT, RequireESOrExt<3, 0, &Extensions::packedDepthStencilOES>, AlwaysSupported, RequireExt<&Extensions::packedDepthStencilOES>, RequireExt<&Extensions::packedDepthStencilOES>, RequireExt<&Extensions::packedDepthStencilOES>); AddDepthStencilFormat(&map, GL_STENCIL, false, 0, 8, 0, GL_STENCIL, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireES<1, 0>, NeverSupported , RequireES<1, 0>, RequireES<1, 0>, RequireES<1, 0>); AddDepthStencilFormat(&map, GL_STENCIL_INDEX, false, 0, 8, 0, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, RequireES<3, 1>, NeverSupported , RequireES<3, 1>, RequireES<3, 1>, RequireES<3, 1>); + + // Non-standard YUV formats + // | Internal format | sized | Cr | Y | Cb | A | S | Format | Type | Comp | SRGB | Texture supported | Filterable | Texture attachment | Renderbuffer | Blend + AddYUVFormat(&map, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported); + AddYUVFormat(&map, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported); // clang-format on return map; } @@ -1152,10 +1412,68 @@ return (glInternalFormat != 0) ? angle::android::GLInternalFormatToNativePixelFormat(glInternalFormat) : 0; } +GLenum GetConfigColorBufferFormat(const egl::Config *config) +{ + GLenum componentType = GL_NONE; + switch (config->colorComponentType) + { + case EGL_COLOR_COMPONENT_TYPE_FIXED_EXT: + componentType = GL_UNSIGNED_NORMALIZED; + break; + case EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT: + componentType = GL_FLOAT; + break; + default: + UNREACHABLE(); + return GL_NONE; + } + + GLenum colorEncoding = GL_LINEAR; + + for (GLenum sizedInternalFormat : GetAllSizedInternalFormats()) + { + const gl::InternalFormat &internalFormat = GetSizedInternalFormatInfo(sizedInternalFormat); + + if (internalFormat.componentType == componentType && + internalFormat.colorEncoding == colorEncoding && + internalFormat.isChannelSizeCompatible(config->redSize, config->greenSize, + config->blueSize, config->alphaSize)) + { + return sizedInternalFormat; + } + } + + // Only expect to get here if there is no color bits in the config + ASSERT(config->redSize == 0 && config->greenSize == 0 && config->blueSize == 0 && + config->alphaSize == 0); + return GL_NONE; +} + +GLenum GetConfigDepthStencilBufferFormat(const egl::Config *config) +{ + GLenum componentType = GL_UNSIGNED_NORMALIZED; + + for (GLenum sizedInternalFormat : GetAllSizedInternalFormats()) + { + const gl::InternalFormat &internalFormat = GetSizedInternalFormatInfo(sizedInternalFormat); + + if (internalFormat.componentType == componentType && + static_cast(internalFormat.depthBits) == config->depthSize && + static_cast(internalFormat.stencilBits) == config->stencilSize) + { + return sizedInternalFormat; + } + } + + // Only expect to get here if there is no depth or stencil bits in the config + ASSERT(config->depthSize == 0 && config->stencilSize == 0); + return GL_NONE; +} + static FormatSet BuildAllSizedInternalFormatSet() { FormatSet result; for (const auto &internalFormat : GetInternalFormatMap()) @@ -1322,11 +1640,10 @@ GLuint *resultOut) const { // Compressed images do not use pack/unpack parameters. if (compressed) { - ASSERT(rowLength == 0); return computeCompressedImageSize(Extents(width, 1, 1), resultOut); } CheckedNumeric checkedWidth(rowLength > 0 ? rowLength : width); CheckedNumeric checkedRowBytes = checkedWidth * computePixelBytes(formatType); @@ -2591,10 +2908,186 @@ return 0; #endif } } +angle::FormatID ConvertFormatSignedness(const angle::Format &format) +{ + switch (format.id) + { + // 1 byte signed to unsigned + case angle::FormatID::R8_SINT: + return angle::FormatID::R8_UINT; + case angle::FormatID::R8_SNORM: + return angle::FormatID::R8_UNORM; + case angle::FormatID::R8_SSCALED: + return angle::FormatID::R8_USCALED; + case angle::FormatID::R8G8_SINT: + return angle::FormatID::R8G8_UINT; + case angle::FormatID::R8G8_SNORM: + return angle::FormatID::R8G8_UNORM; + case angle::FormatID::R8G8_SSCALED: + return angle::FormatID::R8G8_USCALED; + case angle::FormatID::R8G8B8_SINT: + return angle::FormatID::R8G8B8_UINT; + case angle::FormatID::R8G8B8_SNORM: + return angle::FormatID::R8G8B8_UNORM; + case angle::FormatID::R8G8B8_SSCALED: + return angle::FormatID::R8G8B8_USCALED; + case angle::FormatID::R8G8B8A8_SINT: + return angle::FormatID::R8G8B8A8_UINT; + case angle::FormatID::R8G8B8A8_SNORM: + return angle::FormatID::R8G8B8A8_UNORM; + case angle::FormatID::R8G8B8A8_SSCALED: + return angle::FormatID::R8G8B8A8_USCALED; + // 1 byte unsigned to signed + case angle::FormatID::R8_UINT: + return angle::FormatID::R8_SINT; + case angle::FormatID::R8_UNORM: + return angle::FormatID::R8_SNORM; + case angle::FormatID::R8_USCALED: + return angle::FormatID::R8_SSCALED; + case angle::FormatID::R8G8_UINT: + return angle::FormatID::R8G8_SINT; + case angle::FormatID::R8G8_UNORM: + return angle::FormatID::R8G8_SNORM; + case angle::FormatID::R8G8_USCALED: + return angle::FormatID::R8G8_SSCALED; + case angle::FormatID::R8G8B8_UINT: + return angle::FormatID::R8G8B8_SINT; + case angle::FormatID::R8G8B8_UNORM: + return angle::FormatID::R8G8B8_SNORM; + case angle::FormatID::R8G8B8_USCALED: + return angle::FormatID::R8G8B8_SSCALED; + case angle::FormatID::R8G8B8A8_UINT: + return angle::FormatID::R8G8B8A8_SINT; + case angle::FormatID::R8G8B8A8_UNORM: + return angle::FormatID::R8G8B8A8_SNORM; + case angle::FormatID::R8G8B8A8_USCALED: + return angle::FormatID::R8G8B8A8_SSCALED; + // 2 byte signed to unsigned + case angle::FormatID::R16_SINT: + return angle::FormatID::R16_UINT; + case angle::FormatID::R16_SNORM: + return angle::FormatID::R16_UNORM; + case angle::FormatID::R16_SSCALED: + return angle::FormatID::R16_USCALED; + case angle::FormatID::R16G16_SINT: + return angle::FormatID::R16G16_UINT; + case angle::FormatID::R16G16_SNORM: + return angle::FormatID::R16G16_UNORM; + case angle::FormatID::R16G16_SSCALED: + return angle::FormatID::R16G16_USCALED; + case angle::FormatID::R16G16B16_SINT: + return angle::FormatID::R16G16B16_UINT; + case angle::FormatID::R16G16B16_SNORM: + return angle::FormatID::R16G16B16_UNORM; + case angle::FormatID::R16G16B16_SSCALED: + return angle::FormatID::R16G16B16_USCALED; + case angle::FormatID::R16G16B16A16_SINT: + return angle::FormatID::R16G16B16A16_UINT; + case angle::FormatID::R16G16B16A16_SNORM: + return angle::FormatID::R16G16B16A16_UNORM; + case angle::FormatID::R16G16B16A16_SSCALED: + return angle::FormatID::R16G16B16A16_USCALED; + // 2 byte unsigned to signed + case angle::FormatID::R16_UINT: + return angle::FormatID::R16_SINT; + case angle::FormatID::R16_UNORM: + return angle::FormatID::R16_SNORM; + case angle::FormatID::R16_USCALED: + return angle::FormatID::R16_SSCALED; + case angle::FormatID::R16G16_UINT: + return angle::FormatID::R16G16_SINT; + case angle::FormatID::R16G16_UNORM: + return angle::FormatID::R16G16_SNORM; + case angle::FormatID::R16G16_USCALED: + return angle::FormatID::R16G16_SSCALED; + case angle::FormatID::R16G16B16_UINT: + return angle::FormatID::R16G16B16_SINT; + case angle::FormatID::R16G16B16_UNORM: + return angle::FormatID::R16G16B16_SNORM; + case angle::FormatID::R16G16B16_USCALED: + return angle::FormatID::R16G16B16_SSCALED; + case angle::FormatID::R16G16B16A16_UINT: + return angle::FormatID::R16G16B16A16_SINT; + case angle::FormatID::R16G16B16A16_UNORM: + return angle::FormatID::R16G16B16A16_SNORM; + case angle::FormatID::R16G16B16A16_USCALED: + return angle::FormatID::R16G16B16A16_SSCALED; + // 4 byte signed to unsigned + case angle::FormatID::R32_SINT: + return angle::FormatID::R32_UINT; + case angle::FormatID::R32_SNORM: + return angle::FormatID::R32_UNORM; + case angle::FormatID::R32_SSCALED: + return angle::FormatID::R32_USCALED; + case angle::FormatID::R32G32_SINT: + return angle::FormatID::R32G32_UINT; + case angle::FormatID::R32G32_SNORM: + return angle::FormatID::R32G32_UNORM; + case angle::FormatID::R32G32_SSCALED: + return angle::FormatID::R32G32_USCALED; + case angle::FormatID::R32G32B32_SINT: + return angle::FormatID::R32G32B32_UINT; + case angle::FormatID::R32G32B32_SNORM: + return angle::FormatID::R32G32B32_UNORM; + case angle::FormatID::R32G32B32_SSCALED: + return angle::FormatID::R32G32B32_USCALED; + case angle::FormatID::R32G32B32A32_SINT: + return angle::FormatID::R32G32B32A32_UINT; + case angle::FormatID::R32G32B32A32_SNORM: + return angle::FormatID::R32G32B32A32_UNORM; + case angle::FormatID::R32G32B32A32_SSCALED: + return angle::FormatID::R32G32B32A32_USCALED; + // 4 byte unsigned to signed + case angle::FormatID::R32_UINT: + return angle::FormatID::R32_SINT; + case angle::FormatID::R32_UNORM: + return angle::FormatID::R32_SNORM; + case angle::FormatID::R32_USCALED: + return angle::FormatID::R32_SSCALED; + case angle::FormatID::R32G32_UINT: + return angle::FormatID::R32G32_SINT; + case angle::FormatID::R32G32_UNORM: + return angle::FormatID::R32G32_SNORM; + case angle::FormatID::R32G32_USCALED: + return angle::FormatID::R32G32_SSCALED; + case angle::FormatID::R32G32B32_UINT: + return angle::FormatID::R32G32B32_SINT; + case angle::FormatID::R32G32B32_UNORM: + return angle::FormatID::R32G32B32_SNORM; + case angle::FormatID::R32G32B32_USCALED: + return angle::FormatID::R32G32B32_SSCALED; + case angle::FormatID::R32G32B32A32_UINT: + return angle::FormatID::R32G32B32A32_SINT; + case angle::FormatID::R32G32B32A32_UNORM: + return angle::FormatID::R32G32B32A32_SNORM; + case angle::FormatID::R32G32B32A32_USCALED: + return angle::FormatID::R32G32B32A32_SSCALED; + // 1010102 signed to unsigned + case angle::FormatID::R10G10B10A2_SINT: + return angle::FormatID::R10G10B10A2_UINT; + case angle::FormatID::R10G10B10A2_SSCALED: + return angle::FormatID::R10G10B10A2_USCALED; + case angle::FormatID::R10G10B10A2_SNORM: + return angle::FormatID::R10G10B10A2_UNORM; + // 1010102 unsigned to signed + case angle::FormatID::R10G10B10A2_UINT: + return angle::FormatID::R10G10B10A2_SINT; + case angle::FormatID::R10G10B10A2_USCALED: + return angle::FormatID::R10G10B10A2_SSCALED; + case angle::FormatID::R10G10B10A2_UNORM: + return angle::FormatID::R10G10B10A2_SNORM; + default: + UNREACHABLE(); + } +#if !UNREACHABLE_IS_NORETURN + return angle::FormatID::NONE; +#endif +} + bool ValidES3InternalFormat(GLenum internalFormat) { const InternalFormatInfoMap &formatMap = GetInternalFormatMap(); return internalFormat != GL_NONE && formatMap.find(internalFormat) != formatMap.end(); } diff --git a/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.h b/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.h @@ -0,0 +1,672 @@ +// GENERATED FILE - DO NOT EDIT. +// Generated by gen_extensions.py using data from registry_xml.py and gl.xml +// +// Copyright 2021 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. +// +// gles_extensions_autogen.h: GLES extension information. + +#ifndef LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ +#define LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ + +namespace gl +{ +class TextureCapsMap; + +struct Extensions +{ + Extensions(); + Extensions(const Extensions &other); + + Extensions &operator=(const Extensions &other); + + // Generate a vector of supported extension strings + std::vector getStrings() const; + + // Set all texture related extension support based on the supported textures. + // Determines support for: + // GL_OES_packed_depth_stencil + // GL_OES_rgb8_rgba8 + // GL_EXT_texture_format_BGRA8888 + // GL_EXT_color_buffer_half_float, + // GL_OES_texture_half_float, GL_OES_texture_half_float_linear + // GL_OES_texture_float, GL_OES_texture_float_linear + // GL_EXT_texture_rg + // GL_EXT_texture_type_2_10_10_10_REV + // GL_EXT_texture_compression_dxt1, GL_ANGLE_texture_compression_dxt3, + // GL_ANGLE_texture_compression_dxt5 + // GL_KHR_texture_compression_astc_ldr, GL_OES_texture_compression_astc. + // NOTE: GL_KHR_texture_compression_astc_hdr must be enabled separately. Support for the + // HDR profile cannot be determined from the format enums alone. + // GL_OES_compressed_ETC1_RGB8_texture + // GL_EXT_sRGB + // GL_ANGLE_depth_texture, GL_OES_depth32 + // GL_EXT_color_buffer_float + // GL_EXT_texture_norm16 + // GL_EXT_texture_compression_bptc + // GL_EXT_texture_compression_rgtc + void setTextureExtensionSupport(const TextureCapsMap &textureCaps); + + // Helper functions + bool copyImageAny() const { return (copyImageEXT || copyImageOES); } + bool depthTextureAny() const { return (depthTextureANGLE || depthTextureOES); } + bool drawBuffersIndexedAny() const { return (drawBuffersIndexedEXT || drawBuffersIndexedOES); } + bool drawElementsBaseVertexAny() const + { + return (drawElementsBaseVertexEXT || drawElementsBaseVertexOES); + } + bool framebufferBlitAny() const { return (framebufferBlitANGLE || framebufferBlitNV); } + bool geometryShaderAny() const { return (geometryShaderEXT || geometryShaderOES); } + bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); } + bool shaderIoBlocksAny() const { return (shaderIoBlocksEXT || shaderIoBlocksOES); } + bool textureBorderClampAny() const { return (textureBorderClampEXT || textureBorderClampOES); } + bool textureBufferAny() const { return (textureBufferEXT || textureBufferOES); } + bool textureCubeMapArrayAny() const + { + return (textureCubeMapArrayEXT || textureCubeMapArrayOES); + } + + // GLES 2.0+ extensions + // -------------------- + + // GL_KHR_blend_equation_advanced + bool blendEquationAdvancedKHR = false; + + // GL_EXT_blend_func_extended + bool blendFuncExtendedEXT = false; + + // GL_EXT_blend_minmax + bool blendMinmaxEXT = false; + + // GL_EXT_buffer_storage + bool bufferStorageEXT = false; + + // GL_EXT_clip_control + bool clipControlEXT = false; + + // GL_EXT_clip_cull_distance + bool clipCullDistanceEXT = false; + + // GL_APPLE_clip_distance + bool clipDistanceAPPLE = false; + + // GL_EXT_color_buffer_float + bool colorBufferFloatEXT = false; + + // GL_EXT_color_buffer_half_float + bool colorBufferHalfFloatEXT = false; + + // GL_OES_compressed_EAC_R11_signed_texture + bool compressedEACR11SignedTextureOES = false; + + // GL_OES_compressed_EAC_R11_unsigned_texture + bool compressedEACR11UnsignedTextureOES = false; + + // GL_OES_compressed_EAC_RG11_signed_texture + bool compressedEACRG11SignedTextureOES = false; + + // GL_OES_compressed_EAC_RG11_unsigned_texture + bool compressedEACRG11UnsignedTextureOES = false; + + // GL_EXT_compressed_ETC1_RGB8_sub_texture + bool compressedETC1RGB8SubTextureEXT = false; + + // GL_OES_compressed_ETC1_RGB8_texture + bool compressedETC1RGB8TextureOES = false; + + // GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture + bool compressedETC2PunchthroughARGBA8TextureOES = false; + + // GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture + bool compressedETC2PunchthroughASRGB8AlphaTextureOES = false; + + // GL_OES_compressed_ETC2_RGB8_texture + bool compressedETC2RGB8TextureOES = false; + + // GL_OES_compressed_ETC2_RGBA8_texture + bool compressedETC2RGBA8TextureOES = false; + + // GL_OES_compressed_ETC2_sRGB8_alpha8_texture + bool compressedETC2SRGB8Alpha8TextureOES = false; + + // GL_OES_compressed_ETC2_sRGB8_texture + bool compressedETC2SRGB8TextureOES = false; + + // GL_EXT_copy_image + bool copyImageEXT = false; + + // GL_OES_copy_image + bool copyImageOES = false; + + // GL_KHR_debug + bool debugKHR = false; + + // GL_EXT_debug_label + bool debugLabelEXT = false; + + // GL_EXT_debug_marker + bool debugMarkerEXT = false; + + // GL_OES_depth24 + bool depth24OES = false; + + // GL_OES_depth32 + bool depth32OES = false; + + // GL_NV_depth_buffer_float2 + bool depthBufferFloat2NV = false; + + // GL_ANGLE_depth_texture + bool depthTextureANGLE = false; + + // GL_OES_depth_texture + bool depthTextureOES = false; + + // GL_OES_depth_texture_cube_map + bool depthTextureCubeMapOES = false; + + // GL_EXT_discard_framebuffer + bool discardFramebufferEXT = false; + + // GL_EXT_disjoint_timer_query + bool disjointTimerQueryEXT = false; + + // GL_EXT_draw_buffers + bool drawBuffersEXT = false; + + // GL_EXT_draw_buffers_indexed + bool drawBuffersIndexedEXT = false; + + // GL_OES_draw_buffers_indexed + bool drawBuffersIndexedOES = false; + + // GL_EXT_draw_elements_base_vertex + bool drawElementsBaseVertexEXT = false; + + // GL_OES_draw_elements_base_vertex + bool drawElementsBaseVertexOES = false; + + // GL_OES_EGL_image + bool EGLImageOES = false; + + // GL_EXT_EGL_image_array + bool EGLImageArrayEXT = false; + + // GL_OES_EGL_image_external + bool EGLImageExternalOES = false; + + // GL_OES_EGL_image_external_essl3 + bool EGLImageExternalEssl3OES = false; + + // GL_EXT_EGL_image_external_wrap_modes + bool EGLImageExternalWrapModesEXT = false; + + // GL_EXT_EGL_image_storage + bool EGLImageStorageEXT = false; + + // GL_NV_EGL_stream_consumer_external + bool EGLStreamConsumerExternalNV = false; + + // GL_OES_EGL_sync + bool EGLSyncOES = false; + + // GL_OES_element_index_uint + bool elementIndexUintOES = false; + + // GL_EXT_external_buffer + bool externalBufferEXT = false; + + // GL_OES_fbo_render_mipmap + bool fboRenderMipmapOES = false; + + // GL_NV_fence + bool fenceNV = false; + + // GL_EXT_float_blend + bool floatBlendEXT = false; + + // GL_EXT_frag_depth + bool fragDepthEXT = false; + + // GL_ANGLE_framebuffer_blit + bool framebufferBlitANGLE = false; + + // GL_NV_framebuffer_blit + bool framebufferBlitNV = false; + + // GL_EXT_geometry_shader + bool geometryShaderEXT = false; + + // GL_OES_geometry_shader + bool geometryShaderOES = false; + + // GL_OES_get_program_binary + bool getProgramBinaryOES = false; + + // GL_EXT_gpu_shader5 + bool gpuShader5EXT = false; + + // GL_ANGLE_instanced_arrays + bool instancedArraysANGLE = false; + + // GL_EXT_instanced_arrays + bool instancedArraysEXT = false; + + // GL_OES_mapbuffer + bool mapbufferOES = false; + + // GL_EXT_map_buffer_range + bool mapBufferRangeEXT = false; + + // GL_EXT_memory_object + bool memoryObjectEXT = false; + + // GL_EXT_memory_object_fd + bool memoryObjectFdEXT = false; + + // GL_EXT_multisample_compatibility + bool multisampleCompatibilityEXT = false; + + // GL_EXT_multisampled_render_to_texture + bool multisampledRenderToTextureEXT = false; + + // GL_EXT_multisampled_render_to_texture2 + bool multisampledRenderToTexture2EXT = false; + + // GL_OVR_multiview + bool multiviewOVR = false; + + // GL_OVR_multiview2 + bool multiview2OVR = false; + + // GL_KHR_no_error + bool noErrorKHR = false; + + // GL_EXT_occlusion_query_boolean + bool occlusionQueryBooleanEXT = false; + + // GL_OES_packed_depth_stencil + bool packedDepthStencilOES = false; + + // GL_ANGLE_pack_reverse_row_order + bool packReverseRowOrderANGLE = false; + + // GL_NV_pack_subimage + bool packSubimageNV = false; + + // GL_KHR_parallel_shader_compile + bool parallelShaderCompileKHR = false; + + // GL_NV_pixel_buffer_object + bool pixelBufferObjectNV = false; + + // GL_EXT_primitive_bounding_box + bool primitiveBoundingBoxEXT = false; + + // GL_EXT_protected_textures + bool protectedTexturesEXT = false; + + // GL_EXT_pvrtc_sRGB + bool pvrtcSRGBEXT = false; + + // GL_NV_read_depth + bool readDepthNV = false; + + // GL_EXT_read_format_bgra + bool readFormatBgraEXT = false; + + // GL_NV_read_stencil + bool readStencilNV = false; + + // GL_OES_rgb8_rgba8 + bool rgb8Rgba8OES = false; + + // GL_KHR_robust_buffer_access_behavior + bool robustBufferAccessBehaviorKHR = false; + + // GL_EXT_robustness + bool robustnessEXT = false; + + // GL_NV_robustness_video_memory_purge + bool robustnessVideoMemoryPurgeNV = false; + + // GL_OES_sample_shading + bool sampleShadingOES = false; + + // GL_OES_sample_variables + bool sampleVariablesOES = false; + + // GL_EXT_semaphore + bool semaphoreEXT = false; + + // GL_EXT_semaphore_fd + bool semaphoreFdEXT = false; + + // GL_EXT_separate_shader_objects + bool separateShaderObjectsEXT = false; + + // GL_EXT_shader_framebuffer_fetch_non_coherent + bool shaderFramebufferFetchNonCoherentEXT = false; + + // GL_OES_shader_image_atomic + bool shaderImageAtomicOES = false; + + // GL_EXT_shader_io_blocks + bool shaderIoBlocksEXT = false; + + // GL_OES_shader_io_blocks + bool shaderIoBlocksOES = false; + + // GL_OES_shader_multisample_interpolation + bool shaderMultisampleInterpolationOES = false; + + // GL_EXT_shader_non_constant_global_initializers + bool shaderNonConstantGlobalInitializersEXT = false; + + // GL_NV_shader_noperspective_interpolation + bool shaderNoperspectiveInterpolationNV = false; + + // GL_EXT_shader_texture_lod + bool shaderTextureLodEXT = false; + + // GL_EXT_shadow_samplers + bool shadowSamplersEXT = false; + + // GL_EXT_sRGB + bool sRGBEXT = false; + + // GL_EXT_sRGB_write_control + bool sRGBWriteControlEXT = false; + + // GL_OES_standard_derivatives + bool standardDerivativesOES = false; + + // GL_OES_surfaceless_context + bool surfacelessContextOES = false; + + // GL_ARB_sync + bool syncARB = false; + + // GL_EXT_tessellation_shader + bool tessellationShaderEXT = false; + + // GL_OES_texture_3D + bool texture3DOES = false; + + // GL_EXT_texture_border_clamp + bool textureBorderClampEXT = false; + + // GL_OES_texture_border_clamp + bool textureBorderClampOES = false; + + // GL_EXT_texture_buffer + bool textureBufferEXT = false; + + // GL_OES_texture_buffer + bool textureBufferOES = false; + + // GL_OES_texture_compression_astc + bool textureCompressionAstcOES = false; + + // GL_KHR_texture_compression_astc_hdr + bool textureCompressionAstcHdrKHR = false; + + // GL_KHR_texture_compression_astc_ldr + bool textureCompressionAstcLdrKHR = false; + + // GL_KHR_texture_compression_astc_sliced_3d + bool textureCompressionAstcSliced3dKHR = false; + + // GL_EXT_texture_compression_bptc + bool textureCompressionBptcEXT = false; + + // GL_EXT_texture_compression_dxt1 + bool textureCompressionDxt1EXT = false; + + // GL_IMG_texture_compression_pvrtc + bool textureCompressionPvrtcIMG = false; + + // GL_IMG_texture_compression_pvrtc2 + bool textureCompressionPvrtc2IMG = false; + + // GL_EXT_texture_compression_rgtc + bool textureCompressionRgtcEXT = false; + + // GL_EXT_texture_compression_s3tc + bool textureCompressionS3tcEXT = false; + + // GL_EXT_texture_compression_s3tc_srgb + bool textureCompressionS3tcSrgbEXT = false; + + // GL_EXT_texture_cube_map_array + bool textureCubeMapArrayEXT = false; + + // GL_OES_texture_cube_map_array + bool textureCubeMapArrayOES = false; + + // GL_EXT_texture_filter_anisotropic + bool textureFilterAnisotropicEXT = false; + + // GL_OES_texture_float + bool textureFloatOES = false; + + // GL_OES_texture_float_linear + bool textureFloatLinearOES = false; + + // GL_EXT_texture_format_BGRA8888 + bool textureFormatBGRA8888EXT = false; + + // GL_EXT_texture_format_sRGB_override + bool textureFormatSRGBOverrideEXT = false; + + // GL_OES_texture_half_float + bool textureHalfFloatOES = false; + + // GL_OES_texture_half_float_linear + bool textureHalfFloatLinearOES = false; + + // GL_EXT_texture_norm16 + bool textureNorm16EXT = false; + + // GL_OES_texture_npot + bool textureNpotOES = false; + + // GL_EXT_texture_rg + bool textureRgEXT = false; + + // GL_EXT_texture_sRGB_decode + bool textureSRGBDecodeEXT = false; + + // GL_EXT_texture_sRGB_R8 + bool textureSRGBR8EXT = false; + + // GL_EXT_texture_sRGB_RG8 + bool textureSRGBRG8EXT = false; + + // GL_OES_texture_stencil8 + bool textureStencil8OES = false; + + // GL_EXT_texture_storage + bool textureStorageEXT = false; + + // GL_OES_texture_storage_multisample_2d_array + bool textureStorageMultisample2dArrayOES = false; + + // GL_EXT_texture_type_2_10_10_10_REV + bool textureType2101010REVEXT = false; + + // GL_ANGLE_texture_usage + bool textureUsageANGLE = false; + + // GL_ANGLE_translated_shader_source + bool translatedShaderSourceANGLE = false; + + // GL_EXT_unpack_subimage + bool unpackSubimageEXT = false; + + // GL_OES_vertex_array_object + bool vertexArrayObjectOES = false; + + // GL_OES_vertex_half_float + bool vertexHalfFloatOES = false; + + // GL_OES_vertex_type_10_10_10_2 + bool vertexType1010102OES = false; + + // GL_WEBGL_video_texture + bool videoTextureWEBGL = false; + + // GL_EXT_YUV_target + bool YUVTargetEXT = false; + + // ANGLE unofficial extensions + // --------------------------- + + // GL_ANGLE_base_vertex_base_instance + bool baseVertexBaseInstanceANGLE = false; + + // GL_CHROMIUM_bind_generates_resource + bool bindGeneratesResourceCHROMIUM = false; + + // GL_CHROMIUM_bind_uniform_location + bool bindUniformLocationCHROMIUM = false; + + // GL_ANGLE_client_arrays + bool clientArraysANGLE = false; + + // GL_CHROMIUM_color_buffer_float_rgb + bool colorBufferFloatRgbCHROMIUM = false; + + // GL_CHROMIUM_color_buffer_float_rgba + bool colorBufferFloatRgbaCHROMIUM = false; + + // GL_ANGLE_compressed_texture_etc + bool compressedTextureEtcANGLE = false; + + // GL_CHROMIUM_copy_compressed_texture + bool copyCompressedTextureCHROMIUM = false; + + // GL_CHROMIUM_copy_texture + bool copyTextureCHROMIUM = false; + + // GL_ANGLE_copy_texture_3d + bool copyTexture3dANGLE = false; + + // GL_CHROMIUM_framebuffer_mixed_samples + bool framebufferMixedSamplesCHROMIUM = false; + + // GL_ANGLE_framebuffer_multisample + bool framebufferMultisampleANGLE = false; + + // GL_ANGLE_get_image + bool getImageANGLE = false; + + // GL_ANGLE_get_serialized_context_string + bool getSerializedContextStringANGLE = false; + + // GL_ANGLE_get_tex_level_parameter + bool getTexLevelParameterANGLE = false; + + // GL_CHROMIUM_lose_context + bool loseContextCHROMIUM = false; + + // GL_ANGLE_lossy_etc_decode + bool lossyEtcDecodeANGLE = false; + + // GL_ANGLE_memory_object_flags + bool memoryObjectFlagsANGLE = false; + + // GL_ANGLE_memory_object_fuchsia + bool memoryObjectFuchsiaANGLE = false; + + // GL_ANGLE_memory_size + bool memorySizeANGLE = false; + + // GL_ANGLE_multi_draw + bool multiDrawANGLE = false; + + // GL_ANGLE_multiview_multisample + bool multiviewMultisampleANGLE = false; + + // GL_ANGLE_program_binary + bool programBinaryANGLE = false; + + // GL_ANGLE_program_cache_control + bool programCacheControlANGLE = false; + + // GL_ANGLE_provoking_vertex + bool provokingVertexANGLE = false; + + // GL_ANGLE_relaxed_vertex_attribute_type + bool relaxedVertexAttributeTypeANGLE = false; + + // GL_ANGLE_request_extension + bool requestExtensionANGLE = false; + + // GL_ANGLE_robust_client_memory + bool robustClientMemoryANGLE = false; + + // GL_ANGLE_robust_fragment_shader_output + bool robustFragmentShaderOutputANGLE = false; + + // GL_ANGLE_robust_resource_initialization + bool robustResourceInitializationANGLE = false; + + // GL_ANGLE_semaphore_fuchsia + bool semaphoreFuchsiaANGLE = false; + + // GL_CHROMIUM_sync_query + bool syncQueryCHROMIUM = false; + + // GL_ANGLE_texture_compression_dxt3 + bool textureCompressionDxt3ANGLE = false; + + // GL_ANGLE_texture_compression_dxt5 + bool textureCompressionDxt5ANGLE = false; + + // GL_ANGLE_texture_external_update + bool textureExternalUpdateANGLE = false; + + // GL_CHROMIUM_texture_filtering_hint + bool textureFilteringHintCHROMIUM = false; + + // GL_ANGLE_texture_multisample + bool textureMultisampleANGLE = false; + + // GL_ANGLE_texture_rectangle + bool textureRectangleANGLE = false; + + // GL_ANGLE_webgl_compatibility + bool webglCompatibilityANGLE = false; + + // GL_ANGLE_yuv_internal_format + bool yuvInternalFormatANGLE = false; + + // GLES 1.0 and 1.1 extensions + // --------------------------- + + // GL_OES_draw_texture + bool drawTextureOES = false; + + // GL_OES_framebuffer_object + bool framebufferObjectOES = false; + + // GL_OES_matrix_palette + bool matrixPaletteOES = false; + + // GL_OES_point_size_array + bool pointSizeArrayOES = false; + + // GL_OES_point_sprite + bool pointSpriteOES = false; + + // GL_OES_query_matrix + bool queryMatrixOES = false; + + // GL_OES_texture_cube_map + bool textureCubeMapOES = false; +}; +} // namespace gl + +#endif // LIBANGLE_GLES_EXTENSIONS_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.cpp b/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/gles_extensions_autogen.cpp @@ -0,0 +1,261 @@ +// GENERATED FILE - DO NOT EDIT. +// Generated by gen_extensions.py using data from registry_xml.py and gl.xml +// +// Copyright 2021 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. +// +// gles_extensions_autogen.h: GLES extension strings information. + +#include "anglebase/no_destructor.h" +#include "libANGLE/Caps.h" + +namespace gl +{ +const ExtensionInfoMap &GetExtensionInfoMap() +{ + auto buildExtensionInfoMap = []() { + auto enableableExtension = [](ExtensionBool member) { + ExtensionInfo info; + info.Requestable = true; + info.ExtensionsMember = member; + return info; + }; + + auto enableableDisablableExtension = [&](ExtensionBool member) { + ExtensionInfo info = enableableExtension(member); + info.Disablable = true; + return info; + }; + + auto esOnlyExtension = [](ExtensionBool member) { + ExtensionInfo info; + info.ExtensionsMember = member; + return info; + }; + + // clang-format off + ExtensionInfoMap map; + + // GLES 2.0 extension strings + // -------------------------- + map["GL_KHR_blend_equation_advanced"] = esOnlyExtension(&Extensions::blendEquationAdvancedKHR); + map["GL_EXT_blend_func_extended"] = enableableExtension(&Extensions::blendFuncExtendedEXT); + map["GL_EXT_blend_minmax"] = enableableExtension(&Extensions::blendMinmaxEXT); + map["GL_EXT_buffer_storage"] = enableableExtension(&Extensions::bufferStorageEXT); + map["GL_EXT_clip_control"] = enableableExtension(&Extensions::clipControlEXT); + map["GL_EXT_clip_cull_distance"] = enableableExtension(&Extensions::clipCullDistanceEXT); + map["GL_APPLE_clip_distance"] = enableableExtension(&Extensions::clipDistanceAPPLE); + map["GL_EXT_color_buffer_float"] = enableableExtension(&Extensions::colorBufferFloatEXT); + map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloatEXT); + map["GL_OES_compressed_EAC_R11_signed_texture"] = enableableExtension(&Extensions::compressedEACR11SignedTextureOES); + map["GL_OES_compressed_EAC_R11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACR11UnsignedTextureOES); + map["GL_OES_compressed_EAC_RG11_signed_texture"] = enableableExtension(&Extensions::compressedEACRG11SignedTextureOES); + map["GL_OES_compressed_EAC_RG11_unsigned_texture"] = enableableExtension(&Extensions::compressedEACRG11UnsignedTextureOES); + map["GL_EXT_compressed_ETC1_RGB8_sub_texture"] = enableableExtension(&Extensions::compressedETC1RGB8SubTextureEXT); + map["GL_OES_compressed_ETC1_RGB8_texture"] = enableableExtension(&Extensions::compressedETC1RGB8TextureOES); + map["GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughARGBA8TextureOES); + map["GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture"] = enableableExtension(&Extensions::compressedETC2PunchthroughASRGB8AlphaTextureOES); + map["GL_OES_compressed_ETC2_RGB8_texture"] = enableableExtension(&Extensions::compressedETC2RGB8TextureOES); + map["GL_OES_compressed_ETC2_RGBA8_texture"] = enableableExtension(&Extensions::compressedETC2RGBA8TextureOES); + map["GL_OES_compressed_ETC2_sRGB8_alpha8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8Alpha8TextureOES); + map["GL_OES_compressed_ETC2_sRGB8_texture"] = enableableExtension(&Extensions::compressedETC2SRGB8TextureOES); + map["GL_EXT_copy_image"] = enableableExtension(&Extensions::copyImageEXT); + map["GL_OES_copy_image"] = enableableExtension(&Extensions::copyImageOES); + map["GL_KHR_debug"] = esOnlyExtension(&Extensions::debugKHR); + map["GL_EXT_debug_label"] = esOnlyExtension(&Extensions::debugLabelEXT); + map["GL_EXT_debug_marker"] = esOnlyExtension(&Extensions::debugMarkerEXT); + map["GL_OES_depth24"] = esOnlyExtension(&Extensions::depth24OES); + map["GL_OES_depth32"] = esOnlyExtension(&Extensions::depth32OES); + map["GL_NV_depth_buffer_float2"] = enableableExtension(&Extensions::depthBufferFloat2NV); + map["GL_ANGLE_depth_texture"] = esOnlyExtension(&Extensions::depthTextureANGLE); + map["GL_OES_depth_texture"] = esOnlyExtension(&Extensions::depthTextureOES); + map["GL_OES_depth_texture_cube_map"] = enableableExtension(&Extensions::depthTextureCubeMapOES); + map["GL_EXT_discard_framebuffer"] = esOnlyExtension(&Extensions::discardFramebufferEXT); + map["GL_EXT_disjoint_timer_query"] = enableableExtension(&Extensions::disjointTimerQueryEXT); + map["GL_EXT_draw_buffers"] = enableableExtension(&Extensions::drawBuffersEXT); + map["GL_EXT_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedEXT); + map["GL_OES_draw_buffers_indexed"] = enableableExtension(&Extensions::drawBuffersIndexedOES); + map["GL_EXT_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexEXT); + map["GL_OES_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexOES); + map["GL_OES_EGL_image"] = enableableExtension(&Extensions::EGLImageOES); + map["GL_EXT_EGL_image_array"] = enableableExtension(&Extensions::EGLImageArrayEXT); + map["GL_OES_EGL_image_external"] = enableableExtension(&Extensions::EGLImageExternalOES); + map["GL_OES_EGL_image_external_essl3"] = enableableExtension(&Extensions::EGLImageExternalEssl3OES); + map["GL_EXT_EGL_image_external_wrap_modes"] = enableableExtension(&Extensions::EGLImageExternalWrapModesEXT); + map["GL_EXT_EGL_image_storage"] = enableableExtension(&Extensions::EGLImageStorageEXT); + map["GL_NV_EGL_stream_consumer_external"] = enableableExtension(&Extensions::EGLStreamConsumerExternalNV); + map["GL_OES_EGL_sync"] = esOnlyExtension(&Extensions::EGLSyncOES); + map["GL_OES_element_index_uint"] = enableableExtension(&Extensions::elementIndexUintOES); + map["GL_EXT_external_buffer"] = enableableExtension(&Extensions::externalBufferEXT); + map["GL_OES_fbo_render_mipmap"] = enableableExtension(&Extensions::fboRenderMipmapOES); + map["GL_NV_fence"] = esOnlyExtension(&Extensions::fenceNV); + map["GL_EXT_float_blend"] = enableableExtension(&Extensions::floatBlendEXT); + map["GL_EXT_frag_depth"] = enableableExtension(&Extensions::fragDepthEXT); + map["GL_ANGLE_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitANGLE); + map["GL_NV_framebuffer_blit"] = enableableExtension(&Extensions::framebufferBlitNV); + map["GL_EXT_geometry_shader"] = enableableExtension(&Extensions::geometryShaderEXT); + map["GL_OES_geometry_shader"] = enableableExtension(&Extensions::geometryShaderOES); + map["GL_OES_get_program_binary"] = enableableExtension(&Extensions::getProgramBinaryOES); + map["GL_EXT_gpu_shader5"] = enableableExtension(&Extensions::gpuShader5EXT); + map["GL_ANGLE_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysANGLE); + map["GL_EXT_instanced_arrays"] = enableableExtension(&Extensions::instancedArraysEXT); + map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapbufferOES); + map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRangeEXT); + map["GL_EXT_memory_object"] = enableableExtension(&Extensions::memoryObjectEXT); + map["GL_EXT_memory_object_fd"] = enableableExtension(&Extensions::memoryObjectFdEXT); + map["GL_EXT_multisample_compatibility"] = esOnlyExtension(&Extensions::multisampleCompatibilityEXT); + map["GL_EXT_multisampled_render_to_texture"] = enableableExtension(&Extensions::multisampledRenderToTextureEXT); + map["GL_EXT_multisampled_render_to_texture2"] = enableableExtension(&Extensions::multisampledRenderToTexture2EXT); + map["GL_OVR_multiview"] = enableableExtension(&Extensions::multiviewOVR); + map["GL_OVR_multiview2"] = enableableExtension(&Extensions::multiview2OVR); + map["GL_KHR_no_error"] = esOnlyExtension(&Extensions::noErrorKHR); + map["GL_EXT_occlusion_query_boolean"] = enableableExtension(&Extensions::occlusionQueryBooleanEXT); + map["GL_OES_packed_depth_stencil"] = esOnlyExtension(&Extensions::packedDepthStencilOES); + map["GL_ANGLE_pack_reverse_row_order"] = enableableExtension(&Extensions::packReverseRowOrderANGLE); + map["GL_NV_pack_subimage"] = enableableExtension(&Extensions::packSubimageNV); + map["GL_KHR_parallel_shader_compile"] = enableableExtension(&Extensions::parallelShaderCompileKHR); + map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObjectNV); + map["GL_EXT_primitive_bounding_box"] = esOnlyExtension(&Extensions::primitiveBoundingBoxEXT); + map["GL_EXT_protected_textures"] = enableableExtension(&Extensions::protectedTexturesEXT); + map["GL_EXT_pvrtc_sRGB"] = enableableExtension(&Extensions::pvrtcSRGBEXT); + map["GL_NV_read_depth"] = enableableExtension(&Extensions::readDepthNV); + map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBgraEXT); + map["GL_NV_read_stencil"] = enableableExtension(&Extensions::readStencilNV); + map["GL_OES_rgb8_rgba8"] = enableableExtension(&Extensions::rgb8Rgba8OES); + map["GL_KHR_robust_buffer_access_behavior"] = esOnlyExtension(&Extensions::robustBufferAccessBehaviorKHR); + map["GL_EXT_robustness"] = esOnlyExtension(&Extensions::robustnessEXT); + map["GL_NV_robustness_video_memory_purge"] = esOnlyExtension(&Extensions::robustnessVideoMemoryPurgeNV); + map["GL_OES_sample_shading"] = enableableExtension(&Extensions::sampleShadingOES); + map["GL_OES_sample_variables"] = enableableExtension(&Extensions::sampleVariablesOES); + map["GL_EXT_semaphore"] = enableableExtension(&Extensions::semaphoreEXT); + map["GL_EXT_semaphore_fd"] = enableableExtension(&Extensions::semaphoreFdEXT); + map["GL_EXT_separate_shader_objects"] = enableableExtension(&Extensions::separateShaderObjectsEXT); + map["GL_EXT_shader_framebuffer_fetch_non_coherent"] = enableableExtension(&Extensions::shaderFramebufferFetchNonCoherentEXT); + map["GL_OES_shader_image_atomic"] = enableableExtension(&Extensions::shaderImageAtomicOES); + map["GL_EXT_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksEXT); + map["GL_OES_shader_io_blocks"] = enableableExtension(&Extensions::shaderIoBlocksOES); + map["GL_OES_shader_multisample_interpolation"] = enableableExtension(&Extensions::shaderMultisampleInterpolationOES); + map["GL_EXT_shader_non_constant_global_initializers"] = enableableExtension(&Extensions::shaderNonConstantGlobalInitializersEXT); + map["GL_NV_shader_noperspective_interpolation"] = enableableExtension(&Extensions::shaderNoperspectiveInterpolationNV); + map["GL_EXT_shader_texture_lod"] = enableableExtension(&Extensions::shaderTextureLodEXT); + map["GL_EXT_shadow_samplers"] = enableableExtension(&Extensions::shadowSamplersEXT); + map["GL_EXT_sRGB"] = enableableExtension(&Extensions::sRGBEXT); + map["GL_EXT_sRGB_write_control"] = esOnlyExtension(&Extensions::sRGBWriteControlEXT); + map["GL_OES_standard_derivatives"] = enableableExtension(&Extensions::standardDerivativesOES); + map["GL_OES_surfaceless_context"] = esOnlyExtension(&Extensions::surfacelessContextOES); + map["GL_ARB_sync"] = enableableExtension(&Extensions::syncARB); + map["GL_EXT_tessellation_shader"] = enableableExtension(&Extensions::tessellationShaderEXT); + map["GL_OES_texture_3D"] = enableableExtension(&Extensions::texture3DOES); + map["GL_EXT_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampEXT); + map["GL_OES_texture_border_clamp"] = enableableExtension(&Extensions::textureBorderClampOES); + map["GL_EXT_texture_buffer"] = enableableExtension(&Extensions::textureBufferEXT); + map["GL_OES_texture_buffer"] = enableableExtension(&Extensions::textureBufferOES); + map["GL_OES_texture_compression_astc"] = enableableExtension(&Extensions::textureCompressionAstcOES); + map["GL_KHR_texture_compression_astc_hdr"] = enableableExtension(&Extensions::textureCompressionAstcHdrKHR); + map["GL_KHR_texture_compression_astc_ldr"] = enableableExtension(&Extensions::textureCompressionAstcLdrKHR); + map["GL_KHR_texture_compression_astc_sliced_3d"] = enableableExtension(&Extensions::textureCompressionAstcSliced3dKHR); + map["GL_EXT_texture_compression_bptc"] = enableableExtension(&Extensions::textureCompressionBptcEXT); + map["GL_EXT_texture_compression_dxt1"] = enableableExtension(&Extensions::textureCompressionDxt1EXT); + map["GL_IMG_texture_compression_pvrtc"] = enableableExtension(&Extensions::textureCompressionPvrtcIMG); + map["GL_IMG_texture_compression_pvrtc2"] = enableableExtension(&Extensions::textureCompressionPvrtc2IMG); + map["GL_EXT_texture_compression_rgtc"] = enableableExtension(&Extensions::textureCompressionRgtcEXT); + map["GL_EXT_texture_compression_s3tc"] = enableableExtension(&Extensions::textureCompressionS3tcEXT); + map["GL_EXT_texture_compression_s3tc_srgb"] = enableableExtension(&Extensions::textureCompressionS3tcSrgbEXT); + map["GL_EXT_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayEXT); + map["GL_OES_texture_cube_map_array"] = enableableExtension(&Extensions::textureCubeMapArrayOES); + map["GL_EXT_texture_filter_anisotropic"] = enableableExtension(&Extensions::textureFilterAnisotropicEXT); + map["GL_OES_texture_float"] = enableableExtension(&Extensions::textureFloatOES); + map["GL_OES_texture_float_linear"] = enableableExtension(&Extensions::textureFloatLinearOES); + map["GL_EXT_texture_format_BGRA8888"] = enableableExtension(&Extensions::textureFormatBGRA8888EXT); + map["GL_EXT_texture_format_sRGB_override"] = esOnlyExtension(&Extensions::textureFormatSRGBOverrideEXT); + map["GL_OES_texture_half_float"] = enableableExtension(&Extensions::textureHalfFloatOES); + map["GL_OES_texture_half_float_linear"] = enableableExtension(&Extensions::textureHalfFloatLinearOES); + map["GL_EXT_texture_norm16"] = enableableExtension(&Extensions::textureNorm16EXT); + map["GL_OES_texture_npot"] = enableableExtension(&Extensions::textureNpotOES); + map["GL_EXT_texture_rg"] = enableableExtension(&Extensions::textureRgEXT); + map["GL_EXT_texture_sRGB_decode"] = esOnlyExtension(&Extensions::textureSRGBDecodeEXT); + map["GL_EXT_texture_sRGB_R8"] = enableableExtension(&Extensions::textureSRGBR8EXT); + map["GL_EXT_texture_sRGB_RG8"] = enableableExtension(&Extensions::textureSRGBRG8EXT); + map["GL_OES_texture_stencil8"] = enableableExtension(&Extensions::textureStencil8OES); + map["GL_EXT_texture_storage"] = enableableExtension(&Extensions::textureStorageEXT); + map["GL_OES_texture_storage_multisample_2d_array"] = enableableExtension(&Extensions::textureStorageMultisample2dArrayOES); + map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureType2101010REVEXT); + map["GL_ANGLE_texture_usage"] = enableableExtension(&Extensions::textureUsageANGLE); + map["GL_ANGLE_translated_shader_source"] = esOnlyExtension(&Extensions::translatedShaderSourceANGLE); + map["GL_EXT_unpack_subimage"] = enableableExtension(&Extensions::unpackSubimageEXT); + map["GL_OES_vertex_array_object"] = enableableExtension(&Extensions::vertexArrayObjectOES); + map["GL_OES_vertex_half_float"] = enableableExtension(&Extensions::vertexHalfFloatOES); + map["GL_OES_vertex_type_10_10_10_2"] = enableableExtension(&Extensions::vertexType1010102OES); + map["GL_WEBGL_video_texture"] = enableableExtension(&Extensions::videoTextureWEBGL); + map["GL_EXT_YUV_target"] = enableableExtension(&Extensions::YUVTargetEXT); + + // ANGLE unofficial extension strings + // ---------------------------------- + map["GL_ANGLE_base_vertex_base_instance"] = enableableExtension(&Extensions::baseVertexBaseInstanceANGLE); + map["GL_CHROMIUM_bind_generates_resource"] = esOnlyExtension(&Extensions::bindGeneratesResourceCHROMIUM); + map["GL_CHROMIUM_bind_uniform_location"] = esOnlyExtension(&Extensions::bindUniformLocationCHROMIUM); + map["GL_ANGLE_client_arrays"] = esOnlyExtension(&Extensions::clientArraysANGLE); + map["GL_CHROMIUM_color_buffer_float_rgb"] = enableableExtension(&Extensions::colorBufferFloatRgbCHROMIUM); + map["GL_CHROMIUM_color_buffer_float_rgba"] = enableableExtension(&Extensions::colorBufferFloatRgbaCHROMIUM); + map["GL_ANGLE_compressed_texture_etc"] = enableableExtension(&Extensions::compressedTextureEtcANGLE); + map["GL_CHROMIUM_copy_compressed_texture"] = esOnlyExtension(&Extensions::copyCompressedTextureCHROMIUM); + map["GL_CHROMIUM_copy_texture"] = esOnlyExtension(&Extensions::copyTextureCHROMIUM); + map["GL_ANGLE_copy_texture_3d"] = enableableExtension(&Extensions::copyTexture3dANGLE); + map["GL_CHROMIUM_framebuffer_mixed_samples"] = esOnlyExtension(&Extensions::framebufferMixedSamplesCHROMIUM); + map["GL_ANGLE_framebuffer_multisample"] = enableableExtension(&Extensions::framebufferMultisampleANGLE); + map["GL_ANGLE_get_image"] = enableableExtension(&Extensions::getImageANGLE); + map["GL_ANGLE_get_serialized_context_string"] = esOnlyExtension(&Extensions::getSerializedContextStringANGLE); + map["GL_ANGLE_get_tex_level_parameter"] = enableableExtension(&Extensions::getTexLevelParameterANGLE); + map["GL_CHROMIUM_lose_context"] = enableableExtension(&Extensions::loseContextCHROMIUM); + map["GL_ANGLE_lossy_etc_decode"] = enableableExtension(&Extensions::lossyEtcDecodeANGLE); + map["GL_ANGLE_memory_object_flags"] = enableableExtension(&Extensions::memoryObjectFlagsANGLE); + map["GL_ANGLE_memory_object_fuchsia"] = enableableExtension(&Extensions::memoryObjectFuchsiaANGLE); + map["GL_ANGLE_memory_size"] = enableableExtension(&Extensions::memorySizeANGLE); + map["GL_ANGLE_multi_draw"] = enableableExtension(&Extensions::multiDrawANGLE); + map["GL_ANGLE_multiview_multisample"] = enableableExtension(&Extensions::multiviewMultisampleANGLE); + map["GL_ANGLE_program_binary"] = esOnlyExtension(&Extensions::programBinaryANGLE); + map["GL_ANGLE_program_cache_control"] = esOnlyExtension(&Extensions::programCacheControlANGLE); + map["GL_ANGLE_provoking_vertex"] = enableableExtension(&Extensions::provokingVertexANGLE); + map["GL_ANGLE_relaxed_vertex_attribute_type"] = esOnlyExtension(&Extensions::relaxedVertexAttributeTypeANGLE); + map["GL_ANGLE_request_extension"] = esOnlyExtension(&Extensions::requestExtensionANGLE); + map["GL_ANGLE_robust_client_memory"] = esOnlyExtension(&Extensions::robustClientMemoryANGLE); + map["GL_ANGLE_robust_fragment_shader_output"] = enableableExtension(&Extensions::robustFragmentShaderOutputANGLE); + map["GL_ANGLE_robust_resource_initialization"] = esOnlyExtension(&Extensions::robustResourceInitializationANGLE); + map["GL_ANGLE_semaphore_fuchsia"] = enableableExtension(&Extensions::semaphoreFuchsiaANGLE); + map["GL_CHROMIUM_sync_query"] = enableableExtension(&Extensions::syncQueryCHROMIUM); + map["GL_ANGLE_texture_compression_dxt3"] = enableableExtension(&Extensions::textureCompressionDxt3ANGLE); + map["GL_ANGLE_texture_compression_dxt5"] = enableableExtension(&Extensions::textureCompressionDxt5ANGLE); + map["GL_ANGLE_texture_external_update"] = enableableExtension(&Extensions::textureExternalUpdateANGLE); + map["GL_CHROMIUM_texture_filtering_hint"] = enableableExtension(&Extensions::textureFilteringHintCHROMIUM); + map["GL_ANGLE_texture_multisample"] = enableableExtension(&Extensions::textureMultisampleANGLE); + map["GL_ANGLE_texture_rectangle"] = enableableDisablableExtension(&Extensions::textureRectangleANGLE); + map["GL_ANGLE_webgl_compatibility"] = esOnlyExtension(&Extensions::webglCompatibilityANGLE); + map["GL_ANGLE_yuv_internal_format"] = enableableExtension(&Extensions::yuvInternalFormatANGLE); + + // GLES 1.0 and 1.1 extension strings + // ---------------------------------- + map["GL_OES_draw_texture"] = enableableExtension(&Extensions::drawTextureOES); + map["GL_OES_framebuffer_object"] = enableableExtension(&Extensions::framebufferObjectOES); + map["GL_OES_matrix_palette"] = enableableExtension(&Extensions::matrixPaletteOES); + map["GL_OES_point_size_array"] = enableableExtension(&Extensions::pointSizeArrayOES); + map["GL_OES_point_sprite"] = enableableExtension(&Extensions::pointSpriteOES); + map["GL_OES_query_matrix"] = enableableExtension(&Extensions::queryMatrixOES); + map["GL_OES_texture_cube_map"] = enableableExtension(&Extensions::textureCubeMapOES); + // clang-format on + +#if defined(ANGLE_ENABLE_ASSERTS) + // Verify all extension strings start with GL_ + for (const auto &extension : map) + { + ASSERT(extension.first.rfind("GL_", 0) == 0); + } +#endif + + return map; + }; + + static const angle::base::NoDestructor extensionInfo(buildExtensionInfoMap()); + return *extensionInfo; +} +} // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/queryutils.cpp b/gfx/angle/checkout/src/libANGLE/queryutils.cpp --- a/gfx/angle/checkout/src/libANGLE/queryutils.cpp +++ b/gfx/angle/checkout/src/libANGLE/queryutils.cpp @@ -6,10 +6,12 @@ // queryutils.cpp: Utilities for querying values from GL objects #include "libANGLE/queryutils.h" +#include + #include "common/utilities.h" #include "libANGLE/Buffer.h" #include "libANGLE/Config.h" #include "libANGLE/Context.h" @@ -84,29 +86,26 @@ { UNREACHABLE(); } else { - ASSERT(color.type == ColorGeneric::Type::Float); color.colorF.writeData(outParams); } } template void ConvertFromColor(const ColorGeneric &color, GLint *outParams) { if (isPureInteger) { - ASSERT(color.type == ColorGeneric::Type::Int); outParams[0] = color.colorI.red; outParams[1] = color.colorI.green; outParams[2] = color.colorI.blue; outParams[3] = color.colorI.alpha; } else { - ASSERT(color.type == ColorGeneric::Type::Float); outParams[0] = floatToNormalized(color.colorF.red); outParams[1] = floatToNormalized(color.colorF.green); outParams[2] = floatToNormalized(color.colorF.blue); outParams[3] = floatToNormalized(color.colorF.alpha); } @@ -115,15 +114,16 @@ template void ConvertFromColor(const ColorGeneric &color, GLuint *outParams) { if (isPureInteger) { - ASSERT(color.type == ColorGeneric::Type::UInt); - outParams[0] = color.colorUI.red; - outParams[1] = color.colorUI.green; - outParams[2] = color.colorUI.blue; - outParams[3] = color.colorUI.alpha; + constexpr unsigned int kMinValue = 0; + + outParams[0] = std::max(color.colorUI.red, kMinValue); + outParams[1] = std::max(color.colorUI.green, kMinValue); + outParams[2] = std::max(color.colorUI.blue, kMinValue); + outParams[3] = std::max(color.colorUI.alpha, kMinValue); } else { UNREACHABLE(); } @@ -367,10 +367,13 @@ break; case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES: *params = CastFromGLintStateValue( pname, texture->getRequiredTextureImageUnits(context)); break; + case GL_TEXTURE_PROTECTED_EXT: + *params = CastFromGLintStateValue(pname, texture->hasProtectedContent()); + break; default: UNREACHABLE(); break; } } @@ -477,10 +480,13 @@ break; case GL_RESOURCE_INITIALIZED_ANGLE: texture->setInitState(ConvertToBool(params[0]) ? InitState::Initialized : InitState::MayNeedInit); break; + case GL_TEXTURE_PROTECTED_EXT: + texture->setProtectedContent(context, (params[0] == GL_TRUE)); + break; default: UNREACHABLE(); break; } } @@ -2191,10 +2197,14 @@ { case GL_DEDICATED_MEMORY_OBJECT_EXT: ANGLE_TRY(memoryObject->setDedicatedMemory(context, ConvertToBool(params[0]))); break; + case GL_PROTECTED_MEMORY_OBJECT_EXT: + ANGLE_TRY(memoryObject->setProtectedMemory(context, ConvertToBool(params[0]))); + break; + default: UNREACHABLE(); } return angle::Result::Continue; @@ -2206,10 +2216,14 @@ { case GL_DEDICATED_MEMORY_OBJECT_EXT: *params = memoryObject->isDedicatedMemory(); break; + case GL_PROTECTED_MEMORY_OBJECT_EXT: + *params = memoryObject->isProtectedMemory(); + break; + default: UNREACHABLE(); } } @@ -3125,33 +3139,33 @@ *numParams = 1; return true; } case GL_PACK_REVERSE_ROW_ORDER_ANGLE: { - if (!extensions.packReverseRowOrder) + if (!extensions.packReverseRowOrderANGLE) { return false; } *type = GL_INT; *numParams = 1; return true; } case GL_MAX_RECTANGLE_TEXTURE_SIZE_ANGLE: case GL_TEXTURE_BINDING_RECTANGLE_ANGLE: { - if (!extensions.textureRectangle) + if (!extensions.textureRectangleANGLE) { return false; } *type = GL_INT; *numParams = 1; return true; } case GL_MAX_DRAW_BUFFERS_EXT: case GL_MAX_COLOR_ATTACHMENTS_EXT: { - if ((clientMajorVersion < 3) && !extensions.drawBuffers) + if ((clientMajorVersion < 3) && !extensions.drawBuffersEXT) { return false; } *type = GL_INT; *numParams = 1; @@ -3219,43 +3233,43 @@ *type = GL_FLOAT; *numParams = 4; return true; } case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: - if (!extensions.textureFilterAnisotropic) + if (!extensions.textureFilterAnisotropicEXT) { return false; } *type = GL_FLOAT; *numParams = 1; return true; case GL_TIMESTAMP_EXT: - if (!extensions.disjointTimerQuery) + if (!extensions.disjointTimerQueryEXT) { return false; } *type = GL_INT_64_ANGLEX; *numParams = 1; return true; case GL_GPU_DISJOINT_EXT: - if (!extensions.disjointTimerQuery) + if (!extensions.disjointTimerQueryEXT) { return false; } *type = GL_INT; *numParams = 1; return true; case GL_COVERAGE_MODULATION_CHROMIUM: - if (!extensions.framebufferMixedSamples) + if (!extensions.framebufferMixedSamplesCHROMIUM) { return false; } *type = GL_INT; *numParams = 1; return true; case GL_TEXTURE_BINDING_EXTERNAL_OES: - if (!extensions.eglStreamConsumerExternalNV && !extensions.eglImageExternalOES) + if (!extensions.EGLStreamConsumerExternalNV && !extensions.EGLImageExternalOES) { return false; } *type = GL_INT; *numParams = 1; @@ -3290,10 +3304,18 @@ return false; } *type = GL_INT; *numParams = 1; return true; + case GL_PRIMITIVE_BOUNDING_BOX: + if (!extensions.primitiveBoundingBoxEXT) + { + return false; + } + *type = GL_FLOAT; + *numParams = 8; + return true; } if (glState.getClientType() == EGL_OPENGL_API) { switch (pname) @@ -3306,11 +3328,11 @@ return true; } } } - if (extensions.debug) + if (extensions.debugKHR) { switch (pname) { case GL_DEBUG_LOGGED_MESSAGES: case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: @@ -3329,11 +3351,11 @@ *numParams = 1; return true; } } - if (extensions.multisampleCompatibility) + if (extensions.multisampleCompatibilityEXT) { switch (pname) { case GL_MULTISAMPLE_EXT: case GL_SAMPLE_ALPHA_TO_ONE_EXT: @@ -3341,71 +3363,80 @@ *numParams = 1; return true; } } - if (extensions.bindGeneratesResource) + if (extensions.bindGeneratesResourceCHROMIUM) { switch (pname) { case GL_BIND_GENERATES_RESOURCE_CHROMIUM: *type = GL_BOOL; *numParams = 1; return true; } } - if (extensions.clientArrays) + if (extensions.clientArraysANGLE) { switch (pname) { case GL_CLIENT_ARRAYS_ANGLE: *type = GL_BOOL; *numParams = 1; return true; } } - if (extensions.sRGBWriteControl) + if (extensions.sRGBWriteControlEXT) { switch (pname) { case GL_FRAMEBUFFER_SRGB_EXT: *type = GL_BOOL; *numParams = 1; return true; } } - if (extensions.robustResourceInitialization && pname == GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE) + if (extensions.robustResourceInitializationANGLE && + pname == GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE) + { + *type = GL_BOOL; + *numParams = 1; + return true; + } + + if (extensions.programCacheControlANGLE && pname == GL_PROGRAM_CACHE_ENABLED_ANGLE) { *type = GL_BOOL; *numParams = 1; return true; } - if (extensions.programCacheControl && pname == GL_PROGRAM_CACHE_ENABLED_ANGLE) - { - *type = GL_BOOL; - *numParams = 1; - return true; - } - - if (extensions.parallelShaderCompile && pname == GL_MAX_SHADER_COMPILER_THREADS_KHR) + if (extensions.parallelShaderCompileKHR && pname == GL_MAX_SHADER_COMPILER_THREADS_KHR) { *type = GL_INT; *numParams = 1; return true; } - if (extensions.blendFuncExtended && pname == GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT) + if (extensions.blendFuncExtendedEXT && pname == GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT) { *type = GL_INT; *numParams = 1; return true; } + if (extensions.robustFragmentShaderOutputANGLE && + pname == GL_ROBUST_FRAGMENT_SHADER_OUTPUT_ANGLE) + { + *type = GL_BOOL; + *numParams = 1; + return true; + } + // Check for ES3.0+ parameter names which are also exposed as ES2 extensions switch (pname) { // GL_DRAW_FRAMEBUFFER_BINDING equivalent to GL_FRAMEBUFFER_BINDING case GL_READ_FRAMEBUFFER_BINDING: @@ -3436,21 +3467,21 @@ return true; case GL_PACK_ROW_LENGTH: case GL_PACK_SKIP_ROWS: case GL_PACK_SKIP_PIXELS: - if ((clientMajorVersion < 3) && !extensions.packSubimage) + if ((clientMajorVersion < 3) && !extensions.packSubimageNV) { return false; } *type = GL_INT; *numParams = 1; return true; case GL_UNPACK_ROW_LENGTH: case GL_UNPACK_SKIP_ROWS: case GL_UNPACK_SKIP_PIXELS: - if ((clientMajorVersion < 3) && !extensions.unpackSubimage) + if ((clientMajorVersion < 3) && !extensions.unpackSubimageEXT) { return false; } *type = GL_INT; *numParams = 1; @@ -3474,12 +3505,12 @@ return true; case GL_MAX_SAMPLES: { static_assert(GL_MAX_SAMPLES_ANGLE == GL_MAX_SAMPLES, "GL_MAX_SAMPLES_ANGLE not equal to GL_MAX_SAMPLES"); - if ((clientMajorVersion < 3) && - !(extensions.framebufferMultisample || extensions.multisampledRenderToTexture)) + if ((clientMajorVersion < 3) && !(extensions.framebufferMultisampleANGLE || + extensions.multisampledRenderToTextureEXT)) { return false; } *type = GL_INT; *numParams = 1; @@ -3512,20 +3543,20 @@ return true; } if (pname >= GL_DRAW_BUFFER0_EXT && pname <= GL_DRAW_BUFFER15_EXT) { - if ((glState.getClientVersion() < Version(3, 0)) && !extensions.drawBuffers) + if ((glState.getClientVersion() < Version(3, 0)) && !extensions.drawBuffersEXT) { return false; } *type = GL_INT; *numParams = 1; return true; } - if ((extensions.multiview2 || extensions.multiview) && pname == GL_MAX_VIEWS_OVR) + if ((extensions.multiview2OVR || extensions.multiviewOVR) && pname == GL_MAX_VIEWS_OVR) { *type = GL_INT; *numParams = 1; return true; } @@ -3693,22 +3724,22 @@ *numParams = 1; return true; } } - if (extensions.requestExtension) + if (extensions.requestExtensionANGLE) { switch (pname) { case GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE: *type = GL_INT; *numParams = 1; return true; } } - if (extensions.textureMultisample) + if (extensions.textureMultisampleANGLE) { switch (pname) { case GL_MAX_COLOR_TEXTURE_SAMPLES_ANGLE: case GL_MAX_INTEGER_SAMPLES_ANGLE: @@ -3818,11 +3849,11 @@ *type = GL_FLOAT; *numParams = 1; return true; } - if (extensions.geometryShader) + if (extensions.geometryShaderAny()) { switch (pname) { case GL_MAX_FRAMEBUFFER_LAYERS_EXT: case GL_LAYER_PROVOKING_VERTEX_EXT: @@ -4242,13 +4273,10 @@ *value = surface->isPostSubBufferSupported(); break; case EGL_FIXED_SIZE_ANGLE: *value = surface->isFixedSize(); break; - case EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE: - *value = surface->flexibleSurfaceCompatibilityRequested(); - break; case EGL_SURFACE_ORIENTATION_ANGLE: *value = surface->getOrientation(); break; case EGL_DIRECT_COMPOSITION_ANGLE: *value = surface->directComposition(); @@ -4289,10 +4317,13 @@ surface->setFixedHeight(value); break; case EGL_TIMESTAMPS_ANDROID: surface->setTimestampsEnabled(value != EGL_FALSE); break; + case EGL_RENDER_BUFFER: + surface->setRenderBuffer(value); + break; default: UNREACHABLE(); break; } } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.h @@ -170,10 +170,11 @@ virtual angle::Result pushDebugGroup(const gl::Context *context, GLenum source, GLuint id, const std::string &message) = 0; virtual angle::Result popDebugGroup(const gl::Context *context) = 0; + virtual angle::Result handleNoopDrawEvent(); // KHR_parallel_shader_compile virtual void setMaxShaderCompilerThreads(GLuint count) {} // GL_ANGLE_texture_storage_external @@ -183,11 +184,12 @@ virtual void framebufferFetchBarrier() {} // State sync with dirty bits. virtual angle::Result syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits, - const gl::State::DirtyBits &bitMask) = 0; + const gl::State::DirtyBits &bitMask, + gl::Command command) = 0; // Disjoint timer queries virtual GLint getGPUDisjoint() = 0; virtual GLint64 getTimestamp() = 0; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.cpp b/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.cpp @@ -27,10 +27,15 @@ angle::Result ContextImpl::onUnMakeCurrent(const gl::Context *context) { return angle::Result::Continue; } +angle::Result ContextImpl::handleNoopDrawEvent() +{ + return angle::Result::Continue; +} + void ContextImpl::setMemoryProgramCache(gl::MemoryProgramCache *memoryProgramCache) { mMemoryProgramCache = memoryProgramCache; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/FormatID_autogen.h b/gfx/angle/checkout/src/libANGLE/renderer/FormatID_autogen.h --- a/gfx/angle/checkout/src/libANGLE/renderer/FormatID_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/FormatID_autogen.h @@ -214,10 +214,11 @@ R8G8B8A8_TYPELESS_SRGB, R8G8B8A8_UINT, R8G8B8A8_UNORM, R8G8B8A8_UNORM_SRGB, R8G8B8A8_USCALED, + R8G8B8X8_UNORM, R8G8B8_SINT, R8G8B8_SNORM, R8G8B8_SSCALED, R8G8B8_UINT, R8G8B8_UNORM, @@ -226,10 +227,11 @@ R8G8_SINT, R8G8_SNORM, R8G8_SSCALED, R8G8_UINT, R8G8_UNORM, + R8G8_UNORM_SRGB, R8G8_USCALED, R8_SINT, R8_SNORM, R8_SSCALED, R8_UINT, @@ -243,10 +245,10 @@ X2R10G10B10_UINT_VERTEX, X2R10G10B10_UNORM_VERTEX, X2R10G10B10_USCALED_VERTEX }; -constexpr uint32_t kNumANGLEFormats = 226; +constexpr uint32_t kNumANGLEFormats = 228; } // namespace angle #endif // LIBANGLE_RENDERER_FORMATID_H_ diff --git a/gfx/angle/checkout/src/libANGLE/renderer/Format_table_autogen.cpp b/gfx/angle/checkout/src/libANGLE/renderer/Format_table_autogen.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/Format_table_autogen.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/Format_table_autogen.cpp @@ -125,12 +125,12 @@ { FormatID::ETC2_R8G8B8A1_UNORM_BLOCK, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 1, 0, 0, 0, 8, std::numeric_limits::max(), true, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::ETC2_R8G8B8A8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 16, 0, true, false, false, true, false, gl::VertexAttribType::Byte }, { FormatID::ETC2_R8G8B8A8_UNORM_BLOCK, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 16, 0, true, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::ETC2_R8G8B8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ETC2, GL_COMPRESSED_SRGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, true, false, gl::VertexAttribType::Byte }, { FormatID::ETC2_R8G8B8_UNORM_BLOCK, GL_COMPRESSED_RGB8_ETC2, GL_COMPRESSED_RGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 8, 0, true, false, false, false, false, gl::VertexAttribType::UnsignedByte }, - { FormatID::G8_B8R8_2PLANE_420_UNORM, GL_G8_B8R8_2PLANE_420_UNORM_ANGLEX, GL_G8_B8R8_2PLANE_420_UNORM_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, true, gl::VertexAttribType::UnsignedByte }, - { FormatID::G8_B8_R8_3PLANE_420_UNORM, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, true, gl::VertexAttribType::UnsignedByte }, + { FormatID::G8_B8R8_2PLANE_420_UNORM, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, true, gl::VertexAttribType::UnsignedByte }, + { FormatID::G8_B8_R8_3PLANE_420_UNORM, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, true, gl::VertexAttribType::UnsignedByte }, { FormatID::L16A16_FLOAT, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA16F_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_FLOAT, 0, 0, 0, 16, 16, 0, 0, 4, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L16_FLOAT, GL_LUMINANCE16F_EXT, GL_LUMINANCE16F_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_FLOAT, 0, 0, 0, 0, 16, 0, 0, 2, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L32A32_FLOAT, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA32F_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_FLOAT, 0, 0, 0, 32, 32, 0, 0, 8, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L32_FLOAT, GL_LUMINANCE32F_EXT, GL_LUMINANCE32F_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_FLOAT, 0, 0, 0, 0, 32, 0, 0, 4, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::Float }, { FormatID::L8A8_UNORM, GL_LUMINANCE8_ALPHA8_EXT, GL_LUMINANCE8_ALPHA8_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 8, 0, 0, 2, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::InvalidEnum }, @@ -221,10 +221,11 @@ { FormatID::R8G8B8A8_TYPELESS_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, true, false, gl::VertexAttribType::Byte }, { FormatID::R8G8B8A8_UINT, GL_RGBA8UI, GL_RGBA8UI, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8G8B8A8_UNORM, GL_RGBA8, GL_RGBA8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, false, true, false, gl::VertexAttribType::Byte }, { FormatID::R8G8B8A8_USCALED, GL_RGBA8_USCALED_ANGLEX, GL_RGBA8_USCALED_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 0, 4, 0, false, false, true, false, false, gl::VertexAttribType::UnsignedByte }, + { FormatID::R8G8B8X8_UNORM, GL_RGBA8, GL_RGBA8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 4, std::numeric_limits::max(), false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8G8B8_SINT, GL_RGB8I, GL_RGB8I, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8B8_SNORM, GL_RGB8_SNORM, GL_RGB8_SNORM, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_SIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8B8_SSCALED, GL_RGB8_SSCALED_ANGLEX, GL_RGB8_SSCALED_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, true, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8B8_UINT, GL_RGB8UI, GL_RGB8UI, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8G8B8_UNORM, GL_RGB8, GL_RGB8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 3, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, @@ -233,10 +234,11 @@ { FormatID::R8G8_SINT, GL_RG8I, GL_RG8I, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8_SNORM, GL_RG8_SNORM, GL_RG8_SNORM, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_SIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8_SSCALED, GL_RG8_SSCALED_ANGLEX, GL_RG8_SSCALED_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, true, false, false, gl::VertexAttribType::Byte }, { FormatID::R8G8_UINT, GL_RG8UI, GL_RG8UI, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8G8_UNORM, GL_RG8, GL_RG8, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, + { FormatID::R8G8_UNORM_SRGB, GL_SRG8_EXT, GL_SRG8_EXT, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, false, true, false, gl::VertexAttribType::Byte }, { FormatID::R8G8_USCALED, GL_RG8_USCALED_ANGLEX, GL_RG8_USCALED_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 0, 2, 0, false, false, true, false, false, gl::VertexAttribType::UnsignedByte }, { FormatID::R8_SINT, GL_R8I, GL_R8I, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 0, 0, 0, 0, 0, 0, 1, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8_SNORM, GL_R8_SNORM, GL_R8_SNORM, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_SIGNED_NORMALIZED, 8, 0, 0, 0, 0, 0, 0, 1, 0, false, false, false, false, false, gl::VertexAttribType::Byte }, { FormatID::R8_SSCALED, GL_R8_SSCALED_ANGLEX, GL_R8_SSCALED_ANGLEX, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_INT, 8, 0, 0, 0, 0, 0, 0, 1, 0, false, false, true, false, false, gl::VertexAttribType::Byte }, { FormatID::R8_UINT, GL_R8UI, GL_R8UI, GenerateMip, NoCopyFunctions, ReadColor, WriteColor, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 0, 1, 0, false, false, false, false, false, gl::VertexAttribType::UnsignedByte }, @@ -470,13 +472,13 @@ return FormatID::D32_UNORM; case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE: return FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK; case GL_ETC1_RGB8_OES: return FormatID::ETC1_R8G8B8_UNORM_BLOCK; - case GL_G8_B8R8_2PLANE_420_UNORM_ANGLEX: + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: return FormatID::G8_B8R8_2PLANE_420_UNORM; - case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX: + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: return FormatID::G8_B8_R8_3PLANE_420_UNORM; case GL_INT_10_10_10_2_OES: return FormatID::A2R10G10B10_SINT_VERTEX; case GL_LUMINANCE16F_EXT: return FormatID::L16_FLOAT; @@ -690,12 +692,16 @@ return FormatID::R8G8B8A8_TYPELESS; case GL_RGBA8_TYPELESS_SRGB_ANGLEX: return FormatID::R8G8B8A8_TYPELESS_SRGB; case GL_RGBA8_USCALED_ANGLEX: return FormatID::R8G8B8A8_USCALED; + case GL_RGBX8_ANGLEX: + return FormatID::R8G8B8X8_UNORM; case GL_SR8_EXT: return FormatID::R8_UNORM_SRGB; + case GL_SRG8_EXT: + return FormatID::R8G8_UNORM_SRGB; case GL_SRGB8: return FormatID::R8G8B8_UNORM_SRGB; case GL_SRGB8_ALPHA8: return FormatID::R8G8B8A8_UNORM_SRGB; case GL_STENCIL_INDEX8: diff --git a/gfx/angle/checkout/src/libANGLE/renderer/FramebufferImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/FramebufferImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/FramebufferImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/FramebufferImpl.h @@ -12,19 +12,18 @@ #include "angle_gl.h" #include "common/angleutils.h" #include "libANGLE/Error.h" #include "libANGLE/Framebuffer.h" #include "libANGLE/State.h" +#include "libANGLE/angletypes.h" namespace gl { class Buffer; class Framebuffer; class FramebufferAttachment; struct PixelPackState; -struct Rectangle; -class State; } // namespace gl namespace rx { class DisplayImpl; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/ImageImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/ImageImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/ImageImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/ImageImpl.h @@ -38,10 +38,11 @@ virtual gl::Format getFormat() const = 0; virtual bool isRenderable(const gl::Context *context) const = 0; virtual bool isTexturable(const gl::Context *context) const = 0; virtual bool isYUV() const = 0; + virtual bool hasProtectedContent() const = 0; virtual gl::Extents getSize() const = 0; virtual size_t getSamples() const = 0; }; class ImageImpl : angle::NonCopyable diff --git a/gfx/angle/checkout/src/libANGLE/renderer/MemoryObjectImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/MemoryObjectImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/MemoryObjectImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/MemoryObjectImpl.h @@ -28,10 +28,11 @@ virtual ~MemoryObjectImpl() {} virtual void onDestroy(const gl::Context *context) = 0; virtual angle::Result setDedicatedMemory(const gl::Context *context, bool dedicatedMemory) = 0; + virtual angle::Result setProtectedMemory(const gl::Context *context, bool protectedMemory) = 0; virtual angle::Result importFd(gl::Context *context, GLuint64 size, gl::HandleType handleType, GLint fd) = 0; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.h @@ -15,24 +15,21 @@ #include "common/angleutils.h" #include "libANGLE/Error.h" #include "libANGLE/ImageIndex.h" #include "libANGLE/Stream.h" #include "libANGLE/Texture.h" +#include "libANGLE/angletypes.h" #include "libANGLE/renderer/FramebufferAttachmentObjectImpl.h" namespace egl { class Surface; class Image; } // namespace egl namespace gl { -struct Box; -struct Extents; -struct Offset; -struct Rectangle; class Framebuffer; class MemoryObject; struct PixelUnpackState; class TextureState; } // namespace gl @@ -210,10 +207,12 @@ virtual angle::Result setBaseLevel(const gl::Context *context, GLuint baseLevel) = 0; virtual angle::Result bindTexImage(const gl::Context *context, egl::Surface *surface) = 0; virtual angle::Result releaseTexImage(const gl::Context *context) = 0; + virtual void onLabelUpdate() {} + // Override if accurate native memory size information is available virtual GLint getMemorySize() const; virtual GLint getLevelMemorySize(gl::TextureTarget target, GLint level); virtual GLint getNativeID() const; @@ -232,10 +231,17 @@ GLint level, GLenum format, GLenum type, void *pixels); + virtual angle::Result getCompressedTexImage(const gl::Context *context, + const gl::PixelPackState &packState, + gl::Buffer *packBuffer, + gl::TextureTarget target, + GLint level, + void *pixels); + virtual GLint getRequiredExternalTextureImageUnits(const gl::Context *context); protected: const gl::TextureState &mState; }; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.cpp b/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.cpp @@ -173,10 +173,21 @@ { UNREACHABLE(); return angle::Result::Stop; } +angle::Result TextureImpl::getCompressedTexImage(const gl::Context *context, + const gl::PixelPackState &packState, + gl::Buffer *packBuffer, + gl::TextureTarget target, + GLint level, + void *pixels) +{ + UNREACHABLE(); + return angle::Result::Stop; +} + GLint TextureImpl::getRequiredExternalTextureImageUnits(const gl::Context *context) { UNREACHABLE(); return 0; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/VertexArrayImpl.h b/gfx/angle/checkout/src/libANGLE/renderer/VertexArrayImpl.h --- a/gfx/angle/checkout/src/libANGLE/renderer/VertexArrayImpl.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/VertexArrayImpl.h @@ -43,12 +43,18 @@ virtual void destroy(const gl::Context *context) {} virtual ~VertexArrayImpl() {} const gl::VertexArrayState &getState() const { return mState; } + void setContentsObservers(gl::VertexArrayBufferContentsObservers *observers) + { + mContentsObservers = observers; + } + protected: const gl::VertexArrayState &mState; + gl::VertexArrayBufferContentsObservers *mContentsObservers = nullptr; }; inline angle::Result VertexArrayImpl::syncState(const gl::Context *context, const gl::VertexArray::DirtyBits &dirtyBits, gl::VertexArray::DirtyAttribBitsArray *attribBits, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.inc.h b/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.inc.h --- a/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.inc.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.inc.h @@ -202,16 +202,16 @@ if (normalized) { if (NL::is_signed) { - result = static_cast(offsetInput[j]) / NL::max(); + result = static_cast(offsetInput[j]) / static_cast(NL::max()); result = result >= -1.0f ? result : -1.0f; } else { - result = static_cast(offsetInput[j]) / NL::max(); + result = static_cast(offsetInput[j]) / static_cast(NL::max()); } } else { result = static_cast(offsetInput[j]); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.cpp @@ -383,11 +383,11 @@ void DisplayD3D::generateCaps(egl::Caps *outCaps) const { // Display must be initialized to generate caps ASSERT(mRenderer != nullptr); - outCaps->textureNPOT = mRenderer->getNativeExtensions().textureNPOTOES; + outCaps->textureNPOT = mRenderer->getNativeExtensions().textureNpotOES; } egl::Error DisplayD3D::waitClient(const gl::Context *context) { for (egl::Surface *surface : mState.surfaceSet) diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.cpp @@ -551,16 +551,23 @@ // when rendering to the default framebuffer. No other values are valid. vertexGenerateOutput << " output.dx_Position.y = dx_ViewScale.y * gl_Position.y;\n"; } else { - vertexGenerateOutput << " output.dx_Position.y = - gl_Position.y;\n"; + vertexGenerateOutput + << " output.dx_Position.y = clipControlOrigin * gl_Position.y;\n"; } vertexGenerateOutput - << " output.dx_Position.z = (gl_Position.z + gl_Position.w) * 0.5;\n" - << " output.dx_Position.w = gl_Position.w;\n"; + << " if (clipControlZeroToOne)\n" + << " {\n" + << " output.dx_Position.z = gl_Position.z;\n" + << " } else {\n" + << " output.dx_Position.z = (gl_Position.z + gl_Position.w) * 0.5;\n" + << " }\n"; + + vertexGenerateOutput << " output.dx_Position.w = gl_Position.w;\n"; } else { vertexGenerateOutput << " output.dx_Position.x = gl_Position.x * dx_ViewAdjust.z + " "dx_ViewAdjust.x * gl_Position.w;\n"; @@ -574,18 +581,24 @@ vertexGenerateOutput << " output.dx_Position.y = dx_ViewScale.y * (gl_Position.y * " "dx_ViewAdjust.w + dx_ViewAdjust.y * gl_Position.w);\n"; } else { - vertexGenerateOutput - << " output.dx_Position.y = -(gl_Position.y * dx_ViewAdjust.w + " - "dx_ViewAdjust.y * gl_Position.w);\n"; + vertexGenerateOutput << " output.dx_Position.y = clipControlOrigin * (gl_Position.y " + "* dx_ViewAdjust.w + " + "dx_ViewAdjust.y * gl_Position.w);\n"; } vertexGenerateOutput - << " output.dx_Position.z = (gl_Position.z + gl_Position.w) * 0.5;\n" - << " output.dx_Position.w = gl_Position.w;\n"; + << " if (clipControlZeroToOne)\n" + << " {\n" + << " output.dx_Position.z = gl_Position.z;\n" + << " } else {\n" + << " output.dx_Position.z = (gl_Position.z + gl_Position.w) * 0.5;\n" + << " }\n"; + + vertexGenerateOutput << " output.dx_Position.w = gl_Position.w;\n"; } // We don't need to output gl_PointSize if we use are emulating point sprites via instancing. if (vertexBuiltins.glPointSize.enabled) { @@ -1242,11 +1255,11 @@ } if (metadata.usesSecondaryColor()) { for (unsigned int secondaryIndex = 0; - secondaryIndex < data.getExtensions().maxDualSourceDrawBuffers; secondaryIndex++) + secondaryIndex < data.getCaps().maxDualSourceDrawBuffers; secondaryIndex++) { PixelShaderOutputVariable outputKeyVariable; outputKeyVariable.type = GL_FLOAT_VEC4; outputKeyVariable.name = "gl_SecondaryColor" + Str(secondaryIndex); outputKeyVariable.source = "gl_SecondaryColor[" + Str(secondaryIndex) + "]"; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.cpp @@ -261,13 +261,12 @@ gl::err::kFramebufferIncompleteUnsupportedSeparateDepthStencilBuffers); } // D3D11 does not allow for overlapping RenderTargetViews. // If WebGL compatibility is enabled, this has already been checked at a higher level. - ASSERT(!context->getExtensions().webglCompatibility || - mState.colorAttachmentsAreUniqueImages()); - if (!context->getExtensions().webglCompatibility) + ASSERT(!context->isWebGL() || mState.colorAttachmentsAreUniqueImages()); + if (!context->isWebGL()) { if (!mState.colorAttachmentsAreUniqueImages()) { return gl::FramebufferStatus::Incomplete( GL_FRAMEBUFFER_UNSUPPORTED, @@ -310,11 +309,11 @@ } const gl::AttachmentList &FramebufferD3D::getColorAttachmentsForRender(const gl::Context *context) { gl::DrawBufferMask activeProgramOutputs = - context->getState().getProgram()->getActiveOutputVariables(); + context->getState().getProgram()->getExecutable().getActiveOutputVariablesMask(); if (mColorAttachmentsForRender.valid() && mCurrentActiveProgramOutputs == activeProgramOutputs) { return mColorAttachmentsForRender.value(); } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.h @@ -13,20 +13,17 @@ #include "common/debug.h" #include "common/PackedEnums.h" #include "libANGLE/Error.h" +#include "libANGLE/angletypes.h" namespace gl { class Context; class Framebuffer; class ImageIndex; -struct Box; -struct Extents; -struct Offset; -struct Rectangle; struct PixelUnpackState; } // namespace gl namespace rx { diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.cpp @@ -2091,11 +2091,11 @@ stream << str << " "; } stream << "]\nin the " << gl::GetShaderTypeString(shaderType) << " shader.\n"; stream << "You could get more details from " - "https://chromium.googlesource.com/angle/angle/+/refs/heads/master/" + "https://chromium.googlesource.com/angle/angle/+/refs/heads/main/" "src/libANGLE/renderer/d3d/d3d11/" "UniformBlockToStructuredBufferTranslation.md\n"; ANGLE_PERF_WARNING(context->getState().getDebug(), GL_DEBUG_SEVERITY_MEDIUM, stream.str().c_str()); } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.h @@ -287,67 +287,76 @@ virtual ImageD3D *createImage() = 0; virtual ExternalImageSiblingImpl *createExternalImageSibling( const gl::Context *context, EGLenum target, EGLClientBuffer buffer, - const egl::AttributeMap &attribs) = 0; + const egl::AttributeMap &attribs) = 0; virtual angle::Result generateMipmap(const gl::Context *context, ImageD3D *dest, - ImageD3D *source) = 0; + ImageD3D *source) = 0; virtual angle::Result generateMipmapUsingD3D(const gl::Context *context, TextureStorage *storage, - const gl::TextureState &textureState) = 0; + const gl::TextureState &textureState) = 0; virtual angle::Result copyImage(const gl::Context *context, ImageD3D *dest, ImageD3D *source, const gl::Box &sourceBox, const gl::Offset &destOffset, bool unpackFlipY, bool unpackPremultiplyAlpha, - bool unpackUnmultiplyAlpha) = 0; - virtual TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) = 0; + bool unpackUnmultiplyAlpha) = 0; + virtual TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain, + const std::string &label) = 0; virtual TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, - RenderTargetD3D *renderTargetD3D) = 0; + RenderTargetD3D *renderTargetD3D, + const std::string &label) = 0; virtual TextureStorage *createTextureStorageExternal( egl::Stream *stream, - const egl::Stream::GLTextureDescription &desc) = 0; + const egl::Stream::GLTextureDescription &desc, + const std::string &label) = 0; virtual TextureStorage *createTextureStorage2D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, - bool hintLevelZeroOnly) = 0; + const std::string &label, + bool hintLevelZeroOnly) = 0; virtual TextureStorage *createTextureStorageCube(GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) = 0; + bool hintLevelZeroOnly, + const std::string &label) = 0; virtual TextureStorage *createTextureStorage3D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) = 0; + int levels, + const std::string &label) = 0; virtual TextureStorage *createTextureStorage2DArray(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) = 0; + int levels, + const std::string &label) = 0; virtual TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) = 0; + bool fixedSampleLocations, + const std::string &label) = 0; virtual TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) = 0; + bool fixedSampleLocations, + const std::string &label) = 0; // Buffer-to-texture and Texture-to-buffer copies virtual bool supportsFastCopyBufferToTexture(GLenum internalFormat) const = 0; virtual angle::Result fastCopyBufferToTexture(const gl::Context *context, const gl::PixelUnpackState &unpack, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.cpp @@ -127,11 +127,11 @@ } if (features.allowTranslateUniformBlockToStructuredBuffer.enabled) { mAdditionalOptions |= SH_ALLOW_TRANSLATE_UNIFORM_BLOCK_TO_STRUCTUREDBUFFER; } - if (extensions.multiview || extensions.multiview2) + if (extensions.multiviewOVR || extensions.multiview2OVR) { mAdditionalOptions |= SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW; } } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.h @@ -115,10 +115,12 @@ angle::Result initializeContents(const gl::Context *context, const gl::ImageIndex &imageIndex) override; GLsizei getRenderToTextureSamples(); + void onLabelUpdate() override; + // ObserverInterface implementation. void onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message) override; protected: angle::Result setImageImpl(const gl::Context *context, @@ -200,11 +202,10 @@ private: virtual angle::Result initializeStorage(const gl::Context *context, bool renderTarget) = 0; virtual angle::Result updateStorage(const gl::Context *context) = 0; - bool couldUseSetData() const; bool shouldUseSetData(const ImageD3D *image) const; angle::Result generateMipmapUsingImages(const gl::Context *context, const GLuint maxLevel); GLuint mBaseLevel; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.cpp @@ -197,34 +197,17 @@ { ANGLE_HR_UNREACHABLE(GetImplAs(context)); return angle::Result::Continue; } -bool TextureD3D::couldUseSetData() const +bool TextureD3D::shouldUseSetData(const ImageD3D *image) const { if (!mRenderer->getFeatures().setDataFasterThanImageUpload.enabled) { return false; } - if (!mRenderer->getFeatures().setDataFasterThanImageUploadOn128bitFormats.enabled) - { - gl::InternalFormat internalFormat = - gl::GetSizedInternalFormatInfo(getBaseLevelInternalFormat()); - return internalFormat.pixelBytes < 16; - } - - return true; -} - -bool TextureD3D::shouldUseSetData(const ImageD3D *image) const -{ - if (!couldUseSetData()) - { - return false; - } - if (image->isDirty()) { return false; } @@ -417,11 +400,11 @@ } GLint TextureD3D::creationLevels(GLsizei width, GLsizei height, GLsizei depth) const { if ((gl::isPow2(width) && gl::isPow2(height) && gl::isPow2(depth)) || - mRenderer->getNativeExtensions().textureNPOTOES) + mRenderer->getNativeExtensions().textureNpotOES) { // Maximum number of levels return gl::log2(std::max(std::max(width, height), depth)) + 1; } else @@ -463,13 +446,13 @@ ASSERT(maxLevel > baseLevel); // Should be checked before calling this. if (mTexStorage && mRenderer->getFeatures().zeroMaxLodWorkaround.enabled) { // Switch to using the mipmapped texture. - TextureStorage *textureStorage = nullptr; - ANGLE_TRY(getNativeTexture(context, &textureStorage)); - ANGLE_TRY(textureStorage->useLevelZeroWorkaroundTexture(context, false)); + TextureStorage *textureStorageEXT = nullptr; + ANGLE_TRY(getNativeTexture(context, &textureStorageEXT)); + ANGLE_TRY(textureStorageEXT->useLevelZeroWorkaroundTexture(context, false)); } // Set up proper mipmap chain in our Image array. ANGLE_TRY(initMipmapImages(context)); @@ -503,11 +486,11 @@ { ANGLE_TRY(updateStorage(context)); } ANGLE_TRY(ensureRenderTarget(context)); } - else if (couldUseSetData() && mTexStorage) + else if (mRenderer->getFeatures().setDataFasterThanImageUpload.enabled && mTexStorage) { // When making mipmaps with the setData workaround enabled, the texture storage has // the image data already. For non-render-target storage, we have to pull it out into // an image layer. if (!mTexStorage->isRenderTarget()) @@ -710,10 +693,18 @@ } return angle::Result::Continue; } +void TextureD3D::onLabelUpdate() +{ + if (mTexStorage) + { + mTexStorage->onLabelUpdate(); + } +} + angle::Result TextureD3D::syncState(const gl::Context *context, const gl::Texture::DirtyBits &dirtyBits, gl::Command source) { // This could be improved using dirty bits. @@ -1084,12 +1075,11 @@ sourceArea.y + sourceArea.height > fbSize.height; // WebGL requires that pixels that would be outside the framebuffer are treated as zero values, // so clear the mip level to 0 prior to making the copy if any pixel would be sampled outside. // Same thing for robust resource init. - if (outside && - (context->getExtensions().webglCompatibility || context->isRobustResourceInitEnabled())) + if (outside && (context->isWebGL() || context->isRobustResourceInitEnabled())) { ANGLE_TRY(initializeContents(context, index)); } gl::Rectangle clippedArea; @@ -1324,11 +1314,12 @@ // TODO(geofflang): Verify storage creation had no errors bool renderTarget = IsRenderTargetUsage(mState.getUsage()); TexStoragePointer storage(context); storage.reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, size.width, - size.height, static_cast(levels), false)); + size.height, static_cast(levels), + mState.getLabel(), false)); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); ANGLE_TRY(updateStorage(context)); @@ -1348,11 +1339,11 @@ ANGLE_TRY(releaseTexStorage(context)); SurfaceD3D *surfaceD3D = GetImplAs(surface); ASSERT(surfaceD3D); - mTexStorage = mRenderer->createTextureStorage2D(surfaceD3D->getSwapChain()); + mTexStorage = mRenderer->createTextureStorage2D(surfaceD3D->getSwapChain(), mState.getLabel()); mEGLImageTarget = false; mDirtyImages = false; mImageArray[0]->markClean(); @@ -1396,11 +1387,12 @@ // Pass in the RenderTargetD3D here: createTextureStorage can't generate an error. RenderTargetD3D *renderTargetD3D = nullptr; ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D)); - mTexStorage = mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D); + mTexStorage = + mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D, mState.getLabel()); mEGLImageTarget = true; return angle::Result::Continue; } @@ -1541,12 +1533,12 @@ hintLevelZeroOnly = !(mImageArray[level]->isDirty() && isLevelComplete(level)); } } // TODO(geofflang): Determine if the texture creation succeeded - outStorage->reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height, - levels, hintLevelZeroOnly)); + outStorage->reset(mRenderer->createTextureStorage2D( + internalFormat, renderTarget, width, height, levels, mState.getLabel(), hintLevelZeroOnly)); return angle::Result::Continue; } angle::Result TextureD3D_2D::setCompleteTexStorage(const gl::Context *context, @@ -1837,12 +1829,11 @@ sourceArea.y + sourceArea.height > fbSize.height; // WebGL requires that pixels that would be outside the framebuffer are treated as zero values, // so clear the mip level to 0 prior to making the copy if any pixel would be sampled outside. // Same thing for robust resource init. - if (outside && - (context->getExtensions().webglCompatibility || context->isRobustResourceInitEnabled())) + if (outside && (context->isWebGL() || context->isRobustResourceInitEnabled())) { ANGLE_TRY(initializeContents(context, index)); } gl::Rectangle clippedArea; @@ -2063,11 +2054,12 @@ // TODO(geofflang): Verify storage creation had no errors bool renderTarget = IsRenderTargetUsage(mState.getUsage()); TexStoragePointer storage(context); storage.reset(mRenderer->createTextureStorageCube(internalFormat, renderTarget, size.width, - static_cast(levels), false)); + static_cast(levels), false, + mState.getLabel())); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); ANGLE_TRY(updateStorage(context)); @@ -2190,12 +2182,12 @@ GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(size, size, 1)); bool hintLevelZeroOnly = false; if (mRenderer->getFeatures().zeroMaxLodWorkaround.enabled) { - // If any of the CPU images (levels >= 1) are dirty, then the textureStorage should use the - // mipped texture to begin with. Otherwise, it should use the level-zero-only texture. + // If any of the CPU images (levels >= 1) are dirty, then the textureStorageEXT should use + // the mipped texture to begin with. Otherwise, it should use the level-zero-only texture. hintLevelZeroOnly = true; for (int faceIndex = 0; faceIndex < static_cast(gl::kCubeFaceCount) && hintLevelZeroOnly; faceIndex++) { for (int level = 1; level < levels && hintLevelZeroOnly; level++) @@ -2205,12 +2197,13 @@ } } } // TODO (geofflang): detect if storage creation succeeded - outStorage->reset(mRenderer->createTextureStorageCube( - getBaseLevelInternalFormat(), renderTarget, size, levels, hintLevelZeroOnly)); + outStorage->reset(mRenderer->createTextureStorageCube(getBaseLevelInternalFormat(), + renderTarget, size, levels, + hintLevelZeroOnly, mState.getLabel())); return angle::Result::Continue; } angle::Result TextureD3D_Cube::setCompleteTexStorage(const gl::Context *context, @@ -2776,11 +2769,11 @@ // TODO(geofflang): Verify storage creation had no errors bool renderTarget = IsRenderTargetUsage(mState.getUsage()); TexStoragePointer storage(context); storage.reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, size.width, size.height, size.depth, - static_cast(levels))); + static_cast(levels), mState.getLabel())); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); ANGLE_TRY(updateStorage(context)); @@ -2883,11 +2876,11 @@ GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, depth)); // TODO: Verify creation of the storage succeeded outStorage->reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, width, height, - depth, levels)); + depth, levels, mState.getLabel())); return angle::Result::Continue; } angle::Result TextureD3D_3D::setCompleteTexStorage(const gl::Context *context, @@ -3506,13 +3499,13 @@ } // TODO(geofflang): Verify storage creation had no errors bool renderTarget = IsRenderTargetUsage(mState.getUsage()); TexStoragePointer storage(context); - storage.reset(mRenderer->createTextureStorage2DArray(internalFormat, renderTarget, size.width, - size.height, size.depth, - static_cast(levels))); + storage.reset(mRenderer->createTextureStorage2DArray( + internalFormat, renderTarget, size.width, size.height, size.depth, static_cast(levels), + mState.getLabel())); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); ANGLE_TRY(updateStorage(context)); @@ -3609,12 +3602,12 @@ // use existing storage level count, when previously specified by TexStorage*D GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, 1)); // TODO(geofflang): Verify storage creation succeeds - outStorage->reset(mRenderer->createTextureStorage2DArray(internalFormat, renderTarget, width, - height, depth, levels)); + outStorage->reset(mRenderer->createTextureStorage2DArray( + internalFormat, renderTarget, width, height, depth, levels, mState.getLabel())); return angle::Result::Continue; } angle::Result TextureD3D_2DArray::setCompleteTexStorage(const gl::Context *context, @@ -3972,11 +3965,11 @@ ANGLE_TRY(releaseTexStorage(context)); // If the stream is null, the external image is unbound and we release the storage if (stream != nullptr) { - mTexStorage = mRenderer->createTextureStorageExternal(stream, desc); + mTexStorage = mRenderer->createTextureStorageExternal(stream, desc, mState.getLabel()); } return angle::Result::Continue; } @@ -3989,11 +3982,12 @@ // Pass in the RenderTargetD3D here: createTextureStorage can't generate an error. RenderTargetD3D *renderTargetD3D = nullptr; ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D)); ANGLE_TRY(releaseTexStorage(context)); - mTexStorage = mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D); + mTexStorage = + mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D, mState.getLabel()); return angle::Result::Continue; } angle::Result TextureD3D_External::initMipmapImages(const gl::Context *context) @@ -4084,13 +4078,13 @@ ASSERT(type == gl::TextureType::_2DMultisample && size.depth == 1); // We allocate storage immediately instead of doing it lazily like other TextureD3D classes do. // This requires less state in this class. TexStoragePointer storage(context); - storage.reset(mRenderer->createTextureStorage2DMultisample(internalformat, size.width, - size.height, static_cast(0), - samples, fixedSampleLocations)); + storage.reset(mRenderer->createTextureStorage2DMultisample( + internalformat, size.width, size.height, static_cast(0), samples, fixedSampleLocations, + mState.getLabel())); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); mImmutable = true; @@ -4204,11 +4198,11 @@ mLayerCount = size.depth; TexStoragePointer storage(context); storage.reset(mRenderer->createTextureStorage2DMultisampleArray( internalformat, size.width, size.height, size.depth, static_cast(0), samples, - fixedSampleLocations)); + fixedSampleLocations, mState.getLabel())); ANGLE_TRY(setCompleteTexStorage(context, storage.get())); storage.release(); mImmutable = true; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureStorage.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureStorage.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureStorage.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureStorage.h @@ -38,11 +38,11 @@ constexpr size_t kTextureStorageObserverMessageIndex = 0; class TextureStorage : public angle::Subject { public: - TextureStorage() {} + TextureStorage(const std::string &label) : mTextureLabel(label) {} ~TextureStorage() override {} virtual angle::Result onDestroy(const gl::Context *context); virtual int getTopLevel() const = 0; @@ -83,12 +83,15 @@ // RenderToTexture methods virtual angle::Result releaseMultisampledTexStorageForLevel(size_t level); virtual angle::Result resolveTexture(const gl::Context *context); virtual GLsizei getRenderToTextureSamples() const; + virtual void onLabelUpdate() {} + protected: const angle::Subject *mSubject; + const std::string mTextureLabel; }; inline angle::Result TextureStorage::onDestroy(const gl::Context *context) { return angle::Result::Continue; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp @@ -112,11 +112,11 @@ // Interpolate the original source rectangle to determine which column to sample // from while clamping to the edges float xPerc = static_cast(writeColumn - destArea.x) / (destArea.width - 1); float xRounded = floor(xPerc * (sourceArea.width - 1) + 0.5f); unsigned int readColumn = static_cast( - gl::clamp(sourceArea.x + xRounded, 0, sourceSize.height - 1)); + gl::clamp(sourceArea.x + xRounded, 0, sourceSize.width - 1)); const uint8_t *sourcePixel = sourceData + readRow * sourceRowPitch + readColumn * srcPixelStride + readOffset; uint8_t *destPixel = @@ -594,11 +594,11 @@ vbDesc.StructureByteStride = 0; Context11 *context11 = GetImplAs(context); ANGLE_TRY(mRenderer->allocateResource(context11, vbDesc, &mVertexBuffer)); - mVertexBuffer.setDebugName("Blit11 vertex buffer"); + mVertexBuffer.setInternalName("Blit11VertexBuffer"); D3D11_SAMPLER_DESC pointSamplerDesc; pointSamplerDesc.Filter = D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR; pointSamplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; pointSamplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; @@ -612,11 +612,11 @@ pointSamplerDesc.BorderColor[3] = 0.0f; pointSamplerDesc.MinLOD = 0.0f; pointSamplerDesc.MaxLOD = FLT_MAX; ANGLE_TRY(mRenderer->allocateResource(context11, pointSamplerDesc, &mPointSampler)); - mPointSampler.setDebugName("Blit11 point sampler"); + mPointSampler.setInternalName("Blit11PointSampler"); D3D11_SAMPLER_DESC linearSamplerDesc; linearSamplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; linearSamplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; linearSamplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; @@ -630,11 +630,11 @@ linearSamplerDesc.BorderColor[3] = 0.0f; linearSamplerDesc.MinLOD = 0.0f; linearSamplerDesc.MaxLOD = FLT_MAX; ANGLE_TRY(mRenderer->allocateResource(context11, linearSamplerDesc, &mLinearSampler)); - mLinearSampler.setDebugName("Blit11 linear sampler"); + mLinearSampler.setInternalName("Blit11LinearSampler"); // Use a rasterizer state that will not cull so that inverted quads will not be culled D3D11_RASTERIZER_DESC rasterDesc; rasterDesc.FillMode = D3D11_FILL_SOLID; rasterDesc.CullMode = D3D11_CULL_NONE; @@ -646,15 +646,15 @@ rasterDesc.MultisampleEnable = FALSE; rasterDesc.AntialiasedLineEnable = FALSE; rasterDesc.ScissorEnable = TRUE; ANGLE_TRY(mRenderer->allocateResource(context11, rasterDesc, &mScissorEnabledRasterizerState)); - mScissorEnabledRasterizerState.setDebugName("Blit11 scissoring rasterizer state"); + mScissorEnabledRasterizerState.setInternalName("Blit11ScissoringRasterizerState"); rasterDesc.ScissorEnable = FALSE; ANGLE_TRY(mRenderer->allocateResource(context11, rasterDesc, &mScissorDisabledRasterizerState)); - mScissorDisabledRasterizerState.setDebugName("Blit11 no scissoring rasterizer state"); + mScissorDisabledRasterizerState.setInternalName("Blit11NoScissoringRasterizerState"); D3D11_DEPTH_STENCIL_DESC depthStencilDesc; depthStencilDesc.DepthEnable = TRUE; depthStencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; depthStencilDesc.DepthFunc = D3D11_COMPARISON_ALWAYS; @@ -669,22 +669,22 @@ depthStencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; ANGLE_TRY(mRenderer->allocateResource(context11, depthStencilDesc, &mDepthStencilState)); - mDepthStencilState.setDebugName("Blit11 depth stencil state"); + mDepthStencilState.setInternalName("Blit11DepthStencilState"); D3D11_BUFFER_DESC swizzleBufferDesc; swizzleBufferDesc.ByteWidth = sizeof(unsigned int) * 4; swizzleBufferDesc.Usage = D3D11_USAGE_DYNAMIC; swizzleBufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; swizzleBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; swizzleBufferDesc.MiscFlags = 0; swizzleBufferDesc.StructureByteStride = 0; ANGLE_TRY(mRenderer->allocateResource(context11, swizzleBufferDesc, &mSwizzleCB)); - mSwizzleCB.setDebugName("Blit11 swizzle constant buffer"); + mSwizzleCB.setInternalName("Blit11SwizzleConstantBuffer"); mResourcesInitialized = true; return angle::Result::Continue; } @@ -1340,11 +1340,11 @@ { ASSERT(mBlitShaderMap.find(blitShaderType) == mBlitShaderMap.end()); d3d11::PixelShader ps; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), shaderData, &ps)); - ps.setDebugName(name); + ps.setInternalName(name); Shader shader; shader.dimension = dimension; shader.pixelShader = std::move(ps); @@ -1360,11 +1360,11 @@ { ASSERT(mSwizzleShaderMap.find(swizzleShaderType) == mSwizzleShaderMap.end()); d3d11::PixelShader ps; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), shaderData, &ps)); - ps.setDebugName(name); + ps.setInternalName(name); Shader shader; shader.dimension = dimension; shader.pixelShader = std::move(ps); @@ -1416,27 +1416,19 @@ case GL_RGBA_INTEGER: if (unpackPremultiplyAlpha == unpackUnmultiplyAlpha) { return RGBAF_TOI; } - else - { - return unpackPremultiplyAlpha ? RGBAF_TOI_PREMULTIPLY : RGBAF_TOI_UNMULTIPLY; - } - break; + return unpackPremultiplyAlpha ? RGBAF_TOI_PREMULTIPLY : RGBAF_TOI_UNMULTIPLY; case GL_RGB_INTEGER: case GL_RG_INTEGER: case GL_RED_INTEGER: if (unpackPremultiplyAlpha == unpackUnmultiplyAlpha) { return RGBF_TOI; } - else - { - return unpackPremultiplyAlpha ? RGBF_TOI_PREMULTIPLY : RGBF_TOI_UNMULTIPLY; - } - break; + return unpackPremultiplyAlpha ? RGBF_TOI_PREMULTIPLY : RGBF_TOI_UNMULTIPLY; default: UNREACHABLE(); return OPERATION_INVALID; } } @@ -1776,21 +1768,21 @@ textureDesc.MiscFlags = 0; Context11 *context11 = GetImplAs(context); ANGLE_TRY(mRenderer->allocateTexture(context11, textureDesc, format, &mResolvedDepth)); - mResolvedDepth.setDebugName("Blit11::mResolvedDepth"); + mResolvedDepth.setInternalName("Blit11::mResolvedDepth"); D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc; dsvDesc.Flags = 0; dsvDesc.Format = format.dsvFormat; dsvDesc.Texture2D.MipSlice = 0; dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; ANGLE_TRY(mRenderer->allocateResource(context11, dsvDesc, mResolvedDepth.get(), &mResolvedDepthDSView)); - mResolvedDepthDSView.setDebugName("Blit11::mResolvedDepthDSView"); + mResolvedDepthDSView.setInternalName("Blit11::mResolvedDepthDSView"); // Possibly D3D11 bug or undefined behaviour: Clear the DSV so that our first render // works as expected. Otherwise the results of the first use seem to be incorrect. ID3D11DeviceContext *deviceContext = mRenderer->getDeviceContext(); deviceContext->ClearDepthStencilView(mResolvedDepthDSView.get(), D3D11_CLEAR_DEPTH, 1.0f, 0); @@ -1830,15 +1822,15 @@ Context11 *context11 = GetImplAs(context); ANGLE_TRY( mRenderer->allocateTexture(context11, textureDesc, formatSet, &mResolvedDepthStencil)); - mResolvedDepthStencil.setDebugName("Blit11::mResolvedDepthStencil"); + mResolvedDepthStencil.setInternalName("Blit11::mResolvedDepthStencil"); ANGLE_TRY(mRenderer->allocateResourceNoDesc(context11, mResolvedDepthStencil.get(), &mResolvedDepthStencilRTView)); - mResolvedDepthStencilRTView.setDebugName("Blit11::mResolvedDepthStencilRTView"); + mResolvedDepthStencilRTView.setInternalName("Blit11::mResolvedDepthStencilRTView"); return angle::Result::Continue; } angle::Result Blit11::resolveStencil(const gl::Context *context, @@ -1881,11 +1873,11 @@ srViewDesc.Format = GetStencilSRVFormat(depthStencil->getFormatSet()); srViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DMS; ANGLE_TRY( mRenderer->allocateResource(context11, srViewDesc, stencilResource, &mStencilSRV)); - mStencilSRV.setDebugName("Blit11::mStencilSRV"); + mStencilSRV.setInternalName("Blit11::mStencilSRV"); } // Notify the Renderer that all state should be invalidated. ANGLE_TRY(mResolveDepthStencilVS.resolve(context11, mRenderer)); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp @@ -997,10 +997,15 @@ if (latestBuffer->getDataRevision() <= storage->getDataRevision()) { return angle::Result::Continue; } + if (latestBuffer->getSize() == 0 || storage->getSize() == 0) + { + return angle::Result::Continue; + } + // Copy through a staging buffer if we're copying from or to a non-staging, mappable // buffer storage. This is because we can't map a GPU buffer, and copy CPU // data directly. If we're already using a staging buffer we're fine. if (latestBuffer->getUsage() != BUFFER_USAGE_STAGING && storage->getUsage() != BUFFER_USAGE_STAGING && @@ -1228,11 +1233,11 @@ FillBufferDesc(&bufferDesc, mRenderer, mUsage, static_cast(size)); d3d11::Buffer newBuffer; ANGLE_TRY( mRenderer->allocateResource(SafeGetImplAs(context), bufferDesc, &newBuffer)); - newBuffer.setDebugName("Buffer11::NativeStorage"); + newBuffer.setInternalName("Buffer11::NativeStorage"); if (mBuffer.valid() && preserveData) { // We don't call resize if the buffer is big enough already. ASSERT(mBufferSize <= size); @@ -1476,11 +1481,11 @@ bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; d3d11::Buffer newBuffer; ANGLE_TRY( mRenderer->allocateResource(SafeGetImplAs(context), bufferDesc, &newBuffer)); - newBuffer.setDebugName("Buffer11::StructuredBufferStorage"); + newBuffer.setInternalName("Buffer11::StructuredBufferStorage"); // No longer need the old buffer mBuffer = std::move(newBuffer); mBufferSize = static_cast(bufferDesc.ByteWidth); @@ -1630,11 +1635,11 @@ D3D11_SUBRESOURCE_DATA subResourceData = {expandedData.data(), 0, 0}; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), bufferDesc, &subResourceData, &mBuffer)); - mBuffer.setDebugName("Buffer11::EmulatedIndexedStorage"); + mBuffer.setInternalName("Buffer11::EmulatedIndexedStorage"); } *bufferOut = &mBuffer; return angle::Result::Continue; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp @@ -260,15 +260,15 @@ rsDesc.AntialiasedLineEnable = FALSE; Context11 *context11 = GetImplAs(context); ANGLE_TRY(mRenderer->allocateResource(context11, rsDesc, &mScissorDisabledRasterizerState)); - mScissorDisabledRasterizerState.setDebugName("Clear11 Rasterizer State with scissor disabled"); + mScissorDisabledRasterizerState.setInternalName("Clear11RasterizerStateWithScissorDisabled"); rsDesc.ScissorEnable = TRUE; ANGLE_TRY(mRenderer->allocateResource(context11, rsDesc, &mScissorEnabledRasterizerState)); - mScissorEnabledRasterizerState.setDebugName("Clear11 Rasterizer State with scissor enabled"); + mScissorEnabledRasterizerState.setInternalName("Clear11RasterizerStateWithScissorEnabled"); // Initialize Depthstencil state with defaults mDepthStencilStateKey.depthTest = false; mDepthStencilStateKey.depthMask = false; mDepthStencilStateKey.depthFunc = GL_ALWAYS; @@ -320,11 +320,11 @@ initialData.SysMemPitch = g_ConstantBufferSize; initialData.SysMemSlicePitch = g_ConstantBufferSize; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), bufferDesc, &initialData, &mConstantBuffer)); - mConstantBuffer.setDebugName("Clear11 Constant Buffer"); + mConstantBuffer.setInternalName("Clear11ConstantBuffer"); return angle::Result::Continue; } angle::Result Clear11::ensureVertexBufferCreated(const gl::Context *context) { @@ -358,11 +358,11 @@ initialData.SysMemPitch = vbSize; initialData.SysMemSlicePitch = initialData.SysMemPitch; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), bufferDesc, &initialData, &mVertexBuffer)); - mVertexBuffer.setDebugName("Clear11 Vertex Buffer"); + mVertexBuffer.setInternalName("Clear11VertexBuffer"); return angle::Result::Continue; } angle::Result Clear11::clearFramebuffer(const gl::Context *context, const ClearParameters &clearParams, @@ -499,49 +499,14 @@ } const auto &framebufferRTV = renderTarget->getRenderTargetView(); ASSERT(framebufferRTV.valid()); - bool canClearView = mRenderer->getRenderer11DeviceCaps().supportsClearView; - if (canClearView && - mRenderer->getFeatures().emulateClearViewAfterDualSourceBlending.enabled) - { - // Check the current state to see if we were using dual source blending - const auto isDualSource = [](const auto blend) { - switch (blend) - { - case D3D11_BLEND_SRC1_COLOR: - case D3D11_BLEND_INV_SRC1_COLOR: - case D3D11_BLEND_SRC1_ALPHA: - case D3D11_BLEND_INV_SRC1_ALPHA: - return true; - default: - return false; - } - }; - FLOAT blendFactor[4]; - UINT sampleMask; - ID3D11BlendState *blendState; - deviceContext->OMGetBlendState(&blendState, blendFactor, &sampleMask); - if (blendState) - { - D3D11_BLEND_DESC blendDesc; - blendState->GetDesc(&blendDesc); - // You can only use dual source blending on slot 0 so only check there - if (isDualSource(blendDesc.RenderTarget[0].SrcBlend) || - isDualSource(blendDesc.RenderTarget[0].DestBlend) || - isDualSource(blendDesc.RenderTarget[0].SrcBlendAlpha) || - isDualSource(blendDesc.RenderTarget[0].DestBlendAlpha)) - { - canClearView = false; - } - } - } - - if ((!canClearView && needScissoredClear) || clearParams.colorType != GL_FLOAT || - (formatInfo.redBits > 0 && !r) || (formatInfo.greenBits > 0 && !g) || - (formatInfo.blueBits > 0 && !b) || (formatInfo.alphaBits > 0 && !a)) + if ((!(mRenderer->getRenderer11DeviceCaps().supportsClearView) && needScissoredClear) || + clearParams.colorType != GL_FLOAT || (formatInfo.redBits > 0 && !r) || + (formatInfo.greenBits > 0 && !g) || (formatInfo.blueBits > 0 && !b) || + (formatInfo.alphaBits > 0 && !a)) { rtvs[numRtvs] = framebufferRTV.get(); rtvMasks[numRtvs] = gl_d3d11::GetColorMask(formatInfo) & colorMask; numRtvs++; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.h @@ -204,11 +204,12 @@ angle::Result popDebugGroup(const gl::Context *context) override; // State sync with dirty bits. angle::Result syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits, - const gl::State::DirtyBits &bitMask) override; + const gl::State::DirtyBits &bitMask, + gl::Command command) override; // Disjoint timer queries GLint getGPUDisjoint() override; GLint64 getTimestamp() override; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.cpp @@ -765,13 +765,14 @@ return popGroupMarker(); } angle::Result Context11::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits, - const gl::State::DirtyBits &bitMask) + const gl::State::DirtyBits &bitMask, + gl::Command command) { - mRenderer->getStateManager()->syncState(context, dirtyBits); + mRenderer->getStateManager()->syncState(context, dirtyBits, command); return angle::Result::Continue; } GLint Context11::getGPUDisjoint() { @@ -783,10 +784,16 @@ return mRenderer->getTimestamp(); } angle::Result Context11::onMakeCurrent(const gl::Context *context) { + // Immediately return if the device has been lost. + if (!mRenderer->getDevice()) + { + return angle::Result::Continue; + } + return mRenderer->getStateManager()->onMakeCurrent(context); } gl::Caps Context11::getNativeCaps() const { @@ -989,18 +996,22 @@ const char *function, unsigned int line) { ASSERT(FAILED(hr)); + GLenum glErrorCode = DefaultGLErrorCode(hr); + + std::stringstream errorStream; + errorStream << "Internal D3D11 error: " << gl::FmtHR(hr); + if (d3d11::isDeviceLostError(hr)) { + HRESULT removalReason = mRenderer->getDevice()->GetDeviceRemovedReason(); + errorStream << " (removal reason: " << gl::FmtHR(removalReason) << ")"; mRenderer->notifyDeviceLost(); } - GLenum glErrorCode = DefaultGLErrorCode(hr); - - std::stringstream errorStream; - errorStream << "Internal D3D11 error: " << gl::FmtHR(hr) << ": " << message; + errorStream << ": " << message; mErrors->handleError(glErrorCode, errorStream.str().c_str(), file, function, line); } } // namespace rx diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h @@ -28,10 +28,11 @@ egl::Error initialize(const egl::Display *display) override; gl::Format getFormat() const override; bool isRenderable(const gl::Context *context) const override; bool isTexturable(const gl::Context *context) const override; bool isYUV() const override; + bool hasProtectedContent() const override; gl::Extents getSize() const override; size_t getSamples() const override; // FramebufferAttachmentObjectImpl interface angle::Result getAttachmentRenderTarget(const gl::Context *context, @@ -49,19 +50,20 @@ EGLClientBuffer mBuffer; egl::AttributeMap mAttribs; TextureHelper11 mTexture; - gl::Format mFormat = gl::Format::Invalid(); - bool mIsRenderable = false; - bool mIsTexturable = false; - bool mIsTextureArray = false; - bool mYUV = false; - EGLint mWidth = 0; - EGLint mHeight = 0; - GLsizei mSamples = 0; - UINT mArraySlice = 0; + gl::Format mFormat = gl::Format::Invalid(); + bool mIsRenderable = false; + bool mIsTexturable = false; + bool mIsTextureArray = false; + bool mYUV = false; + bool mHasProtectedContent = false; + EGLint mWidth = 0; + EGLint mHeight = 0; + GLsizei mSamples = 0; + UINT mArraySlice = 0; std::unique_ptr mRenderTarget; }; } // namespace rx diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp @@ -79,10 +79,15 @@ bool ExternalImageSiblingImpl11::isYUV() const { return mYUV; } +bool ExternalImageSiblingImpl11::hasProtectedContent() const +{ + return mHasProtectedContent; +} + gl::Extents ExternalImageSiblingImpl11::getSize() const { return gl::Extents(mWidth, mHeight, 1); } @@ -151,11 +156,11 @@ rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMS; } } ANGLE_TRY(mRenderer->allocateResource(context11, rtvDesc, mTexture.get(), &rtv)); - rtv.setDebugName("getAttachmentRenderTarget.RTV"); + rtv.setInternalName("getAttachmentRenderTarget.RTV"); } d3d11::SharedSRV srv; if (mIsTexturable) { @@ -191,11 +196,11 @@ srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DMS; } } ANGLE_TRY(mRenderer->allocateResource(context11, srvDesc, mTexture.get(), &srv)); - srv.setDebugName("getAttachmentRenderTarget.SRV"); + srv.setInternalName("getAttachmentRenderTarget.SRV"); } d3d11::SharedSRV blitSrv = srv.makeCopy(); mRenderTarget = std::make_unique( std::move(rtv), mTexture, std::move(srv), std::move(blitSrv), mFormat.info->internalFormat, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.h @@ -85,11 +85,11 @@ const gl::Offset &destOffset, const gl::Rectangle &sourceArea, const gl::Framebuffer *source) override; angle::Result recoverFromAssociatedStorage(const gl::Context *context); - void verifyAssociatedStorageValid(TextureStorage11 *textureStorage) const; + void verifyAssociatedStorageValid(TextureStorage11 *textureStorageEXT) const; void disassociateStorage(); angle::Result getStagingTexture(const gl::Context *context, const TextureHelper11 **outStagingTexture, unsigned int *outSubresourceIndex); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.cpp @@ -177,13 +177,13 @@ } return angle::Result::Continue; } -void Image11::verifyAssociatedStorageValid(TextureStorage11 *textureStorage) const +void Image11::verifyAssociatedStorageValid(TextureStorage11 *textureStorageEXT) const { - ASSERT(mAssociatedStorage == textureStorage); + ASSERT(mAssociatedStorage == textureStorageEXT); } angle::Result Image11::recoverFromAssociatedStorage(const gl::Context *context) { if (mRecoverFromStorage) @@ -576,11 +576,11 @@ { ANGLE_TRY( mRenderer->allocateTexture(context11, desc, formatInfo, &mStagingTexture)); } - mStagingTexture.setDebugName("Image11::StagingTexture3D"); + mStagingTexture.setInternalName("Image11::StagingTexture3D"); mStagingSubresource = D3D11CalcSubresource(lodOffset, 0, lodOffset + 1); mStagingTextureSubresourceVerifier.setDesc(desc); } break; @@ -615,11 +615,11 @@ { ANGLE_TRY( mRenderer->allocateTexture(context11, desc, formatInfo, &mStagingTexture)); } - mStagingTexture.setDebugName("Image11::StagingTexture2D"); + mStagingTexture.setInternalName("Image11::StagingTexture2D"); mStagingSubresource = D3D11CalcSubresource(lodOffset, 0, lodOffset + 1); mStagingTextureSubresourceVerifier.setDesc(desc); } break; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp @@ -47,15 +47,15 @@ ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), bufferDesc, &mBuffer)); if (dynamic) { - mBuffer.setDebugName("IndexBuffer11 (dynamic)"); + mBuffer.setInternalName("IndexBuffer11(dynamic)"); } else { - mBuffer.setDebugName("IndexBuffer11 (static)"); + mBuffer.setInternalName("IndexBuffer11(static)"); } } mBufferSize = bufferSize; mIndexType = indexType; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp @@ -95,20 +95,20 @@ constantBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; constantBufferDesc.MiscFlags = 0; constantBufferDesc.StructureByteStride = 0; ANGLE_TRY(mRenderer->allocateResource(context11, constantBufferDesc, &mParamsConstantBuffer)); - mParamsConstantBuffer.setDebugName("PixelTransfer11 constant buffer"); + mParamsConstantBuffer.setInternalName("PixelTransfer11ConstantBuffer"); // init shaders ANGLE_TRY(mRenderer->allocateResource(context11, ShaderData(g_VS_BufferToTexture), &mBufferToTextureVS)); - mBufferToTextureVS.setDebugName("BufferToTexture VS"); + mBufferToTextureVS.setInternalName("BufferToTextureVS"); ANGLE_TRY(mRenderer->allocateResource(context11, ShaderData(g_GS_BufferToTexture), &mBufferToTextureGS)); - mBufferToTextureGS.setDebugName("BufferToTexture GS"); + mBufferToTextureGS.setInternalName("BufferToTextureGS"); ANGLE_TRY(buildShaderMap(context)); StructZero(&mParamsData); @@ -243,13 +243,13 @@ ANGLE_TRY(mRenderer->allocateResource(context11, ShaderData(g_PS_BufferToTexture_4I), &bufferToTextureInt)); ANGLE_TRY(mRenderer->allocateResource(context11, ShaderData(g_PS_BufferToTexture_4UI), &bufferToTextureUint)); - bufferToTextureFloat.setDebugName("BufferToTexture RGBA ps"); - bufferToTextureInt.setDebugName("BufferToTexture RGBA-I ps"); - bufferToTextureUint.setDebugName("BufferToTexture RGBA-UI ps"); + bufferToTextureFloat.setInternalName("BufferToTextureRGBA.ps"); + bufferToTextureInt.setInternalName("BufferToTextureRGBA-I.ps"); + bufferToTextureUint.setInternalName("BufferToTextureRGBA-UI.ps"); mBufferToTexturePSMap[GL_FLOAT] = std::move(bufferToTextureFloat); mBufferToTexturePSMap[GL_INT] = std::move(bufferToTextureInt); mBufferToTexturePSMap[GL_UNSIGNED_INT] = std::move(bufferToTextureUint); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.h @@ -232,52 +232,60 @@ const gl::Offset &destOffset, bool unpackFlipY, bool unpackPremultiplyAlpha, bool unpackUnmultiplyAlpha) override; - TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) override; + TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain, + const std::string &label) override; TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, - RenderTargetD3D *renderTargetD3D) override; - TextureStorage *createTextureStorageExternal( - egl::Stream *stream, - const egl::Stream::GLTextureDescription &desc) override; + RenderTargetD3D *renderTargetD3D, + const std::string &label) override; + TextureStorage *createTextureStorageExternal(egl::Stream *stream, + const egl::Stream::GLTextureDescription &desc, + const std::string &label) override; TextureStorage *createTextureStorage2D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly) override; TextureStorage *createTextureStorageCube(GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) override; + bool hintLevelZeroOnly, + const std::string &label) override; TextureStorage *createTextureStorage3D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) override; + int levels, + const std::string &label) override; TextureStorage *createTextureStorage2DArray(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) override; + int levels, + const std::string &label) override; TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) override; + bool fixedSampleLocations, + const std::string &label) override; TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) override; + bool fixedSampleLocations, + const std::string &label) override; VertexBuffer *createVertexBuffer() override; IndexBuffer *createIndexBuffer() override; // Stream Creation diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp @@ -952,11 +952,11 @@ mRenderer11DeviceCaps.featureLevel = mDevice->GetFeatureLevel(); } mResourceManager11.setAllocationsInitialized(mCreateDebugDevice); - d3d11::SetDebugName(mDeviceContext, "DeviceContext"); + d3d11::SetDebugName(mDeviceContext, "DeviceContext", nullptr); mAnnotator.initialize(mDeviceContext); gl::InitializeDebugAnnotations(&mAnnotator); return egl::NoError(); @@ -1307,12 +1307,12 @@ outExtensions->stream = true; outExtensions->streamConsumerGLTexture = true; outExtensions->streamConsumerGLTextureYUV = true; outExtensions->streamProducerD3DTexture = true; - outExtensions->flexibleSurfaceCompatibility = true; - outExtensions->directComposition = !!mDCompModule; + outExtensions->noConfigContext = true; + outExtensions->directComposition = !!mDCompModule; // Contexts are virtualized so textures and semaphores can be shared globally outExtensions->displayTextureShareGroup = true; outExtensions->displaySemaphoreShareGroup = true; @@ -1321,11 +1321,11 @@ // D3D11 can be used without a swap chain outExtensions->surfacelessContext = true; // All D3D feature levels support robust resource init - outExtensions->robustResourceInitialization = true; + outExtensions->robustResourceInitializationANGLE = true; #ifdef ANGLE_ENABLE_D3D11_COMPOSITOR_NATIVE_WINDOW // Compositor Native Window capabilies require WinVer >= 1803 if (CompositorNativeWindow11::IsSupportedWinRelease()) { @@ -1530,10 +1530,14 @@ case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: case DXGI_FORMAT_B8G8R8A8_TYPELESS: case DXGI_FORMAT_R16G16B16A16_FLOAT: case DXGI_FORMAT_R32G32B32A32_FLOAT: case DXGI_FORMAT_R10G10B10A2_UNORM: + case DXGI_FORMAT_R8_UNORM: + case DXGI_FORMAT_R8G8_UNORM: + case DXGI_FORMAT_R16_UNORM: + case DXGI_FORMAT_R16G16_UNORM: break; default: return egl::EglBadParameter() << "Invalid client buffer texture format: " << desc.Format; @@ -1551,10 +1555,15 @@ switch (internalFormat) { case GL_RGBA: case GL_BGRA_EXT: case GL_RGB: + case GL_RED_EXT: + case GL_RG_EXT: + case GL_RGB10_A2_EXT: + case GL_R16_EXT: + case GL_RG16_EXT: break; default: return egl::EglBadParameter() << "Invalid client buffer texture internal format: " << std::hex << internalFormat; @@ -2131,20 +2140,18 @@ } // set notify to true to broadcast a message to all contexts of the device loss bool Renderer11::testDeviceLost() { - bool isLost = false; - if (!mDevice) { return true; } // GetRemovedReason is used to test if the device is removed HRESULT result = mDevice->GetDeviceRemovedReason(); - isLost = d3d11::isDeviceLostError(result); + bool isLost = FAILED(result); if (isLost) { ERR() << "The D3D11 device was removed, " << gl::FmtHR(result); } @@ -2337,11 +2344,11 @@ return mSupportsShareHandles.value(); } // We only currently support share handles with BGRA surfaces, because // chrome needs BGRA. Once chrome fixes this, we should always support them. - if (!getNativeExtensions().textureFormatBGRA8888) + if (!getNativeExtensions().textureFormatBGRA8888EXT) { mSupportsShareHandles = false; return false; } @@ -2867,11 +2874,11 @@ // The format must be either an RTV or a DSV ASSERT(bindRTV != bindDSV); TextureHelper11 texture; ANGLE_TRY(allocateTexture(context11, desc, formatInfo, &texture)); - texture.setDebugName("createRenderTarget.Texture"); + texture.setInternalName("createRenderTarget.Texture"); d3d11::SharedSRV srv; d3d11::SharedSRV blitSRV; if (bindSRV) { @@ -2881,11 +2888,11 @@ : D3D11_SRV_DIMENSION_TEXTURE2DMS; srvDesc.Texture2D.MostDetailedMip = 0; srvDesc.Texture2D.MipLevels = 1; ANGLE_TRY(allocateResource(context11, srvDesc, texture.get(), &srv)); - srv.setDebugName("createRenderTarget.SRV"); + srv.setInternalName("createRenderTarget.SRV"); if (formatInfo.blitSRVFormat != formatInfo.srvFormat) { D3D11_SHADER_RESOURCE_VIEW_DESC blitSRVDesc; blitSRVDesc.Format = formatInfo.blitSRVFormat; @@ -2894,11 +2901,11 @@ : D3D11_SRV_DIMENSION_TEXTURE2DMS; blitSRVDesc.Texture2D.MostDetailedMip = 0; blitSRVDesc.Texture2D.MipLevels = 1; ANGLE_TRY(allocateResource(context11, blitSRVDesc, texture.get(), &blitSRV)); - blitSRV.setDebugName("createRenderTarget.BlitSRV"); + blitSRV.setInternalName("createRenderTarget.BlitSRV"); } else { blitSRV = srv.makeCopy(); } @@ -2913,11 +2920,11 @@ dsvDesc.Texture2D.MipSlice = 0; dsvDesc.Flags = 0; d3d11::DepthStencilView dsv; ANGLE_TRY(allocateResource(context11, dsvDesc, texture.get(), &dsv)); - dsv.setDebugName("createRenderTarget.DSV"); + dsv.setInternalName("createRenderTarget.DSV"); *outRT = new TextureRenderTarget11(std::move(dsv), texture, srv, format, formatInfo, width, height, 1, supportedSamples); } else if (bindRTV) @@ -2928,11 +2935,11 @@ : D3D11_RTV_DIMENSION_TEXTURE2DMS; rtvDesc.Texture2D.MipSlice = 0; d3d11::RenderTargetView rtv; ANGLE_TRY(allocateResource(context11, rtvDesc, texture.get(), &rtv)); - rtv.setDebugName("createRenderTarget.RTV"); + rtv.setInternalName("createRenderTarget.RTV"); if (formatInfo.dataInitializerFunction != nullptr) { const float clearValues[4] = {0.0f, 0.0f, 0.0f, 1.0f}; mDeviceContext->ClearRenderTargetView(rtv.get(), clearValues); @@ -3293,93 +3300,103 @@ Image11 *src11 = GetAs(source); return Image11::CopyImage(context, dest11, src11, sourceBox, destOffset, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha, mRenderer11DeviceCaps); } -TextureStorage *Renderer11::createTextureStorage2D(SwapChainD3D *swapChain) +TextureStorage *Renderer11::createTextureStorage2D(SwapChainD3D *swapChain, + const std::string &label) { SwapChain11 *swapChain11 = GetAs(swapChain); - return new TextureStorage11_2D(this, swapChain11); + return new TextureStorage11_2D(this, swapChain11, label); } TextureStorage *Renderer11::createTextureStorageEGLImage(EGLImageD3D *eglImage, - RenderTargetD3D *renderTargetD3D) + RenderTargetD3D *renderTargetD3D, + const std::string &label) { - return new TextureStorage11_EGLImage(this, eglImage, GetAs(renderTargetD3D)); + return new TextureStorage11_EGLImage(this, eglImage, GetAs(renderTargetD3D), + label); } TextureStorage *Renderer11::createTextureStorageExternal( egl::Stream *stream, - const egl::Stream::GLTextureDescription &desc) + const egl::Stream::GLTextureDescription &desc, + const std::string &label) { - return new TextureStorage11_External(this, stream, desc); + return new TextureStorage11_External(this, stream, desc, label); } TextureStorage *Renderer11::createTextureStorage2D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly) { - return new TextureStorage11_2D(this, internalformat, renderTarget, width, height, levels, + return new TextureStorage11_2D(this, internalformat, renderTarget, width, height, levels, label, hintLevelZeroOnly); } TextureStorage *Renderer11::createTextureStorageCube(GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) + bool hintLevelZeroOnly, + const std::string &label) { return new TextureStorage11_Cube(this, internalformat, renderTarget, size, levels, - hintLevelZeroOnly); + hintLevelZeroOnly, label); } TextureStorage *Renderer11::createTextureStorage3D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) { - return new TextureStorage11_3D(this, internalformat, renderTarget, width, height, depth, - levels); + return new TextureStorage11_3D(this, internalformat, renderTarget, width, height, depth, levels, + label); } TextureStorage *Renderer11::createTextureStorage2DArray(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) { return new TextureStorage11_2DArray(this, internalformat, renderTarget, width, height, depth, - levels); + levels, label); } TextureStorage *Renderer11::createTextureStorage2DMultisample(GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) { return new TextureStorage11_2DMultisample(this, internalformat, width, height, levels, samples, - fixedSampleLocations); + fixedSampleLocations, label); } TextureStorage *Renderer11::createTextureStorage2DMultisampleArray(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) { return new TextureStorage11_2DMultisampleArray(this, internalformat, width, height, depth, - levels, samples, fixedSampleLocations); + levels, samples, fixedSampleLocations, label); } angle::Result Renderer11::readFromAttachment(const gl::Context *context, const gl::FramebufferAttachment &srcAttachment, const gl::Rectangle &sourceArea, @@ -3434,11 +3451,11 @@ gl::Extents safeSize(safeArea.width, safeArea.height, 1); TextureHelper11 stagingHelper; ANGLE_TRY(createStagingTexture(context, textureHelper.getTextureType(), textureHelper.getFormatSet(), safeSize, StagingAccess::READ, &stagingHelper)); - stagingHelper.setDebugName("readFromAttachment::stagingHelper"); + stagingHelper.setInternalName("readFromAttachment::stagingHelper"); TextureHelper11 resolvedTextureHelper; // "srcTexture" usually points to the source texture. // For 2D multisampled textures, it points to the multisampled resolve texture. @@ -3459,11 +3476,11 @@ resolveDesc.CPUAccessFlags = 0; resolveDesc.MiscFlags = 0; ANGLE_TRY(allocateTexture(GetImplAs(context), resolveDesc, textureHelper.getFormatSet(), &resolvedTextureHelper)); - resolvedTextureHelper.setDebugName("readFromAttachment::resolvedTextureHelper"); + resolvedTextureHelper.setInternalName("readFromAttachment::resolvedTextureHelper"); mDeviceContext->ResolveSubresource(resolvedTextureHelper.get(), 0, textureHelper.get(), sourceSubResource, textureHelper.getFormat()); sourceSubResource = 0; @@ -3540,10 +3557,50 @@ unsigned int drawSubresource = drawRenderTarget11->getSubresourceIndex(); RenderTarget11 *readRenderTarget11 = GetAs(readRenderTarget); ASSERT(readRenderTarget11); + TextureHelper11 readTexture; + unsigned int readSubresource = 0; + d3d11::SharedSRV readSRV; + + if (readRenderTarget->isMultisampled()) + { + ANGLE_TRY(resolveMultisampledTexture(context, readRenderTarget11, depthBlit, stencilBlit, + &readTexture)); + + if (!stencilBlit) + { + const auto &readFormatSet = readTexture.getFormatSet(); + + D3D11_SHADER_RESOURCE_VIEW_DESC viewDesc; + viewDesc.Format = readFormatSet.srvFormat; + viewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + viewDesc.Texture2D.MipLevels = 1; + viewDesc.Texture2D.MostDetailedMip = 0; + + ANGLE_TRY(allocateResource(GetImplAs(context), viewDesc, readTexture.get(), + &readSRV)); + } + } + else + { + ASSERT(readRenderTarget11); + readTexture = readRenderTarget11->getTexture(); + readSubresource = readRenderTarget11->getSubresourceIndex(); + readSRV = readRenderTarget11->getBlitShaderResourceView(context).makeCopy(); + if (!readSRV.valid()) + { + ASSERT(depthBlit || stencilBlit); + readSRV = readRenderTarget11->getShaderResourceView(context).makeCopy(); + } + ASSERT(readSRV.valid()); + } + + // Stencil blits don't use shaders. + ASSERT(readSRV.valid() || stencilBlit); + const gl::Extents readSize(readRenderTarget->getWidth(), readRenderTarget->getHeight(), 1); const gl::Extents drawSize(drawRenderTarget->getWidth(), drawRenderTarget->getHeight(), 1); // From the spec: // "The actual region taken from the read framebuffer is limited to the intersection of the @@ -3655,59 +3712,15 @@ drawRect.y < 0 || drawRect.y + drawRect.height > drawSize.height; bool partialDSBlit = (nativeFormat.depthBits > 0 && depthBlit) != (nativeFormat.stencilBits > 0 && stencilBlit); - const bool canCopySubresource = - drawRenderTarget->getSamples() == readRenderTarget->getSamples() && + if (drawRenderTarget->getSamples() == readRenderTarget->getSamples() && readRenderTarget11->getFormatSet().formatID == drawRenderTarget11->getFormatSet().formatID && !stretchRequired && !outOfBounds && !reversalRequired && !partialDSBlit && - !colorMaskingNeeded && (!(depthBlit || stencilBlit) || wholeBufferCopy); - - TextureHelper11 readTexture; - unsigned int readSubresource = 0; - d3d11::SharedSRV readSRV; - - if (readRenderTarget->isMultisampled()) - { - ANGLE_TRY(resolveMultisampledTexture(context, readRenderTarget11, depthBlit, stencilBlit, - &readTexture)); - - if (!stencilBlit && !canCopySubresource) - { - const auto &readFormatSet = readTexture.getFormatSet(); - - D3D11_SHADER_RESOURCE_VIEW_DESC viewDesc; - viewDesc.Format = readFormatSet.srvFormat; - viewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - viewDesc.Texture2D.MipLevels = 1; - viewDesc.Texture2D.MostDetailedMip = 0; - - ANGLE_TRY(allocateResource(GetImplAs(context), viewDesc, readTexture.get(), - &readSRV)); - } - } - else - { - ASSERT(readRenderTarget11); - readTexture = readRenderTarget11->getTexture(); - readSubresource = readRenderTarget11->getSubresourceIndex(); - - if (!canCopySubresource) - { - readSRV = readRenderTarget11->getBlitShaderResourceView(context).makeCopy(); - if (!readSRV.valid()) - { - ASSERT(depthBlit || stencilBlit); - readSRV = readRenderTarget11->getShaderResourceView(context).makeCopy(); - } - ASSERT(readSRV.valid()); - } - } - - if (canCopySubresource) + !colorMaskingNeeded && (!(depthBlit || stencilBlit) || wholeBufferCopy)) { UINT dstX = drawRect.x; UINT dstY = drawRect.y; D3D11_BOX readBox; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h @@ -22,16 +22,20 @@ namespace rx { // These two methods are declared here to prevent circular includes. namespace d3d11 { -HRESULT SetDebugName(ID3D11DeviceChild *resource, const char *name); +HRESULT SetDebugName(ID3D11DeviceChild *resource, + const char *internalName, + const std::string *khrDebugName); template -HRESULT SetDebugName(angle::ComPtr &resource, const char *name) +HRESULT SetDebugName(angle::ComPtr &resource, + const char *internalName, + const std::string *khrDebugName) { - return SetDebugName(resource.Get(), name); + return SetDebugName(resource.Get(), internalName, khrDebugName); } } // namespace d3d11 namespace d3d { @@ -189,11 +193,28 @@ { public: T *get() const { return mData->object; } T *const *getPointer() const { return &mData->object; } - void setDebugName(const char *name) { d3d11::SetDebugName(mData->object, name); } + void setInternalName(const char *name) + { + mInternalDebugName = name; + UpdateDebugNameWithD3D(); + } + + void setKHRDebugLabel(const std::string *label) + { + mKhrDebugName = label; + UpdateDebugNameWithD3D(); + } + + void setLabels(const char *name, const std::string *label) + { + mInternalDebugName = name; + mKhrDebugName = label; + UpdateDebugNameWithD3D(); + } void set(T *object) { ASSERT(!valid()); mData->object = object; @@ -229,10 +250,19 @@ std::swap(mData, movedObj.mData); return *this; } Pointer mData; + + private: + void UpdateDebugNameWithD3D() + { + d3d11::SetDebugName(mData->object, mInternalDebugName, mKhrDebugName); + } + + const std::string *mKhrDebugName = nullptr; + const char *mInternalDebugName = nullptr; }; template using UniquePtr = typename std::unique_ptr>; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.h @@ -51,10 +51,11 @@ const gl::Texture &texture, const gl::SamplerState &samplerState); void onImageChange(gl::ShaderType shaderType, unsigned int imageIndex, const gl::ImageUnit &imageUnit); + void onClipControlChange(bool lowerLeft, bool zeroToOne); angle::Result updateBuffer(const gl::Context *context, Renderer11 *renderer, gl::ShaderType shaderType, const ProgramD3D &programD3D, @@ -67,11 +68,14 @@ : depthRange{.0f}, viewAdjust{.0f}, viewCoords{.0f}, viewScale{.0f}, multiviewWriteToViewportIndex{.0f}, - firstVertex{0} + clipControlOrigin{-1.0f}, + clipControlZeroToOne{.0f}, + firstVertex{0}, + padding{.0f, .0f} {} float depthRange[4]; float viewAdjust[4]; float viewCoords[4]; @@ -79,22 +83,33 @@ // multiviewWriteToViewportIndex is used to select either the side-by-side or layered // code-path in the GS. It's value, if set, is either 0.0f or 1.0f. The value is updated // whenever a multi-view draw framebuffer is made active. float multiviewWriteToViewportIndex; + // EXT_clip_control + // Multiplied with Y coordinate: -1.0 for GL_LOWER_LEFT_EXT, 1.0f for GL_UPPER_LEFT_EXT + float clipControlOrigin; + // 0.0 for GL_NEGATIVE_ONE_TO_ONE_EXT, 1.0 for GL_ZERO_TO_ONE_EXT + float clipControlZeroToOne; + uint32_t firstVertex; + + // Added here to manually pad the struct to 16 byte boundary + float padding[2]; }; + static_assert(sizeof(Vertex) % 16u == 0, + "D3D11 constant buffers must be multiples of 16 bytes"); struct Pixel { Pixel() : depthRange{.0f}, viewCoords{.0f}, depthFront{.0f}, viewScale{.0f}, - multiviewWriteToViewportIndex(0), - padding(0) + multiviewWriteToViewportIndex{.0f}, + padding{.0f} {} float depthRange[4]; float viewCoords[4]; float depthFront[4]; @@ -105,10 +120,11 @@ float multiviewWriteToViewportIndex; // Added here to manually pad the struct. float padding; }; + static_assert(sizeof(Pixel) % 16u == 0, "D3D11 constant buffers must be multiples of 16 bytes"); struct Compute { Compute() : numWorkGroups{0u}, padding(0u) {} unsigned int numWorkGroups[3]; @@ -171,11 +187,13 @@ StateManager11(Renderer11 *renderer); ~StateManager11(); void deinitialize(); - void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits); + void syncState(const gl::Context *context, + const gl::State::DirtyBits &dirtyBits, + gl::Command command); angle::Result updateStateForCompute(const gl::Context *context, GLuint numGroupsX, GLuint numGroupsY, GLuint numGroupsZ); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp @@ -587,10 +587,17 @@ mNumActiveShaderImages[shaderType] = 0; } } } +void ShaderConstants11::onClipControlChange(bool lowerLeft, bool zeroToOne) +{ + mVertex.clipControlOrigin = lowerLeft ? -1.0f : 1.0f; + mVertex.clipControlZeroToOne = zeroToOne ? 1.0f : 0.0f; + mShaderConstantsDirty.set(gl::ShaderType::Vertex); +} + angle::Result ShaderConstants11::updateBuffer(const gl::Context *context, Renderer11 *renderer, gl::ShaderType shaderType, const ProgramD3D &programD3D, const d3d11::Buffer &driverConstantBuffer) @@ -846,16 +853,16 @@ } } void StateManager11::checkPresentPath(const gl::Context *context) { - if (!mRenderer->presentPathFastEnabled()) - return; - const auto *framebuffer = context->getState().getDrawFramebuffer(); const auto *firstColorAttachment = framebuffer->getFirstColorAttachment(); - const bool presentPathFastActive = UsePresentPathFast(mRenderer, firstColorAttachment); + const bool clipSpaceOriginUpperLeft = + context->getState().getClipSpaceOrigin() == gl::ClipSpaceOrigin::UpperLeft; + const bool presentPathFastActive = + UsePresentPathFast(mRenderer, firstColorAttachment) || clipSpaceOriginUpperLeft; const int colorBufferHeight = firstColorAttachment ? firstColorAttachment->getSize().height : 0; if ((mCurPresentPathFastEnabled != presentPathFastActive) || (presentPathFastActive && (colorBufferHeight != mCurPresentPathFastColorBufferHeight))) @@ -935,11 +942,13 @@ } return angle::Result::Continue; } -void StateManager11::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) +void StateManager11::syncState(const gl::Context *context, + const gl::State::DirtyBits &dirtyBits, + gl::Command command) { if (!dirtyBits.any()) { return; } @@ -1173,11 +1182,11 @@ invalidateProgramUniformBuffers(); invalidateProgramAtomicCounterBuffers(); invalidateProgramShaderStorageBuffers(); invalidateDriverUniforms(); const gl::ProgramExecutable *executable = state.getProgramExecutable(); - if (!executable || !executable->isCompute()) + if (!executable || command != gl::Command::Dispatch) { mInternalDirtyBits.set(DIRTY_BIT_PRIMITIVE_TOPOLOGY); invalidateVertexBuffer(); invalidateRenderTarget(); // If OVR_multiview2 is enabled, the attribute divisor has to be updated for @@ -1203,10 +1212,26 @@ break; } case gl::State::DIRTY_BIT_PROVOKING_VERTEX: invalidateShaders(); break; + case gl::State::DIRTY_BIT_EXTENDED: + { + gl::State::ExtendedDirtyBits extendedDirtyBits = + state.getAndResetExtendedDirtyBits(); + + for (size_t extendedDirtyBit : extendedDirtyBits) + { + switch (extendedDirtyBit) + { + case gl::State::EXTENDED_DIRTY_BIT_CLIP_CONTROL: + checkPresentPath(context); + break; + } + } + break; + } default: break; } } @@ -1427,10 +1452,14 @@ dxMaxViewportBoundsY = static_cast(mViewportBounds.height); dxMinViewportBoundsX = 0; dxMinViewportBoundsY = 0; } + bool clipSpaceOriginLowerLeft = glState.getClipSpaceOrigin() == gl::ClipSpaceOrigin::LowerLeft; + mShaderConstants.onClipControlChange(clipSpaceOriginLowerLeft, + glState.isClipControlDepthZeroToOne()); + const auto &viewport = glState.getViewport(); int dxViewportTopLeftX = 0; int dxViewportTopLeftY = 0; int dxViewportWidth = 0; @@ -1445,11 +1474,11 @@ dxViewportWidth = gl::clamp(viewport.width, 0, dxMaxViewportBoundsX - dxViewportTopLeftX); dxViewportHeight = gl::clamp(viewport.height, 0, dxMaxViewportBoundsY - dxViewportTopLeftY); D3D11_VIEWPORT dxViewport; dxViewport.TopLeftX = static_cast(dxViewportTopLeftX); - if (mCurPresentPathFastEnabled) + if (mCurPresentPathFastEnabled && clipSpaceOriginLowerLeft) { // When present path fast is active and we're rendering to framebuffer 0, we must invert // the viewport in Y-axis. // NOTE: We delay the inversion until right before the call to RSSetViewports, and leave // dxViewportTopLeftY unchanged. This allows us to calculate viewAdjust below using the @@ -1921,11 +1950,11 @@ mCurrentValueAttribs.resize(caps.maxVertexAttributes); mShaderConstants.init(caps); - mIsMultiviewEnabled = extensions.multiview || extensions.multiview2; + mIsMultiviewEnabled = extensions.multiviewOVR || extensions.multiview2OVR; mIndependentBlendStates = extensions.drawBuffersIndexedAny(); // requires FL10_1 // FL9_3 is limited to 4; ES3.1 context on FL11_0 is limited to 7 mCurBlendStateExt = @@ -1972,16 +2001,17 @@ } RTVArray framebufferRTVs = {{}}; const auto &colorRTs = mFramebuffer11->getCachedColorRenderTargets(); - size_t appliedRTIndex = 0; - bool skipInactiveRTs = mRenderer->getFeatures().mrtPerfWorkaround.enabled; - const auto &drawStates = mFramebuffer11->getState().getDrawBufferStates(); - gl::DrawBufferMask activeProgramOutputs = mProgramD3D->getState().getActiveOutputVariables(); - UINT maxExistingRT = 0; - const auto &colorAttachments = mFramebuffer11->getState().getColorAttachments(); + size_t appliedRTIndex = 0; + bool skipInactiveRTs = mRenderer->getFeatures().mrtPerfWorkaround.enabled; + const auto &drawStates = mFramebuffer11->getState().getDrawBufferStates(); + gl::DrawBufferMask activeProgramOutputs = + mProgramD3D->getState().getExecutable().getActiveOutputVariablesMask(); + UINT maxExistingRT = 0; + const auto &colorAttachments = mFramebuffer11->getState().getColorAttachments(); for (size_t rtIndex = 0; rtIndex < colorRTs.size(); ++rtIndex) { const RenderTarget11 *renderTarget = colorRTs[rtIndex]; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp @@ -117,13 +117,13 @@ { // We must remove the const qualifier because "GetDevice" and "GetDesc" are non-const in D3D11. ID3D11Texture2D *textureD3D = static_cast(const_cast(pointer)); // Check that the texture originated from our device - ID3D11Device *device; + angle::ComPtr device; textureD3D->GetDevice(&device); - if (device != mRenderer->getDevice()) + if (device.Get() != mRenderer->getDevice()) { return egl::EglBadParameter() << "Texture not created on ANGLE D3D device"; } const auto planeId = static_cast(attributes.get(EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG, 0)); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp @@ -270,11 +270,11 @@ ERR() << "Could not create offscreen texture, " << displayD3D->getStoredErrorString(); release(); return EGL_BAD_ALLOC; } - mOffscreenTexture.setDebugName("OffscreenBackBufferTexture"); + mOffscreenTexture.setInternalName("OffscreenBackBufferTexture"); // EGL_ANGLE_surface_d3d_texture_2d_share_handle requires that we store a share handle for // the client if (useSharedResource) { @@ -317,11 +317,11 @@ ERR() << "Could not create offscreen back buffer render target, " << displayD3D->getStoredErrorString(); release(); return EGL_BAD_ALLOC; } - mOffscreenRTView.setDebugName("OffscreenBackBufferRenderTarget"); + mOffscreenRTView.setInternalName("OffscreenBackBufferRenderTarget"); D3D11_SHADER_RESOURCE_VIEW_DESC offscreenSRVDesc; offscreenSRVDesc.Format = backbufferFormatInfo.srvFormat; offscreenSRVDesc.ViewDimension = (mEGLSamples <= 1) ? D3D11_SRV_DIMENSION_TEXTURE2D : D3D11_SRV_DIMENSION_TEXTURE2DMS; @@ -337,11 +337,11 @@ ERR() << "Could not create offscreen back buffer shader resource, " << displayD3D->getStoredErrorString(); release(); return EGL_BAD_ALLOC; } - mOffscreenSRView.setDebugName("OffscreenBackBufferShaderResource"); + mOffscreenSRView.setInternalName("OffscreenBackBufferShaderResource"); } else { // Special case for external textures that cannot support sampling. Since internally we // assume our SwapChain is always readable, we make a copy texture that is compatible. @@ -426,11 +426,11 @@ ERR() << "Could not create depthstencil surface for new swap chain, " << displayD3D->getStoredErrorString(); release(); return EGL_BAD_ALLOC; } - mDepthStencilTexture.setDebugName("OffscreenDepthStencilTexture"); + mDepthStencilTexture.setInternalName("OffscreenDepthStencilTexture"); D3D11_DEPTH_STENCIL_VIEW_DESC depthStencilDesc; depthStencilDesc.Format = depthBufferFormatInfo.dsvFormat; depthStencilDesc.ViewDimension = (mEGLSamples <= 1) ? D3D11_DSV_DIMENSION_TEXTURE2D : D3D11_DSV_DIMENSION_TEXTURE2DMS; @@ -438,11 +438,11 @@ depthStencilDesc.Texture2D.MipSlice = 0; result = mRenderer->allocateResource(displayD3D, depthStencilDesc, mDepthStencilTexture.get(), &mDepthStencilDSView); ASSERT(result != angle::Result::Stop); - mDepthStencilDSView.setDebugName("OffscreenDSV"); + mDepthStencilDSView.setInternalName("OffscreenDSV"); if (depthStencilSRV) { D3D11_SHADER_RESOURCE_VIEW_DESC depthStencilSRVDesc; depthStencilSRVDesc.Format = depthBufferFormatInfo.srvFormat; @@ -453,11 +453,11 @@ depthStencilSRVDesc.Texture2D.MipLevels = static_cast(-1); result = mRenderer->allocateResource(displayD3D, depthStencilSRVDesc, mDepthStencilTexture.get(), &mDepthStencilSRView); ASSERT(result != angle::Result::Stop); - mDepthStencilSRView.setDebugName("OffscreenDepthStencilSRV"); + mDepthStencilSRView.setInternalName("OffscreenDepthStencilSRV"); } } return EGL_SUCCESS; } @@ -510,10 +510,13 @@ ERR() << "Error resizing swap chain buffers, " << gl::FmtHR(hr); release(); if (d3d11::isDeviceLostError(hr)) { + HRESULT reason = device->GetDeviceRemovedReason(); + ERR() << "Device lost in SwapChain11::resize " << gl::FmtHR(hr) + << ", reason: " << gl::FmtHR(reason); return EGL_CONTEXT_LOST; } else { return EGL_BAD_ALLOC; @@ -527,21 +530,21 @@ if (SUCCEEDED(hr)) { const auto &format = d3d11::Format::Get(mOffscreenRenderTargetFormat, mRenderer->getRenderer11DeviceCaps()); mBackBufferTexture.set(backbufferTexture, format); - mBackBufferTexture.setDebugName("BackBufferTexture"); + mBackBufferTexture.setInternalName("BackBufferTexture"); angle::Result result = mRenderer->allocateResourceNoDesc( displayD3D, mBackBufferTexture.get(), &mBackBufferRTView); ASSERT(result != angle::Result::Stop); - mBackBufferRTView.setDebugName("BackBufferRTV"); + mBackBufferRTView.setInternalName("BackBufferRTV"); result = mRenderer->allocateResourceNoDesc(displayD3D, mBackBufferTexture.get(), &mBackBufferSRView); ASSERT(result != angle::Result::Stop); - mBackBufferSRView.setDebugName("BackBufferSRV"); + mBackBufferSRView.setInternalName("BackBufferSRV"); } mFirstSwap = true; return resetOffscreenBuffers(displayD3D, backbufferWidth, backbufferHeight); @@ -628,10 +631,13 @@ << gl::FmtHR(hr); release(); if (d3d11::isDeviceLostError(hr)) { + HRESULT reason = device->GetDeviceRemovedReason(); + ERR() << "Device lost in SwapChain11::reset " << gl::FmtHR(hr) + << ", reason: " << gl::FmtHR(reason); return EGL_CONTEXT_LOST; } else { return EGL_BAD_ALLOC; @@ -648,21 +654,21 @@ reinterpret_cast(&backbufferTex)); ASSERT(SUCCEEDED(hr)); const auto &format = d3d11::Format::Get(mOffscreenRenderTargetFormat, mRenderer->getRenderer11DeviceCaps()); mBackBufferTexture.set(backbufferTex, format); - mBackBufferTexture.setDebugName("BackBufferTexture"); + mBackBufferTexture.setInternalName("BackBufferTexture"); angle::Result result = mRenderer->allocateResourceNoDesc( displayD3D, mBackBufferTexture.get(), &mBackBufferRTView); ASSERT(result != angle::Result::Stop); - mBackBufferRTView.setDebugName("BackBufferRTV"); + mBackBufferRTView.setInternalName("BackBufferRTV"); result = mRenderer->allocateResourceNoDesc(displayD3D, mBackBufferTexture.get(), &mBackBufferSRView); ASSERT(result != angle::Result::Stop); - mBackBufferSRView.setDebugName("BackBufferSRV"); + mBackBufferSRView.setInternalName("BackBufferSRV"); } mFirstSwap = true; return resetOffscreenBuffers(displayD3D, backbufferWidth, backbufferHeight); @@ -691,11 +697,11 @@ vbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; vbDesc.MiscFlags = 0; vbDesc.StructureByteStride = 0; ANGLE_TRY(mRenderer->allocateResource(displayD3D, vbDesc, &mQuadVB)); - mQuadVB.setDebugName("SwapChainQuadVB"); + mQuadVB.setInternalName("SwapChainQuadVB"); D3D11_SAMPLER_DESC samplerDesc; samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT; samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; @@ -709,11 +715,11 @@ samplerDesc.BorderColor[3] = 0.0f; samplerDesc.MinLOD = 0; samplerDesc.MaxLOD = D3D11_FLOAT32_MAX; ANGLE_TRY(mRenderer->allocateResource(displayD3D, samplerDesc, &mPassThroughSampler)); - mPassThroughSampler.setDebugName("SwapChainPassThroughSampler"); + mPassThroughSampler.setInternalName("SwapChainPassThroughSampler"); D3D11_INPUT_ELEMENT_DESC quadLayout[] = { {"POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0}, }; @@ -721,14 +727,14 @@ InputElementArray quadElements(quadLayout); ShaderData vertexShaderData(g_VS_Passthrough2D); ANGLE_TRY( mRenderer->allocateResource(displayD3D, quadElements, &vertexShaderData, &mPassThroughIL)); - mPassThroughIL.setDebugName("SwapChainPassThroughIL"); + mPassThroughIL.setInternalName("SwapChainPassThroughIL"); ANGLE_TRY(mRenderer->allocateResource(displayD3D, vertexShaderData, &mPassThroughVS)); - mPassThroughVS.setDebugName("SwapChainPassThroughVS"); + mPassThroughVS.setInternalName("SwapChainPassThroughVS"); if (mEGLSamples <= 1) { ShaderData pixelShaderData(g_PS_PassthroughRGBA2D); ANGLE_TRY( @@ -748,11 +754,11 @@ ANGLE_TRY( mRenderer->allocateResource(displayD3D, pixelShaderData, &mPassThroughOrResolvePS)); } } - mPassThroughOrResolvePS.setDebugName("SwapChainPassThroughPS"); + mPassThroughOrResolvePS.setInternalName("SwapChainPassThroughPS"); // Use the default rasterizer state but without culling D3D11_RASTERIZER_DESC rasterizerDesc; rasterizerDesc.FillMode = D3D11_FILL_SOLID; rasterizerDesc.CullMode = D3D11_CULL_NONE; @@ -764,11 +770,11 @@ rasterizerDesc.ScissorEnable = FALSE; rasterizerDesc.MultisampleEnable = FALSE; rasterizerDesc.AntialiasedLineEnable = FALSE; ANGLE_TRY(mRenderer->allocateResource(displayD3D, rasterizerDesc, &mPassThroughRS)); - mPassThroughRS.setDebugName("Swap chain pass through rasterizer state"); + mPassThroughRS.setInternalName("SwapChainPassThroughRasterizerState"); mPassThroughResourcesInit = true; return angle::Result::Continue; } @@ -987,11 +993,11 @@ offscreenCopyDesc.MiscFlags = 0; offscreenCopyDesc.CPUAccessFlags = 0; angle::Result result = mRenderer->allocateTexture( context, offscreenCopyDesc, backbufferFormatInfo, &mOffscreenTextureCopyForSRV); ASSERT(result != angle::Result::Stop); - mOffscreenTextureCopyForSRV.setDebugName("OffscreenBackBufferCopyForSRV"); + mOffscreenTextureCopyForSRV.setInternalName("OffscreenBackBufferCopyForSRV"); D3D11_SHADER_RESOURCE_VIEW_DESC offscreenSRVDesc; offscreenSRVDesc.Format = backbufferFormatInfo.srvFormat; offscreenSRVDesc.ViewDimension = (mEGLSamples <= 1) ? D3D11_SRV_DIMENSION_TEXTURE2D : D3D11_SRV_DIMENSION_TEXTURE2DMS; @@ -999,11 +1005,11 @@ offscreenSRVDesc.Texture2D.MipLevels = static_cast(-1); result = mRenderer->allocateResource(context, offscreenSRVDesc, mOffscreenTextureCopyForSRV.get(), &mOffscreenSRView); ASSERT(result != angle::Result::Stop); - mOffscreenSRView.setDebugName("OffscreenBackBufferSRV"); + mOffscreenSRView.setInternalName("OffscreenBackBufferSRV"); } // Need to copy the offscreen texture into the shader-readable copy, since it's external and // we don't know if the copy is up-to-date. This works around the problem we have when the app // passes in a texture that isn't shader-readable. diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h @@ -141,11 +141,15 @@ Image11 *incomingImage) = 0; GLsizei getRenderToTextureSamples() const override; protected: - TextureStorage11(Renderer11 *renderer, UINT bindFlags, UINT miscFlags, GLenum internalFormat); + TextureStorage11(Renderer11 *renderer, + UINT bindFlags, + UINT miscFlags, + GLenum internalFormat, + const std::string &label); int getLevelWidth(int mipLevel) const; int getLevelHeight(int mipLevel) const; int getLevelDepth(int mipLevel) const; // Some classes (e.g. TextureStorage11_2D) will override getMippedResource. @@ -275,17 +279,18 @@ }; class TextureStorage11_2D : public TextureStorage11 { public: - TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swapchain); + TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swapchain, const std::string &label); TextureStorage11_2D(Renderer11 *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly = false); ~TextureStorage11_2D() override; angle::Result onDestroy(const gl::Context *context) override; @@ -311,10 +316,11 @@ const gl::ImageIndex &index, Image11 *incomingImage) override; angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context, bool useLevelZeroTexture) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -375,11 +381,12 @@ class TextureStorage11_External : public TextureStorage11 { public: TextureStorage11_External(Renderer11 *renderer, egl::Stream *stream, - const egl::Stream::GLTextureDescription &glDesc); + const egl::Stream::GLTextureDescription &glDesc, + const std::string &label); ~TextureStorage11_External() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getResource(const gl::Context *context, @@ -401,10 +408,11 @@ void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override; void verifyAssociatedImageValid(const gl::ImageIndex &index, Image11 *expectedImage) override; angle::Result releaseAssociatedImage(const gl::Context *context, const gl::ImageIndex &index, Image11 *incomingImage) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -442,11 +450,12 @@ { public: TextureStorage11ImmutableBase(Renderer11 *renderer, UINT bindFlags, UINT miscFlags, - GLenum internalFormat); + GLenum internalFormat, + const std::string &label); void associateImage(Image11 *image, const gl::ImageIndex &index) override; void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override; void verifyAssociatedImageValid(const gl::ImageIndex &index, Image11 *expectedImage) override; angle::Result releaseAssociatedImage(const gl::Context *context, @@ -468,11 +477,12 @@ class TextureStorage11_EGLImage final : public TextureStorage11ImmutableBase { public: TextureStorage11_EGLImage(Renderer11 *renderer, EGLImageD3D *eglImage, - RenderTarget11 *renderTarget11); + RenderTarget11 *renderTarget11, + const std::string &label); ~TextureStorage11_EGLImage() override; angle::Result getSubresourceIndex(const gl::Context *context, const gl::ImageIndex &index, UINT *outSubresourceIndex) const override; @@ -495,10 +505,11 @@ angle::Result copyToStorage(const gl::Context *context, TextureStorage *destStorage) override; angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context, bool useLevelZeroTexture) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -533,11 +544,12 @@ TextureStorage11_Cube(Renderer11 *renderer, GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly); + bool hintLevelZeroOnly, + const std::string &label); ~TextureStorage11_Cube() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getSubresourceIndex(const gl::Context *context, @@ -566,10 +578,11 @@ const gl::ImageIndex &index, Image11 *incomingImage) override; angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context, bool useLevelZeroTexture) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -628,11 +641,12 @@ GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels); + int levels, + const std::string &label); ~TextureStorage11_3D() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getResource(const gl::Context *context, @@ -652,10 +666,11 @@ void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override; void verifyAssociatedImageValid(const gl::ImageIndex &index, Image11 *expectedImage) override; angle::Result releaseAssociatedImage(const gl::Context *context, const gl::ImageIndex &index, Image11 *incomingImage) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -699,11 +714,12 @@ GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels); + int levels, + const std::string &label); ~TextureStorage11_2DArray() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getResource(const gl::Context *context, @@ -721,10 +737,11 @@ void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override; void verifyAssociatedImageValid(const gl::ImageIndex &index, Image11 *expectedImage) override; angle::Result releaseAssociatedImage(const gl::Context *context, const gl::ImageIndex &index, Image11 *incomingImage) override; + void onLabelUpdate() override; struct LevelLayerRangeKey { LevelLayerRangeKey(int mipLevelIn, int layerIn, int numLayersIn) : mipLevel(mipLevelIn), layer(layerIn), numLayers(numLayersIn) @@ -797,11 +814,12 @@ GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations); + bool fixedSampleLocations, + const std::string &label); ~TextureStorage11_2DMultisample() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getResource(const gl::Context *context, @@ -814,10 +832,11 @@ const gl::ImageIndex &index, GLsizei samples, RenderTargetD3D **outRT) override; angle::Result copyToStorage(const gl::Context *context, TextureStorage *destStorage) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, @@ -852,11 +871,12 @@ GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations); + bool fixedSampleLocations, + const std::string &label); ~TextureStorage11_2DMultisampleArray() override; angle::Result onDestroy(const gl::Context *context) override; angle::Result getResource(const gl::Context *context, @@ -869,10 +889,11 @@ const gl::ImageIndex &index, GLsizei samples, RenderTargetD3D **outRT) override; angle::Result copyToStorage(const gl::Context *context, TextureStorage *destStorage) override; + void onLabelUpdate() override; protected: angle::Result getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) override; angle::Result getSwizzleRenderTarget(const gl::Context *context, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp @@ -76,12 +76,14 @@ MultisampledRenderToTextureInfo::~MultisampledRenderToTextureInfo() {} TextureStorage11::TextureStorage11(Renderer11 *renderer, UINT bindFlags, UINT miscFlags, - GLenum internalFormat) - : mRenderer(renderer), + GLenum internalFormat, + const std::string &label) + : TextureStorage(label), + mRenderer(renderer), mTopLevel(0), mMipLevels(0), mFormatInfo(d3d11::Format::Get(internalFormat, mRenderer->getRenderer11DeviceCaps())), mTextureWidth(0), mTextureHeight(0), @@ -937,11 +939,11 @@ GLsizei width = getLevelWidth(level); GLsizei height = getLevelHeight(level); GLenum internalFormat = mFormatInfo.internalFormat; std::unique_ptr texMS( GetAs(mRenderer->createTextureStorage2DMultisample( - internalFormat, width, height, level, samples, true))); + internalFormat, width, height, level, samples, true, mTextureLabel))); // make sure multisample object has the blitted information. gl::Rectangle area(0, 0, width, height); RenderTargetD3D *readRenderTarget = nullptr; // use incoming index here since the index will correspond to the single sampled texture @@ -966,15 +968,18 @@ mMSTexInfo->msTextureNeedsResolve = true; *outRT = rt; return angle::Result::Continue; } -TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swapchain) +TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, + SwapChain11 *swapchain, + const std::string &label) : TextureStorage11(renderer, D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE, 0, - swapchain->getRenderTargetInternalFormat()), + swapchain->getRenderTargetInternalFormat(), + label), mTexture(swapchain->getOffscreenTexture()), mLevelZeroTexture(), mLevelZeroRenderTarget(nullptr), mUseLevelZeroTexture(false), mSwizzleTexture() @@ -998,19 +1003,21 @@ GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly) : TextureStorage11( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget, levels), - internalformat), + internalformat, + label), mTexture(), mHasKeyedMutex(false), mLevelZeroTexture(), mLevelZeroRenderTarget(nullptr), mUseLevelZeroTexture(hintLevelZeroOnly && levels > 1), @@ -1030,10 +1037,26 @@ // The LevelZeroOnly hint should only be true if the zero max LOD workaround is active. ASSERT(!mUseLevelZeroTexture || mRenderer->getFeatures().zeroMaxLodWorkaround.enabled); } +void TextureStorage11_2D::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mLevelZeroTexture.valid()) + { + mLevelZeroTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mSwizzleTexture.valid()) + { + mSwizzleTexture.setKHRDebugLabel(&mTextureLabel); + } +} + angle::Result TextureStorage11_2D::onDestroy(const gl::Context *context) { for (unsigned i = 0; i < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++) { if (mAssociatedImages[i] != nullptr) @@ -1261,15 +1284,15 @@ ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, outputTexture)); if (useLevelZeroTexture) { - outputTexture->setDebugName("TexStorage2D.Level0Texture"); + outputTexture->setLabels("TexStorage2D.Level0Texture", &mTextureLabel); } else { - outputTexture->setDebugName("TexStorage2D.Texture"); + outputTexture->setLabels("TexStorage2D.Texture", &mTextureLabel); } } return angle::Result::Continue; } @@ -1371,11 +1394,11 @@ rtvDesc.Texture2D.MipSlice = mTopLevel + level; d3d11::RenderTargetView rtv; ANGLE_TRY( mRenderer->allocateResource(context11, rtvDesc, mLevelZeroTexture.get(), &rtv)); - rtv.setDebugName("TexStorage2D.Level0RTV"); + rtv.setLabels("TexStorage2D.Level0RTV", &mTextureLabel); mLevelZeroRenderTarget.reset(new TextureRenderTarget11( std::move(rtv), mLevelZeroTexture, d3d11::SharedSRV(), d3d11::SharedSRV(), mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(level), getLevelHeight(level), 1, 0)); @@ -1392,11 +1415,11 @@ rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; rtvDesc.Texture2D.MipSlice = mTopLevel + level; d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(context11, rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorage2D.RTV"); + rtv.setLabels("TexStorage2D.RTV", &mTextureLabel); mRenderTarget[level].reset(new TextureRenderTarget11( std::move(rtv), *texture, *srv, *blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(level), getLevelHeight(level), 1, 0)); @@ -1412,11 +1435,11 @@ dsvDesc.Texture2D.MipSlice = mTopLevel + level; dsvDesc.Flags = 0; d3d11::DepthStencilView dsv; ANGLE_TRY(mRenderer->allocateResource(context11, dsvDesc, texture->get(), &dsv)); - dsv.setDebugName("TexStorage2D.DSV"); + dsv.setLabels("TexStorage2D.DSV", &mTextureLabel); mRenderTarget[level].reset(new TextureRenderTarget11( std::move(dsv), *texture, *srv, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(level), getLevelHeight(level), 1, 0)); @@ -1462,11 +1485,11 @@ } } ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), srvDesc, srvTexture->get(), outSRV)); - outSRV->setDebugName("TexStorage2D.SRV"); + outSRV->setLabels("TexStorage2D.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2D::createSRVForImage(const gl::Context *context, @@ -1481,11 +1504,11 @@ srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; srvDesc.Texture2D.MostDetailedMip = mTopLevel + level; srvDesc.Texture2D.MipLevels = 1; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2D.SRVForImage"); + outSRV->setLabels("TexStorage2D.SRVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2D::createUAVForImage(const gl::Context *context, int level, @@ -1498,11 +1521,11 @@ uavDesc.Format = format; uavDesc.ViewDimension = D3D11_UAV_DIMENSION_TEXTURE2D; uavDesc.Texture2D.MipSlice = mTopLevel + level; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), uavDesc, texture.get(), outUAV)); - outUAV->setDebugName("TexStorage2D.UAVForImage"); + outUAV->setLabels("TexStorage2D.UAVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2D::getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) @@ -1526,11 +1549,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = 0; ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, format, &mSwizzleTexture)); - mSwizzleTexture.setDebugName("TexStorage2D.SwizzleTexture"); + mSwizzleTexture.setLabels("TexStorage2D.SwizzleTexture", &mTextureLabel); } *outTexture = &mSwizzleTexture; return angle::Result::Continue; } @@ -1586,11 +1609,11 @@ const auto &format = d3d11::Format::Get(GL_DEPTH_COMPONENT32F, mRenderer->getRenderer11DeviceCaps()); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), dropDesc, format, &mDropStencilTexture)); - mDropStencilTexture.setDebugName("TexStorage2D.DropStencil"); + mDropStencilTexture.setLabels("TexStorage2D.DropStencil", &mTextureLabel); ANGLE_TRY(initDropStencilTexture(context, gl::ImageIndexIterator::Make2D(0, mMipLevels))); *dropStencilOut = DropStencil::CREATED; return angle::Result::Continue; @@ -1607,12 +1630,13 @@ } TextureStorage11_External::TextureStorage11_External( Renderer11 *renderer, egl::Stream *stream, - const egl::Stream::GLTextureDescription &glDesc) - : TextureStorage11(renderer, D3D11_BIND_SHADER_RESOURCE, 0, glDesc.internalFormat) + const egl::Stream::GLTextureDescription &glDesc, + const std::string &label) + : TextureStorage11(renderer, D3D11_BIND_SHADER_RESOURCE, 0, glDesc.internalFormat, label) { ASSERT(stream->getProducerType() == egl::Stream::ProducerType::D3D11Texture); auto *producer = static_cast(stream->getImplementation()); mTexture.set(producer->getD3DTexture(), mFormatInfo); mSubresourceIndex = producer->getArraySlice(); @@ -1739,11 +1763,11 @@ srvDesc.Texture2DArray.FirstArraySlice = mSubresourceIndex; srvDesc.Texture2DArray.ArraySize = 1; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2D.SRV"); + outSRV->setLabels("TexStorage2D.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_External::createSRVForImage(const gl::Context *context, @@ -1780,15 +1804,24 @@ { ANGLE_HR_UNREACHABLE(GetImplAs(context)); return angle::Result::Stop; } +void TextureStorage11_External::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11ImmutableBase::TextureStorage11ImmutableBase(Renderer11 *renderer, UINT bindFlags, UINT miscFlags, - GLenum internalFormat) - : TextureStorage11(renderer, bindFlags, miscFlags, internalFormat) + GLenum internalFormat, + const std::string &label) + : TextureStorage11(renderer, bindFlags, miscFlags, internalFormat, label) {} void TextureStorage11ImmutableBase::associateImage(Image11 *, const gl::ImageIndex &) {} void TextureStorage11ImmutableBase::disassociateImage(const gl::ImageIndex &, Image11 *) {} @@ -1822,15 +1855,17 @@ return angle::Result::Stop; } TextureStorage11_EGLImage::TextureStorage11_EGLImage(Renderer11 *renderer, EGLImageD3D *eglImage, - RenderTarget11 *renderTarget11) + RenderTarget11 *renderTarget11, + const std::string &label) : TextureStorage11ImmutableBase(renderer, D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE, 0, - renderTarget11->getInternalFormat()), + renderTarget11->getInternalFormat(), + label), mImage(eglImage), mCurrentRenderTarget(0), mSwizzleTexture(), mSwizzleRenderTargets(gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS) { @@ -1958,11 +1993,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = 0; ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, format, &mSwizzleTexture)); - mSwizzleTexture.setDebugName("TexStorageEGLImage.SwizzleTexture"); + mSwizzleTexture.setLabels("TexStorageEGLImage.SwizzleTexture", &mTextureLabel); } *outTexture = &mSwizzleTexture; return angle::Result::Continue; } @@ -2030,11 +2065,11 @@ srvDesc.Texture2D.MostDetailedMip = mTopLevel + baseLevel; srvDesc.Texture2D.MipLevels = mipLevels; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorageEGLImage.SRV"); + outSRV->setLabels("TexStorageEGLImage.SRV", &mTextureLabel); } else { RenderTarget11 *renderTarget = nullptr; ANGLE_TRY(getImageRenderTarget(context, &renderTarget)); @@ -2054,24 +2089,34 @@ ANGLE_TRY(mImage->getRenderTarget(context, &renderTargetD3D)); *outRT = GetAs(renderTargetD3D); return angle::Result::Continue; } +void TextureStorage11_EGLImage::onLabelUpdate() +{ + if (mSwizzleTexture.valid()) + { + mSwizzleTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11_Cube::TextureStorage11_Cube(Renderer11 *renderer, GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) + bool hintLevelZeroOnly, + const std::string &label) : TextureStorage11( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget, levels), - internalformat), + internalformat, + label), mTexture(), mLevelZeroTexture(), mUseLevelZeroTexture(hintLevelZeroOnly && levels > 1), mSwizzleTexture() { @@ -2374,11 +2419,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE | getMiscFlags(); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, outputTexture)); - outputTexture->setDebugName("TexStorageCube.Texture"); + outputTexture->setLabels("TexStorageCube.Texture", &mTextureLabel); } return angle::Result::Continue; } @@ -2514,11 +2559,11 @@ else { blitSRV = srv.makeCopy(); } - srv.setDebugName("TexStorageCube.RenderTargetSRV"); + srv.setLabels("TexStorageCube.RenderTargetSRV", &mTextureLabel); if (mFormatInfo.rtvFormat != DXGI_FORMAT_UNKNOWN) { D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; rtvDesc.Format = mFormatInfo.rtvFormat; @@ -2527,11 +2572,11 @@ rtvDesc.Texture2DArray.FirstArraySlice = faceIndex; rtvDesc.Texture2DArray.ArraySize = 1; d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(context11, rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorageCube.RenderTargetRTV"); + rtv.setLabels("TexStorageCube.RenderTargetRTV", &mTextureLabel); mRenderTarget[faceIndex][level].reset(new TextureRenderTarget11( std::move(rtv), *texture, srv, blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(level), getLevelHeight(level), 1, 0)); } @@ -2545,11 +2590,11 @@ dsvDesc.Texture2DArray.FirstArraySlice = faceIndex; dsvDesc.Texture2DArray.ArraySize = 1; d3d11::DepthStencilView dsv; ANGLE_TRY(mRenderer->allocateResource(context11, dsvDesc, texture->get(), &dsv)); - dsv.setDebugName("TexStorageCube.RenderTargetDSV"); + dsv.setLabels("TexStorageCube.RenderTargetDSV", &mTextureLabel); mRenderTarget[faceIndex][level].reset(new TextureRenderTarget11( std::move(dsv), *texture, srv, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(level), getLevelHeight(level), 1, 0)); } @@ -2617,11 +2662,11 @@ } } ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), srvDesc, srvTexture->get(), outSRV)); - outSRV->setDebugName("TexStorageCube.SRV"); + outSRV->setLabels("TexStorageCube.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_Cube::createSRVForImage(const gl::Context *context, @@ -2638,11 +2683,11 @@ srvDesc.Texture2DArray.MipLevels = 1; srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.ArraySize = gl::kCubeFaceCount; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorageCube.SRVForImage"); + outSRV->setLabels("TexStorageCube.SRVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_Cube::createUAVForImage(const gl::Context *context, int level, @@ -2657,11 +2702,11 @@ uavDesc.Texture2DArray.MipSlice = mTopLevel + level; uavDesc.Texture2DArray.FirstArraySlice = 0; uavDesc.Texture2DArray.ArraySize = gl::kCubeFaceCount; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), uavDesc, texture.get(), outUAV)); - outUAV->setDebugName("TexStorageCube.UAVForImage"); + outUAV->setLabels("TexStorageCube.UAVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_Cube::getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) @@ -2685,11 +2730,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE; ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, format, &mSwizzleTexture)); - mSwizzleTexture.setDebugName("TexStorageCube.SwizzleTexture"); + mSwizzleTexture.setLabels("TexStorageCube.SwizzleTexture", &mTextureLabel); } *outTexture = &mSwizzleTexture; return angle::Result::Continue; } @@ -2747,11 +2792,11 @@ const auto &format = d3d11::Format::Get(GL_DEPTH_COMPONENT32F, mRenderer->getRenderer11DeviceCaps()); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), dropDesc, format, &mDropStencilTexture)); - mDropStencilTexture.setDebugName("TexStorageCube.DropStencil"); + mDropStencilTexture.setLabels("TexStorageCube.DropStencil", &mTextureLabel); ANGLE_TRY(initDropStencilTexture(context, gl::ImageIndexIterator::MakeCube(0, mMipLevels))); *dropStencilOut = DropStencil::CREATED; return angle::Result::Continue; @@ -2765,25 +2810,43 @@ onStateChange(angle::SubjectMessage::ContentsChanged); } return angle::Result::Continue; } +void TextureStorage11_Cube::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mLevelZeroTexture.valid()) + { + mLevelZeroTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mSwizzleTexture.valid()) + { + mSwizzleTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11_3D::TextureStorage11_3D(Renderer11 *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) : TextureStorage11( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget, levels), - internalformat) + internalformat, + label) { for (unsigned int i = 0; i < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++) { mAssociatedImages[i] = nullptr; mLevelRenderTargets[i] = nullptr; @@ -2897,11 +2960,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = getMiscFlags(); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, &mTexture)); - mTexture.setDebugName("TexStorage3D.Texture"); + mTexture.setLabels("TexStorage3D.Texture", &mTextureLabel); } *outResource = &mTexture; return angle::Result::Continue; } @@ -2921,11 +2984,11 @@ srvDesc.Texture3D.MostDetailedMip = baseLevel; srvDesc.Texture3D.MipLevels = mipLevels; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage3D.SRV"); + outSRV->setLabels("TexStorage3D.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_3D::createSRVForImage(const gl::Context *context, @@ -2940,11 +3003,11 @@ srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; srvDesc.Texture3D.MostDetailedMip = mTopLevel + level; srvDesc.Texture3D.MipLevels = 1; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage3D.SRVForImage"); + outSRV->setLabels("TexStorage3D.SRVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_3D::createUAVForImage(const gl::Context *context, int level, @@ -2959,11 +3022,11 @@ uavDesc.Texture3D.MipSlice = mTopLevel + level; uavDesc.Texture3D.FirstWSlice = 0; uavDesc.Texture3D.WSize = mTextureDepth; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), uavDesc, texture.get(), outUAV)); - outUAV->setDebugName("TexStorage3D.UAVForImage"); + outUAV->setLabels("TexStorage3D.UAVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_3D::findRenderTarget(const gl::Context *context, const gl::ImageIndex &index, @@ -3027,11 +3090,11 @@ rtvDesc.Texture3D.FirstWSlice = 0; rtvDesc.Texture3D.WSize = static_cast(-1); d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(context11, rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorage3D.RTV"); + rtv.setLabels("TexStorage3D.RTV", &mTextureLabel); mLevelRenderTargets[mipLevel].reset(new TextureRenderTarget11( std::move(rtv), *texture, *srv, *blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), getLevelDepth(mipLevel), 0)); @@ -3061,11 +3124,11 @@ rtvDesc.Texture3D.FirstWSlice = layer; rtvDesc.Texture3D.WSize = 1; d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(context11, rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorage3D.LayerRTV"); + rtv.setLabels("TexStorage3D.LayerRTV", &mTextureLabel); mLevelLayerRenderTargets[key].reset(new TextureRenderTarget11( std::move(rtv), *texture, srv, blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0)); } @@ -3095,11 +3158,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = 0; ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, format, &mSwizzleTexture)); - mSwizzleTexture.setDebugName("TexStorage3D.SwizzleTexture"); + mSwizzleTexture.setLabels("TexStorage3D.SwizzleTexture", &mTextureLabel); } *outTexture = &mSwizzleTexture; return angle::Result::Continue; } @@ -3125,32 +3188,46 @@ rtvDesc.Texture3D.WSize = static_cast(-1); ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), rtvDesc, mSwizzleTexture.get(), &mSwizzleRenderTargets[mipLevel])); - mSwizzleRenderTargets[mipLevel].setDebugName("TexStorage3D.SwizzleRTV"); + mSwizzleRenderTargets[mipLevel].setLabels("TexStorage3D.SwizzleRTV", &mTextureLabel); } *outRTV = &mSwizzleRenderTargets[mipLevel]; return angle::Result::Continue; } +void TextureStorage11_3D::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mSwizzleTexture.valid()) + { + mSwizzleTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11_2DArray::TextureStorage11_2DArray(Renderer11 *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) : TextureStorage11( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), renderTarget, levels), - internalformat) + internalformat, + label) { // adjust size if needed for compressed textures d3d11::MakeValidSize(false, mFormatInfo.texFormat, &width, &height, &mTopLevel); mMipLevels = mTopLevel + levels; @@ -3276,11 +3353,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = getMiscFlags(); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, &mTexture)); - mTexture.setDebugName("TexStorage2DArray.Texture"); + mTexture.setLabels("TexStorage2DArray.Texture", &mTextureLabel); } *outResource = &mTexture; return angle::Result::Continue; } @@ -3300,11 +3377,11 @@ srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.ArraySize = mTextureDepth; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2DArray.SRV"); + outSRV->setLabels("TexStorage2DArray.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2DArray::createSRVForImage(const gl::Context *context, @@ -3321,11 +3398,11 @@ srvDesc.Texture2DArray.MipLevels = 1; srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.ArraySize = mTextureDepth; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2DArray.SRVForImage"); + outSRV->setLabels("TexStorage2DArray.SRVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2DArray::createUAVForImage(const gl::Context *context, int level, @@ -3340,11 +3417,11 @@ uavDesc.Texture2DArray.MipSlice = mTopLevel + level; uavDesc.Texture2DArray.FirstArraySlice = 0; uavDesc.Texture2DArray.ArraySize = mTextureDepth; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), uavDesc, texture.get(), outUAV)); - outUAV->setDebugName("TexStorage2DArray.UAVForImage"); + outUAV->setLabels("TexStorage2DArray.UAVForImage", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2DArray::findRenderTarget(const gl::Context *context, const gl::ImageIndex &index, @@ -3421,11 +3498,11 @@ else { blitSRV = srv.makeCopy(); } - srv.setDebugName("TexStorage2DArray.RenderTargetSRV"); + srv.setLabels("TexStorage2DArray.RenderTargetSRV", &mTextureLabel); if (mFormatInfo.rtvFormat != DXGI_FORMAT_UNKNOWN) { D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; rtvDesc.Format = mFormatInfo.rtvFormat; @@ -3435,11 +3512,11 @@ rtvDesc.Texture2DArray.ArraySize = numLayers; d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorage2DArray.RenderTargetRTV"); + rtv.setLabels("TexStorage2DArray.RenderTargetRTV", &mTextureLabel); mRenderTargets[key].reset(new TextureRenderTarget11( std::move(rtv), *texture, srv, blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0)); } @@ -3456,11 +3533,11 @@ dsvDesc.Flags = 0; d3d11::DepthStencilView dsv; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), dsvDesc, texture->get(), &dsv)); - dsv.setDebugName("TexStorage2DArray.RenderTargetDSV"); + dsv.setLabels("TexStorage2DArray.RenderTargetDSV", &mTextureLabel); mRenderTargets[key].reset(new TextureRenderTarget11( std::move(dsv), *texture, srv, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0)); } @@ -3491,11 +3568,11 @@ desc.CPUAccessFlags = 0; desc.MiscFlags = 0; ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, format, &mSwizzleTexture)); - mSwizzleTexture.setDebugName("TexStorage2DArray.SwizzleTexture"); + mSwizzleTexture.setLabels("TexStorage2DArray.SwizzleTexture", &mTextureLabel); } *outTexture = &mSwizzleTexture; return angle::Result::Continue; } @@ -3554,33 +3631,47 @@ const auto &format = d3d11::Format::Get(GL_DEPTH_COMPONENT32F, mRenderer->getRenderer11DeviceCaps()); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), dropDesc, format, &mDropStencilTexture)); - mDropStencilTexture.setDebugName("TexStorage2DArray.DropStencil"); + mDropStencilTexture.setLabels("TexStorage2DArray.DropStencil", &mTextureLabel); std::vector layerCounts(mMipLevels, mTextureDepth); ANGLE_TRY(initDropStencilTexture( context, gl::ImageIndexIterator::Make2DArray(0, mMipLevels, layerCounts.data()))); *dropStencilOut = DropStencil::CREATED; return angle::Result::Continue; } +void TextureStorage11_2DArray::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } + if (mSwizzleTexture.valid()) + { + mSwizzleTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11_2DMultisample::TextureStorage11_2DMultisample(Renderer11 *renderer, GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) : TextureStorage11ImmutableBase( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), true), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), true, levels), - internalformat), + internalformat, + label), mTexture(), mRenderTarget(nullptr) { // There are no multisampled compressed formats, so there's no need to adjust texture size // according to block size. @@ -3647,11 +3738,11 @@ desc.SampleDesc.Count = (supportedSamples == 0) ? 1 : supportedSamples; desc.SampleDesc.Quality = mRenderer->getSampleDescQuality(supportedSamples); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, &mTexture)); - mTexture.setDebugName("TexStorage2DMS.Texture"); + mTexture.setLabels("TexStorage2DMS.Texture", &mTextureLabel); } return angle::Result::Continue; } @@ -3746,11 +3837,11 @@ srvDesc.Format = format; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DMS; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2DMS.SRV"); + outSRV->setLabels("TexStorage2DMS.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2DMultisample::getSwizzleTexture(const gl::Context *context, const TextureHelper11 **outTexture) @@ -3773,23 +3864,33 @@ { ANGLE_HR_UNREACHABLE(GetImplAs(context)); return angle::Result::Stop; } +void TextureStorage11_2DMultisample::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } +} + TextureStorage11_2DMultisampleArray::TextureStorage11_2DMultisampleArray(Renderer11 *renderer, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) : TextureStorage11ImmutableBase( renderer, GetTextureBindFlags(internalformat, renderer->getRenderer11DeviceCaps(), true), GetTextureMiscFlags(internalformat, renderer->getRenderer11DeviceCaps(), true, levels), - internalformat), + internalformat, + label), mTexture() { // There are no multisampled compressed formats, so there's no need to adjust texture size // according to block size. ASSERT(d3d11::GetDXGIFormatSizeInfo(mFormatInfo.texFormat).blockWidth <= 1); @@ -3854,11 +3955,11 @@ desc.SampleDesc.Count = (supportedSamples == 0) ? 1 : supportedSamples; desc.SampleDesc.Quality = mRenderer->getSampleDescQuality(supportedSamples); ANGLE_TRY(mRenderer->allocateTexture(GetImplAs(context), desc, mFormatInfo, &mTexture)); - mTexture.setDebugName("TexStorage2DMSArray.Texture"); + mTexture.setLabels("TexStorage2DMSArray.Texture", &mTextureLabel); } return angle::Result::Continue; } @@ -3938,11 +4039,11 @@ else { blitSRV = srv.makeCopy(); } - srv.setDebugName("TexStorage2DMSArray.RenderTargetSRV"); + srv.setLabels("TexStorage2DMSArray.RenderTargetSRV", &mTextureLabel); if (mFormatInfo.rtvFormat != DXGI_FORMAT_UNKNOWN) { D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; rtvDesc.Format = mFormatInfo.rtvFormat; @@ -3951,11 +4052,11 @@ rtvDesc.Texture2DMSArray.ArraySize = numLayers; d3d11::RenderTargetView rtv; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), rtvDesc, texture->get(), &rtv)); - rtv.setDebugName("TexStorage2DMSArray.RenderTargetRTV"); + rtv.setLabels("TexStorage2DMSArray.RenderTargetRTV", &mTextureLabel); mRenderTargets[key].reset(new TextureRenderTarget11( std::move(rtv), *texture, srv, blitSRV, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, mSamples)); } @@ -3971,11 +4072,11 @@ dsvDesc.Flags = 0; d3d11::DepthStencilView dsv; ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), dsvDesc, texture->get(), &dsv)); - dsv.setDebugName("TexStorage2DMSArray.RenderTargetDSV"); + dsv.setLabels("TexStorage2DMSArray.RenderTargetDSV", &mTextureLabel); mRenderTargets[key].reset(new TextureRenderTarget11( std::move(dsv), *texture, srv, mFormatInfo.internalFormat, getFormatSet(), getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, mSamples)); } @@ -4002,11 +4103,11 @@ srvDesc.Texture2DMSArray.FirstArraySlice = 0; srvDesc.Texture2DMSArray.ArraySize = mTextureDepth; ANGLE_TRY( mRenderer->allocateResource(GetImplAs(context), srvDesc, texture.get(), outSRV)); - outSRV->setDebugName("TexStorage2DMSArray.SRV"); + outSRV->setLabels("TexStorage2DMSArray.SRV", &mTextureLabel); return angle::Result::Continue; } angle::Result TextureStorage11_2DMultisampleArray::getSwizzleTexture( const gl::Context *context, @@ -4031,6 +4132,14 @@ { ANGLE_HR_UNREACHABLE(GetImplAs(context)); return angle::Result::Stop; } +void TextureStorage11_2DMultisampleArray::onLabelUpdate() +{ + if (mTexture.valid()) + { + mTexture.setKHRDebugLabel(&mTextureLabel); + } +} + } // namespace rx diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp @@ -53,15 +53,15 @@ ANGLE_TRY(mRenderer->allocateResource(GetImplAs(context), bufferDesc, &mBuffer)); if (dynamicUsage) { - mBuffer.setDebugName("VertexBuffer11 (dynamic)"); + mBuffer.setInternalName("VertexBuffer11(dynamic)"); } else { - mBuffer.setDebugName("VertexBuffer11 (static)"); + mBuffer.setInternalName("VertexBuffer11(static)"); } } mBufferSize = size; mDynamicUsage = dynamicUsage; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp @@ -301,11 +301,13 @@ mFpCreateDispatcherQueueController)) { return; } - if (SUCCEEDED(RoInitialize(RO_INIT_MULTITHREADED))) + auto result = RoInitialize(RO_INIT_MULTITHREADED); + + if (SUCCEEDED(result) || result == S_FALSE || result == RPC_E_CHANGED_MODE) { mWinRtAvailable = true; } #endif } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp @@ -847,11 +847,10 @@ case D3D_FEATURE_LEVEL_11_1: case D3D_FEATURE_LEVEL_11_0: return {{D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION, D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION, D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION}}; - break; default: return {{0, 0, 0}}; } } @@ -861,11 +860,10 @@ { case D3D_FEATURE_LEVEL_11_1: case D3D_FEATURE_LEVEL_11_0: return {{D3D11_CS_THREAD_GROUP_MAX_X, D3D11_CS_THREAD_GROUP_MAX_Y, D3D11_CS_THREAD_GROUP_MAX_Z}}; - break; default: return {{0, 0, 0}}; } } @@ -1239,15 +1237,12 @@ IntelDriverVersion GetIntelDriverVersion(const Optional driverVersion) { if (!driverVersion.valid()) return IntelDriverVersion(0); - // According to http://www.intel.com/content/www/us/en/support/graphics-drivers/000005654.html, - // only the fourth part is necessary since it stands for the driver specific unique version - // number. - WORD part = LOWORD(driverVersion.value().LowPart); - return IntelDriverVersion(part); + DWORD lowPart = driverVersion.value().LowPart; + return IntelDriverVersion(HIWORD(lowPart) * 10000 + LOWORD(lowPart)); } } // anonymous namespace unsigned int GetReservedVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel) @@ -1570,109 +1565,112 @@ // Texture gather offset limits caps->minProgramTextureGatherOffset = GetMinimumTextureGatherOffset(featureLevel); caps->maxProgramTextureGatherOffset = GetMaximumTextureGatherOffset(featureLevel); + caps->maxTextureAnisotropy = GetMaximumAnisotropy(featureLevel); + caps->queryCounterBitsTimeElapsed = 64; + caps->queryCounterBitsTimestamp = 0; // Timestamps cannot be supported due to D3D11 limitations + caps->maxDualSourceDrawBuffers = 1; + // GL extension support extensions->setTextureExtensionSupport(*textureCapsMap); // Explicitly disable GL_OES_compressed_ETC1_RGB8_texture because it's emulated and never // becomes core. WebGL doesn't want to expose it unless there is native support. - extensions->compressedETC1RGB8TextureOES = false; - extensions->compressedETC1RGB8SubTexture = false; + extensions->compressedETC1RGB8TextureOES = false; + extensions->compressedETC1RGB8SubTextureEXT = false; extensions->elementIndexUintOES = true; extensions->getProgramBinaryOES = true; - extensions->rgb8rgba8OES = true; - extensions->readFormatBGRA = true; + extensions->rgb8Rgba8OES = true; + extensions->readFormatBgraEXT = true; extensions->pixelBufferObjectNV = true; - extensions->mapBufferOES = true; - extensions->mapBufferRange = true; - extensions->textureNPOTOES = GetNPOTTextureSupport(featureLevel); - extensions->drawBuffers = GetMaximumSimultaneousRenderTargets(featureLevel) > 1; + extensions->mapbufferOES = true; + extensions->mapBufferRangeEXT = true; + extensions->textureNpotOES = GetNPOTTextureSupport(featureLevel); + extensions->drawBuffersEXT = GetMaximumSimultaneousRenderTargets(featureLevel) > 1; extensions->drawBuffersIndexedEXT = (renderer11DeviceCaps.featureLevel >= D3D_FEATURE_LEVEL_10_1); extensions->drawBuffersIndexedOES = extensions->drawBuffersIndexedEXT; - extensions->textureStorage = true; - extensions->textureFilterAnisotropic = true; - extensions->maxTextureAnisotropy = GetMaximumAnisotropy(featureLevel); - extensions->occlusionQueryBoolean = GetOcclusionQuerySupport(featureLevel); + extensions->textureStorageEXT = true; + extensions->textureFilterAnisotropicEXT = true; + extensions->occlusionQueryBooleanEXT = GetOcclusionQuerySupport(featureLevel); extensions->fenceNV = GetEventQuerySupport(featureLevel); - extensions->disjointTimerQuery = true; - extensions->queryCounterBitsTimeElapsed = 64; - extensions->queryCounterBitsTimestamp = - 0; // Timestamps cannot be supported due to D3D11 limitations - extensions->robustness = true; + extensions->disjointTimerQueryEXT = true; + extensions->robustnessEXT = true; // Direct3D guarantees to return zero for any resource that is accessed out of bounds. // See https://msdn.microsoft.com/en-us/library/windows/desktop/ff476332(v=vs.85).aspx // and https://msdn.microsoft.com/en-us/library/windows/desktop/ff476900(v=vs.85).aspx - extensions->robustBufferAccessBehavior = true; - extensions->blendMinMax = true; + extensions->robustBufferAccessBehaviorKHR = true; + extensions->blendMinmaxEXT = true; // https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-11-0-feature-level-hardware - extensions->floatBlend = true; - extensions->framebufferBlitANGLE = GetFramebufferBlitSupport(featureLevel); - extensions->framebufferMultisample = GetFramebufferMultisampleSupport(featureLevel); - extensions->instancedArraysANGLE = GetInstancingSupport(featureLevel); - extensions->instancedArraysEXT = GetInstancingSupport(featureLevel); - extensions->packReverseRowOrder = true; - extensions->standardDerivativesOES = GetDerivativeInstructionSupport(featureLevel); - extensions->shaderTextureLOD = GetShaderTextureLODSupport(featureLevel); - extensions->fragDepth = true; - extensions->multiview = IsMultiviewSupported(featureLevel); - extensions->multiview2 = IsMultiviewSupported(featureLevel); - if (extensions->multiview || extensions->multiview2) + extensions->floatBlendEXT = true; + extensions->framebufferBlitANGLE = GetFramebufferBlitSupport(featureLevel); + extensions->framebufferBlitNV = extensions->framebufferBlitANGLE; + extensions->framebufferMultisampleANGLE = GetFramebufferMultisampleSupport(featureLevel); + extensions->instancedArraysANGLE = GetInstancingSupport(featureLevel); + extensions->instancedArraysEXT = GetInstancingSupport(featureLevel); + extensions->packReverseRowOrderANGLE = true; + extensions->standardDerivativesOES = GetDerivativeInstructionSupport(featureLevel); + extensions->shaderTextureLodEXT = GetShaderTextureLODSupport(featureLevel); + extensions->fragDepthEXT = true; + extensions->multiviewOVR = IsMultiviewSupported(featureLevel); + extensions->multiview2OVR = IsMultiviewSupported(featureLevel); + if (extensions->multiviewOVR || extensions->multiview2OVR) { - extensions->maxViews = - std::min(static_cast(gl::IMPLEMENTATION_ANGLE_MULTIVIEW_MAX_VIEWS), - std::min(static_cast(GetMaximum2DTextureArraySize(featureLevel)), - GetMaxViewportAndScissorRectanglesPerPipeline(featureLevel))); + caps->maxViews = std::min(static_cast(GetMaximum2DTextureArraySize(featureLevel)), + GetMaxViewportAndScissorRectanglesPerPipeline(featureLevel)); } - extensions->textureUsage = true; // This could be false since it has no effect in D3D11 - extensions->discardFramebuffer = true; - extensions->translatedShaderSource = true; + extensions->textureUsageANGLE = true; // This could be false since it has no effect in D3D11 + extensions->discardFramebufferEXT = true; + extensions->translatedShaderSourceANGLE = true; extensions->fboRenderMipmapOES = true; - extensions->debugMarker = true; - extensions->eglImageOES = true; - extensions->eglImageExternalOES = true; - extensions->eglImageExternalWrapModesEXT = true; - extensions->eglImageExternalEssl3OES = true; - extensions->eglStreamConsumerExternalNV = true; - extensions->unpackSubimage = true; - extensions->packSubimage = true; - extensions->lossyETCDecode = true; - extensions->syncQuery = GetEventQuerySupport(featureLevel); - extensions->copyTexture = true; - extensions->copyCompressedTexture = true; - extensions->textureStorageMultisample2DArrayOES = true; - extensions->multiviewMultisample = ((extensions->multiview || extensions->multiview2) && - extensions->textureStorageMultisample2DArrayOES); - extensions->copyTexture3d = true; - extensions->textureBorderClampOES = true; - extensions->textureMultisample = true; - extensions->provokingVertex = true; - extensions->blendFuncExtended = true; - extensions->maxDualSourceDrawBuffers = 1; + extensions->debugMarkerEXT = true; + extensions->EGLImageOES = true; + extensions->EGLImageExternalOES = true; + extensions->EGLImageExternalWrapModesEXT = true; + extensions->EGLImageExternalEssl3OES = true; + extensions->EGLStreamConsumerExternalNV = true; + extensions->unpackSubimageEXT = true; + extensions->packSubimageNV = true; + extensions->lossyEtcDecodeANGLE = true; + extensions->syncQueryCHROMIUM = GetEventQuerySupport(featureLevel); + extensions->copyTextureCHROMIUM = true; + extensions->copyCompressedTextureCHROMIUM = true; + extensions->textureStorageMultisample2dArrayOES = true; + extensions->multiviewMultisampleANGLE = + ((extensions->multiviewOVR || extensions->multiview2OVR) && + extensions->textureStorageMultisample2dArrayOES); + extensions->copyTexture3dANGLE = true; + extensions->textureBorderClampOES = true; + extensions->textureMultisampleANGLE = true; + extensions->provokingVertexANGLE = true; + extensions->blendFuncExtendedEXT = true; // http://anglebug.com/4926 - extensions->texture3DOES = false; - extensions->baseVertexBaseInstance = true; - extensions->drawElementsBaseVertexOES = true; - extensions->drawElementsBaseVertexEXT = true; + extensions->texture3DOES = false; + extensions->baseVertexBaseInstanceANGLE = true; + extensions->drawElementsBaseVertexOES = true; + extensions->drawElementsBaseVertexEXT = true; if (!strstr(description, "Adreno")) { - extensions->multisampledRenderToTexture = true; + extensions->multisampledRenderToTextureEXT = true; } - extensions->webglVideoTexture = true; + extensions->videoTextureWEBGL = true; // D3D11 cannot support reading depth texture as a luminance texture. // It treats it as a red-channel-only texture. extensions->depthTextureOES = false; // readPixels on depth & stencil not working with D3D11 backend. extensions->readDepthNV = false; extensions->readStencilNV = false; extensions->depthBufferFloat2NV = false; + // GL_EXT_clip_control + extensions->clipControlEXT = (renderer11DeviceCaps.featureLevel >= D3D_FEATURE_LEVEL_9_3); + // D3D11 Feature Level 10_0+ uses SV_IsFrontFace in HLSL to emulate gl_FrontFacing. // D3D11 Feature Level 9_3 doesn't support SV_IsFrontFace, and has no equivalent, so can't // support gl_FrontFacing. limitations->noFrontFacingSupport = (renderer11DeviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3); @@ -2287,39 +2285,34 @@ bool operator!=(const RasterizerStateKey &a, const RasterizerStateKey &b) { return !(a == b); } -HRESULT SetDebugName(ID3D11DeviceChild *resource, const char *name) +HRESULT SetDebugName(ID3D11DeviceChild *resource, + const char *internalName, + const std::string *khrDebugName) { - UINT existingDataSize = 0; - resource->GetPrivateData(WKPDID_D3DDebugObjectName, &existingDataSize, nullptr); - // Don't check the HRESULT- if it failed then that probably just means that no private data - // exists yet - - if (existingDataSize > 0) + // Prepend ANGLE to separate names from other components in the same process. + std::string d3dName = "ANGLE"; + bool sendNameToD3D = false; + if (internalName && internalName[0] != '\0') { - // In some cases, ANGLE will try to apply two names to one object, which causes - // a D3D SDK Layers warning. This can occur if, for example, you 'create' two objects - // (e.g.Rasterizer States) with identical DESCs on the same device. D3D11 will optimize - // these calls and return the same object both times. - static const char *multipleNamesUsed = "MultipleNamesSetByANGLE"; - - // Remove the existing name - const HRESULT hr = resource->SetPrivateData(WKPDID_D3DDebugObjectName, 0, nullptr); - if (FAILED(hr)) - { - return hr; - } - - name = multipleNamesUsed; + d3dName += std::string("_") + internalName; + sendNameToD3D = true; + } + if (khrDebugName && !khrDebugName->empty()) + { + d3dName += std::string("_") + *khrDebugName; + sendNameToD3D = true; } - - // Prepend ANGLE_ to separate names from other components in the same process. - const std::string d3dName = std::string("ANGLE_") + name; - return resource->SetPrivateData(WKPDID_D3DDebugObjectName, static_cast(d3dName.size()), - d3dName.c_str()); + // If both internalName and khrDebugName are empty, avoid sending the string to d3d. + if (sendNameToD3D) + { + return resource->SetPrivateData(WKPDID_D3DDebugObjectName, + static_cast(d3dName.size()), d3dName.c_str()); + } + return S_OK; } // Keep this in cpp file where it has visibility of Renderer11.h, otherwise calling // allocateResource is only compatible with Clang and MSVS, which support calling a // method on a forward declared class in a template. @@ -2331,11 +2324,11 @@ const char *name) { if (!mResource.valid()) { ANGLE_TRY(renderer->allocateResource(context, desc, initData, &mResource)); - mResource.setDebugName(name); + mResource.setInternalName(name); } return angle::Result::Continue; } template angle::Result LazyResource::resolveImpl( @@ -2405,24 +2398,22 @@ bool isIntel = IsIntel(adapterDesc.VendorId); bool isSkylake = false; bool isBroadwell = false; bool isHaswell = false; bool isIvyBridge = false; - bool isSandyBridge = false; bool isAMD = IsAMD(adapterDesc.VendorId); bool isFeatureLevel9_3 = (deviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3); IntelDriverVersion capsVersion = IntelDriverVersion(0); if (isIntel) { capsVersion = d3d11_gl::GetIntelDriverVersion(deviceCaps.driverVersion); - isSkylake = IsSkylake(adapterDesc.DeviceId); - isBroadwell = IsBroadwell(adapterDesc.DeviceId); - isHaswell = IsHaswell(adapterDesc.DeviceId); - isIvyBridge = IsIvyBridge(adapterDesc.DeviceId); - isSandyBridge = IsSandyBridge(adapterDesc.DeviceId); + isSkylake = IsSkylake(adapterDesc.DeviceId); + isBroadwell = IsBroadwell(adapterDesc.DeviceId); + isHaswell = IsHaswell(adapterDesc.DeviceId); + isIvyBridge = IsIvyBridge(adapterDesc.DeviceId); } if (isNvidia) { // TODO(jmadill): Narrow problematic driver range. @@ -2459,30 +2450,32 @@ ANGLE_FEATURE_CONDITION(features, preAddTexelFetchOffsets, isIntel); ANGLE_FEATURE_CONDITION(features, useSystemMemoryForConstantBuffers, isIntel); ANGLE_FEATURE_CONDITION(features, callClearTwice, - isIntel && isSkylake && capsVersion < IntelDriverVersion(4771)); + isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && + capsVersion < IntelDriverVersion(164771)); ANGLE_FEATURE_CONDITION(features, emulateIsnanFloat, - isIntel && isSkylake && capsVersion < IntelDriverVersion(4542)); - ANGLE_FEATURE_CONDITION( - features, rewriteUnaryMinusOperator, - isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624)); + isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && + capsVersion < IntelDriverVersion(164542)); + ANGLE_FEATURE_CONDITION(features, rewriteUnaryMinusOperator, + isIntel && (isBroadwell || isHaswell) && + capsVersion >= IntelDriverVersion(150000) && + capsVersion < IntelDriverVersion(154624)); ANGLE_FEATURE_CONDITION(features, addMockTextureNoRenderTarget, - isIntel && capsVersion < IntelDriverVersion(4815)); + isIntel && capsVersion >= IntelDriverVersion(160000) && + capsVersion < IntelDriverVersion(164815)); - // Haswell drivers occasionally corrupt (small?) (vertex?) texture data uploads for 128bit - // formats. - ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, true); - ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUploadOn128bitFormats, + // Haswell/Ivybridge drivers occasionally corrupt (small?) (vertex?) texture data uploads. + ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, !(isIvyBridge || isBroadwell || isHaswell)); - ANGLE_FEATURE_CONDITION(features, emulateClearViewAfterDualSourceBlending, isSandyBridge); - ANGLE_FEATURE_CONDITION(features, disableB5G6R5Support, - (isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD); + (isIntel && capsVersion >= IntelDriverVersion(150000) && + capsVersion < IntelDriverVersion(154539)) || + isAMD); // TODO(jmadill): Disable when we have a fixed driver version. // The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a // depth stencil texture. This is not allowed until feature level 10.1 but since it is not // possible to support ES3 on these devices, there is no need for the workaround to begin with diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dms11ps.h @@ -13,13 +13,13 @@ // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ -// SV_POSITION 0 xyzw 0 POS float -// TEXCORD 0 xy 1 NONE float xy -// SV_SAMPLEINDEX 0 x 2 SAMPLE uint x +// SV_POSITION 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy +// SV_SAMPLEINDEX 0 x 2 SAMPLE uint x // // // Output signature: // // Name Index Mask Register SysValue Format Used @@ -36,45 +36,45 @@ dcl_output o0.xyzw dcl_temps 1 ftou r0.xy, v1.xyxx mov r0.zw, l(0,0,0,0) ldms o0.xyzw, r0.xyzw, t0.xyzw, v2.x -ret +ret // Approximately 4 instruction slots used #endif const BYTE g_PS_PassthroughRGBA2DMS[] = { - 68, 88, 66, 67, 24, 185, 64, 224, 216, 192, 107, 84, 140, 208, 46, 210, 75, 20, 1, - 202, 1, 0, 0, 0, 148, 2, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, 184, 0, - 0, 0, 52, 1, 0, 0, 104, 1, 0, 0, 24, 2, 0, 0, 82, 68, 69, 70, 124, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, - 1, 4, 255, 255, 0, 1, 0, 0, 72, 0, 0, 0, 60, 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, 84, 101, 120, 116, 117, 114, 101, 70, 95, 77, 83, 0, 77, - 105, 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 54, 46, 51, 46, - 57, 54, 48, 48, 46, 49, 54, 51, 56, 52, 0, 171, 171, 73, 83, 71, 78, 116, 0, - 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 3, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 2, 0, - 0, 0, 1, 1, 0, 0, 83, 86, 95, 80, 79, 83, 73, 84, 73, 79, 78, 0, 84, - 69, 88, 67, 79, 82, 68, 0, 83, 86, 95, 83, 65, 77, 80, 76, 69, 73, 78, 68, - 69, 88, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 65, 82, 71, 69, 84, 0, 171, 171, 83, - 72, 68, 82, 168, 0, 0, 0, 65, 0, 0, 0, 42, 0, 0, 0, 106, 8, 0, 1, - 88, 32, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, 85, 85, 0, 0, 98, 16, 0, - 3, 50, 16, 16, 0, 1, 0, 0, 0, 99, 8, 0, 4, 18, 16, 16, 0, 2, 0, - 0, 0, 10, 0, 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, 104, - 0, 0, 2, 1, 0, 0, 0, 28, 0, 0, 5, 50, 0, 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 1, 0, 0, 0, 54, 0, 0, 8, 194, 0, 16, 0, 0, 0, 0, - 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 0, 0, 9, 242, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 0, - 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 83, 84, 65, 84, 116, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 88, 66, 67, 137, 180, 217, 167, 175, 41, 248, 86, 195, 120, 205, 140, 139, 71, 19, + 121, 1, 0, 0, 0, 148, 2, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, 184, 0, + 0, 0, 52, 1, 0, 0, 104, 1, 0, 0, 24, 2, 0, 0, 82, 68, 69, 70, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, + 1, 4, 255, 255, 0, 1, 0, 0, 72, 0, 0, 0, 60, 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, 84, 101, 120, 116, 117, 114, 101, 70, 95, 77, 83, 0, 77, + 105, 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 54, 46, 51, 46, + 57, 54, 48, 48, 46, 49, 54, 51, 56, 52, 0, 171, 171, 73, 83, 71, 78, 116, 0, + 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 3, 0, + 0, 101, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 2, 0, + 0, 0, 1, 1, 0, 0, 83, 86, 95, 80, 79, 83, 73, 84, 73, 79, 78, 0, 84, + 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 83, 65, 77, 80, 76, 69, 73, 78, + 68, 69, 88, 0, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 65, 82, 71, 69, 84, 0, 171, 171, 83, + 72, 68, 82, 168, 0, 0, 0, 65, 0, 0, 0, 42, 0, 0, 0, 106, 8, 0, 1, + 88, 32, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, 85, 85, 0, 0, 98, 16, 0, + 3, 50, 16, 16, 0, 1, 0, 0, 0, 99, 8, 0, 4, 18, 16, 16, 0, 2, 0, + 0, 0, 10, 0, 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, 104, + 0, 0, 2, 1, 0, 0, 0, 28, 0, 0, 5, 50, 0, 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 1, 0, 0, 0, 54, 0, 0, 8, 194, 0, 16, 0, 0, 0, 0, + 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 0, 0, 9, 242, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 0, + 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 10, 16, 16, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 83, 84, 65, 84, 116, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/shaders/compiled/resolvecolor2dps.h @@ -1,12 +1,8 @@ #if 0 // -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /nologo /E PS_ResolveColor2D /T ps_4_1 /Fh compiled\resolvecolor2dps.h -// ResolveColor.hlsl +// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384 // // // Resource Bindings: // // Name Type Format Dim Slot Elements @@ -15,21 +11,21 @@ // // // // Input signature: // -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 POS float -// TEXCORD 0 xy 1 NONE float xy +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_POSITION 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy // // // Output signature: // -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_TARGET 0 xyzw 0 TARGET float xyzw +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_TARGET 0 xyzw 0 TARGET float xyzw // ps_4_1 dcl_globalFlags refactoringAllowed dcl_resource_texture2dms(0) (float,float,float,float) t0 dcl_input_ps linear v1.xy @@ -41,67 +37,67 @@ mul r0.xy, r0.xyxx, v1.xyxx ftou r1.xy, r0.xyxx mov r1.zw, l(0,0,0,0) mov r2.xyzw, l(0,0,0,0) mov r0.x, l(0) -loop +loop uge r0.y, r0.x, r0.z breakc_nz r0.y ldms r3.xyzw, r1.xyzw, t0.xyzw, r0.x add r2.xyzw, r2.xyzw, r3.xyzw iadd r0.x, r0.x, l(1) -endloop +endloop sampleinfo r0.x, t0.x div o0.xyzw, r2.xyzw, r0.xxxx -ret +ret // Approximately 18 instruction slots used #endif const BYTE g_PS_ResolveColor2D[] = { - 68, 88, 66, 67, 192, 130, 252, 156, 103, 192, 177, 148, 25, 142, 181, 214, 173, 217, 123, - 174, 1, 0, 0, 0, 136, 3, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, 184, 0, - 0, 0, 12, 1, 0, 0, 64, 1, 0, 0, 12, 3, 0, 0, 82, 68, 69, 70, 124, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, - 1, 4, 255, 255, 0, 1, 0, 0, 72, 0, 0, 0, 60, 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, 84, 101, 120, 116, 117, 114, 101, 70, 95, 77, 83, 0, 77, - 105, 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 57, 46, 50, 57, - 46, 57, 53, 50, 46, 51, 49, 49, 49, 0, 171, 171, 171, 73, 83, 71, 78, 76, 0, - 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 3, 0, - 0, 83, 86, 95, 80, 79, 83, 73, 84, 73, 79, 78, 0, 84, 69, 88, 67, 79, 82, - 68, 0, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, 95, 84, 65, 82, 71, 69, 84, 0, 171, 171, 83, 72, 68, - 82, 196, 1, 0, 0, 65, 0, 0, 0, 113, 0, 0, 0, 106, 8, 0, 1, 88, 32, - 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, 85, 85, 0, 0, 98, 16, 0, 3, 50, - 16, 16, 0, 1, 0, 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 4, 0, 0, 0, 61, 16, 0, 7, 50, 0, 16, 0, 0, 0, 0, - 0, 1, 64, 0, 0, 0, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 111, 8, - 0, 5, 66, 0, 16, 0, 0, 0, 0, 0, 10, 112, 16, 0, 0, 0, 0, 0, 86, - 0, 0, 5, 50, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 50, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, 0, 0, 0, 0, - 0, 70, 16, 16, 0, 1, 0, 0, 0, 28, 0, 0, 5, 50, 0, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, 0, 0, 0, 0, 54, 0, 0, 8, 194, 0, 16, 0, 1, - 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, 0, 8, 242, 0, 16, 0, 2, 0, 0, 0, 2, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 1, 80, 0, 0, 7, 34, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, 3, 0, 4, 3, 26, 0, 16, - 0, 0, 0, 0, 0, 46, 0, 0, 9, 242, 0, 16, 0, 3, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 242, 0, 16, 0, 2, 0, 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, 30, 0, 0, 7, 18, 0, 16, - 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 1, 0, - 0, 0, 22, 0, 0, 1, 111, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, - 112, 16, 0, 0, 0, 0, 0, 14, 0, 0, 7, 242, 32, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 62, 0, 0, - 1, 83, 84, 65, 84, 116, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + 68, 88, 66, 67, 0, 109, 244, 207, 188, 2, 49, 10, 245, 38, 80, 127, 205, 117, 85, + 109, 1, 0, 0, 0, 140, 3, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, 184, 0, + 0, 0, 16, 1, 0, 0, 68, 1, 0, 0, 16, 3, 0, 0, 82, 68, 69, 70, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, + 1, 4, 255, 255, 0, 1, 0, 0, 72, 0, 0, 0, 60, 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, 84, 101, 120, 116, 117, 114, 101, 70, 95, 77, 83, 0, 77, + 105, 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 54, 46, 51, 46, + 57, 54, 48, 48, 46, 49, 54, 51, 56, 52, 0, 171, 171, 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 3, 0, + 0, 83, 86, 95, 80, 79, 83, 73, 84, 73, 79, 78, 0, 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 65, 82, 71, 69, 84, 0, 171, + 171, 83, 72, 68, 82, 196, 1, 0, 0, 65, 0, 0, 0, 113, 0, 0, 0, 106, 8, + 0, 1, 88, 32, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, 85, 85, 0, 0, 98, + 16, 0, 3, 50, 16, 16, 0, 1, 0, 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, 0, 2, 4, 0, 0, 0, 61, 16, 0, 7, 50, 0, 16, + 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 70, 126, 16, 0, 0, 0, + 0, 0, 111, 8, 0, 5, 66, 0, 16, 0, 0, 0, 0, 0, 10, 112, 16, 0, 0, + 0, 0, 0, 86, 0, 0, 5, 50, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 56, 0, 0, 7, 50, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, + 0, 0, 0, 0, 0, 70, 16, 16, 0, 1, 0, 0, 0, 28, 0, 0, 5, 50, 0, + 16, 0, 1, 0, 0, 0, 70, 0, 16, 0, 0, 0, 0, 0, 54, 0, 0, 8, 194, + 0, 16, 0, 1, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 8, 242, 0, 16, 0, 2, 0, 0, + 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, + 0, 0, 0, 48, 0, 0, 1, 80, 0, 0, 7, 34, 0, 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, 3, 0, 4, + 3, 26, 0, 16, 0, 0, 0, 0, 0, 46, 0, 0, 9, 242, 0, 16, 0, 3, 0, + 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 7, 242, 0, 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 2, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, 30, 0, 0, + 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, + 0, 0, 1, 0, 0, 0, 22, 0, 0, 1, 111, 0, 0, 5, 18, 0, 16, 0, 0, + 0, 0, 0, 10, 112, 16, 0, 0, 0, 0, 0, 14, 0, 0, 7, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, + 0, 62, 0, 0, 1, 83, 84, 65, 84, 116, 0, 0, 0, 18, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp @@ -1606,10 +1606,38 @@ DXGI_FORMAT_R8G8B8A8_UNORM, GL_RGBA8, Initialize4ComponentData); return info; } + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + { + static constexpr Format info(GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, + angle::FormatID::NONE, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + GL_NONE, + nullptr); + return info; + } + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + { + static constexpr Format info(GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, + angle::FormatID::NONE, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + GL_NONE, + nullptr); + return info; + } case GL_LUMINANCE16F_EXT: { static constexpr Format info(GL_LUMINANCE16F_EXT, angle::FormatID::R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT, @@ -2567,10 +2595,41 @@ DXGI_FORMAT_R8G8B8A8_SNORM, GL_RGBA8_SNORM, nullptr); return info; } + case GL_RGBX8_ANGLEX: + { + if (OnlyFL11_1Plus(deviceCaps)) + { + static constexpr Format info(GL_RGBX8_ANGLEX, + angle::FormatID::R8G8B8X8_UNORM, + DXGI_FORMAT_B8G8R8X8_UNORM, + DXGI_FORMAT_B8G8R8X8_UNORM, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_B8G8R8X8_UNORM, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_B8G8R8X8_UNORM, + GL_RGBX8_ANGLEX, + nullptr); + return info; + } + else + { + static constexpr Format info(GL_RGBX8_ANGLEX, + angle::FormatID::R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_R8G8B8A8_UNORM, + GL_RGBA8, + nullptr); + return info; + } + } case GL_SR8_EXT: { static constexpr Format info(GL_SR8_EXT, angle::FormatID::NONE, DXGI_FORMAT_UNKNOWN, @@ -2581,10 +2640,24 @@ DXGI_FORMAT_UNKNOWN, GL_NONE, nullptr); return info; } + case GL_SRG8_EXT: + { + static constexpr Format info(GL_SRG8_EXT, + angle::FormatID::NONE, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + DXGI_FORMAT_UNKNOWN, + GL_NONE, + nullptr); + return info; + } case GL_SRGB8: { static constexpr Format info(GL_SRGB8, angle::FormatID::R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp @@ -679,15 +679,15 @@ void Blit9::render() { IDirect3DDevice9 *device = mRenderer->getDevice(); - HRESULT hr = device->SetStreamSource(0, mQuadVertexBuffer, 0, 2 * sizeof(float)); - hr = device->SetVertexDeclaration(mQuadVertexDeclaration); + device->SetStreamSource(0, mQuadVertexBuffer, 0, 2 * sizeof(float)); + device->SetVertexDeclaration(mQuadVertexDeclaration); mRenderer->startScene(); - hr = device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); + device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); } void Blit9::saveState() { IDirect3DDevice9 *device = mRenderer->getDevice(); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.h @@ -203,11 +203,12 @@ angle::Result popDebugGroup(const gl::Context *context) override; // State sync with dirty bits. angle::Result syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits, - const gl::State::DirtyBits &bitMask) override; + const gl::State::DirtyBits &bitMask, + gl::Command command) override; // Disjoint timer queries GLint getGPUDisjoint() override; GLint64 getTimestamp() override; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.cpp @@ -400,11 +400,12 @@ return popGroupMarker(); } angle::Result Context9::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits, - const gl::State::DirtyBits &bitMask) + const gl::State::DirtyBits &bitMask, + gl::Command command) { mRenderer->getStateManager()->syncState(mState, dirtyBits); return angle::Result::Continue; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.cpp @@ -209,10 +209,12 @@ destD3DFormatInfo.pixelBytes, 0, destD3DFormatInfo.info().pixelWriteFunction, gl::GetUnsizedFormat(dest->getInternalFormat()), destD3DFormatInfo.info().componentType, sourceRect.width, sourceRect.height, 1, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); + dest->markDirty(); + destSurface->UnlockRect(); sourceSurface->UnlockRect(); return angle::Result::Continue; } diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.h @@ -273,53 +273,61 @@ const gl::Box &sourceBox, const gl::Offset &destOffset, bool unpackFlipY, bool unpackPremultiplyAlpha, bool unpackUnmultiplyAlpha) override; - TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) override; + TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain, + const std::string &label) override; TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, - RenderTargetD3D *renderTargetD3D) override; - TextureStorage *createTextureStorageExternal( - egl::Stream *stream, - const egl::Stream::GLTextureDescription &desc) override; + RenderTargetD3D *renderTargetD3D, + const std::string &label) override; + TextureStorage *createTextureStorageExternal(egl::Stream *stream, + const egl::Stream::GLTextureDescription &desc, + const std::string &label) override; TextureStorage *createTextureStorage2D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly) override; TextureStorage *createTextureStorageCube(GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) override; + bool hintLevelZeroOnly, + const std::string &label) override; TextureStorage *createTextureStorage3D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) override; + int levels, + const std::string &label) override; TextureStorage *createTextureStorage2DArray(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) override; + int levels, + const std::string &label) override; TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) override; + bool fixedSampleLocations, + const std::string &label) override; TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) override; + bool fixedSampleLocations, + const std::string &label) override; // Buffer creation VertexBuffer *createVertexBuffer() override; IndexBuffer *createIndexBuffer() override; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp @@ -594,20 +594,20 @@ outExtensions->image = true; outExtensions->imageBase = true; outExtensions->glTexture2DImage = true; outExtensions->glRenderbufferImage = true; - outExtensions->flexibleSurfaceCompatibility = true; + outExtensions->noConfigContext = true; // Contexts are virtualized so textures and semaphores can be shared globally outExtensions->displayTextureShareGroup = true; outExtensions->displaySemaphoreShareGroup = true; // D3D9 can be used without an output surface outExtensions->surfacelessContext = true; - outExtensions->robustResourceInitialization = true; + outExtensions->robustResourceInitializationANGLE = true; } void Renderer9::startScene() { if (!mSceneStarted) @@ -1017,17 +1017,21 @@ &lodBias, samplerState.getMaxAnisotropy(), baseLevel); mDevice->SetSamplerState(d3dSampler, D3DSAMP_MINFILTER, d3dMinFilter); mDevice->SetSamplerState(d3dSampler, D3DSAMP_MIPFILTER, d3dMipFilter); mDevice->SetSamplerState(d3dSampler, D3DSAMP_MAXMIPLEVEL, baseLevel); mDevice->SetSamplerState(d3dSampler, D3DSAMP_MIPMAPLODBIAS, static_cast(lodBias)); - if (getNativeExtensions().textureFilterAnisotropic) + if (getNativeExtensions().textureFilterAnisotropicEXT) { DWORD maxAnisotropy = std::min(mDeviceCaps.MaxAnisotropy, static_cast(samplerState.getMaxAnisotropy())); mDevice->SetSamplerState(d3dSampler, D3DSAMP_MAXANISOTROPY, maxAnisotropy); } + const bool isSrgb = gl::GetSizedInternalFormatInfo(textureD3D->getBaseLevelInternalFormat()) + .colorEncoding == GL_SRGB; + mDevice->SetSamplerState(d3dSampler, D3DSAMP_SRGBTEXTURE, isSrgb); + ASSERT(texture->getBorderColor().type == angle::ColorGeneric::Type::Float); mDevice->SetSamplerState(d3dSampler, D3DSAMP_BORDERCOLOR, gl_d3d9::ConvertColor(texture->getBorderColor().colorF)); } @@ -1114,10 +1118,13 @@ ASSERT(firstColorAttachment->isAttached()); RenderTarget9 *renderTarget = nullptr; ANGLE_TRY(firstColorAttachment->getRenderTarget(context, firstColorAttachment->getSamples(), &renderTarget)); samples = renderTarget->getSamples(); + + mDevice->SetRenderState(D3DRS_SRGBWRITEENABLE, + renderTarget->getInternalFormat() == GL_SRGB8_ALPHA8); } gl::RasterizerState rasterizer = glState.getRasterizerState(); rasterizer.pointDrawMode = (drawMode == gl::PrimitiveMode::Points); rasterizer.multiSample = (samples != 0); @@ -1268,13 +1275,12 @@ { ANGLE_TRY(getNullColorRenderTarget(context, depthStencilRenderTarget, &colorRenderTarget)); } ASSERT(colorRenderTarget != nullptr); - size_t renderTargetWidth = 0; - size_t renderTargetHeight = 0; - D3DFORMAT renderTargetFormat = D3DFMT_UNKNOWN; + size_t renderTargetWidth = 0; + size_t renderTargetHeight = 0; bool renderTargetChanged = false; unsigned int renderTargetSerial = colorRenderTarget->getSerial(); if (renderTargetSerial != mAppliedRenderTargetSerial) { @@ -1285,11 +1291,10 @@ mDevice->SetRenderTarget(0, renderTargetSurface); SafeRelease(renderTargetSurface); renderTargetWidth = colorRenderTarget->getWidth(); renderTargetHeight = colorRenderTarget->getHeight(); - renderTargetFormat = colorRenderTarget->getD3DFormat(); mAppliedRenderTargetSerial = renderTargetSerial; renderTargetChanged = true; } @@ -2866,56 +2871,62 @@ Image9 *src9 = GetAs(source); return Image9::CopyImage(context, dest9, src9, sourceBox.toRect(), destOffset, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); } -TextureStorage *Renderer9::createTextureStorage2D(SwapChainD3D *swapChain) +TextureStorage *Renderer9::createTextureStorage2D(SwapChainD3D *swapChain, const std::string &label) { SwapChain9 *swapChain9 = GetAs(swapChain); - return new TextureStorage9_2D(this, swapChain9); + return new TextureStorage9_2D(this, swapChain9, label); } TextureStorage *Renderer9::createTextureStorageEGLImage(EGLImageD3D *eglImage, - RenderTargetD3D *renderTargetD3D) + RenderTargetD3D *renderTargetD3D, + const std::string &label) { - return new TextureStorage9_EGLImage(this, eglImage, GetAs(renderTargetD3D)); + return new TextureStorage9_EGLImage(this, eglImage, GetAs(renderTargetD3D), + label); } TextureStorage *Renderer9::createTextureStorageExternal( egl::Stream *stream, - const egl::Stream::GLTextureDescription &desc) + const egl::Stream::GLTextureDescription &desc, + const std::string &label) { UNIMPLEMENTED(); return nullptr; } TextureStorage *Renderer9::createTextureStorage2D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels, + const std::string &label, bool hintLevelZeroOnly) { - return new TextureStorage9_2D(this, internalformat, renderTarget, width, height, levels); + return new TextureStorage9_2D(this, internalformat, renderTarget, width, height, levels, label); } TextureStorage *Renderer9::createTextureStorageCube(GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) + bool hintLevelZeroOnly, + const std::string &label) { return new TextureStorage9_Cube(this, internalformat, renderTarget, size, levels, - hintLevelZeroOnly); + hintLevelZeroOnly, label); } TextureStorage *Renderer9::createTextureStorage3D(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) { // 3D textures are not supported by the D3D9 backend. UNREACHABLE(); return nullptr; @@ -2924,11 +2935,12 @@ TextureStorage *Renderer9::createTextureStorage2DArray(GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, GLsizei depth, - int levels) + int levels, + const std::string &label) { // 2D array textures are not supported by the D3D9 backend. UNREACHABLE(); return nullptr; @@ -2937,11 +2949,12 @@ TextureStorage *Renderer9::createTextureStorage2DMultisample(GLenum internalformat, GLsizei width, GLsizei height, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) { // 2D multisampled textures are not supported by the D3D9 backend. UNREACHABLE(); return nullptr; @@ -2951,11 +2964,12 @@ GLsizei width, GLsizei height, GLsizei depth, int levels, int samples, - bool fixedSampleLocations) + bool fixedSampleLocations, + const std::string &label) { // 2D multisampled textures are not supported by the D3D9 backend. UNREACHABLE(); return nullptr; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h @@ -62,27 +62,28 @@ GLenum mInternalFormat; D3DFORMAT mTextureFormat; Renderer9 *mRenderer; - TextureStorage9(Renderer9 *renderer, DWORD usage); + TextureStorage9(Renderer9 *renderer, DWORD usage, const std::string &label); private: const DWORD mD3DUsage; const D3DPOOL mD3DPool; }; class TextureStorage9_2D : public TextureStorage9 { public: - TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain); + TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain, const std::string &label); TextureStorage9_2D(Renderer9 *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, - int levels); + int levels, + const std::string &label); ~TextureStorage9_2D() override; angle::Result getSurfaceLevel(const gl::Context *context, gl::TextureTarget target, int level, @@ -109,11 +110,14 @@ }; class TextureStorage9_EGLImage final : public TextureStorage9 { public: - TextureStorage9_EGLImage(Renderer9 *renderer, EGLImageD3D *image, RenderTarget9 *renderTarget9); + TextureStorage9_EGLImage(Renderer9 *renderer, + EGLImageD3D *image, + RenderTarget9 *renderTarget9, + const std::string &label); ~TextureStorage9_EGLImage() override; angle::Result getSurfaceLevel(const gl::Context *context, gl::TextureTarget target, int level, @@ -144,11 +148,13 @@ TextureStorage9_Cube(Renderer9 *renderer, GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly); + bool hintLevelZeroOnly, + const std::string &label); + ~TextureStorage9_Cube() override; angle::Result getSurfaceLevel(const gl::Context *context, gl::TextureTarget target, int level, diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp @@ -22,12 +22,13 @@ #include "libANGLE/renderer/d3d/d3d9/formatutils9.h" #include "libANGLE/renderer/d3d/d3d9/renderer9_utils.h" namespace rx { -TextureStorage9::TextureStorage9(Renderer9 *renderer, DWORD usage) - : mTopLevel(0), +TextureStorage9::TextureStorage9(Renderer9 *renderer, DWORD usage, const std::string &label) + : TextureStorage(label), + mTopLevel(0), mMipLevels(0), mTextureWidth(0), mTextureHeight(0), mInternalFormat(GL_NONE), mTextureFormat(D3DFMT_UNKNOWN), @@ -101,12 +102,14 @@ { ANGLE_HR_UNREACHABLE(GetImplAs(context)); return angle::Result::Stop; } -TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain) - : TextureStorage9(renderer, D3DUSAGE_RENDERTARGET) +TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer, + SwapChain9 *swapchain, + const std::string &label) + : TextureStorage9(renderer, D3DUSAGE_RENDERTARGET, label) { IDirect3DTexture9 *surfaceTexture = swapchain->getOffscreenTexture(); mTexture = surfaceTexture; mMipLevels = surfaceTexture->GetLevelCount(); @@ -124,12 +127,13 @@ TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, - int levels) - : TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget)) + int levels, + const std::string &label) + : TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget), label) { mTexture = nullptr; mInternalFormat = internalformat; @@ -283,12 +287,13 @@ return angle::Result::Continue; } TextureStorage9_EGLImage::TextureStorage9_EGLImage(Renderer9 *renderer, EGLImageD3D *image, - RenderTarget9 *renderTarget9) - : TextureStorage9(renderer, D3DUSAGE_RENDERTARGET), mImage(image) + RenderTarget9 *renderTarget9, + const std::string &label) + : TextureStorage9(renderer, D3DUSAGE_RENDERTARGET, label), mImage(image) { mInternalFormat = renderTarget9->getInternalFormat(); mTextureFormat = renderTarget9->getD3DFormat(); mTextureWidth = renderTarget9->getWidth(); mTextureHeight = renderTarget9->getHeight(); @@ -395,12 +400,13 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer9 *renderer, GLenum internalformat, bool renderTarget, int size, int levels, - bool hintLevelZeroOnly) - : TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget)) + bool hintLevelZeroOnly, + const std::string &label) + : TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget), label) { mTexture = nullptr; for (size_t i = 0; i < gl::kCubeFaceCount; ++i) { mRenderTarget[i] = nullptr; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp @@ -142,19 +142,27 @@ InsertD3D9FormatInfo(&map, GL_RGBA4, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadRGBA4ToBGRA8 ); InsertD3D9FormatInfo(&map, GL_RGB5_A1, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadRGB5A1ToBGRA8 ); InsertD3D9FormatInfo(&map, GL_R8_EXT, D3DFMT_X8R8G8B8, D3DFMT_X8R8G8B8, LoadR8ToBGRX8 ); InsertD3D9FormatInfo(&map, GL_RG8_EXT, D3DFMT_X8R8G8B8, D3DFMT_X8R8G8B8, LoadRG8ToBGRX8 ); + InsertD3D9FormatInfo(&map, GL_SRGB8, D3DFMT_X8R8G8B8, D3DFMT_UNKNOWN, LoadRGB8ToBGRX8 ); + InsertD3D9FormatInfo(&map, GL_SRGB8_ALPHA8_EXT, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadRGBA8ToBGRA8 ); + InsertD3D9FormatInfo(&map, GL_BGRA8_EXT, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadToNative ); InsertD3D9FormatInfo(&map, GL_BGRA4_ANGLEX, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadBGRA4ToBGRA8 ); InsertD3D9FormatInfo(&map, GL_BGR5_A1_ANGLEX, D3DFMT_A8R8G8B8, D3DFMT_A8R8G8B8, LoadBGR5A1ToBGRA8 ); InsertD3D9FormatInfo(&map, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, D3DFMT_DXT1, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 8> ); InsertD3D9FormatInfo(&map, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, D3DFMT_DXT1, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 8> ); InsertD3D9FormatInfo(&map, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, D3DFMT_DXT3, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 16> ); InsertD3D9FormatInfo(&map, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, D3DFMT_DXT5, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 16> ); + InsertD3D9FormatInfo(&map, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, D3DFMT_DXT1, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 8> ); + InsertD3D9FormatInfo(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, D3DFMT_DXT1, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 8> ); + InsertD3D9FormatInfo(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, D3DFMT_DXT3, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 16> ); + InsertD3D9FormatInfo(&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, D3DFMT_DXT5, D3DFMT_UNKNOWN, LoadCompressedToNative<4, 4, 1, 16> ); + // These formats require checking if the renderer supports D3DFMT_L8 or D3DFMT_A8L8 and // then changing the format and loading function appropriately. InsertD3D9FormatInfo(&map, GL_LUMINANCE8_EXT, D3DFMT_L8, D3DFMT_UNKNOWN, LoadToNative ); InsertD3D9FormatInfo(&map, GL_LUMINANCE8_ALPHA8_EXT, D3DFMT_A8L8, D3DFMT_UNKNOWN, LoadToNative ); // clang-format on @@ -643,11 +651,10 @@ } } const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, angle::FormatID vertexFormatID) { - static bool initialized = false; static DWORD initializedDeclTypes = 0; static VertexFormat formatConverters[NUM_GL_VERTEX_ATTRIB_TYPES][2][4]; if (initializedDeclTypes != supportedDeclTypes) { const TranslationDescription @@ -672,11 +679,10 @@ formatConverters[i][j][k] = translations[i][j][k].fallbackConversion; } } } } - initialized = true; initializedDeclTypes = supportedDeclTypes; } const gl::VertexFormat &vertexFormat = gl::GetVertexFormatFromID(vertexFormatID); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp @@ -436,10 +436,20 @@ textureCaps.texturable = SUCCEEDED(d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, 0, D3DRTYPE_TEXTURE, d3dFormatInfo.texFormat)) && SUCCEEDED(d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, 0, D3DRTYPE_CUBETEXTURE, d3dFormatInfo.texFormat)); + if (textureCaps.texturable && (formatInfo.colorEncoding == GL_SRGB)) + { + textureCaps.texturable = + SUCCEEDED(d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, + D3DUSAGE_QUERY_SRGBREAD, D3DRTYPE_TEXTURE, + d3dFormatInfo.texFormat)) && + SUCCEEDED(d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, + D3DUSAGE_QUERY_SRGBREAD, D3DRTYPE_CUBETEXTURE, + d3dFormatInfo.texFormat)); + } } textureCaps.filterable = SUCCEEDED( d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, D3DUSAGE_QUERY_FILTER, D3DRTYPE_TEXTURE, d3dFormatInfo.texFormat)); @@ -448,10 +458,16 @@ if (d3dFormatInfo.renderFormat != D3DFMT_UNKNOWN) { textureCaps.textureAttachment = SUCCEEDED( d3d9->CheckDeviceFormat(adapter, deviceType, adapterFormat, D3DUSAGE_RENDERTARGET, D3DRTYPE_TEXTURE, d3dFormatInfo.renderFormat)); + if (textureCaps.textureAttachment && (formatInfo.colorEncoding == GL_SRGB)) + { + textureCaps.textureAttachment = SUCCEEDED(d3d9->CheckDeviceFormat( + adapter, deviceType, adapterFormat, D3DUSAGE_QUERY_SRGBWRITE, D3DRTYPE_TEXTURE, + d3dFormatInfo.renderFormat)); + } if ((formatInfo.depthBits > 0 || formatInfo.stencilBits > 0) && !textureCaps.textureAttachment) { textureCaps.textureAttachment = SUCCEEDED( @@ -651,28 +667,28 @@ // GL extension support extensions->setTextureExtensionSupport(*textureCapsMap); extensions->elementIndexUintOES = deviceCaps.MaxVertexIndex >= (1 << 16); extensions->getProgramBinaryOES = true; - extensions->rgb8rgba8OES = true; - extensions->readFormatBGRA = true; + extensions->rgb8Rgba8OES = true; + extensions->readFormatBgraEXT = true; extensions->pixelBufferObjectNV = false; - extensions->mapBufferOES = false; - extensions->mapBufferRange = false; + extensions->mapbufferOES = false; + extensions->mapBufferRangeEXT = false; // D3D does not allow depth textures to have more than one mipmap level OES_depth_texture // allows for that so we can't implement full support with the D3D9 back end. extensions->depthTextureOES = false; - // textureRG is emulated and not performant. - extensions->textureRG = false; + // textureRgEXT is emulated and not performant. + extensions->textureRgEXT = false; D3DADAPTER_IDENTIFIER9 adapterId = {}; if (SUCCEEDED(d3d9->GetAdapterIdentifier(adapter, 0, &adapterId))) { // ATI cards on XP have problems with non-power-of-two textures. - extensions->textureNPOTOES = + extensions->textureNpotOES = !(deviceCaps.TextureCaps & D3DPTEXTURECAPS_POW2) && !(deviceCaps.TextureCaps & D3DPTEXTURECAPS_CUBEMAP_POW2) && !(deviceCaps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL) && !(!isWindowsVistaOrGreater() && IsAMD(adapterId.VendorId)); @@ -683,73 +699,73 @@ extensions->depthTextureOES = false; } } else { - extensions->textureNPOTOES = false; + extensions->textureNpotOES = false; } - extensions->drawBuffers = false; - extensions->textureStorage = true; + extensions->drawBuffersEXT = false; + extensions->textureStorageEXT = true; // Must support a minimum of 2:1 anisotropy for max anisotropy to be considered supported, per // the spec - extensions->textureFilterAnisotropic = + extensions->textureFilterAnisotropicEXT = (deviceCaps.RasterCaps & D3DPRASTERCAPS_ANISOTROPY) != 0 && deviceCaps.MaxAnisotropy >= 2; - extensions->maxTextureAnisotropy = static_cast(deviceCaps.MaxAnisotropy); + caps->maxTextureAnisotropy = static_cast(deviceCaps.MaxAnisotropy); // Check occlusion query support by trying to create one IDirect3DQuery9 *occlusionQuery = nullptr; - extensions->occlusionQueryBoolean = + extensions->occlusionQueryBooleanEXT = SUCCEEDED(device->CreateQuery(D3DQUERYTYPE_OCCLUSION, &occlusionQuery)) && occlusionQuery; SafeRelease(occlusionQuery); // Check event query support by trying to create one IDirect3DQuery9 *eventQuery = nullptr; extensions->fenceNV = SUCCEEDED(device->CreateQuery(D3DQUERYTYPE_EVENT, &eventQuery)) && eventQuery; SafeRelease(eventQuery); - extensions->disjointTimerQuery = false; - extensions->robustness = true; + extensions->disjointTimerQueryEXT = false; + extensions->robustnessEXT = true; // It seems that only DirectX 10 and higher enforce the well-defined behavior of always // returning zero values when out-of-bounds reads. See // https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness.txt - extensions->robustBufferAccessBehavior = false; - extensions->blendMinMax = true; + extensions->robustBufferAccessBehaviorKHR = false; + extensions->blendMinmaxEXT = true; // Although according to // https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware // D3D9 doesn't have full blending capability for RGBA32F. But turns out it could provide // correct blending result in reality. As a result of some regression reports by client app, we - // decided to turn floatBlend on for D3D9 - extensions->floatBlend = true; - extensions->framebufferBlitANGLE = true; - extensions->framebufferMultisample = true; - extensions->instancedArraysANGLE = deviceCaps.PixelShaderVersion >= D3DPS_VERSION(3, 0); + // decided to turn floatBlendEXT on for D3D9 + extensions->floatBlendEXT = true; + extensions->framebufferBlitANGLE = true; + extensions->framebufferMultisampleANGLE = true; + extensions->instancedArraysANGLE = deviceCaps.PixelShaderVersion >= D3DPS_VERSION(3, 0); // D3D9 requires at least one attribute that has a divisor of 0, which isn't required by the EXT // extension - extensions->instancedArraysEXT = false; - extensions->packReverseRowOrder = true; + extensions->instancedArraysEXT = false; + extensions->packReverseRowOrderANGLE = true; extensions->standardDerivativesOES = (deviceCaps.PS20Caps.Caps & D3DPS20CAPS_GRADIENTINSTRUCTIONS) != 0; - extensions->shaderTextureLOD = true; - extensions->fragDepth = true; - extensions->textureUsage = true; - extensions->translatedShaderSource = true; - extensions->fboRenderMipmapOES = false; - extensions->discardFramebuffer = false; // It would be valid to set this to true, since - // glDiscardFramebufferEXT is just a hint - extensions->colorBufferFloat = false; - extensions->debugMarker = true; - extensions->eglImageOES = true; - extensions->eglImageExternalOES = true; - extensions->unpackSubimage = true; - extensions->packSubimage = true; - extensions->syncQuery = extensions->fenceNV; - extensions->copyTexture = true; + extensions->shaderTextureLodEXT = true; + extensions->fragDepthEXT = true; + extensions->textureUsageANGLE = true; + extensions->translatedShaderSourceANGLE = true; + extensions->fboRenderMipmapOES = false; + extensions->discardFramebufferEXT = false; // It would be valid to set this to true, since + // glDiscardFramebufferEXT is just a hint + extensions->colorBufferFloatEXT = false; + extensions->debugMarkerEXT = true; + extensions->EGLImageOES = true; + extensions->EGLImageExternalOES = true; + extensions->unpackSubimageEXT = true; + extensions->packSubimageNV = true; + extensions->syncQueryCHROMIUM = extensions->fenceNV; + extensions->copyTextureCHROMIUM = true; extensions->textureBorderClampOES = true; - extensions->webglVideoTexture = true; + extensions->videoTextureWEBGL = true; // D3D9 has no concept of separate masks and refs for front and back faces in the depth stencil // state. limitations->noSeparateStencilRefsAndMasks = true; @@ -808,11 +824,10 @@ void InitializeFeatures(angle::FeaturesD3D *features) { ANGLE_FEATURE_CONDITION(features, mrtPerfWorkaround, true); ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUpload, false); - ANGLE_FEATURE_CONDITION(features, setDataFasterThanImageUploadOn128bitFormats, false); ANGLE_FEATURE_CONDITION(features, useInstancedPointSpriteEmulation, false); // TODO(jmadill): Disable workaround when we have a fixed compiler DLL. ANGLE_FEATURE_CONDITION(features, expandIntegerPowExpressions, true); diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.h b/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.h --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.h @@ -8,10 +8,13 @@ #ifndef LIBANGLE_RENDERER_D3D_FORMAT_H_ #define LIBANGLE_RENDERER_D3D_FORMAT_H_ #include "libANGLE/renderer/Format.h" +// We forcibly include the D3D9 header here because this file can be used from 3 different backends. +#include + namespace rx { namespace d3d9 { struct D3DFormat diff --git a/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.h b/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.h --- a/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.h @@ -40,10 +40,11 @@ { ANDROID_DEVICE_ID_UNKNOWN = 0x0, ANDROID_DEVICE_ID_NEXUS5X = 0x4010800, ANDROID_DEVICE_ID_PIXEL2 = 0x5040001, ANDROID_DEVICE_ID_PIXEL1XL = 0x5030004, + ANDROID_DEVICE_ID_PIXEL4 = 0x6040001, ANDROID_DEVICE_ID_SWIFTSHADER = 0xC0DE, }; inline bool IsAMD(uint32_t vendorId) { @@ -118,32 +119,38 @@ inline bool IsPixel2(uint32_t vendorId, uint32_t deviceId) { return IsQualcomm(vendorId) && deviceId == ANDROID_DEVICE_ID_PIXEL2; } +inline bool IsPixel4(uint32_t vendorId, uint32_t deviceId) +{ + return IsQualcomm(vendorId) && deviceId == ANDROID_DEVICE_ID_PIXEL4; +} + inline bool IsSwiftshader(uint32_t vendorId, uint32_t deviceId) { return IsGoogle(vendorId) && deviceId == ANDROID_DEVICE_ID_SWIFTSHADER; } const char *GetVendorString(uint32_t vendorId); -// Intel +// For Linux, Intel graphics driver version is the Mesa version. The version number has three +// fields: major revision, minor revision and release number. +// For Windows, The version number includes 3rd and 4th fields. Please refer the details at +// http://www.intel.com/content/www/us/en/support/graphics-drivers/000005654.html. +// Current implementation only supports Windows. class IntelDriverVersion { public: - // Currently, We only provide the constructor with one parameter. It mainly used in Intel - // version number on windows. If you want to use this class on other platforms, it's easy to - // be extended. - IntelDriverVersion(uint16_t lastPart); + IntelDriverVersion(uint32_t buildNumber); bool operator==(const IntelDriverVersion &); bool operator!=(const IntelDriverVersion &); bool operator<(const IntelDriverVersion &); bool operator>=(const IntelDriverVersion &); private: - uint16_t mVersionPart; + uint32_t mBuildNumber; }; bool IsSandyBridge(uint32_t DeviceId); bool IsIvyBridge(uint32_t DeviceId); bool IsHaswell(uint32_t DeviceId); @@ -180,10 +187,19 @@ #else return false; #endif } +inline bool IsMac() +{ +#if defined(ANGLE_PLATFORM_APPLE) && defined(ANGLE_PLATFORM_MACOS) + return true; +#else + return false; +#endif +} + inline bool IsFuchsia() { #if defined(ANGLE_PLATFORM_FUCHSIA) return true; #else @@ -217,10 +233,12 @@ bool operator<(const OSVersion &a, const OSVersion &b); bool operator>=(const OSVersion &a, const OSVersion &b); OSVersion GetMacOSVersion(); +OSVersion GetiOSVersion(); + OSVersion GetLinuxOSVersion(); inline bool IsAndroid() { #if defined(ANGLE_PLATFORM_ANDROID) diff --git a/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.cpp b/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.cpp @@ -65,40 +65,25 @@ 0x591E, 0x5912, 0x5917, 0x5902, 0x591B, 0x593B, 0x590B, 0x591A, 0x590A, 0x591D, 0x5908, 0x5923, 0x5927}; } // anonymous namespace -IntelDriverVersion::IntelDriverVersion(uint16_t lastPart) : mVersionPart(lastPart) {} +IntelDriverVersion::IntelDriverVersion(uint32_t buildNumber) : mBuildNumber(buildNumber) {} bool IntelDriverVersion::operator==(const IntelDriverVersion &version) { - return mVersionPart == version.mVersionPart; + return mBuildNumber == version.mBuildNumber; } bool IntelDriverVersion::operator!=(const IntelDriverVersion &version) { return !(*this == version); } bool IntelDriverVersion::operator<(const IntelDriverVersion &version) { - // See http://www.intel.com/content/www/us/en/support/graphics-drivers/000005654.html to - // understand the Intel graphics driver version number on Windows. - // mVersionPart1 changes with OS version. mVersionPart2 changes with DirectX version. - // mVersionPart3 stands for release year. mVersionPart4 is driver specific unique version - // number. - // For example: Intel driver version '20.19.15.4539' - // 20 -> windows 10 driver - // 19 -> DirectX 12 first version(12.0) supported - // 15 -> Driver released in 2015 - // 4539 -> Driver specific unique version number - // For linux, Intel graphics driver version is the mesa version. The version number has three - // parts: major revision, minor revision, release number. So, for linux, we need to compare - // three parts. - // Currently, it's only used in windows. So, checking the last part is enough. Once it's needed - // in other platforms, it's easy to be extended. - return mVersionPart < version.mVersionPart; + return mBuildNumber < version.mBuildNumber; } bool IntelDriverVersion::operator>=(const IntelDriverVersion &version) { return !(*this < version); @@ -225,18 +210,26 @@ { return std::tie(a.majorVersion, a.minorVersion, a.patchVersion) >= std::tie(b.majorVersion, b.minorVersion, b.patchVersion); } -#if !defined(ANGLE_PLATFORM_APPLE) +#if !defined(ANGLE_PLATFORM_MACOS) OSVersion GetMacOSVersion() { // Return a default version return OSVersion(0, 0, 0); } #endif +#if !defined(ANGLE_PLATFORM_IOS) +OSVersion GetiOSVersion() +{ + // Return a default version + return OSVersion(0, 0, 0); +} +#endif + #if defined(ANGLE_PLATFORM_LINUX) bool ParseLinuxOSVersion(const char *version, int *major, int *minor, int *patch) { errno = 0; // reset global error flag. char *next; diff --git a/gfx/angle/checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp b/gfx/angle/checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp @@ -1484,10 +1484,24 @@ UNREACHABLE(); return LoadImageFunctionInfo(UnreachableLoadFunction, true); } } +LoadImageFunctionInfo DEPTH_COMPONENT16_to_D32_FLOAT(GLenum type) +{ + switch (type) + { + case GL_UNSIGNED_INT: + return LoadImageFunctionInfo(LoadUNorm32To32F, true); + case GL_UNSIGNED_SHORT: + return LoadImageFunctionInfo(LoadUNorm16To32F, true); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + LoadImageFunctionInfo DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT(GLenum type) { switch (type) { case GL_UNSIGNED_INT: @@ -1508,10 +1522,22 @@ UNREACHABLE(); return LoadImageFunctionInfo(UnreachableLoadFunction, true); } } +LoadImageFunctionInfo DEPTH_COMPONENT24_to_D32_FLOAT(GLenum type) +{ + switch (type) + { + case GL_UNSIGNED_INT: + return LoadImageFunctionInfo(LoadD24S8ToD32F, true); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + LoadImageFunctionInfo DEPTH_COMPONENT24_to_D32_FLOAT_S8X24_UINT(GLenum type) { switch (type) { case GL_UNSIGNED_INT: @@ -1606,23 +1632,23 @@ UNREACHABLE(); return LoadImageFunctionInfo(UnreachableLoadFunction, true); } } -LoadImageFunctionInfo G8_B8R8_2PLANE_420_UNORM_ANGLEX_to_default(GLenum type) +LoadImageFunctionInfo G8_B8R8_2PLANE_420_UNORM_ANGLE_to_default(GLenum type) { switch (type) { case GL_UNSIGNED_BYTE: - return LoadImageFunctionInfo(UnimplementedLoadFunction, true); - default: - UNREACHABLE(); - return LoadImageFunctionInfo(UnreachableLoadFunction, true); - } -} - -LoadImageFunctionInfo G8_B8_R8_3PLANE_420_UNORM_ANGLEX_to_default(GLenum type) + return LoadImageFunctionInfo(LoadYuvToNative, true); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + +LoadImageFunctionInfo G8_B8_R8_3PLANE_420_UNORM_ANGLE_to_default(GLenum type) { switch (type) { case GL_UNSIGNED_BYTE: return LoadImageFunctionInfo(UnimplementedLoadFunction, true); @@ -3112,10 +3138,34 @@ UNREACHABLE(); return LoadImageFunctionInfo(UnreachableLoadFunction, true); } } +LoadImageFunctionInfo RGBX8_ANGLEX_to_R8G8B8A8_UNORM(GLenum type) +{ + switch (type) + { + case GL_UNSIGNED_BYTE: + return LoadImageFunctionInfo(LoadToNative, false); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + +LoadImageFunctionInfo RGBX8_ANGLEX_to_R8G8B8X8_UNORM(GLenum type) +{ + switch (type) + { + case GL_UNSIGNED_BYTE: + return LoadImageFunctionInfo(LoadToNative, false); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + LoadImageFunctionInfo SR8_EXT_to_R8_UNORM_SRGB(GLenum type) { switch (type) { case GL_UNSIGNED_BYTE: @@ -3124,10 +3174,22 @@ UNREACHABLE(); return LoadImageFunctionInfo(UnreachableLoadFunction, true); } } +LoadImageFunctionInfo SRG8_EXT_to_R8G8_UNORM_SRGB(GLenum type) +{ + switch (type) + { + case GL_UNSIGNED_BYTE: + return LoadImageFunctionInfo(LoadToNative, false); + default: + UNREACHABLE(); + return LoadImageFunctionInfo(UnreachableLoadFunction, true); + } +} + LoadImageFunctionInfo SRGB8_to_R8G8B8A8_UNORM_SRGB(GLenum type) { switch (type) { case GL_UNSIGNED_BYTE: @@ -3645,10 +3707,12 @@ { switch (angleFormat) { case FormatID::D16_UNORM: return DEPTH_COMPONENT16_to_D16_UNORM; + case FormatID::D32_FLOAT: + return DEPTH_COMPONENT16_to_D32_FLOAT; default: break; } break; } @@ -3658,10 +3722,12 @@ { case FormatID::D24_UNORM_S8_UINT: return DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT; case FormatID::D24_UNORM_X8_UINT: return DEPTH_COMPONENT24_to_D24_UNORM_X8_UINT; + case FormatID::D32_FLOAT: + return DEPTH_COMPONENT24_to_D32_FLOAT; case FormatID::D32_FLOAT_S8X24_UINT: return DEPTH_COMPONENT24_to_D32_FLOAT_S8X24_UINT; default: break; } @@ -3712,14 +3778,14 @@ default: break; } break; } - case GL_G8_B8R8_2PLANE_420_UNORM_ANGLEX: - return G8_B8R8_2PLANE_420_UNORM_ANGLEX_to_default; - case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLEX: - return G8_B8_R8_3PLANE_420_UNORM_ANGLEX_to_default; + case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE: + return G8_B8R8_2PLANE_420_UNORM_ANGLE_to_default; + case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE: + return G8_B8_R8_3PLANE_420_UNORM_ANGLE_to_default; case GL_LUMINANCE: { switch (angleFormat) { case FormatID::R16G16B16A16_FLOAT: @@ -4524,10 +4590,23 @@ } case GL_RGBA8_SSCALED_ANGLEX: return RGBA8_SSCALED_ANGLEX_to_default; case GL_RGBA8_USCALED_ANGLEX: return RGBA8_USCALED_ANGLEX_to_default; + case GL_RGBX8_ANGLEX: + { + switch (angleFormat) + { + case FormatID::R8G8B8A8_UNORM: + return RGBX8_ANGLEX_to_R8G8B8A8_UNORM; + case FormatID::R8G8B8X8_UNORM: + return RGBX8_ANGLEX_to_R8G8B8X8_UNORM; + default: + break; + } + break; + } case GL_SR8_EXT: { switch (angleFormat) { case FormatID::R8_UNORM_SRGB: @@ -4535,10 +4614,21 @@ default: break; } break; } + case GL_SRG8_EXT: + { + switch (angleFormat) + { + case FormatID::R8G8_UNORM_SRGB: + return SRG8_EXT_to_R8G8_UNORM_SRGB; + default: + break; + } + break; + } case GL_SRGB8: { switch (angleFormat) { case FormatID::R8G8B8A8_UNORM_SRGB: diff --git a/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table.h b/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table.h new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table.h @@ -0,0 +1,21 @@ +// +// Copyright 2021 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. +// +// load_texture_border_functions_table: +// Contains load texture border functions table depending on internal format and ANGLE format. +// + +#ifndef LIBANGLE_RENDERER_LOADTEXTUREBORDERFUNCTIONSTABLE_H_ +#define LIBANGLE_RENDERER_LOADTEXTUREBORDERFUNCTIONSTABLE_H_ + +#include "libANGLE/renderer/Format.h" + +namespace angle +{ +rx::LoadTextureBorderFunctionMap GetLoadTextureBorderFunctionsMap(GLenum internalFormat, + FormatID angleFormat); +} // namespace angle + +#endif // LIBANGLE_RENDERER_LOADTEXTUREBORDERFUNCTIONSTABLE_H_ diff --git a/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table_autogen.cpp b/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table_autogen.cpp new file mode 100644 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/renderer/load_texture_border_functions_table_autogen.cpp @@ -0,0 +1,81 @@ +// GENERATED FILE - DO NOT EDIT. +// Generated by gen_load_texture_border_functions_table.py using data from +// load_texture_border_functions_data.json +// +// Copyright 2021 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. +// +// load_texture_border_functions_table": +// Contains the LoadTextureBorderFunctionMap for texture_format_util.h +// + +#include "image_util/loadtextureborder.h" +#include "libANGLE/renderer/load_texture_border_functions_table.h" + +using namespace rx; + +namespace angle +{ + +namespace +{ + +// ES3 texture border color loading functions vary based on: +// - the GL internal format (supplied to glTex*Image*D) +// - the target DXGI_FORMAT that the image will be loaded into (which is chosen based on the D3D +// device's capabilities) +// This map type determines which loading function to use, based on these two parameters. +// This map only contains formats which need to reorder border color channel explictly. + +LoadTextureBorderFunctionInfo DefaultLoadFunction() +{ + return LoadTextureBorderFunctionInfo(LoadToNative); +} + +LoadTextureBorderFunctionInfo ALPHA8_EXT_to_R8_UNORM() +{ + return LoadTextureBorderFunctionInfo(LoadA8ToR8); +} + +LoadTextureBorderFunctionInfo LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM() +{ + return LoadTextureBorderFunctionInfo(LoadLA8ToR8G8); +} + +} // namespace + +LoadTextureBorderFunctionMap GetLoadTextureBorderFunctionsMap(GLenum internalFormat, + FormatID angleFormat) +{ + switch (internalFormat) + { + case GL_ALPHA8_EXT: + { + switch (angleFormat) + { + case FormatID::R8_UNORM: + return ALPHA8_EXT_to_R8_UNORM; + default: + return DefaultLoadFunction; + } + } + case GL_LUMINANCE8_ALPHA8_EXT: + { + switch (angleFormat) + { + case FormatID::R8G8_UNORM: + return LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM; + default: + return DefaultLoadFunction; + } + } + + default: + // Use LoadToNative for any format that doesn't reorder channels. + return DefaultLoadFunction; + } + +} // GetLoadTextureBorderFunctionsMap + +} // namespace angle diff --git a/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.h b/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.h --- a/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.h +++ b/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.h @@ -14,10 +14,11 @@ #include #include #include "GLSLANG/ShaderLang.h" +#include "common/Color.h" #include "common/angleutils.h" #include "common/utilities.h" #include "libANGLE/angletypes.h" namespace angle @@ -156,14 +157,25 @@ LoadImageFunction loadFunction; bool requiresConversion; }; -using LoadFunctionMap = LoadImageFunctionInfo (*)(GLenum); +using LoadFunctionMap = LoadImageFunctionInfo (*)(GLenum); +using LoadTextureBorderFunction = void (*)(angle::ColorF &mBorderColor); +struct LoadTextureBorderFunctionInfo +{ + LoadTextureBorderFunctionInfo() : loadFunction(nullptr) {} + LoadTextureBorderFunctionInfo(LoadTextureBorderFunction loadFunction) + : loadFunction(loadFunction) + {} + + LoadTextureBorderFunction loadFunction; +}; + +using LoadTextureBorderFunctionMap = LoadTextureBorderFunctionInfo (*)(); bool ShouldUseDebugLayers(const egl::AttributeMap &attribs); -bool ShouldUseVirtualizedContexts(const egl::AttributeMap &attribs, bool defaultValue); void CopyImageCHROMIUM(const uint8_t *sourceData, size_t sourceRowPitch, size_t sourcePixelBytes, size_t sourceDepthPitch, @@ -425,12 +437,12 @@ bool IsOverridableLinearFormat(angle::FormatID formatID); } // namespace rx // MultiDraw macro patterns // These macros are to avoid too much code duplication as we don't want to have if detect for -// hasDrawID/BaseVertex/BaseInstance inside for loop in a multiDraw call Part of these are put in -// the header as we want to share with specialized context impl on some platforms for multidraw +// hasDrawID/BaseVertex/BaseInstance inside for loop in a multiDrawANGLE call Part of these are put +// in the header as we want to share with specialized context impl on some platforms for multidraw #define ANGLE_SET_DRAW_ID_UNIFORM_0(drawID) \ {} #define ANGLE_SET_DRAW_ID_UNIFORM_1(drawID) programObject->setDrawIDUniform(drawID) #define ANGLE_SET_DRAW_ID_UNIFORM(cond) ANGLE_SET_DRAW_ID_UNIFORM_##cond diff --git a/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.cpp b/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.cpp @@ -448,13 +448,10 @@ return nullptr; } bool ShouldUseDebugLayers(const egl::AttributeMap &attribs) { - // (miko): Disabling debug layers fixes flakiness with debug builds. - return false; - EGLAttrib debugSetting = attribs.get(EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE, EGL_DONT_CARE); // Prefer to enable debug layers when available. #if defined(ANGLE_ENABLE_ASSERTS) @@ -462,24 +459,10 @@ #else return (debugSetting == EGL_TRUE); #endif // defined(ANGLE_ENABLE_ASSERTS) } -bool ShouldUseVirtualizedContexts(const egl::AttributeMap &attribs, bool defaultValue) -{ - EGLAttrib virtualizedContextRequest = - attribs.get(EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE, EGL_DONT_CARE); - if (defaultValue) - { - return (virtualizedContextRequest != EGL_FALSE); - } - else - { - return (virtualizedContextRequest == EGL_TRUE); - } -} - void CopyImageCHROMIUM(const uint8_t *sourceData, size_t sourceRowPitch, size_t sourcePixelBytes, size_t sourceDepthPitch, PixelReadFunction pixelReadFunction, @@ -969,14 +952,10 @@ { if (features.getFeatures().find(name) != features.getFeatures().end()) { INFO() << "Feature: " << name << (enabled ? " enabled" : " disabled"); } - else - { - WARN() << "Feature: " << name << " is not a valid feature name."; - } } } void ApplyFeatureOverrides(angle::FeatureSetBase *features, const egl::DisplayState &state) { @@ -1046,10 +1025,11 @@ #define MULTI_DRAW_BLOCK(drawType, instanced, bvbi, hasDrawID, hasBaseVertex, hasBaseInstance) \ for (GLsizei drawID = 0; drawID < drawcount; ++drawID) \ { \ if (ANGLE_NOOP_DRAW(instanced)) \ { \ + ANGLE_TRY(contextImpl->handleNoopDrawEvent()); \ continue; \ } \ ANGLE_SET_DRAW_ID_UNIFORM(hasDrawID)(drawID); \ ANGLE_SET_BASE_VERTEX_UNIFORM(hasBaseVertex)(baseVertices[drawID]); \ ANGLE_SET_BASE_INSTANCE_UNIFORM(hasBaseInstance)(baseInstances[drawID]); \ @@ -1280,10 +1260,12 @@ { switch (formatID) { case angle::FormatID::R8_UNORM: return angle::FormatID::R8_UNORM_SRGB; + case angle::FormatID::R8G8_UNORM: + return angle::FormatID::R8G8_UNORM_SRGB; case angle::FormatID::R8G8B8_UNORM: return angle::FormatID::R8G8B8_UNORM_SRGB; case angle::FormatID::R8G8B8A8_UNORM: return angle::FormatID::R8G8B8A8_UNORM_SRGB; case angle::FormatID::B8G8R8A8_UNORM: @@ -1341,10 +1323,12 @@ { switch (formatID) { case angle::FormatID::R8_UNORM_SRGB: return angle::FormatID::R8_UNORM; + case angle::FormatID::R8G8_UNORM_SRGB: + return angle::FormatID::R8G8_UNORM; case angle::FormatID::R8G8B8_UNORM_SRGB: return angle::FormatID::R8G8B8_UNORM; case angle::FormatID::R8G8B8A8_UNORM_SRGB: return angle::FormatID::R8G8B8A8_UNORM; case angle::FormatID::B8G8R8A8_UNORM_SRGB: diff --git a/gfx/angle/checkout/src/libANGLE/validationEGL.h b/gfx/angle/checkout/src/libANGLE/validationEGL.h --- a/gfx/angle/checkout/src/libANGLE/validationEGL.h +++ b/gfx/angle/checkout/src/libANGLE/validationEGL.h @@ -42,10 +42,11 @@ : eglThread(threadIn), entryPoint(entryPointIn), labeledObject(objectIn) {} // We should remove the message-less overload once we have messages for all EGL errors. void setError(EGLint error) const; + ANGLE_FORMAT_PRINTF(3, 4) void setError(EGLint error, const char *message...) const; Thread *eglThread; const char *entryPoint; const LabeledObject *labeledObject; diff --git a/gfx/angle/checkout/src/libANGLE/validationEGL.cpp b/gfx/angle/checkout/src/libANGLE/validationEGL.cpp --- a/gfx/angle/checkout/src/libANGLE/validationEGL.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationEGL.cpp @@ -257,11 +257,11 @@ return false; } break; default: - val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute: 0x%04" PRIxPTR "X", attribute); return false; } return true; } @@ -693,35 +693,10 @@ { eglHandle = value; } break; - case EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE: - if (!clientExtensions.platformANGLEContextVirtualization) - { - val->setError(EGL_BAD_ATTRIBUTE, - "EGL_ANGLE_platform_angle_context_" - "virtualization extension not active"); - return false; - } - - switch (value) - { - case EGL_DONT_CARE: - case EGL_FALSE: - case EGL_TRUE: - break; - - default: - val->setError(EGL_BAD_ATTRIBUTE, - "Invalid value for " - "EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_" - "ANGLE attrib"); - return false; - } - break; - case EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE: case EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE: luidSpecified = true; break; case EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE: @@ -1058,11 +1033,11 @@ if (!Display::isValidDisplay(display)) { if (val) { - val->setError(EGL_BAD_DISPLAY, "display is not a valid display."); + val->setError(EGL_BAD_DISPLAY, "display is not a valid display: 0x%p", display); } return false; } return true; @@ -1149,47 +1124,44 @@ } val->setError(EGL_BAD_MATCH, "Context with no config is not supported."); return false; } - if (!surface->flexibleSurfaceCompatibilityRequested()) - { - // Config compatibility is defined in section 2.2 of the EGL 1.5 spec - - bool colorBufferCompat = surfaceConfig->colorBufferType == contextConfig->colorBufferType; - if (!colorBufferCompat) - { - val->setError(EGL_BAD_MATCH, "Color buffer types are not compatible."); - return false; - } - - bool colorCompat = surfaceConfig->redSize == contextConfig->redSize && - surfaceConfig->greenSize == contextConfig->greenSize && - surfaceConfig->blueSize == contextConfig->blueSize && - surfaceConfig->alphaSize == contextConfig->alphaSize && - surfaceConfig->luminanceSize == contextConfig->luminanceSize; - if (!colorCompat) - { - val->setError(EGL_BAD_MATCH, "Color buffer sizes are not compatible."); - return false; - } - - bool componentTypeCompat = - surfaceConfig->colorComponentType == contextConfig->colorComponentType; - if (!componentTypeCompat) - { - val->setError(EGL_BAD_MATCH, "Color buffer component types are not compatible."); - return false; - } - - bool dsCompat = surfaceConfig->depthSize == contextConfig->depthSize && - surfaceConfig->stencilSize == contextConfig->stencilSize; - if (!dsCompat) - { - val->setError(EGL_BAD_MATCH, "Depth-stencil buffer types are not compatible."); - return false; - } + // Config compatibility is defined in section 2.2 of the EGL 1.5 spec + + bool colorBufferCompat = surfaceConfig->colorBufferType == contextConfig->colorBufferType; + if (!colorBufferCompat) + { + val->setError(EGL_BAD_MATCH, "Color buffer types are not compatible."); + return false; + } + + bool colorCompat = surfaceConfig->redSize == contextConfig->redSize && + surfaceConfig->greenSize == contextConfig->greenSize && + surfaceConfig->blueSize == contextConfig->blueSize && + surfaceConfig->alphaSize == contextConfig->alphaSize && + surfaceConfig->luminanceSize == contextConfig->luminanceSize; + if (!colorCompat) + { + val->setError(EGL_BAD_MATCH, "Color buffer sizes are not compatible."); + return false; + } + + bool componentTypeCompat = + surfaceConfig->colorComponentType == contextConfig->colorComponentType; + if (!componentTypeCompat) + { + val->setError(EGL_BAD_MATCH, "Color buffer component types are not compatible."); + return false; + } + + bool dsCompat = surfaceConfig->depthSize == contextConfig->depthSize && + surfaceConfig->stencilSize == contextConfig->stencilSize; + if (!dsCompat) + { + val->setError(EGL_BAD_MATCH, "Depth-stencil buffer types are not compatible."); + return false; } bool surfaceTypeCompat = (surfaceConfig->surfaceType & contextConfig->surfaceType) != 0; if (!surfaceTypeCompat) { @@ -1233,11 +1205,11 @@ return false; } ANGLE_VALIDATION_TRY(ValidateContext(val, currentDisplay, currentContext)); - if (!currentContext->getExtensions().eglSyncOES) + if (!currentContext->getExtensions().EGLSyncOES) { val->setError(EGL_BAD_MATCH, "EGL_SYNC_FENCE_KHR cannot be used without " "GL_OES_EGL_sync support."); return false; @@ -1265,11 +1237,11 @@ return false; } ANGLE_VALIDATION_TRY(ValidateContext(val, currentDisplay, currentContext)); - if (!currentContext->getExtensions().eglSyncOES) + if (!currentContext->getExtensions().EGLSyncOES) { val->setError(EGL_BAD_MATCH, "EGL_SYNC_FENCE_KHR cannot be used without " "GL_OES_EGL_sync support."); return false; @@ -1821,11 +1793,11 @@ return false; } break; case EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE: - if (!display->getExtensions().programCacheControl) + if (!display->getExtensions().programCacheControlANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "Attribute EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE " "requires EGL_ANGLE_program_cache_control."); return false; @@ -1838,11 +1810,11 @@ return false; } break; case EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - if (!display->getExtensions().robustResourceInitialization) + if (!display->getExtensions().robustResourceInitializationANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "Attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE " "requires EGL_ANGLE_robust_resource_initialization."); return false; @@ -1987,12 +1959,40 @@ "EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE must " "be either EGL_TRUE or EGL_FALSE."); return false; } break; + + case EGL_PROTECTED_CONTENT_EXT: + if (!display->getExtensions().protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + + case EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE: + if (!display->getExtensions().contextVirtualizationANGLE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE requires " + "extension EGL_ANGLE_context_virtualization."); + return false; + } + break; + default: - val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute: 0x%04" PRIxPTR "X", attribute); return false; } } switch (clientMajorVersion) @@ -2043,18 +2043,22 @@ } if (display->getMaxSupportedESVersion() < gl::Version(static_cast(clientMajorVersion), static_cast(clientMinorVersion))) { - val->setError(EGL_BAD_ATTRIBUTE, "Requested GLES version is not supported."); + gl::Version max = display->getMaxSupportedESVersion(); + val->setError(EGL_BAD_ATTRIBUTE, + "Requested GLES version (%" PRIxPTR ".%" PRIxPTR + ") is greater than " + "max supported (%d, %d).", + clientMajorVersion, clientMinorVersion, max.major, max.minor); return false; } break; default: val->setError(EGL_BAD_ATTRIBUTE); return false; - break; } // Note: EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR does not apply to ES const EGLint validContextFlags = (EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR); @@ -2097,15 +2101,14 @@ return false; } const DisplayExtensions &displayExtensions = display->getExtensions(); - for (AttributeMap::const_iterator attributeIter = attributes.begin(); - attributeIter != attributes.end(); attributeIter++) - { - EGLAttrib attribute = attributeIter->first; - EGLAttrib value = attributeIter->second; + for (const auto &attributeIter : attributes) + { + EGLAttrib attribute = attributeIter.first; + EGLAttrib value = attributeIter.second; switch (attribute) { case EGL_RENDER_BUFFER: switch (value) @@ -2127,18 +2130,10 @@ val->setError(EGL_BAD_ATTRIBUTE); return false; } break; - case EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE: - if (!displayExtensions.flexibleSurfaceCompatibility) - { - val->setError(EGL_BAD_ATTRIBUTE); - return false; - } - break; - case EGL_WIDTH: case EGL_HEIGHT: if (!displayExtensions.windowFixedSize) { val->setError(EGL_BAD_ATTRIBUTE); @@ -2187,11 +2182,11 @@ return false; } break; case EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - if (!display->getExtensions().robustResourceInitialization) + if (!display->getExtensions().robustResourceInitializationANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "Attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE " "requires EGL_ANGLE_robust_resource_initialization."); return false; @@ -2213,16 +2208,58 @@ "EGL_ANGLE_ggp_stream_descriptor."); return false; } break; + case EGL_PROTECTED_CONTENT_EXT: + if (!displayExtensions.protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + + case EGL_SWAP_INTERVAL_ANGLE: + if (!displayExtensions.createSurfaceSwapIntervalANGLE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_SWAP_INTERVAL_ANGLE requires " + "extension EGL_ANGLE_create_surface_swap_interval."); + return false; + } + if (value < config->minSwapInterval || value > config->maxSwapInterval) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_SWAP_INTERVAL_ANGLE must " + "be within the EGLConfig min and max swap intervals."); + return false; + } + break; + default: val->setError(EGL_BAD_ATTRIBUTE); return false; } } + if ((config->surfaceType & EGL_MUTABLE_RENDER_BUFFER_BIT_KHR) != 0 && + !displayExtensions.mutableRenderBufferKHR) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_MUTABLE_RENDER_BUFFER_BIT_KHR requires EGL_KHR_mutable_render_buffer."); + return false; + } + if (Display::hasExistingWindowSurface(window)) { val->setError(EGL_BAD_ALLOC); return false; } @@ -2237,15 +2274,14 @@ { ANGLE_VALIDATION_TRY(ValidateConfig(val, display, config)); const DisplayExtensions &displayExtensions = display->getExtensions(); - for (AttributeMap::const_iterator attributeIter = attributes.begin(); - attributeIter != attributes.end(); attributeIter++) - { - EGLAttrib attribute = attributeIter->first; - EGLAttrib value = attributeIter->second; + for (const auto &attributeIter : attributes) + { + EGLAttrib attribute = attributeIter.first; + EGLAttrib value = attributeIter.second; switch (attribute) { case EGL_WIDTH: case EGL_HEIGHT: @@ -2295,23 +2331,12 @@ break; case EGL_VG_ALPHA_FORMAT: break; - case EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE: - if (!displayExtensions.flexibleSurfaceCompatibility) - { - val->setError( - EGL_BAD_ATTRIBUTE, - "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE cannot be used " - "without EGL_ANGLE_flexible_surface_compatibility support."); - return false; - } - break; - case EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - if (!display->getExtensions().robustResourceInitialization) + if (!displayExtensions.robustResourceInitializationANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "Attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE " "requires EGL_ANGLE_robust_resource_initialization."); return false; @@ -2323,17 +2348,34 @@ "either EGL_TRUE or EGL_FALSE."); return false; } break; + case EGL_PROTECTED_CONTENT_EXT: + if (!displayExtensions.protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + default: val->setError(EGL_BAD_ATTRIBUTE); return false; } } - if (!(config->surfaceType & EGL_PBUFFER_BIT)) + if ((config->surfaceType & EGL_PBUFFER_BIT) == 0) { val->setError(EGL_BAD_MATCH); return false; } @@ -2502,21 +2544,10 @@ break; case EGL_MIPMAP_TEXTURE: break; - case EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE: - if (!displayExtensions.flexibleSurfaceCompatibility) - { - val->setError( - EGL_BAD_ATTRIBUTE, - "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE cannot be used " - "without EGL_ANGLE_flexible_surface_compatibility support."); - return false; - } - break; - case EGL_IOSURFACE_PLANE_ANGLE: if (buftype != EGL_IOSURFACE_ANGLE) { val->setError(EGL_BAD_ATTRIBUTE, " doesn't support iosurface plane"); return false; @@ -2571,10 +2602,27 @@ val->setError(EGL_BAD_ATTRIBUTE, "Texture offset cannot be negative"); return false; } break; + case EGL_PROTECTED_CONTENT_EXT: + if (!displayExtensions.protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + default: val->setError(EGL_BAD_ATTRIBUTE); return false; } } @@ -2737,12 +2785,29 @@ val->setError(EGL_BAD_ATTRIBUTE, "EGL_NOK_texture_from_pixmap is not enabled."); return false; } break; + case EGL_PROTECTED_CONTENT_EXT: + if (!displayExtensions.protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + default: - val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute"); + val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute: 0x%04" PRIxPTR "X", attribute); return false; } } if (!(config->surfaceType & EGL_PIXMAP_BIT)) @@ -3083,12 +3148,29 @@ "EGL_EXT_image_dma_buf_import_modifiers support."); return false; } break; + case EGL_PROTECTED_CONTENT_EXT: + if (!displayExtensions.protectedContentEXT) + { + val->setError(EGL_BAD_ATTRIBUTE, + "Attribute EGL_PROTECTED_CONTEXT_EXT requires " + "extension EGL_EXT_protected_content."); + return false; + } + if (value != EGL_TRUE && value != EGL_FALSE) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_PROTECTED_CONTENT_EXT must " + "be either EGL_TRUE or EGL_FALSE."); + return false; + } + break; + default: - val->setError(EGL_BAD_PARAMETER, "invalid attribute: 0x%X", attribute); + val->setError(EGL_BAD_PARAMETER, "invalid attribute: 0x%04" PRIxPTR "X", attribute); return false; } } switch (target) @@ -3130,10 +3212,20 @@ val->setError(EGL_BAD_PARAMETER, "target 2D texture does not have a valid size at specified level."); return false; } + bool protectedContentAttrib = + (attributes.getAsInt(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE) != EGL_FALSE); + if (protectedContentAttrib != texture->hasProtectedContent()) + { + val->setError(EGL_BAD_PARAMETER, + "EGL_PROTECTED_CONTENT_EXT attribute does not match protected state " + "of target."); + return false; + } + ANGLE_VALIDATION_TRY(ValidateCreateImageMipLevelCommon(val, context, texture, level)); } break; case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X: @@ -3191,10 +3283,20 @@ "if level is zero and the texture is incomplete, " "it must have all of its faces specified at level " "zero."); return false; } + + bool protectedContentAttrib = + (attributes.getAsInt(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE) != EGL_FALSE); + if (protectedContentAttrib != texture->hasProtectedContent()) + { + val->setError(EGL_BAD_PARAMETER, + "EGL_PROTECTED_CONTENT_EXT attribute does not match protected state " + "of target."); + return false; + } } break; case EGL_GL_TEXTURE_3D: { @@ -3245,10 +3347,20 @@ "for the specified Z offset at the specified " "level."); return false; } + bool protectedContentAttrib = + (attributes.getAsInt(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE) != EGL_FALSE); + if (protectedContentAttrib != texture->hasProtectedContent()) + { + val->setError(EGL_BAD_PARAMETER, + "EGL_PROTECTED_CONTENT_EXT attribute does not match protected state " + "of target."); + return false; + } + ANGLE_VALIDATION_TRY(ValidateCreateImageMipLevelCommon(val, context, texture, level)); } break; case EGL_GL_RENDERBUFFER: @@ -3286,10 +3398,20 @@ if (renderbuffer->getSamples() > 0) { val->setError(EGL_BAD_PARAMETER, "target renderbuffer cannot be multisampled."); return false; } + + bool protectedContentAttrib = + (attributes.getAsInt(EGL_PROTECTED_CONTENT_EXT, EGL_FALSE) != EGL_FALSE); + if (protectedContentAttrib != renderbuffer->hasProtectedContent()) + { + val->setError(EGL_BAD_ACCESS, + "EGL_PROTECTED_CONTENT_EXT attribute does not match protected state " + "of target."); + return false; + } } break; case EGL_NATIVE_BUFFER_ANDROID: { @@ -3609,11 +3731,11 @@ { val->setError(EGL_BAD_MATCH, "No context is current."); return false; } - if (!context->getExtensions().eglSyncOES) + if (!context->getExtensions().EGLSyncOES) { val->setError(EGL_BAD_MATCH, "Server-side waits cannot be performed without " "GL_OES_EGL_sync support."); return false; @@ -3774,11 +3896,11 @@ { val->setError(EGL_BAD_ACCESS, "Stream consumer extension not active"); return false; } - if (!context->getExtensions().eglStreamConsumerExternalNV) + if (!context->getExtensions().EGLStreamConsumerExternalNV) { val->setError(EGL_BAD_ACCESS, "EGL stream consumer external GL extension not enabled"); return false; } @@ -3928,11 +4050,11 @@ ANGLE_VALIDATION_TRY(ValidateContext(val, display, context)); // Although technically not a requirement in spec, the context needs to be checked for support // for external textures or future logic will cause assertations. This extension is also // effectively useless without external textures. - if (!context->getExtensions().eglStreamConsumerExternalNV) + if (!context->getExtensions().EGLStreamConsumerExternalNV) { val->setError(EGL_BAD_ACCESS, "EGL stream consumer external GL extension not enabled"); return false; } @@ -4657,11 +4779,11 @@ const Display *display, EGLenum attrib) { ANGLE_VALIDATION_TRY(ValidateDisplay(val, display)); - if (!display->getExtensions().programCacheControl) + if (!display->getExtensions().programCacheControlANGLE) { val->setError(EGL_BAD_ACCESS, "Extension not supported"); return false; } @@ -4687,11 +4809,11 @@ const void *binary, const EGLint *binarysize) { ANGLE_VALIDATION_TRY(ValidateDisplay(val, display)); - if (!display->getExtensions().programCacheControl) + if (!display->getExtensions().programCacheControlANGLE) { val->setError(EGL_BAD_ACCESS, "Extension not supported"); return false; } @@ -4729,11 +4851,11 @@ const void *binary, EGLint binarysize) { ANGLE_VALIDATION_TRY(ValidateDisplay(val, display)); - if (!display->getExtensions().programCacheControl) + if (!display->getExtensions().programCacheControlANGLE) { val->setError(EGL_BAD_ACCESS, "Extension not supported"); return false; } @@ -4764,11 +4886,11 @@ EGLint limit, EGLint mode) { ANGLE_VALIDATION_TRY(ValidateDisplay(val, display)); - if (!display->getExtensions().programCacheControl) + if (!display->getExtensions().programCacheControlANGLE) { val->setError(EGL_BAD_ACCESS, "Extension not supported"); return false; } @@ -4890,12 +5012,37 @@ val->setError(EGL_BAD_ATTRIBUTE, "Invalid value."); return false; } break; + case EGL_RENDER_BUFFER: + if (!display->getExtensions().mutableRenderBufferKHR) + { + val->setError( + EGL_BAD_ATTRIBUTE, + "Attribute EGL_RENDER_BUFFER requires EGL_KHR_mutable_render_buffer."); + return false; + } + + if (value != EGL_BACK_BUFFER && value != EGL_SINGLE_BUFFER) + { + val->setError(EGL_BAD_ATTRIBUTE, + "EGL_RENDER_BUFFER must be EGL_BACK_BUFFER or EGL_SINGLE_BUFFER."); + return false; + } + + if ((surface->getConfig()->surfaceType & EGL_MUTABLE_RENDER_BUFFER_BIT_KHR) == 0) + { + val->setError(EGL_BAD_MATCH, + "EGL_RENDER_BUFFER requires the surface type bit " + "EGL_MUTABLE_RENDER_BUFFER_BIT_KHR."); + return false; + } + break; + default: - val->setError(EGL_BAD_ATTRIBUTE, "Invalid surface attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Invalid surface attribute: 0x%04X", attribute); return false; } return true; } @@ -4954,20 +5101,10 @@ "EGL_ANGLE_window_fixed_size support."); return false; } break; - case EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE: - if (!display->getExtensions().flexibleSurfaceCompatibility) - { - val->setError(EGL_BAD_ATTRIBUTE, - "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE cannot be " - "used without EGL_ANGLE_flexible_surface_compatibility support."); - return false; - } - break; - case EGL_SURFACE_ORIENTATION_ANGLE: if (!display->getExtensions().surfaceOrientation) { val->setError(EGL_BAD_ATTRIBUTE, "EGL_SURFACE_ORIENTATION_ANGLE cannot be " @@ -4987,11 +5124,11 @@ return false; } break; case EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - if (!display->getExtensions().robustResourceInitialization) + if (!display->getExtensions().robustResourceInitializationANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE cannot be " "used without EGL_ANGLE_robust_resource_initialization " "support."); @@ -5029,11 +5166,11 @@ } } break; default: - val->setError(EGL_BAD_ATTRIBUTE, "Invalid surface attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Invalid surface attribute: 0x%04X", attribute); return false; } return true; } @@ -5053,11 +5190,11 @@ case EGL_CONTEXT_CLIENT_VERSION: case EGL_RENDER_BUFFER: break; case EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - if (!display->getExtensions().robustResourceInitialization) + if (!display->getExtensions().robustResourceInitializationANGLE) { val->setError(EGL_BAD_ATTRIBUTE, "EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE cannot be " "used without EGL_ANGLE_robust_resource_initialization " "support."); @@ -5074,11 +5211,11 @@ return false; } break; default: - val->setError(EGL_BAD_ATTRIBUTE, "Invalid context attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Invalid context attribute: 0x%04X", attribute); return false; } return true; } @@ -5132,11 +5269,11 @@ case EGL_DEBUG_MSG_INFO_KHR: case EGL_DEBUG_CALLBACK_KHR: break; default: - val->setError(EGL_BAD_ATTRIBUTE, "unknown attribute."); + val->setError(EGL_BAD_ATTRIBUTE, "Unknown attribute: 0x%04X", attribute); return false; } return true; } @@ -5674,10 +5811,21 @@ { val->setError(EGL_BAD_ATTRIBUTE); return false; } break; + case EGL_VULKAN_DEVICE_ANGLE: + case EGL_VULKAN_EXTENSIONS_ANGLE: + case EGL_VULKAN_PHYSICAL_DEVICE_ANGLE: + case EGL_VULKAN_QUEUE_ANGLE: + case EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE: + if (!device->getExtensions().deviceVulkan) + { + val->setError(EGL_BAD_ATTRIBUTE); + return false; + } + break; case EGL_CGL_CONTEXT_ANGLE: case EGL_CGL_PIXEL_FORMAT_ANGLE: if (!device->getExtensions().deviceCGL) { val->setError(EGL_BAD_ATTRIBUTE); diff --git a/gfx/angle/checkout/src/libANGLE/validationES.h b/gfx/angle/checkout/src/libANGLE/validationES.h --- a/gfx/angle/checkout/src/libANGLE/validationES.h +++ b/gfx/angle/checkout/src/libANGLE/validationES.h @@ -46,10 +46,11 @@ bool ValidTexture3DDestinationTarget(const Context *context, TextureTarget target); bool ValidTexLevelDestinationTarget(const Context *context, TextureType type); bool ValidFramebufferTarget(const Context *context, GLenum target); bool ValidMipLevel(const Context *context, TextureType type, GLint level); bool ValidImageSizeParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLint level, GLsizei width, GLsizei height, GLsizei depth, @@ -70,10 +71,11 @@ GLsizei depth, size_t textureWidth, size_t textureHeight, size_t textureDepth); bool ValidImageDataSize(const Context *context, + angle::EntryPoint entryPoint, TextureType texType, GLsizei width, GLsizei height, GLsizei depth, GLenum format, @@ -82,29 +84,33 @@ GLsizei imageSize); bool ValidQueryType(const Context *context, QueryType queryType); bool ValidateWebGLVertexAttribPointer(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType type, GLboolean normalized, GLsizei stride, const void *ptr, bool pureInteger); // Returns valid program if id is a valid program name // Errors INVALID_OPERATION if valid shader is given and returns NULL // Errors INVALID_VALUE otherwise and returns NULL -Program *GetValidProgram(const Context *context, ShaderProgramID id); +Program *GetValidProgram(const Context *context, angle::EntryPoint entryPoint, ShaderProgramID id); // Returns valid shader if id is a valid shader name // Errors INVALID_OPERATION if valid program is given and returns NULL // Errors INVALID_VALUE otherwise and returns NULL -Shader *GetValidShader(const Context *context, ShaderProgramID id); +Shader *GetValidShader(const Context *context, angle::EntryPoint entryPoint, ShaderProgramID id); -bool ValidateAttachmentTarget(const Context *context, GLenum attachment); +bool ValidateAttachmentTarget(const Context *context, + angle::EntryPoint entryPoint, + GLenum attachment); bool ValidateBlitFramebufferParameters(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -112,34 +118,44 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -bool ValidateBindFramebufferBase(const Context *context, GLenum target, FramebufferID framebuffer); +bool ValidateBindFramebufferBase(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + FramebufferID framebuffer); bool ValidateBindRenderbufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, RenderbufferID renderbuffer); bool ValidateFramebufferRenderbufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbuffer); bool ValidateFramebufferTextureBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level); -bool ValidateGenerateMipmapBase(const Context *context, TextureType target); +bool ValidateGenerateMipmapBase(const Context *context, + angle::EntryPoint entryPoint, + TextureType target); bool ValidateRenderbufferStorageParametersBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); bool ValidatePixelPack(const Context *context, + angle::EntryPoint entryPoint, GLenum format, GLenum type, GLint x, GLint y, GLsizei width, @@ -147,10 +163,11 @@ GLsizei bufSize, GLsizei *length, const void *pixels); bool ValidateReadPixelsBase(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -159,10 +176,11 @@ GLsizei *length, GLsizei *columns, GLsizei *rows, const void *pixels); bool ValidateReadPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -171,19 +189,21 @@ const GLsizei *length, const GLsizei *columns, const GLsizei *rows, const void *pixels); bool ValidateReadnPixelsEXT(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateReadnPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -192,140 +212,184 @@ const GLsizei *length, const GLsizei *columns, const GLsizei *rows, const void *data); -bool ValidateGenQueriesEXT(const Context *context, GLsizei n, const QueryID *ids); -bool ValidateDeleteQueriesEXT(const Context *context, GLsizei n, const QueryID *ids); -bool ValidateIsQueryEXT(const Context *context, QueryID id); -bool ValidateBeginQueryBase(const Context *context, QueryType target, QueryID id); -bool ValidateBeginQueryEXT(const Context *context, QueryType target, QueryID id); -bool ValidateEndQueryBase(const Context *context, QueryType target); -bool ValidateEndQueryEXT(const Context *context, QueryType target); -bool ValidateQueryCounterEXT(const Context *context, QueryID id, QueryType target); +bool ValidateGenQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *ids); +bool ValidateDeleteQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *ids); +bool ValidateIsQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryID id); +bool ValidateBeginQueryBase(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + QueryID id); +bool ValidateBeginQueryEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + QueryID id); +bool ValidateEndQueryBase(const Context *context, angle::EntryPoint entryPoint, QueryType target); +bool ValidateEndQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryType target); +bool ValidateQueryCounterEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryID id, + QueryType target); bool ValidateGetQueryivBase(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, GLsizei *numParams); bool ValidateGetQueryivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, const GLint *params); bool ValidateGetQueryivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetQueryObjectValueBase(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei *numParams); bool ValidateGetQueryObjectivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLint *params); bool ValidateGetQueryObjectivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetQueryObjectuivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLuint *params); bool ValidateGetQueryObjectuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetQueryObjecti64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLint64 *params); bool ValidateGetQueryObjecti64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, GLint64 *params); bool ValidateGetQueryObjectui64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLuint64 *params); bool ValidateGetQueryObjectui64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, GLuint64 *params); bool ValidateUniformCommonBase(const Context *context, + angle::EntryPoint entryPoint, const Program *program, UniformLocation location, GLsizei count, const LinkedUniform **uniformOut); bool ValidateUniform1ivValue(const Context *context, + angle::EntryPoint entryPoint, GLenum uniformType, GLsizei count, const GLint *value); -ANGLE_INLINE bool ValidateUniformValue(const Context *context, GLenum valueType, GLenum uniformType) +ANGLE_INLINE bool ValidateUniformValue(const Context *context, + angle::EntryPoint entryPoint, + GLenum valueType, + GLenum uniformType) { // Check that the value type is compatible with uniform type. // Do the cheaper test first, for a little extra speed. if (valueType != uniformType && VariableBoolVectorType(valueType) != uniformType) { - context->validationError(GL_INVALID_OPERATION, err::kUniformSizeMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kUniformSizeMismatch); return false; } return true; } -bool ValidateUniformMatrixValue(const Context *context, GLenum valueType, GLenum uniformType); +bool ValidateUniformMatrixValue(const Context *context, + angle::EntryPoint entryPoint, + GLenum valueType, + GLenum uniformType); bool ValidateUniform(const Context *context, + angle::EntryPoint entryPoint, GLenum uniformType, UniformLocation location, GLsizei count); bool ValidateUniformMatrix(const Context *context, + angle::EntryPoint entryPoint, GLenum matrixType, UniformLocation location, GLsizei count, GLboolean transpose); bool ValidateGetBooleanvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLboolean *params); bool ValidateGetFloatvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateStateQuery(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLenum *nativeType, unsigned int *numParams); bool ValidateGetIntegervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *data); bool ValidateGetInteger64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, GLint64 *data); bool ValidateRobustStateQuery(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, GLenum *nativeType, unsigned int *numParams); bool ValidateCopyImageSubDataBase(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -339,10 +403,11 @@ GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); bool ValidateCopyTexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -353,14 +418,16 @@ GLsizei width, GLsizei height, GLint border, Format *textureFormatOut); -void RecordDrawModeError(const Context *context, PrimitiveMode mode); +void RecordDrawModeError(const Context *context, angle::EntryPoint entryPoint, PrimitiveMode mode); const char *ValidateDrawElementsStates(const Context *context); -ANGLE_INLINE bool ValidateDrawBase(const Context *context, PrimitiveMode mode) +ANGLE_INLINE bool ValidateDrawBase(const Context *context, + angle::EntryPoint entryPoint, + PrimitiveMode mode) { intptr_t drawStatesError = context->getStateCache().getBasicDrawStatesError(context); if (drawStatesError) { const char *errorMessage = reinterpret_cast(drawStatesError); @@ -368,246 +435,293 @@ // All errors from ValidateDrawStates should return INVALID_OPERATION except Framebuffer // Incomplete. bool isFramebufferIncomplete = strcmp(errorMessage, err::kDrawFramebufferIncomplete) == 0; GLenum errorCode = isFramebufferIncomplete ? GL_INVALID_FRAMEBUFFER_OPERATION : GL_INVALID_OPERATION; - context->validationError(errorCode, errorMessage); + context->validationError(entryPoint, errorCode, errorMessage); return false; } if (!context->getStateCache().isValidDrawMode(mode)) { - RecordDrawModeError(context, mode); + RecordDrawModeError(context, entryPoint, mode); return false; } return true; } bool ValidateDrawArraysInstancedBase(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount); bool ValidateDrawArraysInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount); bool ValidateDrawArraysInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount); bool ValidateDrawElementsInstancedBase(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount); bool ValidateDrawElementsInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount); bool ValidateDrawElementsInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount); -bool ValidateDrawInstancedANGLE(const Context *context); +bool ValidateDrawInstancedANGLE(const Context *context, angle::EntryPoint entryPoint); bool ValidateGetUniformBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location); bool ValidateGetnUniformfvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLfloat *params); bool ValidateGetnUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetnUniformivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLint *params); bool ValidateGetnUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetnUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateDiscardFramebufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments, bool defaultFramebuffer); -bool ValidateInsertEventMarkerEXT(const Context *context, GLsizei length, const char *marker); -bool ValidatePushGroupMarkerEXT(const Context *context, GLsizei length, const char *marker); +bool ValidateInsertEventMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const char *marker); +bool ValidatePushGroupMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const char *marker); bool ValidateEGLImageTargetTexture2DOES(const Context *context, + angle::EntryPoint entryPoint, TextureType type, GLeglImageOES image); bool ValidateEGLImageTargetRenderbufferStorageOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLeglImageOES image); -bool ValidateBindVertexArrayBase(const Context *context, VertexArrayID array); - bool ValidateProgramBinaryBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum binaryFormat, const void *binary, GLint length); bool ValidateGetProgramBinaryBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary); -bool ValidateDrawBuffersBase(const Context *context, GLsizei n, const GLenum *bufs); +bool ValidateDrawBuffersBase(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs); bool ValidateGetBufferPointervBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, GLsizei *length, void *const *params); -bool ValidateUnmapBufferBase(const Context *context, BufferBinding target); +bool ValidateUnmapBufferBase(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target); bool ValidateMapBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length, GLbitfield access); bool ValidateFlushMappedBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length); -bool ValidateGenOrDelete(const Context *context, GLint n); +bool ValidateGenOrDelete(const Context *context, angle::EntryPoint entryPoint, GLint n); -bool ValidateRobustEntryPoint(const Context *context, GLsizei bufSize); -bool ValidateRobustBufferSize(const Context *context, GLsizei bufSize, GLsizei numParams); +bool ValidateRobustEntryPoint(const Context *context, + angle::EntryPoint entryPoint, + GLsizei bufSize); +bool ValidateRobustBufferSize(const Context *context, + angle::EntryPoint entryPoint, + GLsizei bufSize, + GLsizei numParams); bool ValidateGetFramebufferAttachmentParameterivBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, GLsizei *numParams); bool ValidateGetBufferParameterBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, bool pointerVersion, GLsizei *numParams); bool ValidateGetProgramivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLsizei *numParams); bool ValidateGetRenderbufferParameterivBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei *length); bool ValidateGetShaderivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLenum pname, GLsizei *length); bool ValidateGetTexParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei *length); template bool ValidateTexParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, bool vectorParams, const ParamType *params); bool ValidateGetVertexAttribBase(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei *length, bool pointer, bool pureIntegerEntryPoint); ANGLE_INLINE bool ValidateVertexFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribTypeCase validation) { const Caps &caps = context->getCaps(); if (index >= static_cast(caps.maxVertexAttributes)) { - context->validationError(GL_INVALID_VALUE, err::kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, + err::kIndexExceedsMaxVertexAttribute); return false; } switch (validation) { case VertexAttribTypeCase::Invalid: - context->validationError(GL_INVALID_ENUM, err::kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kInvalidType); return false; case VertexAttribTypeCase::Valid: if (size < 1 || size > 4) { - context->validationError(GL_INVALID_VALUE, err::kInvalidVertexAttrSize); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kInvalidVertexAttrSize); return false; } break; case VertexAttribTypeCase::ValidSize4Only: if (size != 4) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kInvalidVertexAttribSize2101010); return false; } break; case VertexAttribTypeCase::ValidSize3or4: if (size != 3 && size != 4) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kInvalidVertexAttribSize1010102); return false; } break; } @@ -615,98 +729,119 @@ return true; } // Note: These byte, short, and int types are all converted to float for the shader. ANGLE_INLINE bool ValidateFloatVertexFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType type) { - return ValidateVertexFormat(context, index, size, + return ValidateVertexFormat(context, entryPoint, index, size, context->getStateCache().getVertexAttribTypeValidation(type)); } ANGLE_INLINE bool ValidateIntegerVertexFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType type) { return ValidateVertexFormat( - context, index, size, context->getStateCache().getIntegerVertexAttribTypeValidation(type)); + context, entryPoint, index, size, + context->getStateCache().getIntegerVertexAttribTypeValidation(type)); } bool ValidateWebGLFramebufferAttachmentClearType(const Context *context, + angle::EntryPoint entryPoint, GLint drawbuffer, const GLenum *validComponentTypes, size_t validComponentTypeCount); bool ValidateRobustCompressedTexImageBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei imageSize, GLsizei dataSize); -bool ValidateVertexAttribIndex(const Context *context, GLuint index); +bool ValidateVertexAttribIndex(const Context *context, angle::EntryPoint entryPoint, GLuint index); bool ValidateGetActiveUniformBlockivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLenum pname, GLsizei *length); bool ValidateGetSamplerParameterBase(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei *length); template bool ValidateSamplerParameterBase(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, bool vectorParams, const ParamType *params); bool ValidateGetInternalFormativBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *numParams); bool ValidateFramebufferNotMultisampled(const Context *context, + angle::EntryPoint entryPoint, const Framebuffer *framebuffer, bool checkReadBufferResourceSamples); -bool ValidateMultitextureUnit(const Context *context, GLenum texture); +bool ValidateMultitextureUnit(const Context *context, angle::EntryPoint entryPoint, GLenum texture); bool ValidateTransformFeedbackPrimitiveMode(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode transformFeedbackPrimitiveMode, PrimitiveMode renderPrimitiveMode); // Common validation for 2D and 3D variants of TexStorage*Multisample. bool ValidateTexStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height); bool ValidateTexStorage2DMultisampleBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height); bool ValidateGetTexLevelParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, GLsizei *length); -bool ValidateMapBufferBase(const Context *context, BufferBinding target); -bool ValidateIndexedStateQuery(const Context *context, GLenum pname, GLuint index, GLsizei *length); +bool ValidateMapBufferBase(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target); +bool ValidateIndexedStateQuery(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLuint index, + GLsizei *length); bool ValidateES3TexImage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -720,10 +855,11 @@ GLenum format, GLenum type, GLsizei imageSize, const void *pixels); bool ValidateES3CopyTexImage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -733,43 +869,50 @@ GLint y, GLsizei width, GLsizei height, GLint border); bool ValidateES3TexStorage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); bool ValidateES3TexStorage3DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); bool ValidateGetMultisamplefvBase(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val); -bool ValidateSampleMaskiBase(const Context *context, GLuint maskNumber, GLbitfield mask); +bool ValidateSampleMaskiBase(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask); // We should check with Khronos if returning INVALID_FRAMEBUFFER_OPERATION is OK when querying // implementation format info for incomplete framebuffers. It seems like these queries are // incongruent with the other errors. // Inlined for speed. template ANGLE_INLINE bool ValidateFramebufferComplete(const Context *context, + angle::EntryPoint entryPoint, const Framebuffer *framebuffer) { const FramebufferStatus &framebufferStatus = framebuffer->checkStatus(context); if (!framebufferStatus.isComplete()) { ASSERT(framebufferStatus.reason != nullptr); - context->validationError(ErrorCode, framebufferStatus.reason); + context->validationError(entryPoint, ErrorCode, framebufferStatus.reason); return false; } return true; } @@ -778,24 +921,29 @@ const Extensions &extensions, ProgramPipeline *programPipeline); const char *ValidateProgramPipelineAttachedPrograms(ProgramPipeline *programPipeline); const char *ValidateDrawStates(const Context *context); -void RecordDrawAttribsError(const Context *context); +void RecordDrawAttribsError(const Context *context, angle::EntryPoint entryPoint); -ANGLE_INLINE bool ValidateDrawAttribs(const Context *context, int64_t maxVertex) +ANGLE_INLINE bool ValidateDrawAttribs(const Context *context, + angle::EntryPoint entryPoint, + int64_t maxVertex) { if (maxVertex > context->getStateCache().getNonInstancedVertexElementLimit()) { - RecordDrawAttribsError(context); + RecordDrawAttribsError(context, entryPoint); return false; } return true; } -ANGLE_INLINE bool ValidateDrawArraysAttribs(const Context *context, GLint first, GLsizei count) +ANGLE_INLINE bool ValidateDrawArraysAttribs(const Context *context, + angle::EntryPoint entryPoint, + GLint first, + GLsizei count) { if (!context->isBufferAccessValidationEnabled()) { return true; } @@ -807,58 +955,61 @@ ASSERT(first >= 0); ASSERT(count > 0); int64_t maxVertex = static_cast(first) + static_cast(count) - 1; if (maxVertex > static_cast(std::numeric_limits::max())) { - context->validationError(GL_INVALID_OPERATION, err::kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kIntegerOverflow); return false; } - return ValidateDrawAttribs(context, maxVertex); + return ValidateDrawAttribs(context, entryPoint, maxVertex); } -ANGLE_INLINE bool ValidateDrawInstancedAttribs(const Context *context, GLint primcount) +ANGLE_INLINE bool ValidateDrawInstancedAttribs(const Context *context, + angle::EntryPoint entryPoint, + GLint primcount) { if (!context->isBufferAccessValidationEnabled()) { return true; } if ((primcount - 1) > context->getStateCache().getInstancedVertexElementLimit()) { - RecordDrawAttribsError(context); + RecordDrawAttribsError(context, entryPoint); return false; } return true; } ANGLE_INLINE bool ValidateDrawArraysCommon(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount) { if (first < 0) { - context->validationError(GL_INVALID_VALUE, err::kNegativeStart); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kNegativeStart); return false; } if (count <= 0) { if (count < 0) { - context->validationError(GL_INVALID_VALUE, err::kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kNegativeCount); return false; } // Early exit. - return ValidateDrawBase(context, mode); + return ValidateDrawBase(context, entryPoint, mode); } - if (!ValidateDrawBase(context, mode)) + if (!ValidateDrawBase(context, entryPoint, mode)) { return false; } if (context->getStateCache().isTransformFeedbackActiveUnpaused() && @@ -866,98 +1017,102 @@ { const State &state = context->getState(); TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback(); if (!curTransformFeedback->checkBufferSpaceForDraw(count, primcount)) { - context->validationError(GL_INVALID_OPERATION, err::kTransformFeedbackBufferTooSmall); + context->validationError(entryPoint, GL_INVALID_OPERATION, + err::kTransformFeedbackBufferTooSmall); return false; } } - return ValidateDrawArraysAttribs(context, first, count); + return ValidateDrawArraysAttribs(context, entryPoint, first, count); } ANGLE_INLINE bool ValidateDrawElementsBase(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, DrawElementsType type) { if (!context->getStateCache().isValidDrawElementsType(type)) { if (type == DrawElementsType::UnsignedInt) { - context->validationError(GL_INVALID_ENUM, err::kTypeNotUnsignedShortByte); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kTypeNotUnsignedShortByte); return false; } ASSERT(type == DrawElementsType::InvalidEnum); - context->validationError(GL_INVALID_ENUM, err::kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kEnumNotSupported); return false; } intptr_t drawElementsError = context->getStateCache().getBasicDrawElementsError(context); if (drawElementsError) { // All errors from ValidateDrawElementsStates return INVALID_OPERATION. const char *errorMessage = reinterpret_cast(drawElementsError); - context->validationError(GL_INVALID_OPERATION, errorMessage); + context->validationError(entryPoint, GL_INVALID_OPERATION, errorMessage); return false; } // Note that we are missing overflow checks for active transform feedback buffers. return true; } ANGLE_INLINE bool ValidateDrawElementsCommon(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount) { - if (!ValidateDrawElementsBase(context, mode, type)) + if (!ValidateDrawElementsBase(context, entryPoint, mode, type)) { return false; } ASSERT(isPow2(GetDrawElementsTypeSize(type)) && GetDrawElementsTypeSize(type) > 0); - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { GLuint typeBytes = GetDrawElementsTypeSize(type); if ((reinterpret_cast(indices) & static_cast(typeBytes - 1)) != 0) { // [WebGL 1.0] Section 6.4 Buffer Offset and Stride Requirements // The offset arguments to drawElements and [...], must be a multiple of the size of the // data type passed to the call, or an INVALID_OPERATION error is generated. - context->validationError(GL_INVALID_OPERATION, err::kOffsetMustBeMultipleOfType); + context->validationError(entryPoint, GL_INVALID_OPERATION, + err::kOffsetMustBeMultipleOfType); return false; } // [WebGL 1.0] Section 6.4 Buffer Offset and Stride Requirements // In addition the offset argument to drawElements must be non-negative or an INVALID_VALUE // error is generated. if (reinterpret_cast(indices) < 0) { - context->validationError(GL_INVALID_VALUE, err::kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kNegativeOffset); return false; } } if (count <= 0) { if (count < 0) { - context->validationError(GL_INVALID_VALUE, err::kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kNegativeCount); return false; } // Early exit. - return ValidateDrawBase(context, mode); + return ValidateDrawBase(context, entryPoint, mode); } - if (!ValidateDrawBase(context, mode)) + if (!ValidateDrawBase(context, entryPoint, mode)) { return false; } const State &state = context->getState(); @@ -968,11 +1123,12 @@ { if (!indices) { // This is an application error that would normally result in a crash, but we catch // it and return an error - context->validationError(GL_INVALID_OPERATION, err::kElementArrayNoBufferOrPointer); + context->validationError(entryPoint, GL_INVALID_OPERATION, + err::kElementArrayNoBufferOrPointer); return false; } } else { @@ -993,19 +1149,20 @@ // The offset can be any value, check for overflows uint64_t offset = static_cast(reinterpret_cast(indices)); uint64_t elementDataSizeWithOffset = elementDataSizeNoOffset + offset; if (elementDataSizeWithOffset < elementDataSizeNoOffset) { - context->validationError(GL_INVALID_OPERATION, err::kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kIntegerOverflow); return false; } // Related to possible test bug: https://github.com/KhronosGroup/WebGL/issues/3064 if ((elementDataSizeWithOffset > static_cast(elementArrayBuffer->getSize())) && (primcount > 0)) { - context->validationError(GL_INVALID_OPERATION, err::kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, + err::kInsufficientBufferSize); return false; } } if (context->isBufferAccessValidationEnabled() && primcount > 0) @@ -1017,23 +1174,52 @@ // If we use an index greater than our maximum supported index range, return an error. // The ES3 spec does not specify behaviour here, it is undefined, but ANGLE should // always return an error if possible here. if (static_cast(indexRange.end) >= context->getCaps().maxElementIndex) { - context->validationError(GL_INVALID_OPERATION, err::kExceedsMaxElement); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kExceedsMaxElement); return false; } - if (!ValidateDrawAttribs(context, static_cast(indexRange.end))) + if (!ValidateDrawAttribs(context, entryPoint, static_cast(indexRange.end))) { return false; } // No op if there are no real indices in the index data (all are primitive restart). return (indexRange.vertexIndexCount > 0); } return true; } + +ANGLE_INLINE bool ValidateBindVertexArrayBase(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID array) +{ + if (!context->isVertexArrayGenerated(array)) + { + // The default VAO should always exist + ASSERT(array.value != 0); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kInvalidVertexArray); + return false; + } + + return true; +} + +ANGLE_INLINE bool ValidateVertexAttribIndex(const Context *context, + angle::EntryPoint entryPoint, + GLuint index) +{ + if (index >= MAX_VERTEX_ATTRIBS) + { + context->validationError(entryPoint, GL_INVALID_VALUE, + err::kIndexExceedsMaxVertexAttribute); + return false; + } + + return true; +} } // namespace gl #endif // LIBANGLE_VALIDATION_ES_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationES.cpp b/gfx/angle/checkout/src/libANGLE/validationES.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES.cpp @@ -114,18 +114,18 @@ return context->getClientVersion() >= ES_3_0; case GL_FLOAT: return context->getClientVersion() >= ES_3_0 || context->getExtensions().textureFloatOES || - context->getExtensions().colorBufferHalfFloat; + context->getExtensions().colorBufferHalfFloatEXT; case GL_HALF_FLOAT: return context->getClientVersion() >= ES_3_0 || - context->getExtensions().textureHalfFloat; + context->getExtensions().textureHalfFloatOES; case GL_HALF_FLOAT_OES: - return context->getExtensions().colorBufferHalfFloat; + return context->getExtensions().colorBufferHalfFloatEXT; default: return false; } } @@ -149,14 +149,14 @@ case GL_RED_INTEGER: return context->getClientVersion() >= ES_3_0; case GL_SRGB_ALPHA_EXT: case GL_SRGB_EXT: - return context->getExtensions().sRGB; + return context->getExtensions().sRGBEXT; case GL_BGRA_EXT: - return context->getExtensions().readFormatBGRA; + return context->getExtensions().readFormatBgraEXT; default: return false; } } @@ -198,24 +198,24 @@ // ReadPixels with BGRA even if the extension is not present switch (format) { case GL_RGBA: return ((type == GL_UNSIGNED_BYTE) && info->pixelBytes >= 1) || - (context->getExtensions().textureNorm16 && (type == GL_UNSIGNED_SHORT) && - info->pixelBytes >= 2); + (context->getExtensions().textureNorm16EXT && + (type == GL_UNSIGNED_SHORT) && info->pixelBytes >= 2); case GL_BGRA_EXT: - return context->getExtensions().readFormatBGRA && (type == GL_UNSIGNED_BYTE); + return context->getExtensions().readFormatBgraEXT && (type == GL_UNSIGNED_BYTE); case GL_STENCIL_INDEX_OES: return context->getExtensions().readStencilNV && (type == GL_UNSIGNED_BYTE); case GL_DEPTH_COMPONENT: return ValidReadPixelsUnsignedNormalizedDepthType(context, info, type); default: return false; } case GL_SIGNED_NORMALIZED: return (format == GL_RGBA && type == GL_BYTE && info->pixelBytes >= 1) || - (context->getExtensions().textureNorm16 && format == GL_RGBA && + (context->getExtensions().textureNorm16EXT && format == GL_RGBA && type == GL_UNSIGNED_SHORT && info->pixelBytes >= 2); case GL_INT: return (format == GL_RGBA_INTEGER && type == GL_INT); @@ -238,10 +238,11 @@ } } template bool ValidateTextureWrapModeValue(const Context *context, + angle::EntryPoint entryPoint, const ParamType *params, bool restrictedWrapModes) { switch (ConvertToGLenum(params[0])) { @@ -250,35 +251,36 @@ case GL_CLAMP_TO_BORDER: if (!context->getExtensions().textureBorderClampAny() && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_REPEAT: case GL_MIRRORED_REPEAT: if (restrictedWrapModes) { // OES_EGL_image_external and ANGLE_texture_rectangle specifies this error. - context->validationError(GL_INVALID_ENUM, kInvalidWrapModeTexture); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidWrapModeTexture); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureWrap); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureWrap); return false; } return true; } template bool ValidateTextureMinFilterValue(const Context *context, + angle::EntryPoint entryPoint, const ParamType *params, bool restrictedMinFilter) { switch (ConvertToGLenum(params[0])) { @@ -291,60 +293,66 @@ case GL_NEAREST_MIPMAP_LINEAR: case GL_LINEAR_MIPMAP_LINEAR: if (restrictedMinFilter) { // OES_EGL_image_external specifies this error. - context->validationError(GL_INVALID_ENUM, kInvalidFilterTexture); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFilterTexture); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureFilterParam); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureFilterParam); return false; } return true; } template -bool ValidateTextureMagFilterValue(const Context *context, const ParamType *params) +bool ValidateTextureMagFilterValue(const Context *context, + angle::EntryPoint entryPoint, + const ParamType *params) { switch (ConvertToGLenum(params[0])) { case GL_NEAREST: case GL_LINEAR: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureFilterParam); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureFilterParam); return false; } return true; } template -bool ValidateTextureCompareModeValue(const Context *context, const ParamType *params) +bool ValidateTextureCompareModeValue(const Context *context, + angle::EntryPoint entryPoint, + const ParamType *params) { // Acceptable mode parameters from GLES 3.0.2 spec, table 3.17 switch (ConvertToGLenum(params[0])) { case GL_NONE: case GL_COMPARE_REF_TO_TEXTURE: break; default: - context->validationError(GL_INVALID_ENUM, kUnknownParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kUnknownParameter); return false; } return true; } template -bool ValidateTextureCompareFuncValue(const Context *context, const ParamType *params) +bool ValidateTextureCompareFuncValue(const Context *context, + angle::EntryPoint entryPoint, + const ParamType *params) { // Acceptable function parameters from GLES 3.0.2 spec, table 3.17 switch (ConvertToGLenum(params[0])) { case GL_LEQUAL: @@ -356,86 +364,93 @@ case GL_ALWAYS: case GL_NEVER: break; default: - context->validationError(GL_INVALID_ENUM, kUnknownParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kUnknownParameter); return false; } return true; } template -bool ValidateTextureSRGBDecodeValue(const Context *context, const ParamType *params) -{ - if (!context->getExtensions().textureSRGBDecode) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); +bool ValidateTextureSRGBDecodeValue(const Context *context, + angle::EntryPoint entryPoint, + const ParamType *params) +{ + if (!context->getExtensions().textureSRGBDecodeEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } switch (ConvertToGLenum(params[0])) { case GL_DECODE_EXT: case GL_SKIP_DECODE_EXT: break; default: - context->validationError(GL_INVALID_ENUM, kUnknownParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kUnknownParameter); return false; } return true; } template -bool ValidateTextureSRGBOverrideValue(const Context *context, const ParamType *params) -{ - if (!context->getExtensions().textureSRGBOverride) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); +bool ValidateTextureSRGBOverrideValue(const Context *context, + angle::EntryPoint entryPoint, + const ParamType *params) +{ + if (!context->getExtensions().textureFormatSRGBOverrideEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } switch (ConvertToGLenum(params[0])) { case GL_SRGB: case GL_NONE: break; default: - context->validationError(GL_INVALID_ENUM, kUnknownParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kUnknownParameter); return false; } return true; } -bool ValidateTextureMaxAnisotropyExtensionEnabled(const Context *context) -{ - if (!context->getExtensions().textureFilterAnisotropic) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); +bool ValidateTextureMaxAnisotropyExtensionEnabled(const Context *context, + angle::EntryPoint entryPoint) +{ + if (!context->getExtensions().textureFilterAnisotropicEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } return true; } -bool ValidateTextureMaxAnisotropyValue(const Context *context, GLfloat paramValue) -{ - if (!ValidateTextureMaxAnisotropyExtensionEnabled(context)) - { - return false; - } - - GLfloat largest = context->getExtensions().maxTextureAnisotropy; +bool ValidateTextureMaxAnisotropyValue(const Context *context, + angle::EntryPoint entryPoint, + GLfloat paramValue) +{ + if (!ValidateTextureMaxAnisotropyExtensionEnabled(context, entryPoint)) + { + return false; + } + + GLfloat largest = context->getCaps().maxTextureAnisotropy; if (paramValue < 1 || paramValue > largest) { - context->validationError(GL_INVALID_VALUE, kOutsideOfBounds); + context->validationError(entryPoint, GL_INVALID_VALUE, kOutsideOfBounds); return false; } return true; } @@ -444,23 +459,23 @@ { const Program *program = context->getActiveLinkedProgram(); const Framebuffer *framebuffer = context->getState().getDrawFramebuffer(); auto drawBufferMask = framebuffer->getDrawBufferMask().to_ulong(); - auto fragmentOutputMask = program->getActiveOutputVariables().to_ulong(); + auto fragmentOutputMask = program->getExecutable().getActiveOutputVariablesMask().to_ulong(); return drawBufferMask == (drawBufferMask & fragmentOutputMask); } bool ValidateFragmentShaderColorBufferTypeMatch(const Context *context) { - const Program *program = context->getActiveLinkedProgram(); - const Framebuffer *framebuffer = context->getState().getDrawFramebuffer(); - - return ValidateComponentTypeMasks(program->getDrawBufferTypeMask().to_ulong(), + const ProgramExecutable *executable = context->getState().getProgramExecutable(); + const Framebuffer *framebuffer = context->getState().getDrawFramebuffer(); + + return ValidateComponentTypeMasks(executable->getFragmentOutputsTypeMask().to_ulong(), framebuffer->getDrawBufferTypeMask().to_ulong(), - program->getActiveOutputVariables().to_ulong(), + executable->getActiveOutputVariablesMask().to_ulong(), framebuffer->getDrawBufferMask().to_ulong()); } bool ValidateVertexShaderAttributeTypeMatch(const Context *context) { @@ -536,15 +551,16 @@ unsigned int GetSamplerParameterCount(GLenum pname) { return pname == GL_TEXTURE_BORDER_COLOR ? 4 : 1; } -ANGLE_INLINE const char *ValidateProgramDrawStates(const State &state, +ANGLE_INLINE const char *ValidateProgramDrawStates(const Context *context, const Extensions &extensions, Program *program) { - if (extensions.multiview || extensions.multiview2) + const State &state = context->getState(); + if (extensions.multiviewOVR || extensions.multiview2OVR) { const int programNumViews = program->usesMultiview() ? program->getNumViews() : 1; Framebuffer *framebuffer = state.getDrawFramebuffer(); const int framebufferNumViews = framebuffer->getNumViews(); @@ -556,11 +572,11 @@ if (state.isTransformFeedbackActiveUnpaused() && framebufferNumViews > 1) { return gl::err::kMultiviewTransformFeedback; } - if (extensions.disjointTimerQuery && framebufferNumViews > 1 && + if (extensions.disjointTimerQueryEXT && framebufferNumViews > 1 && state.isQueryActive(QueryType::TimeElapsed)) { return gl::err::kMultiviewTimerQuery; } } @@ -572,25 +588,25 @@ const InterfaceBlock &uniformBlock = program->getUniformBlockByIndex(uniformBlockIndex); GLuint blockBinding = program->getUniformBlockBinding(uniformBlockIndex); const OffsetBindingPointer &uniformBuffer = state.getIndexedUniformBuffer(blockBinding); - if (uniformBuffer.get() == nullptr) + if (uniformBuffer.get() == nullptr && context->isWebGL()) { // undefined behaviour return gl::err::kUniformBufferUnbound; } size_t uniformBufferSize = GetBoundBufferAvailableSize(uniformBuffer); - if (uniformBufferSize < uniformBlock.dataSize) + if (uniformBufferSize < uniformBlock.dataSize && + (context->isWebGL() || context->isBufferAccessValidationEnabled())) { // undefined behaviour return gl::err::kUniformBufferTooSmall; } - if (extensions.webglCompatibility && - uniformBuffer->isBoundForTransformFeedbackAndOtherUse()) + if (uniformBuffer->hasWebGLXFBBindingConflict(context->isWebGL())) { return gl::err::kUniformBufferBoundForTransformFeedback; } } @@ -616,31 +632,31 @@ case TextureType::_2D: case TextureType::CubeMap: return true; case TextureType::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; case TextureType::_3D: return ((context->getClientMajorVersion() >= 3) || context->getExtensions().texture3DOES); case TextureType::_2DArray: return (context->getClientMajorVersion() >= 3); case TextureType::_2DMultisample: return (context->getClientVersion() >= Version(3, 1) || - context->getExtensions().textureMultisample); + context->getExtensions().textureMultisampleANGLE); case TextureType::_2DMultisampleArray: - return context->getExtensions().textureStorageMultisample2DArrayOES; + return context->getExtensions().textureStorageMultisample2dArrayOES; case TextureType::CubeMapArray: return (context->getClientVersion() >= Version(3, 2) || context->getExtensions().textureCubeMapArrayAny()); case TextureType::VideoImage: - return context->getExtensions().webglVideoTexture; + return context->getExtensions().videoTextureWEBGL; case TextureType::Buffer: return (context->getClientVersion() >= Version(3, 2) || context->getExtensions().textureBufferAny()); @@ -656,11 +672,11 @@ case TextureType::_2D: case TextureType::CubeMap: return true; case TextureType::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; default: return false; } } @@ -685,12 +701,12 @@ // Most texture GL calls are not compatible with external textures, so we have a separate validation // function for use in the GL calls that do bool ValidTextureExternalTarget(const Context *context, TextureType target) { return (target == TextureType::External) && - (context->getExtensions().eglImageExternalOES || - context->getExtensions().eglStreamConsumerExternalNV); + (context->getExtensions().EGLImageExternalOES || + context->getExtensions().EGLStreamConsumerExternalNV); } bool ValidTextureExternalTarget(const Context *context, TextureTarget target) { return (target == TextureTarget::External) && @@ -712,25 +728,26 @@ case TextureTarget::CubeMapPositiveX: case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: return true; case TextureTarget::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; case TextureTarget::VideoImage: - return context->getExtensions().webglVideoTexture; + return context->getExtensions().videoTextureWEBGL; default: return false; } } bool ValidateTransformFeedbackPrimitiveMode(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode transformFeedbackPrimitiveMode, PrimitiveMode renderPrimitiveMode) { ASSERT(context); - if ((!context->getExtensions().geometryShader || + if ((!context->getExtensions().geometryShaderAny() || !context->getExtensions().tessellationShaderEXT) && context->getClientVersion() < ES_3_2) { // It is an invalid operation to call DrawArrays or DrawArraysInstanced with a draw mode // that does not match the current transform feedback object's draw mode (if transform @@ -774,75 +791,78 @@ return false; } } bool ValidateDrawElementsInstancedBase(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount) { if (primcount <= 0) { if (primcount < 0) { - context->validationError(GL_INVALID_VALUE, kNegativePrimcount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativePrimcount); return false; } // Early exit. - return ValidateDrawElementsCommon(context, mode, count, type, indices, primcount); - } - - if (!ValidateDrawElementsCommon(context, mode, count, type, indices, primcount)) + return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, + primcount); + } + + if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, primcount)) { return false; } if (count == 0) { // Early exit. return true; } - return ValidateDrawInstancedAttribs(context, primcount); + return ValidateDrawInstancedAttribs(context, entryPoint, primcount); } bool ValidateDrawArraysInstancedBase(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount) { if (primcount <= 0) { if (primcount < 0) { - context->validationError(GL_INVALID_VALUE, kNegativePrimcount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativePrimcount); return false; } // Early exit. - return ValidateDrawArraysCommon(context, mode, first, count, primcount); - } - - if (!ValidateDrawArraysCommon(context, mode, first, count, primcount)) + return ValidateDrawArraysCommon(context, entryPoint, mode, first, count, primcount); + } + + if (!ValidateDrawArraysCommon(context, entryPoint, mode, first, count, primcount)) { return false; } if (count == 0) { // Early exit. return true; } - return ValidateDrawInstancedAttribs(context, primcount); -} - -bool ValidateDrawInstancedANGLE(const Context *context) + return ValidateDrawInstancedAttribs(context, entryPoint, primcount); +} + +bool ValidateDrawInstancedANGLE(const Context *context, angle::EntryPoint entryPoint) { // Verify there is at least one active attribute with a divisor of zero const State &state = context->getState(); const ProgramExecutable *executable = state.getProgramExecutable(); @@ -850,11 +870,11 @@ { // No executable means there is no Program/PPO bound, which is undefined behavior, but isn't // an error. context->getState().getDebug().insertMessage( GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR, 0, GL_DEBUG_SEVERITY_HIGH, - std::string("Attempting to draw without a program"), gl::LOG_WARN); + std::string("Attempting to draw without a program"), gl::LOG_WARN, entryPoint); return true; } const auto &attribs = state.getVertexArray()->getVertexAttributes(); const auto &bindings = state.getVertexArray()->getVertexBindings(); @@ -866,22 +886,24 @@ { return true; } } - context->validationError(GL_INVALID_OPERATION, kNoZeroDivisor); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNoZeroDivisor); return false; } bool ValidTexture3DDestinationTarget(const Context *context, TextureTarget target) { switch (target) { case TextureTarget::_3D: case TextureTarget::_2DArray: + return true; case TextureTarget::CubeMapArray: - return true; + return (context->getClientVersion() >= Version(3, 2) || + context->getExtensions().textureCubeMapArrayAny()); default: return false; } } @@ -897,13 +919,13 @@ return true; case TextureType::CubeMapArray: return (context->getClientVersion() >= Version(3, 2) || context->getExtensions().textureCubeMapArrayAny()); case TextureType::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; case TextureType::_2DMultisampleArray: - return context->getExtensions().textureStorageMultisample2DArrayOES; + return context->getExtensions().textureStorageMultisample2dArrayOES; case TextureType::Buffer: return (context->getClientVersion() >= Version(3, 2) || context->getExtensions().textureBufferAny()); default: return false; @@ -967,36 +989,37 @@ return level <= log2(maxDimension) && level >= 0; } bool ValidImageSizeParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLint level, GLsizei width, GLsizei height, GLsizei depth, bool isSubImage) { if (width < 0 || height < 0 || depth < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } // TexSubImage parameters can be NPOT without textureNPOT extension, // as long as the destination texture is POT. bool hasNPOTSupport = - context->getExtensions().textureNPOTOES || context->getClientVersion() >= Version(3, 0); + context->getExtensions().textureNpotOES || context->getClientVersion() >= Version(3, 0); if (!isSubImage && !hasNPOTSupport && (level != 0 && (!isPow2(width) || !isPow2(height) || !isPow2(depth)))) { - context->validationError(GL_INVALID_VALUE, kTextureNotPow2); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureNotPow2); return false; } if (!ValidMipLevel(context, target, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } return true; } @@ -1004,10 +1027,19 @@ bool ValidCompressedDimension(GLsizei size, GLuint blockSize, GLint level) { return (level > 0) || (size % blockSize == 0); } +bool ValidCompressedBaseLevelForWebGL(GLsizei size, GLuint blockSize, GLint level) +{ + // Avoid C++ undefined behavior. + constexpr int maxValidShifts = 31; + if (level > maxValidShifts) + return false; + return ((size << level) % blockSize) == 0; +} + bool ValidCompressedImageSize(const Context *context, GLenum internalFormat, GLint level, GLsizei width, GLsizei height, @@ -1041,15 +1073,31 @@ } } if (CompressedTextureFormatRequiresExactSize(internalFormat)) { - if (!ValidCompressedDimension(width, formatInfo.compressedBlockWidth, level) || - !ValidCompressedDimension(height, formatInfo.compressedBlockHeight, level) || - !ValidCompressedDimension(depth, formatInfo.compressedBlockDepth, level)) - { - return false; + // In WebGL compatibility mode, enforce that the base level implied + // by the compressed texture's mip level would conform to the block + // size. This is more strict than the non-WebGL check. + if (context->isWebGL()) + { + if (!ValidCompressedBaseLevelForWebGL(width, formatInfo.compressedBlockWidth, level) || + !ValidCompressedBaseLevelForWebGL(height, formatInfo.compressedBlockHeight, + level) || + !ValidCompressedBaseLevelForWebGL(depth, formatInfo.compressedBlockDepth, level)) + { + return false; + } + } + else + { + if (!ValidCompressedDimension(width, formatInfo.compressedBlockWidth, level) || + !ValidCompressedDimension(height, formatInfo.compressedBlockHeight, level) || + !ValidCompressedDimension(depth, formatInfo.compressedBlockDepth, level)) + { + return false; + } } } return true; } @@ -1108,10 +1156,11 @@ return true; } bool ValidImageDataSize(const Context *context, + angle::EntryPoint entryPoint, TextureType texType, GLsizei width, GLsizei height, GLsizei depth, GLenum format, @@ -1135,11 +1184,11 @@ bool targetIs3D = texType == TextureType::_3D || texType == TextureType::_2DArray; GLuint endByte = 0; if (!formatInfo.computePackUnpackEndByte(type, size, unpack, targetIs3D, &endByte)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (pixelUnpackBuffer) { @@ -1149,33 +1198,32 @@ if (!checkedEndByte.IsValid() || (checkedEndByte.ValueOrDie() > static_cast(pixelUnpackBuffer->getSize()))) { // Overflow past the end of the buffer - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } - if (context->getExtensions().webglCompatibility && - pixelUnpackBuffer->isBoundForTransformFeedbackAndOtherUse()) - { - context->validationError(GL_INVALID_OPERATION, + if (pixelUnpackBuffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kPixelUnpackBufferBoundForTransformFeedback); return false; } } else { ASSERT(imageSize >= 0); if (pixels == nullptr && imageSize != 0) { - context->validationError(GL_INVALID_OPERATION, kImageSizeMustBeZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kImageSizeMustBeZero); return false; } if (pixels != nullptr && endByte > static_cast(imageSize)) { - context->validationError(GL_INVALID_OPERATION, kImageSizeTooSmall); + context->validationError(entryPoint, GL_INVALID_OPERATION, kImageSizeTooSmall); return false; } } return true; @@ -1186,40 +1234,42 @@ switch (queryType) { case QueryType::AnySamples: case QueryType::AnySamplesConservative: return context->getClientMajorVersion() >= 3 || - context->getExtensions().occlusionQueryBoolean; + context->getExtensions().occlusionQueryBooleanEXT; case QueryType::TransformFeedbackPrimitivesWritten: return (context->getClientMajorVersion() >= 3); case QueryType::TimeElapsed: - return context->getExtensions().disjointTimerQuery; + return context->getExtensions().disjointTimerQueryEXT; case QueryType::CommandsCompleted: - return context->getExtensions().syncQuery; + return context->getExtensions().syncQueryCHROMIUM; case QueryType::PrimitivesGenerated: - return context->getClientVersion() >= ES_3_2 || context->getExtensions().geometryShader; + return context->getClientVersion() >= ES_3_2 || + context->getExtensions().geometryShaderAny(); default: return false; } } bool ValidateWebGLVertexAttribPointer(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType type, GLboolean normalized, GLsizei stride, const void *ptr, bool pureInteger) { - ASSERT(context->getExtensions().webglCompatibility); + ASSERT(context->isWebGL()); // WebGL 1.0 [Section 6.11] Vertex Attribute Data Stride // The WebGL API supports vertex attribute data strides up to 255 bytes. A call to // vertexAttribPointer will generate an INVALID_VALUE error if the value for the stride // parameter exceeds 255. constexpr GLsizei kMaxWebGLStride = 255; if (stride > kMaxWebGLStride) { - context->validationError(GL_INVALID_VALUE, kStrideExceedsWebGLLimit); + context->validationError(entryPoint, GL_INVALID_VALUE, kStrideExceedsWebGLLimit); return false; } // WebGL 1.0 [Section 6.4] Buffer Offset and Stride Requirements // The offset arguments to drawElements and vertexAttribPointer, and the stride argument to @@ -1230,24 +1280,26 @@ ASSERT(isPow2(typeSize) && typeSize > 0); size_t sizeMask = (typeSize - 1); if ((reinterpret_cast(ptr) & sizeMask) != 0) { - context->validationError(GL_INVALID_OPERATION, kOffsetMustBeMultipleOfType); + context->validationError(entryPoint, GL_INVALID_OPERATION, kOffsetMustBeMultipleOfType); return false; } if ((stride & sizeMask) != 0) { - context->validationError(GL_INVALID_OPERATION, kStrideMustBeMultipleOfType); + context->validationError(entryPoint, GL_INVALID_OPERATION, kStrideMustBeMultipleOfType); return false; } return true; } -Program *GetValidProgramNoResolve(const Context *context, ShaderProgramID id) +Program *GetValidProgramNoResolve(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID id) { // ES3 spec (section 2.11.1) -- "Commands that accept shader or program object names will // generate the error INVALID_VALUE if the provided name is not the name of either a shader // or program object and INVALID_OPERATION if the provided name identifies an object // that is not the expected type." @@ -1256,67 +1308,69 @@ if (!validProgram) { if (context->getShader(id)) { - context->validationError(GL_INVALID_OPERATION, kExpectedProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExpectedProgramName); } else { - context->validationError(GL_INVALID_VALUE, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramName); } } return validProgram; } -Program *GetValidProgram(const Context *context, ShaderProgramID id) -{ - Program *program = GetValidProgramNoResolve(context, id); +Program *GetValidProgram(const Context *context, angle::EntryPoint entryPoint, ShaderProgramID id) +{ + Program *program = GetValidProgramNoResolve(context, entryPoint, id); if (program) { program->resolveLink(context); } return program; } -Shader *GetValidShader(const Context *context, ShaderProgramID id) +Shader *GetValidShader(const Context *context, angle::EntryPoint entryPoint, ShaderProgramID id) { // See ValidProgram for spec details. Shader *validShader = context->getShader(id); if (!validShader) { if (context->getProgramNoResolveLink(id)) { - context->validationError(GL_INVALID_OPERATION, kExpectedShaderName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExpectedShaderName); } else { - context->validationError(GL_INVALID_VALUE, kInvalidShaderName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidShaderName); } } return validShader; } -bool ValidateAttachmentTarget(const Context *context, GLenum attachment) +bool ValidateAttachmentTarget(const Context *context, + angle::EntryPoint entryPoint, + GLenum attachment) { if (attachment >= GL_COLOR_ATTACHMENT1_EXT && attachment <= GL_COLOR_ATTACHMENT15_EXT) { - if (context->getClientMajorVersion() < 3 && !context->getExtensions().drawBuffers) - { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + if (context->getClientMajorVersion() < 3 && !context->getExtensions().drawBuffersEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } // Color attachment 0 is validated below because it is always valid const int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0_EXT); if (colorAttachment >= context->getCaps().maxColorAttachments) { - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAttachment); return false; } } else { @@ -1326,28 +1380,28 @@ case GL_DEPTH_ATTACHMENT: case GL_STENCIL_ATTACHMENT: break; case GL_DEPTH_STENCIL_ATTACHMENT: - if (!context->getExtensions().webglCompatibility && - context->getClientMajorVersion() < 3) + if (!context->isWebGL() && context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } } return true; } bool ValidateRenderbufferStorageParametersBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) @@ -1355,57 +1409,58 @@ switch (target) { case GL_RENDERBUFFER: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } if (width < 0 || height < 0 || samples < 0) { - context->validationError(GL_INVALID_VALUE, kInvalidRenderbufferWidthHeight); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidRenderbufferWidthHeight); return false; } // Hack for the special WebGL 1 "DEPTH_STENCIL" internal format. GLenum convertedInternalFormat = context->getConvertedRenderbufferFormat(internalformat); const TextureCaps &formatCaps = context->getTextureCaps().get(convertedInternalFormat); if (!formatCaps.renderbuffer) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferInternalFormat); return false; } // ANGLE_framebuffer_multisample does not explicitly state that the internal format must be // sized but it does state that the format must be in the ES2.0 spec table 4.5 which contains // only sized internal formats. const InternalFormat &formatInfo = GetSizedInternalFormatInfo(convertedInternalFormat); if (formatInfo.internalFormat == GL_NONE) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferInternalFormat); return false; } if (std::max(width, height) > context->getCaps().maxRenderbufferSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxRenderbufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxRenderbufferSize); return false; } RenderbufferID id = context->getState().getRenderbufferId(); if (id.value == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidRenderbufferTarget); return false; } return true; } bool ValidateBlitFramebufferParameters(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -1420,80 +1475,81 @@ case GL_NEAREST: break; case GL_LINEAR: break; default: - context->validationError(GL_INVALID_ENUM, kBlitInvalidFilter); + context->validationError(entryPoint, GL_INVALID_ENUM, kBlitInvalidFilter); return false; } if ((mask & ~(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)) != 0) { - context->validationError(GL_INVALID_VALUE, kBlitInvalidMask); + context->validationError(entryPoint, GL_INVALID_VALUE, kBlitInvalidMask); return false; } // ES3.0 spec, section 4.3.2 states that linear filtering is only available for the // color buffer, leaving only nearest being unfiltered from above if ((mask & ~GL_COLOR_BUFFER_BIT) != 0 && filter != GL_NEAREST) { - context->validationError(GL_INVALID_OPERATION, kBlitOnlyNearestForNonColor); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitOnlyNearestForNonColor); return false; } const auto &glState = context->getState(); Framebuffer *readFramebuffer = glState.getReadFramebuffer(); Framebuffer *drawFramebuffer = glState.getDrawFramebuffer(); if (!readFramebuffer || !drawFramebuffer) { - context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kBlitFramebufferMissing); - return false; - } - - if (!ValidateFramebufferComplete(context, readFramebuffer)) - { - return false; - } - - if (!ValidateFramebufferComplete(context, drawFramebuffer)) + context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION, + kBlitFramebufferMissing); + return false; + } + + if (!ValidateFramebufferComplete(context, entryPoint, readFramebuffer)) + { + return false; + } + + if (!ValidateFramebufferComplete(context, entryPoint, drawFramebuffer)) { return false; } // EXT_YUV_target disallows blitting to or from a YUV framebuffer if ((mask & GL_COLOR_BUFFER_BIT) != 0 && (readFramebuffer->hasYUVAttachment() || drawFramebuffer->hasYUVAttachment())) { - context->validationError(GL_INVALID_OPERATION, kBlitYUVFramebuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitYUVFramebuffer); return false; } // The draw and read framebuffers can only match if: // - They are the default framebuffer AND // - The read/draw surfaces are different if ((readFramebuffer->id() == drawFramebuffer->id()) && ((drawFramebuffer->id() != Framebuffer::kDefaultDrawFramebufferHandle) || (context->getCurrentDrawSurface() == context->getCurrentReadSurface()))) { - context->validationError(GL_INVALID_OPERATION, kBlitFeedbackLoop); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitFeedbackLoop); return false; } // Not allow blitting to MS buffers, therefore if renderToTextureSamples exist, // consider it MS. checkReadBufferResourceSamples = false - if (!ValidateFramebufferNotMultisampled(context, drawFramebuffer, false)) + if (!ValidateFramebufferNotMultisampled(context, entryPoint, drawFramebuffer, false)) { return false; } // This validation is specified in the WebGL 2.0 spec and not in the GLES 3.0.5 spec, but we // always run it in order to avoid triggering driver bugs. if (DifferenceCanOverflow(srcX0, srcX1) || DifferenceCanOverflow(srcY0, srcY1) || DifferenceCanOverflow(dstX0, dstX1) || DifferenceCanOverflow(dstY0, dstY1)) { - context->validationError(GL_INVALID_VALUE, kBlitDimensionsOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kBlitDimensionsOutOfRange); return false; } bool sameBounds = srcX0 == dstX0 && srcY0 == dstY0 && srcX1 == dstX1 && srcY1 == dstY1; @@ -1528,73 +1584,75 @@ bool readFixedPoint = (readComponentType == GL_UNSIGNED_NORMALIZED || readComponentType == GL_SIGNED_NORMALIZED); bool drawFixedPoint = (drawComponentType == GL_UNSIGNED_NORMALIZED || drawComponentType == GL_SIGNED_NORMALIZED); - if (extensions.colorBufferFloat) + if (extensions.colorBufferFloatEXT) { bool readFixedOrFloat = (readFixedPoint || readComponentType == GL_FLOAT); bool drawFixedOrFloat = (drawFixedPoint || drawComponentType == GL_FLOAT); if (readFixedOrFloat != drawFixedOrFloat) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitTypeMismatchFixedOrFloat); return false; } } else if (readFixedPoint != drawFixedPoint) { - context->validationError(GL_INVALID_OPERATION, kBlitTypeMismatchFixedPoint); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitTypeMismatchFixedPoint); return false; } if (readComponentType == GL_UNSIGNED_INT && drawComponentType != GL_UNSIGNED_INT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitTypeMismatchUnsignedInteger); return false; } if (readComponentType == GL_INT && drawComponentType != GL_INT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitTypeMismatchSignedInteger); return false; } if (readColorBuffer->getResourceSamples() > 0 && (!Format::EquivalentForBlit(readFormat, drawFormat) || !sameBounds)) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitMultisampledFormatOrBoundsMismatch); return false; } - if (context->getExtensions().webglCompatibility && - *readColorBuffer == *attachment) + if (context->isWebGL() && *readColorBuffer == *attachment) { - context->validationError(GL_INVALID_OPERATION, kBlitSameImageColor); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitSameImageColor); return false; } } } if (readFormat.info->isInt() && filter == GL_LINEAR) { - context->validationError(GL_INVALID_OPERATION, kBlitIntegerWithLinearFilter); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitIntegerWithLinearFilter); return false; } } // WebGL 2.0 BlitFramebuffer when blitting from a missing attachment // In OpenGL ES it is undefined what happens when an operation tries to blit from a missing // attachment and WebGL defines it to be an error. We do the check unconditionally as the // situation is an application error that would lead to a crash in ANGLE. else if (drawFramebuffer->hasEnabledDrawBuffer()) { - context->validationError(GL_INVALID_OPERATION, kBlitMissingColor); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitMissingColor); return false; } } GLenum masks[] = {GL_DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT}; @@ -1610,31 +1668,34 @@ if (readBuffer && drawBuffer) { if (!Format::EquivalentForBlit(readBuffer->getFormat(), drawBuffer->getFormat())) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitDepthOrStencilFormatMismatch); return false; } if (readBuffer->getResourceSamples() > 0 && !sameBounds) { - context->validationError(GL_INVALID_OPERATION, kBlitMultisampledBoundsMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitMultisampledBoundsMismatch); return false; } - if (context->getExtensions().webglCompatibility && *readBuffer == *drawBuffer) + if (context->isWebGL() && *readBuffer == *drawBuffer) { - context->validationError(GL_INVALID_OPERATION, kBlitSameImageDepthOrStencil); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitSameImageDepthOrStencil); return false; } } // WebGL 2.0 BlitFramebuffer when blitting from a missing attachment else if (drawBuffer) { - context->validationError(GL_INVALID_OPERATION, kBlitMissingDepthOrStencil); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBlitMissingDepthOrStencil); return false; } } } @@ -1642,88 +1703,93 @@ // Calling BlitFramebuffer will result in an INVALID_FRAMEBUFFER_OPERATION error if the // current draw framebuffer isMultiview() or the number of // views in the current read framebuffer is more than one. if (readFramebuffer->readDisallowedByMultiview()) { - context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kBlitFromMultiview); + context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION, kBlitFromMultiview); return false; } if (drawFramebuffer->isMultiview()) { - context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kBlitToMultiview); + context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION, kBlitToMultiview); return false; } return true; } -bool ValidateBindFramebufferBase(const Context *context, GLenum target, FramebufferID framebuffer) +bool ValidateBindFramebufferBase(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + FramebufferID framebuffer) { if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } if (!context->getState().isBindGeneratesResourceEnabled() && !context->isFramebufferGenerated(framebuffer)) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } return true; } bool ValidateBindRenderbufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, RenderbufferID renderbuffer) { if (target != GL_RENDERBUFFER) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } if (!context->getState().isBindGeneratesResourceEnabled() && !context->isRenderbufferGenerated(renderbuffer)) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } return true; } bool ValidateFramebufferRenderbufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbuffer) { if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } if (renderbuffertarget != GL_RENDERBUFFER) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target); ASSERT(framebuffer); if (framebuffer->isDefault()) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebufferTarget); - return false; - } - - if (!ValidateAttachmentTarget(context, attachment)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultFramebufferTarget); + return false; + } + + if (!ValidateAttachmentTarget(context, entryPoint, attachment)) { return false; } // [OpenGL ES 2.0.25] Section 4.4.3 page 112 @@ -1732,158 +1798,188 @@ // type 'renderbuffertarget', otherwise an INVALID_OPERATION error is generated. if (renderbuffer.value != 0) { if (!context->getRenderbuffer(renderbuffer)) { - context->validationError(GL_INVALID_OPERATION, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidRenderbufferTarget); return false; } } return true; } bool ValidateFramebufferTextureBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level) { if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); - return false; - } - - if (!ValidateAttachmentTarget(context, attachment)) + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); + return false; + } + + if (!ValidateAttachmentTarget(context, entryPoint, attachment)) { return false; } if (texture.value != 0) { Texture *tex = context->getTexture(texture); if (tex == nullptr) { - context->validationError(GL_INVALID_OPERATION, kMissingTexture); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingTexture); return false; } if (level < 0) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + + // GLES spec 3.1, Section 9.2.8 "Attaching Texture Images to a Framebuffer" + // An INVALID_VALUE error is generated if texture is not zero and level is + // not a supported texture level for textarget + + // Common criteria for not supported texture levels(other criteria are handled case by case + // in non base functions): If texture refers to an immutable-format texture, level must be + // greater than or equal to zero and smaller than the value of TEXTURE_IMMUTABLE_LEVELS for + // texture. + if (tex->getImmutableFormat() && context->getClientVersion() >= ES_3_1) + { + if (level >= static_cast(tex->getImmutableLevels())) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + } + + // GLES spec 3.2, Section 9.2.8 "Attaching Texture Images to a Framebuffer" + // An INVALID_OPERATION error is generated if is the name of a buffer texture. + if ((context->getClientVersion() >= ES_3_2 || + context->getExtensions().textureBufferAny()) && + tex->getType() == TextureType::Buffer) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureTarget); return false; } } const Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target); ASSERT(framebuffer); if (framebuffer->isDefault()) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultFramebufferTarget); return false; } return true; } -bool ValidateGenerateMipmapBase(const Context *context, TextureType target) +bool ValidateGenerateMipmapBase(const Context *context, + angle::EntryPoint entryPoint, + TextureType target) { if (!ValidTextureTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } Texture *texture = context->getTextureByType(target); if (texture == nullptr) { - context->validationError(GL_INVALID_OPERATION, kTextureNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureNotBound); return false; } const GLuint effectiveBaseLevel = texture->getTextureState().getEffectiveBaseLevel(); // This error isn't spelled out in the spec in a very explicit way, but we interpret the spec so // that out-of-range base level has a non-color-renderable / non-texture-filterable format. if (effectiveBaseLevel >= IMPLEMENTATION_MAX_TEXTURE_LEVELS) { - context->validationError(GL_INVALID_OPERATION, kBaseLevelOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBaseLevelOutOfRange); return false; } TextureTarget baseTarget = (target == TextureType::CubeMap) ? TextureTarget::CubeMapPositiveX : NonCubeTextureTypeToTarget(target); const auto &format = *(texture->getFormat(baseTarget, effectiveBaseLevel).info); if (format.sizedInternalFormat == GL_NONE || format.compressed || format.depthBits > 0 || format.stencilBits > 0) { - context->validationError(GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); return false; } // GenerateMipmap accepts formats that are unsized or both color renderable and filterable. bool formatUnsized = !format.sized; bool formatColorRenderableAndFilterable = format.filterSupport(context->getClientVersion(), context->getExtensions()) && format.textureAttachmentSupport(context->getClientVersion(), context->getExtensions()); if (!formatUnsized && !formatColorRenderableAndFilterable) { - context->validationError(GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); return false; } // GL_EXT_sRGB adds an unsized SRGB (no alpha) format which has explicitly disabled mipmap // generation if (format.colorEncoding == GL_SRGB && format.format == GL_RGB) { - context->validationError(GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); return false; } // According to the OpenGL extension spec EXT_sRGB.txt, EXT_SRGB is based on ES 2.0 and // generateMipmap is not allowed if texture format is SRGB_EXT or SRGB_ALPHA_EXT. if (context->getClientVersion() < Version(3, 0) && format.colorEncoding == GL_SRGB) { - context->validationError(GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGenerateMipmapNotAllowed); return false; } // Non-power of 2 ES2 check - if (context->getClientVersion() < Version(3, 0) && !context->getExtensions().textureNPOTOES && + if (context->getClientVersion() < Version(3, 0) && !context->getExtensions().textureNpotOES && (!isPow2(static_cast(texture->getWidth(baseTarget, 0))) || !isPow2(static_cast(texture->getHeight(baseTarget, 0))))) { ASSERT(target == TextureType::_2D || target == TextureType::Rectangle || target == TextureType::CubeMap); - context->validationError(GL_INVALID_OPERATION, kTextureNotPow2); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureNotPow2); return false; } // Cube completeness check if (target == TextureType::CubeMap && !texture->getTextureState().isCubeComplete()) { - context->validationError(GL_INVALID_OPERATION, kCubemapIncomplete); - return false; - } - - if (context->getExtensions().webglCompatibility && - (texture->getWidth(baseTarget, effectiveBaseLevel) == 0 || - texture->getHeight(baseTarget, effectiveBaseLevel) == 0)) - { - context->validationError(GL_INVALID_OPERATION, kGenerateMipmapZeroSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kCubemapIncomplete); + return false; + } + + if (context->isWebGL() && (texture->getWidth(baseTarget, effectiveBaseLevel) == 0 || + texture->getHeight(baseTarget, effectiveBaseLevel) == 0)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kGenerateMipmapZeroSize); return false; } return true; } bool ValidateReadPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -1892,26 +1988,26 @@ const GLsizei *length, const GLsizei *columns, const GLsizei *rows, const void *pixels) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; GLsizei writeColumns = 0; GLsizei writeRows = 0; - if (!ValidateReadPixelsBase(context, x, y, width, height, format, type, bufSize, &writeLength, - &writeColumns, &writeRows, pixels)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateReadPixelsBase(context, entryPoint, x, y, width, height, format, type, bufSize, + &writeLength, &writeColumns, &writeRows, pixels)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); @@ -1920,10 +2016,11 @@ return true; } bool ValidateReadnPixelsEXT(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -1931,19 +2028,20 @@ GLsizei bufSize, const void *pixels) { if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - return ValidateReadPixelsBase(context, x, y, width, height, format, type, bufSize, nullptr, - nullptr, nullptr, pixels); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + return ValidateReadPixelsBase(context, entryPoint, x, y, width, height, format, type, bufSize, + nullptr, nullptr, nullptr, pixels); } bool ValidateReadnPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -1956,22 +2054,22 @@ { GLsizei writeLength = 0; GLsizei writeColumns = 0; GLsizei writeRows = 0; - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - if (!ValidateReadPixelsBase(context, x, y, width, height, format, type, bufSize, &writeLength, - &writeColumns, &writeRows, data)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + if (!ValidateReadPixelsBase(context, entryPoint, x, y, width, height, format, type, bufSize, + &writeLength, &writeColumns, &writeRows, data)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); @@ -1979,57 +2077,66 @@ SetRobustLengthParam(rows, writeRows); return true; } -bool ValidateGenQueriesEXT(const Context *context, GLsizei n, const QueryID *ids) -{ - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kQueryExtensionNotEnabled); - return false; - } - - return ValidateGenOrDelete(context, n); -} - -bool ValidateDeleteQueriesEXT(const Context *context, GLsizei n, const QueryID *ids) -{ - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kQueryExtensionNotEnabled); - return false; - } - - return ValidateGenOrDelete(context, n); -} - -bool ValidateIsQueryEXT(const Context *context, QueryID id) -{ - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kQueryExtensionNotEnabled); +bool ValidateGenQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *ids) +{ + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryExtensionNotEnabled); + return false; + } + + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateDeleteQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *ids) +{ + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryExtensionNotEnabled); + return false; + } + + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateIsQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryID id) +{ + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryExtensionNotEnabled); return false; } return true; } -bool ValidateBeginQueryBase(const Context *context, QueryType target, QueryID id) +bool ValidateBeginQueryBase(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + QueryID id) { if (!ValidQueryType(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidQueryType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidQueryType); return false; } if (id.value == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidQueryId); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidQueryId); return false; } // From EXT_occlusion_query_boolean: If BeginQueryEXT is called with an // of zero, if the active query object name for is non-zero (for the @@ -2047,107 +2154,116 @@ // of GL_ANY_SAMPLES_PASSED_EXT and GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT, // no query may be active for either if glBeginQuery targets either. if (context->getState().isQueryActive(target)) { - context->validationError(GL_INVALID_OPERATION, kOtherQueryActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kOtherQueryActive); return false; } // check that name was obtained with glGenQueries if (!context->isQueryGenerated(id)) { - context->validationError(GL_INVALID_OPERATION, kInvalidQueryId); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidQueryId); return false; } // Check for type mismatch. If query is not yet started we're good to go. Query *queryObject = context->getQuery(id); if (queryObject && queryObject->getType() != target) { - context->validationError(GL_INVALID_OPERATION, kQueryTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryTargetMismatch); return false; } return true; } -bool ValidateBeginQueryEXT(const Context *context, QueryType target, QueryID id) -{ - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery) - { - context->validationError(GL_INVALID_OPERATION, kQueryExtensionNotEnabled); - return false; - } - - return ValidateBeginQueryBase(context, target, id); -} - -bool ValidateEndQueryBase(const Context *context, QueryType target) +bool ValidateBeginQueryEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + QueryID id) +{ + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT && + !context->getExtensions().syncQueryCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryExtensionNotEnabled); + return false; + } + + return ValidateBeginQueryBase(context, entryPoint, target, id); +} + +bool ValidateEndQueryBase(const Context *context, angle::EntryPoint entryPoint, QueryType target) { if (!ValidQueryType(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidQueryType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidQueryType); return false; } const Query *queryObject = context->getState().getActiveQuery(target); if (queryObject == nullptr) { - context->validationError(GL_INVALID_OPERATION, kQueryInactive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryInactive); return false; } return true; } -bool ValidateEndQueryEXT(const Context *context, QueryType target) -{ - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery) - { - context->validationError(GL_INVALID_OPERATION, kQueryExtensionNotEnabled); - return false; - } - - return ValidateEndQueryBase(context, target); -} - -bool ValidateQueryCounterEXT(const Context *context, QueryID id, QueryType target) -{ - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateEndQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryType target) +{ + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT && + !context->getExtensions().syncQueryCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryExtensionNotEnabled); + return false; + } + + return ValidateEndQueryBase(context, entryPoint, target); +} + +bool ValidateQueryCounterEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryID id, + QueryType target) +{ + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (target != QueryType::Timestamp) { - context->validationError(GL_INVALID_ENUM, kInvalidQueryTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidQueryTarget); return false; } if (!context->isQueryGenerated(id)) { - context->validationError(GL_INVALID_OPERATION, kInvalidQueryId); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidQueryId); return false; } // If query object is not started, that's fine. Query *queryObject = context->getQuery(id); if (queryObject && context->getState().isQueryActive(queryObject)) { - context->validationError(GL_INVALID_OPERATION, kQueryActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryActive); return false; } return true; } bool ValidateGetQueryivBase(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, GLsizei *numParams) { if (numParams) @@ -2155,33 +2271,33 @@ *numParams = 0; } if (!ValidQueryType(context, target) && target != QueryType::Timestamp) { - context->validationError(GL_INVALID_ENUM, kInvalidQueryType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidQueryType); return false; } switch (pname) { case GL_CURRENT_QUERY_EXT: if (target == QueryType::Timestamp) { - context->validationError(GL_INVALID_ENUM, kInvalidQueryTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidQueryTarget); return false; } break; case GL_QUERY_COUNTER_BITS_EXT: - if (!context->getExtensions().disjointTimerQuery || + if (!context->getExtensions().disjointTimerQueryEXT || (target != QueryType::Timestamp && target != QueryType::TimeElapsed)) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } if (numParams) { @@ -2191,54 +2307,58 @@ return true; } bool ValidateGetQueryivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, const GLint *params) { - if (!context->getExtensions().occlusionQueryBoolean && - !context->getExtensions().disjointTimerQuery && !context->getExtensions().syncQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateGetQueryivBase(context, target, pname, nullptr); + if (!context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().disjointTimerQueryEXT && + !context->getExtensions().syncQueryCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateGetQueryivBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetQueryivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetQueryivBase(context, target, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetQueryivBase(context, entryPoint, target, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetQueryObjectValueBase(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei *numParams) { if (numParams) @@ -2246,11 +2366,11 @@ *numParams = 1; } if (context->isContextLost()) { - context->validationError(GL_CONTEXT_LOST, kContextLost); + context->validationError(entryPoint, GL_CONTEXT_LOST, kContextLost); if (pname == GL_QUERY_RESULT_AVAILABLE_EXT) { // Generate an error but still return true, the context still needs to return a // value in this case. @@ -2264,250 +2384,261 @@ Query *queryObject = context->getQuery(id); if (!queryObject) { - context->validationError(GL_INVALID_OPERATION, kInvalidQueryId); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidQueryId); return false; } if (context->getState().isQueryActive(queryObject)) { - context->validationError(GL_INVALID_OPERATION, kQueryActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kQueryActive); return false; } switch (pname) { case GL_QUERY_RESULT_EXT: case GL_QUERY_RESULT_AVAILABLE_EXT: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateGetQueryObjectivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLint *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - return ValidateGetQueryObjectValueBase(context, id, pname, nullptr); + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + return ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, nullptr); } bool ValidateGetQueryObjectivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetQueryObjectValueBase(context, id, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetQueryObjectuivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLuint *params) { - if (!context->getExtensions().disjointTimerQuery && - !context->getExtensions().occlusionQueryBoolean && !context->getExtensions().syncQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - return ValidateGetQueryObjectValueBase(context, id, pname, nullptr); + if (!context->getExtensions().disjointTimerQueryEXT && + !context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().syncQueryCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + return ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, nullptr); } bool ValidateGetQueryObjectuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params) { - if (!context->getExtensions().disjointTimerQuery && - !context->getExtensions().occlusionQueryBoolean && !context->getExtensions().syncQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!context->getExtensions().disjointTimerQueryEXT && + !context->getExtensions().occlusionQueryBooleanEXT && + !context->getExtensions().syncQueryCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetQueryObjectValueBase(context, id, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetQueryObjecti64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLint64 *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - return ValidateGetQueryObjectValueBase(context, id, pname, nullptr); + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + return ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, nullptr); } bool ValidateGetQueryObjecti64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, GLint64 *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetQueryObjectValueBase(context, id, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetQueryObjectui64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLuint64 *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - return ValidateGetQueryObjectValueBase(context, id, pname, nullptr); + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + return ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, nullptr); } bool ValidateGetQueryObjectui64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, GLsizei bufSize, const GLsizei *length, GLuint64 *params) { - if (!context->getExtensions().disjointTimerQuery) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!context->getExtensions().disjointTimerQueryEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetQueryObjectValueBase(context, id, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateUniformCommonBase(const Context *context, + angle::EntryPoint entryPoint, const Program *program, UniformLocation location, GLsizei count, const LinkedUniform **uniformOut) { // TODO(Jiajia): Add image uniform check in future. if (count < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } if (!program) { - context->validationError(GL_INVALID_OPERATION, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidProgramName); return false; } if (!program->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (location.value == -1) { @@ -2517,11 +2648,11 @@ const auto &uniformLocations = program->getUniformLocations(); size_t castedLocation = static_cast(location.value); if (castedLocation >= uniformLocations.size()) { - context->validationError(GL_INVALID_OPERATION, kInvalidUniformLocation); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidUniformLocation); return false; } const auto &uniformLocation = uniformLocations[castedLocation]; if (uniformLocation.ignored) @@ -2530,28 +2661,29 @@ return false; } if (!uniformLocation.used()) { - context->validationError(GL_INVALID_OPERATION, kInvalidUniformLocation); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidUniformLocation); return false; } const auto &uniform = program->getUniformByIndex(uniformLocation.index); // attempting to write an array to a non-array uniform is an INVALID_OPERATION if (count > 1 && !uniform.isArray()) { - context->validationError(GL_INVALID_OPERATION, kInvalidUniformCount); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidUniformCount); return false; } *uniformOut = &uniform; return true; } bool ValidateUniform1ivValue(const Context *context, + angle::EntryPoint entryPoint, GLenum uniformType, GLsizei count, const GLint *value) { // Value type is GL_INT, because we only get here from glUniform1i{v}. @@ -2568,81 +2700,92 @@ const GLint max = context->getCaps().maxCombinedTextureImageUnits; for (GLsizei i = 0; i < count; ++i) { if (value[i] < 0 || value[i] >= max) { - context->validationError(GL_INVALID_VALUE, kSamplerUniformValueOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, + kSamplerUniformValueOutOfRange); return false; } } return true; } - context->validationError(GL_INVALID_OPERATION, kUniformTypeMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, kUniformTypeMismatch); return false; } -bool ValidateUniformMatrixValue(const Context *context, GLenum valueType, GLenum uniformType) +bool ValidateUniformMatrixValue(const Context *context, + angle::EntryPoint entryPoint, + GLenum valueType, + GLenum uniformType) { // Check that the value type is compatible with uniform type. if (valueType == uniformType) { return true; } - context->validationError(GL_INVALID_OPERATION, kUniformTypeMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, kUniformTypeMismatch); return false; } bool ValidateUniform(const Context *context, + angle::EntryPoint entryPoint, GLenum valueType, UniformLocation location, GLsizei count) { const LinkedUniform *uniform = nullptr; Program *programObject = context->getActiveLinkedProgram(); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniformValue(context, valueType, uniform->type); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniformValue(context, entryPoint, valueType, uniform->type); } bool ValidateUniform1iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLint *value) { const LinkedUniform *uniform = nullptr; Program *programObject = context->getActiveLinkedProgram(); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniform1ivValue(context, uniform->type, count, value); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniform1ivValue(context, entryPoint, uniform->type, count, value); } bool ValidateUniformMatrix(const Context *context, + angle::EntryPoint entryPoint, GLenum valueType, UniformLocation location, GLsizei count, GLboolean transpose) { if (ConvertToBool(transpose) && context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_VALUE, kES3Required); + context->validationError(entryPoint, GL_INVALID_VALUE, kES3Required); return false; } const LinkedUniform *uniform = nullptr; Program *programObject = context->getActiveLinkedProgram(); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniformMatrixValue(context, valueType, uniform->type); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniformMatrixValue(context, entryPoint, valueType, uniform->type); } bool ValidateStateQuery(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLenum *nativeType, unsigned int *numParams) { if (!context->getQueryParameterInfo(pname, nativeType, numParams)) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } const Caps &caps = context->getCaps(); @@ -2650,11 +2793,11 @@ { int colorAttachment = (pname - GL_DRAW_BUFFER0); if (colorAttachment >= caps.maxDrawBuffers) { - context->validationError(GL_INVALID_OPERATION, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIndexExceedsMaxDrawBuffer); return false; } } switch (pname) @@ -2664,69 +2807,80 @@ case GL_TEXTURE_BINDING_3D: case GL_TEXTURE_BINDING_2D_ARRAY: case GL_TEXTURE_BINDING_2D_MULTISAMPLE: break; case GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: - if (!context->getExtensions().textureStorageMultisample2DArrayOES) - { - context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired); + if (!context->getExtensions().textureStorageMultisample2dArrayOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kMultisampleArrayExtensionRequired); return false; } break; case GL_TEXTURE_BINDING_RECTANGLE_ANGLE: - if (!context->getExtensions().textureRectangle) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().textureRectangleANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_BINDING_EXTERNAL_OES: - if (!context->getExtensions().eglStreamConsumerExternalNV && - !context->getExtensions().eglImageExternalOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().EGLStreamConsumerExternalNV && + !context->getExtensions().EGLImageExternalOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_BUFFER_BINDING: case GL_TEXTURE_BINDING_BUFFER: case GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: case GL_MAX_TEXTURE_BUFFER_SIZE: if (context->getClientVersion() < Version(3, 2) && !context->getExtensions().textureBufferAny()) { - context->validationError(GL_INVALID_ENUM, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTextureBufferExtensionNotAvailable); return false; } break; case GL_IMPLEMENTATION_COLOR_READ_TYPE: case GL_IMPLEMENTATION_COLOR_READ_FORMAT: { Framebuffer *readFramebuffer = context->getState().getReadFramebuffer(); ASSERT(readFramebuffer); - if (!ValidateFramebufferComplete(context, readFramebuffer)) + if (!ValidateFramebufferComplete(context, entryPoint, + readFramebuffer)) { return false; } if (readFramebuffer->getReadBufferState() == GL_NONE) { - context->validationError(GL_INVALID_OPERATION, kReadBufferNone); + context->validationError(entryPoint, GL_INVALID_OPERATION, kReadBufferNone); return false; } const FramebufferAttachment *attachment = readFramebuffer->getReadColorAttachment(); if (!attachment) { - context->validationError(GL_INVALID_OPERATION, kReadBufferNotAttached); + context->validationError(entryPoint, GL_INVALID_OPERATION, kReadBufferNotAttached); return false; } } break; + case GL_PRIMITIVE_BOUNDING_BOX: + if (!context->getExtensions().primitiveBoundingBoxEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); + return false; + } + break; + default: break; } // pname is valid, but there are no parameters to return @@ -2737,76 +2891,80 @@ return true; } bool ValidateGetBooleanvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLboolean *params) { GLenum nativeType; unsigned int numParams = 0; - if (!ValidateRobustStateQuery(context, pname, bufSize, &nativeType, &numParams)) + if (!ValidateRobustStateQuery(context, entryPoint, pname, bufSize, &nativeType, &numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetFloatvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params) { GLenum nativeType; unsigned int numParams = 0; - if (!ValidateRobustStateQuery(context, pname, bufSize, &nativeType, &numParams)) + if (!ValidateRobustStateQuery(context, entryPoint, pname, bufSize, &nativeType, &numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetIntegervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *data) { GLenum nativeType; unsigned int numParams = 0; - if (!ValidateRobustStateQuery(context, pname, bufSize, &nativeType, &numParams)) + if (!ValidateRobustStateQuery(context, entryPoint, pname, bufSize, &nativeType, &numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetInteger64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, GLint64 *data) { GLenum nativeType; unsigned int numParams = 0; - if (!ValidateRobustStateQuery(context, pname, bufSize, &nativeType, &numParams)) + if (!ValidateRobustStateQuery(context, entryPoint, pname, bufSize, &nativeType, &numParams)) { return false; } if (nativeType == GL_INT_64_ANGLEX) @@ -2818,34 +2976,38 @@ SetRobustLengthParam(length, numParams); return true; } bool ValidateRobustStateQuery(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, GLenum *nativeType, unsigned int *numParams) { - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - if (!ValidateStateQuery(context, pname, nativeType, numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, *numParams)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + if (!ValidateStateQuery(context, entryPoint, pname, nativeType, numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, *numParams)) { return false; } return true; } -bool ValidateCopyImageSubDataTarget(const Context *context, GLuint name, GLenum target) +bool ValidateCopyImageSubDataTarget(const Context *context, + angle::EntryPoint entryPoint, + GLuint name, + GLenum target) { // From EXT_copy_image: INVALID_ENUM is generated if either or is not // RENDERBUFFER or a valid non - proxy texture target, is TEXTURE_BUFFER, or is one of the // cubemap face selectors described in table 3.17, or if the target does not match the type of // the object. INVALID_VALUE is generated if either or does not correspond @@ -2855,11 +3017,11 @@ case GL_RENDERBUFFER: { RenderbufferID renderbuffer = PackParam(name); if (!context->isRenderbuffer(renderbuffer)) { - context->validationError(GL_INVALID_VALUE, kInvalidRenderbufferName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidRenderbufferName); return false; } break; } case GL_TEXTURE_2D: @@ -2869,31 +3031,69 @@ case GL_TEXTURE_CUBE_MAP_ARRAY_EXT: { TextureID texture = PackParam(name); if (!context->isTexture(texture)) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTextureName); return false; } Texture *textureObject = context->getTexture(texture); if (textureObject && textureObject->getType() != PackParam(target)) { - context->validationError(GL_INVALID_VALUE, err::kTextureTypeMismatch); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kTextureTypeMismatch); return false; } break; } default: - context->validationError(GL_INVALID_ENUM, kInvalidTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTarget); + return false; + } + + return true; +} + +bool ValidateCopyImageSubDataLevel(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint level) +{ + switch (target) + { + case GL_RENDERBUFFER: + { + if (level != 0) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + break; + } + case GL_TEXTURE_2D: + case GL_TEXTURE_3D: + case GL_TEXTURE_2D_ARRAY: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_CUBE_MAP_ARRAY_EXT: + { + if (!ValidMipLevel(context, PackParam(target), level)) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + break; + } + default: + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTarget); return false; } return true; } bool ValidateCopyImageSubDataTargetRegion(const Context *context, + angle::EntryPoint entryPoint, GLuint name, GLenum target, GLint level, GLint offsetX, GLint offsetY, @@ -2904,51 +3104,36 @@ { // INVALID_VALUE is generated if the dimensions of the either subregion exceeds the boundaries // of the corresponding image object. if (offsetX < 0 || offsetY < 0 || offsetZ < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (target == GL_RENDERBUFFER) { - // For renderbuffers, this value must be zero. INVALID_VALUE is generated if the specified - // level is not a valid level for the image. - if (level != 0) - { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); - return false; - } - // INVALID_VALUE is generated if the dimensions of the either subregion exceeds the // boundaries of the corresponding image object Renderbuffer *buffer = context->getRenderbuffer(PackParam(name)); if ((buffer->getWidth() - offsetX < width) || (buffer->getHeight() - offsetY < height)) { - context->validationError(GL_INVALID_VALUE, kSourceTextureTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureTooSmall); return false; } } else { - // INVALID_VALUE is generated if the specified level is not a valid level for the image - if (!ValidMipLevel(context, PackParam(target), level)) - { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); - return false; - } - Texture *texture = context->getTexture(PackParam(name)); // INVALID_OPERATION is generated if either object is a texture and the texture is not // complete // This will handle the texture completeness check. Note that this is missing // completeness validation that ignores format-based compleness rules. if (!texture->isSamplerComplete(context, nullptr)) { - context->validationError(GL_INVALID_OPERATION, kNotTextureComplete); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNotTextureComplete); return false; } GLenum textureTargetToUse = target; if (target == GL_TEXTURE_CUBE_MAP) @@ -2964,11 +3149,11 @@ // INVALID_VALUE is generated if the dimensions of the either subregion exceeds the // boundaries of the corresponding image object if ((textureWidth - offsetX < width) || (textureHeight - offsetY < height)) { - context->validationError(GL_INVALID_VALUE, kSourceTextureTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureTooSmall); return false; } *samples = texture->getSamples(PackParam(textureTargetToUse), level); *samples = (*samples == 0) ? 1 : *samples; @@ -2976,10 +3161,11 @@ return true; } bool ValidateCompressedRegion(const Context *context, + angle::EntryPoint entryPoint, const InternalFormat &formatInfo, GLsizei width, GLsizei height) { ASSERT(formatInfo.compressed); @@ -2987,18 +3173,19 @@ // INVALID_VALUE is generated if the image format is compressed and the dimensions of the // subregion fail to meet the alignment constraints of the format. if ((width % formatInfo.compressedBlockWidth != 0) || (height % formatInfo.compressedBlockHeight != 0)) { - context->validationError(GL_INVALID_VALUE, kInvalidCompressedRegionSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCompressedRegionSize); return false; } return true; } const InternalFormat &GetTargetFormatInfo(const Context *context, + angle::EntryPoint entryPoint, GLuint name, GLenum target, GLint level) { static const InternalFormat defaultInternalFormat; @@ -3007,11 +3194,10 @@ { case GL_RENDERBUFFER: { Renderbuffer *buffer = context->getRenderbuffer(PackParam(name)); return *buffer->getFormat().info; - break; } case GL_TEXTURE_2D: case GL_TEXTURE_3D: case GL_TEXTURE_2D_ARRAY: case GL_TEXTURE_CUBE_MAP: @@ -3027,11 +3213,11 @@ textureTargetToUse = GL_TEXTURE_CUBE_MAP_POSITIVE_X; } return *texture->getFormat(PackParam(textureTargetToUse), level).info; } default: - context->validationError(GL_INVALID_ENUM, kInvalidTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTarget); return defaultInternalFormat; } } bool ValidateCopyMixedFormatCompatible(GLenum uncompressedFormat, GLenum compressedFormat) @@ -3110,11 +3296,10 @@ case GL_RGBA32F: return true; default: return false; } - break; } case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: @@ -3137,11 +3322,10 @@ case GL_RG32F: return true; default: return false; } - break; } default: break; } @@ -3295,10 +3479,11 @@ return ValidateCopyCompressedFormatCompatible(srcFormatInfo, dstFormatInfo); } bool ValidateCopyImageSubDataBase(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -3315,34 +3500,49 @@ { // INVALID_VALUE is generated if the dimensions of the either subregion exceeds the boundaries // of the corresponding image object if ((srcWidth < 0) || (srcHeight < 0) || (srcDepth < 0)) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); - return false; - } - - if (!ValidateCopyImageSubDataTarget(context, srcName, srcTarget)) - { - return false; - } - if (!ValidateCopyImageSubDataTarget(context, dstName, dstTarget)) + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); + return false; + } + + if (!ValidateCopyImageSubDataTarget(context, entryPoint, srcName, srcTarget)) + { + return false; + } + if (!ValidateCopyImageSubDataTarget(context, entryPoint, dstName, dstTarget)) + { + return false; + } + + if (!ValidateCopyImageSubDataLevel(context, entryPoint, srcTarget, srcLevel)) + { + return false; + } + if (!ValidateCopyImageSubDataLevel(context, entryPoint, dstTarget, dstLevel)) { return false; } const InternalFormat &srcFormatInfo = - GetTargetFormatInfo(context, srcName, srcTarget, srcLevel); + GetTargetFormatInfo(context, entryPoint, srcName, srcTarget, srcLevel); const InternalFormat &dstFormatInfo = - GetTargetFormatInfo(context, dstName, dstTarget, dstLevel); + GetTargetFormatInfo(context, entryPoint, dstName, dstTarget, dstLevel); GLsizei dstWidth = srcWidth; GLsizei dstHeight = srcHeight; GLsizei srcSamples = 1; GLsizei dstSamples = 1; - if (!ValidateCopyImageSubDataTargetRegion(context, srcName, srcTarget, srcLevel, srcX, srcY, - srcZ, srcWidth, srcHeight, &srcSamples)) + if (srcFormatInfo.internalFormat == GL_NONE || dstFormatInfo.internalFormat == GL_NONE) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTextureLevel); + return false; + } + + if (!ValidateCopyImageSubDataTargetRegion(context, entryPoint, srcName, srcTarget, srcLevel, + srcX, srcY, srcZ, srcWidth, srcHeight, &srcSamples)) { return false; } // When copying from a compressed image to an uncompressed image the image texel dimensions @@ -3363,12 +3563,12 @@ { dstWidth *= dstFormatInfo.compressedBlockWidth; dstHeight *= dstFormatInfo.compressedBlockHeight; } - if (!ValidateCopyImageSubDataTargetRegion(context, dstName, dstTarget, dstLevel, dstX, dstY, - dstZ, dstWidth, dstHeight, &dstSamples)) + if (!ValidateCopyImageSubDataTargetRegion(context, entryPoint, dstName, dstTarget, dstLevel, + dstX, dstY, dstZ, dstWidth, dstHeight, &dstSamples)) { return false; } bool fillsEntireMip = false; @@ -3383,41 +3583,42 @@ fillsEntireMip = dstX == 0 && dstY == 0 && dstZ == 0 && srcWidth == dstExtents.width && srcHeight == dstExtents.height && srcDepth == dstExtents.depth; } if (srcFormatInfo.compressed && !fillsEntireMip && - !ValidateCompressedRegion(context, srcFormatInfo, srcWidth, srcHeight)) + !ValidateCompressedRegion(context, entryPoint, srcFormatInfo, srcWidth, srcHeight)) { return false; } if (dstFormatInfo.compressed && !fillsEntireMip && - !ValidateCompressedRegion(context, dstFormatInfo, dstWidth, dstHeight)) + !ValidateCompressedRegion(context, entryPoint, dstFormatInfo, dstWidth, dstHeight)) { return false; } // From EXT_copy_image: INVALID_OPERATION is generated if the source and destination formats // are not compatible, if one image is compressed and the other is uncompressed and the block // size of compressed image is not equal to the texel size of the compressed image. if (!ValidateCopyFormatCompatible(srcFormatInfo, dstFormatInfo)) { - context->validationError(GL_INVALID_OPERATION, kIncompatibleTextures); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIncompatibleTextures); return false; } // INVALID_OPERATION is generated if the source and destination number of samples do not match if (srcSamples != dstSamples) { - context->validationError(GL_INVALID_OPERATION, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange); return false; } return true; } bool ValidateCopyTexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -3432,85 +3633,86 @@ { TextureType texType = TextureTargetToType(target); if (xoffset < 0 || yoffset < 0 || zoffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } if (std::numeric_limits::max() - xoffset < width || std::numeric_limits::max() - yoffset < height) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } if (border != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidBorder); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBorder); return false; } if (!ValidMipLevel(context, texType, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } const State &state = context->getState(); Framebuffer *readFramebuffer = state.getReadFramebuffer(); - if (!ValidateFramebufferComplete(context, readFramebuffer)) + if (!ValidateFramebufferComplete(context, entryPoint, readFramebuffer)) { return false; } // checkReadBufferResourceSamples = true. Treat renderToTexture textures as single sample since // they will be resolved before copying. if (!readFramebuffer->isDefault() && - !ValidateFramebufferNotMultisampled(context, readFramebuffer, true)) + !ValidateFramebufferNotMultisampled(context, entryPoint, readFramebuffer, true)) { return false; } if (readFramebuffer->getReadBufferState() == GL_NONE) { - context->validationError(GL_INVALID_OPERATION, kReadBufferNone); + context->validationError(entryPoint, GL_INVALID_OPERATION, kReadBufferNone); return false; } // WebGL 1.0 [Section 6.26] Reading From a Missing Attachment // In OpenGL ES it is undefined what happens when an operation tries to read from a missing // attachment and WebGL defines it to be an error. We do the check unconditionally as the // situation is an application error that would lead to a crash in ANGLE. const FramebufferAttachment *source = readFramebuffer->getReadColorAttachment(); if (source == nullptr) { - context->validationError(GL_INVALID_OPERATION, kMissingReadAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingReadAttachment); return false; } if (source->isYUV()) { - context->validationError(GL_INVALID_OPERATION, kCopyFromYUVFramebuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kCopyFromYUVFramebuffer); return false; } // ANGLE_multiview spec, Revision 1: // Calling CopyTexSubImage3D, CopyTexImage2D, or CopyTexSubImage2D will result in an // INVALID_FRAMEBUFFER_OPERATION error if the multi-view layout of the current read framebuffer // is FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE or the number of views in the current read // framebuffer is more than one. if (readFramebuffer->readDisallowedByMultiview()) { - context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kMultiviewReadFramebuffer); + context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION, + kMultiviewReadFramebuffer); return false; } const Caps &caps = context->getCaps(); @@ -3537,99 +3739,100 @@ case TextureType::_3D: maxDimension = caps.max3DTextureSize; break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } Texture *texture = state.getTargetTexture(texType); if (!texture) { - context->validationError(GL_INVALID_OPERATION, kTextureNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureNotBound); return false; } if (texture->getImmutableFormat() && !isSubImage) { - context->validationError(GL_INVALID_OPERATION, kTextureIsImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsImmutable); return false; } const InternalFormat &formatInfo = isSubImage ? *texture->getFormat(target, level).info : GetInternalFormatInfo(internalformat, GL_UNSIGNED_BYTE); if (formatInfo.depthBits > 0 || formatInfo.compressed) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } if (isSubImage) { if (static_cast(xoffset + width) > texture->getWidth(target, level) || static_cast(yoffset + height) > texture->getHeight(target, level) || static_cast(zoffset) >= texture->getDepth(target, level)) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } } else { if ((texType == TextureType::CubeMap || texType == TextureType::CubeMapArray) && width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapIncomplete); + context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapIncomplete); return false; } if (!formatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } int maxLevelDimension = (maxDimension >> level); if (static_cast(width) > maxLevelDimension || static_cast(height) > maxLevelDimension) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } - if (textureFormatOut) + // Do not leak the previous texture format for non-subImage case. + if (textureFormatOut && isSubImage) { *textureFormatOut = texture->getFormat(target, level); } // Detect texture copying feedback loops for WebGL. - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { if (readFramebuffer->formsCopyingFeedbackLoopWith(texture->id(), level, zoffset)) { - context->validationError(GL_INVALID_OPERATION, kFeedbackLoop); + context->validationError(entryPoint, GL_INVALID_OPERATION, kFeedbackLoop); return false; } } return true; } -const char *ValidateProgramPipelineDrawStates(const State &state, +const char *ValidateProgramPipelineDrawStates(const Context *context, const Extensions &extensions, ProgramPipeline *programPipeline) { for (const ShaderType shaderType : gl::AllShaderTypes()) { Program *program = programPipeline->getShaderProgram(shaderType); if (program) { - const char *errorMsg = ValidateProgramDrawStates(state, extensions, program); + const char *errorMsg = ValidateProgramDrawStates(context, extensions, program); if (errorMsg) { return errorMsg; } } @@ -3641,12 +3844,18 @@ const char *ValidateProgramPipelineAttachedPrograms(ProgramPipeline *programPipeline) { // An INVALID_OPERATION error is generated by any command that transfers vertices to the // GL or launches compute work if the current set of active // program objects cannot be executed, for reasons including: + // - There is no current program object specified by UseProgram, there is a current program + // pipeline object, and that object is empty (no executable code is installed for any stage). // - A program object is active for at least one, but not all of the shader // stages that were present when the program was linked. + if (!programPipeline->getExecutable().getLinkedShaderStages().any()) + { + return gl::err::kNoExecutableCodeInstalled; + } for (const ShaderType shaderType : gl::AllShaderTypes()) { Program *shaderProgram = programPipeline->getShaderProgram(shaderType); if (shaderProgram) { @@ -3687,21 +3896,22 @@ // and UnmapBuffer entry points are removed from the WebGL 2.0 API. // https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.14 VertexArray *vertexArray = state.getVertexArray(); ASSERT(vertexArray); - if (!extensions.webglCompatibility && vertexArray->hasInvalidMappedArrayBuffer()) + if (!extensions.webglCompatibilityANGLE && vertexArray->hasInvalidMappedArrayBuffer()) { return kBufferMapped; } // Note: these separate values are not supported in WebGL, due to D3D's limitations. See // Section 6.10 of the WebGL 1.0 spec. Framebuffer *framebuffer = state.getDrawFramebuffer(); ASSERT(framebuffer); - if (context->getLimitations().noSeparateStencilRefsAndMasks || extensions.webglCompatibility) + if (context->getLimitations().noSeparateStencilRefsAndMasks || + extensions.webglCompatibilityANGLE) { ASSERT(framebuffer); const FramebufferAttachment *dsAttachment = framebuffer->getStencilOrDepthStencilAttachment(); const GLuint stencilBits = dsAttachment ? dsAttachment->getStencilSize() : 0; @@ -3720,21 +3930,21 @@ bool differentMasks = (depthStencilState.stencilMask & maxStencilValue) != (depthStencilState.stencilBackMask & maxStencilValue); if (differentRefs || differentWritemasks || differentMasks) { - if (!extensions.webglCompatibility) + if (!extensions.webglCompatibilityANGLE) { WARN() << "This ANGLE implementation does not support separate front/back " "stencil writemasks, reference values, or stencil mask values."; } return kStencilReferenceMaskOrMismatch; } } } - if (!extensions.floatBlend) + if (!extensions.floatBlendEXT) { const DrawBufferMask blendEnabledActiveFloat32ColorAttachmentDrawBufferMask = state.getBlendEnabledDrawBufferMask() & framebuffer->getActiveFloat32ColorAttachmentDrawBufferMask(); if (blendEnabledActiveFloat32ColorAttachmentDrawBufferMask.any()) @@ -3742,15 +3952,15 @@ return kUnsupportedFloatBlending; } } if (context->getLimitations().noSimultaneousConstantColorAndAlphaBlendFunc || - extensions.webglCompatibility) + extensions.webglCompatibilityANGLE) { if (state.hasSimultaneousConstantColorAndAlphaBlendFunc()) { - if (extensions.webglCompatibility) + if (extensions.webglCompatibilityANGLE) { return kInvalidConstantColor; } WARN() << kConstantColorAlphaLimitation; @@ -3790,11 +4000,11 @@ } } if (context->getStateCache().hasAnyEnabledClientAttrib()) { - if (extensions.webglCompatibility || !state.areClientArraysEnabled()) + if (extensions.webglCompatibilityANGLE || !state.areClientArraysEnabled()) { // [WebGL 1.0] Section 6.5 Enabled Vertex Attributes and Range Checking // If a vertex attribute is enabled as an array via enableVertexAttribArray but no // buffer is bound to that attribute via bindBuffer and vertexAttribPointer, then calls // to drawArrays or drawElements will generate an INVALID_OPERATION error. @@ -3818,40 +4028,33 @@ bool programIsYUVOutput = false; if (program) { - const char *errorMsg = ValidateProgramDrawStates(state, extensions, program); + const char *errorMsg = ValidateProgramDrawStates(context, extensions, program); if (errorMsg) { return errorMsg; } - programIsYUVOutput = program->isYUVOutput(); + programIsYUVOutput = executable->isYUVOutput(); } else if (programPipeline) { const char *errorMsg = ValidateProgramPipelineAttachedPrograms(programPipeline); if (errorMsg) { return errorMsg; } - errorMsg = ValidateProgramPipelineDrawStates(state, extensions, programPipeline); + errorMsg = ValidateProgramPipelineDrawStates(context, extensions, programPipeline); if (errorMsg) { return errorMsg; } - bool goodResult = programPipeline->link(context) == angle::Result::Continue; - - // If there is no active program for the vertex or fragment shader stages, the results - // of vertex and fragment shader execution will respectively be undefined. However, - // this is not an error, so ANGLE only signals PPO link failures if both VS and FS - // stages are present. - ASSERT(executable); - if (!goodResult && executable->hasVertexAndFragmentShader()) + if (!programPipeline->isLinked()) { return kProgramPipelineLinkFailed; } programIsYUVOutput = executable->isYUVOutput(); @@ -3889,15 +4092,15 @@ { return kSamplerFormatMismatch; } // Do some additional WebGL-specific validation - if (extensions.webglCompatibility) + if (extensions.webglCompatibilityANGLE) { const TransformFeedback *transformFeedbackObject = state.getCurrentTransformFeedback(); if (state.isTransformFeedbackActive() && - transformFeedbackObject->buffersBoundForOtherUse()) + transformFeedbackObject->buffersBoundForOtherUseInWebGL()) { return kTransformFeedbackBufferDoubleBound; } // Detect rendering feedback loops for WebGL. @@ -3943,20 +4146,21 @@ } return nullptr; } -void RecordDrawModeError(const Context *context, PrimitiveMode mode) +void RecordDrawModeError(const Context *context, angle::EntryPoint entryPoint, PrimitiveMode mode) { const State &state = context->getState(); TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback(); if (state.isTransformFeedbackActiveUnpaused()) { - if (!ValidateTransformFeedbackPrimitiveMode(context, + if (!ValidateTransformFeedbackPrimitiveMode(context, entryPoint, curTransformFeedback->getPrimitiveMode(), mode)) { - context->validationError(GL_INVALID_OPERATION, kInvalidDrawModeTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidDrawModeTransformFeedback); return; } } const Extensions &extensions = context->getExtensions(); @@ -3974,27 +4178,29 @@ case PrimitiveMode::LinesAdjacency: case PrimitiveMode::LineStripAdjacency: case PrimitiveMode::TrianglesAdjacency: case PrimitiveMode::TriangleStripAdjacency: - if (!extensions.geometryShader && context->getClientVersion() < ES_3_2) - { - context->validationError(GL_INVALID_ENUM, kGeometryShaderExtensionNotEnabled); + if (!extensions.geometryShaderAny() && context->getClientVersion() < ES_3_2) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kGeometryShaderExtensionNotEnabled); return; } break; case PrimitiveMode::Patches: if (!extensions.tessellationShaderEXT && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kTessellationShaderExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTessellationShaderExtensionNotEnabled); return; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidDrawMode); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDrawMode); return; } // If we are running GLES1, there is no current program. if (context->getClientVersion() >= Version(2, 0)) @@ -4006,68 +4212,70 @@ if (executable->hasLinkedShaderStage(ShaderType::Geometry)) { if (!IsCompatibleDrawModeWithGeometryShader( mode, executable->getGeometryShaderInputPrimitiveType())) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kIncompatibleDrawModeAgainstGeometryShader); return; } } if (executable->hasLinkedTessellationShader() && mode != PrimitiveMode::Patches) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kIncompatibleDrawModeWithTessellationShader); return; } if (!executable->hasLinkedTessellationShader() && mode == PrimitiveMode::Patches) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kIncompatibleDrawModeWithoutTessellationShader); return; } } // An error should be recorded. UNREACHABLE(); } bool ValidateDrawArraysInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount) { if (!context->getExtensions().instancedArraysANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateDrawArraysInstancedBase(context, mode, first, count, primcount)) - { - return false; - } - - return ValidateDrawInstancedANGLE(context); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, primcount)) + { + return false; + } + + return ValidateDrawInstancedANGLE(context, entryPoint); } bool ValidateDrawArraysInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount) { if (!context->getExtensions().instancedArraysEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateDrawArraysInstancedBase(context, mode, first, count, primcount)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, primcount)) { return false; } return true; @@ -4079,11 +4287,11 @@ if (context->getStateCache().isTransformFeedbackActiveUnpaused()) { // EXT_geometry_shader allows transform feedback to work with all draw commands. // [EXT_geometry_shader] Section 12.1, "Transform Feedback" - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) + if (!context->getExtensions().geometryShaderAny() && context->getClientVersion() < ES_3_2) { // It is an invalid operation to call DrawElements, DrawRangeElements or // DrawElementsInstanced while transform feedback is active, (3.0.2, section 2.14, pg // 86) return kUnsupportedDrawModeForTransformFeedback; @@ -4093,132 +4301,133 @@ const VertexArray *vao = state.getVertexArray(); Buffer *elementArrayBuffer = vao->getElementArrayBuffer(); if (elementArrayBuffer) { - if (context->getExtensions().webglCompatibility) - { - if (elementArrayBuffer->isBoundForTransformFeedbackAndOtherUse()) - { - return kElementArrayBufferBoundForTransformFeedback; - } - } - else if (elementArrayBuffer->isMapped()) - { - // WebGL buffers cannot be mapped/unmapped because the MapBufferRange, - // FlushMappedBufferRange, and UnmapBuffer entry points are removed from the - // WebGL 2.0 API. https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.14 + if (elementArrayBuffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + return kElementArrayBufferBoundForTransformFeedback; + } + if (elementArrayBuffer->isMapped() && + (!elementArrayBuffer->isImmutable() || + (elementArrayBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) == 0)) + { return kBufferMapped; } } else { // [WebGL 1.0] Section 6.2 No Client Side Arrays // If an indexed draw command (drawElements) is called and no WebGLBuffer is bound to // the ELEMENT_ARRAY_BUFFER binding point, an INVALID_OPERATION error is generated. - if (!context->getState().areClientArraysEnabled() || - context->getExtensions().webglCompatibility) + if (!context->getState().areClientArraysEnabled() || context->isWebGL()) { return kMustHaveElementArrayBinding; } } return nullptr; } bool ValidateDrawElementsInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount) { if (!context->getExtensions().instancedArraysANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateDrawElementsInstancedBase(context, mode, count, type, indices, primcount)) - { - return false; - } - - return ValidateDrawInstancedANGLE(context); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + primcount)) + { + return false; + } + + return ValidateDrawInstancedANGLE(context, entryPoint); } bool ValidateDrawElementsInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei primcount) { if (!context->getExtensions().instancedArraysEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateDrawElementsInstancedBase(context, mode, count, type, indices, primcount)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + primcount)) { return false; } return true; } bool ValidateGetUniformBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location) { if (program.value == 0) { - context->validationError(GL_INVALID_VALUE, kProgramDoesNotExist); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kProgramDoesNotExist); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (!programObject || !programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (!programObject->isValidUniformLocation(location)) { - context->validationError(GL_INVALID_OPERATION, kInvalidUniformLocation); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidUniformLocation); return false; } return true; } static bool ValidateSizedGetUniform(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, GLsizei *length) { if (length) { *length = 0; } - if (!ValidateGetUniformBase(context, program, location)) + if (!ValidateGetUniformBase(context, entryPoint, program, location)) { return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } Program *programObject = context->getProgramResolveLink(program); ASSERT(programObject); @@ -4226,11 +4435,11 @@ // sized queries -- ensure the provided buffer is large enough const LinkedUniform &uniform = programObject->getUniformByLocation(location); size_t requiredBytes = VariableExternalSize(uniform.type); if (static_cast(bufSize) < requiredBytes) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } if (length) { @@ -4238,19 +4447,21 @@ } return true; } bool ValidateGetnUniformfvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLfloat *params) { - return ValidateSizedGetUniform(context, program, location, bufSize, nullptr); + return ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, nullptr); } bool ValidateGetnUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLfloat *params) @@ -4258,19 +4469,21 @@ UNIMPLEMENTED(); return false; } bool ValidateGetnUniformivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLint *params) { - return ValidateSizedGetUniform(context, program, location, bufSize, nullptr); + return ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, nullptr); } bool ValidateGetnUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLint *params) @@ -4278,10 +4491,11 @@ UNIMPLEMENTED(); return false; } bool ValidateGetnUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLuint *params) @@ -4289,116 +4503,122 @@ UNIMPLEMENTED(); return false; } bool ValidateGetUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; // bufSize is validated in ValidateSizedGetUniform - if (!ValidateSizedGetUniform(context, program, location, bufSize, &writeLength)) + if (!ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, &writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; // bufSize is validated in ValidateSizedGetUniform - if (!ValidateSizedGetUniform(context, program, location, bufSize, &writeLength)) + if (!ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, &writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLsizei *length, const GLuint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } GLsizei writeLength = 0; // bufSize is validated in ValidateSizedGetUniform - if (!ValidateSizedGetUniform(context, program, location, bufSize, &writeLength)) + if (!ValidateSizedGetUniform(context, entryPoint, program, location, bufSize, &writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateDiscardFramebufferBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments, bool defaultFramebuffer) { if (numAttachments < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeAttachments); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeAttachments); return false; } for (GLsizei i = 0; i < numAttachments; ++i) { if (attachments[i] >= GL_COLOR_ATTACHMENT0 && attachments[i] <= GL_COLOR_ATTACHMENT31) { if (defaultFramebuffer) { - context->validationError(GL_INVALID_ENUM, kDefaultFramebufferInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, + kDefaultFramebufferInvalidAttachment); return false; } if (attachments[i] >= GL_COLOR_ATTACHMENT0 + static_cast(context->getCaps().maxColorAttachments)) { - context->validationError(GL_INVALID_OPERATION, kExceedsMaxColorAttachments); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kExceedsMaxColorAttachments); return false; } } else { @@ -4407,42 +4627,45 @@ case GL_DEPTH_ATTACHMENT: case GL_STENCIL_ATTACHMENT: case GL_DEPTH_STENCIL_ATTACHMENT: if (defaultFramebuffer) { - context->validationError(GL_INVALID_ENUM, + context->validationError(entryPoint, GL_INVALID_ENUM, kDefaultFramebufferInvalidAttachment); return false; } break; case GL_COLOR: case GL_DEPTH: case GL_STENCIL: if (!defaultFramebuffer) { - context->validationError(GL_INVALID_ENUM, + context->validationError(entryPoint, GL_INVALID_ENUM, kDefaultFramebufferAttachmentOnUserFBO); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } } } return true; } -bool ValidateInsertEventMarkerEXT(const Context *context, GLsizei length, const char *marker) -{ - if (!context->getExtensions().debugMarker) +bool ValidateInsertEventMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const char *marker) +{ + if (!context->getExtensions().debugMarkerEXT) { // The debug marker calls should not set error state // However, it seems reasonable to set an error state if the extension is not enabled - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } // Note that debug marker calls must not set error state if (length < 0) @@ -4456,17 +4679,20 @@ } return true; } -bool ValidatePushGroupMarkerEXT(const Context *context, GLsizei length, const char *marker) -{ - if (!context->getExtensions().debugMarker) +bool ValidatePushGroupMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const char *marker) +{ + if (!context->getExtensions().debugMarkerEXT) { // The debug marker calls should not set error state // However, it seems reasonable to set an error state if the extension is not enabled - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } // Note that debug marker calls must not set error state if (length < 0) @@ -4481,205 +4707,216 @@ return true; } bool ValidateEGLImageTargetTexture2DOES(const Context *context, + angle::EntryPoint entryPoint, TextureType type, GLeglImageOES image) { - if (!context->getExtensions().eglImageOES && !context->getExtensions().eglImageExternalOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().EGLImageOES && !context->getExtensions().EGLImageExternalOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (type) { case TextureType::_2D: - if (!context->getExtensions().eglImageOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().EGLImageOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); } break; case TextureType::_2DArray: - if (!context->getExtensions().eglImageArray) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().EGLImageArrayEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); } break; case TextureType::External: - if (!context->getExtensions().eglImageExternalOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().EGLImageExternalOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } egl::Image *imageObject = static_cast(image); ASSERT(context->getDisplay()); if (!context->getDisplay()->isValidImage(imageObject)) { - context->validationError(GL_INVALID_VALUE, kInvalidEGLImage); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidEGLImage); return false; } if (imageObject->getSamples() > 0) { - context->validationError(GL_INVALID_OPERATION, kEGLImageCannotCreate2DMultisampled); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kEGLImageCannotCreate2DMultisampled); return false; } if (!imageObject->isTexturable(context)) { - context->validationError(GL_INVALID_OPERATION, kEGLImageTextureFormatNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kEGLImageTextureFormatNotSupported); return false; } if (imageObject->isLayered() && type != TextureType::_2DArray) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, "Image has more than 1 layer, target must be TEXTURE_2D_ARRAY"); return false; } if (imageObject->isYUV() && type != TextureType::External) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, "Image is YUV, target must be TEXTURE_EXTERNAL_OES"); return false; } + if (imageObject->hasProtectedContent() != context->getState().hasProtectedContent()) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + "Mismatch between Image and Context Protected Content state"); + return false; + } + return true; } bool ValidateEGLImageTargetRenderbufferStorageOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLeglImageOES image) { - if (!context->getExtensions().eglImageOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().EGLImageOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (target) { case GL_RENDERBUFFER: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } egl::Image *imageObject = static_cast(image); ASSERT(context->getDisplay()); if (!context->getDisplay()->isValidImage(imageObject)) { - context->validationError(GL_INVALID_VALUE, kInvalidEGLImage); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidEGLImage); return false; } if (!imageObject->isRenderable(context)) { - context->validationError(GL_INVALID_OPERATION, kEGLImageRenderbufferFormatNotSupported); - return false; - } - - return true; -} - -bool ValidateBindVertexArrayBase(const Context *context, VertexArrayID array) -{ - if (!context->isVertexArrayGenerated(array)) - { - // The default VAO should always exist - ASSERT(array.value != 0); - context->validationError(GL_INVALID_OPERATION, kInvalidVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kEGLImageRenderbufferFormatNotSupported); + return false; + } + + if (imageObject->hasProtectedContent() != context->getState().hasProtectedContent()) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + "Mismatch between Image and Context Protected Content state"); return false; } return true; } bool ValidateProgramBinaryBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum binaryFormat, const void *binary, GLint length) { - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } const std::vector &programBinaryFormats = context->getCaps().programBinaryFormats; if (std::find(programBinaryFormats.begin(), programBinaryFormats.end(), binaryFormat) == programBinaryFormats.end()) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramBinaryFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramBinaryFormat); return false; } if (context->hasActiveTransformFeedback(program)) { // ES 3.0.4 section 2.15 page 91 - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackProgramBinary); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackProgramBinary); return false; } return true; } bool ValidateGetProgramBinaryBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary) { - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (context->getCaps().programBinaryFormats.empty()) { - context->validationError(GL_INVALID_OPERATION, kNoProgramBinaryFormats); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNoProgramBinaryFormats); return false; } return true; } -bool ValidateDrawBuffersBase(const Context *context, GLsizei n, const GLenum *bufs) +bool ValidateDrawBuffersBase(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs) { // INVALID_VALUE is generated if n is negative or greater than value of MAX_DRAW_BUFFERS if (n < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } if (n > context->getCaps().maxDrawBuffers) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } ASSERT(context->getState().getDrawFramebuffer()); FramebufferID frameBufferId = context->getState().getDrawFramebuffer()->id(); @@ -4699,49 +4936,52 @@ // Value in bufs is not NONE, BACK, or GL_COLOR_ATTACHMENTi // The 3.0.4 spec says to generate GL_INVALID_OPERATION here, but this // was changed to GL_INVALID_ENUM in 3.1, which dEQP also expects. // 3.1 is still a bit ambiguous about the error, but future specs are // expected to clarify that GL_INVALID_ENUM is the correct error. - context->validationError(GL_INVALID_ENUM, kInvalidDrawBuffer); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDrawBuffer); return false; } else if (bufs[colorAttachment] >= maxColorAttachment) { - context->validationError(GL_INVALID_OPERATION, kExceedsMaxColorAttachments); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExceedsMaxColorAttachments); return false; } else if (bufs[colorAttachment] != GL_NONE && bufs[colorAttachment] != attachment && frameBufferId.value != 0) { // INVALID_OPERATION-GL is bound to buffer and ith argument // is not COLOR_ATTACHMENTi or NONE - context->validationError(GL_INVALID_OPERATION, kInvalidDrawBufferValue); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDrawBufferValue); return false; } } // INVALID_OPERATION is generated if GL is bound to the default framebuffer // and n is not 1 or bufs is bound to value other than BACK and NONE if (frameBufferId.value == 0) { if (n != 1) { - context->validationError(GL_INVALID_OPERATION, kInvalidDrawBufferCountForDefault); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidDrawBufferCountForDefault); return false; } if (bufs[0] != GL_NONE && bufs[0] != GL_BACK) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebufferInvalidDrawBuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kDefaultFramebufferInvalidDrawBuffer); return false; } } return true; } bool ValidateGetBufferPointervBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, GLsizei *length, void *const *params) { @@ -4750,30 +4990,30 @@ *length = 0; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } switch (pname) { case GL_BUFFER_MAP_POINTER: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } // GLES 3.0 section 2.10.1: "Attempts to attempts to modify or query buffer object state for a // target bound to zero generate an INVALID_OPERATION error." // GLES 3.1 section 6.6 explicitly specifies this error. if (context->getState().getTargetBuffer(target) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kBufferPointerNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferPointerNotAvailable); return false; } if (length) { @@ -4781,68 +5021,71 @@ } return true; } -bool ValidateUnmapBufferBase(const Context *context, BufferBinding target) +bool ValidateUnmapBufferBase(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target) { if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (buffer == nullptr || !buffer->isMapped()) { - context->validationError(GL_INVALID_OPERATION, kBufferNotMapped); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotMapped); return false; } return true; } bool ValidateMapBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length, GLbitfield access) { if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } if (offset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (length < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLength); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLength); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (!buffer) { - context->validationError(GL_INVALID_OPERATION, kBufferNotMappable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotMappable); return false; } // Check for buffer overflow CheckedNumeric checkedOffset(offset); auto checkedSize = checkedOffset + length; if (!checkedSize.IsValid() || checkedSize.ValueOrDie() > static_cast(buffer->getSize())) { - context->validationError(GL_INVALID_VALUE, kMapOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kMapOutOfRange); return false; } // Check for invalid bits in the mask constexpr GLbitfield kAllAccessBits = @@ -4855,11 +5098,11 @@ constexpr GLbitfield kBufferStorageAccessBits = kAllAccessBits | GL_MAP_PERSISTENT_BIT_EXT | GL_MAP_COHERENT_BIT_EXT; if ((access & ~kBufferStorageAccessBits) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidAccessBits); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidAccessBits); return false; } // It is invalid if any of bufferStorageMatchedAccessBits bits are included in access, // but the same bits are not included in the buffer's storage flags @@ -4867,155 +5110,160 @@ GL_MAP_PERSISTENT_BIT_EXT | GL_MAP_COHERENT_BIT_EXT; GLbitfield accessFlags = access & kBufferStorageMatchedAccessBits; if ((accessFlags & buffer->getStorageExtUsageFlags()) != accessFlags) { - context->validationError(GL_INVALID_OPERATION, kInvalidAccessBits); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAccessBits); return false; } } else if ((access & ~kAllAccessBits) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidAccessBits); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidAccessBits); return false; } if (length == 0) { - context->validationError(GL_INVALID_OPERATION, kLengthZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kLengthZero); return false; } if (buffer->isMapped()) { - context->validationError(GL_INVALID_OPERATION, kBufferAlreadyMapped); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferAlreadyMapped); return false; } // Check for invalid bit combinations if ((access & (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT)) == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsReadWrite); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAccessBitsReadWrite); return false; } GLbitfield writeOnlyBits = GL_MAP_INVALIDATE_RANGE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT | GL_MAP_UNSYNCHRONIZED_BIT; if ((access & GL_MAP_READ_BIT) != 0 && (access & writeOnlyBits) != 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsRead); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAccessBitsRead); return false; } if ((access & GL_MAP_WRITE_BIT) == 0 && (access & GL_MAP_FLUSH_EXPLICIT_BIT) != 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsFlush); - return false; - } - - return ValidateMapBufferBase(context, target); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAccessBitsFlush); + return false; + } + + return ValidateMapBufferBase(context, entryPoint, target); } bool ValidateFlushMappedBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length) { if (offset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (length < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLength); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLength); return false; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (buffer == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFlushZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFlushZero); return false; } if (!buffer->isMapped() || (buffer->getAccessFlags() & GL_MAP_FLUSH_EXPLICIT_BIT) == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidFlushTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFlushTarget); return false; } // Check for buffer overflow CheckedNumeric checkedOffset(offset); auto checkedSize = checkedOffset + length; if (!checkedSize.IsValid() || checkedSize.ValueOrDie() > static_cast(buffer->getMapLength())) { - context->validationError(GL_INVALID_VALUE, kInvalidFlushOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFlushOutOfRange); return false; } return true; } -bool ValidateGenOrDelete(const Context *context, GLint n) +bool ValidateGenOrDelete(const Context *context, angle::EntryPoint entryPoint, GLint n) { if (n < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } return true; } -bool ValidateRobustEntryPoint(const Context *context, GLsizei bufSize) -{ - if (!context->getExtensions().robustClientMemory) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateRobustEntryPoint(const Context *context, angle::EntryPoint entryPoint, GLsizei bufSize) +{ + if (!context->getExtensions().robustClientMemoryANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } return true; } -bool ValidateRobustBufferSize(const Context *context, GLsizei bufSize, GLsizei numParams) +bool ValidateRobustBufferSize(const Context *context, + angle::EntryPoint entryPoint, + GLsizei bufSize, + GLsizei numParams) { if (bufSize < numParams) { - context->validationError(GL_INVALID_OPERATION, kInsufficientParams); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientParams); return false; } return true; } bool ValidateGetFramebufferAttachmentParameterivBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, GLsizei *numParams) { if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } int clientVersion = context->getClientMajorVersion(); @@ -5028,29 +5276,29 @@ break; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: if (clientVersion < 3 || - !(context->getExtensions().multiview || context->getExtensions().multiview2)) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + !(context->getExtensions().multiviewOVR || context->getExtensions().multiview2OVR)) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT: - if (!context->getExtensions().multisampledRenderToTexture) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().multisampledRenderToTextureEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: - if (clientVersion < 3 && !context->getExtensions().sRGB) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (clientVersion < 3 && !context->getExtensions().sRGBEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: @@ -5061,25 +5309,27 @@ case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: if (clientVersion < 3) { - context->validationError(GL_INVALID_ENUM, kES3Required); + context->validationError(entryPoint, GL_INVALID_ENUM, kES3Required); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT: - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) - { - context->validationError(GL_INVALID_ENUM, kGeometryShaderExtensionNotEnabled); + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kGeometryShaderExtensionNotEnabled); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } // Determine if the attachment is a valid enum switch (attachment) @@ -5087,35 +5337,35 @@ case GL_BACK: case GL_DEPTH: case GL_STENCIL: if (clientVersion < 3) { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } break; case GL_DEPTH_STENCIL_ATTACHMENT: if (clientVersion < 3 && !context->isWebGL1()) { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } break; case GL_COLOR_ATTACHMENT0: case GL_DEPTH_ATTACHMENT: case GL_STENCIL_ATTACHMENT: break; default: - if ((clientVersion < 3 && !context->getExtensions().drawBuffers) || + if ((clientVersion < 3 && !context->getExtensions().drawBuffersEXT) || attachment < GL_COLOR_ATTACHMENT0_EXT || (attachment - GL_COLOR_ATTACHMENT0_EXT) >= static_cast(context->getCaps().maxColorAttachments)) { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } break; } @@ -5124,11 +5374,11 @@ if (framebuffer->isDefault()) { if (clientVersion < 3) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultFramebufferTarget); return false; } switch (attachment) { @@ -5136,11 +5386,11 @@ case GL_DEPTH: case GL_STENCIL: break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAttachment); return false; } } else { @@ -5157,17 +5407,18 @@ break; case GL_DEPTH_STENCIL_ATTACHMENT: if (!framebuffer->hasValidDepthStencil() && !context->isWebGL1()) { - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidAttachment); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAttachment); return false; } } } @@ -5182,43 +5433,47 @@ { case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: if (attachmentObject->type() != GL_RENDERBUFFER && attachmentObject->type() != GL_TEXTURE) { - context->validationError(GL_INVALID_ENUM, kFramebufferIncompleteAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, + kFramebufferIncompleteAttachment); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: if (attachmentObject->type() != GL_TEXTURE) { - context->validationError(GL_INVALID_ENUM, kFramebufferIncompleteAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, + kFramebufferIncompleteAttachment); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: if (attachmentObject->type() != GL_TEXTURE) { - context->validationError(GL_INVALID_ENUM, kFramebufferIncompleteAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, + kFramebufferIncompleteAttachment); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: if (attachment == GL_DEPTH_STENCIL_ATTACHMENT) { - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAttachment); return false; } break; case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: if (attachmentObject->type() != GL_TEXTURE) { - context->validationError(GL_INVALID_ENUM, kFramebufferIncompleteAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, + kFramebufferIncompleteAttachment); return false; } break; default: @@ -5240,26 +5495,26 @@ break; case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: if (clientVersion < 3) { - context->validationError(GL_INVALID_ENUM, + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferAttachmentParameter); return false; } break; default: if (clientVersion < 3) { - context->validationError(GL_INVALID_ENUM, + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferAttachmentParameter); return false; } else { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFramebufferAttachmentParameter); return false; } } } @@ -5271,97 +5526,101 @@ return true; } bool ValidateGetFramebufferAttachmentParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetFramebufferAttachmentParameterivBase(context, target, attachment, pname, - &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetFramebufferAttachmentParameterivBase(context, entryPoint, target, attachment, + pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetBufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetBufferParameterBase(context, target, pname, false, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetBufferParameterBase(context, entryPoint, target, pname, false, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetBufferParameteri64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint64 *params) { GLsizei numParams = 0; - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - if (!ValidateGetBufferParameterBase(context, target, pname, false, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + if (!ValidateGetBufferParameterBase(context, entryPoint, target, pname, false, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetProgramivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLsizei *numParams) { // Currently, all GetProgramiv queries return 1 parameter @@ -5370,13 +5629,13 @@ *numParams = 1; } if (context->isContextLost()) { - context->validationError(GL_CONTEXT_LOST, kContextLost); - - if (context->getExtensions().parallelShaderCompile && pname == GL_COMPLETION_STATUS_KHR) + context->validationError(entryPoint, GL_CONTEXT_LOST, kContextLost); + + if (context->getExtensions().parallelShaderCompileKHR && pname == GL_COMPLETION_STATUS_KHR) { // Generate an error but still return true, the context still needs to return a // value in this case. return true; } @@ -5386,12 +5645,12 @@ } } // Special case for GL_COMPLETION_STATUS_KHR: don't resolve the link. Otherwise resolve it now. Program *programObject = (pname == GL_COMPLETION_STATUS_KHR) - ? GetValidProgramNoResolve(context, program) - : GetValidProgram(context, program); + ? GetValidProgramNoResolve(context, entryPoint, program) + : GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } @@ -5410,11 +5669,11 @@ case GL_PROGRAM_BINARY_LENGTH: if (context->getClientMajorVersion() < 3 && !context->getExtensions().getProgramBinaryOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_ACTIVE_UNIFORM_BLOCKS: @@ -5423,78 +5682,82 @@ case GL_TRANSFORM_FEEDBACK_VARYINGS: case GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: case GL_PROGRAM_BINARY_RETRIEVABLE_HINT: if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES30); return false; } break; case GL_PROGRAM_SEPARABLE: case GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: if (context->getClientVersion() < Version(3, 1)) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } break; case GL_COMPUTE_WORK_GROUP_SIZE: if (context->getClientVersion() < Version(3, 1)) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } // [OpenGL ES 3.1] Chapter 7.12 Page 122 // An INVALID_OPERATION error is generated if COMPUTE_WORK_GROUP_SIZE is queried for a // program which has not been linked successfully, or which does not contain objects to // form a compute shader. if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (!programObject->getExecutable().hasLinkedShaderStage(ShaderType::Compute)) { - context->validationError(GL_INVALID_OPERATION, kNoActiveComputeShaderStage); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoActiveComputeShaderStage); return false; } break; case GL_GEOMETRY_LINKED_INPUT_TYPE_EXT: case GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT: case GL_GEOMETRY_LINKED_VERTICES_OUT_EXT: case GL_GEOMETRY_SHADER_INVOCATIONS_EXT: - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) - { - context->validationError(GL_INVALID_ENUM, kGeometryShaderExtensionNotEnabled); + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kGeometryShaderExtensionNotEnabled); return false; } // [EXT_geometry_shader] Chapter 7.12 // An INVALID_OPERATION error is generated if GEOMETRY_LINKED_VERTICES_OUT_EXT, // GEOMETRY_LINKED_INPUT_TYPE_EXT, GEOMETRY_LINKED_OUTPUT_TYPE_EXT, or // GEOMETRY_SHADER_INVOCATIONS_EXT are queried for a program which has not been linked // successfully, or which does not contain objects to form a geometry shader. if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (!programObject->getExecutable().hasLinkedShaderStage(ShaderType::Geometry)) { - context->validationError(GL_INVALID_OPERATION, kNoActiveGeometryShaderStage); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoActiveGeometryShaderStage); return false; } break; case GL_COMPLETION_STATUS_KHR: - if (!context->getExtensions().parallelShaderCompile) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().parallelShaderCompileKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } break; case GL_TESS_CONTROL_OUTPUT_VERTICES_EXT: case GL_TESS_GEN_MODE_EXT: @@ -5502,171 +5765,178 @@ case GL_TESS_GEN_VERTEX_ORDER_EXT: case GL_TESS_GEN_POINT_MODE_EXT: if (!context->getExtensions().tessellationShaderEXT && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kTessellationShaderExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTessellationShaderExtensionNotEnabled); return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateGetProgramivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetProgramivBase(context, program, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetProgramivBase(context, entryPoint, program, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetRenderbufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetRenderbufferParameterivBase(context, target, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetRenderbufferParameterivBase(context, entryPoint, target, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetShaderivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetShaderivBase(context, shader, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetShaderivBase(context, entryPoint, shader, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetTexParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetTexParameterBase(context, target, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetTexParameterBase(context, entryPoint, target, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetTexParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetTexParameterBase(context, target, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetTexParameterBase(context, entryPoint, target, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetTexParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) @@ -5674,10 +5944,11 @@ UNIMPLEMENTED(); return false; } bool ValidateGetTexParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params) @@ -5685,114 +5956,121 @@ UNIMPLEMENTED(); return false; } bool ValidateTexParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateTexParameterBase(context, target, pname, bufSize, true, params); + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateTexParameterBase(context, entryPoint, target, pname, bufSize, true, params); } bool ValidateTexParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateTexParameterBase(context, target, pname, bufSize, true, params); + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateTexParameterBase(context, entryPoint, target, pname, bufSize, true, params); } bool ValidateTexParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLint *params) { UNIMPLEMENTED(); return false; } bool ValidateTexParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, const GLuint *params) { UNIMPLEMENTED(); return false; } bool ValidateGetSamplerParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetSamplerParameterBase(context, sampler, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetSamplerParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetSamplerParameterBase(context, sampler, pname, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetSamplerParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) @@ -5800,10 +6078,11 @@ UNIMPLEMENTED(); return false; } bool ValidateGetSamplerParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params) @@ -5811,254 +6090,265 @@ UNIMPLEMENTED(); return false; } bool ValidateSamplerParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateSamplerParameterBase(context, sampler, pname, bufSize, true, params); + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, bufSize, true, params); } bool ValidateSamplerParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateSamplerParameterBase(context, sampler, pname, bufSize, true, params); + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, bufSize, true, params); } bool ValidateSamplerParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLint *param) { UNIMPLEMENTED(); return false; } bool ValidateSamplerParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, const GLuint *param) { UNIMPLEMENTED(); return false; } bool ValidateGetVertexAttribfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetVertexAttribBase(context, index, pname, &writeLength, false, false)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateGetVertexAttribBase(context, entryPoint, index, pname, &writeLength, false, false)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetVertexAttribivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetVertexAttribBase(context, index, pname, &writeLength, false, false)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateGetVertexAttribBase(context, entryPoint, index, pname, &writeLength, false, false)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetVertexAttribPointervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *pointer) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetVertexAttribBase(context, index, pname, &writeLength, true, false)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateGetVertexAttribBase(context, entryPoint, index, pname, &writeLength, true, false)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetVertexAttribIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetVertexAttribBase(context, index, pname, &writeLength, false, true)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateGetVertexAttribBase(context, entryPoint, index, pname, &writeLength, false, true)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetVertexAttribIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetVertexAttribBase(context, index, pname, &writeLength, false, true)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateGetVertexAttribBase(context, entryPoint, index, pname, &writeLength, false, true)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetActiveUniformBlockivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei writeLength = 0; - if (!ValidateGetActiveUniformBlockivBase(context, program, uniformBlockIndex, pname, + if (!ValidateGetActiveUniformBlockivBase(context, entryPoint, program, uniformBlockIndex, pname, &writeLength)) { return false; } - if (!ValidateRobustBufferSize(context, bufSize, writeLength)) + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, writeLength)) { return false; } SetRobustLengthParam(length, writeLength); return true; } bool ValidateGetInternalformativRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateGetInternalFormativBase(context, target, internalformat, pname, bufSize, - &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateGetInternalFormativBase(context, entryPoint, target, internalformat, pname, + bufSize, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); @@ -6069,10 +6359,11 @@ // Perform validation from WebGL 2 section 5.10 "Invalid Clears": // In the WebGL 2 API, trying to perform a clear when there is a mismatch between the type of the // specified clear value and the type of a buffer that is being cleared generates an // INVALID_OPERATION error instead of producing undefined results bool ValidateWebGLFramebufferAttachmentClearType(const Context *context, + angle::EntryPoint entryPoint, GLint drawbuffer, const GLenum *validComponentTypes, size_t validComponentTypeCount) { const FramebufferAttachment *attachment = @@ -6081,39 +6372,41 @@ { GLenum componentType = attachment->getFormat().info->componentType; const GLenum *end = validComponentTypes + validComponentTypeCount; if (std::find(validComponentTypes, end, componentType) == end) { - context->validationError(GL_INVALID_OPERATION, kNoDefinedClearConversion); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNoDefinedClearConversion); return false; } } return true; } bool ValidateRobustCompressedTexImageBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei imageSize, GLsizei dataSize) { - if (!ValidateRobustEntryPoint(context, dataSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, dataSize)) { return false; } Buffer *pixelUnpackBuffer = context->getState().getTargetBuffer(BufferBinding::PixelUnpack); if (pixelUnpackBuffer == nullptr) { if (dataSize < imageSize) { - context->validationError(GL_INVALID_OPERATION, kCompressedDataSizeTooSmall); + context->validationError(entryPoint, GL_INVALID_OPERATION, kCompressedDataSizeTooSmall); } } return true; } bool ValidateGetBufferParameterBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, bool pointerVersion, GLsizei *numParams) { @@ -6122,19 +6415,19 @@ *numParams = 0; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } const Buffer *buffer = context->getState().getTargetBuffer(target); if (!buffer) { // A null buffer means that "0" is bound to the requested buffer target - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); return false; } const Extensions &extensions = context->getExtensions(); @@ -6143,64 +6436,64 @@ case GL_BUFFER_USAGE: case GL_BUFFER_SIZE: break; case GL_BUFFER_ACCESS_OES: - if (!extensions.mapBufferOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!extensions.mapbufferOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_BUFFER_MAPPED: static_assert(GL_BUFFER_MAPPED == GL_BUFFER_MAPPED_OES, "GL enums should be equal."); - if (context->getClientMajorVersion() < 3 && !extensions.mapBufferOES && - !extensions.mapBufferRange) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (context->getClientMajorVersion() < 3 && !extensions.mapbufferOES && + !extensions.mapBufferRangeEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_BUFFER_MAP_POINTER: if (!pointerVersion) { - context->validationError(GL_INVALID_ENUM, kInvalidMapPointerQuery); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMapPointerQuery); return false; } break; case GL_BUFFER_ACCESS_FLAGS: case GL_BUFFER_MAP_OFFSET: case GL_BUFFER_MAP_LENGTH: - if (context->getClientMajorVersion() < 3 && !extensions.mapBufferRange) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (context->getClientMajorVersion() < 3 && !extensions.mapBufferRangeEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_MEMORY_SIZE_ANGLE: - if (!context->getExtensions().memorySize) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + if (!context->getExtensions().memorySizeANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_RESOURCE_INITIALIZED_ANGLE: - if (!context->getExtensions().robustResourceInitialization) - { - context->validationError(GL_INVALID_ENUM, + if (!context->getExtensions().robustResourceInitializationANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRobustResourceInitializationExtensionRequired); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } // All buffer parameter queries return one value. if (numParams) @@ -6210,10 +6503,11 @@ return true; } bool ValidateGetRenderbufferParameterivBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei *length) { if (length) @@ -6221,18 +6515,18 @@ *length = 0; } if (target != GL_RENDERBUFFER) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer(); if (renderbuffer == nullptr) { - context->validationError(GL_INVALID_OPERATION, kRenderbufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kRenderbufferNotBound); return false; } switch (pname) { @@ -6246,45 +6540,45 @@ case GL_RENDERBUFFER_DEPTH_SIZE: case GL_RENDERBUFFER_STENCIL_SIZE: break; case GL_RENDERBUFFER_SAMPLES_ANGLE: - if (!context->getExtensions().framebufferMultisample) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + if (!context->getExtensions().framebufferMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_MEMORY_SIZE_ANGLE: - if (!context->getExtensions().memorySize) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + if (!context->getExtensions().memorySizeANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT: case GL_IMPLEMENTATION_COLOR_READ_TYPE: if (!context->getExtensions().getImageANGLE) { - context->validationError(GL_INVALID_ENUM, kGetImageExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kGetImageExtensionNotEnabled); return false; } break; case GL_RESOURCE_INITIALIZED_ANGLE: - if (!context->getExtensions().robustResourceInitialization) - { - context->validationError(GL_INVALID_ENUM, + if (!context->getExtensions().robustResourceInitializationANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRobustResourceInitializationExtensionRequired); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -6292,10 +6586,11 @@ } return true; } bool ValidateGetShaderivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLenum pname, GLsizei *length) { if (length) @@ -6303,13 +6598,13 @@ *length = 0; } if (context->isContextLost()) { - context->validationError(GL_CONTEXT_LOST, kContextLost); - - if (context->getExtensions().parallelShaderCompile && pname == GL_COMPLETION_STATUS_KHR) + context->validationError(entryPoint, GL_CONTEXT_LOST, kContextLost); + + if (context->getExtensions().parallelShaderCompileKHR && pname == GL_COMPLETION_STATUS_KHR) { // Generate an error but still return true, the context still needs to return a // value in this case. return true; } @@ -6317,11 +6612,11 @@ { return false; } } - if (GetValidShader(context, shader) == nullptr) + if (GetValidShader(context, entryPoint, shader) == nullptr) { return false; } switch (pname) @@ -6332,27 +6627,27 @@ case GL_INFO_LOG_LENGTH: case GL_SHADER_SOURCE_LENGTH: break; case GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE: - if (!context->getExtensions().translatedShaderSource) - { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + if (!context->getExtensions().translatedShaderSourceANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_COMPLETION_STATUS_KHR: - if (!context->getExtensions().parallelShaderCompile) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().parallelShaderCompileKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -6360,35 +6655,37 @@ } return true; } bool ValidateGetTexParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei *length) { if (length) { *length = 0; } - if (!ValidTextureTarget(context, target) && !ValidTextureExternalTarget(context, target)) - { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + if ((!ValidTextureTarget(context, target) && !ValidTextureExternalTarget(context, target)) || + target == TextureType::Buffer) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (context->getTextureByType(target) == nullptr) { // Should only be possible for external textures - context->validationError(GL_INVALID_ENUM, kTextureNotBound); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureNotBound); return false; } if (context->getClientMajorVersion() == 1 && !IsValidGLES1TextureParameter(pname)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (pname) { @@ -6397,28 +6694,28 @@ case GL_TEXTURE_WRAP_S: case GL_TEXTURE_WRAP_T: break; case GL_TEXTURE_USAGE_ANGLE: - if (!context->getExtensions().textureUsage) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().textureUsageANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_MAX_ANISOTROPY_EXT: - if (!ValidateTextureMaxAnisotropyExtensionEnabled(context)) + if (!ValidateTextureMaxAnisotropyExtensionEnabled(context, entryPoint)) { return false; } break; case GL_TEXTURE_IMMUTABLE_FORMAT: - if (context->getClientMajorVersion() < 3 && !context->getExtensions().textureStorage) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (context->getClientMajorVersion() < 3 && !context->getExtensions().textureStorageEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_WRAP_R: @@ -6431,97 +6728,106 @@ case GL_TEXTURE_MAX_LEVEL: case GL_TEXTURE_MIN_LOD: case GL_TEXTURE_MAX_LOD: if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES30); return false; } break; case GL_TEXTURE_COMPARE_MODE: case GL_TEXTURE_COMPARE_FUNC: if (context->getClientMajorVersion() < 3 && !context->getExtensions().shadowSamplersEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_SRGB_DECODE_EXT: - if (!context->getExtensions().textureSRGBDecode) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().textureSRGBDecodeEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_DEPTH_STENCIL_TEXTURE_MODE: case GL_IMAGE_FORMAT_COMPATIBILITY_TYPE: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } break; case GL_GENERATE_MIPMAP: case GL_TEXTURE_CROP_RECT_OES: // TODO(lfy@google.com): Restrict to GL_OES_draw_texture // after GL_OES_draw_texture functionality implemented if (context->getClientMajorVersion() > 1) { - context->validationError(GL_INVALID_ENUM, kGLES1Only); + context->validationError(entryPoint, GL_INVALID_ENUM, kGLES1Only); return false; } break; case GL_MEMORY_SIZE_ANGLE: - if (!context->getExtensions().memorySize) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().memorySizeANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_BORDER_COLOR: if (!context->getExtensions().textureBorderClampOES && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_TEXTURE_NATIVE_ID_ANGLE: if (!context->getExtensions().textureExternalUpdateANGLE) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT: case GL_IMPLEMENTATION_COLOR_READ_TYPE: if (!context->getExtensions().getImageANGLE) { - context->validationError(GL_INVALID_ENUM, kGetImageExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kGetImageExtensionNotEnabled); return false; } break; case GL_RESOURCE_INITIALIZED_ANGLE: - if (!context->getExtensions().robustResourceInitialization) - { - context->validationError(GL_INVALID_ENUM, + if (!context->getExtensions().robustResourceInitializationANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRobustResourceInitializationExtensionRequired); return false; } break; + case GL_TEXTURE_PROTECTED_EXT: + if (!context->getExtensions().protectedTexturesEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kProtectedTexturesExtensionRequired); + return false; + } + break; + default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -6529,10 +6835,11 @@ } return true; } bool ValidateGetVertexAttribBase(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei *length, bool pointer, bool pureIntegerEntryPoint) @@ -6542,25 +6849,25 @@ *length = 0; } if (pureIntegerEntryPoint && context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (index >= static_cast(context->getCaps().maxVertexAttributes)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } if (pointer) { if (pname != GL_VERTEX_ATTRIB_ARRAY_POINTER) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } else { @@ -6580,34 +6887,34 @@ GL_VERTEX_ATTRIB_ARRAY_DIVISOR == GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE, "ANGLE extension enums not equal to GL enums."); if (context->getClientMajorVersion() < 3 && !context->getExtensions().instancedArraysAny()) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_VERTEX_ATTRIB_ARRAY_INTEGER: if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_VERTEX_ATTRIB_BINDING: case GL_VERTEX_ATTRIB_RELATIVE_OFFSET: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } if (length) @@ -6624,10 +6931,11 @@ return true; } bool ValidatePixelPack(const Context *context, + angle::EntryPoint entryPoint, GLenum format, GLenum type, GLint x, GLint y, GLsizei width, @@ -6639,17 +6947,18 @@ // Check for pixel pack buffer related API errors Buffer *pixelPackBuffer = context->getState().getTargetBuffer(BufferBinding::PixelPack); if (pixelPackBuffer != nullptr && pixelPackBuffer->isMapped()) { // ...the buffer object's data store is currently mapped. - context->validationError(GL_INVALID_OPERATION, kBufferMapped); - return false; - } - if (context->getExtensions().webglCompatibility && pixelPackBuffer != nullptr && - pixelPackBuffer->isBoundForTransformFeedbackAndOtherUse()) - { - context->validationError(GL_INVALID_OPERATION, kPixelPackBufferBoundForTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped); + return false; + } + if (pixelPackBuffer != nullptr && + pixelPackBuffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kPixelPackBufferBoundForTransformFeedback); return false; } // .. the data would be packed to the buffer object such that the memory writes required // would exceed the data store size. @@ -6658,19 +6967,19 @@ const auto &pack = context->getState().getPackState(); GLuint endByte = 0; if (!formatInfo.computePackUnpackEndByte(type, size, pack, false, &endByte)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (bufSize >= 0) { if (pixelPackBuffer == nullptr && static_cast(bufSize) < endByte) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } } if (pixelPackBuffer != nullptr) @@ -6680,46 +6989,48 @@ checkedEndByte += checkedOffset; if (checkedEndByte.ValueOrDie() > static_cast(pixelPackBuffer->getSize())) { // Overflow past the end of the buffer - context->validationError(GL_INVALID_OPERATION, kParamOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kParamOverflow); return false; } } if (pixelPackBuffer == nullptr && length != nullptr) { if (endByte > static_cast(std::numeric_limits::max())) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } *length = static_cast(endByte); } - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { // WebGL 2.0 disallows the scenario: // GL_PACK_SKIP_PIXELS + width > DataStoreWidth // where: // DataStoreWidth = (GL_PACK_ROW_LENGTH ? GL_PACK_ROW_LENGTH : width) // Since these two pack parameters can only be set to non-zero values // on WebGL 2.0 contexts, verify them for all WebGL contexts. GLint dataStoreWidth = pack.rowLength ? pack.rowLength : width; if (pack.skipPixels + width > dataStoreWidth) { - context->validationError(GL_INVALID_OPERATION, kInvalidPackParametersForWebGL); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidPackParametersForWebGL); return false; } } return true; } bool ValidateReadPixelsBase(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -6743,33 +7054,33 @@ *columns = 0; } if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } Framebuffer *readFramebuffer = context->getState().getReadFramebuffer(); ASSERT(readFramebuffer); - if (!ValidateFramebufferComplete(context, readFramebuffer)) + if (!ValidateFramebufferComplete(context, entryPoint, readFramebuffer)) { return false; } // needIntrinsic = true. Treat renderToTexture textures as single sample since they will be // resolved before reading. if (!readFramebuffer->isDefault() && - !ValidateFramebufferNotMultisampled(context, readFramebuffer, true)) + !ValidateFramebufferNotMultisampled(context, entryPoint, readFramebuffer, true)) { return false; } if (readFramebuffer->getReadBufferState() == GL_NONE) { - context->validationError(GL_INVALID_OPERATION, kReadBufferNone); + context->validationError(entryPoint, GL_INVALID_OPERATION, kReadBufferNone); return false; } const FramebufferAttachment *readBuffer = nullptr; switch (format) @@ -6785,45 +7096,46 @@ break; } // WebGL 1.0 [Section 6.26] Reading From a Missing Attachment // In OpenGL ES it is undefined what happens when an operation tries to read from a missing - // attachment and WebGL defines it to be an error. We do the check unconditionnaly as the + // attachment and WebGL defines it to be an error. We do the check unconditionally as the // situation is an application error that would lead to a crash in ANGLE. if (readBuffer == nullptr) { - context->validationError(GL_INVALID_OPERATION, kMissingReadAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingReadAttachment); return false; } // OVR_multiview2, Revision 1: // ReadPixels generates an INVALID_FRAMEBUFFER_OPERATION error if // the number of views in the current read framebuffer is more than one. if (readFramebuffer->readDisallowedByMultiview()) { - context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kMultiviewReadFramebuffer); - return false; - } - - if (context->getExtensions().webglCompatibility) + context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION, + kMultiviewReadFramebuffer); + return false; + } + + if (context->isWebGL()) { // The ES 2.0 spec states that the format must be "among those defined in table 3.4, // excluding formats LUMINANCE and LUMINANCE_ALPHA.". This requires validating the format // and type before validating the combination of format and type. However, the // dEQP-GLES3.functional.negative_api.buffer.read_pixels passes GL_LUMINANCE as a format and // verifies that GL_INVALID_OPERATION is generated. // TODO(geofflang): Update this check to be done in all/no cases once this is resolved in // dEQP/WebGL. if (!ValidReadPixelsFormatEnum(context, format)) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } if (!ValidReadPixelsTypeEnum(context, type)) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } } GLenum currentFormat = GL_NONE; @@ -6844,15 +7156,16 @@ bool validFormatTypeCombination = ValidReadPixelsFormatType(context, readBuffer->getFormat().info, format, type); if (!(currentFormat == format && currentType == type) && !validFormatTypeCombination) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); - return false; - } - - if (!ValidatePixelPack(context, format, type, x, y, width, height, bufSize, length, pixels)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + return false; + } + + if (!ValidatePixelPack(context, entryPoint, format, type, x, y, width, height, bufSize, length, + pixels)) { return false; } auto getClippedExtent = [](GLint start, GLsizei length, int bufferSize, GLsizei *outExtent) { @@ -6886,18 +7199,18 @@ }; GLsizei writtenColumns = 0; if (!getClippedExtent(x, width, readBuffer->getSize().width, &writtenColumns)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } GLsizei writtenRows = 0; if (!getClippedExtent(y, height, readBuffer->getSize().height, &writtenRows)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (columns != nullptr) { @@ -6912,39 +7225,41 @@ return true; } template bool ValidateTexParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, bool vectorParams, const ParamType *params) { - if (!ValidTextureTarget(context, target) && !ValidTextureExternalTarget(context, target)) - { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + if ((!ValidTextureTarget(context, target) && !ValidTextureExternalTarget(context, target)) || + target == TextureType::Buffer) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (context->getTextureByType(target) == nullptr) { // Should only be possible for external textures - context->validationError(GL_INVALID_ENUM, kTextureNotBound); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureNotBound); return false; } const GLsizei minBufSize = GetTexParameterCount(pname); if (bufSize >= 0 && bufSize < minBufSize) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } if (context->getClientMajorVersion() == 1 && !IsValidGLES1TextureParameter(pname)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (pname) { @@ -6960,30 +7275,30 @@ case GL_TEXTURE_MIN_LOD: case GL_TEXTURE_MAX_LOD: if (context->getClientMajorVersion() < 3 && !(pname == GL_TEXTURE_WRAP_R && context->getExtensions().texture3DOES)) { - context->validationError(GL_INVALID_ENUM, kES3Required); + context->validationError(entryPoint, GL_INVALID_ENUM, kES3Required); return false; } if (target == TextureType::External && - !context->getExtensions().eglImageExternalEssl3OES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + !context->getExtensions().EGLImageExternalEssl3OES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - if (target == TextureType::VideoImage && !context->getExtensions().webglVideoTexture) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (target == TextureType::VideoImage && !context->getExtensions().videoTextureWEBGL) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); } break; case GL_GENERATE_MIPMAP: case GL_TEXTURE_CROP_RECT_OES: if (context->getClientMajorVersion() > 1) { - context->validationError(GL_INVALID_ENUM, kGLES1Only); + context->validationError(entryPoint, GL_INVALID_ENUM, kGLES1Only); return false; } break; default: @@ -7002,11 +7317,11 @@ case GL_TEXTURE_MIN_LOD: case GL_TEXTURE_MAX_LOD: case GL_TEXTURE_COMPARE_MODE: case GL_TEXTURE_COMPARE_FUNC: case GL_TEXTURE_BORDER_COLOR: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } } switch (pname) @@ -7014,60 +7329,60 @@ case GL_TEXTURE_WRAP_S: case GL_TEXTURE_WRAP_T: case GL_TEXTURE_WRAP_R: { bool restrictedWrapModes = ((target == TextureType::External && - !context->getExtensions().eglImageExternalWrapModesEXT) || + !context->getExtensions().EGLImageExternalWrapModesEXT) || target == TextureType::Rectangle); - if (!ValidateTextureWrapModeValue(context, params, restrictedWrapModes)) + if (!ValidateTextureWrapModeValue(context, entryPoint, params, restrictedWrapModes)) { return false; } } break; case GL_TEXTURE_MIN_FILTER: { bool restrictedMinFilter = target == TextureType::External || target == TextureType::Rectangle; - if (!ValidateTextureMinFilterValue(context, params, restrictedMinFilter)) + if (!ValidateTextureMinFilterValue(context, entryPoint, params, restrictedMinFilter)) { return false; } } break; case GL_TEXTURE_MAG_FILTER: - if (!ValidateTextureMagFilterValue(context, params)) + if (!ValidateTextureMagFilterValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_USAGE_ANGLE: - if (!context->getExtensions().textureUsage) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().textureUsageANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (ConvertToGLenum(params[0])) { case GL_NONE: case GL_FRAMEBUFFER_ATTACHMENT_ANGLE: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_MAX_ANISOTROPY_EXT: { GLfloat paramValue = static_cast(params[0]); - if (!ValidateTextureMaxAnisotropyValue(context, paramValue)) + if (!ValidateTextureMaxAnisotropyValue(context, entryPoint, paramValue)) { return false; } ASSERT(static_cast(paramValue) == params[0]); } @@ -7077,18 +7392,18 @@ case GL_TEXTURE_MAX_LOD: // any value is permissible break; case GL_TEXTURE_COMPARE_MODE: - if (!ValidateTextureCompareModeValue(context, params)) + if (!ValidateTextureCompareModeValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_COMPARE_FUNC: - if (!ValidateTextureCompareFuncValue(context, params)) + if (!ValidateTextureCompareFuncValue(context, entryPoint, params)) { return false; } break; @@ -7105,164 +7420,171 @@ case GL_ZERO: case GL_ONE: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_BASE_LEVEL: if (ConvertToGLint(params[0]) < 0) { - context->validationError(GL_INVALID_VALUE, kBaseLevelNegative); + context->validationError(entryPoint, GL_INVALID_VALUE, kBaseLevelNegative); return false; } if (target == TextureType::External && static_cast(params[0]) != 0) { - context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBaseLevelNonZero); return false; } if ((target == TextureType::_2DMultisample || target == TextureType::_2DMultisampleArray) && static_cast(params[0]) != 0) { - context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBaseLevelNonZero); return false; } if (target == TextureType::Rectangle && static_cast(params[0]) != 0) { - context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBaseLevelNonZero); return false; } break; case GL_TEXTURE_MAX_LEVEL: if (ConvertToGLint(params[0]) < 0) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } break; case GL_DEPTH_STENCIL_TEXTURE_MODE: if (context->getClientVersion() < Version(3, 1)) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } switch (ConvertToGLenum(params[0])) { case GL_DEPTH_COMPONENT: case GL_STENCIL_INDEX: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_SRGB_DECODE_EXT: - if (!ValidateTextureSRGBDecodeValue(context, params)) + if (!ValidateTextureSRGBDecodeValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT: - if (!ValidateTextureSRGBOverrideValue(context, params)) + if (!ValidateTextureSRGBOverrideValue(context, entryPoint, params)) { return false; } break; case GL_GENERATE_MIPMAP: if (context->getClientMajorVersion() > 1) { - context->validationError(GL_INVALID_ENUM, kGLES1Only); + context->validationError(entryPoint, GL_INVALID_ENUM, kGLES1Only); return false; } break; case GL_TEXTURE_CROP_RECT_OES: if (context->getClientMajorVersion() > 1) { - context->validationError(GL_INVALID_ENUM, kGLES1Only); + context->validationError(entryPoint, GL_INVALID_ENUM, kGLES1Only); return false; } if (!vectorParams) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } break; case GL_TEXTURE_BORDER_COLOR: if (!context->getExtensions().textureBorderClampOES && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } if (!vectorParams) { - context->validationError(GL_INVALID_ENUM, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_ENUM, kInsufficientBufferSize); return false; } break; case GL_RESOURCE_INITIALIZED_ANGLE: - if (!context->getExtensions().robustResourceInitialization) - { - context->validationError(GL_INVALID_ENUM, + if (!context->getExtensions().robustResourceInitializationANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRobustResourceInitializationExtensionRequired); return false; } - + break; + + case GL_TEXTURE_PROTECTED_EXT: + if (!context->getExtensions().protectedTexturesEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kProtectedTexturesExtensionRequired); + return false; + } + if (ConvertToBool(params[0]) != context->getState().hasProtectedContent()) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + "Protected Texture must match Protected Context"); + return false; + } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } template bool ValidateTexParameterBase(const Context *, + angle::EntryPoint, TextureType, GLenum, GLsizei, bool, const GLfloat *); template bool ValidateTexParameterBase(const Context *, + angle::EntryPoint, TextureType, GLenum, GLsizei, bool, const GLint *); template bool ValidateTexParameterBase(const Context *, + angle::EntryPoint, TextureType, GLenum, GLsizei, bool, const GLuint *); -bool ValidateVertexAttribIndex(const Context *context, GLuint index) -{ - if (index >= MAX_VERTEX_ATTRIBS) - { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); - return false; - } - - return true; -} - bool ValidateGetActiveUniformBlockivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLenum pname, GLsizei *length) { @@ -7271,23 +7593,24 @@ *length = 0; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (uniformBlockIndex.value >= programObject->getActiveUniformBlockCount()) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsActiveUniformBlockCount); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsActiveUniformBlockCount); return false; } switch (pname) { @@ -7299,11 +7622,11 @@ case GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: case GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -7322,55 +7645,56 @@ return true; } template bool ValidateSamplerParameterBase(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei bufSize, bool vectorParams, const ParamType *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (!context->isSampler(sampler)) { - context->validationError(GL_INVALID_OPERATION, kInvalidSampler); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSampler); return false; } const GLsizei minBufSize = GetSamplerParameterCount(pname); if (bufSize >= 0 && bufSize < minBufSize) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } switch (pname) { case GL_TEXTURE_WRAP_S: case GL_TEXTURE_WRAP_T: case GL_TEXTURE_WRAP_R: - if (!ValidateTextureWrapModeValue(context, params, false)) + if (!ValidateTextureWrapModeValue(context, entryPoint, params, false)) { return false; } break; case GL_TEXTURE_MIN_FILTER: - if (!ValidateTextureMinFilterValue(context, params, false)) + if (!ValidateTextureMinFilterValue(context, entryPoint, params, false)) { return false; } break; case GL_TEXTURE_MAG_FILTER: - if (!ValidateTextureMagFilterValue(context, params)) + if (!ValidateTextureMagFilterValue(context, entryPoint, params)) { return false; } break; @@ -7378,82 +7702,86 @@ case GL_TEXTURE_MAX_LOD: // any value is permissible break; case GL_TEXTURE_COMPARE_MODE: - if (!ValidateTextureCompareModeValue(context, params)) + if (!ValidateTextureCompareModeValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_COMPARE_FUNC: - if (!ValidateTextureCompareFuncValue(context, params)) + if (!ValidateTextureCompareFuncValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_SRGB_DECODE_EXT: - if (!ValidateTextureSRGBDecodeValue(context, params)) + if (!ValidateTextureSRGBDecodeValue(context, entryPoint, params)) { return false; } break; case GL_TEXTURE_MAX_ANISOTROPY_EXT: { GLfloat paramValue = static_cast(params[0]); - if (!ValidateTextureMaxAnisotropyValue(context, paramValue)) + if (!ValidateTextureMaxAnisotropyValue(context, entryPoint, paramValue)) { return false; } } break; case GL_TEXTURE_BORDER_COLOR: if (!context->getExtensions().textureBorderClampOES && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } if (!vectorParams) { - context->validationError(GL_INVALID_ENUM, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_ENUM, kInsufficientBufferSize); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } template bool ValidateSamplerParameterBase(const Context *, + angle::EntryPoint, SamplerID, GLenum, GLsizei, bool, const GLfloat *); template bool ValidateSamplerParameterBase(const Context *, + angle::EntryPoint, SamplerID, GLenum, GLsizei, bool, const GLint *); template bool ValidateSamplerParameterBase(const Context *, + angle::EntryPoint, SamplerID, GLenum, GLsizei, bool, const GLuint *); bool ValidateGetSamplerParameterBase(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLsizei *length) { if (length) @@ -7461,17 +7789,17 @@ *length = 0; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (!context->isSampler(sampler)) { - context->validationError(GL_INVALID_OPERATION, kInvalidSampler); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSampler); return false; } switch (pname) { @@ -7485,35 +7813,35 @@ case GL_TEXTURE_COMPARE_MODE: case GL_TEXTURE_COMPARE_FUNC: break; case GL_TEXTURE_MAX_ANISOTROPY_EXT: - if (!ValidateTextureMaxAnisotropyExtensionEnabled(context)) + if (!ValidateTextureMaxAnisotropyExtensionEnabled(context, entryPoint)) { return false; } break; case GL_TEXTURE_SRGB_DECODE_EXT: - if (!context->getExtensions().textureSRGBDecode) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + if (!context->getExtensions().textureSRGBDecodeEXT) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_TEXTURE_BORDER_COLOR: if (!context->getExtensions().textureBorderClampOES && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -7521,10 +7849,11 @@ } return true; } bool ValidateGetInternalFormativBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *numParams) @@ -7534,50 +7863,51 @@ *numParams = 0; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); if (!formatCaps.renderbuffer) { - context->validationError(GL_INVALID_ENUM, kFormatNotRenderable); + context->validationError(entryPoint, GL_INVALID_ENUM, kFormatNotRenderable); return false; } switch (target) { case GL_RENDERBUFFER: break; case GL_TEXTURE_2D_MULTISAMPLE: if (context->getClientVersion() < ES_3_1 && - !context->getExtensions().textureMultisample) - { - context->validationError(GL_INVALID_ENUM, + !context->getExtensions().textureMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kMultisampleTextureExtensionOrES31Required); return false; } break; case GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES: - if (!context->getExtensions().textureStorageMultisample2DArrayOES) - { - context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired); + if (!context->getExtensions().textureStorageMultisample2dArrayOES) + { + context->validationError(entryPoint, GL_INVALID_ENUM, + kMultisampleArrayExtensionRequired); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTarget); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInsufficientBufferSize); return false; } GLsizei maxWriteParams = 0; switch (pname) @@ -7589,11 +7919,11 @@ case GL_SAMPLES: maxWriteParams = static_cast(formatCaps.sampleCounts.size()); break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (numParams) { @@ -7603,114 +7933,120 @@ return true; } bool ValidateFramebufferNotMultisampled(const Context *context, + angle::EntryPoint entryPoint, const Framebuffer *framebuffer, bool checkReadBufferResourceSamples) { int samples = checkReadBufferResourceSamples ? framebuffer->getReadBufferResourceSamples(context) : framebuffer->getSamples(context); if (samples != 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidMultisampledFramebufferOperation); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidMultisampledFramebufferOperation); return false; } return true; } -bool ValidateMultitextureUnit(const Context *context, GLenum texture) +bool ValidateMultitextureUnit(const Context *context, angle::EntryPoint entryPoint, GLenum texture) { if (texture < GL_TEXTURE0 || texture >= GL_TEXTURE0 + context->getCaps().maxMultitextureUnits) { - context->validationError(GL_INVALID_ENUM, kInvalidMultitextureUnit); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMultitextureUnit); return false; } return true; } bool ValidateTexStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height) { const Caps &caps = context->getCaps(); if (width > caps.max2DTextureSize || height > caps.max2DTextureSize) { - context->validationError(GL_INVALID_VALUE, kTextureWidthOrHeightOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureWidthOrHeightOutOfRange); return false; } if (samples == 0) { - context->validationError(GL_INVALID_VALUE, kSamplesZero); + context->validationError(entryPoint, GL_INVALID_VALUE, kSamplesZero); return false; } const TextureCaps &formatCaps = context->getTextureCaps().get(internalFormat); if (!formatCaps.textureAttachment) { - context->validationError(GL_INVALID_ENUM, kRenderableInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kRenderableInternalFormat); return false; } // The ES3.1 spec(section 8.8) states that an INVALID_ENUM error is generated if internalformat // is one of the unsized base internalformats listed in table 8.11. const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalFormat); if (formatInfo.internalFormat == GL_NONE) { - context->validationError(GL_INVALID_ENUM, kUnsizedInternalFormatUnsupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kUnsizedInternalFormatUnsupported); return false; } if (static_cast(samples) > formatCaps.getMaxSamples()) { - context->validationError(GL_INVALID_OPERATION, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange); return false; } Texture *texture = context->getTextureByType(target); if (!texture || texture->id().value == 0) { - context->validationError(GL_INVALID_OPERATION, kZeroBoundToTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kZeroBoundToTarget); return false; } if (texture->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kImmutableTextureBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kImmutableTextureBound); return false; } return true; } bool ValidateTexStorage2DMultisampleBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height) { if (target != TextureType::_2DMultisample) { - context->validationError(GL_INVALID_ENUM, kInvalidTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTarget); return false; } if (width < 1 || height < 1) { - context->validationError(GL_INVALID_VALUE, kTextureSizeTooSmall); - return false; - } - - return ValidateTexStorageMultisample(context, target, samples, internalFormat, width, height); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureSizeTooSmall); + return false; + } + + return ValidateTexStorageMultisample(context, entryPoint, target, samples, internalFormat, + width, height); } bool ValidateGetTexLevelParameterBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, GLsizei *length) { @@ -7722,23 +8058,23 @@ TextureType type = TextureTargetToType(target); if (!ValidTexLevelDestinationTarget(context, type)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (context->getTextureByType(type) == nullptr) { - context->validationError(GL_INVALID_ENUM, kTextureNotBound); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureNotBound); return false; } if (!ValidMipLevel(context, type, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } switch (pname) { @@ -7762,13 +8098,13 @@ case GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: case GL_TEXTURE_COMPRESSED: break; case GL_RESOURCE_INITIALIZED_ANGLE: - if (!context->getExtensions().robustResourceInitialization) - { - context->validationError(GL_INVALID_ENUM, + if (!context->getExtensions().robustResourceInitializationANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRobustResourceInitializationExtensionRequired); return false; } break; @@ -7776,17 +8112,18 @@ case GL_TEXTURE_BUFFER_OFFSET: case GL_TEXTURE_BUFFER_SIZE: if (context->getClientVersion() < Version(3, 2) && !context->getExtensions().textureBufferAny()) { - context->validationError(GL_INVALID_ENUM, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTextureBufferExtensionNotAvailable); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } if (length) { @@ -7794,68 +8131,73 @@ } return true; } bool ValidateGetMultisamplefvBase(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val) { if (pname != GL_SAMPLE_POSITION) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } Framebuffer *framebuffer = context->getState().getDrawFramebuffer(); GLint samples = framebuffer->getSamples(context); if (index >= static_cast(samples)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsSamples); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsSamples); return false; } return true; } -bool ValidateSampleMaskiBase(const Context *context, GLuint maskNumber, GLbitfield mask) +bool ValidateSampleMaskiBase(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask) { if (maskNumber >= static_cast(context->getCaps().maxSampleMaskWords)) { - context->validationError(GL_INVALID_VALUE, kInvalidSampleMaskNumber); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSampleMaskNumber); return false; } return true; } -void RecordDrawAttribsError(const Context *context) +void RecordDrawAttribsError(const Context *context, angle::EntryPoint entryPoint) { // An overflow can happen when adding the offset. Check against a special constant. if (context->getStateCache().getNonInstancedVertexElementLimit() == VertexAttribute::kIntegerOverflow || context->getStateCache().getInstancedVertexElementLimit() == VertexAttribute::kIntegerOverflow) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); } else { // [OpenGL ES 3.0.2] section 2.9.4 page 40: // We can return INVALID_OPERATION if our buffer does not have enough backing data. - context->validationError(GL_INVALID_OPERATION, kInsufficientVertexBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientVertexBufferSize); } } bool ValidateLoseContextCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, GraphicsResetStatus current, GraphicsResetStatus other) { if (!context->getExtensions().loseContextCHROMIUM) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (current) { @@ -7863,29 +8205,30 @@ case GraphicsResetStatus::InnocentContextReset: case GraphicsResetStatus::UnknownContextReset: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidResetStatus); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidResetStatus); } switch (other) { case GraphicsResetStatus::GuiltyContextReset: case GraphicsResetStatus::InnocentContextReset: case GraphicsResetStatus::UnknownContextReset: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidResetStatus); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidResetStatus); } return true; } // GL_ANGLE_texture_storage_external bool ValidateTexImage2DExternalANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -7893,54 +8236,56 @@ GLenum format, GLenum type) { if (!context->getExtensions().textureExternalUpdateANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!ValidTexture2DDestinationTarget(context, target) && !ValidTextureExternalTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (context->getClientMajorVersion() <= 2) { - if (!ValidateES2TexImageParametersBase(context, target, level, internalformat, false, false, - 0, 0, width, height, border, format, type, -1, - nullptr)) + if (!ValidateES2TexImageParametersBase(context, entryPoint, target, level, internalformat, + false, false, 0, 0, width, height, border, format, + type, -1, nullptr)) { return false; } } else { - if (!ValidateES3TexImageParametersBase(context, target, level, internalformat, false, false, - 0, 0, 0, width, height, 1, border, format, type, -1, - nullptr)) + if (!ValidateES3TexImageParametersBase(context, entryPoint, target, level, internalformat, + false, false, 0, 0, 0, width, height, 1, border, + format, type, -1, nullptr)) { return false; } } return true; } -bool ValidateInvalidateTextureANGLE(const Context *context, TextureType target) +bool ValidateInvalidateTextureANGLE(const Context *context, + angle::EntryPoint entryPoint, + TextureType target) { if (!context->getExtensions().textureExternalUpdateANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!ValidTextureTarget(context, target) && !ValidTextureExternalTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } return true; } diff --git a/gfx/angle/checkout/src/libANGLE/validationES1.cpp b/gfx/angle/checkout/src/libANGLE/validationES1.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES1.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES1.cpp @@ -14,25 +14,27 @@ #include "libANGLE/GLES1State.h" #include "libANGLE/queryconversions.h" #include "libANGLE/queryutils.h" #include "libANGLE/validationES.h" -#define ANGLE_VALIDATE_IS_GLES1(context) \ +#define ANGLE_VALIDATE_IS_GLES1(context, entryPoint) \ do \ { \ if (context->getClientType() != EGL_OPENGL_API && context->getClientMajorVersion() > 1) \ { \ - context->validationError(GL_INVALID_OPERATION, kGLES1Only); \ + context->validationError(entryPoint, GL_INVALID_OPERATION, kGLES1Only); \ return false; \ } \ } while (0) namespace gl { using namespace err; -bool ValidateAlphaFuncCommon(const Context *context, AlphaTestFunc func) +bool ValidateAlphaFuncCommon(const Context *context, + angle::EntryPoint entryPoint, + AlphaTestFunc func) { switch (func) { case AlphaTestFunc::AlwaysPass: case AlphaTestFunc::Equal: @@ -42,50 +44,54 @@ case AlphaTestFunc::Less: case AlphaTestFunc::Never: case AlphaTestFunc::NotEqual: return true; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } -bool ValidateClientStateCommon(const Context *context, ClientVertexArrayType arrayType) +bool ValidateClientStateCommon(const Context *context, + angle::EntryPoint entryPoint, + ClientVertexArrayType arrayType) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (arrayType) { case ClientVertexArrayType::Vertex: case ClientVertexArrayType::Normal: case ClientVertexArrayType::Color: case ClientVertexArrayType::TextureCoord: return true; case ClientVertexArrayType::PointSize: if (!context->getExtensions().pointSizeArrayOES) { - context->validationError(GL_INVALID_ENUM, kPointSizeArrayExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kPointSizeArrayExtensionNotEnabled); return false; } return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidClientState); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidClientState); return false; } } bool ValidateBuiltinVertexAttributeCommon(const Context *context, + angle::EntryPoint entryPoint, ClientVertexArrayType arrayType, GLint size, VertexAttribType type, GLsizei stride, const void *pointer) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (stride < 0) { - context->validationError(GL_INVALID_VALUE, kInvalidVertexPointerStride); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidVertexPointerStride); return false; } int minSize = 1; int maxSize = 4; @@ -106,11 +112,12 @@ maxSize = 4; break; case ClientVertexArrayType::PointSize: if (!context->getExtensions().pointSizeArrayOES) { - context->validationError(GL_INVALID_ENUM, kPointSizeArrayExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kPointSizeArrayExtensionNotEnabled); return false; } minSize = 1; maxSize = 1; @@ -120,69 +127,70 @@ return false; } if (size < minSize || size > maxSize) { - context->validationError(GL_INVALID_VALUE, kInvalidVertexPointerSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidVertexPointerSize); return false; } switch (type) { case VertexAttribType::Byte: if (arrayType == ClientVertexArrayType::PointSize) { - context->validationError(GL_INVALID_ENUM, kInvalidVertexPointerType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidVertexPointerType); return false; } break; case VertexAttribType::Short: if (arrayType == ClientVertexArrayType::PointSize || arrayType == ClientVertexArrayType::Color) { - context->validationError(GL_INVALID_ENUM, kInvalidVertexPointerType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidVertexPointerType); return false; } break; case VertexAttribType::Fixed: case VertexAttribType::Float: break; case VertexAttribType::UnsignedByte: if (arrayType != ClientVertexArrayType::Color) { - context->validationError(GL_INVALID_ENUM, kInvalidVertexPointerType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidVertexPointerType); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidVertexPointerType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidVertexPointerType); return false; } return true; } -bool ValidateLightCaps(const Context *context, GLenum light) +bool ValidateLightCaps(const Context *context, angle::EntryPoint entryPoint, GLenum light) { if (light < GL_LIGHT0 || light >= GL_LIGHT0 + context->getCaps().maxLights) { - context->validationError(GL_INVALID_ENUM, kInvalidLight); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLight); return false; } return true; } bool ValidateLightCommon(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, const GLfloat *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); - if (!ValidateLightCaps(context, light)) + if (!ValidateLightCaps(context, entryPoint, light)) { return false; } switch (pname) @@ -194,60 +202,62 @@ case LightParameter::SpotDirection: return true; case LightParameter::SpotExponent: if (params[0] < 0.0f || params[0] > 128.0f) { - context->validationError(GL_INVALID_VALUE, kLightParameterOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kLightParameterOutOfRange); return false; } return true; case LightParameter::SpotCutoff: if (params[0] == 180.0f) { return true; } if (params[0] < 0.0f || params[0] > 90.0f) { - context->validationError(GL_INVALID_VALUE, kLightParameterOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kLightParameterOutOfRange); return false; } return true; case LightParameter::ConstantAttenuation: case LightParameter::LinearAttenuation: case LightParameter::QuadraticAttenuation: if (params[0] < 0.0f) { - context->validationError(GL_INVALID_VALUE, kLightParameterOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kLightParameterOutOfRange); return false; } return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidLightParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLightParameter); return false; } } bool ValidateLightSingleComponent(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, GLfloat param) { - if (!ValidateLightCommon(context, light, pname, ¶m)) + if (!ValidateLightCommon(context, entryPoint, light, pname, ¶m)) { return false; } if (GetLightParameterCount(pname) > 1) { - context->validationError(GL_INVALID_ENUM, kInvalidLightParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLightParameter); return false; } return true; } bool ValidateMaterialCommon(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfloat *params) { switch (pname) @@ -259,117 +269,128 @@ case MaterialParameter::Emission: return true; case MaterialParameter::Shininess: if (params[0] < 0.0f || params[0] > 128.0f) { - context->validationError(GL_INVALID_VALUE, kMaterialParameterOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, + kMaterialParameterOutOfRange); return false; } return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidMaterialParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMaterialParameter); return false; } } bool ValidateMaterialSetting(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfloat *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (face != GL_FRONT_AND_BACK) { - context->validationError(GL_INVALID_ENUM, kInvalidMaterialFace); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMaterialFace); return false; } - return ValidateMaterialCommon(context, face, pname, params); + return ValidateMaterialCommon(context, entryPoint, face, pname, params); } -bool ValidateMaterialQuery(const Context *context, GLenum face, MaterialParameter pname) +bool ValidateMaterialQuery(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + MaterialParameter pname) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (face != GL_FRONT && face != GL_BACK) { - context->validationError(GL_INVALID_ENUM, kInvalidMaterialFace); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMaterialFace); return false; } GLfloat validateParams[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - return ValidateMaterialCommon(context, face, pname, validateParams); + return ValidateMaterialCommon(context, entryPoint, face, pname, validateParams); } bool ValidateMaterialSingleComponent(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, GLfloat param) { - if (!ValidateMaterialSetting(context, face, pname, ¶m)) + if (!ValidateMaterialSetting(context, entryPoint, face, pname, ¶m)) { return false; } if (GetMaterialParameterCount(pname) > 1) { - context->validationError(GL_INVALID_ENUM, kInvalidMaterialParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMaterialParameter); return false; } return true; } -bool ValidateLightModelCommon(const Context *context, GLenum pname) +bool ValidateLightModelCommon(const Context *context, angle::EntryPoint entryPoint, GLenum pname) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (pname) { case GL_LIGHT_MODEL_AMBIENT: case GL_LIGHT_MODEL_TWO_SIDE: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidLightModelParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLightModelParameter); return false; } } -bool ValidateLightModelSingleComponent(const Context *context, GLenum pname) +bool ValidateLightModelSingleComponent(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname) { - if (!ValidateLightModelCommon(context, pname)) + if (!ValidateLightModelCommon(context, entryPoint, pname)) { return false; } switch (pname) { case GL_LIGHT_MODEL_TWO_SIDE: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidLightModelParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLightModelParameter); return false; } } -bool ValidateClipPlaneCommon(const Context *context, GLenum plane) +bool ValidateClipPlaneCommon(const Context *context, angle::EntryPoint entryPoint, GLenum plane) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (plane < GL_CLIP_PLANE0 || plane >= GL_CLIP_PLANE0 + context->getCaps().maxClipPlanes) { - context->validationError(GL_INVALID_ENUM, kInvalidClipPlane); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidClipPlane); return false; } return true; } -bool ValidateFogCommon(const Context *context, GLenum pname, const GLfloat *params) +bool ValidateFogCommon(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (pname) { case GL_FOG_MODE: { @@ -379,39 +400,39 @@ case GL_EXP: case GL_EXP2: case GL_LINEAR: return true; default: - context->validationError(GL_INVALID_VALUE, kInvalidFogMode); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFogMode); return false; } } - break; case GL_FOG_START: case GL_FOG_END: case GL_FOG_COLOR: break; case GL_FOG_DENSITY: if (params[0] < 0.0f) { - context->validationError(GL_INVALID_VALUE, kInvalidFogDensity); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFogDensity); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidFogParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFogParameter); return false; } return true; } bool ValidateTexEnvCommon(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLfloat *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (target) { case TextureEnvTarget::Env: switch (pname) @@ -427,11 +448,12 @@ case TextureEnvMode::Decal: case TextureEnvMode::Modulate: case TextureEnvMode::Replace: break; default: - context->validationError(GL_INVALID_VALUE, kInvalidTextureEnvMode); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureEnvMode); return false; } break; } case TextureEnvParameter::CombineRgb: @@ -449,16 +471,18 @@ break; case TextureCombine::Dot3Rgb: case TextureCombine::Dot3Rgba: if (pname == TextureEnvParameter::CombineAlpha) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureCombine); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureCombine); return false; } break; default: - context->validationError(GL_INVALID_VALUE, kInvalidTextureCombine); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureCombine); return false; } break; } case TextureEnvParameter::Src0Rgb: @@ -475,11 +499,12 @@ case TextureSrc::Previous: case TextureSrc::PrimaryColor: case TextureSrc::Texture: break; default: - context->validationError(GL_INVALID_VALUE, kInvalidTextureCombineSrc); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureCombineSrc); return false; } break; } case TextureEnvParameter::Op0Rgb: @@ -499,58 +524,64 @@ case TextureOp::OneMinusSrcColor: if (pname == TextureEnvParameter::Op0Alpha || pname == TextureEnvParameter::Op1Alpha || pname == TextureEnvParameter::Op2Alpha) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureCombine); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureCombine); return false; } break; default: - context->validationError(GL_INVALID_VALUE, kInvalidTextureCombineOp); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureCombineOp); return false; } break; } case TextureEnvParameter::RgbScale: case TextureEnvParameter::AlphaScale: if (params[0] != 1.0f && params[0] != 2.0f && params[0] != 4.0f) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureEnvScale); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTextureEnvScale); return false; } break; case TextureEnvParameter::Color: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureEnvParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, + kInvalidTextureEnvParameter); return false; } break; case TextureEnvTarget::PointSprite: if (!context->getExtensions().pointSpriteOES) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureEnvTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureEnvTarget); return false; } switch (pname) { case TextureEnvParameter::PointCoordReplace: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureEnvParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, + kInvalidTextureEnvParameter); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureEnvTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureEnvTarget); return false; } return true; } bool ValidateGetTexEnvCommon(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname) { GLfloat validateParams[4] = {}; switch (pname) @@ -585,18 +616,19 @@ break; default: break; } - return ValidateTexEnvCommon(context, target, pname, validateParams); + return ValidateTexEnvCommon(context, entryPoint, target, pname, validateParams); } bool ValidatePointParameterCommon(const Context *context, + angle::EntryPoint entryPoint, PointParameter pname, const GLfloat *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (pname) { case PointParameter::PointSizeMin: case PointParameter::PointSizeMax: @@ -604,43 +636,47 @@ case PointParameter::PointDistanceAttenuation: for (unsigned int i = 0; i < GetPointParameterCount(pname); i++) { if (params[i] < 0.0f) { - context->validationError(GL_INVALID_VALUE, kInvalidPointParameterValue); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidPointParameterValue); return false; } } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPointParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointParameter); return false; } return true; } -bool ValidatePointSizeCommon(const Context *context, GLfloat size) +bool ValidatePointSizeCommon(const Context *context, angle::EntryPoint entryPoint, GLfloat size) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (size <= 0.0f) { - context->validationError(GL_INVALID_VALUE, kInvalidPointSizeValue); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidPointSizeValue); return false; } return true; } -bool ValidateDrawTexCommon(const Context *context, float width, float height) +bool ValidateDrawTexCommon(const Context *context, + angle::EntryPoint entryPoint, + float width, + float height) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (width <= 0.0f || height <= 0.0f) { - context->validationError(GL_INVALID_VALUE, kNonPositiveDrawTextureDimension); + context->validationError(entryPoint, GL_INVALID_VALUE, kNonPositiveDrawTextureDimension); return false; } return true; } @@ -648,143 +684,172 @@ } // namespace gl namespace gl { -bool ValidateAlphaFunc(const Context *context, AlphaTestFunc func, GLfloat ref) +bool ValidateAlphaFunc(const Context *context, + angle::EntryPoint entryPoint, + AlphaTestFunc func, + GLfloat ref) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateAlphaFuncCommon(context, func); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateAlphaFuncCommon(context, entryPoint, func); } -bool ValidateAlphaFuncx(const Context *context, AlphaTestFunc func, GLfixed ref) +bool ValidateAlphaFuncx(const Context *context, + angle::EntryPoint entryPoint, + AlphaTestFunc func, + GLfixed ref) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateAlphaFuncCommon(context, func); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateAlphaFuncCommon(context, entryPoint, func); } bool ValidateClearColorx(const Context *context, + angle::EntryPoint entryPoint, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateClearDepthx(const Context *context, GLfixed depth) +bool ValidateClearDepthx(const Context *context, angle::EntryPoint entryPoint, GLfixed depth) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateClientActiveTexture(const Context *context, GLenum texture) +bool ValidateClientActiveTexture(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateMultitextureUnit(context, texture); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateMultitextureUnit(context, entryPoint, texture); } -bool ValidateClipPlanef(const Context *context, GLenum plane, const GLfloat *eqn) +bool ValidateClipPlanef(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfloat *eqn) { - return ValidateClipPlaneCommon(context, plane); + return ValidateClipPlaneCommon(context, entryPoint, plane); } -bool ValidateClipPlanex(const Context *context, GLenum plane, const GLfixed *equation) +bool ValidateClipPlanex(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfixed *equation) { - return ValidateClipPlaneCommon(context, plane); + return ValidateClipPlaneCommon(context, entryPoint, plane); } bool ValidateColor4f(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateColor4ub(const Context *context, + angle::EntryPoint entryPoint, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateColor4x(const Context *context, + angle::EntryPoint entryPoint, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateColorPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType type, GLsizei stride, const void *pointer) { - return ValidateBuiltinVertexAttributeCommon(context, ClientVertexArrayType::Color, size, type, - stride, pointer); + return ValidateBuiltinVertexAttributeCommon(context, entryPoint, ClientVertexArrayType::Color, + size, type, stride, pointer); } -bool ValidateCullFace(const Context *context, GLenum mode) +bool ValidateCullFace(const Context *context, angle::EntryPoint entryPoint, GLenum mode) { UNIMPLEMENTED(); return true; } -bool ValidateDepthRangex(const Context *context, GLfixed n, GLfixed f) +bool ValidateDepthRangex(const Context *context, angle::EntryPoint entryPoint, GLfixed n, GLfixed f) { - ANGLE_VALIDATE_IS_GLES1(context); - if (context->getExtensions().webglCompatibility && n > f) + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + if (context->isWebGL() && n > f) { - context->validationError(GL_INVALID_OPERATION, kInvalidDepthRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDepthRange); return false; } return true; } -bool ValidateDisableClientState(const Context *context, ClientVertexArrayType arrayType) +bool ValidateDisableClientState(const Context *context, + angle::EntryPoint entryPoint, + ClientVertexArrayType arrayType) { - return ValidateClientStateCommon(context, arrayType); + return ValidateClientStateCommon(context, entryPoint, arrayType); } -bool ValidateEnableClientState(const Context *context, ClientVertexArrayType arrayType) +bool ValidateEnableClientState(const Context *context, + angle::EntryPoint entryPoint, + ClientVertexArrayType arrayType) { - return ValidateClientStateCommon(context, arrayType); + return ValidateClientStateCommon(context, entryPoint, arrayType); } -bool ValidateFogf(const Context *context, GLenum pname, GLfloat param) +bool ValidateFogf(const Context *context, angle::EntryPoint entryPoint, GLenum pname, GLfloat param) { - return ValidateFogCommon(context, pname, ¶m); + return ValidateFogCommon(context, entryPoint, pname, ¶m); } -bool ValidateFogfv(const Context *context, GLenum pname, const GLfloat *params) +bool ValidateFogfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params) { - return ValidateFogCommon(context, pname, params); + return ValidateFogCommon(context, entryPoint, pname, params); } -bool ValidateFogx(const Context *context, GLenum pname, GLfixed param) +bool ValidateFogx(const Context *context, angle::EntryPoint entryPoint, GLenum pname, GLfixed param) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); GLfloat asFloat = pname == GL_FOG_MODE ? static_cast(param) : ConvertFixedToFloat(param); - return ValidateFogCommon(context, pname, &asFloat); + return ValidateFogCommon(context, entryPoint, pname, &asFloat); } -bool ValidateFogxv(const Context *context, GLenum pname, const GLfixed *params) +bool ValidateFogxv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); unsigned int paramCount = GetFogParameterCount(pname); GLfloat paramsf[4] = {}; if (pname == GL_FOG_MODE) { @@ -796,230 +861,273 @@ { paramsf[i] = ConvertFixedToFloat(params[i]); } } - return ValidateFogCommon(context, pname, paramsf); + return ValidateFogCommon(context, entryPoint, pname, paramsf); } bool ValidateFrustumf(const Context *context, + angle::EntryPoint entryPoint, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (l == r || b == t || n == f || n <= 0.0f || f <= 0.0f) { - context->validationError(GL_INVALID_VALUE, kInvalidProjectionMatrix); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProjectionMatrix); } return true; } bool ValidateFrustumx(const Context *context, + angle::EntryPoint entryPoint, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (l == r || b == t || n == f || n <= 0 || f <= 0) { - context->validationError(GL_INVALID_VALUE, kInvalidProjectionMatrix); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProjectionMatrix); } return true; } bool ValidateGetBufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params) { UNIMPLEMENTED(); return true; } -bool ValidateGetClipPlanef(const Context *context, GLenum plane, const GLfloat *equation) +bool ValidateGetClipPlanef(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfloat *equation) { - return ValidateClipPlaneCommon(context, plane); + return ValidateClipPlaneCommon(context, entryPoint, plane); } -bool ValidateGetClipPlanex(const Context *context, GLenum plane, const GLfixed *equation) +bool ValidateGetClipPlanex(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfixed *equation) { - return ValidateClipPlaneCommon(context, plane); + return ValidateClipPlaneCommon(context, entryPoint, plane); } -bool ValidateGetFixedv(const Context *context, GLenum pname, const GLfixed *params) +bool ValidateGetFixedv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); GLenum nativeType; unsigned int numParams = 0; - return ValidateStateQuery(context, pname, &nativeType, &numParams); + return ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams); } bool ValidateGetLightfv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, const GLfloat *params) { GLfloat validateParams[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - return ValidateLightCommon(context, light, pname, validateParams); + return ValidateLightCommon(context, entryPoint, light, pname, validateParams); } bool ValidateGetLightxv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, const GLfixed *params) { GLfloat validateParams[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - return ValidateLightCommon(context, light, pname, validateParams); + return ValidateLightCommon(context, entryPoint, light, pname, validateParams); } bool ValidateGetMaterialfv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfloat *params) { - return ValidateMaterialQuery(context, face, pname); + return ValidateMaterialQuery(context, entryPoint, face, pname); } bool ValidateGetMaterialxv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfixed *params) { - return ValidateMaterialQuery(context, face, pname); + return ValidateMaterialQuery(context, entryPoint, face, pname); } bool ValidateGetTexEnvfv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLfloat *params) { - return ValidateGetTexEnvCommon(context, target, pname); + return ValidateGetTexEnvCommon(context, entryPoint, target, pname); } bool ValidateGetTexEnviv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLint *params) { - return ValidateGetTexEnvCommon(context, target, pname); + return ValidateGetTexEnvCommon(context, entryPoint, target, pname); } bool ValidateGetTexEnvxv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLfixed *params) { - return ValidateGetTexEnvCommon(context, target, pname); + return ValidateGetTexEnvCommon(context, entryPoint, target, pname); } bool ValidateGetTexParameterxv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLfixed *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); - if (!ValidateGetTexParameterBase(context, target, pname, nullptr)) + if (!ValidateGetTexParameterBase(context, entryPoint, target, pname, nullptr)) { return false; } return true; } -bool ValidateLightModelf(const Context *context, GLenum pname, GLfloat param) +bool ValidateLightModelf(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param) { - return ValidateLightModelSingleComponent(context, pname); + return ValidateLightModelSingleComponent(context, entryPoint, pname); } -bool ValidateLightModelfv(const Context *context, GLenum pname, const GLfloat *params) +bool ValidateLightModelfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params) { - return ValidateLightModelCommon(context, pname); + return ValidateLightModelCommon(context, entryPoint, pname); } -bool ValidateLightModelx(const Context *context, GLenum pname, GLfixed param) +bool ValidateLightModelx(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfixed param) { - return ValidateLightModelSingleComponent(context, pname); + return ValidateLightModelSingleComponent(context, entryPoint, pname); } -bool ValidateLightModelxv(const Context *context, GLenum pname, const GLfixed *param) +bool ValidateLightModelxv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *param) { - return ValidateLightModelCommon(context, pname); + return ValidateLightModelCommon(context, entryPoint, pname); } -bool ValidateLightf(const Context *context, GLenum light, LightParameter pname, GLfloat param) +bool ValidateLightf(const Context *context, + angle::EntryPoint entryPoint, + GLenum light, + LightParameter pname, + GLfloat param) { - return ValidateLightSingleComponent(context, light, pname, param); + return ValidateLightSingleComponent(context, entryPoint, light, pname, param); } bool ValidateLightfv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, const GLfloat *params) { - return ValidateLightCommon(context, light, pname, params); + return ValidateLightCommon(context, entryPoint, light, pname, params); } -bool ValidateLightx(const Context *context, GLenum light, LightParameter pname, GLfixed param) +bool ValidateLightx(const Context *context, + angle::EntryPoint entryPoint, + GLenum light, + LightParameter pname, + GLfixed param) { - return ValidateLightSingleComponent(context, light, pname, ConvertFixedToFloat(param)); + return ValidateLightSingleComponent(context, entryPoint, light, pname, + ConvertFixedToFloat(param)); } bool ValidateLightxv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pname, const GLfixed *params) { GLfloat paramsf[4]; for (unsigned int i = 0; i < GetLightParameterCount(pname); i++) { paramsf[i] = ConvertFixedToFloat(params[i]); } - return ValidateLightCommon(context, light, pname, paramsf); + return ValidateLightCommon(context, entryPoint, light, pname, paramsf); } -bool ValidateLineWidthx(const Context *context, GLfixed width) +bool ValidateLineWidthx(const Context *context, angle::EntryPoint entryPoint, GLfixed width) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (width <= 0) { - context->validationError(GL_INVALID_VALUE, kInvalidWidth); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidWidth); return false; } return true; } -bool ValidateLoadIdentity(const Context *context) +bool ValidateLoadIdentity(const Context *context, angle::EntryPoint entryPoint) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateLoadMatrixf(const Context *context, const GLfloat *m) +bool ValidateLoadMatrixf(const Context *context, angle::EntryPoint entryPoint, const GLfloat *m) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateLoadMatrixx(const Context *context, const GLfixed *m) +bool ValidateLoadMatrixx(const Context *context, angle::EntryPoint entryPoint, const GLfixed *m) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateLogicOp(const Context *context, LogicalOperation opcode) +bool ValidateLogicOp(const Context *context, angle::EntryPoint entryPoint, LogicalOperation opcode) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (opcode) { case LogicalOperation::And: case LogicalOperation::AndInverted: case LogicalOperation::AndReverse: @@ -1036,34 +1144,45 @@ case LogicalOperation::OrReverse: case LogicalOperation::Set: case LogicalOperation::Xor: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidLogicOp); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidLogicOp); return false; } } -bool ValidateMaterialf(const Context *context, GLenum face, MaterialParameter pname, GLfloat param) +bool ValidateMaterialf(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + MaterialParameter pname, + GLfloat param) { - return ValidateMaterialSingleComponent(context, face, pname, param); + return ValidateMaterialSingleComponent(context, entryPoint, face, pname, param); } bool ValidateMaterialfv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfloat *params) { - return ValidateMaterialSetting(context, face, pname, params); + return ValidateMaterialSetting(context, entryPoint, face, pname, params); } -bool ValidateMaterialx(const Context *context, GLenum face, MaterialParameter pname, GLfixed param) +bool ValidateMaterialx(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + MaterialParameter pname, + GLfixed param) { - return ValidateMaterialSingleComponent(context, face, pname, ConvertFixedToFloat(param)); + return ValidateMaterialSingleComponent(context, entryPoint, face, pname, + ConvertFixedToFloat(param)); } bool ValidateMaterialxv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pname, const GLfixed *params) { GLfloat paramsf[4]; @@ -1071,313 +1190,370 @@ for (unsigned int i = 0; i < GetMaterialParameterCount(pname); i++) { paramsf[i] = ConvertFixedToFloat(params[i]); } - return ValidateMaterialSetting(context, face, pname, paramsf); + return ValidateMaterialSetting(context, entryPoint, face, pname, paramsf); } -bool ValidateMatrixMode(const Context *context, MatrixType mode) +bool ValidateMatrixMode(const Context *context, angle::EntryPoint entryPoint, MatrixType mode) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (mode) { case MatrixType::Projection: case MatrixType::Modelview: case MatrixType::Texture: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidMatrixMode); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMatrixMode); return false; } } -bool ValidateMultMatrixf(const Context *context, const GLfloat *m) +bool ValidateMultMatrixf(const Context *context, angle::EntryPoint entryPoint, const GLfloat *m) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateMultMatrixx(const Context *context, const GLfixed *m) +bool ValidateMultMatrixx(const Context *context, angle::EntryPoint entryPoint, const GLfixed *m) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateMultiTexCoord4f(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateMultitextureUnit(context, target); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateMultitextureUnit(context, entryPoint, target); } bool ValidateMultiTexCoord4x(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateMultitextureUnit(context, target); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateMultitextureUnit(context, entryPoint, target); } -bool ValidateNormal3f(const Context *context, GLfloat nx, GLfloat ny, GLfloat nz) +bool ValidateNormal3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat nx, + GLfloat ny, + GLfloat nz) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateNormal3x(const Context *context, GLfixed nx, GLfixed ny, GLfixed nz) +bool ValidateNormal3x(const Context *context, + angle::EntryPoint entryPoint, + GLfixed nx, + GLfixed ny, + GLfixed nz) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateNormalPointer(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType type, GLsizei stride, const void *pointer) { - return ValidateBuiltinVertexAttributeCommon(context, ClientVertexArrayType::Normal, 3, type, - stride, pointer); + return ValidateBuiltinVertexAttributeCommon(context, entryPoint, ClientVertexArrayType::Normal, + 3, type, stride, pointer); } bool ValidateOrthof(const Context *context, + angle::EntryPoint entryPoint, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); // [OpenGL ES 1.1.12] section 2.10.2 page 31: // If l is equal to r, b is equal to t, or n is equal to f, the // error INVALID VALUE results. if (l == r || b == t || n == f) { - context->validationError(GL_INVALID_VALUE, kInvalidProjectionMatrix); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProjectionMatrix); } return true; } bool ValidateOrthox(const Context *context, + angle::EntryPoint entryPoint, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); if (l == r || b == t || n == f) { - context->validationError(GL_INVALID_VALUE, kInvalidProjectionMatrix); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProjectionMatrix); } return true; } -bool ValidatePointParameterf(const Context *context, PointParameter pname, GLfloat param) +bool ValidatePointParameterf(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pname, + GLfloat param) { unsigned int paramCount = GetPointParameterCount(pname); if (paramCount != 1) { - context->validationError(GL_INVALID_ENUM, kInvalidPointParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointParameter); return false; } - return ValidatePointParameterCommon(context, pname, ¶m); + return ValidatePointParameterCommon(context, entryPoint, pname, ¶m); } -bool ValidatePointParameterfv(const Context *context, PointParameter pname, const GLfloat *params) +bool ValidatePointParameterfv(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pname, + const GLfloat *params) { - return ValidatePointParameterCommon(context, pname, params); + return ValidatePointParameterCommon(context, entryPoint, pname, params); } -bool ValidatePointParameterx(const Context *context, PointParameter pname, GLfixed param) +bool ValidatePointParameterx(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pname, + GLfixed param) { unsigned int paramCount = GetPointParameterCount(pname); if (paramCount != 1) { - context->validationError(GL_INVALID_ENUM, kInvalidPointParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointParameter); return false; } GLfloat paramf = ConvertFixedToFloat(param); - return ValidatePointParameterCommon(context, pname, ¶mf); + return ValidatePointParameterCommon(context, entryPoint, pname, ¶mf); } -bool ValidatePointParameterxv(const Context *context, PointParameter pname, const GLfixed *params) +bool ValidatePointParameterxv(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pname, + const GLfixed *params) { GLfloat paramsf[4] = {}; for (unsigned int i = 0; i < GetPointParameterCount(pname); i++) { paramsf[i] = ConvertFixedToFloat(params[i]); } - return ValidatePointParameterCommon(context, pname, paramsf); + return ValidatePointParameterCommon(context, entryPoint, pname, paramsf); } -bool ValidatePointSize(const Context *context, GLfloat size) +bool ValidatePointSize(const Context *context, angle::EntryPoint entryPoint, GLfloat size) { - return ValidatePointSizeCommon(context, size); + return ValidatePointSizeCommon(context, entryPoint, size); } -bool ValidatePointSizex(const Context *context, GLfixed size) +bool ValidatePointSizex(const Context *context, angle::EntryPoint entryPoint, GLfixed size) { - return ValidatePointSizeCommon(context, ConvertFixedToFloat(size)); + return ValidatePointSizeCommon(context, entryPoint, ConvertFixedToFloat(size)); } -bool ValidatePolygonOffsetx(const Context *context, GLfixed factor, GLfixed units) +bool ValidatePolygonOffsetx(const Context *context, + angle::EntryPoint entryPoint, + GLfixed factor, + GLfixed units) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidatePopMatrix(const Context *context) +bool ValidatePopMatrix(const Context *context, angle::EntryPoint entryPoint) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); const auto &stack = context->getState().gles1().currentMatrixStack(); if (stack.size() == 1) { - context->validationError(GL_STACK_UNDERFLOW, kMatrixStackUnderflow); + context->validationError(entryPoint, GL_STACK_UNDERFLOW, kMatrixStackUnderflow); + return false; + } + return true; +} + +bool ValidatePushMatrix(const Context *context, angle::EntryPoint entryPoint) +{ + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + const auto &stack = context->getState().gles1().currentMatrixStack(); + if (stack.size() == stack.max_size()) + { + context->validationError(entryPoint, GL_STACK_OVERFLOW, kMatrixStackOverflow); return false; } return true; } -bool ValidatePushMatrix(const Context *context) +bool ValidateRotatef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat angle, + GLfloat x, + GLfloat y, + GLfloat z) { - ANGLE_VALIDATE_IS_GLES1(context); - const auto &stack = context->getState().gles1().currentMatrixStack(); - if (stack.size() == stack.max_size()) - { - context->validationError(GL_STACK_OVERFLOW, kMatrixStackOverflow); - return false; - } + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateRotatef(const Context *context, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) +bool ValidateRotatex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed angle, + GLfixed x, + GLfixed y, + GLfixed z) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateRotatex(const Context *context, GLfixed angle, GLfixed x, GLfixed y, GLfixed z) +bool ValidateSampleCoveragex(const Context *context, + angle::EntryPoint entryPoint, + GLclampx value, + GLboolean invert) { - ANGLE_VALIDATE_IS_GLES1(context); - return true; -} - -bool ValidateSampleCoveragex(const Context *context, GLclampx value, GLboolean invert) -{ - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateScalef(const Context *context, GLfloat x, GLfloat y, GLfloat z) +bool ValidateScalef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateScalex(const Context *context, GLfixed x, GLfixed y, GLfixed z) +bool ValidateScalex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed x, + GLfixed y, + GLfixed z) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateShadeModel(const Context *context, ShadingModel mode) +bool ValidateShadeModel(const Context *context, angle::EntryPoint entryPoint, ShadingModel mode) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); switch (mode) { case ShadingModel::Flat: case ShadingModel::Smooth: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidShadingModel); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShadingModel); return false; } } bool ValidateTexCoordPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType type, GLsizei stride, const void *pointer) { - return ValidateBuiltinVertexAttributeCommon(context, ClientVertexArrayType::TextureCoord, size, - type, stride, pointer); + return ValidateBuiltinVertexAttributeCommon( + context, entryPoint, ClientVertexArrayType::TextureCoord, size, type, stride, pointer); } bool ValidateTexEnvf(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, GLfloat param) { - return ValidateTexEnvCommon(context, target, pname, ¶m); + return ValidateTexEnvCommon(context, entryPoint, target, pname, ¶m); } bool ValidateTexEnvfv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLfloat *params) { - return ValidateTexEnvCommon(context, target, pname, params); + return ValidateTexEnvCommon(context, entryPoint, target, pname, params); } bool ValidateTexEnvi(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, GLint param) { GLfloat paramf = static_cast(param); - return ValidateTexEnvCommon(context, target, pname, ¶mf); + return ValidateTexEnvCommon(context, entryPoint, target, pname, ¶mf); } bool ValidateTexEnviv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLint *params) { GLfloat paramsf[4]; for (unsigned int i = 0; i < GetTextureEnvParameterCount(pname); i++) { paramsf[i] = static_cast(params[i]); } - return ValidateTexEnvCommon(context, target, pname, paramsf); + return ValidateTexEnvCommon(context, entryPoint, target, pname, paramsf); } bool ValidateTexEnvx(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, GLfixed param) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); GLfloat paramsf[4] = {}; ConvertTextureEnvFromFixed(pname, ¶m, paramsf); - return ValidateTexEnvCommon(context, target, pname, paramsf); + return ValidateTexEnvCommon(context, entryPoint, target, pname, paramsf); } bool ValidateTexEnvxv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget target, TextureEnvParameter pname, const GLfixed *params) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); GLfloat paramsf[4] = {}; ConvertTextureEnvFromFixed(pname, params, paramsf); - return ValidateTexEnvCommon(context, target, pname, paramsf); + return ValidateTexEnvCommon(context, entryPoint, target, pname, paramsf); } bool ValidateTexParameterBaseForGLfixed(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, GLsizei bufSize, bool vectorParams, const GLfixed *params) @@ -1393,288 +1569,338 @@ } else { paramValue = static_cast(params[0]); } - return ValidateTexParameterBase(context, target, pname, bufSize, vectorParams, ¶mValue); + return ValidateTexParameterBase(context, entryPoint, target, pname, bufSize, vectorParams, + ¶mValue); } -bool ValidateTexParameterx(const Context *context, TextureType target, GLenum pname, GLfixed param) +bool ValidateTexParameterx(const Context *context, + angle::EntryPoint entryPoint, + TextureType target, + GLenum pname, + GLfixed param) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateTexParameterBaseForGLfixed(context, target, pname, -1, false, ¶m); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateTexParameterBaseForGLfixed(context, entryPoint, target, pname, -1, false, + ¶m); } bool ValidateTexParameterxv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLfixed *params) { - ANGLE_VALIDATE_IS_GLES1(context); - return ValidateTexParameterBaseForGLfixed(context, target, pname, -1, true, params); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); + return ValidateTexParameterBaseForGLfixed(context, entryPoint, target, pname, -1, true, params); } -bool ValidateTranslatef(const Context *context, GLfloat x, GLfloat y, GLfloat z) +bool ValidateTranslatef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } -bool ValidateTranslatex(const Context *context, GLfixed x, GLfixed y, GLfixed z) +bool ValidateTranslatex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed x, + GLfixed y, + GLfixed z) { - ANGLE_VALIDATE_IS_GLES1(context); + ANGLE_VALIDATE_IS_GLES1(context, entryPoint); return true; } bool ValidateVertexPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType type, GLsizei stride, const void *pointer) { - return ValidateBuiltinVertexAttributeCommon(context, ClientVertexArrayType::Vertex, size, type, - stride, pointer); + return ValidateBuiltinVertexAttributeCommon(context, entryPoint, ClientVertexArrayType::Vertex, + size, type, stride, pointer); } bool ValidateDrawTexfOES(const Context *context, + angle::EntryPoint entryPoint, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { - return ValidateDrawTexCommon(context, width, height); + return ValidateDrawTexCommon(context, entryPoint, width, height); } -bool ValidateDrawTexfvOES(const Context *context, const GLfloat *coords) +bool ValidateDrawTexfvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *coords) { - return ValidateDrawTexCommon(context, coords[3], coords[4]); + return ValidateDrawTexCommon(context, entryPoint, coords[3], coords[4]); } bool ValidateDrawTexiOES(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLint z, GLint width, GLint height) { - return ValidateDrawTexCommon(context, static_cast(width), + return ValidateDrawTexCommon(context, entryPoint, static_cast(width), static_cast(height)); } -bool ValidateDrawTexivOES(const Context *context, const GLint *coords) +bool ValidateDrawTexivOES(const Context *context, angle::EntryPoint entryPoint, const GLint *coords) { - return ValidateDrawTexCommon(context, static_cast(coords[3]), + return ValidateDrawTexCommon(context, entryPoint, static_cast(coords[3]), static_cast(coords[4])); } bool ValidateDrawTexsOES(const Context *context, + angle::EntryPoint entryPoint, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) { - return ValidateDrawTexCommon(context, static_cast(width), + return ValidateDrawTexCommon(context, entryPoint, static_cast(width), static_cast(height)); } -bool ValidateDrawTexsvOES(const Context *context, const GLshort *coords) +bool ValidateDrawTexsvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLshort *coords) { - return ValidateDrawTexCommon(context, static_cast(coords[3]), + return ValidateDrawTexCommon(context, entryPoint, static_cast(coords[3]), static_cast(coords[4])); } bool ValidateDrawTexxOES(const Context *context, + angle::EntryPoint entryPoint, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height) { - return ValidateDrawTexCommon(context, ConvertFixedToFloat(width), ConvertFixedToFloat(height)); + return ValidateDrawTexCommon(context, entryPoint, ConvertFixedToFloat(width), + ConvertFixedToFloat(height)); } -bool ValidateDrawTexxvOES(const Context *context, const GLfixed *coords) +bool ValidateDrawTexxvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLfixed *coords) { - return ValidateDrawTexCommon(context, ConvertFixedToFloat(coords[3]), + return ValidateDrawTexCommon(context, entryPoint, ConvertFixedToFloat(coords[3]), ConvertFixedToFloat(coords[4])); } -bool ValidateCurrentPaletteMatrixOES(const Context *context, GLuint matrixpaletteindex) +bool ValidateCurrentPaletteMatrixOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint matrixpaletteindex) { UNIMPLEMENTED(); return true; } -bool ValidateLoadPaletteFromModelViewMatrixOES(const Context *context) +bool ValidateLoadPaletteFromModelViewMatrixOES(const Context *context, angle::EntryPoint entryPoint) { UNIMPLEMENTED(); return true; } bool ValidateMatrixIndexPointerOES(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer) { UNIMPLEMENTED(); return true; } bool ValidateWeightPointerOES(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer) { UNIMPLEMENTED(); return true; } bool ValidatePointSizePointerOES(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType type, GLsizei stride, const void *pointer) { - return ValidateBuiltinVertexAttributeCommon(context, ClientVertexArrayType::PointSize, 1, type, - stride, pointer); + return ValidateBuiltinVertexAttributeCommon( + context, entryPoint, ClientVertexArrayType::PointSize, 1, type, stride, pointer); } -bool ValidateQueryMatrixxOES(const Context *context, const GLfixed *mantissa, const GLint *exponent) +bool ValidateQueryMatrixxOES(const Context *context, + angle::EntryPoint entryPoint, + const GLfixed *mantissa, + const GLint *exponent) { UNIMPLEMENTED(); return true; } bool ValidateGenFramebuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffers) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateDeleteFramebuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffers) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateGenRenderbuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffers) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateDeleteRenderbuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffers) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } -bool ValidateBindFramebufferOES(const Context *context, GLenum target, FramebufferID framebuffer) +bool ValidateBindFramebufferOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + FramebufferID framebuffer) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBindFramebufferBase(context, target, framebuffer); + return ValidateBindFramebufferBase(context, entryPoint, target, framebuffer); } -bool ValidateBindRenderbufferOES(const Context *context, GLenum target, RenderbufferID renderbuffer) +bool ValidateBindRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + RenderbufferID renderbuffer) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBindRenderbufferBase(context, target, renderbuffer); + return ValidateBindRenderbufferBase(context, entryPoint, target, renderbuffer); } -bool ValidateCheckFramebufferStatusOES(const Context *context, GLenum target) +bool ValidateCheckFramebufferStatusOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } return true; } bool ValidateFramebufferRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum rbtarget, RenderbufferID renderbuffer) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateFramebufferRenderbufferBase(context, target, attachment, rbtarget, renderbuffer); + return ValidateFramebufferRenderbufferBase(context, entryPoint, target, attachment, rbtarget, + renderbuffer); } bool ValidateFramebufferTexture2DOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textarget, TextureID texture, GLint level) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (level != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); return false; } - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } if (texture.value != 0) @@ -1688,16 +1914,17 @@ { case TextureTarget::_2D: { if (level > log2(caps.max2DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (tex->getType() != TextureType::_2D) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } } break; @@ -1708,172 +1935,212 @@ case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: { if (!context->getExtensions().textureCubeMapOES) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (level > log2(caps.maxCubeMapTextureSize)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (tex->getType() != TextureType::CubeMap) { - context->validationError(GL_INVALID_OPERATION, kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureTargetMismatch); return false; } } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } } return true; } -bool ValidateGenerateMipmapOES(const Context *context, TextureType target) +bool ValidateGenerateMipmapOES(const Context *context, + angle::EntryPoint entryPoint, + TextureType target) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenerateMipmapBase(context, target); + return ValidateGenerateMipmapBase(context, entryPoint, target); } bool ValidateGetFramebufferAttachmentParameterivOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, const GLint *params) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGetFramebufferAttachmentParameterivBase(context, target, attachment, pname, - nullptr); + return ValidateGetFramebufferAttachmentParameterivBase(context, entryPoint, target, attachment, + pname, nullptr); } bool ValidateGetRenderbufferParameterivOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGetRenderbufferParameterivBase(context, target, pname, nullptr); + return ValidateGetRenderbufferParameterivBase(context, entryPoint, target, pname, nullptr); } -bool ValidateIsFramebufferOES(const Context *context, FramebufferID framebuffer) +bool ValidateIsFramebufferOES(const Context *context, + angle::EntryPoint entryPoint, + FramebufferID framebuffer) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } -bool ValidateIsRenderbufferOES(const Context *context, RenderbufferID renderbuffer) +bool ValidateIsRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, + RenderbufferID renderbuffer) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateRenderbufferStorageOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { if (!context->getExtensions().framebufferObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateRenderbufferStorageParametersBase(context, target, 0, internalformat, width, - height); + return ValidateRenderbufferStorageParametersBase(context, entryPoint, target, 0, internalformat, + width, height); } // GL_OES_texture_cube_map bool ValidateGetTexGenfvOES(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLfloat *params) { UNIMPLEMENTED(); return true; } -bool ValidateGetTexGenivOES(const Context *context, GLenum coord, GLenum pname, const int *params) +bool ValidateGetTexGenivOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const int *params) { UNIMPLEMENTED(); return true; } bool ValidateGetTexGenxvOES(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLfixed *params) { UNIMPLEMENTED(); return true; } -bool ValidateTexGenfvOES(const Context *context, GLenum coord, GLenum pname, const GLfloat *params) +bool ValidateTexGenfvOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params) { UNIMPLEMENTED(); return true; } -bool ValidateTexGenivOES(const Context *context, GLenum coord, GLenum pname, const GLint *param) +bool ValidateTexGenivOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *param) { UNIMPLEMENTED(); return true; } -bool ValidateTexGenxvOES(const Context *context, GLenum coord, GLenum pname, const GLint *param) +bool ValidateTexGenxvOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *param) { UNIMPLEMENTED(); return true; } -bool ValidateTexGenfOES(const Context *context, GLenum coord, GLenum pname, GLfloat param) +bool ValidateTexGenfOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfloat param) { UNIMPLEMENTED(); return true; } -bool ValidateTexGeniOES(const Context *context, GLenum coord, GLenum pname, GLint param) +bool ValidateTexGeniOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLint param) { UNIMPLEMENTED(); return true; } -bool ValidateTexGenxOES(const Context *context, GLenum coord, GLenum pname, GLfixed param) +bool ValidateTexGenxOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfixed param) { UNIMPLEMENTED(); return true; } diff --git a/gfx/angle/checkout/src/libANGLE/validationES1_autogen.h b/gfx/angle/checkout/src/libANGLE/validationES1_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationES1_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationES1_autogen.h @@ -10,237 +10,384 @@ #ifndef LIBANGLE_VALIDATION_ES1_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ES1_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; -bool ValidateAlphaFunc(const Context *context, AlphaTestFunc funcPacked, GLfloat ref); -bool ValidateAlphaFuncx(const Context *context, AlphaTestFunc funcPacked, GLfixed ref); +bool ValidateAlphaFunc(const Context *context, + angle::EntryPoint entryPoint, + AlphaTestFunc funcPacked, + GLfloat ref); +bool ValidateAlphaFuncx(const Context *context, + angle::EntryPoint entryPoint, + AlphaTestFunc funcPacked, + GLfixed ref); bool ValidateClearColorx(const Context *context, + angle::EntryPoint entryPoint, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -bool ValidateClearDepthx(const Context *context, GLfixed depth); -bool ValidateClientActiveTexture(const Context *context, GLenum texture); -bool ValidateClipPlanef(const Context *context, GLenum p, const GLfloat *eqn); -bool ValidateClipPlanex(const Context *context, GLenum plane, const GLfixed *equation); +bool ValidateClearDepthx(const Context *context, angle::EntryPoint entryPoint, GLfixed depth); +bool ValidateClientActiveTexture(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture); +bool ValidateClipPlanef(const Context *context, + angle::EntryPoint entryPoint, + GLenum p, + const GLfloat *eqn); +bool ValidateClipPlanex(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfixed *equation); bool ValidateColor4f(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); bool ValidateColor4ub(const Context *context, + angle::EntryPoint entryPoint, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); bool ValidateColor4x(const Context *context, + angle::EntryPoint entryPoint, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); bool ValidateColorPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType typePacked, GLsizei stride, const void *pointer); -bool ValidateDepthRangex(const Context *context, GLfixed n, GLfixed f); -bool ValidateDisableClientState(const Context *context, ClientVertexArrayType arrayPacked); -bool ValidateEnableClientState(const Context *context, ClientVertexArrayType arrayPacked); -bool ValidateFogf(const Context *context, GLenum pname, GLfloat param); -bool ValidateFogfv(const Context *context, GLenum pname, const GLfloat *params); -bool ValidateFogx(const Context *context, GLenum pname, GLfixed param); -bool ValidateFogxv(const Context *context, GLenum pname, const GLfixed *param); +bool ValidateDepthRangex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed n, + GLfixed f); +bool ValidateDisableClientState(const Context *context, + angle::EntryPoint entryPoint, + ClientVertexArrayType arrayPacked); +bool ValidateEnableClientState(const Context *context, + angle::EntryPoint entryPoint, + ClientVertexArrayType arrayPacked); +bool ValidateFogf(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param); +bool ValidateFogfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params); +bool ValidateFogx(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfixed param); +bool ValidateFogxv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *param); bool ValidateFrustumf(const Context *context, + angle::EntryPoint entryPoint, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); bool ValidateFrustumx(const Context *context, + angle::EntryPoint entryPoint, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -bool ValidateGetClipPlanef(const Context *context, GLenum plane, const GLfloat *equation); -bool ValidateGetClipPlanex(const Context *context, GLenum plane, const GLfixed *equation); -bool ValidateGetFixedv(const Context *context, GLenum pname, const GLfixed *params); +bool ValidateGetClipPlanef(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfloat *equation); +bool ValidateGetClipPlanex(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLfixed *equation); +bool ValidateGetFixedv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *params); bool ValidateGetLightfv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, const GLfloat *params); bool ValidateGetLightxv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, const GLfixed *params); bool ValidateGetMaterialfv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, const GLfloat *params); bool ValidateGetMaterialxv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, const GLfixed *params); bool ValidateGetTexEnvfv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLfloat *params); bool ValidateGetTexEnviv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLint *params); bool ValidateGetTexEnvxv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLfixed *params); bool ValidateGetTexParameterxv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLfixed *params); -bool ValidateLightModelf(const Context *context, GLenum pname, GLfloat param); -bool ValidateLightModelfv(const Context *context, GLenum pname, const GLfloat *params); -bool ValidateLightModelx(const Context *context, GLenum pname, GLfixed param); -bool ValidateLightModelxv(const Context *context, GLenum pname, const GLfixed *param); +bool ValidateLightModelf(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param); +bool ValidateLightModelfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params); +bool ValidateLightModelx(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfixed param); +bool ValidateLightModelxv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfixed *param); bool ValidateLightf(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, GLfloat param); bool ValidateLightfv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, const GLfloat *params); bool ValidateLightx(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, GLfixed param); bool ValidateLightxv(const Context *context, + angle::EntryPoint entryPoint, GLenum light, LightParameter pnamePacked, const GLfixed *params); -bool ValidateLineWidthx(const Context *context, GLfixed width); -bool ValidateLoadIdentity(const Context *context); -bool ValidateLoadMatrixf(const Context *context, const GLfloat *m); -bool ValidateLoadMatrixx(const Context *context, const GLfixed *m); -bool ValidateLogicOp(const Context *context, LogicalOperation opcodePacked); +bool ValidateLineWidthx(const Context *context, angle::EntryPoint entryPoint, GLfixed width); +bool ValidateLoadIdentity(const Context *context, angle::EntryPoint entryPoint); +bool ValidateLoadMatrixf(const Context *context, angle::EntryPoint entryPoint, const GLfloat *m); +bool ValidateLoadMatrixx(const Context *context, angle::EntryPoint entryPoint, const GLfixed *m); +bool ValidateLogicOp(const Context *context, + angle::EntryPoint entryPoint, + LogicalOperation opcodePacked); bool ValidateMaterialf(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, GLfloat param); bool ValidateMaterialfv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, const GLfloat *params); bool ValidateMaterialx(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, GLfixed param); bool ValidateMaterialxv(const Context *context, + angle::EntryPoint entryPoint, GLenum face, MaterialParameter pnamePacked, const GLfixed *param); -bool ValidateMatrixMode(const Context *context, MatrixType modePacked); -bool ValidateMultMatrixf(const Context *context, const GLfloat *m); -bool ValidateMultMatrixx(const Context *context, const GLfixed *m); +bool ValidateMatrixMode(const Context *context, + angle::EntryPoint entryPoint, + MatrixType modePacked); +bool ValidateMultMatrixf(const Context *context, angle::EntryPoint entryPoint, const GLfloat *m); +bool ValidateMultMatrixx(const Context *context, angle::EntryPoint entryPoint, const GLfixed *m); bool ValidateMultiTexCoord4f(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); bool ValidateMultiTexCoord4x(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -bool ValidateNormal3f(const Context *context, GLfloat nx, GLfloat ny, GLfloat nz); -bool ValidateNormal3x(const Context *context, GLfixed nx, GLfixed ny, GLfixed nz); +bool ValidateNormal3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat nx, + GLfloat ny, + GLfloat nz); +bool ValidateNormal3x(const Context *context, + angle::EntryPoint entryPoint, + GLfixed nx, + GLfixed ny, + GLfixed nz); bool ValidateNormalPointer(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType typePacked, GLsizei stride, const void *pointer); bool ValidateOrthof(const Context *context, + angle::EntryPoint entryPoint, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); bool ValidateOrthox(const Context *context, + angle::EntryPoint entryPoint, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -bool ValidatePointParameterf(const Context *context, PointParameter pnamePacked, GLfloat param); +bool ValidatePointParameterf(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pnamePacked, + GLfloat param); bool ValidatePointParameterfv(const Context *context, + angle::EntryPoint entryPoint, PointParameter pnamePacked, const GLfloat *params); -bool ValidatePointParameterx(const Context *context, PointParameter pnamePacked, GLfixed param); +bool ValidatePointParameterx(const Context *context, + angle::EntryPoint entryPoint, + PointParameter pnamePacked, + GLfixed param); bool ValidatePointParameterxv(const Context *context, + angle::EntryPoint entryPoint, PointParameter pnamePacked, const GLfixed *params); -bool ValidatePointSize(const Context *context, GLfloat size); -bool ValidatePointSizex(const Context *context, GLfixed size); -bool ValidatePolygonOffsetx(const Context *context, GLfixed factor, GLfixed units); -bool ValidatePopMatrix(const Context *context); -bool ValidatePushMatrix(const Context *context); -bool ValidateRotatef(const Context *context, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -bool ValidateRotatex(const Context *context, GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -bool ValidateSampleCoveragex(const Context *context, GLclampx value, GLboolean invert); -bool ValidateScalef(const Context *context, GLfloat x, GLfloat y, GLfloat z); -bool ValidateScalex(const Context *context, GLfixed x, GLfixed y, GLfixed z); -bool ValidateShadeModel(const Context *context, ShadingModel modePacked); +bool ValidatePointSize(const Context *context, angle::EntryPoint entryPoint, GLfloat size); +bool ValidatePointSizex(const Context *context, angle::EntryPoint entryPoint, GLfixed size); +bool ValidatePolygonOffsetx(const Context *context, + angle::EntryPoint entryPoint, + GLfixed factor, + GLfixed units); +bool ValidatePopMatrix(const Context *context, angle::EntryPoint entryPoint); +bool ValidatePushMatrix(const Context *context, angle::EntryPoint entryPoint); +bool ValidateRotatef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat angle, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateRotatex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed angle, + GLfixed x, + GLfixed y, + GLfixed z); +bool ValidateSampleCoveragex(const Context *context, + angle::EntryPoint entryPoint, + GLclampx value, + GLboolean invert); +bool ValidateScalef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateScalex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed x, + GLfixed y, + GLfixed z); +bool ValidateShadeModel(const Context *context, + angle::EntryPoint entryPoint, + ShadingModel modePacked); bool ValidateTexCoordPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType typePacked, GLsizei stride, const void *pointer); bool ValidateTexEnvf(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, GLfloat param); bool ValidateTexEnvfv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLfloat *params); bool ValidateTexEnvi(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, GLint param); bool ValidateTexEnviv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLint *params); bool ValidateTexEnvx(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, GLfixed param); bool ValidateTexEnvxv(const Context *context, + angle::EntryPoint entryPoint, TextureEnvTarget targetPacked, TextureEnvParameter pnamePacked, const GLfixed *params); bool ValidateTexParameterx(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLfixed param); bool ValidateTexParameterxv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLfixed *params); -bool ValidateTranslatef(const Context *context, GLfloat x, GLfloat y, GLfloat z); -bool ValidateTranslatex(const Context *context, GLfixed x, GLfixed y, GLfixed z); +bool ValidateTranslatef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateTranslatex(const Context *context, + angle::EntryPoint entryPoint, + GLfixed x, + GLfixed y, + GLfixed z); bool ValidateVertexPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, VertexAttribType typePacked, GLsizei stride, const void *pointer); } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationES2.h b/gfx/angle/checkout/src/libANGLE/validationES2.h --- a/gfx/angle/checkout/src/libANGLE/validationES2.h +++ b/gfx/angle/checkout/src/libANGLE/validationES2.h @@ -14,83 +14,92 @@ #include "libANGLE/validationES2_autogen.h" namespace gl { ANGLE_INLINE bool ValidateDrawArrays(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count) { - return ValidateDrawArraysCommon(context, mode, first, count, 1); + return ValidateDrawArraysCommon(context, entryPoint, mode, first, count, 1); } ANGLE_INLINE bool ValidateUniform2f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLfloat x, GLfloat y) { - return ValidateUniform(context, GL_FLOAT_VEC2, location, 1); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC2, location, 1); } -ANGLE_INLINE bool ValidateBindBuffer(const Context *context, BufferBinding target, BufferID buffer) +ANGLE_INLINE bool ValidateBindBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target, + BufferID buffer) { if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, err::kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kInvalidBufferTypes); return false; } if (!context->getState().isBindGeneratesResourceEnabled() && !context->isBufferGenerated(buffer)) { - context->validationError(GL_INVALID_OPERATION, err::kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kObjectNotGenerated); return false; } return true; } ANGLE_INLINE bool ValidateDrawElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices) { - return ValidateDrawElementsCommon(context, mode, count, type, indices, 1); + return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 1); } ANGLE_INLINE bool ValidateVertexAttribPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType type, GLboolean normalized, GLsizei stride, const void *ptr) { - if (!ValidateFloatVertexFormat(context, index, size, type)) + if (!ValidateFloatVertexFormat(context, entryPoint, index, size, type)) { return false; } if (stride < 0) { - context->validationError(GL_INVALID_VALUE, err::kNegativeStride); + context->validationError(entryPoint, GL_INVALID_VALUE, err::kNegativeStride); return false; } if (context->getClientVersion() >= ES_3_1) { const Caps &caps = context->getCaps(); if (stride > caps.maxVertexAttribStride) { - context->validationError(GL_INVALID_VALUE, err::kExceedsMaxVertexAttribStride); + context->validationError(entryPoint, GL_INVALID_VALUE, + err::kExceedsMaxVertexAttribStride); return false; } if (index >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, err::kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + err::kExceedsMaxVertexAttribBindings); return false; } } // [OpenGL ES 3.0.2] Section 2.8 page 24: @@ -100,40 +109,46 @@ bool nullBufferAllowed = context->getState().areClientArraysEnabled() && context->getState().getVertexArray()->id().value == 0; if (!nullBufferAllowed && context->getState().getTargetBuffer(BufferBinding::Array) == 0 && ptr != nullptr) { - context->validationError(GL_INVALID_OPERATION, err::kClientDataInVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kClientDataInVertexArray); return false; } - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { // WebGL 1.0 [Section 6.14] Fixed point support // The WebGL API does not support the GL_FIXED data type. if (type == VertexAttribType::Fixed) { - context->validationError(GL_INVALID_ENUM, err::kFixedNotInWebGL); + context->validationError(entryPoint, GL_INVALID_ENUM, err::kFixedNotInWebGL); return false; } - if (!ValidateWebGLVertexAttribPointer(context, type, normalized, stride, ptr, false)) + if (!ValidateWebGLVertexAttribPointer(context, entryPoint, type, normalized, stride, ptr, + false)) { return false; } } return true; } -void RecordBindTextureTypeError(const Context *context, TextureType target); +void RecordBindTextureTypeError(const Context *context, + angle::EntryPoint entryPoint, + TextureType target); -ANGLE_INLINE bool ValidateBindTexture(const Context *context, TextureType target, TextureID texture) +ANGLE_INLINE bool ValidateBindTexture(const Context *context, + angle::EntryPoint entryPoint, + TextureType target, + TextureID texture) { if (!context->getStateCache().isValidBindTextureType(target)) { - RecordBindTextureTypeError(context, target); + RecordBindTextureTypeError(context, entryPoint, target); return false; } if (texture.value == 0) { @@ -141,26 +156,27 @@ } Texture *textureObject = context->getTexture(texture); if (textureObject && textureObject->getType() != target) { - context->validationError(GL_INVALID_OPERATION, err::kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kTextureTargetMismatch); return false; } if (!context->getState().isBindGeneratesResourceEnabled() && !context->isTextureGenerated(texture)) { - context->validationError(GL_INVALID_OPERATION, err::kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kObjectNotGenerated); return false; } return true; } // Validation of all Tex[Sub]Image2D parameters except TextureTarget. bool ValidateES2TexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -174,10 +190,11 @@ GLsizei imageSize, const void *pixels); // Validation of TexStorage*2DEXT bool ValidateES2TexStorageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); diff --git a/gfx/angle/checkout/src/libANGLE/validationES2.cpp b/gfx/angle/checkout/src/libANGLE/validationES2.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES2.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES2.cpp @@ -143,29 +143,30 @@ { return IsValidCopyTextureDestinationInternalFormatEnum(internalFormat); } bool IsValidCopyTextureDestinationFormatType(const Context *context, + angle::EntryPoint entryPoint, GLint internalFormat, GLenum type) { if (!IsValidCopyTextureDestinationInternalFormatEnum(internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } if (!ValidES3FormatCombination(GetUnsizedFormat(internalFormat), type, internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTypeAndFormat); return false; } const InternalFormat &internalFormatInfo = GetInternalFormatInfo(internalFormat, type); if (!internalFormatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } return true; } @@ -182,11 +183,11 @@ case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: return true; case TextureTarget::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; default: return false; } } @@ -203,15 +204,15 @@ switch (type) { case TextureType::_2D: return true; case TextureType::Rectangle: - return context->getExtensions().textureRectangle; + return context->getExtensions().textureRectangleANGLE; case TextureType::External: - return context->getExtensions().eglImageExternalOES; + return context->getExtensions().EGLImageExternalOES; case TextureType::VideoImage: - return context->getExtensions().webglVideoTexture; + return context->getExtensions().videoTextureWEBGL; default: return false; } } @@ -229,10 +230,11 @@ return true; } bool IsValidCopyTextureDestinationLevel(const Context *context, + angle::EntryPoint entryPoint, TextureType type, GLint level, GLsizei width, GLsizei height, bool isSubImage) @@ -240,11 +242,11 @@ if (!ValidMipLevel(context, type, level)) { return false; } - if (!ValidImageSizeParameters(context, type, level, width, height, 1, isSubImage)) + if (!ValidImageSizeParameters(context, entryPoint, type, level, width, height, 1, isSubImage)) { return false; } const Caps &caps = context->getCaps(); @@ -321,38 +323,39 @@ static inline bool Valid1to4ComponentFloatColorBufferFormat(const Context *context, GLenum format) { return (context->getExtensions().textureFloatOES && (format == GL_RGBA32F || format == GL_RGB32F || format == GL_RG32F || format == GL_R32F)) || - (context->getExtensions().textureHalfFloat && + (context->getExtensions().textureHalfFloatOES && (format == GL_RGBA16F || format == GL_RGB16F || format == GL_RG16F || format == GL_R16F)); } static inline bool Valid2to4ComponentFloatColorBufferFormat(const Context *context, GLenum format) { return (context->getExtensions().textureFloatOES && (format == GL_RGBA32F || format == GL_RGB32F || format == GL_RG32F)) || - (context->getExtensions().textureHalfFloat && + (context->getExtensions().textureHalfFloatOES && (format == GL_RGBA16F || format == GL_RGB16F || format == GL_RG16F)); } static inline bool Valid3to4ComponentFloatColorBufferFormat(const Context *context, GLenum format) { return (context->getExtensions().textureFloatOES && (format == GL_RGBA32F || format == GL_RGB32F)) || - (context->getExtensions().textureHalfFloat && + (context->getExtensions().textureHalfFloatOES && (format == GL_RGBA16F || format == GL_RGB16F)); } static inline bool Valid4ComponentFloatColorBufferFormat(const Context *context, GLenum format) { return (context->getExtensions().textureFloatOES && format == GL_RGBA32F) || - (context->getExtensions().textureHalfFloat && format == GL_RGBA16F); + (context->getExtensions().textureHalfFloatOES && format == GL_RGBA16F); } bool ValidateES2CopyTexImageParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -363,35 +366,44 @@ GLsizei height, GLint border) { if (!ValidTexture2DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } TextureType texType = TextureTargetToType(target); - if (!ValidImageSizeParameters(context, texType, level, width, height, 1, isSubImage)) + if (!ValidImageSizeParameters(context, entryPoint, texType, level, width, height, 1, + isSubImage)) { // Error is already handled. return false; } Format textureFormat = Format::Invalid(); - if (!ValidateCopyTexImageParametersBase(context, target, level, internalformat, isSubImage, - xoffset, yoffset, 0, x, y, width, height, border, - &textureFormat)) - { - return false; - } + if (!ValidateCopyTexImageParametersBase(context, entryPoint, target, level, internalformat, + isSubImage, xoffset, yoffset, 0, x, y, width, height, + border, &textureFormat)) + { + return false; + } + + ASSERT(textureFormat.valid() || !isSubImage); const Framebuffer *framebuffer = context->getState().getReadFramebuffer(); GLenum colorbufferFormat = framebuffer->getReadColorAttachment()->getFormat().info->sizedInternalFormat; const auto &formatInfo = *textureFormat.info; + // ValidateCopyTexImageParametersBase rejects compressed formats with GL_INVALID_OPERATION. ASSERT(!formatInfo.compressed); + ASSERT(!GetInternalFormatInfo(internalformat, GL_UNSIGNED_BYTE).compressed); + + // ValidateCopyTexImageParametersBase rejects depth formats with GL_INVALID_OPERATION. + ASSERT(!formatInfo.depthBits); + ASSERT(!GetInternalFormatInfo(internalformat, GL_UNSIGNED_BYTE).depthBits); // [OpenGL ES 2.0.24] table 3.9 if (isSubImage) { switch (formatInfo.format) @@ -400,11 +412,11 @@ if (colorbufferFormat != GL_ALPHA8_EXT && colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_LUMINANCE: if (colorbufferFormat != GL_R8_EXT && colorbufferFormat != GL_RG8_EXT && @@ -412,11 +424,11 @@ colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid1to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_RED_EXT: if (colorbufferFormat != GL_R8_EXT && colorbufferFormat != GL_RG8_EXT && @@ -426,11 +438,11 @@ colorbufferFormat != GL_RG32F && colorbufferFormat != GL_RGB32F && colorbufferFormat != GL_RGBA32F && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid1to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_RG_EXT: if (colorbufferFormat != GL_RG8_EXT && colorbufferFormat != GL_RGB565 && @@ -439,50 +451,46 @@ colorbufferFormat != GL_RG32F && colorbufferFormat != GL_RGB32F && colorbufferFormat != GL_RGBA32F && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid2to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_RGB: if (colorbufferFormat != GL_RGB565 && colorbufferFormat != GL_RGB8_OES && colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_RGB32F && colorbufferFormat != GL_RGBA32F && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && - colorbufferFormat != GL_BGRX8_ANGLEX && + colorbufferFormat != GL_BGRX8_ANGLEX && colorbufferFormat != GL_RGBX8_ANGLEX && !Valid3to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_LUMINANCE_ALPHA: case GL_RGBA: if (colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_RGBA32F && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; - case GL_DEPTH_COMPONENT: - case GL_DEPTH_STENCIL_OES: - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); - return false; default: - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } if (formatInfo.type == GL_FLOAT && !context->getExtensions().textureFloatOES) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } } else { @@ -492,11 +500,11 @@ if (colorbufferFormat != GL_ALPHA8_EXT && colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_LUMINANCE: case GL_RED_EXT: @@ -505,70 +513,49 @@ colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid1to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_RG_EXT: if (colorbufferFormat != GL_RG8_EXT && colorbufferFormat != GL_RGB565 && colorbufferFormat != GL_RGB8_OES && colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid2to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_RGB: if (colorbufferFormat != GL_RGB565 && colorbufferFormat != GL_RGB8_OES && colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGR5_A1_ANGLEX && !Valid3to4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; case GL_LUMINANCE_ALPHA: case GL_RGBA: if (colorbufferFormat != GL_RGBA4 && colorbufferFormat != GL_RGB5_A1 && colorbufferFormat != GL_BGRA8_EXT && colorbufferFormat != GL_RGBA8_OES && colorbufferFormat != GL_BGR5_A1_ANGLEX && colorbufferFormat != GL_RGBA16F && !Valid4ComponentFloatColorBufferFormat(context, colorbufferFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } break; - case GL_DEPTH_COMPONENT: - case GL_DEPTH_COMPONENT16: - case GL_DEPTH_COMPONENT32_OES: - if (context->getExtensions().depthTextureAny()) - { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); - return false; - } - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - case GL_DEPTH_STENCIL_OES: - case GL_DEPTH24_STENCIL8_OES: - if (context->getExtensions().depthTextureAny() || - context->getExtensions().packedDepthStencilOES || - context->getExtensions().depthTextureCubeMapOES) - { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); - return false; - } - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } // If width or height is zero, it is a no-op. Return false without setting an error. @@ -580,11 +567,11 @@ switch (cap) { // EXT_multisample_compatibility case GL_MULTISAMPLE_EXT: case GL_SAMPLE_ALPHA_TO_ONE_EXT: - return context->getExtensions().multisampleCompatibility; + return context->getExtensions().multisampleCompatibilityEXT; case GL_CULL_FACE: case GL_POLYGON_OFFSET_FILL: case GL_SAMPLE_ALPHA_TO_COVERAGE: case GL_SAMPLE_COVERAGE: @@ -599,29 +586,29 @@ case GL_RASTERIZER_DISCARD: return (context->getClientMajorVersion() >= 3); case GL_DEBUG_OUTPUT_SYNCHRONOUS: case GL_DEBUG_OUTPUT: - return context->getExtensions().debug; + return context->getExtensions().debugKHR; case GL_BIND_GENERATES_RESOURCE_CHROMIUM: - return queryOnly && context->getExtensions().bindGeneratesResource; + return queryOnly && context->getExtensions().bindGeneratesResourceCHROMIUM; case GL_CLIENT_ARRAYS_ANGLE: - return queryOnly && context->getExtensions().clientArrays; + return queryOnly && context->getExtensions().clientArraysANGLE; case GL_FRAMEBUFFER_SRGB_EXT: - return context->getExtensions().sRGBWriteControl; + return context->getExtensions().sRGBWriteControlEXT; case GL_SAMPLE_MASK: return context->getClientVersion() >= Version(3, 1); case GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE: - return queryOnly && context->getExtensions().robustResourceInitialization; + return queryOnly && context->getExtensions().robustResourceInitializationANGLE; case GL_TEXTURE_RECTANGLE_ANGLE: - return context->getExtensions().webglCompatibility; + return context->isWebGL(); // GL_APPLE_clip_distance/GL_EXT_clip_cull_distance case GL_CLIP_DISTANCE0_EXT: case GL_CLIP_DISTANCE1_EXT: case GL_CLIP_DISTANCE2_EXT: @@ -722,43 +709,46 @@ } return true; } -bool ValidateWebGLNamePrefix(const Context *context, const GLchar *name) +bool ValidateWebGLNamePrefix(const Context *context, + angle::EntryPoint entryPoint, + const GLchar *name) { ASSERT(context->isWebGL()); // WebGL 1.0 [Section 6.16] GLSL Constructs // Identifiers starting with "webgl_" and "_webgl_" are reserved for use by WebGL. if (strncmp(name, "webgl_", 6) == 0 || strncmp(name, "_webgl_", 7) == 0) { - context->validationError(GL_INVALID_OPERATION, kWebglBindAttribLocationReservedPrefix); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kWebglBindAttribLocationReservedPrefix); return false; } return true; } -bool ValidateWebGLNameLength(const Context *context, size_t length) +bool ValidateWebGLNameLength(const Context *context, angle::EntryPoint entryPoint, size_t length) { ASSERT(context->isWebGL()); if (context->isWebGL1() && length > 256) { // WebGL 1.0 [Section 6.21] Maxmimum Uniform and Attribute Location Lengths // WebGL imposes a limit of 256 characters on the lengths of uniform and attribute // locations. - context->validationError(GL_INVALID_VALUE, kWebglNameLengthLimitExceeded); + context->validationError(entryPoint, GL_INVALID_VALUE, kWebglNameLengthLimitExceeded); return false; } else if (length > 1024) { // WebGL 2.0 [Section 4.3.2] WebGL 2.0 imposes a limit of 1024 characters on the lengths of // uniform and attribute locations. - context->validationError(GL_INVALID_VALUE, kWebgl2NameLengthLimitExceeded); + context->validationError(entryPoint, GL_INVALID_VALUE, kWebgl2NameLengthLimitExceeded); return false; } return true; } @@ -790,11 +780,11 @@ case GL_SRC1_COLOR_EXT: case GL_SRC1_ALPHA_EXT: case GL_ONE_MINUS_SRC1_COLOR_EXT: case GL_ONE_MINUS_SRC1_ALPHA_EXT: case GL_SRC_ALPHA_SATURATE_EXT: - return ext.blendFuncExtended; + return ext.blendFuncExtendedEXT; default: return false; } } @@ -823,10 +813,11 @@ return false; } bool ValidateES2TexImageParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -840,22 +831,23 @@ GLsizei imageSize, const void *pixels) { if (!ValidTexture2DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES2TexImageParametersBase(context, target, level, internalformat, isCompressed, - isSubImage, xoffset, yoffset, width, height, border, - format, type, imageSize, pixels); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES2TexImageParametersBase(context, entryPoint, target, level, internalformat, + isCompressed, isSubImage, xoffset, yoffset, width, + height, border, format, type, imageSize, pixels); } } // anonymous namespace bool ValidateES2TexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -869,26 +861,27 @@ GLsizei imageSize, const void *pixels) { TextureType texType = TextureTargetToType(target); - if (!ValidImageSizeParameters(context, texType, level, width, height, 1, isSubImage)) + if (!ValidImageSizeParameters(context, entryPoint, texType, level, width, height, 1, + isSubImage)) { // Error already handled. return false; } if (!ValidMipLevel(context, texType, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); - return false; - } - - if (xoffset < 0 || std::numeric_limits::max() - xoffset < width || - std::numeric_limits::max() - yoffset < height) - { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + + if ((xoffset < 0 || std::numeric_limits::max() - xoffset < width) || + (yoffset < 0 || std::numeric_limits::max() - yoffset < height)) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } const Caps &caps = context->getCaps(); @@ -898,60 +891,61 @@ case TextureType::External: case TextureType::VideoImage: if (width > (caps.max2DTextureSize >> level) || height > (caps.max2DTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::Rectangle: ASSERT(level == 0); if (width > caps.maxRectangleTextureSize || height > caps.maxRectangleTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (isCompressed) { - context->validationError(GL_INVALID_ENUM, kRectangleTextureCompressed); + context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed); return false; } break; case TextureType::CubeMap: if (!isSubImage && width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCubemapFacesEqualDimensions); return false; } if (width > (caps.maxCubeMapTextureSize >> level) || height > (caps.maxCubeMapTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } Texture *texture = context->getTextureByType(texType); if (!texture) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); return false; } // Verify zero border if (border != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidBorder); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBorder); return false; } bool nonEqualFormatsAllowed = false; @@ -963,18 +957,18 @@ const InternalFormat &internalFormatInfo = GetSizedInternalFormatInfo(actualInternalFormat); if (!internalFormatInfo.compressed) { - context->validationError(GL_INVALID_ENUM, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidInternalFormat); return false; } if (!internalFormatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) { - context->validationError(GL_INVALID_ENUM, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidInternalFormat); return false; } if (isSubImage) { @@ -984,36 +978,38 @@ // CopyTexSubImage2D if the texture image bound to has internal format // ETC1_RGB8_OES. // // This is relaxed if GL_EXT_compressed_ETC1_RGB8_sub_texture is supported. if (actualInternalFormat == GL_ETC1_RGB8_OES && - !context->getExtensions().compressedETC1RGB8SubTexture) + !context->getExtensions().compressedETC1RGB8SubTextureEXT) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } if (!ValidCompressedSubImageSize(context, actualInternalFormat, xoffset, yoffset, 0, width, height, 1, texture->getWidth(target, level), texture->getHeight(target, level), texture->getDepth(target, level))) { - context->validationError(GL_INVALID_OPERATION, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidCompressedImageSize); return false; } if (format != actualInternalFormat) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } } else { if (!ValidCompressedImageSize(context, actualInternalFormat, level, width, height, 1)) { - context->validationError(GL_INVALID_OPERATION, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidCompressedImageSize); return false; } } } else @@ -1030,18 +1026,18 @@ case GL_UNSIGNED_INT_24_8_OES: case GL_HALF_FLOAT_OES: case GL_FLOAT: break; case GL_UNSIGNED_INT_2_10_10_10_REV_EXT: - if (!context->getExtensions().textureFormat2101010REV) + if (!context->getExtensions().textureType2101010REVEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } // validate + combinations // - invalid -> sets INVALID_ENUM @@ -1056,50 +1052,55 @@ case GL_UNSIGNED_BYTE: case GL_FLOAT: case GL_HALF_FLOAT_OES: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_RED: case GL_RG: - if (!context->getExtensions().textureRG) + if (!context->getExtensions().textureRgEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (type) { case GL_UNSIGNED_BYTE: break; case GL_FLOAT: if (!context->getExtensions().textureFloatOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, + kEnumNotSupported); return false; } break; case GL_HALF_FLOAT_OES: if (!context->getExtensions().textureFloatOES && - !context->getExtensions().textureHalfFloat) + !context->getExtensions().textureHalfFloatOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, + kEnumNotSupported); return false; } break; case GL_SHORT: case GL_UNSIGNED_SHORT: - if (!context->getExtensions().textureNorm16) + if (!context->getExtensions().textureNorm16EXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, + kEnumNotSupported); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_RGB: switch (type) @@ -1110,19 +1111,20 @@ case GL_FLOAT: case GL_HALF_FLOAT_OES: break; case GL_SHORT: case GL_UNSIGNED_SHORT: - if (!context->getExtensions().textureNorm16) + if (!context->getExtensions().textureNorm16EXT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTypeAndFormat); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_RGBA: switch (type) @@ -1134,100 +1136,100 @@ case GL_HALF_FLOAT_OES: case GL_UNSIGNED_INT_2_10_10_10_REV_EXT: break; case GL_SHORT: case GL_UNSIGNED_SHORT: - if (!context->getExtensions().textureNorm16) + if (!context->getExtensions().textureNorm16EXT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTypeAndFormat); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_BGRA_EXT: - if (!context->getExtensions().textureFormatBGRA8888) + if (!context->getExtensions().textureFormatBGRA8888EXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (type) { case GL_UNSIGNED_BYTE: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_SRGB_EXT: case GL_SRGB_ALPHA_EXT: - if (!context->getExtensions().sRGB) + if (!context->getExtensions().sRGBEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (type) { case GL_UNSIGNED_BYTE: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; - case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: // error cases for compressed textures are - // handled below - case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: - case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: - case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: - break; case GL_DEPTH_COMPONENT: switch (type) { case GL_UNSIGNED_SHORT: case GL_UNSIGNED_INT: break; case GL_FLOAT: if (!context->getExtensions().depthBufferFloat2NV) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTypeAndFormat); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_DEPTH_STENCIL_OES: switch (type) { case GL_UNSIGNED_INT_24_8_OES: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_STENCIL_INDEX: switch (type) { case GL_UNSIGNED_BYTE: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (format) { @@ -1236,11 +1238,11 @@ if (!context->getExtensions().depthTextureANGLE && !((context->getExtensions().packedDepthStencilOES || context->getExtensions().depthTextureCubeMapOES) && context->getExtensions().depthTextureOES)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (target) { @@ -1252,40 +1254,42 @@ case TextureTarget::CubeMapPositiveX: case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: if (!context->getExtensions().depthTextureCubeMapOES) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedTargetAndFormat); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTargetAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTargetAndFormat); return false; } // OES_depth_texture supports loading depth data and multiple levels, // but ANGLE_depth_texture does not if (!context->getExtensions().depthTextureOES) { if (pixels != nullptr) { - context->validationError(GL_INVALID_OPERATION, kPixelDataNotNull); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kPixelDataNotNull); return false; } if (level != 0) { - context->validationError(GL_INVALID_OPERATION, kLevelNotZero); + context->validationError(entryPoint, GL_INVALID_OPERATION, kLevelNotZero); return false; } } break; case GL_STENCIL_INDEX: - if (!context->getExtensions().stencilIndex8) + if (!context->getExtensions().textureStencil8OES) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } switch (target) { @@ -1297,17 +1301,19 @@ case TextureTarget::CubeMapPositiveX: case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: break; default: - context->validationError(GL_INVALID_OPERATION, kMismatchedTargetAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTargetAndFormat); return false; } if (internalformat != GL_STENCIL_INDEX8) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTargetAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTargetAndFormat); return false; } break; default: break; @@ -1324,122 +1330,127 @@ case GL_RGB: case GL_RGBA: break; case GL_RGBA32F: - if (!context->getExtensions().colorBufferFloatRGBA) + if (!context->getExtensions().colorBufferFloatRgbaCHROMIUM) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } nonEqualFormatsAllowed = true; if (type != GL_FLOAT) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } if (format != GL_RGBA) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_RGB32F: - if (!context->getExtensions().colorBufferFloatRGB) + if (!context->getExtensions().colorBufferFloatRgbCHROMIUM) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } nonEqualFormatsAllowed = true; if (type != GL_FLOAT) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } if (format != GL_RGB) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } break; case GL_BGRA_EXT: - if (!context->getExtensions().textureFormatBGRA8888) + if (!context->getExtensions().textureFormatBGRA8888EXT) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } break; case GL_DEPTH_COMPONENT: if (!(context->getExtensions().depthTextureAny())) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } break; case GL_DEPTH_STENCIL: if (!(context->getExtensions().depthTextureANGLE || context->getExtensions().packedDepthStencilOES || context->getExtensions().depthTextureCubeMapOES)) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } break; case GL_STENCIL_INDEX8: - if (!context->getExtensions().stencilIndex8) + if (!context->getExtensions().textureStencil8OES) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } break; case GL_RED: case GL_RG: - if (!context->getExtensions().textureRG) + if (!context->getExtensions().textureRgEXT) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } break; case GL_SRGB_EXT: case GL_SRGB_ALPHA_EXT: - if (!context->getExtensions().sRGB) + if (!context->getExtensions().sRGBEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_RGB10_A2_EXT: - if (!context->getExtensions().textureFormat2101010REV) + if (!context->getExtensions().textureType2101010REVEXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT || format != GL_RGBA) { - context->validationError(GL_INVALID_OPERATION, kMismatchedTypeAndFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMismatchedTypeAndFormat); return false; } nonEqualFormatsAllowed = true; break; case GL_RGB5_A1: - if (context->getExtensions().textureFormat2101010REV && + if (context->getExtensions().textureType2101010REVEXT && type == GL_UNSIGNED_INT_2_10_10_10_REV_EXT && format == GL_RGBA) { nonEqualFormatsAllowed = true; } @@ -1451,84 +1462,84 @@ case GL_RGBA16_EXT: case GL_R16_SNORM_EXT: case GL_RG16_SNORM_EXT: case GL_RGB16_SNORM_EXT: case GL_RGBA16_SNORM_EXT: - if (!context->getExtensions().textureNorm16) + if (!context->getExtensions().textureNorm16EXT) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; default: - context->validationError(GL_INVALID_VALUE, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidInternalFormat); return false; } } if (type == GL_FLOAT) { if (!context->getExtensions().textureFloatOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } else if (type == GL_HALF_FLOAT_OES) { - if (!context->getExtensions().textureHalfFloat) + if (!context->getExtensions().textureHalfFloatOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } } } if (isSubImage) { const InternalFormat &textureInternalFormat = *texture->getFormat(target, level).info; if (textureInternalFormat.internalFormat == GL_NONE) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureLevel); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureLevel); return false; } if (format != textureInternalFormat.format) { - context->validationError(GL_INVALID_OPERATION, err::kTextureFormatMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, err::kTextureFormatMismatch); return false; } - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { if (GetInternalFormatInfo(format, type).sizedInternalFormat != textureInternalFormat.sizedInternalFormat) { - context->validationError(GL_INVALID_OPERATION, kTextureTypeMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureTypeMismatch); return false; } } if (static_cast(xoffset + width) > texture->getWidth(target, level) || static_cast(yoffset + height) > texture->getHeight(target, level)) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } if (width > 0 && height > 0 && pixels == nullptr && context->getState().getTargetBuffer(BufferBinding::PixelUnpack) == nullptr) { - context->validationError(GL_INVALID_VALUE, kPixelDataNull); + context->validationError(entryPoint, GL_INVALID_VALUE, kPixelDataNull); return false; } } else { if (texture->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kTextureIsImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsImmutable); return false; } } // From GL_CHROMIUM_color_buffer_float_rgb[a]: @@ -1536,283 +1547,183 @@ // TexImage2D. The restriction in section 3.7.1 of the OpenGL ES 2.0 spec that the // internalformat parameter and format parameter of TexImage2D must match is lifted for this // case. if (!isSubImage && !isCompressed && internalformat != format && !nonEqualFormatsAllowed) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormatCombination); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormatCombination); return false; } GLenum sizeCheckFormat = isSubImage ? format : internalformat; - return ValidImageDataSize(context, texType, width, height, 1, sizeCheckFormat, type, pixels, - imageSize); + return ValidImageDataSize(context, entryPoint, texType, width, height, 1, sizeCheckFormat, type, + pixels, imageSize); } bool ValidateES2TexStorageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { if (target != TextureType::_2D && target != TextureType::CubeMap && target != TextureType::Rectangle) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (width < 1 || height < 1 || levels < 1) { - context->validationError(GL_INVALID_VALUE, kTextureSizeTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureSizeTooSmall); return false; } if (target == TextureType::CubeMap && width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapFacesEqualDimensions); return false; } if (levels != 1 && levels != log2(std::max(width, height)) + 1) { - context->validationError(GL_INVALID_OPERATION, kInvalidMipLevels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidMipLevels); return false; } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalformat); if (formatInfo.format == GL_NONE || formatInfo.type == GL_NONE) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } const Caps &caps = context->getCaps(); switch (target) { case TextureType::_2D: if (width > caps.max2DTextureSize || height > caps.max2DTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::Rectangle: if (levels != 1) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (width > caps.maxRectangleTextureSize || height > caps.maxRectangleTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (formatInfo.compressed) { - context->validationError(GL_INVALID_ENUM, kRectangleTextureCompressed); + context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed); return false; } break; case TextureType::CubeMap: if (width > caps.maxCubeMapTextureSize || height > caps.maxCubeMapTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - if (levels != 1 && !context->getExtensions().textureNPOTOES) + if (levels != 1 && !context->getExtensions().textureNpotOES) { if (!isPow2(width) || !isPow2(height)) { - context->validationError(GL_INVALID_OPERATION, kDimensionsMustBePow2); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDimensionsMustBePow2); + return false; + } + } + + if (!formatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + + // Even with OES_texture_npot, some compressed formats may impose extra restrictions. + if (formatInfo.compressed) + { + if (!ValidCompressedImageSize(context, formatInfo.internalFormat, 0, width, height, 1)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidCompressedImageSize); return false; } } switch (internalformat) { - case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: - case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: - if (!context->getExtensions().textureCompressionDXT1) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: - if (!context->getExtensions().textureCompressionDXT3) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: - if (!context->getExtensions().textureCompressionDXT5) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_ETC1_RGB8_OES: - if (!context->getExtensions().compressedETC1RGB8TextureOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE: - case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE: - case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE: - case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE: - case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE: - if (!context->getExtensions().lossyETCDecode) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG: - case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: - case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: - case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: - if (!context->getExtensions().compressedTexturePVRTC) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT: - case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT: - case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT: - case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT: - if (!context->getExtensions().compressedTexturePVRTCsRGB) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_RGBA32F_EXT: - case GL_RGB32F_EXT: - case GL_ALPHA32F_EXT: - case GL_LUMINANCE32F_EXT: - case GL_LUMINANCE_ALPHA32F_EXT: - if (!context->getExtensions().textureFloatOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_RGBA16F_EXT: - case GL_RGB16F_EXT: - case GL_ALPHA16F_EXT: - case GL_LUMINANCE16F_EXT: - case GL_LUMINANCE_ALPHA16F_EXT: - if (!context->getExtensions().textureHalfFloat) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_R8_EXT: - case GL_RG8_EXT: - if (!context->getExtensions().textureRG) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_R16F_EXT: - case GL_RG16F_EXT: - if (!context->getExtensions().textureRG || !context->getExtensions().textureHalfFloat) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; - case GL_R32F_EXT: - case GL_RG32F_EXT: - if (!context->getExtensions().textureRG || !context->getExtensions().textureFloatOES) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - break; case GL_DEPTH_COMPONENT16: case GL_DEPTH_COMPONENT32_OES: - if (!(context->getExtensions().depthTextureAny())) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - switch (target) { case TextureType::_2D: break; case TextureType::CubeMap: if (!context->getExtensions().depthTextureCubeMapOES) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } // ANGLE_depth_texture only supports 1-level textures if (!context->getExtensions().depthTextureOES) { if (levels != 1) { - context->validationError(GL_INVALID_OPERATION, kInvalidMipLevels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidMipLevels); return false; } } break; case GL_DEPTH24_STENCIL8_OES: - if (!(context->getExtensions().depthTextureANGLE || - ((context->getExtensions().packedDepthStencilOES || - context->getExtensions().depthTextureCubeMapOES) && - context->getExtensions().textureStorage))) - { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); - return false; - } - switch (target) { case TextureType::_2D: break; case TextureType::CubeMap: if (!context->getExtensions().depthTextureCubeMapOES) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } if (!context->getExtensions().packedDepthStencilOES && !context->getExtensions().depthTextureCubeMapOES) { // ANGLE_depth_texture only supports 1-level textures if (levels != 1) { - context->validationError(GL_INVALID_OPERATION, kInvalidMipLevels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidMipLevels); return false; } } break; @@ -1821,31 +1732,32 @@ } Texture *texture = context->getTextureByType(target); if (!texture || texture->id().value == 0) { - context->validationError(GL_INVALID_OPERATION, kMissingTexture); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingTexture); return false; } if (texture->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kTextureIsImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsImmutable); return false; } return true; } bool ValidateDiscardFramebufferEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments) { - if (!context->getExtensions().discardFramebuffer) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().discardFramebufferEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } bool defaultFramebuffer = false; @@ -1854,91 +1766,104 @@ case GL_FRAMEBUFFER: defaultFramebuffer = (context->getState().getTargetFramebuffer(GL_FRAMEBUFFER)->isDefault()); break; default: - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } - return ValidateDiscardFramebufferBase(context, target, numAttachments, attachments, + return ValidateDiscardFramebufferBase(context, entryPoint, target, numAttachments, attachments, defaultFramebuffer); } -bool ValidateBindVertexArrayOES(const Context *context, VertexArrayID array) +bool ValidateBindVertexArrayOES(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID array) { if (!context->getExtensions().vertexArrayObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateBindVertexArrayBase(context, array); -} - -bool ValidateDeleteVertexArraysOES(const Context *context, GLsizei n, const VertexArrayID *arrays) + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateBindVertexArrayBase(context, entryPoint, array); +} + +bool ValidateDeleteVertexArraysOES(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arrays) { if (!context->getExtensions().vertexArrayObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateGenOrDelete(context, n); -} - -bool ValidateGenVertexArraysOES(const Context *context, GLsizei n, const VertexArrayID *arrays) + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateGenVertexArraysOES(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arrays) { if (!context->getExtensions().vertexArrayObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateGenOrDelete(context, n); -} - -bool ValidateIsVertexArrayOES(const Context *context, VertexArrayID array) + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateIsVertexArrayOES(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID array) { if (!context->getExtensions().vertexArrayObjectOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateProgramBinaryOES(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum binaryFormat, const void *binary, GLint length) { if (!context->getExtensions().getProgramBinaryOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateProgramBinaryBase(context, program, binaryFormat, binary, length); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateProgramBinaryBase(context, entryPoint, program, binaryFormat, binary, length); } bool ValidateGetProgramBinaryOES(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary) { if (!context->getExtensions().getProgramBinaryOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateGetProgramBinaryBase(context, program, bufSize, length, binaryFormat, binary); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateGetProgramBinaryBase(context, entryPoint, program, bufSize, length, binaryFormat, + binary); } static bool ValidDebugSource(GLenum source, bool mustBeThirdPartyOrApplication) { switch (source) @@ -1993,70 +1918,72 @@ return false; } } bool ValidateDebugMessageControlKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!ValidDebugSource(source, false) && source != GL_DONT_CARE) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugSource); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugSource); return false; } if (!ValidDebugType(type) && type != GL_DONT_CARE) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugType); return false; } if (!ValidDebugSeverity(severity) && severity != GL_DONT_CARE) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugSeverity); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugSeverity); return false; } if (count > 0) { if (source == GL_DONT_CARE || type == GL_DONT_CARE) { - context->validationError(GL_INVALID_OPERATION, kInvalidDebugSourceType); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDebugSourceType); return false; } if (severity != GL_DONT_CARE) { - context->validationError(GL_INVALID_OPERATION, kInvalidDebugSeverity); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDebugSeverity); return false; } } return true; } bool ValidateDebugMessageInsertKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!context->getState().getDebug().isOutputEnabled()) { @@ -2065,226 +1992,236 @@ return false; } if (!ValidDebugSeverity(severity)) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugSource); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugSource); return false; } if (!ValidDebugType(type)) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugType); return false; } if (!ValidDebugSource(source, true)) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugSource); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugSource); return false; } size_t messageLength = (length < 0) ? strlen(buf) : length; - if (messageLength > context->getExtensions().maxDebugMessageLength) - { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDebugMessageLength); + if (messageLength > context->getCaps().maxDebugMessageLength) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDebugMessageLength); return false; } return true; } bool ValidateDebugMessageCallbackKHR(const Context *context, + angle::EntryPoint entryPoint, GLDEBUGPROCKHR callback, const void *userParam) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateGetDebugMessageLogKHR(const Context *context, + angle::EntryPoint entryPoint, GLuint count, GLsizei bufSize, const GLenum *sources, const GLenum *types, const GLuint *ids, const GLenum *severities, const GLsizei *lengths, const GLchar *messageLog) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufSize < 0 && messageLog != nullptr) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } return true; } bool ValidatePushDebugGroupKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLuint id, GLsizei length, const GLchar *message) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!ValidDebugSource(source, true)) { - context->validationError(GL_INVALID_ENUM, kInvalidDebugSource); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDebugSource); return false; } size_t messageLength = (length < 0) ? strlen(message) : length; - if (messageLength > context->getExtensions().maxDebugMessageLength) - { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDebugMessageLength); + if (messageLength > context->getCaps().maxDebugMessageLength) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDebugMessageLength); return false; } size_t currentStackSize = context->getState().getDebug().getGroupStackDepth(); - if (currentStackSize >= context->getExtensions().maxDebugGroupStackDepth) - { - context->validationError(GL_STACK_OVERFLOW, kExceedsMaxDebugGroupStackDepth); + if (currentStackSize >= context->getCaps().maxDebugGroupStackDepth) + { + context->validationError(entryPoint, GL_STACK_OVERFLOW, kExceedsMaxDebugGroupStackDepth); return false; } return true; } -bool ValidatePopDebugGroupKHR(const Context *context) -{ - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidatePopDebugGroupKHR(const Context *context, angle::EntryPoint entryPoint) +{ + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } size_t currentStackSize = context->getState().getDebug().getGroupStackDepth(); if (currentStackSize <= 1) { - context->validationError(GL_STACK_UNDERFLOW, kCannotPopDefaultDebugGroup); + context->validationError(entryPoint, GL_STACK_UNDERFLOW, kCannotPopDefaultDebugGroup); return false; } return true; } -static bool ValidateObjectIdentifierAndName(const Context *context, GLenum identifier, GLuint name) +static bool ValidateObjectIdentifierAndName(const Context *context, + angle::EntryPoint entryPoint, + GLenum identifier, + GLuint name) { switch (identifier) { case GL_BUFFER: if (context->getBuffer({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidBufferName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBufferName); return false; } return true; case GL_SHADER: if (context->getShader({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidShaderName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidShaderName); return false; } return true; case GL_PROGRAM: if (context->getProgramNoResolveLink({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramName); return false; } return true; case GL_VERTEX_ARRAY: if (context->getVertexArray({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidVertexArrayName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidVertexArrayName); return false; } return true; case GL_QUERY: if (context->getQuery({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidQueryName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidQueryName); return false; } return true; case GL_TRANSFORM_FEEDBACK: if (context->getTransformFeedback({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidTransformFeedbackName); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTransformFeedbackName); return false; } return true; case GL_SAMPLER: if (context->getSampler({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSamplerName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSamplerName); return false; } return true; case GL_TEXTURE: if (context->getTexture({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTextureName); return false; } return true; case GL_RENDERBUFFER: if (!context->isRenderbuffer({name})) { - context->validationError(GL_INVALID_VALUE, kInvalidRenderbufferName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidRenderbufferName); return false; } return true; case GL_FRAMEBUFFER: if (context->getFramebuffer({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidFramebufferName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFramebufferName); return false; } return true; case GL_PROGRAM_PIPELINE: if (context->getProgramPipeline({name}) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidProgramPipelineName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramPipelineName); return false; } return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidIndentifier); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidIndentifier); return false; } } -static bool ValidateLabelLength(const Context *context, GLsizei length, const GLchar *label) +static bool ValidateLabelLength(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const GLchar *label) { size_t labelLength = 0; if (length < 0) { @@ -2296,137 +2233,146 @@ else { labelLength = static_cast(length); } - if (labelLength > context->getExtensions().maxLabelLength) - { - context->validationError(GL_INVALID_VALUE, kExceedsMaxLabelLength); + if (labelLength > context->getCaps().maxLabelLength) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxLabelLength); return false; } return true; } bool ValidateObjectLabelKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei length, const GLchar *label) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateObjectIdentifierAndName(context, identifier, name)) - { - return false; - } - - if (!ValidateLabelLength(context, length, label)) + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateObjectIdentifierAndName(context, entryPoint, identifier, name)) + { + return false; + } + + if (!ValidateLabelLength(context, entryPoint, length, label)) { return false; } return true; } bool ValidateGetObjectLabelKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei bufSize, const GLsizei *length, const GLchar *label) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - if (!ValidateObjectIdentifierAndName(context, identifier, name)) + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + if (!ValidateObjectIdentifierAndName(context, entryPoint, identifier, name)) { return false; } return true; } -static bool ValidateObjectPtrName(const Context *context, const void *ptr) +static bool ValidateObjectPtrName(const Context *context, + angle::EntryPoint entryPoint, + const void *ptr) { if (context->getSync(reinterpret_cast(const_cast(ptr))) == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSyncPointer); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSyncPointer); return false; } return true; } bool ValidateObjectPtrLabelKHR(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei length, const GLchar *label) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateObjectPtrName(context, ptr)) - { - return false; - } - - if (!ValidateLabelLength(context, length, label)) + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateObjectPtrName(context, entryPoint, ptr)) + { + return false; + } + + if (!ValidateLabelLength(context, entryPoint, length, label)) { return false; } return true; } bool ValidateGetObjectPtrLabelKHR(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei bufSize, const GLsizei *length, const GLchar *label) { - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - if (!ValidateObjectPtrName(context, ptr)) + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + if (!ValidateObjectPtrName(context, entryPoint, ptr)) { return false; } return true; } -bool ValidateGetPointervKHR(const Context *context, GLenum pname, void *const *params) -{ - if (!context->getExtensions().debug) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateGetPointervKHR(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + void *const *params) +{ + if (!context->getExtensions().debugKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } // TODO: represent this in Context::getQueryParameterInfo. switch (pname) @@ -2434,28 +2380,30 @@ case GL_DEBUG_CALLBACK_FUNCTION: case GL_DEBUG_CALLBACK_USER_PARAM: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateGetPointervRobustANGLERobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *params) { UNIMPLEMENTED(); return false; } bool ValidateBlitFramebufferANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -2465,24 +2413,24 @@ GLbitfield mask, GLenum filter) { if (!context->getExtensions().framebufferBlitANGLE) { - context->validationError(GL_INVALID_OPERATION, kBlitExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionNotAvailable); return false; } if (srcX1 - srcX0 != dstX1 - dstX0 || srcY1 - srcY0 != dstY1 - dstY0) { // TODO(jmadill): Determine if this should be available on other implementations. - context->validationError(GL_INVALID_OPERATION, kBlitExtensionScaleOrFlip); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionScaleOrFlip); return false; } if (filter == GL_LINEAR) { - context->validationError(GL_INVALID_ENUM, kBlitExtensionLinear); + context->validationError(entryPoint, GL_INVALID_ENUM, kBlitExtensionLinear); return false; } Framebuffer *readFramebuffer = context->getState().getReadFramebuffer(); Framebuffer *drawFramebuffer = context->getState().getDrawFramebuffer(); @@ -2501,11 +2449,11 @@ readColorAttachment->getTextureImageIndex().getType() == TextureType::Rectangle)) && readColorAttachment->type() != GL_RENDERBUFFER && readColorAttachment->type() != GL_FRAMEBUFFER_DEFAULT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionFromInvalidAttachmentType); return false; } for (size_t drawbufferIdx = 0; @@ -2520,20 +2468,20 @@ attachment->getTextureImageIndex().getType() == TextureType::Rectangle)) && attachment->type() != GL_RENDERBUFFER && attachment->type() != GL_FRAMEBUFFER_DEFAULT) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionToInvalidAttachmentType); return false; } // Return an error if the destination formats do not match if (!Format::EquivalentForBlit(attachment->getFormat(), readColorAttachment->getFormat())) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionFormatMismatch); return false; } } } @@ -2541,11 +2489,11 @@ GLint samples = readFramebuffer->getSamples(context); if (samples != 0 && IsPartialBlit(context, readColorAttachment, drawColorAttachment, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1)) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionMultisampledWholeBufferBlit); return false; } } } @@ -2565,30 +2513,31 @@ { if (IsPartialBlit(context, readBuffer, drawBuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1)) { // only whole-buffer copies are permitted - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionDepthStencilWholeBufferBlit); return false; } if (readBuffer->getResourceSamples() != 0 || drawBuffer->getResourceSamples() != 0) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionMultisampledDepthOrStencil); return false; } } } } - return ValidateBlitFramebufferParameters(context, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, - dstX1, dstY1, mask, filter); + return ValidateBlitFramebufferParameters(context, entryPoint, srcX0, srcY0, srcX1, srcY1, dstX0, + dstY0, dstX1, dstY1, mask, filter); } bool ValidateBlitFramebufferNV(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -2598,76 +2547,81 @@ GLbitfield mask, GLenum filter) { if (!context->getExtensions().framebufferBlitANGLE) { - context->validationError(GL_INVALID_OPERATION, kBlitExtensionNotAvailable); - return false; - } - - return ValidateBlitFramebufferParameters(context, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, - dstX1, dstY1, mask, filter); -} - -bool ValidateClear(const Context *context, GLbitfield mask) + context->validationError(entryPoint, GL_INVALID_OPERATION, kBlitExtensionNotAvailable); + return false; + } + + return ValidateBlitFramebufferParameters(context, entryPoint, srcX0, srcY0, srcX1, srcY1, dstX0, + dstY0, dstX1, dstY1, mask, filter); +} + +bool ValidateClear(const Context *context, angle::EntryPoint entryPoint, GLbitfield mask) { Framebuffer *fbo = context->getState().getDrawFramebuffer(); const Extensions &extensions = context->getExtensions(); - if (!ValidateFramebufferComplete(context, fbo)) + if (!ValidateFramebufferComplete(context, entryPoint, fbo)) { return false; } if ((mask & ~(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidClearMask); - return false; - } - - if (extensions.webglCompatibility && (mask & GL_COLOR_BUFFER_BIT) != 0) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidClearMask); + return false; + } + + if (extensions.webglCompatibilityANGLE && (mask & GL_COLOR_BUFFER_BIT) != 0) { constexpr GLenum validComponentTypes[] = {GL_FLOAT, GL_UNSIGNED_NORMALIZED, GL_SIGNED_NORMALIZED}; for (GLuint drawBufferIdx = 0; drawBufferIdx < fbo->getDrawbufferStateCount(); drawBufferIdx++) { - if (!ValidateWebGLFramebufferAttachmentClearType( - context, drawBufferIdx, validComponentTypes, ArraySize(validComponentTypes))) + if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawBufferIdx, + validComponentTypes, + ArraySize(validComponentTypes))) { return false; } } } - if ((extensions.multiview || extensions.multiview2) && extensions.disjointTimerQuery) + if ((extensions.multiviewOVR || extensions.multiview2OVR) && extensions.disjointTimerQueryEXT) { const State &state = context->getState(); Framebuffer *framebuffer = state.getDrawFramebuffer(); if (framebuffer->getNumViews() > 1 && state.isQueryActive(QueryType::TimeElapsed)) { - context->validationError(GL_INVALID_OPERATION, kMultiviewTimerQuery); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMultiviewTimerQuery); return false; } } return true; } -bool ValidateDrawBuffersEXT(const Context *context, GLsizei n, const GLenum *bufs) -{ - if (!context->getExtensions().drawBuffers) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateDrawBuffersBase(context, n, bufs); +bool ValidateDrawBuffersEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs) +{ + if (!context->getExtensions().drawBuffersEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateDrawBuffersBase(context, entryPoint, n, bufs); } bool ValidateTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -2676,21 +2630,23 @@ GLenum type, const void *pixels) { if (context->getClientMajorVersion() < 3) { - return ValidateES2TexImageParameters(context, target, level, internalformat, false, false, - 0, 0, width, height, border, format, type, -1, pixels); + return ValidateES2TexImageParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, width, height, border, format, + type, -1, pixels); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexImage2DParameters(context, target, level, internalformat, false, false, 0, - 0, 0, width, height, 1, border, format, type, -1, - pixels); + return ValidateES3TexImage2DParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, 0, width, height, 1, border, format, + type, -1, pixels); } bool ValidateTexImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -2698,29 +2654,30 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } if (context->getClientMajorVersion() < 3) { - return ValidateES2TexImageParameters(context, target, level, internalformat, false, false, - 0, 0, width, height, border, format, type, bufSize, - pixels); + return ValidateES2TexImageParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, width, height, border, format, + type, bufSize, pixels); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexImage2DParameters(context, target, level, internalformat, false, false, 0, - 0, 0, width, height, 1, border, format, type, bufSize, - pixels); + return ValidateES3TexImage2DParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, 0, width, height, 1, border, format, + type, bufSize, pixels); } bool ValidateTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -2730,21 +2687,23 @@ const void *pixels) { if (context->getClientMajorVersion() < 3) { - return ValidateES2TexImageParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, width, height, 0, format, type, -1, pixels); + return ValidateES2TexImageParameters(context, entryPoint, target, level, GL_NONE, false, + true, xoffset, yoffset, width, height, 0, format, type, + -1, pixels); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexImage2DParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, 0, width, height, 1, 0, format, type, -1, - pixels); + return ValidateES3TexImage2DParameters(context, entryPoint, target, level, GL_NONE, false, true, + xoffset, yoffset, 0, width, height, 1, 0, format, type, + -1, pixels); } bool ValidateTexSubImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -2752,29 +2711,30 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } if (context->getClientMajorVersion() < 3) { - return ValidateES2TexImageParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, width, height, 0, format, type, bufSize, - pixels); + return ValidateES2TexImageParameters(context, entryPoint, target, level, GL_NONE, false, + true, xoffset, yoffset, width, height, 0, format, type, + bufSize, pixels); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexImage2DParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, 0, width, height, 1, 0, format, type, bufSize, - pixels); + return ValidateES3TexImage2DParameters(context, entryPoint, target, level, GL_NONE, false, true, + xoffset, yoffset, 0, width, height, 1, 0, format, type, + bufSize, pixels); } bool ValidateTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2783,15 +2743,16 @@ GLsizei depth, GLenum format, GLenum type, const void *pixels) { - return ValidateTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, height, - depth, format, type, pixels); + return ValidateTexSubImage3D(context, entryPoint, target, level, xoffset, yoffset, zoffset, + width, height, depth, format, type, pixels); } bool ValidateCompressedTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -2799,87 +2760,92 @@ GLsizei imageSize, const void *data) { if (context->getClientMajorVersion() < 3) { - if (!ValidateES2TexImageParameters(context, target, level, internalformat, true, false, 0, - 0, width, height, border, GL_NONE, GL_NONE, -1, data)) + if (!ValidateES2TexImageParameters(context, entryPoint, target, level, internalformat, true, + false, 0, 0, width, height, border, GL_NONE, GL_NONE, -1, + data)) { return false; } } else { ASSERT(context->getClientMajorVersion() >= 3); - if (!ValidateES3TexImage2DParameters(context, target, level, internalformat, true, false, 0, - 0, 0, width, height, 1, border, GL_NONE, GL_NONE, -1, - data)) + if (!ValidateES3TexImage2DParameters(context, entryPoint, target, level, internalformat, + true, false, 0, 0, 0, width, height, 1, border, + GL_NONE, GL_NONE, -1, data)) { return false; } } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalformat); GLuint blockSize = 0; if (!formatInfo.computeCompressedImageSize(Extents(width, height, 1), &blockSize)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (imageSize < 0 || static_cast(imageSize) != blockSize) { - context->validationError(GL_INVALID_VALUE, kCompressedTextureDimensionsMustMatchData); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCompressedTextureDimensionsMustMatchData); return false; } if (target == TextureTarget::Rectangle) { - context->validationError(GL_INVALID_ENUM, kRectangleTextureCompressed); + context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed); return false; } return true; } bool ValidateCompressedTexImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei dataSize, const void *data) { - if (!ValidateRobustCompressedTexImageBase(context, imageSize, dataSize)) - { - return false; - } - - return ValidateCompressedTexImage2D(context, target, level, internalformat, width, height, - border, imageSize, data); + if (!ValidateRobustCompressedTexImageBase(context, entryPoint, imageSize, dataSize)) + { + return false; + } + + return ValidateCompressedTexImage2D(context, entryPoint, target, level, internalformat, width, + height, border, imageSize, data); } bool ValidateCompressedTexImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data) { - return ValidateCompressedTexImage3D(context, target, level, internalformat, width, height, - depth, border, imageSize, data); + return ValidateCompressedTexImage3D(context, entryPoint, target, level, internalformat, width, + height, depth, border, imageSize, data); } bool ValidateCompressedTexSubImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -2887,20 +2853,21 @@ GLenum format, GLsizei imageSize, GLsizei dataSize, const void *data) { - if (!ValidateRobustCompressedTexImageBase(context, imageSize, dataSize)) - { - return false; - } - - return ValidateCompressedTexSubImage2D(context, target, level, xoffset, yoffset, width, height, - format, imageSize, data); + if (!ValidateRobustCompressedTexImageBase(context, entryPoint, imageSize, dataSize)) + { + return false; + } + + return ValidateCompressedTexSubImage2D(context, entryPoint, target, level, xoffset, yoffset, + width, height, format, imageSize, data); } bool ValidateCompressedTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -2909,45 +2876,47 @@ GLsizei imageSize, const void *data) { if (context->getClientMajorVersion() < 3) { - if (!ValidateES2TexImageParameters(context, target, level, GL_NONE, true, true, xoffset, - yoffset, width, height, 0, format, GL_NONE, -1, data)) + if (!ValidateES2TexImageParameters(context, entryPoint, target, level, GL_NONE, true, true, + xoffset, yoffset, width, height, 0, format, GL_NONE, -1, + data)) { return false; } } else { ASSERT(context->getClientMajorVersion() >= 3); - if (!ValidateES3TexImage2DParameters(context, target, level, GL_NONE, true, true, xoffset, - yoffset, 0, width, height, 1, 0, format, GL_NONE, -1, - data)) + if (!ValidateES3TexImage2DParameters(context, entryPoint, target, level, GL_NONE, true, + true, xoffset, yoffset, 0, width, height, 1, 0, format, + GL_NONE, -1, data)) { return false; } } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(format); GLuint blockSize = 0; if (!formatInfo.computeCompressedImageSize(Extents(width, height, 1), &blockSize)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (imageSize < 0 || static_cast(imageSize) != blockSize) { - context->validationError(GL_INVALID_VALUE, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCompressedImageSize); return false; } return true; } bool ValidateCompressedTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2956,101 +2925,110 @@ GLsizei depth, GLenum format, GLsizei imageSize, const void *data) { - return ValidateCompressedTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data); + return ValidateCompressedTexSubImage3D(context, entryPoint, target, level, xoffset, yoffset, + zoffset, width, height, depth, format, imageSize, data); } bool ValidateGetBufferPointervOES(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, void *const *params) { - if (!context->getExtensions().mapBufferOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateGetBufferPointervBase(context, target, pname, nullptr, params); -} - -bool ValidateMapBufferOES(const Context *context, BufferBinding target, GLenum access) -{ - if (!context->getExtensions().mapBufferOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().mapbufferOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateGetBufferPointervBase(context, entryPoint, target, pname, nullptr, params); +} + +bool ValidateMapBufferOES(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target, + GLenum access) +{ + if (!context->getExtensions().mapbufferOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (buffer == nullptr) { - context->validationError(GL_INVALID_OPERATION, kBufferNotMappable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotMappable); return false; } if (access != GL_WRITE_ONLY_OES) { - context->validationError(GL_INVALID_ENUM, kInvalidAccessBits); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAccessBits); return false; } // Though there is no explicit mention of an interaction between GL_EXT_buffer_storage - // and GL_OES_mapbuffer extension, allow it as long as the access type of glMapBufferOES + // and GL_OES_mapbuffer extension, allow it as long as the access type of glmapbufferOES // is compatible with the buffer's usage flags specified during glBufferStorageEXT if (buffer->isImmutable() && (buffer->getStorageExtUsageFlags() & GL_MAP_WRITE_BIT) == 0) { - context->validationError(GL_INVALID_OPERATION, kBufferNotMappable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotMappable); return false; } if (buffer->isMapped()) { - context->validationError(GL_INVALID_OPERATION, kBufferAlreadyMapped); - return false; - } - - return ValidateMapBufferBase(context, target); -} - -bool ValidateUnmapBufferOES(const Context *context, BufferBinding target) -{ - if (!context->getExtensions().mapBufferOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateUnmapBufferBase(context, target); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferAlreadyMapped); + return false; + } + + return ValidateMapBufferBase(context, entryPoint, target); +} + +bool ValidateUnmapBufferOES(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target) +{ + if (!context->getExtensions().mapbufferOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateUnmapBufferBase(context, entryPoint, target); } bool ValidateMapBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length, GLbitfield access) { - if (!context->getExtensions().mapBufferRange) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateMapBufferRangeBase(context, target, offset, length, access); -} - -bool ValidateMapBufferBase(const Context *context, BufferBinding target) + if (!context->getExtensions().mapBufferRangeEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateMapBufferRangeBase(context, entryPoint, target, offset, length, access); +} + +bool ValidateMapBufferBase(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding target) { Buffer *buffer = context->getState().getTargetBuffer(target); ASSERT(buffer != nullptr); // Check if this buffer is currently being used as a transform feedback output buffer @@ -3060,111 +3038,117 @@ for (size_t i = 0; i < transformFeedback->getIndexedBufferCount(); i++) { const auto &transformFeedbackBuffer = transformFeedback->getIndexedBuffer(i); if (transformFeedbackBuffer.get() == buffer) { - context->validationError(GL_INVALID_OPERATION, kBufferBoundForTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBufferBoundForTransformFeedback); return false; } } } - if (context->getExtensions().webglCompatibility && - buffer->isBoundForTransformFeedbackAndOtherUse()) - { - context->validationError(GL_INVALID_OPERATION, kBufferBoundForTransformFeedback); + if (buffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBufferBoundForTransformFeedback); return false; } return true; } bool ValidateFlushMappedBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length) { - if (!context->getExtensions().mapBufferRange) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateFlushMappedBufferRangeBase(context, target, offset, length); + if (!context->getExtensions().mapBufferRangeEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateFlushMappedBufferRangeBase(context, entryPoint, target, offset, length); } bool ValidateBindUniformLocationCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, const GLchar *name) { - if (!context->getExtensions().bindUniformLocation) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - Program *programObject = GetValidProgram(context, program); + if (!context->getExtensions().bindUniformLocationCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (location.value < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLocation); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLocation); return false; } const Caps &caps = context->getCaps(); if (static_cast(location.value) >= (caps.maxVertexUniformVectors + caps.maxFragmentUniformVectors) * 4) { - context->validationError(GL_INVALID_VALUE, kInvalidBindUniformLocation); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBindUniformLocation); return false; } // The WebGL spec (section 6.20) disallows strings containing invalid ESSL characters for // shader-related entry points - if (context->getExtensions().webglCompatibility && !IsValidESSLString(name, strlen(name))) - { - context->validationError(GL_INVALID_VALUE, kInvalidNameCharacters); + if (context->isWebGL() && !IsValidESSLString(name, strlen(name))) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidNameCharacters); return false; } if (strncmp(name, "gl_", 3) == 0) { - context->validationError(GL_INVALID_VALUE, kNameBeginsWithGL); + context->validationError(entryPoint, GL_INVALID_VALUE, kNameBeginsWithGL); return false; } return true; } -bool ValidateCoverageModulationCHROMIUM(const Context *context, GLenum components) -{ - if (!context->getExtensions().framebufferMixedSamples) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateCoverageModulationCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, + GLenum components) +{ + if (!context->getExtensions().framebufferMixedSamplesCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (components) { case GL_RGB: case GL_RGBA: case GL_ALPHA: case GL_NONE: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidCoverageComponents); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCoverageComponents); return false; } return true; } bool ValidateCopyTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceId, GLint sourceLevel, TextureTarget destTarget, TextureID destId, GLint destLevel, @@ -3172,101 +3156,103 @@ GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha) { - if (!context->getExtensions().copyTexture) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().copyTextureCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } const Texture *source = context->getTexture(sourceId); if (source == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTexture); return false; } if (!IsValidCopyTextureSourceTarget(context, source->getType())) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } TextureType sourceType = source->getType(); ASSERT(sourceType != TextureType::CubeMap); TextureTarget sourceTarget = NonCubeTextureTypeToTarget(sourceType); if (!IsValidCopyTextureSourceLevel(context, sourceType, sourceLevel)) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTextureLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTextureLevel); return false; } GLsizei sourceWidth = static_cast(source->getWidth(sourceTarget, sourceLevel)); GLsizei sourceHeight = static_cast(source->getHeight(sourceTarget, sourceLevel)); if (sourceWidth == 0 || sourceHeight == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } const InternalFormat &sourceFormat = *source->getFormat(sourceTarget, sourceLevel).info; if (!IsValidCopyTextureSourceInternalFormatEnum(sourceFormat.internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidSourceTextureInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidSourceTextureInternalFormat); return false; } if (!IsValidCopyTextureDestinationTargetEnum(context, destTarget)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } const Texture *dest = context->getTexture(destId); if (dest == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture); return false; } if (!IsValidCopyTextureDestinationTarget(context, dest->getType(), destTarget)) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTextureType); - return false; - } - - if (!IsValidCopyTextureDestinationLevel(context, dest->getType(), destLevel, sourceWidth, - sourceHeight, false)) - { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); - return false; - } - - if (!IsValidCopyTextureDestinationFormatType(context, internalFormat, destType)) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTextureType); + return false; + } + + if (!IsValidCopyTextureDestinationLevel(context, entryPoint, dest->getType(), destLevel, + sourceWidth, sourceHeight, false)) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + + if (!IsValidCopyTextureDestinationFormatType(context, entryPoint, internalFormat, destType)) { return false; } if (dest->getType() == TextureType::CubeMap && sourceWidth != sourceHeight) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapFacesEqualDimensions); return false; } if (dest->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kDestinationImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDestinationImmutable); return false; } return true; } bool ValidateCopySubTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceId, GLint sourceLevel, TextureTarget destTarget, TextureID destId, GLint destLevel, @@ -3278,245 +3264,248 @@ GLsizei height, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha) { - if (!context->getExtensions().copyTexture) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().copyTextureCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } const Texture *source = context->getTexture(sourceId); if (source == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTexture); return false; } if (!IsValidCopyTextureSourceTarget(context, source->getType())) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTextureType); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTextureType); return false; } TextureType sourceType = source->getType(); ASSERT(sourceType != TextureType::CubeMap); TextureTarget sourceTarget = NonCubeTextureTypeToTarget(sourceType); if (!IsValidCopyTextureSourceLevel(context, sourceType, sourceLevel)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (source->getWidth(sourceTarget, sourceLevel) == 0 || source->getHeight(sourceTarget, sourceLevel) == 0) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTextureLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTextureLevel); return false; } if (x < 0 || y < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } if (static_cast(x + width) > source->getWidth(sourceTarget, sourceLevel) || static_cast(y + height) > source->getHeight(sourceTarget, sourceLevel)) { - context->validationError(GL_INVALID_VALUE, kSourceTextureTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureTooSmall); return false; } const Format &sourceFormat = source->getFormat(sourceTarget, sourceLevel); if (!IsValidCopySubTextureSourceInternalFormat(sourceFormat.info->internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } if (!IsValidCopyTextureDestinationTargetEnum(context, destTarget)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } const Texture *dest = context->getTexture(destId); if (dest == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture); return false; } if (!IsValidCopyTextureDestinationTarget(context, dest->getType(), destTarget)) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTextureType); - return false; - } - - if (!IsValidCopyTextureDestinationLevel(context, dest->getType(), destLevel, width, height, - true)) - { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTextureType); + return false; + } + + if (!IsValidCopyTextureDestinationLevel(context, entryPoint, dest->getType(), destLevel, width, + height, true)) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (dest->getWidth(destTarget, destLevel) == 0 || dest->getHeight(destTarget, destLevel) == 0) { - context->validationError(GL_INVALID_OPERATION, kDestinationLevelNotDefined); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDestinationLevelNotDefined); return false; } const InternalFormat &destFormat = *dest->getFormat(destTarget, destLevel).info; if (!IsValidCopySubTextureDestionationInternalFormat(destFormat.internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormatCombination); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormatCombination); return false; } if (xoffset < 0 || yoffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (static_cast(xoffset + width) > dest->getWidth(destTarget, destLevel) || static_cast(yoffset + height) > dest->getHeight(destTarget, destLevel)) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } return true; } bool ValidateCompressedCopyTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceId, TextureID destId) { - if (!context->getExtensions().copyCompressedTexture) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().copyCompressedTextureCHROMIUM) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } const Texture *source = context->getTexture(sourceId); if (source == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTexture); return false; } if (source->getType() != TextureType::_2D) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTextureType); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTextureType); return false; } if (source->getWidth(TextureTarget::_2D, 0) == 0 || source->getHeight(TextureTarget::_2D, 0) == 0) { - context->validationError(GL_INVALID_VALUE, kSourceTextureLevelZeroDefined); + context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureLevelZeroDefined); return false; } const Format &sourceFormat = source->getFormat(TextureTarget::_2D, 0); if (!sourceFormat.info->compressed) { - context->validationError(GL_INVALID_OPERATION, kSourceTextureMustBeCompressed); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSourceTextureMustBeCompressed); return false; } const Texture *dest = context->getTexture(destId); if (dest == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture); return false; } if (dest->getType() != TextureType::_2D) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTextureType); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTextureType); return false; } if (dest->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kDestinationImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDestinationImmutable); return false; } return true; } -bool ValidateCreateShader(const Context *context, ShaderType type) +bool ValidateCreateShader(const Context *context, angle::EntryPoint entryPoint, ShaderType type) { switch (type) { case ShaderType::Vertex: case ShaderType::Fragment: break; case ShaderType::Compute: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kES31Required); + context->validationError(entryPoint, GL_INVALID_ENUM, kES31Required); return false; } break; case ShaderType::Geometry: - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } break; case ShaderType::TessControl: if (!context->getExtensions().tessellationShaderEXT && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } break; case ShaderType::TessEvaluation: if (!context->getExtensions().tessellationShaderEXT && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } return true; } bool ValidateBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLsizeiptr size, const void *data, BufferUsage usage) { if (size < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } switch (usage) { @@ -3531,209 +3520,222 @@ case BufferUsage::StreamCopy: case BufferUsage::StaticCopy: case BufferUsage::DynamicCopy: if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferUsage); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferUsage); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidBufferUsage); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferUsage); return false; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (!buffer) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); - return false; - } - - if (context->getExtensions().webglCompatibility && - buffer->isBoundForTransformFeedbackAndOtherUse()) - { - context->validationError(GL_INVALID_OPERATION, kBufferBoundForTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); + return false; + } + + if (buffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBufferBoundForTransformFeedback); return false; } if (buffer->isImmutable()) { - context->validationError(GL_INVALID_OPERATION, kBufferImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferImmutable); return false; } return true; } bool ValidateBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr size, const void *data) { if (size < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } if (offset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (!context->isValidBufferBinding(target)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *buffer = context->getState().getTargetBuffer(target); if (!buffer) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); - return false; - } - - if (buffer->isMapped()) - { - context->validationError(GL_INVALID_OPERATION, kBufferMapped); - return false; - } - - if (context->getExtensions().webglCompatibility && - buffer->isBoundForTransformFeedbackAndOtherUse()) - { - context->validationError(GL_INVALID_OPERATION, kBufferBoundForTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); + return false; + } + + // EXT_buffer_storage allows persistently mapped buffers to be updated via glBufferSubData + bool isPersistent = (buffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0; + + // Verify that buffer is not currently mapped unless persistent + if (buffer->isMapped() && !isPersistent) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped); + return false; + } + + if (buffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBufferBoundForTransformFeedback); return false; } if (buffer->isImmutable() && (buffer->getStorageExtUsageFlags() & GL_DYNAMIC_STORAGE_BIT_EXT) == 0) { - context->validationError(GL_INVALID_OPERATION, kBufferNotUpdatable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotUpdatable); return false; } // Check for possible overflow of size + offset angle::CheckedNumeric checkedSize(size); checkedSize += offset; if (!checkedSize.IsValid()) { - context->validationError(GL_INVALID_VALUE, kParamOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kParamOverflow); return false; } if (size + offset > buffer->getSize()) { - context->validationError(GL_INVALID_VALUE, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInsufficientBufferSize); return false; } return true; } -bool ValidateRequestExtensionANGLE(const Context *context, const GLchar *name) -{ - if (!context->getExtensions().requestExtension) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateRequestExtensionANGLE(const Context *context, + angle::EntryPoint entryPoint, + const GLchar *name) +{ + if (!context->getExtensions().requestExtensionANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!context->isExtensionRequestable(name)) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotRequestable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotRequestable); return false; } return true; } -bool ValidateDisableExtensionANGLE(const Context *context, const GLchar *name) -{ - if (!context->getExtensions().requestExtension) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateDisableExtensionANGLE(const Context *context, + angle::EntryPoint entryPoint, + const GLchar *name) +{ + if (!context->getExtensions().requestExtensionANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (!context->isExtensionDisablable(name)) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotDisablable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotDisablable); return false; } return true; } -bool ValidateActiveTexture(const Context *context, GLenum texture) +bool ValidateActiveTexture(const Context *context, angle::EntryPoint entryPoint, GLenum texture) { if (context->getClientMajorVersion() < 2) { - return ValidateMultitextureUnit(context, texture); + return ValidateMultitextureUnit(context, entryPoint, texture); } if (texture < GL_TEXTURE0 || texture > GL_TEXTURE0 + static_cast(context->getCaps().maxCombinedTextureImageUnits) - 1) { - context->validationError(GL_INVALID_ENUM, kInvalidCombinedImageUnit); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCombinedImageUnit); return false; } return true; } -bool ValidateAttachShader(const Context *context, ShaderProgramID program, ShaderProgramID shader) -{ - Program *programObject = GetValidProgram(context, program); +bool ValidateAttachShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + ShaderProgramID shader) +{ + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } - Shader *shaderObject = GetValidShader(context, shader); + Shader *shaderObject = GetValidShader(context, entryPoint, shader); if (!shaderObject) { return false; } if (programObject->getAttachedShader(shaderObject->getType())) { - context->validationError(GL_INVALID_OPERATION, kShaderAttachmentHasShader); + context->validationError(entryPoint, GL_INVALID_OPERATION, kShaderAttachmentHasShader); return false; } return true; } bool ValidateBindAttribLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint index, const GLchar *name) { if (index >= MAX_VERTEX_ATTRIBS) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } if (strncmp(name, "gl_", 3) == 0) { - context->validationError(GL_INVALID_OPERATION, kNameBeginsWithGL); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNameBeginsWithGL); return false; } if (context->isWebGL()) { @@ -3741,31 +3743,38 @@ if (!IsValidESSLString(name, length)) { // The WebGL spec (section 6.20) disallows strings containing invalid ESSL characters // for shader-related entry points - context->validationError(GL_INVALID_VALUE, kInvalidNameCharacters); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidNameCharacters); return false; } - if (!ValidateWebGLNameLength(context, length) || !ValidateWebGLNamePrefix(context, name)) + if (!ValidateWebGLNameLength(context, entryPoint, length) || + !ValidateWebGLNamePrefix(context, entryPoint, name)) { return false; } } - return GetValidProgram(context, program) != nullptr; -} - -bool ValidateBindFramebuffer(const Context *context, GLenum target, FramebufferID framebuffer) -{ - return ValidateBindFramebufferBase(context, target, framebuffer); -} - -bool ValidateBindRenderbuffer(const Context *context, GLenum target, RenderbufferID renderbuffer) -{ - return ValidateBindRenderbufferBase(context, target, renderbuffer); + return GetValidProgram(context, entryPoint, program) != nullptr; +} + +bool ValidateBindFramebuffer(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + FramebufferID framebuffer) +{ + return ValidateBindFramebufferBase(context, entryPoint, target, framebuffer); +} + +bool ValidateBindRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + RenderbufferID renderbuffer) +{ + return ValidateBindRenderbufferBase(context, entryPoint, target, renderbuffer); } static bool ValidBlendEquationMode(const Context *context, GLenum mode) { switch (mode) @@ -3775,91 +3784,99 @@ case GL_FUNC_REVERSE_SUBTRACT: return true; case GL_MIN: case GL_MAX: - return context->getClientVersion() >= ES_3_0 || context->getExtensions().blendMinMax; + return context->getClientVersion() >= ES_3_0 || context->getExtensions().blendMinmaxEXT; default: return false; } } bool ValidateBlendColor(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { return true; } -bool ValidateBlendEquation(const Context *context, GLenum mode) +bool ValidateBlendEquation(const Context *context, angle::EntryPoint entryPoint, GLenum mode) { if (!ValidBlendEquationMode(context, mode)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendEquation); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendEquation); return false; } return true; } -bool ValidateBlendEquationSeparate(const Context *context, GLenum modeRGB, GLenum modeAlpha) +bool ValidateBlendEquationSeparate(const Context *context, + angle::EntryPoint entryPoint, + GLenum modeRGB, + GLenum modeAlpha) { if (!ValidBlendEquationMode(context, modeRGB)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendEquation); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendEquation); return false; } if (!ValidBlendEquationMode(context, modeAlpha)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendEquation); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendEquation); return false; } return true; } -bool ValidateBlendFunc(const Context *context, GLenum sfactor, GLenum dfactor) -{ - return ValidateBlendFuncSeparate(context, sfactor, dfactor, sfactor, dfactor); +bool ValidateBlendFunc(const Context *context, + angle::EntryPoint entryPoint, + GLenum sfactor, + GLenum dfactor) +{ + return ValidateBlendFuncSeparate(context, entryPoint, sfactor, dfactor, sfactor, dfactor); } bool ValidateBlendFuncSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { if (!ValidSrcBlendFunc(context, srcRGB)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendFunction); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendFunction); return false; } if (!ValidDstBlendFunc(context, dstRGB)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendFunction); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendFunction); return false; } if (!ValidSrcBlendFunc(context, srcAlpha)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendFunction); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendFunction); return false; } if (!ValidDstBlendFunc(context, dstAlpha)) { - context->validationError(GL_INVALID_ENUM, kInvalidBlendFunction); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBlendFunction); return false; } if (context->getLimitations().noSimultaneousConstantColorAndAlphaBlendFunc || - context->getExtensions().webglCompatibility) + context->isWebGL()) { bool constantColorUsed = (srcRGB == GL_CONSTANT_COLOR || srcRGB == GL_ONE_MINUS_CONSTANT_COLOR || dstRGB == GL_CONSTANT_COLOR || dstRGB == GL_ONE_MINUS_CONSTANT_COLOR); @@ -3867,26 +3884,27 @@ (srcRGB == GL_CONSTANT_ALPHA || srcRGB == GL_ONE_MINUS_CONSTANT_ALPHA || dstRGB == GL_CONSTANT_ALPHA || dstRGB == GL_ONE_MINUS_CONSTANT_ALPHA); if (constantColorUsed && constantAlphaUsed) { - if (context->getExtensions().webglCompatibility) + if (context->isWebGL()) { - context->validationError(GL_INVALID_OPERATION, kInvalidConstantColor); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidConstantColor); return false; } WARN() << kConstantColorAlphaLimitation; - context->validationError(GL_INVALID_OPERATION, kConstantColorAlphaLimitation); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kConstantColorAlphaLimitation); return false; } } return true; } -bool ValidateGetString(const Context *context, GLenum name) +bool ValidateGetString(const Context *context, angle::EntryPoint entryPoint, GLenum name) { switch (name) { case GL_VENDOR: case GL_RENDERER: @@ -3894,84 +3912,89 @@ case GL_SHADING_LANGUAGE_VERSION: case GL_EXTENSIONS: break; case GL_REQUESTABLE_EXTENSIONS_ANGLE: - if (!context->getExtensions().requestExtension) + if (!context->getExtensions().requestExtensionANGLE) { - context->validationError(GL_INVALID_ENUM, kInvalidName); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName); return false; } break; case GL_SERIALIZED_CONTEXT_STRING_ANGLE: if (!context->getExtensions().getSerializedContextStringANGLE) { - context->validationError(GL_INVALID_ENUM, kInvalidName); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidName); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName); return false; } return true; } -bool ValidateLineWidth(const Context *context, GLfloat width) +bool ValidateLineWidth(const Context *context, angle::EntryPoint entryPoint, GLfloat width) { if (width <= 0.0f || isNaN(width)) { - context->validationError(GL_INVALID_VALUE, kInvalidWidth); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidWidth); return false; } return true; } -bool ValidateDepthRangef(const Context *context, GLfloat zNear, GLfloat zFar) -{ - if (context->getExtensions().webglCompatibility && zNear > zFar) - { - context->validationError(GL_INVALID_OPERATION, kInvalidDepthRange); +bool ValidateDepthRangef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat zNear, + GLfloat zFar) +{ + if (context->isWebGL() && zNear > zFar) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDepthRange); return false; } return true; } bool ValidateRenderbufferStorage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { - return ValidateRenderbufferStorageParametersBase(context, target, 0, internalformat, width, - height); + return ValidateRenderbufferStorageParametersBase(context, entryPoint, target, 0, internalformat, + width, height); } bool ValidateRenderbufferStorageMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { - if (!context->getExtensions().framebufferMultisample) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().framebufferMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } // ANGLE_framebuffer_multisample states that the value of samples must be less than or equal // to MAX_SAMPLES_ANGLE (Context::getCaps().maxSamples) otherwise GL_INVALID_VALUE is // generated. if (samples > context->getCaps().maxSamples) { - context->validationError(GL_INVALID_VALUE, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kSamplesOutOfRange); return false; } // ANGLE_framebuffer_multisample states GL_OUT_OF_MEMORY is generated on a failure to create // the specified storage. This is different than ES 3.0 in which a sample number higher @@ -3980,134 +4003,144 @@ if (context->getClientMajorVersion() >= 3) { const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); if (static_cast(samples) > formatCaps.getMaxSamples()) { - context->validationError(GL_OUT_OF_MEMORY, kSamplesOutOfRange); + context->validationError(entryPoint, GL_OUT_OF_MEMORY, kSamplesOutOfRange); return false; } } - return ValidateRenderbufferStorageParametersBase(context, target, samples, internalformat, - width, height); -} - -bool ValidateCheckFramebufferStatus(const Context *context, GLenum target) + return ValidateRenderbufferStorageParametersBase(context, entryPoint, target, samples, + internalformat, width, height); +} + +bool ValidateCheckFramebufferStatus(const Context *context, + angle::EntryPoint entryPoint, + GLenum target) { if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } return true; } bool ValidateClearColor(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { return true; } -bool ValidateClearDepthf(const Context *context, GLfloat depth) +bool ValidateClearDepthf(const Context *context, angle::EntryPoint entryPoint, GLfloat depth) { return true; } -bool ValidateClearStencil(const Context *context, GLint s) +bool ValidateClearStencil(const Context *context, angle::EntryPoint entryPoint, GLint s) { return true; } bool ValidateColorMask(const Context *context, + angle::EntryPoint entryPoint, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { return true; } -bool ValidateCompileShader(const Context *context, ShaderProgramID shader) +bool ValidateCompileShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID shader) { return true; } -bool ValidateCreateProgram(const Context *context) +bool ValidateCreateProgram(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidateCullFace(const Context *context, CullFaceMode mode) +bool ValidateCullFace(const Context *context, angle::EntryPoint entryPoint, CullFaceMode mode) { switch (mode) { case CullFaceMode::Front: case CullFaceMode::Back: case CullFaceMode::FrontAndBack: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidCullMode); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCullMode); return false; } return true; } -bool ValidateDeleteProgram(const Context *context, ShaderProgramID program) +bool ValidateDeleteProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program) { if (program.value == 0) { return false; } if (!context->getProgramResolveLink(program)) { if (context->getShader(program)) { - context->validationError(GL_INVALID_OPERATION, kExpectedProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExpectedProgramName); return false; } else { - context->validationError(GL_INVALID_VALUE, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramName); return false; } } return true; } -bool ValidateDeleteShader(const Context *context, ShaderProgramID shader) +bool ValidateDeleteShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID shader) { if (shader.value == 0) { return false; } if (!context->getShader(shader)) { if (context->getProgramResolveLink(shader)) { - context->validationError(GL_INVALID_OPERATION, kInvalidShaderName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidShaderName); return false; } else { - context->validationError(GL_INVALID_VALUE, kExpectedShaderName); + context->validationError(entryPoint, GL_INVALID_VALUE, kExpectedShaderName); return false; } } return true; } -bool ValidateDepthFunc(const Context *context, GLenum func) +bool ValidateDepthFunc(const Context *context, angle::EntryPoint entryPoint, GLenum func) { switch (func) { case GL_NEVER: case GL_ALWAYS: @@ -4118,273 +4151,314 @@ case GL_GEQUAL: case GL_NOTEQUAL: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateDepthMask(const Context *context, GLboolean flag) +bool ValidateDepthMask(const Context *context, angle::EntryPoint entryPoint, GLboolean flag) { return true; } -bool ValidateDetachShader(const Context *context, ShaderProgramID program, ShaderProgramID shader) -{ - Program *programObject = GetValidProgram(context, program); +bool ValidateDetachShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + ShaderProgramID shader) +{ + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } - Shader *shaderObject = GetValidShader(context, shader); + Shader *shaderObject = GetValidShader(context, entryPoint, shader); if (!shaderObject) { return false; } const Shader *attachedShader = programObject->getAttachedShader(shaderObject->getType()); if (attachedShader != shaderObject) { - context->validationError(GL_INVALID_OPERATION, kShaderToDetachMustBeAttached); + context->validationError(entryPoint, GL_INVALID_OPERATION, kShaderToDetachMustBeAttached); return false; } return true; } -bool ValidateDisableVertexAttribArray(const Context *context, GLuint index) +bool ValidateDisableVertexAttribArray(const Context *context, + angle::EntryPoint entryPoint, + GLuint index) { if (index >= MAX_VERTEX_ATTRIBS) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } return true; } -bool ValidateEnableVertexAttribArray(const Context *context, GLuint index) +bool ValidateEnableVertexAttribArray(const Context *context, + angle::EntryPoint entryPoint, + GLuint index) { if (index >= MAX_VERTEX_ATTRIBS) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } return true; } -bool ValidateFinish(const Context *context) +bool ValidateFinish(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidateFlush(const Context *context) +bool ValidateFlush(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidateFrontFace(const Context *context, GLenum mode) +bool ValidateFrontFace(const Context *context, angle::EntryPoint entryPoint, GLenum mode) { switch (mode) { case GL_CW: case GL_CCW: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateGetActiveAttrib(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint index, GLsizei bufsize, const GLsizei *length, const GLint *size, const GLenum *type, const GLchar *name) { if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (index >= static_cast(programObject->getActiveAttributeCount())) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); return false; } return true; } bool ValidateGetActiveUniform(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint index, GLsizei bufsize, const GLsizei *length, const GLint *size, const GLenum *type, const GLchar *name) { if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (index >= static_cast(programObject->getActiveUniformCount())) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); return false; } return true; } bool ValidateGetAttachedShaders(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei maxcount, const GLsizei *count, const ShaderProgramID *shaders) { if (maxcount < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeMaxCount); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeMaxCount); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } -bool ValidateGetAttribLocation(const Context *context, ShaderProgramID program, const GLchar *name) -{ - // The WebGL spec (section 6.20) disallows strings containing invalid ESSL characters for - // shader-related entry points - if (context->getExtensions().webglCompatibility && !IsValidESSLString(name, strlen(name))) - { - context->validationError(GL_INVALID_VALUE, kInvalidNameCharacters); - return false; - } - - Program *programObject = GetValidProgram(context, program); +bool ValidateGetAttribLocation(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + const GLchar *name) +{ + if (strncmp(name, "gl_", 3) == 0) + { + return false; + } + + if (context->isWebGL()) + { + const size_t length = strlen(name); + + if (!IsValidESSLString(name, length)) + { + // The WebGL spec (section 6.20) disallows strings containing invalid ESSL characters + // for shader-related entry points + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidNameCharacters); + return false; + } + + if (!ValidateWebGLNameLength(context, entryPoint, length) || + strncmp(name, "webgl_", 6) == 0 || strncmp(name, "_webgl_", 7) == 0) + { + return false; + } + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { - context->validationError(GL_INVALID_OPERATION, kProgramNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotBound); return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } -bool ValidateGetBooleanv(const Context *context, GLenum pname, const GLboolean *params) +bool ValidateGetBooleanv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLboolean *params) { GLenum nativeType; unsigned int numParams = 0; - return ValidateStateQuery(context, pname, &nativeType, &numParams); -} - -bool ValidateGetError(const Context *context) + return ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams); +} + +bool ValidateGetError(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidateGetFloatv(const Context *context, GLenum pname, const GLfloat *params) +bool ValidateGetFloatv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *params) { GLenum nativeType; unsigned int numParams = 0; - return ValidateStateQuery(context, pname, &nativeType, &numParams); -} - -bool ValidateGetIntegerv(const Context *context, GLenum pname, const GLint *params) + return ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams); +} + +bool ValidateGetIntegerv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params) { GLenum nativeType; unsigned int numParams = 0; - return ValidateStateQuery(context, pname, &nativeType, &numParams); + return ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams); } bool ValidateGetProgramInfoLog(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei bufsize, const GLsizei *length, const GLchar *infolog) { if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateGetShaderInfoLog(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLsizei bufsize, const GLsizei *length, const GLchar *infolog) { if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Shader *shaderObject = GetValidShader(context, shader); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Shader *shaderObject = GetValidShader(context, entryPoint, shader); if (!shaderObject) { return false; } return true; } bool ValidateGetShaderPrecisionFormat(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLenum precisiontype, const GLint *range, const GLint *precision) { @@ -4392,14 +4466,15 @@ { case GL_VERTEX_SHADER: case GL_FRAGMENT_SHADER: break; case GL_COMPUTE_SHADER: - context->validationError(GL_INVALID_OPERATION, kUnimplementedComputeShaderPrecision); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kUnimplementedComputeShaderPrecision); return false; default: - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } switch (precisiontype) { @@ -4410,215 +4485,228 @@ case GL_MEDIUM_INT: case GL_HIGH_INT: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPrecision); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPrecision); return false; } return true; } bool ValidateGetShaderSource(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLsizei bufsize, const GLsizei *length, const GLchar *source) { if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Shader *shaderObject = GetValidShader(context, shader); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Shader *shaderObject = GetValidShader(context, entryPoint, shader); if (!shaderObject) { return false; } return true; } -bool ValidateGetUniformLocation(const Context *context, ShaderProgramID program, const GLchar *name) +bool ValidateGetUniformLocation(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + const GLchar *name) { if (strstr(name, "gl_") == name) { return false; } // The WebGL spec (section 6.20) disallows strings containing invalid ESSL characters for // shader-related entry points - if (context->getExtensions().webglCompatibility && !IsValidESSLString(name, strlen(name))) - { - context->validationError(GL_INVALID_VALUE, kInvalidNameCharacters); - return false; - } - - Program *programObject = GetValidProgram(context, program); + if (context->isWebGL() && !IsValidESSLString(name, strlen(name))) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidNameCharacters); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } -bool ValidateHint(const Context *context, GLenum target, GLenum mode) +bool ValidateHint(const Context *context, angle::EntryPoint entryPoint, GLenum target, GLenum mode) { switch (mode) { case GL_FASTEST: case GL_NICEST: case GL_DONT_CARE: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } switch (target) { case GL_GENERATE_MIPMAP_HINT: break; case GL_TEXTURE_FILTERING_HINT_CHROMIUM: - if (!context->getExtensions().textureFilteringCHROMIUM) + if (!context->getExtensions().textureFilteringHintCHROMIUM) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_FRAGMENT_SHADER_DERIVATIVE_HINT: if (context->getClientVersion() < ES_3_0 && !context->getExtensions().standardDerivativesOES) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_PERSPECTIVE_CORRECTION_HINT: case GL_POINT_SMOOTH_HINT: case GL_LINE_SMOOTH_HINT: case GL_FOG_HINT: if (context->getClientMajorVersion() >= 2) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateIsBuffer(const Context *context, BufferID buffer) +bool ValidateIsBuffer(const Context *context, angle::EntryPoint entryPoint, BufferID buffer) { return true; } -bool ValidateIsFramebuffer(const Context *context, FramebufferID framebuffer) +bool ValidateIsFramebuffer(const Context *context, + angle::EntryPoint entryPoint, + FramebufferID framebuffer) { return true; } -bool ValidateIsProgram(const Context *context, ShaderProgramID program) +bool ValidateIsProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program) { return true; } -bool ValidateIsRenderbuffer(const Context *context, RenderbufferID renderbuffer) +bool ValidateIsRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, + RenderbufferID renderbuffer) { return true; } -bool ValidateIsShader(const Context *context, ShaderProgramID shader) +bool ValidateIsShader(const Context *context, angle::EntryPoint entryPoint, ShaderProgramID shader) { return true; } -bool ValidateIsTexture(const Context *context, TextureID texture) +bool ValidateIsTexture(const Context *context, angle::EntryPoint entryPoint, TextureID texture) { return true; } -bool ValidatePixelStorei(const Context *context, GLenum pname, GLint param) +bool ValidatePixelStorei(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param) { if (context->getClientMajorVersion() < 3) { switch (pname) { case GL_UNPACK_IMAGE_HEIGHT: case GL_UNPACK_SKIP_IMAGES: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; case GL_UNPACK_ROW_LENGTH: case GL_UNPACK_SKIP_ROWS: case GL_UNPACK_SKIP_PIXELS: - if (!context->getExtensions().unpackSubimage) + if (!context->getExtensions().unpackSubimageEXT) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } break; case GL_PACK_ROW_LENGTH: case GL_PACK_SKIP_ROWS: case GL_PACK_SKIP_PIXELS: - if (!context->getExtensions().packSubimage) + if (!context->getExtensions().packSubimageNV) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } break; } } if (param < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeParam); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeParam); return false; } switch (pname) { case GL_UNPACK_ALIGNMENT: if (param != 1 && param != 2 && param != 4 && param != 8) { - context->validationError(GL_INVALID_VALUE, kInvalidUnpackAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidUnpackAlignment); return false; } break; case GL_PACK_ALIGNMENT: if (param != 1 && param != 2 && param != 4 && param != 8) { - context->validationError(GL_INVALID_VALUE, kInvalidUnpackAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidUnpackAlignment); return false; } break; case GL_PACK_REVERSE_ROW_ORDER_ANGLE: - if (!context->getExtensions().packReverseRowOrder) + if (!context->getExtensions().packReverseRowOrderANGLE) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); } break; case GL_UNPACK_ROW_LENGTH: case GL_UNPACK_IMAGE_HEIGHT: @@ -4629,387 +4717,476 @@ case GL_PACK_SKIP_ROWS: case GL_PACK_SKIP_PIXELS: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidatePolygonOffset(const Context *context, GLfloat factor, GLfloat units) +bool ValidatePolygonOffset(const Context *context, + angle::EntryPoint entryPoint, + GLfloat factor, + GLfloat units) { return true; } -bool ValidateReleaseShaderCompiler(const Context *context) +bool ValidateReleaseShaderCompiler(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidateSampleCoverage(const Context *context, GLfloat value, GLboolean invert) +bool ValidateSampleCoverage(const Context *context, + angle::EntryPoint entryPoint, + GLfloat value, + GLboolean invert) { return true; } -bool ValidateScissor(const Context *context, GLint x, GLint y, GLsizei width, GLsizei height) +bool ValidateScissor(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLsizei width, + GLsizei height) { if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } return true; } bool ValidateShaderBinary(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ShaderProgramID *shaders, GLenum binaryformat, const void *binary, GLsizei length) { const std::vector &shaderBinaryFormats = context->getCaps().shaderBinaryFormats; if (std::find(shaderBinaryFormats.begin(), shaderBinaryFormats.end(), binaryformat) == shaderBinaryFormats.end()) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderBinaryFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderBinaryFormat); return false; } return true; } bool ValidateShaderSource(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLsizei count, const GLchar *const *string, const GLint *length) { if (count < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); - return false; - } - - Shader *shaderObject = GetValidShader(context, shader); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); + return false; + } + + Shader *shaderObject = GetValidShader(context, entryPoint, shader); if (!shaderObject) { return false; } return true; } -bool ValidateStencilFunc(const Context *context, GLenum func, GLint ref, GLuint mask) +bool ValidateStencilFunc(const Context *context, + angle::EntryPoint entryPoint, + GLenum func, + GLint ref, + GLuint mask) { if (!IsValidStencilFunc(func)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } return true; } bool ValidateStencilFuncSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum face, GLenum func, GLint ref, GLuint mask) { if (!IsValidStencilFace(face)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } if (!IsValidStencilFunc(func)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } return true; } -bool ValidateStencilMask(const Context *context, GLuint mask) +bool ValidateStencilMask(const Context *context, angle::EntryPoint entryPoint, GLuint mask) { return true; } -bool ValidateStencilMaskSeparate(const Context *context, GLenum face, GLuint mask) +bool ValidateStencilMaskSeparate(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLuint mask) { if (!IsValidStencilFace(face)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } return true; } -bool ValidateStencilOp(const Context *context, GLenum fail, GLenum zfail, GLenum zpass) +bool ValidateStencilOp(const Context *context, + angle::EntryPoint entryPoint, + GLenum fail, + GLenum zfail, + GLenum zpass) { if (!IsValidStencilOp(fail)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } if (!IsValidStencilOp(zfail)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } if (!IsValidStencilOp(zpass)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); return false; } return true; } bool ValidateStencilOpSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { if (!IsValidStencilFace(face)) { - context->validationError(GL_INVALID_ENUM, kInvalidStencil); - return false; - } - - return ValidateStencilOp(context, fail, zfail, zpass); -} - -bool ValidateUniform1f(const Context *context, UniformLocation location, GLfloat x) -{ - return ValidateUniform(context, GL_FLOAT, location, 1); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidStencil); + return false; + } + + return ValidateStencilOp(context, entryPoint, fail, zfail, zpass); +} + +bool ValidateUniform1f(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLfloat x) +{ + return ValidateUniform(context, entryPoint, GL_FLOAT, location, 1); } bool ValidateUniform1fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLfloat *v) { - return ValidateUniform(context, GL_FLOAT, location, count); -} - -bool ValidateUniform1i(const Context *context, UniformLocation location, GLint x) -{ - return ValidateUniform1iv(context, location, 1, &x); + return ValidateUniform(context, entryPoint, GL_FLOAT, location, count); +} + +bool ValidateUniform1i(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLint x) +{ + return ValidateUniform1iv(context, entryPoint, location, 1, &x); } bool ValidateUniform2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLfloat *v) { - return ValidateUniform(context, GL_FLOAT_VEC2, location, count); -} - -bool ValidateUniform2i(const Context *context, UniformLocation location, GLint x, GLint y) -{ - return ValidateUniform(context, GL_INT_VEC2, location, 1); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC2, location, count); +} + +bool ValidateUniform2i(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLint x, + GLint y) +{ + return ValidateUniform(context, entryPoint, GL_INT_VEC2, location, 1); } bool ValidateUniform2iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLint *v) { - return ValidateUniform(context, GL_INT_VEC2, location, count); + return ValidateUniform(context, entryPoint, GL_INT_VEC2, location, count); } bool ValidateUniform3f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLfloat x, GLfloat y, GLfloat z) { - return ValidateUniform(context, GL_FLOAT_VEC3, location, 1); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC3, location, 1); } bool ValidateUniform3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLfloat *v) { - return ValidateUniform(context, GL_FLOAT_VEC3, location, count); -} - -bool ValidateUniform3i(const Context *context, UniformLocation location, GLint x, GLint y, GLint z) -{ - return ValidateUniform(context, GL_INT_VEC3, location, 1); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC3, location, count); +} + +bool ValidateUniform3i(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLint x, + GLint y, + GLint z) +{ + return ValidateUniform(context, entryPoint, GL_INT_VEC3, location, 1); } bool ValidateUniform3iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLint *v) { - return ValidateUniform(context, GL_INT_VEC3, location, count); + return ValidateUniform(context, entryPoint, GL_INT_VEC3, location, count); } bool ValidateUniform4f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { - return ValidateUniform(context, GL_FLOAT_VEC4, location, 1); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC4, location, 1); } bool ValidateUniform4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLfloat *v) { - return ValidateUniform(context, GL_FLOAT_VEC4, location, count); + return ValidateUniform(context, entryPoint, GL_FLOAT_VEC4, location, count); } bool ValidateUniform4i(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLint x, GLint y, GLint z, GLint w) { - return ValidateUniform(context, GL_INT_VEC4, location, 1); + return ValidateUniform(context, entryPoint, GL_INT_VEC4, location, 1); } bool ValidateUniform4iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLint *v) { - return ValidateUniform(context, GL_INT_VEC4, location, count); + return ValidateUniform(context, entryPoint, GL_INT_VEC4, location, count); } bool ValidateUniformMatrix2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrix(context, GL_FLOAT_MAT2, location, count, transpose); + return ValidateUniformMatrix(context, entryPoint, GL_FLOAT_MAT2, location, count, transpose); } bool ValidateUniformMatrix3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrix(context, GL_FLOAT_MAT3, location, count, transpose); + return ValidateUniformMatrix(context, entryPoint, GL_FLOAT_MAT3, location, count, transpose); } bool ValidateUniformMatrix4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrix(context, GL_FLOAT_MAT4, location, count, transpose); -} - -bool ValidateValidateProgram(const Context *context, ShaderProgramID program) -{ - Program *programObject = GetValidProgram(context, program); + return ValidateUniformMatrix(context, entryPoint, GL_FLOAT_MAT4, location, count, transpose); +} + +bool ValidateValidateProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program) +{ + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } -bool ValidateVertexAttrib1f(const Context *context, GLuint index, GLfloat x) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib1fv(const Context *context, GLuint index, const GLfloat *values) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib2f(const Context *context, GLuint index, GLfloat x, GLfloat y) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib2fv(const Context *context, GLuint index, const GLfloat *values) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib3f(const Context *context, GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib3fv(const Context *context, GLuint index, const GLfloat *values) -{ - return ValidateVertexAttribIndex(context, index); +bool ValidateVertexAttrib1f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib1fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *values) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib2f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x, + GLfloat y) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib2fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *values) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib3f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x, + GLfloat y, + GLfloat z) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib3fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *values) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); } bool ValidateVertexAttrib4f(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateVertexAttrib4fv(const Context *context, GLuint index, const GLfloat *values) -{ - return ValidateVertexAttribIndex(context, index); -} - -bool ValidateViewport(const Context *context, GLint x, GLint y, GLsizei width, GLsizei height) + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateVertexAttrib4fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *values) +{ + return ValidateVertexAttribIndex(context, entryPoint, index); +} + +bool ValidateViewport(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLsizei width, + GLsizei height) { if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kViewportNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kViewportNegativeSize); return false; } return true; } bool ValidateGetFramebufferAttachmentParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, const GLint *params) { - return ValidateGetFramebufferAttachmentParameterivBase(context, target, attachment, pname, - nullptr); + return ValidateGetFramebufferAttachmentParameterivBase(context, entryPoint, target, attachment, + pname, nullptr); } bool ValidateGetProgramiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, const GLint *params) { - return ValidateGetProgramivBase(context, program, pname, nullptr); + return ValidateGetProgramivBase(context, entryPoint, program, pname, nullptr); } bool ValidateCopyTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLint x, GLint y, @@ -5017,20 +5194,21 @@ GLsizei height, GLint border) { if (context->getClientMajorVersion() < 3) { - return ValidateES2CopyTexImageParameters(context, target, level, internalformat, false, 0, - 0, x, y, width, height, border); + return ValidateES2CopyTexImageParameters(context, entryPoint, target, level, internalformat, + false, 0, 0, x, y, width, height, border); } ASSERT(context->getClientMajorVersion() == 3); - return ValidateES3CopyTexImage2DParameters(context, target, level, internalformat, false, 0, 0, - 0, x, y, width, height, border); + return ValidateES3CopyTexImage2DParameters(context, entryPoint, target, level, internalformat, + false, 0, 0, 0, x, y, width, height, border); } bool ValidateCopyTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint x, @@ -5038,78 +5216,90 @@ GLsizei width, GLsizei height) { if (context->getClientMajorVersion() < 3) { - return ValidateES2CopyTexImageParameters(context, target, level, GL_NONE, true, xoffset, - yoffset, x, y, width, height, 0); - } - - return ValidateES3CopyTexImage2DParameters(context, target, level, GL_NONE, true, xoffset, - yoffset, 0, x, y, width, height, 0); + return ValidateES2CopyTexImageParameters(context, entryPoint, target, level, GL_NONE, true, + xoffset, yoffset, x, y, width, height, 0); + } + + return ValidateES3CopyTexImage2DParameters(context, entryPoint, target, level, GL_NONE, true, + xoffset, yoffset, 0, x, y, width, height, 0); } bool ValidateCopyTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { - return ValidateCopyTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, x, y, width, - height); -} - -bool ValidateDeleteBuffers(const Context *context, GLint n, const BufferID *buffers) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateDeleteFramebuffers(const Context *context, GLint n, const FramebufferID *framebuffers) -{ - return ValidateGenOrDelete(context, n); + return ValidateCopyTexSubImage3D(context, entryPoint, target, level, xoffset, yoffset, zoffset, + x, y, width, height); +} + +bool ValidateDeleteBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const BufferID *buffers) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateDeleteFramebuffers(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const FramebufferID *framebuffers) +{ + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateDeleteRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, GLint n, const RenderbufferID *renderbuffers) { - return ValidateGenOrDelete(context, n); -} - -bool ValidateDeleteTextures(const Context *context, GLint n, const TextureID *textures) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateDisable(const Context *context, GLenum cap) + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateDeleteTextures(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const TextureID *textures) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateDisable(const Context *context, angle::EntryPoint entryPoint, GLenum cap) { if (!ValidCap(context, cap, false)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateEnable(const Context *context, GLenum cap) +bool ValidateEnable(const Context *context, angle::EntryPoint entryPoint, GLenum cap) { if (!ValidCap(context, cap, false)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (context->getLimitations().noSampleAlphaToCoverageSupport && cap == GL_SAMPLE_ALPHA_TO_COVERAGE) { - context->validationError(GL_INVALID_OPERATION, kNoSampleAlphaToCoveragesLimitation); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoSampleAlphaToCoveragesLimitation); // We also output an error message to the debugger window if tracing is active, so that // developers can see the error message. ERR() << kNoSampleAlphaToCoveragesLimitation; return false; @@ -5117,20 +5307,22 @@ return true; } bool ValidateFramebufferRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbuffer) { - return ValidateFramebufferRenderbufferBase(context, target, attachment, renderbuffertarget, - renderbuffer); + return ValidateFramebufferRenderbufferBase(context, entryPoint, target, attachment, + renderbuffertarget, renderbuffer); } bool ValidateFramebufferTexture2D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textarget, TextureID texture, GLint level) @@ -5138,15 +5330,15 @@ // Attachments are required to be bound to level 0 without ES3 or the GL_OES_fbo_render_mipmap // extension if (context->getClientMajorVersion() < 3 && !context->getExtensions().fboRenderMipmapOES && level != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); - return false; - } - - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); + return false; + } + + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } if (texture.value != 0) @@ -5160,31 +5352,33 @@ { case TextureTarget::_2D: { if (level > log2(caps.max2DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (tex->getType() != TextureType::_2D) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureTarget); return false; } } break; case TextureTarget::Rectangle: { if (level != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (tex->getType() != TextureType::Rectangle) { - context->validationError(GL_INVALID_OPERATION, kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureTargetMismatch); return false; } } break; @@ -5195,76 +5389,81 @@ case TextureTarget::CubeMapPositiveY: case TextureTarget::CubeMapPositiveZ: { if (level > log2(caps.maxCubeMapTextureSize)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (tex->getType() != TextureType::CubeMap) { - context->validationError(GL_INVALID_OPERATION, kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureTargetMismatch); return false; } } break; case TextureTarget::_2DMultisample: { if (context->getClientVersion() < ES_3_1 && - !context->getExtensions().textureMultisample) + !context->getExtensions().textureMultisampleANGLE) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kMultisampleTextureExtensionOrES31Required); return false; } if (level != 0) { - context->validationError(GL_INVALID_VALUE, kLevelNotZero); + context->validationError(entryPoint, GL_INVALID_VALUE, kLevelNotZero); return false; } if (tex->getType() != TextureType::_2DMultisample) { - context->validationError(GL_INVALID_OPERATION, kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureTargetMismatch); return false; } } break; case TextureTarget::External: { - if (!context->getExtensions().yuvTargetEXT) + if (!context->getExtensions().YUVTargetEXT) { - context->validationError(GL_INVALID_OPERATION, kYUVTargetExtensionRequired); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kYUVTargetExtensionRequired); return false; } if (attachment != GL_COLOR_ATTACHMENT0) { - context->validationError(GL_INVALID_OPERATION, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidAttachment); return false; } if (tex->getType() != TextureType::External) { - context->validationError(GL_INVALID_OPERATION, kTextureTargetMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureTargetMismatch); return false; } } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } } return true; } bool ValidateFramebufferTexture3DOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texture, GLint level, @@ -5273,24 +5472,24 @@ // We don't call into a base ValidateFramebufferTexture3D here because // it doesn't exist for OpenGL ES. This function is replaced by // FramebufferTextureLayer in ES 3.x, which has broader support. if (!context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } // Attachments are required to be bound to level 0 without ES3 or the // GL_OES_fbo_render_mipmap extension if (context->getClientMajorVersion() < 3 && !context->getExtensions().fboRenderMipmapOES && level != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); - return false; - } - - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFramebufferTextureLevel); + return false; + } + + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } if (texture.value != 0) @@ -5304,537 +5503,597 @@ { case TextureTarget::_3D: { if (level > log2(caps.max3DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } if (zoffset >= caps.max3DTextureSize) { - context->validationError(GL_INVALID_VALUE, kInvalidZOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidZOffset); return false; } if (tex->getType() != TextureType::_3D) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureType); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureType); return false; } } break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureTarget); return false; } } return true; } -bool ValidateGenBuffers(const Context *context, GLint n, const BufferID *buffers) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateGenFramebuffers(const Context *context, GLint n, const FramebufferID *framebuffers) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateGenRenderbuffers(const Context *context, GLint n, const RenderbufferID *renderbuffers) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateGenTextures(const Context *context, GLint n, const TextureID *textures) -{ - return ValidateGenOrDelete(context, n); -} - -bool ValidateGenerateMipmap(const Context *context, TextureType target) -{ - return ValidateGenerateMipmapBase(context, target); +bool ValidateGenBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const BufferID *buffers) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateGenFramebuffers(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const FramebufferID *framebuffers) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateGenRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const RenderbufferID *renderbuffers) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateGenTextures(const Context *context, + angle::EntryPoint entryPoint, + GLint n, + const TextureID *textures) +{ + return ValidateGenOrDelete(context, entryPoint, n); +} + +bool ValidateGenerateMipmap(const Context *context, + angle::EntryPoint entryPoint, + TextureType target) +{ + return ValidateGenerateMipmapBase(context, entryPoint, target); } bool ValidateGetBufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, const GLint *params) { - return ValidateGetBufferParameterBase(context, target, pname, false, nullptr); + return ValidateGetBufferParameterBase(context, entryPoint, target, pname, false, nullptr); } bool ValidateGetRenderbufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params) { - return ValidateGetRenderbufferParameterivBase(context, target, pname, nullptr); + return ValidateGetRenderbufferParameterivBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetShaderiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLenum pname, const GLint *params) { - return ValidateGetShaderivBase(context, shader, pname, nullptr); + return ValidateGetShaderivBase(context, entryPoint, shader, pname, nullptr); } bool ValidateGetTexParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLfloat *params) { - return ValidateGetTexParameterBase(context, target, pname, nullptr); + return ValidateGetTexParameterBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetTexParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLint *params) { - return ValidateGetTexParameterBase(context, target, pname, nullptr); + return ValidateGetTexParameterBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetTexParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateGetTexParameterBase(context, target, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateGetTexParameterBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetTexParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateGetTexParameterBase(context, target, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateGetTexParameterBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetUniformfv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, const GLfloat *params) { - return ValidateGetUniformBase(context, program, location); + return ValidateGetUniformBase(context, entryPoint, program, location); } bool ValidateGetUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, const GLint *params) { - return ValidateGetUniformBase(context, program, location); + return ValidateGetUniformBase(context, entryPoint, program, location); } bool ValidateGetVertexAttribfv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLfloat *params) { - return ValidateGetVertexAttribBase(context, index, pname, nullptr, false, false); + return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, false, false); } bool ValidateGetVertexAttribiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLint *params) { - return ValidateGetVertexAttribBase(context, index, pname, nullptr, false, false); + return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, false, false); } bool ValidateGetVertexAttribPointerv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, void *const *pointer) { - return ValidateGetVertexAttribBase(context, index, pname, nullptr, true, false); -} - -bool ValidateIsEnabled(const Context *context, GLenum cap) + return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, true, false); +} + +bool ValidateIsEnabled(const Context *context, angle::EntryPoint entryPoint, GLenum cap) { if (!ValidCap(context, cap, true)) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateLinkProgram(const Context *context, ShaderProgramID program) +bool ValidateLinkProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program) { if (context->hasActiveTransformFeedback(program)) { // ES 3.0.4 section 2.15 page 91 - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackActiveDuringLink); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackActiveDuringLink); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateReadPixels(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) { - return ValidateReadPixelsBase(context, x, y, width, height, format, type, -1, nullptr, nullptr, - nullptr, pixels); -} - -bool ValidateTexParameterf(const Context *context, TextureType target, GLenum pname, GLfloat param) -{ - return ValidateTexParameterBase(context, target, pname, -1, false, ¶m); + return ValidateReadPixelsBase(context, entryPoint, x, y, width, height, format, type, -1, + nullptr, nullptr, nullptr, pixels); +} + +bool ValidateTexParameterf(const Context *context, + angle::EntryPoint entryPoint, + TextureType target, + GLenum pname, + GLfloat param) +{ + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, false, ¶m); } bool ValidateTexParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLfloat *params) { - return ValidateTexParameterBase(context, target, pname, -1, true, params); -} - -bool ValidateTexParameteri(const Context *context, TextureType target, GLenum pname, GLint param) -{ - return ValidateTexParameterBase(context, target, pname, -1, false, ¶m); + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, true, params); +} + +bool ValidateTexParameteri(const Context *context, + angle::EntryPoint entryPoint, + TextureType target, + GLenum pname, + GLint param) +{ + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, false, ¶m); } bool ValidateTexParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLint *params) { - return ValidateTexParameterBase(context, target, pname, -1, true, params); + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, true, params); } bool ValidateTexParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateTexParameterBase(context, target, pname, -1, true, params); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, true, params); } bool ValidateTexParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateTexParameterBase(context, target, pname, -1, true, params); -} - -bool ValidateUseProgram(const Context *context, ShaderProgramID program) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateTexParameterBase(context, entryPoint, target, pname, -1, true, params); +} + +bool ValidateUseProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program) { if (program.value != 0) { Program *programObject = context->getProgramResolveLink(program); if (!programObject) { // ES 3.1.0 section 7.3 page 72 if (context->getShader(program)) { - context->validationError(GL_INVALID_OPERATION, kExpectedProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExpectedProgramName); return false; } else { - context->validationError(GL_INVALID_VALUE, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramName); return false; } } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } } if (context->getState().isTransformFeedbackActiveUnpaused()) { // ES 3.0.4 section 2.15 page 91 - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackUseProgram); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackUseProgram); return false; } return true; } -bool ValidateDeleteFencesNV(const Context *context, GLsizei n, const FenceNVID *fences) +bool ValidateDeleteFencesNV(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const FenceNVID *fences) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } if (n < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } return true; } -bool ValidateFinishFenceNV(const Context *context, FenceNVID fence) +bool ValidateFinishFenceNV(const Context *context, angle::EntryPoint entryPoint, FenceNVID fence) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } FenceNV *fenceObject = context->getFenceNV(fence); if (fenceObject == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFence); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFence); return false; } if (!fenceObject->isSet()) { - context->validationError(GL_INVALID_OPERATION, kInvalidFenceState); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFenceState); return false; } return true; } -bool ValidateGenFencesNV(const Context *context, GLsizei n, const FenceNVID *fences) +bool ValidateGenFencesNV(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const FenceNVID *fences) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } if (n < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } return true; } bool ValidateGetFenceivNV(const Context *context, + angle::EntryPoint entryPoint, FenceNVID fence, GLenum pname, const GLint *params) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } FenceNV *fenceObject = context->getFenceNV(fence); if (fenceObject == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFence); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFence); return false; } if (!fenceObject->isSet()) { - context->validationError(GL_INVALID_OPERATION, kInvalidFenceState); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFenceState); return false; } switch (pname) { case GL_FENCE_STATUS_NV: case GL_FENCE_CONDITION_NV: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } return true; } -bool ValidateGetGraphicsResetStatusEXT(const Context *context) -{ - if (!context->getExtensions().robustness) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateGetGraphicsResetStatusEXT(const Context *context, angle::EntryPoint entryPoint) +{ + if (!context->getExtensions().robustnessEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateGetTranslatedShaderSourceANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shader, GLsizei bufsize, const GLsizei *length, const GLchar *source) { - if (!context->getExtensions().translatedShaderSource) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().translatedShaderSourceANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufsize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } Shader *shaderObject = context->getShader(shader); if (!shaderObject) { - context->validationError(GL_INVALID_OPERATION, kInvalidShaderName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidShaderName); + return false; + } + + return true; +} + +bool ValidateIsFenceNV(const Context *context, angle::EntryPoint entryPoint, FenceNVID fence) +{ + if (!context->getExtensions().fenceNV) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } return true; } -bool ValidateIsFenceNV(const Context *context, FenceNVID fence) +bool ValidateSetFenceNV(const Context *context, + angle::EntryPoint entryPoint, + FenceNVID fence, + GLenum condition) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); - return false; - } - - return true; -} - -bool ValidateSetFenceNV(const Context *context, FenceNVID fence, GLenum condition) -{ - if (!context->getExtensions().fenceNV) - { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } if (condition != GL_ALL_COMPLETED_NV) { - context->validationError(GL_INVALID_ENUM, kInvalidFenceCondition); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFenceCondition); return false; } FenceNV *fenceObject = context->getFenceNV(fence); if (fenceObject == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFence); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFence); return false; } return true; } -bool ValidateTestFenceNV(const Context *context, FenceNVID fence) +bool ValidateTestFenceNV(const Context *context, angle::EntryPoint entryPoint, FenceNVID fence) { if (!context->getExtensions().fenceNV) { - context->validationError(GL_INVALID_OPERATION, kNVFenceNotSupported); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNVFenceNotSupported); return false; } FenceNV *fenceObject = context->getFenceNV(fence); if (fenceObject == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFence); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFence); return false; } if (fenceObject->isSet() != GL_TRUE) { - context->validationError(GL_INVALID_OPERATION, kInvalidFenceState); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFenceState); return false; } return true; } bool ValidateTexStorage2DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType type, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { - if (!context->getExtensions().textureStorage) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().textureStorageEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { - return ValidateES2TexStorageParametersBase(context, type, levels, internalformat, width, - height); + return ValidateES2TexStorageParametersBase(context, entryPoint, type, levels, + internalformat, width, height); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexStorage2DParameters(context, type, levels, internalformat, width, height, - 1); -} - -bool ValidateVertexAttribDivisorANGLE(const Context *context, GLuint index, GLuint divisor) + return ValidateES3TexStorage2DParameters(context, entryPoint, type, levels, internalformat, + width, height, 1); +} + +bool ValidateVertexAttribDivisorANGLE(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor) { if (!context->getExtensions().instancedArraysANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (index >= MAX_VERTEX_ATTRIBS) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } if (context->getLimitations().attributeZeroRequiresZeroDivisorInEXT) { if (index == 0 && divisor != 0) { - context->validationError(GL_INVALID_OPERATION, kAttributeZeroRequiresDivisorLimitation); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kAttributeZeroRequiresDivisorLimitation); // We also output an error message to the debugger window if tracing is active, so // that developers can see the error message. ERR() << kAttributeZeroRequiresDivisorLimitation; return false; @@ -5842,28 +6101,32 @@ } return true; } -bool ValidateVertexAttribDivisorEXT(const Context *context, GLuint index, GLuint divisor) +bool ValidateVertexAttribDivisorEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor) { if (!context->getExtensions().instancedArraysEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (index >= MAX_VERTEX_ATTRIBS) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } return true; } bool ValidateTexImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -5871,147 +6134,156 @@ GLint border, GLenum format, GLenum type, const void *pixels) { - return ValidateTexImage3D(context, target, level, internalformat, width, height, depth, border, - format, type, pixels); -} - -bool ValidatePopGroupMarkerEXT(const Context *context) -{ - if (!context->getExtensions().debugMarker) + return ValidateTexImage3D(context, entryPoint, target, level, internalformat, width, height, + depth, border, format, type, pixels); +} + +bool ValidatePopGroupMarkerEXT(const Context *context, angle::EntryPoint entryPoint) +{ + if (!context->getExtensions().debugMarkerEXT) { // The debug marker calls should not set error state // However, it seems reasonable to set an error state if the extension is not enabled - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateTexStorage1DEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { UNIMPLEMENTED(); - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } bool ValidateTexStorage3DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { - if (!context->getExtensions().textureStorage) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().textureStorageEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateES3TexStorage3DParameters(context, target, levels, internalformat, width, height, - depth); -} - -bool ValidateMaxShaderCompilerThreadsKHR(const Context *context, GLuint count) -{ - if (!context->getExtensions().parallelShaderCompile) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateES3TexStorage3DParameters(context, entryPoint, target, levels, internalformat, + width, height, depth); +} + +bool ValidateMaxShaderCompilerThreadsKHR(const Context *context, + angle::EntryPoint entryPoint, + GLuint count) +{ + if (!context->getExtensions().parallelShaderCompileKHR) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateMultiDrawArraysANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawArrays(context, mode, firsts[drawID], counts[drawID])) + if (!ValidateDrawArrays(context, entryPoint, mode, firsts[drawID], counts[drawID])) { return false; } } return true; } bool ValidateMultiDrawElementsANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLsizei *counts, DrawElementsType type, const GLvoid *const *indices, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawElements(context, mode, counts[drawID], type, indices[drawID])) + if (!ValidateDrawElements(context, entryPoint, mode, counts[drawID], type, indices[drawID])) { return false; } } return true; } -bool ValidateProvokingVertexANGLE(const Context *context, ProvokingVertexConvention modePacked) -{ - if (!context->getExtensions().provokingVertex) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); +bool ValidateProvokingVertexANGLE(const Context *context, + angle::EntryPoint entryPoint, + ProvokingVertexConvention modePacked) +{ + if (!context->getExtensions().provokingVertexANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (modePacked) { case ProvokingVertexConvention::FirstVertexConvention: case ProvokingVertexConvention::LastVertexConvention: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidProvokingVertex); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProvokingVertex); return false; } return true; } bool ValidateFramebufferTexture2DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textarget, TextureID texture, GLint level, GLsizei samples) { - if (!context->getExtensions().multisampledRenderToTexture) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multisampledRenderToTextureEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (samples < 0) { @@ -6021,15 +6293,15 @@ // EXT_multisampled_render_to_texture states that the value of samples // must be less than or equal to MAX_SAMPLES_EXT (Context::getCaps().maxSamples) // otherwise GL_INVALID_VALUE is generated. if (samples > context->getCaps().maxSamples) { - context->validationError(GL_INVALID_VALUE, kSamplesOutOfRange); - return false; - } - - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + context->validationError(entryPoint, GL_INVALID_VALUE, kSamplesOutOfRange); + return false; + } + + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } // EXT_multisampled_render_to_texture returns INVALID_OPERATION when a sample number higher than @@ -6040,56 +6312,57 @@ Texture *tex = context->getTexture(texture); GLenum internalformat = tex->getFormat(textarget, level).info->internalFormat; const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); if (static_cast(samples) > formatCaps.getMaxSamples()) { - context->validationError(GL_INVALID_OPERATION, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange); return false; } } // Unless EXT_multisampled_render_to_texture2 is enabled, only color attachment 0 can be used. - if (!context->getExtensions().multisampledRenderToTexture2 && + if (!context->getExtensions().multisampledRenderToTexture2EXT && attachment != GL_COLOR_ATTACHMENT0) { - context->validationError(GL_INVALID_ENUM, kInvalidAttachment); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidAttachment); return false; } if (!ValidTexture2DDestinationTarget(context, textarget)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } return true; } bool ValidateRenderbufferStorageMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { - if (!context->getExtensions().multisampledRenderToTexture) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - if (!ValidateRenderbufferStorageParametersBase(context, target, samples, internalformat, width, - height)) + if (!context->getExtensions().multisampledRenderToTextureEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + if (!ValidateRenderbufferStorageParametersBase(context, entryPoint, target, samples, + internalformat, width, height)) { return false; } // EXT_multisampled_render_to_texture states that the value of samples // must be less than or equal to MAX_SAMPLES_EXT (Context::getCaps().maxSamples) // otherwise GL_INVALID_VALUE is generated. if (samples > context->getCaps().maxSamples) { - context->validationError(GL_INVALID_VALUE, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kSamplesOutOfRange); return false; } // EXT_multisampled_render_to_texture returns GL_OUT_OF_MEMORY on failure to create // the specified storage. This is different than ES 3.0 in which a sample number higher @@ -6098,64 +6371,68 @@ if (context->getClientMajorVersion() >= 3) { const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); if (static_cast(samples) > formatCaps.getMaxSamples()) { - context->validationError(GL_OUT_OF_MEMORY, kSamplesOutOfRange); + context->validationError(entryPoint, GL_OUT_OF_MEMORY, kSamplesOutOfRange); return false; } } return true; } -void RecordBindTextureTypeError(const Context *context, TextureType target) +void RecordBindTextureTypeError(const Context *context, + angle::EntryPoint entryPoint, + TextureType target) { ASSERT(!context->getStateCache().isValidBindTextureType(target)); switch (target) { case TextureType::Rectangle: - ASSERT(!context->getExtensions().textureRectangle); - context->validationError(GL_INVALID_ENUM, kTextureRectangleNotSupported); + ASSERT(!context->getExtensions().textureRectangleANGLE); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureRectangleNotSupported); break; case TextureType::_3D: case TextureType::_2DArray: ASSERT(context->getClientMajorVersion() < 3); - context->validationError(GL_INVALID_ENUM, kES3Required); + context->validationError(entryPoint, GL_INVALID_ENUM, kES3Required); break; case TextureType::_2DMultisample: ASSERT(context->getClientVersion() < Version(3, 1) && - !context->getExtensions().textureMultisample); - context->validationError(GL_INVALID_ENUM, kMultisampleTextureExtensionOrES31Required); + !context->getExtensions().textureMultisampleANGLE); + context->validationError(entryPoint, GL_INVALID_ENUM, + kMultisampleTextureExtensionOrES31Required); break; case TextureType::_2DMultisampleArray: - ASSERT(!context->getExtensions().textureStorageMultisample2DArrayOES); - context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired); + ASSERT(!context->getExtensions().textureStorageMultisample2dArrayOES); + context->validationError(entryPoint, GL_INVALID_ENUM, + kMultisampleArrayExtensionRequired); break; case TextureType::External: - ASSERT(!context->getExtensions().eglImageExternalOES && - !context->getExtensions().eglStreamConsumerExternalNV); - context->validationError(GL_INVALID_ENUM, kExternalTextureNotSupported); + ASSERT(!context->getExtensions().EGLImageExternalOES && + !context->getExtensions().EGLStreamConsumerExternalNV); + context->validationError(entryPoint, GL_INVALID_ENUM, kExternalTextureNotSupported); break; case TextureType::VideoImage: - ASSERT(!context->getExtensions().webglVideoTexture); - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + ASSERT(!context->getExtensions().videoTextureWEBGL); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); break; case TextureType::Buffer: ASSERT(!context->getExtensions().textureBufferOES && !context->getExtensions().textureBufferEXT); - context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, kExtensionNotEnabled); break; default: - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); } } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationES2_autogen.h b/gfx/angle/checkout/src/libANGLE/validationES2_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationES2_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationES2_autogen.h @@ -10,448 +10,657 @@ #ifndef LIBANGLE_VALIDATION_ES2_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ES2_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; -bool ValidateActiveTexture(const Context *context, GLenum texture); +bool ValidateActiveTexture(const Context *context, angle::EntryPoint entryPoint, GLenum texture); bool ValidateAttachShader(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, ShaderProgramID shaderPacked); bool ValidateBindAttribLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint index, const GLchar *name); -bool ValidateBindBuffer(const Context *context, BufferBinding targetPacked, BufferID bufferPacked); +bool ValidateBindBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked, + BufferID bufferPacked); bool ValidateBindFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, FramebufferID framebufferPacked); bool ValidateBindRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, RenderbufferID renderbufferPacked); -bool ValidateBindTexture(const Context *context, TextureType targetPacked, TextureID texturePacked); +bool ValidateBindTexture(const Context *context, + angle::EntryPoint entryPoint, + TextureType targetPacked, + TextureID texturePacked); bool ValidateBlendColor(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -bool ValidateBlendEquation(const Context *context, GLenum mode); -bool ValidateBlendEquationSeparate(const Context *context, GLenum modeRGB, GLenum modeAlpha); -bool ValidateBlendFunc(const Context *context, GLenum sfactor, GLenum dfactor); +bool ValidateBlendEquation(const Context *context, angle::EntryPoint entryPoint, GLenum mode); +bool ValidateBlendEquationSeparate(const Context *context, + angle::EntryPoint entryPoint, + GLenum modeRGB, + GLenum modeAlpha); +bool ValidateBlendFunc(const Context *context, + angle::EntryPoint entryPoint, + GLenum sfactor, + GLenum dfactor); bool ValidateBlendFuncSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); bool ValidateBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLsizeiptr size, const void *data, BufferUsage usagePacked); bool ValidateBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr size, const void *data); -bool ValidateCheckFramebufferStatus(const Context *context, GLenum target); -bool ValidateClear(const Context *context, GLbitfield mask); +bool ValidateCheckFramebufferStatus(const Context *context, + angle::EntryPoint entryPoint, + GLenum target); +bool ValidateClear(const Context *context, angle::EntryPoint entryPoint, GLbitfield mask); bool ValidateClearColor(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -bool ValidateClearDepthf(const Context *context, GLfloat d); -bool ValidateClearStencil(const Context *context, GLint s); +bool ValidateClearDepthf(const Context *context, angle::EntryPoint entryPoint, GLfloat d); +bool ValidateClearStencil(const Context *context, angle::EntryPoint entryPoint, GLint s); bool ValidateColorMask(const Context *context, + angle::EntryPoint entryPoint, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -bool ValidateCompileShader(const Context *context, ShaderProgramID shaderPacked); +bool ValidateCompileShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID shaderPacked); bool ValidateCompressedTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); bool ValidateCompressedTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); bool ValidateCopyTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); bool ValidateCopyTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -bool ValidateCreateProgram(const Context *context); -bool ValidateCreateShader(const Context *context, ShaderType typePacked); -bool ValidateCullFace(const Context *context, CullFaceMode modePacked); -bool ValidateDeleteBuffers(const Context *context, GLsizei n, const BufferID *buffersPacked); +bool ValidateCreateProgram(const Context *context, angle::EntryPoint entryPoint); +bool ValidateCreateShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderType typePacked); +bool ValidateCullFace(const Context *context, + angle::EntryPoint entryPoint, + CullFaceMode modePacked); +bool ValidateDeleteBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const BufferID *buffersPacked); bool ValidateDeleteFramebuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffersPacked); -bool ValidateDeleteProgram(const Context *context, ShaderProgramID programPacked); +bool ValidateDeleteProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID programPacked); bool ValidateDeleteRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffersPacked); -bool ValidateDeleteShader(const Context *context, ShaderProgramID shaderPacked); -bool ValidateDeleteTextures(const Context *context, GLsizei n, const TextureID *texturesPacked); -bool ValidateDepthFunc(const Context *context, GLenum func); -bool ValidateDepthMask(const Context *context, GLboolean flag); -bool ValidateDepthRangef(const Context *context, GLfloat n, GLfloat f); +bool ValidateDeleteShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID shaderPacked); +bool ValidateDeleteTextures(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const TextureID *texturesPacked); +bool ValidateDepthFunc(const Context *context, angle::EntryPoint entryPoint, GLenum func); +bool ValidateDepthMask(const Context *context, angle::EntryPoint entryPoint, GLboolean flag); +bool ValidateDepthRangef(const Context *context, + angle::EntryPoint entryPoint, + GLfloat n, + GLfloat f); bool ValidateDetachShader(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, ShaderProgramID shaderPacked); -bool ValidateDisable(const Context *context, GLenum cap); -bool ValidateDisableVertexAttribArray(const Context *context, GLuint index); +bool ValidateDisable(const Context *context, angle::EntryPoint entryPoint, GLenum cap); +bool ValidateDisableVertexAttribArray(const Context *context, + angle::EntryPoint entryPoint, + GLuint index); bool ValidateDrawArrays(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint first, GLsizei count); bool ValidateDrawElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices); -bool ValidateEnable(const Context *context, GLenum cap); -bool ValidateEnableVertexAttribArray(const Context *context, GLuint index); -bool ValidateFinish(const Context *context); -bool ValidateFlush(const Context *context); +bool ValidateEnable(const Context *context, angle::EntryPoint entryPoint, GLenum cap); +bool ValidateEnableVertexAttribArray(const Context *context, + angle::EntryPoint entryPoint, + GLuint index); +bool ValidateFinish(const Context *context, angle::EntryPoint entryPoint); +bool ValidateFlush(const Context *context, angle::EntryPoint entryPoint); bool ValidateFramebufferRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbufferPacked); bool ValidateFramebufferTexture2D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level); -bool ValidateFrontFace(const Context *context, GLenum mode); -bool ValidateGenBuffers(const Context *context, GLsizei n, const BufferID *buffersPacked); +bool ValidateFrontFace(const Context *context, angle::EntryPoint entryPoint, GLenum mode); +bool ValidateGenBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const BufferID *buffersPacked); bool ValidateGenFramebuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffersPacked); bool ValidateGenRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffersPacked); -bool ValidateGenTextures(const Context *context, GLsizei n, const TextureID *texturesPacked); -bool ValidateGenerateMipmap(const Context *context, TextureType targetPacked); +bool ValidateGenTextures(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const TextureID *texturesPacked); +bool ValidateGenerateMipmap(const Context *context, + angle::EntryPoint entryPoint, + TextureType targetPacked); bool ValidateGetActiveAttrib(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint *size, const GLenum *type, const GLchar *name); bool ValidateGetActiveUniform(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint *size, const GLenum *type, const GLchar *name); bool ValidateGetAttachedShaders(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei maxCount, const GLsizei *count, const ShaderProgramID *shadersPacked); bool ValidateGetAttribLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *name); -bool ValidateGetBooleanv(const Context *context, GLenum pname, const GLboolean *data); +bool ValidateGetBooleanv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLboolean *data); bool ValidateGetBufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, const GLint *params); -bool ValidateGetError(const Context *context); -bool ValidateGetFloatv(const Context *context, GLenum pname, const GLfloat *data); +bool ValidateGetError(const Context *context, angle::EntryPoint entryPoint); +bool ValidateGetFloatv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *data); bool ValidateGetFramebufferAttachmentParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, const GLint *params); -bool ValidateGetIntegerv(const Context *context, GLenum pname, const GLint *data); +bool ValidateGetIntegerv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *data); bool ValidateGetProgramInfoLog(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog); bool ValidateGetProgramiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, const GLint *params); bool ValidateGetRenderbufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params); bool ValidateGetShaderInfoLog(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog); bool ValidateGetShaderPrecisionFormat(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLenum precisiontype, const GLint *range, const GLint *precision); bool ValidateGetShaderSource(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLsizei bufSize, const GLsizei *length, const GLchar *source); bool ValidateGetShaderiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLenum pname, const GLint *params); -bool ValidateGetString(const Context *context, GLenum name); +bool ValidateGetString(const Context *context, angle::EntryPoint entryPoint, GLenum name); bool ValidateGetTexParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLfloat *params); bool ValidateGetTexParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateGetUniformLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *name); bool ValidateGetUniformfv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, const GLfloat *params); bool ValidateGetUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, const GLint *params); bool ValidateGetVertexAttribPointerv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, void *const *pointer); bool ValidateGetVertexAttribfv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLfloat *params); bool ValidateGetVertexAttribiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLint *params); -bool ValidateHint(const Context *context, GLenum target, GLenum mode); -bool ValidateIsBuffer(const Context *context, BufferID bufferPacked); -bool ValidateIsEnabled(const Context *context, GLenum cap); -bool ValidateIsFramebuffer(const Context *context, FramebufferID framebufferPacked); -bool ValidateIsProgram(const Context *context, ShaderProgramID programPacked); -bool ValidateIsRenderbuffer(const Context *context, RenderbufferID renderbufferPacked); -bool ValidateIsShader(const Context *context, ShaderProgramID shaderPacked); -bool ValidateIsTexture(const Context *context, TextureID texturePacked); -bool ValidateLineWidth(const Context *context, GLfloat width); -bool ValidateLinkProgram(const Context *context, ShaderProgramID programPacked); -bool ValidatePixelStorei(const Context *context, GLenum pname, GLint param); -bool ValidatePolygonOffset(const Context *context, GLfloat factor, GLfloat units); +bool ValidateHint(const Context *context, angle::EntryPoint entryPoint, GLenum target, GLenum mode); +bool ValidateIsBuffer(const Context *context, angle::EntryPoint entryPoint, BufferID bufferPacked); +bool ValidateIsEnabled(const Context *context, angle::EntryPoint entryPoint, GLenum cap); +bool ValidateIsFramebuffer(const Context *context, + angle::EntryPoint entryPoint, + FramebufferID framebufferPacked); +bool ValidateIsProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID programPacked); +bool ValidateIsRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, + RenderbufferID renderbufferPacked); +bool ValidateIsShader(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID shaderPacked); +bool ValidateIsTexture(const Context *context, + angle::EntryPoint entryPoint, + TextureID texturePacked); +bool ValidateLineWidth(const Context *context, angle::EntryPoint entryPoint, GLfloat width); +bool ValidateLinkProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID programPacked); +bool ValidatePixelStorei(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param); +bool ValidatePolygonOffset(const Context *context, + angle::EntryPoint entryPoint, + GLfloat factor, + GLfloat units); bool ValidateReadPixels(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -bool ValidateReleaseShaderCompiler(const Context *context); +bool ValidateReleaseShaderCompiler(const Context *context, angle::EntryPoint entryPoint); bool ValidateRenderbufferStorage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -bool ValidateSampleCoverage(const Context *context, GLfloat value, GLboolean invert); -bool ValidateScissor(const Context *context, GLint x, GLint y, GLsizei width, GLsizei height); +bool ValidateSampleCoverage(const Context *context, + angle::EntryPoint entryPoint, + GLfloat value, + GLboolean invert); +bool ValidateScissor(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLsizei width, + GLsizei height); bool ValidateShaderBinary(const Context *context, + angle::EntryPoint entryPoint, GLsizei count, const ShaderProgramID *shadersPacked, GLenum binaryformat, const void *binary, GLsizei length); bool ValidateShaderSource(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLsizei count, const GLchar *const *string, const GLint *length); -bool ValidateStencilFunc(const Context *context, GLenum func, GLint ref, GLuint mask); +bool ValidateStencilFunc(const Context *context, + angle::EntryPoint entryPoint, + GLenum func, + GLint ref, + GLuint mask); bool ValidateStencilFuncSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum face, GLenum func, GLint ref, GLuint mask); -bool ValidateStencilMask(const Context *context, GLuint mask); -bool ValidateStencilMaskSeparate(const Context *context, GLenum face, GLuint mask); -bool ValidateStencilOp(const Context *context, GLenum fail, GLenum zfail, GLenum zpass); +bool ValidateStencilMask(const Context *context, angle::EntryPoint entryPoint, GLuint mask); +bool ValidateStencilMaskSeparate(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLuint mask); +bool ValidateStencilOp(const Context *context, + angle::EntryPoint entryPoint, + GLenum fail, + GLenum zfail, + GLenum zpass); bool ValidateStencilOpSeparate(const Context *context, + angle::EntryPoint entryPoint, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); bool ValidateTexImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); bool ValidateTexParameterf(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLfloat param); bool ValidateTexParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLfloat *params); bool ValidateTexParameteri(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLint param); bool ValidateTexParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateTexSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -bool ValidateUniform1f(const Context *context, UniformLocation locationPacked, GLfloat v0); +bool ValidateUniform1f(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation locationPacked, + GLfloat v0); bool ValidateUniform1fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLfloat *value); -bool ValidateUniform1i(const Context *context, UniformLocation locationPacked, GLint v0); +bool ValidateUniform1i(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation locationPacked, + GLint v0); bool ValidateUniform1iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateUniform2f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLfloat v0, GLfloat v1); bool ValidateUniform2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLfloat *value); -bool ValidateUniform2i(const Context *context, UniformLocation locationPacked, GLint v0, GLint v1); +bool ValidateUniform2i(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation locationPacked, + GLint v0, + GLint v1); bool ValidateUniform2iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateUniform3f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2); bool ValidateUniform3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateUniform3i(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2); bool ValidateUniform3iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateUniform4f(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); bool ValidateUniform4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateUniform4i(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3); bool ValidateUniform4iv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateUniformMatrix2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); -bool ValidateUseProgram(const Context *context, ShaderProgramID programPacked); -bool ValidateValidateProgram(const Context *context, ShaderProgramID programPacked); -bool ValidateVertexAttrib1f(const Context *context, GLuint index, GLfloat x); -bool ValidateVertexAttrib1fv(const Context *context, GLuint index, const GLfloat *v); -bool ValidateVertexAttrib2f(const Context *context, GLuint index, GLfloat x, GLfloat y); -bool ValidateVertexAttrib2fv(const Context *context, GLuint index, const GLfloat *v); -bool ValidateVertexAttrib3f(const Context *context, GLuint index, GLfloat x, GLfloat y, GLfloat z); -bool ValidateVertexAttrib3fv(const Context *context, GLuint index, const GLfloat *v); +bool ValidateUseProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID programPacked); +bool ValidateValidateProgram(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID programPacked); +bool ValidateVertexAttrib1f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x); +bool ValidateVertexAttrib1fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v); +bool ValidateVertexAttrib2f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x, + GLfloat y); +bool ValidateVertexAttrib2fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v); +bool ValidateVertexAttrib3f(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateVertexAttrib3fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v); bool ValidateVertexAttrib4f(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -bool ValidateVertexAttrib4fv(const Context *context, GLuint index, const GLfloat *v); +bool ValidateVertexAttrib4fv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v); bool ValidateVertexAttribPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType typePacked, GLboolean normalized, GLsizei stride, const void *pointer); -bool ValidateViewport(const Context *context, GLint x, GLint y, GLsizei width, GLsizei height); +bool ValidateViewport(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLsizei width, + GLsizei height); } // namespace gl #endif // LIBANGLE_VALIDATION_ES2_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationES3.h b/gfx/angle/checkout/src/libANGLE/validationES3.h --- a/gfx/angle/checkout/src/libANGLE/validationES3.h +++ b/gfx/angle/checkout/src/libANGLE/validationES3.h @@ -13,10 +13,11 @@ #include "libANGLE/validationES3_autogen.h" namespace gl { bool ValidateES3TexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -31,10 +32,11 @@ GLenum type, GLsizei imageSize, const void *pixels); bool ValidateProgramParameteriBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLint value); } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationES3.cpp b/gfx/angle/checkout/src/libANGLE/validationES3.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES3.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES3.cpp @@ -28,142 +28,147 @@ using namespace err; namespace { bool ValidateFramebufferTextureMultiviewBaseANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level, GLsizei numViews) { - if (!(context->getExtensions().multiview || context->getExtensions().multiview2)) - { - context->validationError(GL_INVALID_OPERATION, kMultiviewNotAvailable); - return false; - } - - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + if (!(context->getExtensions().multiviewOVR || context->getExtensions().multiview2OVR)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kMultiviewNotAvailable); + return false; + } + + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } if (texture.value != 0 && numViews < 1) { - context->validationError(GL_INVALID_VALUE, kMultiviewViewsTooSmall); - return false; - } - - const Extensions &extensions = context->getExtensions(); - if (static_cast(numViews) > extensions.maxViews) - { - context->validationError(GL_INVALID_VALUE, kMultiviewViewsTooLarge); + context->validationError(entryPoint, GL_INVALID_VALUE, kMultiviewViewsTooSmall); + return false; + } + + if (static_cast(numViews) > context->getCaps().maxViews) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kMultiviewViewsTooLarge); return false; } return true; } bool ValidateFramebufferTextureMultiviewLevelAndFormat(const Context *context, + angle::EntryPoint entryPoint, const Texture *texture, GLint level) { TextureType type = texture->getType(); if (!ValidMipLevel(context, type, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } const auto &format = texture->getFormat(NonCubeTextureTypeToTarget(type), level); if (format.info->compressed) { - context->validationError(GL_INVALID_OPERATION, kCompressedTexturesNotAttachable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kCompressedTexturesNotAttachable); return false; } return true; } bool ValidateUniformES3(const Context *context, + angle::EntryPoint entryPoint, GLenum uniformType, UniformLocation location, GLint count) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateUniform(context, uniformType, location, count); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateUniform(context, entryPoint, uniformType, location, count); } bool ValidateUniformMatrixES3(const Context *context, + angle::EntryPoint entryPoint, GLenum valueType, UniformLocation location, GLsizei count, GLboolean transpose) { // Check for ES3 uniform entry points if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateUniformMatrix(context, valueType, location, count, transpose); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateUniformMatrix(context, entryPoint, valueType, location, count, transpose); } -bool ValidateGenOrDeleteES3(const Context *context, GLint n) +bool ValidateGenOrDeleteES3(const Context *context, angle::EntryPoint entryPoint, GLint n) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateGenOrDelete(context, n); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateGenOrDelete(context, entryPoint, n); } -bool ValidateGenOrDeleteCountES3(const Context *context, GLint count) +bool ValidateGenOrDeleteCountES3(const Context *context, angle::EntryPoint entryPoint, GLint count) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (count < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } return true; } bool ValidateCopyTexture3DCommon(const Context *context, + angle::EntryPoint entryPoint, const Texture *source, GLint sourceLevel, GLint srcInternalFormat, const Texture *dest, GLint destLevel, GLint internalFormat, TextureTarget destTarget) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!context->getExtensions().copyTexture3d) - { - context->validationError(GL_INVALID_OPERATION, kANGLECopyTexture3DUnavailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!context->getExtensions().copyTexture3dANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kANGLECopyTexture3DUnavailable); return false; } if (!ValidTexture3DTarget(context, source->getType())) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } // Table 1.1 from the ANGLE_copy_texture_3d spec switch (GetUnsizedFormat(srcInternalFormat)) @@ -181,17 +186,17 @@ case GL_RGBA_INTEGER: case GL_DEPTH_COMPONENT: case GL_DEPTH_STENCIL: break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } if (!ValidTexture3DTarget(context, TextureTargetToType(destTarget))) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } // Table 1.0 from the ANGLE_copy_texture_3d spec switch (internalFormat) @@ -251,19 +256,20 @@ case GL_RGBA16I: case GL_RGBA32I: case GL_RGBA32UI: break; default: - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } return true; } } // anonymous namespace static bool ValidateTexImageFormatCombination(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalFormat, GLenum format, GLenum type) { @@ -271,120 +277,183 @@ if (context->getClientType() == EGL_OPENGL_API) { // The type and format are valid if any supported internal format has that type and format if (!ValidDesktopFormat(format)) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } if (!ValidDesktopType(type)) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } } else { - // The type and format are valid if any supported internal format has that type and format - if (!ValidES3Format(format)) + // The type and format are valid if any supported internal format has that type and format. + // ANGLE_texture_external_yuv_sampling extension adds support for YUV formats + if (gl::IsYuvFormat(format)) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); - return false; + if (!context->getExtensions().yuvInternalFormatANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + } + else + { + if (!ValidES3Format(format)) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } } if (!ValidES3Type(type)) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } } // For historical reasons, glTexImage2D and glTexImage3D pass in their internal format as a // GLint instead of a GLenum. Therefor an invalid internal format gives a GL_INVALID_VALUE // error instead of a GL_INVALID_ENUM error. As this validation function is only called in // the validation codepaths for glTexImage2D/3D, we record a GL_INVALID_VALUE error. if (!ValidES3InternalFormat(internalFormat)) { - context->validationError(GL_INVALID_VALUE, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidInternalFormat); return false; } // From the ES 3.0 spec section 3.8.3: // Textures with a base internal format of DEPTH_COMPONENT or DEPTH_STENCIL are supported by // texture image specification commands only if target is TEXTURE_2D, TEXTURE_2D_ARRAY, or // TEXTURE_CUBE_MAP.Using these formats in conjunction with any other target will result in an // INVALID_OPERATION error. if (target == TextureType::_3D && (format == GL_DEPTH_COMPONENT || format == GL_DEPTH_STENCIL)) { - context->validationError(GL_INVALID_OPERATION, k3DDepthStencil); + context->validationError(entryPoint, GL_INVALID_OPERATION, k3DDepthStencil); return false; } if (context->getClientType() == EGL_OPENGL_API) { // Check if this is a valid format combination to load texture data if (!ValidDesktopFormatCombination(format, type, internalFormat)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormatCombination); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormatCombination); return false; } } else { // Check if this is a valid format combination to load texture data - if (!ValidES3FormatCombination(format, type, internalFormat)) + // ANGLE_texture_external_yuv_sampling extension adds support for YUV formats + if (gl::IsYuvFormat(format)) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormatCombination); - return false; + if (type != GL_UNSIGNED_BYTE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidFormatCombination); + return false; + } + } + else + { + if (!ValidES3FormatCombination(format, type, internalFormat)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidFormatCombination); + return false; + } } } const InternalFormat &formatInfo = GetInternalFormatInfo(internalFormat, type); if (!formatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } return true; } -static bool ValidateES3CompressedFormatForTexture3D(const Context *context, GLenum format) +static bool ValidateES3CompressedFormatForTexture2DArray(const Context *context, + angle::EntryPoint entryPoint, + GLenum format) { + if (IsETC1Format(format) || IsPVRTC1Format(format)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2D); + return false; + } + + return true; +} + +static bool ValidateES3CompressedFormatForTexture3D(const Context *context, + angle::EntryPoint entryPoint, + GLenum format) +{ + if (IsETC1Format(format) || IsPVRTC1Format(format)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2D); + return false; + } + if (IsETC2EACFormat(format)) { // ES 3.1, Section 8.7, page 169. - context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArray); - return false; - } - - if (IsASTC2DFormat(format) && !(context->getExtensions().textureCompressionASTCHDRKHR || - context->getExtensions().textureCompressionSliced3dASTCKHR)) + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2DArray); + return false; + } + + if (IsASTC2DFormat(format) && !(context->getExtensions().textureCompressionAstcHdrKHR || + context->getExtensions().textureCompressionAstcSliced3dKHR)) { // GL_KHR_texture_compression_astc_hdr, TEXTURE_3D is not supported without HDR profile - context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArrayASTC); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2DArrayASTC); return false; } if (IsS3TCFormat(format)) { // GL_EXT_texture_compression_s3tc - context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArrayS3TC); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2DArrayS3TC); return false; } if (IsRGTCFormat(format)) { // GL_EXT_texture_compression_rgtc - context->validationError(GL_INVALID_OPERATION, kInternalFormatRequiresTexture2DArrayRGTC); - return false; - } + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2DArrayRGTC); + return false; + } + + if (IsBPTCFormat(format) && (context->getLimitations().noCompressedTexture3D)) + { + // GL_EXT_texture_compression_bptc + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInternalFormatRequiresTexture2DArrayBPTC); + return false; + } + return true; } bool ValidateES3TexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -400,35 +469,59 @@ GLsizei imageSize, const void *pixels) { TextureType texType = TextureTargetToType(target); + if (gl::IsYuvFormat(format)) + { + // According to ANGLE_yuv_internal_format, the texture needs to be an immutable + // texture, texture target can only be TEXTURE_2D and there is no mipmap support + if (!context->getExtensions().yuvInternalFormatANGLE || !isSubImage) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + + if (target != TextureTarget::_2D) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + if (level != 0) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + } + // Validate image size - if (!ValidImageSizeParameters(context, texType, level, width, height, depth, isSubImage)) + if (!ValidImageSizeParameters(context, entryPoint, texType, level, width, height, depth, + isSubImage)) { // Error already processed. return false; } // Verify zero border if (border != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidBorder); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBorder); return false; } if (xoffset < 0 || yoffset < 0 || zoffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (std::numeric_limits::max() - xoffset < width || std::numeric_limits::max() - yoffset < height || std::numeric_limits::max() - zoffset < depth) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } const Caps &caps = context->getCaps(); @@ -438,237 +531,257 @@ case TextureType::External: case TextureType::VideoImage: if (width > (caps.max2DTextureSize >> level) || height > (caps.max2DTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::Rectangle: ASSERT(level == 0); if (width > caps.maxRectangleTextureSize || height > caps.maxRectangleTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (isCompressed) { - context->validationError(GL_INVALID_ENUM, kRectangleTextureCompressed); + context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed); return false; } break; case TextureType::CubeMap: if (!isSubImage && width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCubemapFacesEqualDimensions); return false; } if (width > (caps.maxCubeMapTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::_3D: if (width > (caps.max3DTextureSize >> level) || height > (caps.max3DTextureSize >> level) || depth > (caps.max3DTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::_2DArray: if (width > (caps.max2DTextureSize >> level) || height > (caps.max2DTextureSize >> level) || depth > caps.maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } break; case TextureType::CubeMapArray: if (!isSubImage && width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCubemapFacesEqualDimensions); return false; } if (width > (caps.maxCubeMapTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (width > (caps.max3DTextureSize >> level) || height > (caps.max3DTextureSize >> level) || depth > (caps.max3DTextureSize >> level)) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (!isSubImage && depth % 6 != 0) { - context->validationError(GL_INVALID_VALUE, kCubemapInvalidDepth); + context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapInvalidDepth); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } Texture *texture = context->getTextureByType(texType); if (!texture) { - context->validationError(GL_INVALID_OPERATION, kMissingTexture); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingTexture); return false; } if (texture->getImmutableFormat() && !isSubImage) { - context->validationError(GL_INVALID_OPERATION, kTextureIsImmutable); - return false; - } - - if (isCompressed && texType == TextureType::_3D) - { - GLenum compressedDataFormat = isSubImage ? format : internalformat; - if (!ValidateES3CompressedFormatForTexture3D(context, compressedDataFormat)) - { - // Error already generated. - return false; - } + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsImmutable); + return false; } // Validate texture formats GLenum actualInternalFormat = isSubImage ? texture->getFormat(target, level).info->internalFormat : internalformat; if (isSubImage && actualInternalFormat == GL_NONE) { - context->validationError(GL_INVALID_OPERATION, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidMipLevel); return false; } const InternalFormat &actualFormatInfo = isSubImage ? *texture->getFormat(target, level).info : GetInternalFormatInfo(internalformat, type); if (isCompressed) { - if (!actualFormatInfo.compressed) + // compressedTexSubImage does not generate GL_INVALID_ENUM when format is unknown or invalid + if (!isSubImage) { - context->validationError(GL_INVALID_ENUM, kCompressedMismatch); - return false; + if (!actualFormatInfo.compressed) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kCompressedMismatch); + return false; + } + + if (!actualFormatInfo.textureSupport(context->getClientVersion(), + context->getExtensions())) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + } + + if (texType == TextureType::_2DArray) + { + GLenum compressedDataFormat = isSubImage ? format : internalformat; + if (!ValidateES3CompressedFormatForTexture2DArray(context, entryPoint, + compressedDataFormat)) + { + // Error already generated. + return false; + } + } + + if (texType == TextureType::_3D) + { + GLenum compressedDataFormat = isSubImage ? format : internalformat; + if (!ValidateES3CompressedFormatForTexture3D(context, entryPoint, compressedDataFormat)) + { + // Error already generated. + return false; + } } if (isSubImage) { if (!ValidCompressedSubImageSize( context, actualFormatInfo.internalFormat, xoffset, yoffset, zoffset, width, height, depth, texture->getWidth(target, level), texture->getHeight(target, level), texture->getDepth(target, level))) { - context->validationError(GL_INVALID_OPERATION, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidCompressedImageSize); return false; } if (format != actualInternalFormat) { - context->validationError(GL_INVALID_OPERATION, kMismatchedFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMismatchedFormat); return false; } // GL_EXT_compressed_ETC1_RGB8_sub_texture allows this format if (actualInternalFormat == GL_ETC1_RGB8_OES && - !context->getExtensions().compressedETC1RGB8SubTexture) + !context->getExtensions().compressedETC1RGB8SubTextureEXT) { - context->validationError(GL_INVALID_OPERATION, kInvalidInternalFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat); return false; } } else { if (!ValidCompressedImageSize(context, actualInternalFormat, level, width, height, depth)) { - context->validationError(GL_INVALID_OPERATION, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidCompressedImageSize); return false; } } - if (!actualFormatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) - { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); - return false; - } - // Disallow 3D-only compressed formats from being set on 2D textures if (actualFormatInfo.compressedBlockDepth > 1 && texType != TextureType::_2DArray) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureTarget); return false; } } else { - if (!ValidateTexImageFormatCombination(context, texType, actualInternalFormat, format, - type)) + if (!ValidateTexImageFormatCombination(context, entryPoint, texType, actualInternalFormat, + format, type)) { return false; } } // Validate sub image parameters if (isSubImage) { if (isCompressed != actualFormatInfo.compressed) { - context->validationError(GL_INVALID_OPERATION, kCompressedMismatch); + context->validationError(entryPoint, GL_INVALID_OPERATION, kCompressedMismatch); return false; } if (xoffset < 0 || yoffset < 0 || zoffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (std::numeric_limits::max() - xoffset < width || std::numeric_limits::max() - yoffset < height || std::numeric_limits::max() - zoffset < depth) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } if (static_cast(xoffset + width) > texture->getWidth(target, level) || static_cast(yoffset + height) > texture->getHeight(target, level) || static_cast(zoffset + depth) > texture->getDepth(target, level)) { - context->validationError(GL_INVALID_VALUE, kOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetOverflow); return false; } if (width > 0 && height > 0 && depth > 0 && pixels == nullptr && context->getState().getTargetBuffer(BufferBinding::PixelUnpack) == nullptr) { - context->validationError(GL_INVALID_VALUE, kPixelDataNull); + context->validationError(entryPoint, GL_INVALID_VALUE, kPixelDataNull); return false; } } GLenum sizeCheckFormat = isSubImage ? format : internalformat; - if (!ValidImageDataSize(context, texType, width, height, depth, sizeCheckFormat, type, pixels, - imageSize)) + if (!ValidImageDataSize(context, entryPoint, texType, width, height, depth, sizeCheckFormat, + type, pixels, imageSize)) { return false; } // Check for pixel unpack buffer related API errors @@ -683,24 +796,24 @@ size_t offset = reinterpret_cast(pixels); size_t dataBytesPerPixel = static_cast(GetTypeInfo(type).bytes); if ((offset % dataBytesPerPixel) != 0) { - context->validationError(GL_INVALID_OPERATION, kDataTypeNotAligned); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDataTypeNotAligned); return false; } } // ...the buffer object's data store is currently mapped. if (pixelUnpackBuffer->isMapped()) { - context->validationError(GL_INVALID_OPERATION, kBufferMapped); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped); return false; } } - if (context->getExtensions().webglCompatibility) + if (context->getExtensions().webglCompatibilityANGLE) { // Define: // DataStoreWidth = (GL_UNPACK_ROW_LENGTH ? GL_UNPACK_ROW_LENGTH : width) // DataStoreHeight = (GL_UNPACK_IMAGE_HEIGHT ? GL_UNPACK_IMAGE_HEIGHT : height) // @@ -724,19 +837,20 @@ { const auto &unpack = context->getState().getUnpackState(); GLint dataStoreWidth = unpack.rowLength ? unpack.rowLength : width; if (unpack.skipPixels + width > dataStoreWidth) { - context->validationError(GL_INVALID_OPERATION, kInvalidUnpackParametersForWebGL); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidUnpackParametersForWebGL); return false; } if (target == TextureTarget::_3D || target == TextureTarget::_2DArray) { GLint dataStoreHeight = unpack.imageHeight ? unpack.imageHeight : height; if (unpack.skipRows + height > dataStoreHeight) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidUnpackParametersForWebGL); return false; } } } @@ -744,10 +858,11 @@ return true; } bool ValidateES3TexImage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -763,20 +878,21 @@ GLsizei imageSize, const void *pixels) { if (!ValidTexture2DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3TexImageParametersBase(context, target, level, internalformat, isCompressed, - isSubImage, xoffset, yoffset, zoffset, width, height, - depth, border, format, type, imageSize, pixels); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3TexImageParametersBase( + context, entryPoint, target, level, internalformat, isCompressed, isSubImage, xoffset, + yoffset, zoffset, width, height, depth, border, format, type, imageSize, pixels); } bool ValidateES3TexImage3DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, @@ -792,17 +908,17 @@ GLsizei bufSize, const void *pixels) { if (!ValidTexture3DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3TexImageParametersBase(context, target, level, internalformat, isCompressed, - isSubImage, xoffset, yoffset, zoffset, width, height, - depth, border, format, type, bufSize, pixels); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3TexImageParametersBase( + context, entryPoint, target, level, internalformat, isCompressed, isSubImage, xoffset, + yoffset, zoffset, width, height, depth, border, format, type, bufSize, pixels); } struct EffectiveInternalFormatInfo { GLenum effectiveFormat; @@ -1059,10 +1175,11 @@ return true; // A conversion function exists, and no rule in the specification has precluded // conversion between these formats. } bool ValidateES3CopyTexImageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -1073,71 +1190,72 @@ GLsizei width, GLsizei height, GLint border) { Format textureFormat = Format::Invalid(); - if (!ValidateCopyTexImageParametersBase(context, target, level, internalformat, isSubImage, - xoffset, yoffset, zoffset, x, y, width, height, border, - &textureFormat)) + if (!ValidateCopyTexImageParametersBase(context, entryPoint, target, level, internalformat, + isSubImage, xoffset, yoffset, zoffset, x, y, width, + height, border, &textureFormat)) { return false; } ASSERT(textureFormat.valid() || !isSubImage); const auto &state = context->getState(); Framebuffer *framebuffer = state.getReadFramebuffer(); FramebufferID readFramebufferID = framebuffer->id(); - if (!ValidateFramebufferComplete(context, framebuffer)) + if (!ValidateFramebufferComplete(context, entryPoint, framebuffer)) { return false; } // needIntrinsic = true. Treat renderToTexture textures as single sample since they will be // resolved before copying if (!framebuffer->isDefault() && - !ValidateFramebufferNotMultisampled(context, framebuffer, true)) + !ValidateFramebufferNotMultisampled(context, entryPoint, framebuffer, true)) { return false; } const FramebufferAttachment *source = framebuffer->getReadColorAttachment(); // According to ES 3.x spec, if the internalformat of the texture // is RGB9_E5 and copy to such a texture, generate INVALID_OPERATION. if (textureFormat.info->internalFormat == GL_RGB9_E5) { - context->validationError(GL_INVALID_OPERATION, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormat); return false; } if (isSubImage) { if (!IsValidES3CopyTexImageCombination(*textureFormat.info, *source->getFormat().info, readFramebufferID)) { - context->validationError(GL_INVALID_OPERATION, kInvalidCopyCombination); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidCopyCombination); return false; } } else { // Use format/type from the source FBO. (Might not be perfect for all cases?) const InternalFormat &framebufferFormat = *source->getFormat().info; const InternalFormat ©Format = GetInternalFormatInfo(internalformat, GL_UNSIGNED_BYTE); if (!IsValidES3CopyTexImageCombination(copyFormat, framebufferFormat, readFramebufferID)) { - context->validationError(GL_INVALID_OPERATION, kInvalidCopyCombination); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidCopyCombination); return false; } } // If width or height is zero, it is a no-op. Return false without setting an error. return (width > 0 && height > 0); } bool ValidateES3CopyTexImage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -1149,20 +1267,21 @@ GLsizei height, GLint border) { if (!ValidTexture2DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3CopyTexImageParametersBase(context, target, level, internalformat, isSubImage, - xoffset, yoffset, zoffset, x, y, width, height, - border); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3CopyTexImageParametersBase(context, entryPoint, target, level, internalformat, + isSubImage, xoffset, yoffset, zoffset, x, y, width, + height, border); } bool ValidateES3CopyTexImage3DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, @@ -1174,30 +1293,31 @@ GLsizei height, GLint border) { if (!ValidTexture3DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3CopyTexImageParametersBase(context, target, level, internalformat, isSubImage, - xoffset, yoffset, zoffset, x, y, width, height, - border); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3CopyTexImageParametersBase(context, entryPoint, target, level, internalformat, + isSubImage, xoffset, yoffset, zoffset, x, y, width, + height, border); } bool ValidateES3TexStorageParametersBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { if (width < 1 || height < 1 || depth < 1 || levels < 1) { - context->validationError(GL_INVALID_VALUE, kTextureSizeTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureSizeTooSmall); return false; } GLsizei maxDim = std::max(width, height); if (target != TextureType::_2DArray) @@ -1205,106 +1325,131 @@ maxDim = std::max(maxDim, depth); } if (levels > log2(maxDim) + 1) { - context->validationError(GL_INVALID_OPERATION, kInvalidMipLevels); - return false; + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidMipLevels); + return false; + } + + // From ANGLE_texture_external_yuv_sampling: + // Texture target can only be TEXTURE_2D, there is no mipmap support + if (gl::IsYuvFormat(internalformat)) + { + if (!context->getExtensions().yuvInternalFormatANGLE) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + + if (target != TextureType::_2D) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + if (levels != 1) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } } const Caps &caps = context->getCaps(); switch (target) { case TextureType::_2D: { if (width > caps.max2DTextureSize || height > caps.max2DTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } break; case TextureType::Rectangle: { if (levels != 1) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevels); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevels); return false; } if (width > caps.maxRectangleTextureSize || height > caps.maxRectangleTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } break; case TextureType::CubeMap: { if (width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCubemapFacesEqualDimensions); return false; } if (width > caps.maxCubeMapTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } break; case TextureType::_3D: { if (width > caps.max3DTextureSize || height > caps.max3DTextureSize || depth > caps.max3DTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } break; case TextureType::_2DArray: { if (width > caps.max2DTextureSize || height > caps.max2DTextureSize || depth > caps.maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } } break; case TextureType::CubeMapArray: { if (width != height) { - context->validationError(GL_INVALID_VALUE, kCubemapFacesEqualDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kCubemapFacesEqualDimensions); return false; } if (width > caps.maxCubeMapTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (width > caps.max3DTextureSize || height > caps.max3DTextureSize || depth > caps.max3DTextureSize) { - context->validationError(GL_INVALID_VALUE, kResourceMaxTextureSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize); return false; } if (depth % 6 != 0) { - context->validationError(GL_INVALID_VALUE, kCubemapInvalidDepth); + context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapInvalidDepth); return false; } } break; @@ -1314,158 +1459,189 @@ } Texture *texture = context->getTextureByType(target); if (!texture || texture->id().value == 0) { - context->validationError(GL_INVALID_OPERATION, kMissingTexture); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMissingTexture); return false; } if (texture->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kTextureIsImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsImmutable); return false; } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalformat); if (!formatInfo.textureSupport(context->getClientVersion(), context->getExtensions())) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } if (!formatInfo.sized) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); - return false; - } - - if (formatInfo.compressed && target == TextureType::Rectangle) - { - context->validationError(GL_INVALID_ENUM, kRectangleTextureCompressed); - return false; - } - - if (formatInfo.compressed && target == TextureType::_3D) - { - if (!ValidateES3CompressedFormatForTexture3D(context, formatInfo.internalFormat)) + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); + return false; + } + + if (formatInfo.compressed) + { + if (target == TextureType::Rectangle) + { + context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed); + return false; + } + + if (target == TextureType::_2DArray) { - // Error already generated. + if (!ValidateES3CompressedFormatForTexture2DArray(context, entryPoint, + formatInfo.internalFormat)) + { + // Error already generated. + return false; + } + } + + if (target == TextureType::_3D) + { + if (!ValidateES3CompressedFormatForTexture3D(context, entryPoint, + formatInfo.internalFormat)) + { + // Error already generated. + return false; + } + } + + if (!ValidCompressedImageSize(context, formatInfo.internalFormat, 0, width, height, depth)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidCompressedImageSize); return false; } } return true; } bool ValidateES3TexStorage2DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { if (!ValidTexture2DTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3TexStorageParametersBase(context, target, levels, internalformat, width, - height, depth); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3TexStorageParametersBase(context, entryPoint, target, levels, internalformat, + width, height, depth); } bool ValidateES3TexStorage3DParameters(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { if (!ValidTexture3DTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); - return false; - } - - return ValidateES3TexStorageParametersBase(context, target, levels, internalformat, width, - height, depth); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); + return false; + } + + return ValidateES3TexStorageParametersBase(context, entryPoint, target, levels, internalformat, + width, height, depth); } -bool ValidateBeginQuery(const Context *context, QueryType target, QueryID id) +bool ValidateBeginQuery(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + QueryID id) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateBeginQueryBase(context, target, id); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateBeginQueryBase(context, entryPoint, target, id); } -bool ValidateEndQuery(const Context *context, QueryType target) +bool ValidateEndQuery(const Context *context, angle::EntryPoint entryPoint, QueryType target) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateEndQueryBase(context, target); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateEndQueryBase(context, entryPoint, target); } -bool ValidateGetQueryiv(const Context *context, QueryType target, GLenum pname, const GLint *params) +bool ValidateGetQueryiv(const Context *context, + angle::EntryPoint entryPoint, + QueryType target, + GLenum pname, + const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateGetQueryivBase(context, target, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateGetQueryivBase(context, entryPoint, target, pname, nullptr); } bool ValidateGetQueryObjectuiv(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateGetQueryObjectValueBase(context, id, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateGetQueryObjectValueBase(context, entryPoint, id, pname, nullptr); } bool ValidateFramebufferTextureLayer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level, GLint layer) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } const Caps &caps = context->getCaps(); if (texture.value != 0) { if (layer < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLayer); return false; } Texture *tex = context->getTexture(texture); ASSERT(tex); @@ -1474,95 +1650,105 @@ { case TextureType::_2DArray: { if (level > log2(caps.max2DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidMipLevel); return false; } if (layer >= caps.maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidLayer); return false; } } break; case TextureType::_3D: { if (level > log2(caps.max3DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidMipLevel); return false; } if (layer >= caps.max3DTextureSize) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidLayer); return false; } } break; case TextureType::_2DMultisampleArray: { if (level != 0) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidMipLevel); return false; } if (layer >= caps.maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidLayer); return false; } } break; case TextureType::CubeMapArray: { if (level > log2(caps.max3DTextureSize)) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidMipLevel); return false; } if (layer >= caps.max3DTextureSize) { - context->validationError(GL_INVALID_VALUE, kFramebufferTextureInvalidLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kFramebufferTextureInvalidLayer); return false; } } break; default: - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kFramebufferTextureLayerIncorrectTextureType); return false; } const auto &format = tex->getFormat(NonCubeTextureTypeToTarget(tex->getType()), level); if (format.info->compressed) { - context->validationError(GL_INVALID_OPERATION, kCompressedTexturesNotAttachable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kCompressedTexturesNotAttachable); return false; } } return true; } bool ValidateInvalidateFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } bool defaultFramebuffer = false; @@ -1574,73 +1760,75 @@ break; case GL_READ_FRAMEBUFFER: defaultFramebuffer = context->getState().getReadFramebuffer()->isDefault(); break; default: - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } - return ValidateDiscardFramebufferBase(context, target, numAttachments, attachments, + return ValidateDiscardFramebufferBase(context, entryPoint, target, numAttachments, attachments, defaultFramebuffer); } bool ValidateInvalidateSubFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height) { if (width < 0 || height < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); - return false; - } - - return ValidateInvalidateFramebuffer(context, target, numAttachments, attachments); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); + return false; + } + + return ValidateInvalidateFramebuffer(context, entryPoint, target, numAttachments, attachments); } -bool ValidateClearBuffer(const Context *context) +bool ValidateClearBuffer(const Context *context, angle::EntryPoint entryPoint) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateFramebufferComplete(context, context->getState().getDrawFramebuffer())) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateFramebufferComplete(context, entryPoint, context->getState().getDrawFramebuffer())) { return false; } return true; } bool ValidateDrawRangeElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLuint start, GLuint end, GLsizei count, DrawElementsType type, const void *indices) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (end < start) { - context->validationError(GL_INVALID_VALUE, kInvalidElementRange); - return false; - } - - if (!ValidateDrawElementsCommon(context, mode, count, type, indices, 0)) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidElementRange); + return false; + } + + if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 0)) { return false; } // Skip range checks for no-op calls. @@ -1651,73 +1839,75 @@ return true; } bool ValidateGetUniformuiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateGetUniformBase(context, program, location); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateGetUniformBase(context, entryPoint, program, location); } -bool ValidateReadBuffer(const Context *context, GLenum src) +bool ValidateReadBuffer(const Context *context, angle::EntryPoint entryPoint, GLenum src) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } const Framebuffer *readFBO = context->getState().getReadFramebuffer(); if (readFBO == nullptr) { - context->validationError(GL_INVALID_OPERATION, kNoReadFramebuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kNoReadFramebuffer); return false; } if (src == GL_NONE) { return true; } if (src != GL_BACK && (src < GL_COLOR_ATTACHMENT0 || src > GL_COLOR_ATTACHMENT31)) { - context->validationError(GL_INVALID_ENUM, kInvalidReadBuffer); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidReadBuffer); return false; } if (readFBO->isDefault()) { if (src != GL_BACK) { - context->validationError(GL_INVALID_OPERATION, kInvalidDefaultReadBuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidDefaultReadBuffer); return false; } } else { GLuint drawBuffer = static_cast(src - GL_COLOR_ATTACHMENT0); if (drawBuffer >= static_cast(context->getCaps().maxColorAttachments)) { - context->validationError(GL_INVALID_OPERATION, kExceedsMaxColorAttachments); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExceedsMaxColorAttachments); return false; } } return true; } bool ValidateCompressedTexImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -1726,67 +1916,68 @@ GLsizei imageSize, const void *data) { if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (!ValidTextureTarget(context, TextureTargetToType(target))) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } // Validate image size - if (!ValidImageSizeParameters(context, TextureTargetToType(target), level, width, height, depth, - false)) + if (!ValidImageSizeParameters(context, entryPoint, TextureTargetToType(target), level, width, + height, depth, false)) { // Error already generated. return false; } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalformat); if (!formatInfo.compressed) { - context->validationError(GL_INVALID_ENUM, kInvalidCompressedFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCompressedFormat); return false; } GLuint blockSize = 0; if (!formatInfo.computeCompressedImageSize(Extents(width, height, depth), &blockSize)) { - context->validationError(GL_INVALID_VALUE, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kIntegerOverflow); return false; } if (imageSize < 0 || static_cast(imageSize) != blockSize) { - context->validationError(GL_INVALID_VALUE, kInvalidCompressedImageSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCompressedImageSize); return false; } // 3D texture target validation if (target != TextureTarget::_3D && target != TextureTarget::_2DArray) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } // validateES3TexImageFormat sets the error code if there is an error - if (!ValidateES3TexImage3DParameters(context, target, level, internalformat, true, false, 0, 0, - 0, width, height, depth, border, GL_NONE, GL_NONE, -1, - data)) + if (!ValidateES3TexImage3DParameters(context, entryPoint, target, level, internalformat, true, + false, 0, 0, 0, width, height, depth, border, GL_NONE, + GL_NONE, -1, data)) { return false; } return true; } bool ValidateCompressedTexImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -1794,285 +1985,306 @@ GLint border, GLsizei imageSize, GLsizei dataSize, const void *data) { - if (!ValidateRobustCompressedTexImageBase(context, imageSize, dataSize)) - { - return false; - } - - return ValidateCompressedTexImage3D(context, target, level, internalformat, width, height, - depth, border, imageSize, data); + if (!ValidateRobustCompressedTexImageBase(context, entryPoint, imageSize, dataSize)) + { + return false; + } + + return ValidateCompressedTexImage3D(context, entryPoint, target, level, internalformat, width, + height, depth, border, imageSize, data); } -bool ValidateBindVertexArray(const Context *context, VertexArrayID array) +bool ValidateBindVertexArray(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID array) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateBindVertexArrayBase(context, array); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateBindVertexArrayBase(context, entryPoint, array); } -bool ValidateIsVertexArray(const Context *context, VertexArrayID array) +bool ValidateIsVertexArray(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID array) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } return true; } static bool ValidateBindBufferCommon(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLuint index, BufferID buffer, GLintptr offset, GLsizeiptr size) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (buffer.value != 0 && offset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (!context->getState().isBindGeneratesResourceEnabled() && !context->isBufferGenerated(buffer)) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } const Caps &caps = context->getCaps(); switch (target) { case BufferBinding::TransformFeedback: { if (index >= static_cast(caps.maxTransformFeedbackSeparateAttributes)) { - context->validationError(GL_INVALID_VALUE, + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsTransformFeedbackBufferBindings); return false; } if (buffer.value != 0 && ((offset % 4) != 0 || (size % 4) != 0)) { - context->validationError(GL_INVALID_VALUE, kOffsetAndSizeAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetAndSizeAlignment); return false; } if (context->getState().isTransformFeedbackActive()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackTargetActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackTargetActive); return false; } break; } case BufferBinding::Uniform: { if (index >= static_cast(caps.maxUniformBufferBindings)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxUniformBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxUniformBufferBindings); return false; } ASSERT(caps.uniformBufferOffsetAlignment); if (buffer.value != 0 && (offset % caps.uniformBufferOffsetAlignment) != 0) { - context->validationError(GL_INVALID_VALUE, kUniformBufferOffsetAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, + kUniformBufferOffsetAlignment); return false; } break; } case BufferBinding::AtomicCounter: { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxAtomicCounterBufferBindings)) { - context->validationError(GL_INVALID_VALUE, + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxAtomicCounterBufferBindings); return false; } if (buffer.value != 0 && (offset % 4) != 0) { - context->validationError(GL_INVALID_VALUE, kOffsetAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetAlignment); return false; } break; } case BufferBinding::ShaderStorage: { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxShaderStorageBufferBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxShaderStorageBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kExceedsMaxShaderStorageBufferBindings); return false; } ASSERT(caps.shaderStorageBufferOffsetAlignment); if (buffer.value != 0 && (offset % caps.shaderStorageBufferOffsetAlignment) != 0) { - context->validationError(GL_INVALID_VALUE, kShaderStorageBufferOffsetAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, + kShaderStorageBufferOffsetAlignment); return false; } break; } case BufferBinding::Texture: { if (!context->getExtensions().textureBufferAny()) { - context->validationError(GL_INVALID_ENUM, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTextureBufferExtensionNotAvailable); return false; } if (index != 0) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxUniformBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxUniformBufferBindings); return false; } if (buffer.value != 0 && (offset % caps.textureBufferOffsetAlignment) != 0) { - context->validationError(GL_INVALID_VALUE, kTextureBufferOffsetAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, + kTextureBufferOffsetAlignment); return false; } break; } default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateBindBufferBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLuint index, BufferID buffer) { - return ValidateBindBufferCommon(context, target, index, buffer, 0, 0); + return ValidateBindBufferCommon(context, entryPoint, target, index, buffer, 0, 0); } bool ValidateBindBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLuint index, BufferID buffer, GLintptr offset, GLsizeiptr size) { if (buffer.value != 0 && size <= 0) { - context->validationError(GL_INVALID_VALUE, kInvalidBindBufferSize); - return false; - } - return ValidateBindBufferCommon(context, target, index, buffer, offset, size); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBindBufferSize); + return false; + } + return ValidateBindBufferCommon(context, entryPoint, target, index, buffer, offset, size); } bool ValidateProgramBinary(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum binaryFormat, const void *binary, GLsizei length) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateProgramBinaryBase(context, program, binaryFormat, binary, length); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateProgramBinaryBase(context, entryPoint, program, binaryFormat, binary, length); } bool ValidateGetProgramBinary(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateGetProgramBinaryBase(context, program, bufSize, length, binaryFormat, binary); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateGetProgramBinaryBase(context, entryPoint, program, bufSize, length, binaryFormat, + binary); } bool ValidateProgramParameteriBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLint value) { - if (GetValidProgram(context, program) == nullptr) + if (GetValidProgram(context, entryPoint, program) == nullptr) { return false; } switch (pname) { case GL_PROGRAM_BINARY_RETRIEVABLE_HINT: if (value != GL_FALSE && value != GL_TRUE) { - context->validationError(GL_INVALID_VALUE, kInvalidBooleanValue); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBooleanValue); return false; } break; case GL_PROGRAM_SEPARABLE: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kES31Required); + context->validationError(entryPoint, GL_INVALID_ENUM, kES31Required); return false; } if (value != GL_FALSE && value != GL_TRUE) { - context->validationError(GL_INVALID_VALUE, kInvalidBooleanValue); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBooleanValue); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } return true; } bool ValidateProgramParameteri(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum pname, GLint value) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateProgramParameteriBase(context, program, pname, value); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateProgramParameteriBase(context, entryPoint, program, pname, value); } bool ValidateBlitFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -2082,167 +2294,181 @@ GLbitfield mask, GLenum filter) { if (context->getClientMajorVersion() < 3 && !context->getExtensions().framebufferBlitNV) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateBlitFramebufferParameters(context, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, - dstX1, dstY1, mask, filter); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateBlitFramebufferParameters(context, entryPoint, srcX0, srcY0, srcX1, srcY1, dstX0, + dstY0, dstX1, dstY1, mask, filter); } bool ValidateClearBufferiv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLint *value) { switch (buffer) { case GL_COLOR: if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } - if (context->getExtensions().webglCompatibility) + if (context->getExtensions().webglCompatibilityANGLE) { constexpr GLenum validComponentTypes[] = {GL_INT}; - if (!ValidateWebGLFramebufferAttachmentClearType( - context, drawbuffer, validComponentTypes, ArraySize(validComponentTypes))) + if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer, + validComponentTypes, + ArraySize(validComponentTypes))) { return false; } } break; case GL_STENCIL: if (drawbuffer != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidDepthStencilDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidDepthStencilDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - return ValidateClearBuffer(context); + return ValidateClearBuffer(context, entryPoint); } bool ValidateClearBufferuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLuint *value) { switch (buffer) { case GL_COLOR: if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } - if (context->getExtensions().webglCompatibility) + if (context->getExtensions().webglCompatibilityANGLE) { constexpr GLenum validComponentTypes[] = {GL_UNSIGNED_INT}; - if (!ValidateWebGLFramebufferAttachmentClearType( - context, drawbuffer, validComponentTypes, ArraySize(validComponentTypes))) + if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer, + validComponentTypes, + ArraySize(validComponentTypes))) { return false; } } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - return ValidateClearBuffer(context); + return ValidateClearBuffer(context, entryPoint); } bool ValidateClearBufferfv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLfloat *value) { switch (buffer) { case GL_COLOR: if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } - if (context->getExtensions().webglCompatibility) + if (context->getExtensions().webglCompatibilityANGLE) { constexpr GLenum validComponentTypes[] = {GL_FLOAT, GL_UNSIGNED_NORMALIZED, GL_SIGNED_NORMALIZED}; - if (!ValidateWebGLFramebufferAttachmentClearType( - context, drawbuffer, validComponentTypes, ArraySize(validComponentTypes))) + if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer, + validComponentTypes, + ArraySize(validComponentTypes))) { return false; } } break; case GL_DEPTH: if (drawbuffer != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidDepthStencilDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidDepthStencilDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - return ValidateClearBuffer(context); + return ValidateClearBuffer(context, entryPoint); } bool ValidateClearBufferfi(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { switch (buffer) { case GL_DEPTH_STENCIL: if (drawbuffer != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidDepthStencilDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidDepthStencilDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - return ValidateClearBuffer(context); + return ValidateClearBuffer(context, entryPoint); } -bool ValidateDrawBuffers(const Context *context, GLsizei n, const GLenum *bufs) +bool ValidateDrawBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateDrawBuffersBase(context, n, bufs); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateDrawBuffersBase(context, entryPoint, n, bufs); } bool ValidateCopyTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2251,19 +2477,20 @@ GLsizei width, GLsizei height) { if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateES3CopyTexImage3DParameters(context, target, level, GL_NONE, true, xoffset, - yoffset, zoffset, x, y, width, height, 0); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateES3CopyTexImage3DParameters(context, entryPoint, target, level, GL_NONE, true, + xoffset, yoffset, zoffset, x, y, width, height, 0); } bool ValidateCopyTexture3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceId, GLint sourceLevel, TextureTarget destTarget, TextureID destId, GLint destLevel, @@ -2274,11 +2501,11 @@ GLboolean unpackUnmultiplyAlpha) { const Texture *source = context->getTexture(sourceId); if (source == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTexture); return false; } TextureType sourceType = source->getType(); ASSERT(sourceType != TextureType::CubeMap); @@ -2286,45 +2513,46 @@ const Format &sourceFormat = source->getFormat(sourceTarget, sourceLevel); const Texture *dest = context->getTexture(destId); if (dest == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTexture); - return false; - } - - if (!ValidateCopyTexture3DCommon(context, source, sourceLevel, + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture); + return false; + } + + if (!ValidateCopyTexture3DCommon(context, entryPoint, source, sourceLevel, sourceFormat.info->internalFormat, dest, destLevel, internalFormat, destTarget)) { return false; } if (!ValidMipLevel(context, source->getType(), sourceLevel)) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTextureLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTextureLevel); return false; } GLsizei sourceWidth = static_cast(source->getWidth(sourceTarget, sourceLevel)); GLsizei sourceHeight = static_cast(source->getHeight(sourceTarget, sourceLevel)); if (sourceWidth == 0 || sourceHeight == 0) { - context->validationError(GL_INVALID_OPERATION, kInvalidSourceTextureSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSourceTextureSize); return false; } if (dest->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kDestinationImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDestinationImmutable); return false; } return true; } bool ValidateCopySubTexture3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceId, GLint sourceLevel, TextureTarget destTarget, TextureID destId, GLint destLevel, @@ -2342,11 +2570,11 @@ GLboolean unpackUnmultiplyAlpha) { const Texture *source = context->getTexture(sourceId); if (source == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidSourceTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSourceTexture); return false; } TextureType sourceType = source->getType(); ASSERT(sourceType != TextureType::CubeMap); @@ -2354,67 +2582,68 @@ const Format &sourceFormat = source->getFormat(sourceTarget, sourceLevel); const Texture *dest = context->getTexture(destId); if (dest == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTexture); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture); return false; } const InternalFormat &destFormat = *dest->getFormat(destTarget, destLevel).info; - if (!ValidateCopyTexture3DCommon(context, source, sourceLevel, + if (!ValidateCopyTexture3DCommon(context, entryPoint, source, sourceLevel, sourceFormat.info->internalFormat, dest, destLevel, destFormat.internalFormat, destTarget)) { return false; } if (x < 0 || y < 0 || z < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeXYZ); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeXYZ); return false; } if (width < 0 || height < 0 || depth < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeHeightWidthDepth); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeHeightWidthDepth); return false; } if (static_cast(x + width) > source->getWidth(sourceTarget, sourceLevel) || static_cast(y + height) > source->getHeight(sourceTarget, sourceLevel) || static_cast(z + depth) > source->getDepth(sourceTarget, sourceLevel)) { - context->validationError(GL_INVALID_VALUE, kSourceTextureTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureTooSmall); return false; } if (TextureTargetToType(destTarget) != dest->getType()) { - context->validationError(GL_INVALID_VALUE, kInvalidDestinationTextureType); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTextureType); return false; } if (xoffset < 0 || yoffset < 0 || zoffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (static_cast(xoffset + width) > dest->getWidth(destTarget, destLevel) || static_cast(yoffset + height) > dest->getHeight(destTarget, destLevel) || static_cast(zoffset + depth) > dest->getDepth(destTarget, destLevel)) { - context->validationError(GL_INVALID_VALUE, kDestinationTextureTooSmall); + context->validationError(entryPoint, GL_INVALID_VALUE, kDestinationTextureTooSmall); return false; } return true; } bool ValidateTexImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -2424,20 +2653,21 @@ GLenum type, const void *pixels) { if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - return ValidateES3TexImage3DParameters(context, target, level, internalformat, false, false, 0, - 0, 0, width, height, depth, border, format, type, -1, - pixels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return ValidateES3TexImage3DParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, 0, width, height, depth, border, + format, type, -1, pixels); } bool ValidateTexImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -2448,25 +2678,26 @@ GLsizei bufSize, const void *pixels) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateES3TexImage3DParameters(context, target, level, internalformat, false, false, 0, - 0, 0, width, height, depth, border, format, type, - bufSize, pixels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateES3TexImage3DParameters(context, entryPoint, target, level, internalformat, + false, false, 0, 0, 0, width, height, depth, border, + format, type, bufSize, pixels); } bool ValidateTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2477,20 +2708,21 @@ GLenum type, const void *pixels) { if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateES3TexImage3DParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, zoffset, width, height, depth, 0, format, type, - -1, pixels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateES3TexImage3DParameters(context, entryPoint, target, level, GL_NONE, false, true, + xoffset, yoffset, zoffset, width, height, depth, 0, + format, type, -1, pixels); } bool ValidateTexSubImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2502,25 +2734,26 @@ GLsizei bufSize, const void *pixels) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) - { - return false; - } - - return ValidateES3TexImage3DParameters(context, target, level, GL_NONE, false, true, xoffset, - yoffset, zoffset, width, height, depth, 0, format, type, - bufSize, pixels); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) + { + return false; + } + + return ValidateES3TexImage3DParameters(context, entryPoint, target, level, GL_NONE, false, true, + xoffset, yoffset, zoffset, width, height, depth, 0, + format, type, bufSize, pixels); } bool ValidateCompressedTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2531,51 +2764,52 @@ GLsizei imageSize, const void *data) { if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } const InternalFormat &formatInfo = GetSizedInternalFormatInfo(format); if (!formatInfo.compressed) { - context->validationError(GL_INVALID_ENUM, kInvalidCompressedFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCompressedFormat); return false; } GLuint blockSize = 0; if (!formatInfo.computeCompressedImageSize(Extents(width, height, depth), &blockSize)) { - context->validationError(GL_INVALID_OPERATION, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow); return false; } if (imageSize < 0 || static_cast(imageSize) != blockSize) { - context->validationError(GL_INVALID_VALUE, kInvalidCompressedImageSize); - return false; - } - - if (!ValidateES3TexImage3DParameters(context, target, level, GL_NONE, true, true, xoffset, - yoffset, zoffset, width, height, depth, 0, format, GL_NONE, - -1, data)) + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCompressedImageSize); + return false; + } + + if (!ValidateES3TexImage3DParameters(context, entryPoint, target, level, GL_NONE, true, true, + xoffset, yoffset, zoffset, width, height, depth, 0, format, + GL_NONE, -1, data)) { return false; } if (!data) { - context->validationError(GL_INVALID_VALUE, kPixelDataNull); + context->validationError(entryPoint, GL_INVALID_VALUE, kPixelDataNull); return false; } return true; } bool ValidateCompressedTexSubImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -2585,245 +2819,288 @@ GLenum format, GLsizei imageSize, GLsizei dataSize, const void *data) { - if (!ValidateRobustCompressedTexImageBase(context, imageSize, dataSize)) - { - return false; - } - - return ValidateCompressedTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data); + if (!ValidateRobustCompressedTexImageBase(context, entryPoint, imageSize, dataSize)) + { + return false; + } + + return ValidateCompressedTexSubImage3D(context, entryPoint, target, level, xoffset, yoffset, + zoffset, width, height, depth, format, imageSize, data); } -bool ValidateGenQueries(const Context *context, GLsizei n, const QueryID *queries) +bool ValidateGenQueries(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *queries) { - return ValidateGenOrDeleteES3(context, n); + return ValidateGenOrDeleteES3(context, entryPoint, n); } -bool ValidateDeleteQueries(const Context *context, GLsizei n, const QueryID *queries) -{ - return ValidateGenOrDeleteES3(context, n); -} - -bool ValidateGenSamplers(const Context *context, GLsizei count, const SamplerID *samplers) +bool ValidateDeleteQueries(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *queries) { - return ValidateGenOrDeleteCountES3(context, count); + return ValidateGenOrDeleteES3(context, entryPoint, n); } -bool ValidateDeleteSamplers(const Context *context, GLsizei count, const SamplerID *samplers) +bool ValidateGenSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei count, + const SamplerID *samplers) { - return ValidateGenOrDeleteCountES3(context, count); + return ValidateGenOrDeleteCountES3(context, entryPoint, count); +} + +bool ValidateDeleteSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei count, + const SamplerID *samplers) +{ + return ValidateGenOrDeleteCountES3(context, entryPoint, count); } bool ValidateGenTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const TransformFeedbackID *ids) { - return ValidateGenOrDeleteES3(context, n); + return ValidateGenOrDeleteES3(context, entryPoint, n); } bool ValidateDeleteTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const TransformFeedbackID *ids) { - if (!ValidateGenOrDeleteES3(context, n)) + if (!ValidateGenOrDeleteES3(context, entryPoint, n)) { return false; } for (GLint i = 0; i < n; ++i) { auto *transformFeedback = context->getTransformFeedback(ids[i]); if (transformFeedback != nullptr && transformFeedback->isActive()) { // ES 3.0.4 section 2.15.1 page 86 - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackActiveDelete); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackActiveDelete); return false; } } return true; } -bool ValidateGenVertexArrays(const Context *context, GLsizei n, const VertexArrayID *arrays) +bool ValidateGenVertexArrays(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arrays) { - return ValidateGenOrDeleteES3(context, n); + return ValidateGenOrDeleteES3(context, entryPoint, n); } -bool ValidateDeleteVertexArrays(const Context *context, GLsizei n, const VertexArrayID *arrays) +bool ValidateDeleteVertexArrays(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arrays) { - return ValidateGenOrDeleteES3(context, n); + return ValidateGenOrDeleteES3(context, entryPoint, n); } -bool ValidateBeginTransformFeedback(const Context *context, PrimitiveMode primitiveMode) +bool ValidateBeginTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + PrimitiveMode primitiveMode) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } switch (primitiveMode) { case PrimitiveMode::Triangles: case PrimitiveMode::Lines: case PrimitiveMode::Points: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPrimitiveMode); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPrimitiveMode); return false; } TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); ASSERT(transformFeedback != nullptr); if (transformFeedback->isActive()) { - context->validationError(GL_INVALID_OPERATION, kTransfomFeedbackAlreadyActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransfomFeedbackAlreadyActive); return false; } for (size_t i = 0; i < transformFeedback->getIndexedBufferCount(); i++) { - const auto &buffer = transformFeedback->getIndexedBuffer(i); + const OffsetBindingPointer &buffer = transformFeedback->getIndexedBuffer(i); if (buffer.get()) { if (buffer->isMapped()) { - context->validationError(GL_INVALID_OPERATION, kBufferMapped); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped); return false; } if ((context->getLimitations().noDoubleBoundTransformFeedbackBuffers || - context->getExtensions().webglCompatibility) && + context->getExtensions().webglCompatibilityANGLE) && buffer->isDoubleBoundForTransformFeedback()) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackBufferMultipleOutputs); return false; } } } const ProgramExecutable *programExecutable = context->getState().getProgramExecutable(); - if (programExecutable) - { - if (programExecutable->getLinkedTransformFeedbackVaryings().size() == 0) + if (!programExecutable) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotBound); + return false; + } + + if (programExecutable->getLinkedTransformFeedbackVaryings().empty()) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoTransformFeedbackOutputVariables); + return false; + } + + size_t programXfbCount = programExecutable->getTransformFeedbackBufferCount(); + for (size_t programXfbIndex = 0; programXfbIndex < programXfbCount; ++programXfbIndex) + { + const OffsetBindingPointer &buffer = + transformFeedback->getIndexedBuffer(programXfbIndex); + if (!buffer.get()) { - context->validationError(GL_INVALID_OPERATION, kNoTransformFeedbackOutputVariables); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackBufferMissing); return false; } } - else - { - context->validationError(GL_INVALID_OPERATION, kProgramNotBound); - return false; - } return true; } bool ValidateGetBufferPointerv(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, void *const *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateGetBufferPointervBase(context, target, pname, nullptr, params); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateGetBufferPointervBase(context, entryPoint, target, pname, nullptr, params); } bool ValidateGetBufferPointervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *params) { - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (context->getClientMajorVersion() < 3 && !context->getExtensions().mapBufferOES) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - - if (!ValidateGetBufferPointervBase(context, target, pname, &numParams, params)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (context->getClientMajorVersion() < 3 && !context->getExtensions().mapbufferOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + if (!ValidateGetBufferPointervBase(context, entryPoint, target, pname, &numParams, params)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } -bool ValidateUnmapBuffer(const Context *context, BufferBinding target) +bool ValidateUnmapBuffer(const Context *context, angle::EntryPoint entryPoint, BufferBinding target) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateUnmapBufferBase(context, target); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateUnmapBufferBase(context, entryPoint, target); } bool ValidateMapBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length, GLbitfield access) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateMapBufferRangeBase(context, target, offset, length, access); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateMapBufferRangeBase(context, entryPoint, target, offset, length, access); } bool ValidateFlushMappedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLintptr offset, GLsizeiptr length) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateFlushMappedBufferRangeBase(context, target, offset, length); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateFlushMappedBufferRangeBase(context, entryPoint, target, offset, length); } -bool ValidateIndexedStateQuery(const Context *context, GLenum pname, GLuint index, GLsizei *length) +bool ValidateIndexedStateQuery(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLuint index, + GLsizei *length) { if (length) { *length = 0; } GLenum nativeType; unsigned int numParams; if (!context->getIndexedQueryParameterInfo(pname, &nativeType, &numParams)) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } const Caps &caps = context->getCaps(); switch (pname) @@ -2835,104 +3112,109 @@ case GL_BLEND_EQUATION_RGB: case GL_BLEND_EQUATION_ALPHA: case GL_COLOR_WRITEMASK: if (!context->getExtensions().drawBuffersIndexedAny()) { - context->validationError(GL_INVALID_ENUM, kDrawBuffersIndexedExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_ENUM, + kDrawBuffersIndexedExtensionNotAvailable); return false; } if (index >= static_cast(caps.maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } break; case GL_TRANSFORM_FEEDBACK_BUFFER_START: case GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: if (index >= static_cast(caps.maxTransformFeedbackSeparateAttributes)) { - context->validationError(GL_INVALID_VALUE, + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxTransformFeedbackAttribs); return false; } break; case GL_UNIFORM_BUFFER_START: case GL_UNIFORM_BUFFER_SIZE: case GL_UNIFORM_BUFFER_BINDING: if (index >= static_cast(caps.maxUniformBufferBindings)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxUniformBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxUniformBufferBindings); return false; } break; case GL_MAX_COMPUTE_WORK_GROUP_SIZE: case GL_MAX_COMPUTE_WORK_GROUP_COUNT: if (index >= 3u) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxWorkgroupDimensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxWorkgroupDimensions); return false; } break; case GL_ATOMIC_COUNTER_BUFFER_START: case GL_ATOMIC_COUNTER_BUFFER_SIZE: case GL_ATOMIC_COUNTER_BUFFER_BINDING: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxAtomicCounterBufferBindings)) { - context->validationError(GL_INVALID_VALUE, + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxAtomicCounterBufferBindings); return false; } break; case GL_SHADER_STORAGE_BUFFER_START: case GL_SHADER_STORAGE_BUFFER_SIZE: case GL_SHADER_STORAGE_BUFFER_BINDING: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxShaderStorageBufferBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxShaderStorageBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kExceedsMaxShaderStorageBufferBindings); return false; } break; case GL_VERTEX_BINDING_BUFFER: case GL_VERTEX_BINDING_DIVISOR: case GL_VERTEX_BINDING_OFFSET: case GL_VERTEX_BINDING_STRIDE: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kExceedsMaxVertexAttribBindings); return false; } break; case GL_SAMPLE_MASK_VALUE: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxSampleMaskWords)) { - context->validationError(GL_INVALID_VALUE, kInvalidSampleMaskNumber); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidSampleMaskNumber); return false; } break; case GL_IMAGE_BINDING_NAME: case GL_IMAGE_BINDING_LEVEL: @@ -2940,21 +3222,21 @@ case GL_IMAGE_BINDING_LAYER: case GL_IMAGE_BINDING_ACCESS: case GL_IMAGE_BINDING_FORMAT: if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31); return false; } if (index >= static_cast(caps.maxImageUnits)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxImageUnits); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxImageUnits); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (length) { @@ -2969,143 +3251,156 @@ } return true; } -bool ValidateGetIntegeri_v(const Context *context, GLenum target, GLuint index, const GLint *data) +bool ValidateGetIntegeri_v(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + const GLint *data) { if (context->getClientVersion() < ES_3_0) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateIndexedStateQuery(context, target, index, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateIndexedStateQuery(context, entryPoint, target, index, nullptr); } bool ValidateGetIntegeri_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint *data) { if (context->getClientVersion() < ES_3_0) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateIndexedStateQuery(context, target, index, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateIndexedStateQuery(context, entryPoint, target, index, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateGetInteger64i_v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLint64 *data) { if (context->getClientVersion() < ES_3_0) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateIndexedStateQuery(context, target, index, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateIndexedStateQuery(context, entryPoint, target, index, nullptr); } bool ValidateGetInteger64i_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint64 *data) { if (context->getClientVersion() < ES_3_0) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateRobustEntryPoint(context, bufSize)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateIndexedStateQuery(context, target, index, &numParams)) - { - return false; - } - - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateIndexedStateQuery(context, entryPoint, target, index, &numParams)) + { + return false; + } + + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } bool ValidateCopyBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding readTarget, BufferBinding writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (!context->isValidBufferBinding(readTarget) || !context->isValidBufferBinding(writeTarget)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } Buffer *readBuffer = context->getState().getTargetBuffer(readTarget); Buffer *writeBuffer = context->getState().getTargetBuffer(writeTarget); if (!readBuffer || !writeBuffer) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); - return false; - } - - // Verify that readBuffer and writeBuffer are not currently mapped - if (readBuffer->isMapped() || writeBuffer->isMapped()) - { - context->validationError(GL_INVALID_OPERATION, kBufferMapped); - return false; - } - - if (context->getExtensions().webglCompatibility && - (readBuffer->isBoundForTransformFeedbackAndOtherUse() || - writeBuffer->isBoundForTransformFeedbackAndOtherUse())) - { - context->validationError(GL_INVALID_OPERATION, kBufferBoundForTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); + return false; + } + + // EXT_buffer_storage allows persistently mapped buffers to be updated via glCopyBufferSubData + bool isReadPersistent = (readBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0; + bool isWritePersistent = (writeBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0; + + // Verify that readBuffer and writeBuffer are not currently mapped unless persistent + if ((readBuffer->isMapped() && !isReadPersistent) || + (writeBuffer->isMapped() && !isWritePersistent)) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped); + return false; + } + + if (readBuffer->hasWebGLXFBBindingConflict(context->isWebGL()) || + writeBuffer->hasWebGLXFBBindingConflict(context->isWebGL())) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kBufferBoundForTransformFeedback); return false; } CheckedNumeric checkedReadOffset(readOffset); CheckedNumeric checkedWriteOffset(writeOffset); @@ -3116,108 +3411,113 @@ if (!checkedReadSum.IsValid() || !checkedWriteSum.IsValid() || !IsValueInRangeForNumericType(readBuffer->getSize()) || !IsValueInRangeForNumericType(writeBuffer->getSize())) { - context->validationError(GL_INVALID_VALUE, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kIntegerOverflow); return false; } if (readOffset < 0 || writeOffset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (size < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } if (checkedReadSum.ValueOrDie() > readBuffer->getSize() || checkedWriteSum.ValueOrDie() > writeBuffer->getSize()) { - context->validationError(GL_INVALID_VALUE, kBufferOffsetOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kBufferOffsetOverflow); return false; } if (readBuffer == writeBuffer) { auto checkedOffsetDiff = (checkedReadOffset - checkedWriteOffset).Abs(); if (!checkedOffsetDiff.IsValid()) { // This shold not be possible. UNREACHABLE(); - context->validationError(GL_INVALID_VALUE, kIntegerOverflow); + context->validationError(entryPoint, GL_INVALID_VALUE, kIntegerOverflow); return false; } if (checkedOffsetDiff.ValueOrDie() < size) { - context->validationError(GL_INVALID_VALUE, kCopyAlias); + context->validationError(entryPoint, GL_INVALID_VALUE, kCopyAlias); return false; } } return true; } -bool ValidateGetStringi(const Context *context, GLenum name, GLuint index) +bool ValidateGetStringi(const Context *context, + angle::EntryPoint entryPoint, + GLenum name, + GLuint index) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } switch (name) { case GL_EXTENSIONS: if (index >= context->getExtensionStringCount()) { - context->validationError(GL_INVALID_VALUE, kExceedsNumExtensions); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsNumExtensions); return false; } break; case GL_REQUESTABLE_EXTENSIONS_ANGLE: - if (!context->getExtensions().requestExtension) + if (!context->getExtensions().requestExtensionANGLE) { - context->validationError(GL_INVALID_ENUM, kInvalidName); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName); return false; } if (index >= context->getRequestableExtensionStringCount()) { - context->validationError(GL_INVALID_VALUE, kExceedsNumRequestableExtensions); + context->validationError(entryPoint, GL_INVALID_VALUE, + kExceedsNumRequestableExtensions); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidName); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName); return false; } return true; } bool ValidateRenderbufferStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateRenderbufferStorageParametersBase(context, target, samples, internalformat, width, - height)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateRenderbufferStorageParametersBase(context, entryPoint, target, samples, + internalformat, width, height)) { return false; } // The ES3 spec(section 4.4.2) states that the internal format must be sized and not an integer @@ -3227,65 +3527,66 @@ if (formatInfo.isInt()) { if ((samples > 0 && context->getClientVersion() == ES_3_0) || samples > context->getCaps().maxIntegerSamples) { - context->validationError(GL_INVALID_OPERATION, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange); return false; } } // The behavior is different than the ANGLE version, which would generate a GL_OUT_OF_MEMORY. const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat); if (static_cast(samples) > formatCaps.getMaxSamples()) { - context->validationError(GL_INVALID_OPERATION, kSamplesOutOfRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange); return false; } return true; } bool ValidateVertexAttribIPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType type, GLsizei stride, const void *pointer) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateIntegerVertexFormat(context, index, size, type)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateIntegerVertexFormat(context, entryPoint, index, size, type)) { return false; } if (stride < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeStride); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeStride); return false; } const Caps &caps = context->getCaps(); if (context->getClientVersion() >= ES_3_1) { if (stride > caps.maxVertexAttribStride) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribStride); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribStride); return false; } // [OpenGL ES 3.1] Section 10.3.1 page 245: // glVertexAttribBinding is part of the equivalent code of VertexAttribIPointer, so its // validation should be inherited. if (index >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); return false; } } // [OpenGL ES 3.0.2] Section 2.8 page 24: @@ -3293,47 +3594,49 @@ // is bound, zero is bound to the ARRAY_BUFFER buffer object binding point, // and the pointer argument is not NULL. if (context->getState().getVertexArrayId().value != 0 && context->getState().getTargetBuffer(BufferBinding::Array) == 0 && pointer != nullptr) { - context->validationError(GL_INVALID_OPERATION, kClientDataInVertexArray); - return false; - } - - if (context->getExtensions().webglCompatibility) - { - if (!ValidateWebGLVertexAttribPointer(context, type, false, stride, pointer, true)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kClientDataInVertexArray); + return false; + } + + if (context->getExtensions().webglCompatibilityANGLE) + { + if (!ValidateWebGLVertexAttribPointer(context, entryPoint, type, false, stride, pointer, + true)) { return false; } } return true; } bool ValidateGetSynciv(const Context *context, + angle::EntryPoint entryPoint, GLsync sync, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *values) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } if (context->isContextLost()) { - context->validationError(GL_CONTEXT_LOST, kContextLost); + context->validationError(entryPoint, GL_CONTEXT_LOST, kContextLost); if (pname == GL_SYNC_STATUS) { // Generate an error but still return true, the context still needs to return a // value in this case. @@ -3346,11 +3649,11 @@ } Sync *syncObject = context->getSync(sync); if (!syncObject) { - context->validationError(GL_INVALID_VALUE, kSyncMissing); + context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissing); return false; } switch (pname) { @@ -3359,221 +3662,231 @@ case GL_SYNC_FLAGS: case GL_SYNC_STATUS: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } return true; } bool ValidateDrawElementsInstanced(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei instanceCount) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateDrawElementsInstancedBase(context, mode, count, type, indices, instanceCount); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + instanceCount); } bool ValidateMultiDrawArraysInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { if (!context->getExtensions().instancedArraysAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - if (!ValidateDrawInstancedANGLE(context)) + if (!ValidateDrawInstancedANGLE(context, entryPoint)) { return false; } } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawArraysInstancedBase(context, mode, firsts[drawID], counts[drawID], - instanceCounts[drawID])) + if (!ValidateDrawArraysInstancedBase(context, entryPoint, mode, firsts[drawID], + counts[drawID], instanceCounts[drawID])) { return false; } } return true; } bool ValidateMultiDrawElementsInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLsizei *counts, DrawElementsType type, const GLvoid *const *indices, const GLsizei *instanceCounts, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { if (!context->getExtensions().instancedArraysAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - if (!ValidateDrawInstancedANGLE(context)) + if (!ValidateDrawInstancedANGLE(context, entryPoint)) { return false; } } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawElementsInstancedBase(context, mode, counts[drawID], type, indices[drawID], - instanceCounts[drawID])) + if (!ValidateDrawElementsInstancedBase(context, entryPoint, mode, counts[drawID], type, + indices[drawID], instanceCounts[drawID])) { return false; } } return true; } bool ValidateDrawArraysInstancedBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance) { - if (!context->getExtensions().baseVertexBaseInstance) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - if (!ValidateDrawArraysInstancedBase(context, mode, first, count, instanceCount)) + if (!context->getExtensions().baseVertexBaseInstanceANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + if (!ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, instanceCount)) { return false; } return true; } bool ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance) { - if (!context->getExtensions().baseVertexBaseInstance) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; - } - if (!ValidateDrawElementsInstancedBase(context, mode, count, type, indices, instanceCounts)) + if (!context->getExtensions().baseVertexBaseInstanceANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + if (!ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + instanceCounts)) { return false; } return true; } bool ValidateMultiDrawArraysInstancedBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (drawcount < 0) { return false; } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawArraysInstancedBase(context, modePacked, firsts[drawID], counts[drawID], - instanceCounts[drawID])) + if (!ValidateDrawArraysInstancedBase(context, entryPoint, modePacked, firsts[drawID], + counts[drawID], instanceCounts[drawID])) { return false; } } return true; } bool ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, const GLvoid *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawcount) { - if (!context->getExtensions().multiDraw) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().multiDrawANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (drawcount < 0) { return false; } for (GLsizei drawID = 0; drawID < drawcount; ++drawID) { - if (!ValidateDrawElementsInstancedBase(context, modePacked, counts[drawID], typePacked, - indices[drawID], instanceCounts[drawID])) + if (!ValidateDrawElementsInstancedBase(context, entryPoint, modePacked, counts[drawID], + typePacked, indices[drawID], instanceCounts[drawID])) { return false; } } return true; } bool ValidateFramebufferTextureMultiviewOVR(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level, GLint baseViewIndex, GLsizei numViews) { - if (!ValidateFramebufferTextureMultiviewBaseANGLE(context, target, attachment, texture, level, - numViews)) + if (!ValidateFramebufferTextureMultiviewBaseANGLE(context, entryPoint, target, attachment, + texture, level, numViews)) { return false; } if (texture.value != 0) { if (baseViewIndex < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBaseViewIndex); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBaseViewIndex); return false; } Texture *tex = context->getTexture(texture); ASSERT(tex); @@ -3583,201 +3896,229 @@ case TextureType::_2DArray: case TextureType::_2DMultisampleArray: { if (tex->getType() == TextureType::_2DMultisampleArray) { - if (!context->getExtensions().multiviewMultisample) + if (!context->getExtensions().multiviewMultisampleANGLE) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureType); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTextureType); return false; } } const Caps &caps = context->getCaps(); if (baseViewIndex + numViews > caps.maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kViewsExceedMaxArrayLayers); + context->validationError(entryPoint, GL_INVALID_VALUE, + kViewsExceedMaxArrayLayers); return false; } break; } default: - context->validationError(GL_INVALID_OPERATION, kInvalidTextureType); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureType); return false; } - if (!ValidateFramebufferTextureMultiviewLevelAndFormat(context, tex, level)) + if (!ValidateFramebufferTextureMultiviewLevelAndFormat(context, entryPoint, tex, level)) { return false; } } return true; } -bool ValidateUniform1ui(const Context *context, UniformLocation location, GLuint v0) +bool ValidateUniform1ui(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLuint v0) { - return ValidateUniformES3(context, GL_UNSIGNED_INT, location, 1); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT, location, 1); } -bool ValidateUniform2ui(const Context *context, UniformLocation location, GLuint v0, GLuint v1) +bool ValidateUniform2ui(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLuint v0, + GLuint v1) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC2, location, 1); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC2, location, 1); } bool ValidateUniform3ui(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLuint v0, GLuint v1, GLuint v2) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC3, location, 1); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC3, location, 1); } bool ValidateUniform4ui(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC4, location, 1); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC4, location, 1); } bool ValidateUniform1uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateUniformES3(context, GL_UNSIGNED_INT, location, count); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT, location, count); } bool ValidateUniform2uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC2, location, count); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC2, location, count); } bool ValidateUniform3uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC3, location, count); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC3, location, count); } bool ValidateUniform4uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateUniformES3(context, GL_UNSIGNED_INT_VEC4, location, count); + return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC4, location, count); } -bool ValidateIsQuery(const Context *context, QueryID id) +bool ValidateIsQuery(const Context *context, angle::EntryPoint entryPoint, QueryID id) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } return true; } bool ValidateUniformMatrix2x3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT2x3, location, count, transpose); + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT2x3, location, count, + transpose); } bool ValidateUniformMatrix3x2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT3x2, location, count, transpose); + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT3x2, location, count, + transpose); } bool ValidateUniformMatrix2x4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT2x4, location, count, transpose); + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT2x4, location, count, + transpose); } bool ValidateUniformMatrix4x2fv(const Context *context, - UniformLocation location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT4x2, location, count, transpose); -} - -bool ValidateUniformMatrix3x4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT3x4, location, count, transpose); + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT4x2, location, count, + transpose); } -bool ValidateUniformMatrix4x3fv(const Context *context, +bool ValidateUniformMatrix3x4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateUniformMatrixES3(context, GL_FLOAT_MAT4x3, location, count, transpose); + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT3x4, location, count, + transpose); } -bool ValidateEndTransformFeedback(const Context *context) +bool ValidateUniformMatrix4x3fv(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLsizei count, + GLboolean transpose, + const GLfloat *value) +{ + return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT4x3, location, count, + transpose); +} + +bool ValidateEndTransformFeedback(const Context *context, angle::EntryPoint entryPoint) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); ASSERT(transformFeedback != nullptr); if (!transformFeedback->isActive()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackNotActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotActive); return false; } return true; } bool ValidateTransformFeedbackVaryings(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei count, const GLchar *const *varyings, GLenum bufferMode) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (count < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } switch (bufferMode) { @@ -3786,70 +4127,76 @@ case GL_SEPARATE_ATTRIBS: { const Caps &caps = context->getCaps(); if (count > caps.maxTransformFeedbackSeparateAttributes) { - context->validationError(GL_INVALID_VALUE, kInvalidTransformFeedbackAttribsCount); + context->validationError(entryPoint, GL_INVALID_VALUE, + kInvalidTransformFeedbackAttribsCount); return false; } break; } default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateGetTransformFeedbackVarying(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint index, GLsizei bufSize, const GLsizei *length, const GLsizei *size, const GLenum *type, const GLchar *name) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (index >= static_cast(programObject->getTransformFeedbackVaryingCount())) { - context->validationError(GL_INVALID_VALUE, kTransformFeedbackVaryingIndexOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, + kTransformFeedbackVaryingIndexOutOfRange); return false; } return true; } -bool ValidateBindTransformFeedback(const Context *context, GLenum target, TransformFeedbackID id) +bool ValidateBindTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + TransformFeedbackID id) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } switch (target) { @@ -3857,223 +4204,238 @@ { // Cannot bind a transform feedback object if the current one is started and not // paused (3.0.2 pg 85 section 2.14.1) if (context->getState().isTransformFeedbackActiveUnpaused()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackNotPaused); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackNotPaused); return false; } // Cannot bind a transform feedback object that does not exist (3.0.2 pg 85 section // 2.14.1) if (!context->isTransformFeedbackGenerated(id)) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackDoesNotExist); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTransformFeedbackDoesNotExist); return false; } } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateIsTransformFeedback(const Context *context, TransformFeedbackID id) +bool ValidateIsTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + TransformFeedbackID id) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } return true; } -bool ValidatePauseTransformFeedback(const Context *context) +bool ValidatePauseTransformFeedback(const Context *context, angle::EntryPoint entryPoint) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); ASSERT(transformFeedback != nullptr); // Current transform feedback must be active and not paused in order to pause (3.0.2 pg 86) if (!transformFeedback->isActive()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackNotActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotActive); return false; } if (transformFeedback->isPaused()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackPaused); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackPaused); return false; } return true; } -bool ValidateResumeTransformFeedback(const Context *context) +bool ValidateResumeTransformFeedback(const Context *context, angle::EntryPoint entryPoint) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); ASSERT(transformFeedback != nullptr); // Current transform feedback must be active and paused in order to resume (3.0.2 pg 86) if (!transformFeedback->isActive()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackNotActive); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotActive); return false; } if (!transformFeedback->isPaused()) { - context->validationError(GL_INVALID_OPERATION, kTransformFeedbackNotPaused); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotPaused); return false; } return true; } bool ValidateVertexAttribI4i(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint x, GLint y, GLint z, GLint w) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateVertexAttribIndex(context, index); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateVertexAttribIndex(context, entryPoint, index); } bool ValidateVertexAttribI4ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateVertexAttribIndex(context, index); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateVertexAttribIndex(context, entryPoint, index); } -bool ValidateVertexAttribI4iv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttribI4iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateVertexAttribIndex(context, index); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateVertexAttribIndex(context, entryPoint, index); } -bool ValidateVertexAttribI4uiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttribI4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateVertexAttribIndex(context, index); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateVertexAttribIndex(context, entryPoint, index); } bool ValidateGetFragDataLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, const GLchar *name) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } bool ValidateGetUniformIndices(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei uniformCount, const GLchar *const *uniformNames, const GLuint *uniformIndices) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (uniformCount < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateGetActiveUniformsiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (uniformCount < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } @@ -4081,13 +4443,13 @@ { case GL_UNIFORM_TYPE: case GL_UNIFORM_SIZE: break; case GL_UNIFORM_NAME_LENGTH: - if (context->getExtensions().webglCompatibility) + if (context->getExtensions().webglCompatibilityANGLE) { - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } break; case GL_UNIFORM_BLOCK_INDEX: case GL_UNIFORM_OFFSET: @@ -4095,639 +4457,703 @@ case GL_UNIFORM_MATRIX_STRIDE: case GL_UNIFORM_IS_ROW_MAJOR: break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } if (uniformCount > programObject->getActiveUniformCount()) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); return false; } for (int uniformId = 0; uniformId < uniformCount; uniformId++) { const GLuint index = uniformIndices[uniformId]; if (index >= static_cast(programObject->getActiveUniformCount())) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform); return false; } } return true; } bool ValidateGetUniformBlockIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, const GLchar *uniformBlockName) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateGetActiveUniformBlockiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLenum pname, const GLint *params) { - return ValidateGetActiveUniformBlockivBase(context, program, uniformBlockIndex, pname, nullptr); + return ValidateGetActiveUniformBlockivBase(context, entryPoint, program, uniformBlockIndex, + pname, nullptr); } bool ValidateGetActiveUniformBlockName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLsizei bufSize, const GLsizei *length, const GLchar *uniformBlockName) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (uniformBlockIndex.value >= programObject->getActiveUniformBlockCount()) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxActiveUniformBlock); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniformBlock); return false; } return true; } bool ValidateUniformBlockBinding(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformBlockIndex uniformBlockIndex, GLuint uniformBlockBinding) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (uniformBlockBinding >= static_cast(context->getCaps().maxUniformBufferBindings)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxUniformBufferBindings); - return false; - } - - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxUniformBufferBindings); + return false; + } + + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } // if never linked, there won't be any uniform blocks if (uniformBlockIndex.value >= programObject->getActiveUniformBlockCount()) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxUniformBufferBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, + kIndexExceedsMaxUniformBufferBindings); return false; } return true; } bool ValidateDrawArraysInstanced(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei primcount) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateDrawArraysInstancedBase(context, mode, first, count, primcount); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, primcount); } -bool ValidateFenceSync(const Context *context, GLenum condition, GLbitfield flags) +bool ValidateFenceSync(const Context *context, + angle::EntryPoint entryPoint, + GLenum condition, + GLbitfield flags) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (condition != GL_SYNC_GPU_COMMANDS_COMPLETE) { - context->validationError(GL_INVALID_ENUM, kInvalidFenceCondition); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFenceCondition); return false; } if (flags != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFlags); return false; } return true; } -bool ValidateIsSync(const Context *context, GLsync sync) +bool ValidateIsSync(const Context *context, angle::EntryPoint entryPoint, GLsync sync) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } return true; } -bool ValidateDeleteSync(const Context *context, GLsync sync) +bool ValidateDeleteSync(const Context *context, angle::EntryPoint entryPoint, GLsync sync) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (sync != static_cast(0) && !context->getSync(sync)) { - context->validationError(GL_INVALID_VALUE, kSyncMissing); + context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissing); return false; } return true; } -bool ValidateClientWaitSync(const Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout) +bool ValidateClientWaitSync(const Context *context, + angle::EntryPoint entryPoint, + GLsync sync, + GLbitfield flags, + GLuint64 timeout) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if ((flags & ~(GL_SYNC_FLUSH_COMMANDS_BIT)) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFlags); return false; } Sync *clientWaitSync = context->getSync(sync); if (!clientWaitSync) { - context->validationError(GL_INVALID_VALUE, kSyncMissing); + context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissing); return false; } return true; } -bool ValidateWaitSync(const Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout) +bool ValidateWaitSync(const Context *context, + angle::EntryPoint entryPoint, + GLsync sync, + GLbitfield flags, + GLuint64 timeout) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (flags != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFlags); return false; } if (timeout != GL_TIMEOUT_IGNORED) { - context->validationError(GL_INVALID_VALUE, kInvalidTimeout); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTimeout); return false; } Sync *waitSync = context->getSync(sync); if (!waitSync) { - context->validationError(GL_INVALID_VALUE, kSyncMissing); + context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissing); return false; } return true; } -bool ValidateGetInteger64v(const Context *context, GLenum pname, const GLint64 *params) +bool ValidateGetInteger64v(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint64 *params) { - if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSyncARB) - { - context->validationError(GL_INVALID_OPERATION, kES3Required); + if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } GLenum nativeType = GL_NONE; unsigned int numParams = 0; - if (!ValidateStateQuery(context, pname, &nativeType, &numParams)) + if (!ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams)) { return false; } return true; } -bool ValidateIsSampler(const Context *context, SamplerID sampler) +bool ValidateIsSampler(const Context *context, angle::EntryPoint entryPoint, SamplerID sampler) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } return true; } -bool ValidateBindSampler(const Context *context, GLuint unit, SamplerID sampler) +bool ValidateBindSampler(const Context *context, + angle::EntryPoint entryPoint, + GLuint unit, + SamplerID sampler) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (GetIDValue(sampler) != 0 && !context->isSampler(sampler)) { - context->validationError(GL_INVALID_OPERATION, kInvalidSampler); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSampler); return false; } if (unit >= static_cast(context->getCaps().maxCombinedTextureImageUnits)) { - context->validationError(GL_INVALID_VALUE, kInvalidCombinedImageUnit); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCombinedImageUnit); return false; } return true; } -bool ValidateVertexAttribDivisor(const Context *context, GLuint index, GLuint divisor) +bool ValidateVertexAttribDivisor(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - return ValidateVertexAttribIndex(context, index); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + return ValidateVertexAttribIndex(context, entryPoint, index); } bool ValidateTexStorage2D(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateES3TexStorage2DParameters(context, target, levels, internalformat, width, height, - 1)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateES3TexStorage2DParameters(context, entryPoint, target, levels, internalformat, + width, height, 1)) { return false; } return true; } bool ValidateTexStorage3D(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - - if (!ValidateES3TexStorage3DParameters(context, target, levels, internalformat, width, height, - depth)) + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + + if (!ValidateES3TexStorage3DParameters(context, entryPoint, target, levels, internalformat, + width, height, depth)) { return false; } return true; } bool ValidateGetBufferParameteri64v(const Context *context, + angle::EntryPoint entryPoint, BufferBinding target, GLenum pname, const GLint64 *params) { - return ValidateGetBufferParameterBase(context, target, pname, false, nullptr); + return ValidateGetBufferParameterBase(context, entryPoint, target, pname, false, nullptr); } bool ValidateGetSamplerParameterfv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLfloat *params) { - return ValidateGetSamplerParameterBase(context, sampler, pname, nullptr); + return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr); } bool ValidateGetSamplerParameteriv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *params) { - return ValidateGetSamplerParameterBase(context, sampler, pname, nullptr); + return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr); } bool ValidateGetSamplerParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateGetSamplerParameterBase(context, sampler, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr); } bool ValidateGetSamplerParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateGetSamplerParameterBase(context, sampler, pname, nullptr); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr); } bool ValidateSamplerParameterf(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, GLfloat param) { - return ValidateSamplerParameterBase(context, sampler, pname, -1, false, ¶m); + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, false, ¶m); } bool ValidateSamplerParameterfv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLfloat *params) { - return ValidateSamplerParameterBase(context, sampler, pname, -1, true, params); + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, true, params); } -bool ValidateSamplerParameteri(const Context *context, SamplerID sampler, GLenum pname, GLint param) +bool ValidateSamplerParameteri(const Context *context, + angle::EntryPoint entryPoint, + SamplerID sampler, + GLenum pname, + GLint param) { - return ValidateSamplerParameterBase(context, sampler, pname, -1, false, ¶m); + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, false, ¶m); } bool ValidateSamplerParameteriv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *params) { - return ValidateSamplerParameterBase(context, sampler, pname, -1, true, params); + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, true, params); } bool ValidateSamplerParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateSamplerParameterBase(context, sampler, pname, -1, true, params); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, true, params); } bool ValidateSamplerParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - return ValidateSamplerParameterBase(context, sampler, pname, -1, true, params); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, true, params); } bool ValidateGetVertexAttribIiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLint *params) { - return ValidateGetVertexAttribBase(context, index, pname, nullptr, false, true); + return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, false, true); } bool ValidateGetVertexAttribIuiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLuint *params) { - return ValidateGetVertexAttribBase(context, index, pname, nullptr, false, true); + return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, false, true); } bool ValidateGetInternalformativ(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLint *params) { - return ValidateGetInternalFormativBase(context, target, internalformat, pname, bufSize, - nullptr); + return ValidateGetInternalFormativBase(context, entryPoint, target, internalformat, pname, + bufSize, nullptr); } bool ValidateBindFragDataLocationIndexedEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint colorNumber, GLuint index, const char *name) { - if (!context->getExtensions().blendFuncExtended) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().blendFuncExtendedEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } if (index > 1) { // This error is not explicitly specified but the spec does say that " may be zero or // one to specify that the color be used as either the first or second color input to the // blend equation, respectively" - context->validationError(GL_INVALID_VALUE, kFragDataBindingIndexOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kFragDataBindingIndexOutOfRange); return false; } if (index == 1) { - if (colorNumber >= context->getExtensions().maxDualSourceDrawBuffers) + if (colorNumber >= context->getCaps().maxDualSourceDrawBuffers) { - context->validationError(GL_INVALID_VALUE, + context->validationError(entryPoint, GL_INVALID_VALUE, kColorNumberGreaterThanMaxDualSourceDrawBuffers); return false; } } else { if (colorNumber >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kColorNumberGreaterThanMaxDrawBuffers); + context->validationError(entryPoint, GL_INVALID_VALUE, + kColorNumberGreaterThanMaxDrawBuffers); return false; } } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } return true; } bool ValidateBindFragDataLocationEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint colorNumber, const char *name) { - return ValidateBindFragDataLocationIndexedEXT(context, program, colorNumber, 0u, name); + return ValidateBindFragDataLocationIndexedEXT(context, entryPoint, program, colorNumber, 0u, + name); } -bool ValidateGetFragDataIndexEXT(const Context *context, ShaderProgramID program, const char *name) +bool ValidateGetFragDataIndexEXT(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + const char *name) { - if (!context->getExtensions().blendFuncExtended) - { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + if (!context->getExtensions().blendFuncExtendedEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); - return false; - } - Program *programObject = GetValidProgram(context, program); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); + return false; + } + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } bool ValidateTexStorage2DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations) { - if (!context->getExtensions().textureMultisample) - { - context->validationError(GL_INVALID_OPERATION, kMultisampleTextureExtensionOrES31Required); - return false; - } - - return ValidateTexStorage2DMultisampleBase(context, target, samples, internalFormat, width, - height); + if (!context->getExtensions().textureMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMultisampleTextureExtensionOrES31Required); + return false; + } + + return ValidateTexStorage2DMultisampleBase(context, entryPoint, target, samples, internalFormat, + width, height); } bool ValidateGetTexLevelParameterfvANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, const GLfloat *params) { - if (!context->getExtensions().textureMultisample && + if (!context->getExtensions().textureMultisampleANGLE && !context->getExtensions().getTexLevelParameterANGLE) { context->validationError( - GL_INVALID_OPERATION, + entryPoint, GL_INVALID_OPERATION, kMultisampleTextureExtensionOrGetTexLevelParameterExtensionOrES31Required); return false; } - return ValidateGetTexLevelParameterBase(context, target, level, pname, nullptr); + return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr); } bool ValidateGetTexLevelParameterivANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, const GLint *params) { - if (!context->getExtensions().textureMultisample && + if (!context->getExtensions().textureMultisampleANGLE && !context->getExtensions().getTexLevelParameterANGLE) { context->validationError( - GL_INVALID_OPERATION, + entryPoint, GL_INVALID_OPERATION, kMultisampleTextureExtensionOrGetTexLevelParameterExtensionOrES31Required); return false; } - return ValidateGetTexLevelParameterBase(context, target, level, pname, nullptr); + return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr); } bool ValidateGetMultisamplefvANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val) { - if (!context->getExtensions().textureMultisample) - { - context->validationError(GL_INVALID_OPERATION, kMultisampleTextureExtensionOrES31Required); - return false; - } - - return ValidateGetMultisamplefvBase(context, pname, index, val); + if (!context->getExtensions().textureMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMultisampleTextureExtensionOrES31Required); + return false; + } + + return ValidateGetMultisamplefvBase(context, entryPoint, pname, index, val); } -bool ValidateSampleMaskiANGLE(const Context *context, GLuint maskNumber, GLbitfield mask) +bool ValidateSampleMaskiANGLE(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask) { - if (!context->getExtensions().textureMultisample) - { - context->validationError(GL_INVALID_OPERATION, kMultisampleTextureExtensionOrES31Required); - return false; - } - - return ValidateSampleMaskiBase(context, maskNumber, mask); + if (!context->getExtensions().textureMultisampleANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMultisampleTextureExtensionOrES31Required); + return false; + } + + return ValidateSampleMaskiBase(context, entryPoint, maskNumber, mask); } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationES31.h b/gfx/angle/checkout/src/libANGLE/validationES31.h --- a/gfx/angle/checkout/src/libANGLE/validationES31.h +++ b/gfx/angle/checkout/src/libANGLE/validationES31.h @@ -14,232 +14,281 @@ namespace gl { bool ValidateTexBufferBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked); bool ValidateTexBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); // GL_EXT_separate_shader_objects bool ValidateActiveShaderProgramBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, ShaderProgramID programPacked); -bool ValidateBindProgramPipelineBase(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateBindProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); bool ValidateCreateShaderProgramvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderType typePacked, GLsizei count, const GLchar **strings); bool ValidateDeleteProgramPipelinesBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateGenProgramPipelinesBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateGetProgramPipelineInfoLogBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog); bool ValidateGetProgramPipelineivBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLenum pname, const GLint *params); -bool ValidateIsProgramPipelineBase(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateIsProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); bool ValidateProgramParameteriBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, GLint value); bool ValidateProgramUniform1fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0); bool ValidateProgramUniform1fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform1iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0); bool ValidateProgramUniform1ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform1uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0); bool ValidateProgramUniform1uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform2fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1); bool ValidateProgramUniform2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform2iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1); bool ValidateProgramUniform2ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform2uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1); bool ValidateProgramUniform2uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform3fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2); bool ValidateProgramUniform3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform3iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2); bool ValidateProgramUniform3ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform3uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2); bool ValidateProgramUniform3uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform4fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); bool ValidateProgramUniform4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform4iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3); bool ValidateProgramUniform4ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform4uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3); bool ValidateProgramUniform4uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniformMatrix2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUseProgramStagesBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLbitfield stages, ShaderProgramID programPacked); -bool ValidateValidateProgramPipelineBase(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateValidateProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); } // namespace gl #endif // LIBANGLE_VALIDATION_ES31_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationES31.cpp b/gfx/angle/checkout/src/libANGLE/validationES31.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES31.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES31.cpp @@ -63,11 +63,13 @@ { return (programInterface == GL_ATOMIC_COUNTER_BUFFER || ValidateNamedProgramInterface(programInterface)); } -bool ValidateProgramResourceProperty(const Context *context, GLenum prop) +bool ValidateProgramResourceProperty(const Context *context, + angle::EntryPoint entryPoint, + GLenum prop) { ASSERT(context); switch (prop) { case GL_ACTIVE_VARIABLES: @@ -100,20 +102,21 @@ case GL_TYPE: return true; case GL_REFERENCED_BY_GEOMETRY_SHADER_EXT: - return context->getExtensions().geometryShader || context->getClientVersion() >= ES_3_2; + return context->getExtensions().geometryShaderAny() || + context->getClientVersion() >= ES_3_2; case GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT: case GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT: case GL_IS_PER_PATCH_EXT: return context->getExtensions().tessellationShaderEXT || context->getClientVersion() >= ES_3_2; case GL_LOCATION_INDEX_EXT: - return context->getExtensions().blendFuncExtended; + return context->getExtensions().blendFuncExtendedEXT; default: return false; } } @@ -314,598 +317,654 @@ return false; } } bool ValidateProgramUniformBase(const Context *context, + angle::EntryPoint entryPoint, GLenum valueType, ShaderProgramID program, UniformLocation location, GLsizei count) { const LinkedUniform *uniform = nullptr; - Program *programObject = GetValidProgram(context, program); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniformValue(context, valueType, uniform->type); + Program *programObject = GetValidProgram(context, entryPoint, program); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniformValue(context, entryPoint, valueType, uniform->type); } bool ValidateProgramUniformMatrixBase(const Context *context, + angle::EntryPoint entryPoint, GLenum valueType, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose) { const LinkedUniform *uniform = nullptr; - Program *programObject = GetValidProgram(context, program); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniformMatrixValue(context, valueType, uniform->type); + Program *programObject = GetValidProgram(context, entryPoint, program); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniformMatrixValue(context, entryPoint, valueType, uniform->type); } -bool ValidateVertexAttribFormatCommon(const Context *context, GLuint relativeOffset) +bool ValidateVertexAttribFormatCommon(const Context *context, + angle::EntryPoint entryPoint, + GLuint relativeOffset) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } const Caps &caps = context->getCaps(); if (relativeOffset > static_cast(caps.maxVertexAttribRelativeOffset)) { - context->validationError(GL_INVALID_VALUE, kRelativeOffsetTooLarge); + context->validationError(entryPoint, GL_INVALID_VALUE, kRelativeOffsetTooLarge); return false; } // [OpenGL ES 3.1] Section 10.3.1 page 243: // An INVALID_OPERATION error is generated if the default vertex array object is bound. if (context->getState().getVertexArrayId().value == 0) { - context->validationError(GL_INVALID_OPERATION, kDefaultVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultVertexArray); return false; } return true; } } // anonymous namespace bool ValidateGetBooleani_v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLboolean *data) { if (context->getClientVersion() < ES_3_1 && !context->getExtensions().drawBuffersIndexedAny()) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31OrDrawBuffersIndexedExtensionNotAvailable); return false; } - if (!ValidateIndexedStateQuery(context, target, index, nullptr)) + if (!ValidateIndexedStateQuery(context, entryPoint, target, index, nullptr)) { return false; } return true; } bool ValidateGetBooleani_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLboolean *data) { if (context->getClientVersion() < ES_3_1 && !context->getExtensions().drawBuffersIndexedAny()) { - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31OrDrawBuffersIndexedExtensionNotAvailable); return false; } - if (!ValidateRobustEntryPoint(context, bufSize)) + if (!ValidateRobustEntryPoint(context, entryPoint, bufSize)) { return false; } GLsizei numParams = 0; - if (!ValidateIndexedStateQuery(context, target, index, &numParams)) + if (!ValidateIndexedStateQuery(context, entryPoint, target, index, &numParams)) { return false; } - if (!ValidateRobustBufferSize(context, bufSize, numParams)) + if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams)) { return false; } SetRobustLengthParam(length, numParams); return true; } -bool ValidateDrawIndirectBase(const Context *context, PrimitiveMode mode, const void *indirect) +bool ValidateDrawIndirectBase(const Context *context, + angle::EntryPoint entryPoint, + PrimitiveMode mode, + const void *indirect) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } // Here the third parameter 1 is only to pass the count validation. - if (!ValidateDrawBase(context, mode)) + if (!ValidateDrawBase(context, entryPoint, mode)) { return false; } const State &state = context->getState(); // An INVALID_OPERATION error is generated if zero is bound to VERTEX_ARRAY_BINDING, // DRAW_INDIRECT_BUFFER or to any enabled vertex array. if (state.getVertexArrayId().value == 0) { - context->validationError(GL_INVALID_OPERATION, kDefaultVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultVertexArray); return false; } if (context->getStateCache().hasAnyActiveClientAttrib()) { - context->validationError(GL_INVALID_OPERATION, kClientDataInVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kClientDataInVertexArray); return false; } Buffer *drawIndirectBuffer = state.getTargetBuffer(BufferBinding::DrawIndirect); if (!drawIndirectBuffer) { - context->validationError(GL_INVALID_OPERATION, kDrawIndirectBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDrawIndirectBufferNotBound); return false; } // An INVALID_VALUE error is generated if indirect is not a multiple of the size, in basic // machine units, of uint. GLint64 offset = reinterpret_cast(indirect); if ((static_cast(offset) % sizeof(GLuint)) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidIndirectOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidIndirectOffset); return false; } return true; } -bool ValidateDrawArraysIndirect(const Context *context, PrimitiveMode mode, const void *indirect) +bool ValidateDrawArraysIndirect(const Context *context, + angle::EntryPoint entryPoint, + PrimitiveMode mode, + const void *indirect) { const State &state = context->getState(); TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback(); if (curTransformFeedback && curTransformFeedback->isActive() && !curTransformFeedback->isPaused()) { // EXT_geometry_shader allows transform feedback to work with all draw commands. // [EXT_geometry_shader] Section 12.1, "Transform Feedback" - if (context->getExtensions().geometryShader || context->getClientVersion() >= ES_3_2) + if (context->getExtensions().geometryShaderAny() || context->getClientVersion() >= ES_3_2) { if (!ValidateTransformFeedbackPrimitiveMode( - context, curTransformFeedback->getPrimitiveMode(), mode)) + context, entryPoint, curTransformFeedback->getPrimitiveMode(), mode)) { - context->validationError(GL_INVALID_OPERATION, kInvalidDrawModeTransformFeedback); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidDrawModeTransformFeedback); return false; } } else { // An INVALID_OPERATION error is generated if transform feedback is active and not // paused. - context->validationError(GL_INVALID_OPERATION, + context->validationError(entryPoint, GL_INVALID_OPERATION, kUnsupportedDrawModeForTransformFeedback); return false; } } - if (!ValidateDrawIndirectBase(context, mode, indirect)) + if (!ValidateDrawIndirectBase(context, entryPoint, mode, indirect)) return false; Buffer *drawIndirectBuffer = state.getTargetBuffer(BufferBinding::DrawIndirect); CheckedNumeric checkedOffset(reinterpret_cast(indirect)); // In OpenGL ES3.1 spec, session 10.5, it defines the struct of DrawArraysIndirectCommand // which's size is 4 * sizeof(uint). auto checkedSum = checkedOffset + 4 * sizeof(GLuint); if (!checkedSum.IsValid() || checkedSum.ValueOrDie() > static_cast(drawIndirectBuffer->getSize())) { - context->validationError(GL_INVALID_OPERATION, kParamOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kParamOverflow); return false; } return true; } bool ValidateDrawElementsIndirect(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, DrawElementsType type, const void *indirect) { - if (!ValidateDrawElementsBase(context, mode, type)) + if (!ValidateDrawElementsBase(context, entryPoint, mode, type)) { return false; } const State &state = context->getState(); const VertexArray *vao = state.getVertexArray(); Buffer *elementArrayBuffer = vao->getElementArrayBuffer(); if (!elementArrayBuffer) { - context->validationError(GL_INVALID_OPERATION, kMustHaveElementArrayBinding); + context->validationError(entryPoint, GL_INVALID_OPERATION, kMustHaveElementArrayBinding); return false; } - if (!ValidateDrawIndirectBase(context, mode, indirect)) + if (!ValidateDrawIndirectBase(context, entryPoint, mode, indirect)) return false; Buffer *drawIndirectBuffer = state.getTargetBuffer(BufferBinding::DrawIndirect); CheckedNumeric checkedOffset(reinterpret_cast(indirect)); // In OpenGL ES3.1 spec, session 10.5, it defines the struct of DrawElementsIndirectCommand // which's size is 5 * sizeof(uint). auto checkedSum = checkedOffset + 5 * sizeof(GLuint); if (!checkedSum.IsValid() || checkedSum.ValueOrDie() > static_cast(drawIndirectBuffer->getSize())) { - context->validationError(GL_INVALID_OPERATION, kParamOverflow); + context->validationError(entryPoint, GL_INVALID_OPERATION, kParamOverflow); return false; } return true; } bool ValidateProgramUniform1iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLint v0) { - return ValidateProgramUniform1ivBase(context, program, location, 1, &v0); + return ValidateProgramUniform1ivBase(context, entryPoint, program, location, 1, &v0); } bool ValidateProgramUniform2iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLint v0, GLint v1) { GLint xy[2] = {v0, v1}; - return ValidateProgramUniform2ivBase(context, program, location, 1, xy); + return ValidateProgramUniform2ivBase(context, entryPoint, program, location, 1, xy); } bool ValidateProgramUniform3iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLint v0, GLint v1, GLint v2) { GLint xyz[3] = {v0, v1, v2}; - return ValidateProgramUniform3ivBase(context, program, location, 1, xyz); + return ValidateProgramUniform3ivBase(context, entryPoint, program, location, 1, xyz); } bool ValidateProgramUniform4iBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLint v0, GLint v1, GLint v2, GLint v3) { GLint xyzw[4] = {v0, v1, v2, v3}; - return ValidateProgramUniform4ivBase(context, program, location, 1, xyzw); + return ValidateProgramUniform4ivBase(context, entryPoint, program, location, 1, xyzw); } bool ValidateProgramUniform1uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLuint v0) { - return ValidateProgramUniform1uivBase(context, program, location, 1, &v0); + return ValidateProgramUniform1uivBase(context, entryPoint, program, location, 1, &v0); } bool ValidateProgramUniform2uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLuint v0, GLuint v1) { GLuint xy[2] = {v0, v1}; - return ValidateProgramUniform2uivBase(context, program, location, 1, xy); + return ValidateProgramUniform2uivBase(context, entryPoint, program, location, 1, xy); } bool ValidateProgramUniform3uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2) { GLuint xyz[3] = {v0, v1, v2}; - return ValidateProgramUniform3uivBase(context, program, location, 1, xyz); + return ValidateProgramUniform3uivBase(context, entryPoint, program, location, 1, xyz); } bool ValidateProgramUniform4uiBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLuint xyzw[4] = {v0, v1, v2, v3}; - return ValidateProgramUniform4uivBase(context, program, location, 1, xyzw); + return ValidateProgramUniform4uivBase(context, entryPoint, program, location, 1, xyzw); } bool ValidateProgramUniform1fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLfloat v0) { - return ValidateProgramUniform1fvBase(context, program, location, 1, &v0); + return ValidateProgramUniform1fvBase(context, entryPoint, program, location, 1, &v0); } bool ValidateProgramUniform2fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLfloat v0, GLfloat v1) { GLfloat xy[2] = {v0, v1}; - return ValidateProgramUniform2fvBase(context, program, location, 1, xy); + return ValidateProgramUniform2fvBase(context, entryPoint, program, location, 1, xy); } bool ValidateProgramUniform3fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2) { GLfloat xyz[3] = {v0, v1, v2}; - return ValidateProgramUniform3fvBase(context, program, location, 1, xyz); + return ValidateProgramUniform3fvBase(context, entryPoint, program, location, 1, xyz); } bool ValidateProgramUniform4fBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { GLfloat xyzw[4] = {v0, v1, v2, v3}; - return ValidateProgramUniform4fvBase(context, program, location, 1, xyzw); + return ValidateProgramUniform4fvBase(context, entryPoint, program, location, 1, xyzw); } bool ValidateProgramUniform1ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLint *value) { const LinkedUniform *uniform = nullptr; - Program *programObject = GetValidProgram(context, program); - return ValidateUniformCommonBase(context, programObject, location, count, &uniform) && - ValidateUniform1ivValue(context, uniform->type, count, value); + Program *programObject = GetValidProgram(context, entryPoint, program); + return ValidateUniformCommonBase(context, entryPoint, programObject, location, count, + &uniform) && + ValidateUniform1ivValue(context, entryPoint, uniform->type, count, value); } bool ValidateProgramUniform2ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLint *value) { - return ValidateProgramUniformBase(context, GL_INT_VEC2, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_INT_VEC2, program, location, count); } bool ValidateProgramUniform3ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLint *value) { - return ValidateProgramUniformBase(context, GL_INT_VEC3, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_INT_VEC3, program, location, count); } bool ValidateProgramUniform4ivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLint *value) { - return ValidateProgramUniformBase(context, GL_INT_VEC4, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_INT_VEC4, program, location, count); } bool ValidateProgramUniform1uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateProgramUniformBase(context, GL_UNSIGNED_INT, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_UNSIGNED_INT, program, location, + count); } bool ValidateProgramUniform2uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateProgramUniformBase(context, GL_UNSIGNED_INT_VEC2, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_UNSIGNED_INT_VEC2, program, location, + count); } bool ValidateProgramUniform3uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateProgramUniformBase(context, GL_UNSIGNED_INT_VEC3, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_UNSIGNED_INT_VEC3, program, location, + count); } bool ValidateProgramUniform4uivBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLuint *value) { - return ValidateProgramUniformBase(context, GL_UNSIGNED_INT_VEC4, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_UNSIGNED_INT_VEC4, program, location, + count); } bool ValidateProgramUniform1fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLfloat *value) { - return ValidateProgramUniformBase(context, GL_FLOAT, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_FLOAT, program, location, count); } bool ValidateProgramUniform2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLfloat *value) { - return ValidateProgramUniformBase(context, GL_FLOAT_VEC2, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_FLOAT_VEC2, program, location, count); } bool ValidateProgramUniform3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLfloat *value) { - return ValidateProgramUniformBase(context, GL_FLOAT_VEC3, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_FLOAT_VEC3, program, location, count); } bool ValidateProgramUniform4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLfloat *value) { - return ValidateProgramUniformBase(context, GL_FLOAT_VEC4, program, location, count); + return ValidateProgramUniformBase(context, entryPoint, GL_FLOAT_VEC4, program, location, count); } bool ValidateProgramUniformMatrix2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT2, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT2, program, location, + count, transpose); } bool ValidateProgramUniformMatrix3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT3, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT3, program, location, + count, transpose); } bool ValidateProgramUniformMatrix4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT4, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT4, program, location, + count, transpose); } bool ValidateProgramUniformMatrix2x3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT2x3, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT2x3, program, location, + count, transpose); } bool ValidateProgramUniformMatrix3x2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT3x2, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT3x2, program, location, + count, transpose); } bool ValidateProgramUniformMatrix2x4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT2x4, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT2x4, program, location, + count, transpose); } bool ValidateProgramUniformMatrix4x2fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT4x2, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT4x2, program, location, + count, transpose); } bool ValidateProgramUniformMatrix3x4fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT3x4, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT3x4, program, location, + count, transpose); } bool ValidateProgramUniformMatrix4x3fvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLfloat *value) { - return ValidateProgramUniformMatrixBase(context, GL_FLOAT_MAT4x3, program, location, count, - transpose); + return ValidateProgramUniformMatrixBase(context, entryPoint, GL_FLOAT_MAT4x3, program, location, + count, transpose); } bool ValidateGetTexLevelParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, const GLfloat *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGetTexLevelParameterBase(context, target, level, pname, nullptr); + return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr); } bool ValidateGetTexLevelParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, GLsizei bufSize, const GLsizei *length, @@ -914,25 +973,27 @@ UNIMPLEMENTED(); return false; } bool ValidateGetTexLevelParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, const GLint *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGetTexLevelParameterBase(context, target, level, pname, nullptr); + return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr); } bool ValidateGetTexLevelParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum pname, GLsizei bufSize, const GLsizei *length, @@ -941,168 +1002,179 @@ UNIMPLEMENTED(); return false; } bool ValidateTexStorage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateTexStorage2DMultisampleBase(context, target, samples, internalFormat, width, - height); + return ValidateTexStorage2DMultisampleBase(context, entryPoint, target, samples, internalFormat, + width, height); } bool ValidateTexStorageMem2DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memory, GLuint64 offset) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateGetMultisamplefv(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGetMultisamplefvBase(context, pname, index, val); + return ValidateGetMultisamplefvBase(context, entryPoint, pname, index, val); } bool ValidateGetMultisamplefvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, GLsizei bufSize, const GLsizei *length, const GLfloat *val) { UNIMPLEMENTED(); return false; } -bool ValidateFramebufferParameteri(const Context *context, GLenum target, GLenum pname, GLint param) +bool ValidateFramebufferParameteri(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum pname, + GLint param) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } switch (pname) { case GL_FRAMEBUFFER_DEFAULT_WIDTH: { GLint maxWidth = context->getCaps().maxFramebufferWidth; if (param < 0 || param > maxWidth) { - context->validationError(GL_INVALID_VALUE, kExceedsFramebufferWidth); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsFramebufferWidth); return false; } break; } case GL_FRAMEBUFFER_DEFAULT_HEIGHT: { GLint maxHeight = context->getCaps().maxFramebufferHeight; if (param < 0 || param > maxHeight) { - context->validationError(GL_INVALID_VALUE, kExceedsFramebufferHeight); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsFramebufferHeight); return false; } break; } case GL_FRAMEBUFFER_DEFAULT_SAMPLES: { GLint maxSamples = context->getCaps().maxFramebufferSamples; if (param < 0 || param > maxSamples) { - context->validationError(GL_INVALID_VALUE, kExceedsFramebufferSamples); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsFramebufferSamples); return false; } break; } case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: { break; } case GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT: { - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kGeometryShaderExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kGeometryShaderExtensionNotEnabled); return false; } GLint maxLayers = context->getCaps().maxFramebufferLayers; if (param < 0 || param > maxLayers) { - context->validationError(GL_INVALID_VALUE, kInvalidFramebufferLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFramebufferLayer); return false; } break; } default: { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } } const Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target); ASSERT(framebuffer); if (framebuffer->isDefault()) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultFramebuffer); return false; } return true; } bool ValidateGetFramebufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (!ValidFramebufferTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget); return false; } switch (pname) { @@ -1110,33 +1182,36 @@ case GL_FRAMEBUFFER_DEFAULT_HEIGHT: case GL_FRAMEBUFFER_DEFAULT_SAMPLES: case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: break; case GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT: - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kGeometryShaderExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_ENUM, + kGeometryShaderExtensionNotEnabled); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } const Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target); ASSERT(framebuffer); if (framebuffer->isDefault()) { - context->validationError(GL_INVALID_OPERATION, kDefaultFramebuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultFramebuffer); return false; } return true; } bool ValidateGetFramebufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params) @@ -1144,336 +1219,353 @@ UNIMPLEMENTED(); return false; } bool ValidateGetProgramResourceIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, const GLchar *name) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!ValidateNamedProgramInterface(programInterface)) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramInterface); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramInterface); return false; } return true; } bool ValidateBindVertexBuffer(const Context *context, + angle::EntryPoint entryPoint, GLuint bindingIndex, BufferID buffer, GLintptr offset, GLsizei stride) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (!context->isBufferGenerated(buffer)) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } const Caps &caps = context->getCaps(); if (bindingIndex >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); return false; } if (offset < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if (stride < 0 || stride > caps.maxVertexAttribStride) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribStride); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribStride); return false; } // [OpenGL ES 3.1] Section 10.3.1 page 244: // An INVALID_OPERATION error is generated if the default vertex array object is bound. if (context->getState().getVertexArrayId().value == 0) { - context->validationError(GL_INVALID_OPERATION, kDefaultVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultVertexArray); return false; } return true; } -bool ValidateVertexBindingDivisor(const Context *context, GLuint bindingIndex, GLuint divisor) +bool ValidateVertexBindingDivisor(const Context *context, + angle::EntryPoint entryPoint, + GLuint bindingIndex, + GLuint divisor) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } const Caps &caps = context->getCaps(); if (bindingIndex >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); return false; } // [OpenGL ES 3.1] Section 10.3.1 page 243: // An INVALID_OPERATION error is generated if the default vertex array object is bound. if (context->getState().getVertexArrayId().value == 0) { - context->validationError(GL_INVALID_OPERATION, kDefaultVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultVertexArray); return false; } return true; } bool ValidateVertexAttribFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, VertexAttribType type, GLboolean normalized, GLuint relativeoffset) { - if (!ValidateVertexAttribFormatCommon(context, relativeoffset)) + if (!ValidateVertexAttribFormatCommon(context, entryPoint, relativeoffset)) { return false; } - return ValidateFloatVertexFormat(context, attribindex, size, type); + return ValidateFloatVertexFormat(context, entryPoint, attribindex, size, type); } bool ValidateVertexAttribIFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, VertexAttribType type, GLuint relativeoffset) { - if (!ValidateVertexAttribFormatCommon(context, relativeoffset)) + if (!ValidateVertexAttribFormatCommon(context, entryPoint, relativeoffset)) { return false; } - return ValidateIntegerVertexFormat(context, attribindex, size, type); + return ValidateIntegerVertexFormat(context, entryPoint, attribindex, size, type); } -bool ValidateVertexAttribBinding(const Context *context, GLuint attribIndex, GLuint bindingIndex) +bool ValidateVertexAttribBinding(const Context *context, + angle::EntryPoint entryPoint, + GLuint attribIndex, + GLuint bindingIndex) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } // [OpenGL ES 3.1] Section 10.3.1 page 243: // An INVALID_OPERATION error is generated if the default vertex array object is bound. if (context->getState().getVertexArrayId().value == 0) { - context->validationError(GL_INVALID_OPERATION, kDefaultVertexArray); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDefaultVertexArray); return false; } const Caps &caps = context->getCaps(); if (attribIndex >= static_cast(caps.maxVertexAttributes)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxVertexAttribute); return false; } if (bindingIndex >= static_cast(caps.maxVertexAttribBindings)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings); return false; } return true; } bool ValidateGetProgramResourceName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, GLuint index, GLsizei bufSize, const GLsizei *length, const GLchar *name) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!ValidateNamedProgramInterface(programInterface)) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramInterface); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramInterface); return false; } if (!ValidateProgramResourceIndex(programObject, programInterface, index)) { - context->validationError(GL_INVALID_VALUE, kInvalidProgramResourceIndex); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramResourceIndex); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } return true; } bool ValidateDispatchCompute(const Context *context, + angle::EntryPoint entryPoint, GLuint numGroupsX, GLuint numGroupsY, GLuint numGroupsZ) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } const State &state = context->getState(); const ProgramExecutable *executable = state.getProgramExecutable(); if (executable == nullptr || !executable->hasLinkedShaderStage(ShaderType::Compute)) { - context->validationError(GL_INVALID_OPERATION, kNoActiveProgramWithComputeShader); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoActiveProgramWithComputeShader); return false; } const Caps &caps = context->getCaps(); if (numGroupsX > static_cast(caps.maxComputeWorkGroupCount[0])) { - context->validationError(GL_INVALID_VALUE, kExceedsComputeWorkGroupCountX); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsComputeWorkGroupCountX); return false; } if (numGroupsY > static_cast(caps.maxComputeWorkGroupCount[1])) { - context->validationError(GL_INVALID_VALUE, kExceedsComputeWorkGroupCountY); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsComputeWorkGroupCountY); return false; } if (numGroupsZ > static_cast(caps.maxComputeWorkGroupCount[2])) { - context->validationError(GL_INVALID_VALUE, kExceedsComputeWorkGroupCountZ); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsComputeWorkGroupCountZ); return false; } return true; } -bool ValidateDispatchComputeIndirect(const Context *context, GLintptr indirect) +bool ValidateDispatchComputeIndirect(const Context *context, + angle::EntryPoint entryPoint, + GLintptr indirect) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } const State &state = context->getState(); const ProgramExecutable *executable = state.getProgramExecutable(); if (executable == nullptr || !executable->hasLinkedShaderStage(ShaderType::Compute)) { - context->validationError(GL_INVALID_OPERATION, kNoActiveProgramWithComputeShader); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kNoActiveProgramWithComputeShader); return false; } if (indirect < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset); return false; } if ((indirect & (sizeof(GLuint) - 1)) != 0) { - context->validationError(GL_INVALID_VALUE, kOffsetMustBeMultipleOfUint); + context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetMustBeMultipleOfUint); return false; } Buffer *dispatchIndirectBuffer = state.getTargetBuffer(BufferBinding::DispatchIndirect); if (!dispatchIndirectBuffer) { - context->validationError(GL_INVALID_OPERATION, kDispatchIndirectBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kDispatchIndirectBufferNotBound); return false; } CheckedNumeric checkedOffset(static_cast(indirect)); auto checkedSum = checkedOffset + static_cast(3 * sizeof(GLuint)); if (!checkedSum.IsValid() || checkedSum.ValueOrDie() > static_cast(dispatchIndirectBuffer->getSize())) { - context->validationError(GL_INVALID_OPERATION, kInsufficientBufferSize); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInsufficientBufferSize); return false; } return true; } bool ValidateBindImageTexture(const Context *context, + angle::EntryPoint entryPoint, GLuint unit, TextureID texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } GLuint maxImageUnits = static_cast(context->getCaps().maxImageUnits); if (unit >= maxImageUnits) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxImageUnits); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxImageUnits); return false; } if (level < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLevel); return false; } if (layer < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLayer); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLayer); return false; } if (access != GL_READ_ONLY && access != GL_WRITE_ONLY && access != GL_READ_WRITE) { - context->validationError(GL_INVALID_ENUM, kInvalidImageAccess); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidImageAccess); return false; } switch (format) { @@ -1490,66 +1582,68 @@ case GL_R32I: case GL_RGBA8: case GL_RGBA8_SNORM: break; default: - context->validationError(GL_INVALID_VALUE, kInvalidImageFormat); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidImageFormat); return false; } if (texture.value != 0) { Texture *tex = context->getTexture(texture); if (tex == nullptr) { - context->validationError(GL_INVALID_VALUE, kMissingTextureName); + context->validationError(entryPoint, GL_INVALID_VALUE, kMissingTextureName); return false; } if (!tex->getImmutableFormat()) { - context->validationError(GL_INVALID_OPERATION, kTextureIsNotImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureIsNotImmutable); return false; } } return true; } bool ValidateGetProgramResourceLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, const GLchar *name) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } if (!ValidateLocationProgramInterface(programInterface)) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramInterface); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramInterface); return false; } return true; } bool ValidateGetProgramResourceiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, @@ -1557,76 +1651,78 @@ const GLsizei *length, const GLint *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!ValidateProgramInterface(programInterface)) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramInterface); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramInterface); return false; } if (propCount <= 0) { - context->validationError(GL_INVALID_VALUE, kInvalidPropCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidPropCount); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufSize); return false; } if (!ValidateProgramResourceIndex(programObject, programInterface, index)) { - context->validationError(GL_INVALID_VALUE, kInvalidProgramResourceIndex); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidProgramResourceIndex); return false; } for (GLsizei i = 0; i < propCount; i++) { - if (!ValidateProgramResourceProperty(context, props[i])) + if (!ValidateProgramResourceProperty(context, entryPoint, props[i])) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramResourceProperty); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramResourceProperty); return false; } if (!ValidateProgramResourcePropertyByInterface(props[i], programInterface)) { - context->validationError(GL_INVALID_OPERATION, kInvalidPropertyForProgramInterface); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidPropertyForProgramInterface); return false; } } return true; } bool ValidateGetProgramInterfaceiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, GLenum pname, const GLint *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (programObject == nullptr) { return false; } if (!ValidateProgramInterface(programInterface)) { - context->validationError(GL_INVALID_ENUM, kInvalidProgramInterface); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidProgramInterface); return false; } switch (pname) { @@ -1634,17 +1730,17 @@ case GL_MAX_NAME_LENGTH: case GL_MAX_NUM_ACTIVE_VARIABLES: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } if (pname == GL_MAX_NAME_LENGTH && programInterface == GL_ATOMIC_COUNTER_BUFFER) { - context->validationError(GL_INVALID_OPERATION, kAtomicCounterResourceName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kAtomicCounterResourceName); return false; } if (pname == GL_MAX_NUM_ACTIVE_VARIABLES) { @@ -1654,19 +1750,21 @@ case GL_SHADER_STORAGE_BLOCK: case GL_UNIFORM_BLOCK: break; default: - context->validationError(GL_INVALID_OPERATION, kMaxActiveVariablesInterface); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kMaxActiveVariablesInterface); return false; } } return true; } bool ValidateGetProgramInterfaceivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, GLenum pname, GLsizei bufSize, const GLsizei *length, @@ -1675,50 +1773,57 @@ UNIMPLEMENTED(); return false; } bool ValidateGenProgramPipelinesBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelines) { - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateDeleteProgramPipelinesBase(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelines) { - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } -bool ValidateBindProgramPipelineBase(const Context *context, ProgramPipelineID pipeline) +bool ValidateBindProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipeline) { if (!context->isProgramPipelineGenerated({pipeline})) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } return true; } -bool ValidateIsProgramPipelineBase(const Context *context, ProgramPipelineID pipeline) +bool ValidateIsProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipeline) { return true; } bool ValidateUseProgramStagesBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipeline, GLbitfield stages, ShaderProgramID programId) { // GL_INVALID_VALUE is generated if shaders contains set bits that are not recognized, and is // not the reserved value GL_ALL_SHADER_BITS. GLbitfield knownShaderBits = GL_VERTEX_SHADER_BIT | GL_FRAGMENT_SHADER_BIT | GL_COMPUTE_SHADER_BIT; - if (context->getClientVersion() >= ES_3_2 || context->getExtensions().geometryShader) + if (context->getClientVersion() >= ES_3_2 || context->getExtensions().geometryShaderAny()) { knownShaderBits |= GL_GEOMETRY_SHADER_BIT; } if (context->getClientVersion() >= ES_3_2 || context->getExtensions().tessellationShaderEXT) @@ -1727,20 +1832,20 @@ knownShaderBits |= GL_TESS_EVALUATION_SHADER_BIT; } if ((stages & ~knownShaderBits) && (stages != GL_ALL_SHADER_BITS)) { - context->validationError(GL_INVALID_VALUE, kUnrecognizedShaderStageBit); + context->validationError(entryPoint, GL_INVALID_VALUE, kUnrecognizedShaderStageBit); return false; } // GL_INVALID_OPERATION is generated if pipeline is not a name previously returned from a call // to glGenProgramPipelines or if such a name has been deleted by a call to // glDeleteProgramPipelines. if (!context->isProgramPipelineGenerated({pipeline})) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } // If program is zero, or refers to a program object with no valid shader executable for a given // stage, it is as if the pipeline object has no programmable stage configured for the indicated @@ -1751,140 +1856,145 @@ } Program *program = context->getProgramNoResolveLink(programId); if (!program) { - context->validationError(GL_INVALID_VALUE, kProgramDoesNotExist); + context->validationError(entryPoint, GL_INVALID_VALUE, kProgramDoesNotExist); return false; } // GL_INVALID_OPERATION is generated if program refers to a program object that was not linked // with its GL_PROGRAM_SEPARABLE status set. // resolveLink() may not have been called if glCreateShaderProgramv() was not used and // glDetachShader() was not called. program->resolveLink(context); if (!program->isSeparable()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotSeparable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotSeparable); return false; } // GL_INVALID_OPERATION is generated if program refers to a program object that has not been // successfully linked. if (!program->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } bool ValidateActiveShaderProgramBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipeline, ShaderProgramID programId) { // An INVALID_OPERATION error is generated if pipeline is not a name returned from a previous // call to GenProgramPipelines or if such a name has since been deleted by // DeleteProgramPipelines. if (!context->isProgramPipelineGenerated({pipeline})) { - context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated); + context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated); return false; } // An INVALID_VALUE error is generated if program is not zero and is not the name of either a // program or shader object. if ((programId.value != 0) && !context->isProgram(programId) && !context->isShader(programId)) { - context->validationError(GL_INVALID_VALUE, kProgramDoesNotExist); + context->validationError(entryPoint, GL_INVALID_VALUE, kProgramDoesNotExist); return false; } // An INVALID_OPERATION error is generated if program is the name of a shader object. if (context->isShader(programId)) { - context->validationError(GL_INVALID_OPERATION, kExpectedProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExpectedProgramName); return false; } // An INVALID_OPERATION error is generated if program is not zero and has not been linked, or // was last linked unsuccessfully. The active program is not modified. Program *program = context->getProgramNoResolveLink(programId); if ((programId.value != 0) && !program->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } bool ValidateCreateShaderProgramvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderType type, GLsizei count, const GLchar *const *strings) { switch (type) { case ShaderType::InvalidEnum: - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; case ShaderType::Vertex: case ShaderType::Fragment: case ShaderType::Compute: break; case ShaderType::Geometry: - if (!context->getExtensions().geometryShader && context->getClientVersion() < ES_3_2) + if (!context->getExtensions().geometryShaderAny() && + context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } break; case ShaderType::TessControl: case ShaderType::TessEvaluation: if (!context->getExtensions().tessellationShaderEXT && context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_ENUM, kInvalidShaderType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidShaderType); return false; } break; default: UNREACHABLE(); } // GL_INVALID_VALUE is generated if count is negative. if (count < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeCount); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount); return false; } return true; } bool ValidateCreateShaderProgramvBase(const Context *context, + angle::EntryPoint entryPoint, ShaderType type, GLsizei count, const GLchar **strings) { const GLchar *const *tmpStrings = strings; - return ValidateCreateShaderProgramvBase(context, type, count, tmpStrings); + return ValidateCreateShaderProgramvBase(context, entryPoint, type, count, tmpStrings); } bool ValidateGetProgramPipelineivBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipeline, GLenum pname, const GLint *params) { // An INVALID_OPERATION error is generated if pipeline is not a name returned from a previous // call to GenProgramPipelines or if such a name has since been deleted by // DeleteProgramPipelines. if ((pipeline.value == 0) || (!context->isProgramPipelineGenerated(pipeline))) { - context->validationError(GL_INVALID_OPERATION, kProgramPipelineDoesNotExist); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramPipelineDoesNotExist); return false; } // An INVALID_ENUM error is generated if pname is not ACTIVE_PROGRAM, // INFO_LOG_LENGTH, VALIDATE_STATUS, or one of the type arguments in @@ -1896,709 +2006,787 @@ case GL_VALIDATE_STATUS: case GL_VERTEX_SHADER: case GL_FRAGMENT_SHADER: case GL_COMPUTE_SHADER: break; + case GL_GEOMETRY_SHADER: + return context->getExtensions().geometryShaderAny() || + context->getClientVersion() >= ES_3_2; + case GL_TESS_CONTROL_SHADER: + case GL_TESS_EVALUATION_SHADER: + return context->getExtensions().tessellationShaderEXT || + context->getClientVersion() >= ES_3_2; default: - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } return true; } -bool ValidateValidateProgramPipelineBase(const Context *context, ProgramPipelineID pipeline) +bool ValidateValidateProgramPipelineBase(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipeline) { if (pipeline.value == 0) { return false; } if (!context->isProgramPipelineGenerated(pipeline)) { - context->validationError(GL_INVALID_OPERATION, kProgramPipelineDoesNotExist); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramPipelineDoesNotExist); return false; } return true; } bool ValidateGetProgramPipelineInfoLogBase(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipeline, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog) { if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } if (!context->isProgramPipelineGenerated(pipeline)) { - context->validationError(GL_INVALID_VALUE, kProgramPipelineDoesNotExist); + context->validationError(entryPoint, GL_INVALID_VALUE, kProgramPipelineDoesNotExist); return false; } return true; } bool ValidateActiveShaderProgram(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, ShaderProgramID programPacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateActiveShaderProgramBase(context, pipelinePacked, programPacked); + return ValidateActiveShaderProgramBase(context, entryPoint, pipelinePacked, programPacked); } -bool ValidateBindProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateBindProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateBindProgramPipelineBase(context, pipelinePacked); + return ValidateBindProgramPipelineBase(context, entryPoint, pipelinePacked); } bool ValidateCreateShaderProgramv(const Context *context, + angle::EntryPoint entryPoint, ShaderType typePacked, GLsizei count, const GLchar *const *strings) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateCreateShaderProgramvBase(context, typePacked, count, strings); + return ValidateCreateShaderProgramvBase(context, entryPoint, typePacked, count, strings); } bool ValidateDeleteProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateDeleteProgramPipelinesBase(context, n, pipelinesPacked); + return ValidateDeleteProgramPipelinesBase(context, entryPoint, n, pipelinesPacked); } bool ValidateGenProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGenProgramPipelinesBase(context, n, pipelinesPacked); + return ValidateGenProgramPipelinesBase(context, entryPoint, n, pipelinesPacked); } bool ValidateGetProgramPipelineInfoLog(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGetProgramPipelineInfoLogBase(context, pipelinePacked, bufSize, length, infoLog); + return ValidateGetProgramPipelineInfoLogBase(context, entryPoint, pipelinePacked, bufSize, + length, infoLog); } bool ValidateGetProgramPipelineiv(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLenum pname, const GLint *params) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateGetProgramPipelineivBase(context, pipelinePacked, pname, params); + return ValidateGetProgramPipelineivBase(context, entryPoint, pipelinePacked, pname, params); } -bool ValidateIsProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateIsProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateIsProgramPipelineBase(context, pipelinePacked); + return ValidateIsProgramPipelineBase(context, entryPoint, pipelinePacked); } bool ValidateProgramUniform1f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1fBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1fBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform1i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1iBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1iBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform1ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1uiBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1uiBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform1uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2fBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2fBase(context, entryPoint, programPacked, locationPacked, v0, v1); } bool ValidateProgramUniform2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2iBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2iBase(context, entryPoint, programPacked, locationPacked, v0, v1); } bool ValidateProgramUniform2iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2uiBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2uiBase(context, entryPoint, programPacked, locationPacked, v0, + v1); } bool ValidateProgramUniform2uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform2uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3fBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3fBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3iBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3iBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3uiBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3uiBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform3uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4fBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4fBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4iBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4iBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4uiBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4uiBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniform4uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniformMatrix2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix2x3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix2x3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2x3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix2x4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix2x4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2x4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3x2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix3x2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3x2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3x4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix3x4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3x4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4x2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix4x2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4x2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4x3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateProgramUniformMatrix4x3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4x3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateUseProgramStages(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLbitfield stages, ShaderProgramID programPacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateUseProgramStagesBase(context, pipelinePacked, stages, programPacked); + return ValidateUseProgramStagesBase(context, entryPoint, pipelinePacked, stages, programPacked); } -bool ValidateValidateProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateValidateProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateValidateProgramPipelineBase(context, pipelinePacked); + return ValidateValidateProgramPipelineBase(context, entryPoint, pipelinePacked); } -bool ValidateMemoryBarrier(const Context *context, GLbitfield barriers) +bool ValidateMemoryBarrier(const Context *context, + angle::EntryPoint entryPoint, + GLbitfield barriers) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (barriers == GL_ALL_BARRIER_BITS) { @@ -2617,22 +2805,24 @@ supported_barrier_bits |= GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT; } if (barriers == 0 || (barriers & ~supported_barrier_bits) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidMemoryBarrierBit); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMemoryBarrierBit); return false; } return true; } -bool ValidateMemoryBarrierByRegion(const Context *context, GLbitfield barriers) +bool ValidateMemoryBarrierByRegion(const Context *context, + angle::EntryPoint entryPoint, + GLbitfield barriers) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (barriers == GL_ALL_BARRIER_BITS) { @@ -2643,51 +2833,51 @@ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT | GL_SHADER_STORAGE_BARRIER_BIT | GL_TEXTURE_FETCH_BARRIER_BIT | GL_UNIFORM_BARRIER_BIT; if (barriers == 0 || (barriers & ~supported_barrier_bits) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidMemoryBarrierBit); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMemoryBarrierBit); return false; } return true; } -bool ValidateSampleMaski(const Context *context, GLuint maskNumber, GLbitfield mask) +bool ValidateSampleMaski(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask) { if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } - return ValidateSampleMaskiBase(context, maskNumber, mask); + return ValidateSampleMaskiBase(context, entryPoint, maskNumber, mask); } -bool ValidateMinSampleShadingOES(const Context *context, GLfloat value) +bool ValidateMinSampleShadingOES(const Context *context, + angle::EntryPoint entryPoint, + GLfloat value) { if (!context->getExtensions().sampleShadingOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } -bool ValidateFramebufferTextureEXT(const Context *context, - GLenum target, - GLenum attachment, - TextureID texture, - GLint level) +bool ValidateFramebufferTextureCommon(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum attachment, + TextureID texture, + GLint level) { - if (!context->getExtensions().geometryShader) - { - context->validationError(GL_INVALID_OPERATION, kGeometryShaderExtensionNotEnabled); - return false; - } - if (texture.value != 0) { Texture *tex = context->getTexture(texture); // [EXT_geometry_shader] Section 9.2.8 "Attaching Texture Images to a Framebuffer" @@ -2700,191 +2890,260 @@ // [OpenGL ES 3.1 Chapter 9.2.8 (FramebufferTextureLayer) // An INVALID_OPERATION error is generated if texture is non-zero and is not the name of a // three-dimensional or two-dimensional array texture. if (tex == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidTextureName); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTextureName); return false; } if (!ValidMipLevel(context, tex->getType(), level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); + return false; + } + + // GLES spec 3.1, Section 9.2.8 "Attaching Texture Images to a Framebuffer" + // If textarget is TEXTURE_2D_MULTISAMPLE, then level must be zero. + if (tex->getType() == TextureType::_2DMultisample && level != 0) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kLevelNotZero); + return false; + } + + // [OES_texture_storage_multisample_2d_array] Section 9.2.2 "Attaching Images to Framebuffer + // Objects" + // If texture is a two-dimensional multisample array texture, then level must be zero. + if (context->getExtensions().textureStorageMultisample2dArrayOES && + tex->getType() == TextureType::_2DMultisampleArray && level != 0) + { + context->validationError(entryPoint, GL_INVALID_VALUE, kLevelNotZero); return false; } } - if (!ValidateFramebufferTextureBase(context, target, attachment, texture, level)) + if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level)) { return false; } return true; } +bool ValidateFramebufferTextureEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum attachment, + TextureID texture, + GLint level) +{ + if (!context->getExtensions().geometryShaderEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kGeometryShaderExtensionNotEnabled); + return false; + } + + return ValidateFramebufferTextureCommon(context, entryPoint, target, attachment, texture, + level); +} + +bool ValidateFramebufferTextureOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum attachment, + TextureID texture, + GLint level) +{ + if (!context->getExtensions().geometryShaderOES) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, + kGeometryShaderExtensionNotEnabled); + return false; + } + + return ValidateFramebufferTextureCommon(context, entryPoint, target, attachment, texture, + level); +} + // GL_OES_texture_storage_multisample_2d_array bool ValidateTexStorage3DMultisampleOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLenum sizedinternalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) { - if (!context->getExtensions().textureStorageMultisample2DArrayOES) + if (!context->getExtensions().textureStorageMultisample2dArrayOES) { - context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired); + context->validationError(entryPoint, GL_INVALID_ENUM, kMultisampleArrayExtensionRequired); return false; } if (target != TextureType::_2DMultisampleArray) { - context->validationError(GL_INVALID_ENUM, kTargetMustBeTexture2DMultisampleArrayOES); + context->validationError(entryPoint, GL_INVALID_ENUM, + kTargetMustBeTexture2DMultisampleArrayOES); return false; } if (width < 1 || height < 1 || depth < 1) { - context->validationError(GL_INVALID_VALUE, kNegativeSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize); return false; } if (depth > context->getCaps().maxArrayTextureLayers) { - context->validationError(GL_INVALID_VALUE, kTextureDepthOutOfRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureDepthOutOfRange); return false; } - return ValidateTexStorageMultisample(context, target, samples, sizedinternalformat, width, - height); + return ValidateTexStorageMultisample(context, entryPoint, target, samples, sizedinternalformat, + width, height); } bool ValidateTexStorageMem3DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, MemoryObjectID memory, GLuint64 offset) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateGetProgramResourceLocationIndexEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, const char *name) { - if (!context->getExtensions().blendFuncExtended) + if (!context->getExtensions().blendFuncExtendedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientVersion() < ES_3_1) { - context->validationError(GL_INVALID_OPERATION, kES31Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES31Required); return false; } if (programInterface != GL_PROGRAM_OUTPUT) { - context->validationError(GL_INVALID_ENUM, kProgramInterfaceMustBeProgramOutput); + context->validationError(entryPoint, GL_INVALID_ENUM, kProgramInterfaceMustBeProgramOutput); return false; } - Program *programObject = GetValidProgram(context, program); + Program *programObject = GetValidProgram(context, entryPoint, program); if (!programObject) { return false; } if (!programObject->isLinked()) { - context->validationError(GL_INVALID_OPERATION, kProgramNotLinked); + context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotLinked); return false; } return true; } // GL_OES_texture_buffer bool ValidateTexBufferOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked) { if (!context->getExtensions().textureBufferOES) { - context->validationError(GL_INVALID_OPERATION, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureBufferExtensionNotAvailable); return false; } - return ValidateTexBufferBase(context, target, internalformat, bufferPacked); + return ValidateTexBufferBase(context, entryPoint, target, internalformat, bufferPacked); } bool ValidateTexBufferRangeOES(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size) { if (!context->getExtensions().textureBufferOES) { - context->validationError(GL_INVALID_OPERATION, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureBufferExtensionNotAvailable); return false; } - return ValidateTexBufferRangeBase(context, target, internalformat, bufferPacked, offset, size); + return ValidateTexBufferRangeBase(context, entryPoint, target, internalformat, bufferPacked, + offset, size); } // GL_EXT_texture_buffer bool ValidateTexBufferEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked) { if (!context->getExtensions().textureBufferEXT) { - context->validationError(GL_INVALID_OPERATION, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureBufferExtensionNotAvailable); return false; } - return ValidateTexBufferBase(context, target, internalformat, bufferPacked); + return ValidateTexBufferBase(context, entryPoint, target, internalformat, bufferPacked); } bool ValidateTexBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size) { if (!context->getExtensions().textureBufferEXT) { - context->validationError(GL_INVALID_OPERATION, kTextureBufferExtensionNotAvailable); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTextureBufferExtensionNotAvailable); return false; } - return ValidateTexBufferRangeBase(context, target, internalformat, bufferPacked, offset, size); + return ValidateTexBufferRangeBase(context, entryPoint, target, internalformat, bufferPacked, + offset, size); } bool ValidateTexBufferBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked) { if (target != TextureType::Buffer) { - context->validationError(GL_INVALID_ENUM, kTextureBufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureBufferTarget); return false; } switch (internalformat) { @@ -2919,58 +3178,59 @@ case GL_RGBA16UI: case GL_RGBA32UI: break; default: - context->validationError(GL_INVALID_ENUM, kTextureBufferInternalFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kTextureBufferInternalFormat); return false; } if (bufferPacked.value != 0) { if (!context->isBufferGenerated(bufferPacked)) { - context->validationError(GL_INVALID_OPERATION, kTextureBufferInvalidBuffer); + context->validationError(entryPoint, GL_INVALID_OPERATION, kTextureBufferInvalidBuffer); return false; } } return true; } bool ValidateTexBufferRangeBase(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size) { const Caps &caps = context->getCaps(); if (offset < 0 || (offset % caps.textureBufferOffsetAlignment) != 0) { - context->validationError(GL_INVALID_VALUE, kTextureBufferOffsetAlignment); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureBufferOffsetAlignment); return false; } if (size <= 0) { - context->validationError(GL_INVALID_VALUE, kTextureBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureBufferSize); return false; } const Buffer *buffer = context->getBuffer(bufferPacked); if (!buffer) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); return false; } if (offset + size > buffer->getSize()) { - context->validationError(GL_INVALID_VALUE, kTextureBufferSizeOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kTextureBufferSizeOffset); return false; } - return ValidateTexBufferBase(context, target, internalformat, bufferPacked); + return ValidateTexBufferBase(context, entryPoint, target, internalformat, bufferPacked); } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationES31_autogen.h b/gfx/angle/checkout/src/libANGLE/validationES31_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationES31_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationES31_autogen.h @@ -10,325 +10,406 @@ #ifndef LIBANGLE_VALIDATION_ES31_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ES31_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; bool ValidateActiveShaderProgram(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, ShaderProgramID programPacked); bool ValidateBindImageTexture(const Context *context, + angle::EntryPoint entryPoint, GLuint unit, TextureID texturePacked, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -bool ValidateBindProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateBindProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); bool ValidateBindVertexBuffer(const Context *context, + angle::EntryPoint entryPoint, GLuint bindingindex, BufferID bufferPacked, GLintptr offset, GLsizei stride); bool ValidateCreateShaderProgramv(const Context *context, + angle::EntryPoint entryPoint, ShaderType typePacked, GLsizei count, const GLchar *const *strings); bool ValidateDeleteProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateDispatchCompute(const Context *context, + angle::EntryPoint entryPoint, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -bool ValidateDispatchComputeIndirect(const Context *context, GLintptr indirect); +bool ValidateDispatchComputeIndirect(const Context *context, + angle::EntryPoint entryPoint, + GLintptr indirect); bool ValidateDrawArraysIndirect(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const void *indirect); bool ValidateDrawElementsIndirect(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, DrawElementsType typePacked, const void *indirect); bool ValidateFramebufferParameteri(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLint param); bool ValidateGenProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateGetBooleani_v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLboolean *data); bool ValidateGetFramebufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params); bool ValidateGetMultisamplefv(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val); bool ValidateGetProgramInterfaceiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, GLenum pname, const GLint *params); bool ValidateGetProgramPipelineInfoLog(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog); bool ValidateGetProgramPipelineiv(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLenum pname, const GLint *params); bool ValidateGetProgramResourceIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, const GLchar *name); bool ValidateGetProgramResourceLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, const GLchar *name); bool ValidateGetProgramResourceName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, GLuint index, GLsizei bufSize, const GLsizei *length, const GLchar *name); bool ValidateGetProgramResourceiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetTexLevelParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, const GLfloat *params); bool ValidateGetTexLevelParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, const GLint *params); -bool ValidateIsProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked); -bool ValidateMemoryBarrier(const Context *context, GLbitfield barriers); -bool ValidateMemoryBarrierByRegion(const Context *context, GLbitfield barriers); +bool ValidateIsProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); +bool ValidateMemoryBarrier(const Context *context, + angle::EntryPoint entryPoint, + GLbitfield barriers); +bool ValidateMemoryBarrierByRegion(const Context *context, + angle::EntryPoint entryPoint, + GLbitfield barriers); bool ValidateProgramUniform1f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0); bool ValidateProgramUniform1fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform1i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0); bool ValidateProgramUniform1iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform1ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0); bool ValidateProgramUniform1uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform2f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1); bool ValidateProgramUniform2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform2i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1); bool ValidateProgramUniform2iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform2ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1); bool ValidateProgramUniform2uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform3f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2); bool ValidateProgramUniform3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform3i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2); bool ValidateProgramUniform3iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform3ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2); bool ValidateProgramUniform3uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform4f(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); bool ValidateProgramUniform4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform4i(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3); bool ValidateProgramUniform4iv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform4ui(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3); bool ValidateProgramUniform4uiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniformMatrix2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x2fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x3fv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); -bool ValidateSampleMaski(const Context *context, GLuint maskNumber, GLbitfield mask); +bool ValidateSampleMaski(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask); bool ValidateTexStorage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); bool ValidateUseProgramStages(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLbitfield stages, ShaderProgramID programPacked); -bool ValidateValidateProgramPipeline(const Context *context, ProgramPipelineID pipelinePacked); -bool ValidateVertexAttribBinding(const Context *context, GLuint attribindex, GLuint bindingindex); +bool ValidateValidateProgramPipeline(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); +bool ValidateVertexAttribBinding(const Context *context, + angle::EntryPoint entryPoint, + GLuint attribindex, + GLuint bindingindex); bool ValidateVertexAttribFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, VertexAttribType typePacked, GLboolean normalized, GLuint relativeoffset); bool ValidateVertexAttribIFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, VertexAttribType typePacked, GLuint relativeoffset); -bool ValidateVertexBindingDivisor(const Context *context, GLuint bindingindex, GLuint divisor); +bool ValidateVertexBindingDivisor(const Context *context, + angle::EntryPoint entryPoint, + GLuint bindingindex, + GLuint divisor); } // namespace gl #endif // LIBANGLE_VALIDATION_ES31_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationES32.cpp b/gfx/angle/checkout/src/libANGLE/validationES32.cpp --- a/gfx/angle/checkout/src/libANGLE/validationES32.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationES32.cpp @@ -24,108 +24,119 @@ namespace gl { using namespace err; -bool ValidateBlendBarrier(const Context *context) +bool ValidateBlendBarrier(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidateBlendEquationSeparatei(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha) { if (buf >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDrawBuffers); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers); return false; } - if (!ValidateBlendEquationSeparate(context, modeRGB, modeAlpha)) + if (!ValidateBlendEquationSeparate(context, entryPoint, modeRGB, modeAlpha)) { // error already generated return false; } return true; } -bool ValidateBlendEquationi(const Context *context, GLuint buf, GLenum mode) +bool ValidateBlendEquationi(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode) { if (buf >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDrawBuffers); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers); return false; } - if (!ValidateBlendEquation(context, mode)) + if (!ValidateBlendEquation(context, entryPoint, mode)) { // error already generated return false; } return true; } bool ValidateBlendFuncSeparatei(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { if (buf >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDrawBuffers); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers); return false; } - if (!ValidateBlendFuncSeparate(context, srcRGB, dstRGB, srcAlpha, dstAlpha)) + if (!ValidateBlendFuncSeparate(context, entryPoint, srcRGB, dstRGB, srcAlpha, dstAlpha)) { // error already generated return false; } return true; } -bool ValidateBlendFunci(const Context *context, GLuint buf, GLenum src, GLenum dst) +bool ValidateBlendFunci(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst) { if (buf >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kExceedsMaxDrawBuffers); + context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxDrawBuffers); return false; } - if (!ValidateBlendFunc(context, src, dst)) + if (!ValidateBlendFunc(context, entryPoint, src, dst)) { // error already generated return false; } return true; } bool ValidateColorMaski(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { if (index >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } return true; } bool ValidateCopyImageSubData(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -140,27 +151,29 @@ GLsizei srcHeight, GLsizei srcDepth) { if (context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_OPERATION, kES32Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required); return false; } - return ValidateCopyImageSubDataBase(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); + return ValidateCopyImageSubDataBase(context, entryPoint, srcName, srcTarget, srcLevel, srcX, + srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, + srcWidth, srcHeight, srcDepth); } bool ValidateDebugMessageCallback(const Context *context, + angle::EntryPoint entryPoint, GLDEBUGPROC callback, const void *userParam) { return true; } bool ValidateDebugMessageControl(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, @@ -168,75 +181,83 @@ { return true; } bool ValidateDebugMessageInsert(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf) { return true; } -bool ValidateDisablei(const Context *context, GLenum target, GLuint index) +bool ValidateDisablei(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { switch (target) { case GL_BLEND: if (index >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateDrawElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { - return ValidateDrawElementsCommon(context, mode, count, type, indices, 1); + return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 1); } bool ValidateDrawElementsInstancedBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei instancecount, GLint basevertex) { - return ValidateDrawElementsInstancedBase(context, mode, count, type, indices, instancecount); + return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + instancecount); } bool ValidateDrawRangeElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLuint start, GLuint end, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { if (end < start) { - context->validationError(GL_INVALID_VALUE, kInvalidElementRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidElementRange); return false; } - if (!ValidateDrawElementsCommon(context, mode, count, type, indices, 0)) + if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 0)) { return false; } // Skip range checks for no-op calls. @@ -246,38 +267,43 @@ } return true; } -bool ValidateEnablei(const Context *context, GLenum target, GLuint index) +bool ValidateEnablei(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { switch (target) { case GL_BLEND: if (index >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } bool ValidateFramebufferTexture(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texture, GLint level) { return true; } bool ValidateGetDebugMessageLog(const Context *context, + angle::EntryPoint entryPoint, GLuint count, GLsizei bufSize, const GLenum *sources, const GLenum *types, const GLuint *ids, @@ -286,35 +312,40 @@ const GLchar *messageLog) { return true; } -bool ValidateGetGraphicsResetStatus(const Context *context) +bool ValidateGetGraphicsResetStatus(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidateGetObjectLabel(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei bufSize, const GLsizei *length, const GLchar *label) { return true; } bool ValidateGetObjectPtrLabel(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei bufSize, const GLsizei *length, const GLchar *label) { return true; } -bool ValidateGetPointerv(const Context *context, GLenum pname, void *const *params) +bool ValidateGetPointerv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + void *const *params) { Version clientVersion = context->getClientVersion(); if ((clientVersion == ES_1_0) || (clientVersion == ES_1_1)) { @@ -325,11 +356,11 @@ case GL_COLOR_ARRAY_POINTER: case GL_TEXTURE_COORD_ARRAY_POINTER: case GL_POINT_SIZE_ARRAY_POINTER_OES: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidPointerQuery); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointerQuery); return false; } } else if (clientVersion == ES_3_2) { @@ -337,131 +368,147 @@ { case GL_DEBUG_CALLBACK_FUNCTION: case GL_DEBUG_CALLBACK_USER_PARAM: return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidPointerQuery); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPointerQuery); return false; } } else { - context->validationError(GL_INVALID_OPERATION, kES1or32Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES1or32Required); return false; } } bool ValidateGetSamplerParameterIiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *params) { return true; } bool ValidateGetSamplerParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLuint *params) { return true; } bool ValidateGetTexParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params) { return true; } bool ValidateGetTexParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params) { return true; } bool ValidateGetnUniformfv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLfloat *params) { return true; } bool ValidateGetnUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLint *params) { return true; } bool ValidateGetnUniformuiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLuint *params) { return true; } -bool ValidateIsEnabledi(const Context *context, GLenum target, GLuint index) +bool ValidateIsEnabledi(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { switch (target) { case GL_BLEND: if (index >= static_cast(context->getCaps().maxDrawBuffers)) { - context->validationError(GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); + context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer); return false; } break; default: - context->validationError(GL_INVALID_ENUM, kEnumNotSupported); + context->validationError(entryPoint, GL_INVALID_ENUM, kEnumNotSupported); return false; } return true; } -bool ValidateMinSampleShading(const Context *context, GLfloat value) +bool ValidateMinSampleShading(const Context *context, angle::EntryPoint entryPoint, GLfloat value) { return true; } bool ValidateObjectLabel(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei length, const GLchar *label) { return true; } bool ValidateObjectPtrLabel(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei length, const GLchar *label) { return true; } -bool ValidatePatchParameteri(const Context *context, GLenum pname, GLint value) +bool ValidatePatchParameteri(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint value) { return true; } -bool ValidatePopDebugGroup(const Context *context) +bool ValidatePopDebugGroup(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidatePrimitiveBoundingBox(const Context *context, + angle::EntryPoint entryPoint, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, @@ -471,19 +518,21 @@ { return true; } bool ValidatePushDebugGroup(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLuint id, GLsizei length, const GLchar *message) { return true; } bool ValidateReadnPixels(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -493,72 +542,80 @@ { return true; } bool ValidateSamplerParameterIiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLint *param) { return true; } bool ValidateSamplerParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID sampler, GLenum pname, const GLuint *param) { return true; } bool ValidateTexBuffer(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID buffer) { if (context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_OPERATION, kES32Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required); return false; } - return ValidateTexBufferBase(context, target, internalformat, buffer); + return ValidateTexBufferBase(context, entryPoint, target, internalformat, buffer); } bool ValidateTexBufferRange(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLenum internalformat, BufferID buffer, GLintptr offset, GLsizeiptr size) { if (context->getClientVersion() < ES_3_2) { - context->validationError(GL_INVALID_OPERATION, kES32Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES32Required); return false; } - return ValidateTexBufferRangeBase(context, target, internalformat, buffer, offset, size); + return ValidateTexBufferRangeBase(context, entryPoint, target, internalformat, buffer, offset, + size); } bool ValidateTexParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params) { return true; } bool ValidateTexParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params) { return true; } bool ValidateTexStorage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, diff --git a/gfx/angle/checkout/src/libANGLE/validationES32_autogen.h b/gfx/angle/checkout/src/libANGLE/validationES32_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationES32_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationES32_autogen.h @@ -10,35 +10,47 @@ #ifndef LIBANGLE_VALIDATION_ES32_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ES32_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; -bool ValidateBlendBarrier(const Context *context); +bool ValidateBlendBarrier(const Context *context, angle::EntryPoint entryPoint); bool ValidateBlendEquationSeparatei(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -bool ValidateBlendEquationi(const Context *context, GLuint buf, GLenum mode); +bool ValidateBlendEquationi(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode); bool ValidateBlendFuncSeparatei(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -bool ValidateBlendFunci(const Context *context, GLuint buf, GLenum src, GLenum dst); +bool ValidateBlendFunci(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst); bool ValidateColorMaski(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); bool ValidateCopyImageSubData(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -51,170 +63,214 @@ GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); bool ValidateDebugMessageCallback(const Context *context, + angle::EntryPoint entryPoint, GLDEBUGPROC callback, const void *userParam); bool ValidateDebugMessageControl(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); bool ValidateDebugMessageInsert(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -bool ValidateDisablei(const Context *context, GLenum target, GLuint index); +bool ValidateDisablei(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); bool ValidateDrawElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); bool ValidateDrawElementsInstancedBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei instancecount, GLint basevertex); bool ValidateDrawRangeElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLuint start, GLuint end, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); -bool ValidateEnablei(const Context *context, GLenum target, GLuint index); +bool ValidateEnablei(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); bool ValidateFramebufferTexture(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texturePacked, GLint level); bool ValidateGetDebugMessageLog(const Context *context, + angle::EntryPoint entryPoint, GLuint count, GLsizei bufSize, const GLenum *sources, const GLenum *types, const GLuint *ids, const GLenum *severities, const GLsizei *lengths, const GLchar *messageLog); -bool ValidateGetGraphicsResetStatus(const Context *context); +bool ValidateGetGraphicsResetStatus(const Context *context, angle::EntryPoint entryPoint); bool ValidateGetObjectLabel(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei bufSize, const GLsizei *length, const GLchar *label); bool ValidateGetObjectPtrLabel(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei bufSize, const GLsizei *length, const GLchar *label); -bool ValidateGetPointerv(const Context *context, GLenum pname, void *const *params); +bool ValidateGetPointerv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + void *const *params); bool ValidateGetSamplerParameterIiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *params); bool ValidateGetSamplerParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *params); bool ValidateGetTexParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateGetTexParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); bool ValidateGetnUniformfv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLfloat *params); bool ValidateGetnUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLint *params); bool ValidateGetnUniformuiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLuint *params); -bool ValidateIsEnabledi(const Context *context, GLenum target, GLuint index); -bool ValidateMinSampleShading(const Context *context, GLfloat value); +bool ValidateIsEnabledi(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); +bool ValidateMinSampleShading(const Context *context, angle::EntryPoint entryPoint, GLfloat value); bool ValidateObjectLabel(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); bool ValidateObjectPtrLabel(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei length, const GLchar *label); -bool ValidatePatchParameteri(const Context *context, GLenum pname, GLint value); -bool ValidatePopDebugGroup(const Context *context); +bool ValidatePatchParameteri(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint value); +bool ValidatePopDebugGroup(const Context *context, angle::EntryPoint entryPoint); bool ValidatePrimitiveBoundingBox(const Context *context, + angle::EntryPoint entryPoint, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); bool ValidatePushDebugGroup(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLuint id, GLsizei length, const GLchar *message); bool ValidateReadnPixels(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *data); bool ValidateSamplerParameterIiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *param); bool ValidateSamplerParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *param); bool ValidateTexBuffer(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked); bool ValidateTexBufferRange(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); bool ValidateTexParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateTexParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); bool ValidateTexStorage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, diff --git a/gfx/angle/checkout/src/libANGLE/validationES3_autogen.h b/gfx/angle/checkout/src/libANGLE/validationES3_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationES3_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationES3_autogen.h @@ -10,33 +10,48 @@ #ifndef LIBANGLE_VALIDATION_ES3_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ES3_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; -bool ValidateBeginQuery(const Context *context, QueryType targetPacked, QueryID idPacked); -bool ValidateBeginTransformFeedback(const Context *context, PrimitiveMode primitiveModePacked); +bool ValidateBeginQuery(const Context *context, + angle::EntryPoint entryPoint, + QueryType targetPacked, + QueryID idPacked); +bool ValidateBeginTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + PrimitiveMode primitiveModePacked); bool ValidateBindBufferBase(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLuint index, BufferID bufferPacked); bool ValidateBindBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLuint index, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); -bool ValidateBindSampler(const Context *context, GLuint unit, SamplerID samplerPacked); +bool ValidateBindSampler(const Context *context, + angle::EntryPoint entryPoint, + GLuint unit, + SamplerID samplerPacked); bool ValidateBindTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, GLenum target, TransformFeedbackID idPacked); -bool ValidateBindVertexArray(const Context *context, VertexArrayID arrayPacked); +bool ValidateBindVertexArray(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID arrayPacked); bool ValidateBlitFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -44,41 +59,48 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); bool ValidateClearBufferfi(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); bool ValidateClearBufferfv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLfloat *value); bool ValidateClearBufferiv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLint *value); bool ValidateClearBufferuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum buffer, GLint drawbuffer, const GLuint *value); bool ValidateClientWaitSync(const Context *context, + angle::EntryPoint entryPoint, GLsync sync, GLbitfield flags, GLuint64 timeout); bool ValidateCompressedTexImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); bool ValidateCompressedTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -87,226 +109,304 @@ GLsizei depth, GLenum format, GLsizei imageSize, const void *data); bool ValidateCopyBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferBinding readTargetPacked, BufferBinding writeTargetPacked, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); bool ValidateCopyTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -bool ValidateDeleteQueries(const Context *context, GLsizei n, const QueryID *idsPacked); -bool ValidateDeleteSamplers(const Context *context, GLsizei count, const SamplerID *samplersPacked); -bool ValidateDeleteSync(const Context *context, GLsync sync); +bool ValidateDeleteQueries(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *idsPacked); +bool ValidateDeleteSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei count, + const SamplerID *samplersPacked); +bool ValidateDeleteSync(const Context *context, angle::EntryPoint entryPoint, GLsync sync); bool ValidateDeleteTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const TransformFeedbackID *idsPacked); bool ValidateDeleteVertexArrays(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const VertexArrayID *arraysPacked); bool ValidateDrawArraysInstanced(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint first, GLsizei count, GLsizei instancecount); -bool ValidateDrawBuffers(const Context *context, GLsizei n, const GLenum *bufs); +bool ValidateDrawBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs); bool ValidateDrawElementsInstanced(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei instancecount); bool ValidateDrawRangeElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLuint start, GLuint end, GLsizei count, DrawElementsType typePacked, const void *indices); -bool ValidateEndQuery(const Context *context, QueryType targetPacked); -bool ValidateEndTransformFeedback(const Context *context); -bool ValidateFenceSync(const Context *context, GLenum condition, GLbitfield flags); +bool ValidateEndQuery(const Context *context, angle::EntryPoint entryPoint, QueryType targetPacked); +bool ValidateEndTransformFeedback(const Context *context, angle::EntryPoint entryPoint); +bool ValidateFenceSync(const Context *context, + angle::EntryPoint entryPoint, + GLenum condition, + GLbitfield flags); bool ValidateFlushMappedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr length); bool ValidateFramebufferTextureLayer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texturePacked, GLint level, GLint layer); -bool ValidateGenQueries(const Context *context, GLsizei n, const QueryID *idsPacked); -bool ValidateGenSamplers(const Context *context, GLsizei count, const SamplerID *samplersPacked); +bool ValidateGenQueries(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *idsPacked); +bool ValidateGenSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei count, + const SamplerID *samplersPacked); bool ValidateGenTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const TransformFeedbackID *idsPacked); -bool ValidateGenVertexArrays(const Context *context, GLsizei n, const VertexArrayID *arraysPacked); +bool ValidateGenVertexArrays(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arraysPacked); bool ValidateGetActiveUniformBlockName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformBlockIndex uniformBlockIndexPacked, GLsizei bufSize, const GLsizei *length, const GLchar *uniformBlockName); bool ValidateGetActiveUniformBlockiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformBlockIndex uniformBlockIndexPacked, GLenum pname, const GLint *params); bool ValidateGetActiveUniformsiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, const GLint *params); bool ValidateGetBufferParameteri64v(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, const GLint64 *params); bool ValidateGetBufferPointerv(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, void *const *params); bool ValidateGetFragDataLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *name); bool ValidateGetInteger64i_v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLint64 *data); -bool ValidateGetInteger64v(const Context *context, GLenum pname, const GLint64 *data); -bool ValidateGetIntegeri_v(const Context *context, GLenum target, GLuint index, const GLint *data); +bool ValidateGetInteger64v(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint64 *data); +bool ValidateGetIntegeri_v(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + const GLint *data); bool ValidateGetInternalformativ(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLint *params); bool ValidateGetProgramBinary(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary); bool ValidateGetQueryObjectuiv(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLuint *params); bool ValidateGetQueryiv(const Context *context, + angle::EntryPoint entryPoint, QueryType targetPacked, GLenum pname, const GLint *params); bool ValidateGetSamplerParameterfv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLfloat *params); bool ValidateGetSamplerParameteriv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *params); -bool ValidateGetStringi(const Context *context, GLenum name, GLuint index); +bool ValidateGetStringi(const Context *context, + angle::EntryPoint entryPoint, + GLenum name, + GLuint index); bool ValidateGetSynciv(const Context *context, + angle::EntryPoint entryPoint, GLsync sync, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *values); bool ValidateGetTransformFeedbackVarying(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint index, GLsizei bufSize, const GLsizei *length, const GLsizei *size, const GLenum *type, const GLchar *name); bool ValidateGetUniformBlockIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *uniformBlockName); bool ValidateGetUniformIndices(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei uniformCount, const GLchar *const *uniformNames, const GLuint *uniformIndices); bool ValidateGetUniformuiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, const GLuint *params); bool ValidateGetVertexAttribIiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLint *params); bool ValidateGetVertexAttribIuiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLuint *params); bool ValidateInvalidateFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments); bool ValidateInvalidateSubFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -bool ValidateIsQuery(const Context *context, QueryID idPacked); -bool ValidateIsSampler(const Context *context, SamplerID samplerPacked); -bool ValidateIsSync(const Context *context, GLsync sync); -bool ValidateIsTransformFeedback(const Context *context, TransformFeedbackID idPacked); -bool ValidateIsVertexArray(const Context *context, VertexArrayID arrayPacked); +bool ValidateIsQuery(const Context *context, angle::EntryPoint entryPoint, QueryID idPacked); +bool ValidateIsSampler(const Context *context, + angle::EntryPoint entryPoint, + SamplerID samplerPacked); +bool ValidateIsSync(const Context *context, angle::EntryPoint entryPoint, GLsync sync); +bool ValidateIsTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + TransformFeedbackID idPacked); +bool ValidateIsVertexArray(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID arrayPacked); bool ValidateMapBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr length, GLbitfield access); -bool ValidatePauseTransformFeedback(const Context *context); +bool ValidatePauseTransformFeedback(const Context *context, angle::EntryPoint entryPoint); bool ValidateProgramBinary(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum binaryFormat, const void *binary, GLsizei length); bool ValidateProgramParameteri(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, GLint value); -bool ValidateReadBuffer(const Context *context, GLenum src); +bool ValidateReadBuffer(const Context *context, angle::EntryPoint entryPoint, GLenum src); bool ValidateRenderbufferStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -bool ValidateResumeTransformFeedback(const Context *context); +bool ValidateResumeTransformFeedback(const Context *context, angle::EntryPoint entryPoint); bool ValidateSamplerParameterf(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLfloat param); bool ValidateSamplerParameterfv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLfloat *param); bool ValidateSamplerParameteri(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLint param); bool ValidateSamplerParameteriv(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *param); bool ValidateTexImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -314,23 +414,26 @@ GLint border, GLenum format, GLenum type, const void *pixels); bool ValidateTexStorage2D(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); bool ValidateTexStorage3D(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); bool ValidateTexSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -339,101 +442,137 @@ GLsizei depth, GLenum format, GLenum type, const void *pixels); bool ValidateTransformFeedbackVaryings(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei count, const GLchar *const *varyings, GLenum bufferMode); -bool ValidateUniform1ui(const Context *context, UniformLocation locationPacked, GLuint v0); +bool ValidateUniform1ui(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation locationPacked, + GLuint v0); bool ValidateUniform1uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateUniform2ui(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLuint v0, GLuint v1); bool ValidateUniform2uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateUniform3ui(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2); bool ValidateUniform3uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateUniform4ui(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3); bool ValidateUniform4uiv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateUniformBlockBinding(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformBlockIndex uniformBlockIndexPacked, GLuint uniformBlockBinding); bool ValidateUniformMatrix2x3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix2x4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix3x2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix3x4fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix4x2fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUniformMatrix4x3fv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); -bool ValidateUnmapBuffer(const Context *context, BufferBinding targetPacked); -bool ValidateVertexAttribDivisor(const Context *context, GLuint index, GLuint divisor); +bool ValidateUnmapBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked); +bool ValidateVertexAttribDivisor(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor); bool ValidateVertexAttribI4i(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint x, GLint y, GLint z, GLint w); -bool ValidateVertexAttribI4iv(const Context *context, GLuint index, const GLint *v); +bool ValidateVertexAttribI4iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); bool ValidateVertexAttribI4ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -bool ValidateVertexAttribI4uiv(const Context *context, GLuint index, const GLuint *v); +bool ValidateVertexAttribI4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); bool ValidateVertexAttribIPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, VertexAttribType typePacked, GLsizei stride, const void *pointer); -bool ValidateWaitSync(const Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout); +bool ValidateWaitSync(const Context *context, + angle::EntryPoint entryPoint, + GLsync sync, + GLbitfield flags, + GLuint64 timeout); } // namespace gl #endif // LIBANGLE_VALIDATION_ES3_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationESEXT.cpp b/gfx/angle/checkout/src/libANGLE/validationESEXT.cpp --- a/gfx/angle/checkout/src/libANGLE/validationESEXT.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationESEXT.cpp @@ -21,23 +21,27 @@ using namespace err; namespace { template -bool ValidateGetImageFormatAndType(const Context *context, ObjectT *obj, GLenum format, GLenum type) +bool ValidateGetImageFormatAndType(const Context *context, + angle::EntryPoint entryPoint, + ObjectT *obj, + GLenum format, + GLenum type) { GLenum implFormat = obj->getImplementationColorReadFormat(context); if (!ValidES3Format(format) && (format != implFormat || format == GL_NONE)) { - context->validationError(GL_INVALID_ENUM, kInvalidFormat); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat); return false; } GLenum implType = obj->getImplementationColorReadType(context); if (!ValidES3Type(type) && (type != implType || type == GL_NONE)) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } // Format/type combinations are not yet validated. @@ -63,299 +67,345 @@ default: return false; } } -bool IsValidMemoryObjectParamater(const Context *context, GLenum pname) +bool IsValidMemoryObjectParamater(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname) { switch (pname) { case GL_DEDICATED_MEMORY_OBJECT_EXT: return true; + case GL_PROTECTED_MEMORY_OBJECT_EXT: + if (!context->getExtensions().protectedTexturesEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + return true; + default: return false; } } -bool ValidateObjectIdentifierAndName(const Context *context, GLenum identifier, GLuint name) +bool ValidateObjectIdentifierAndName(const Context *context, + angle::EntryPoint entryPoint, + GLenum identifier, + GLuint name) { bool isGLES11 = context->getClientVersion() == Version(1, 1); bool isGLES3 = context->getClientMajorVersion() >= 3; bool isGLES31 = context->getClientVersion() >= Version(3, 1); switch (identifier) { case GL_BUFFER_OBJECT_EXT: if (context->getBuffer({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidBufferName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidBufferName); return false; } return true; case GL_SHADER_OBJECT_EXT: if (isGLES11) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getShader({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidShaderName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidShaderName); return false; } return true; case GL_PROGRAM_OBJECT_EXT: if (isGLES11) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getProgramNoResolveLink({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidProgramName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidProgramName); return false; } return true; case GL_VERTEX_ARRAY_OBJECT_EXT: if (!isGLES3 && !context->getExtensions().vertexArrayObjectOES) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getVertexArray({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidVertexArrayName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidVertexArrayName); return false; } return true; case GL_QUERY_OBJECT_EXT: - if (!isGLES3 && !context->getExtensions().occlusionQueryBoolean) + if (!isGLES3 && !context->getExtensions().occlusionQueryBooleanEXT) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getQuery({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidQueryName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidQueryName); return false; } return true; case GL_TRANSFORM_FEEDBACK: if (!isGLES3) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getTransformFeedback({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidTransformFeedbackName); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidTransformFeedbackName); return false; } return true; case GL_SAMPLER: if (!isGLES3) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getSampler({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidSamplerName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSamplerName); return false; } return true; case GL_TEXTURE: if (context->getTexture({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidTextureName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidTextureName); return false; } return true; case GL_RENDERBUFFER: if (!context->isRenderbuffer({name})) { - context->validationError(GL_INVALID_OPERATION, kInvalidRenderbufferName); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidRenderbufferName); return false; } return true; case GL_FRAMEBUFFER: if (context->getFramebuffer({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidFramebufferName); + context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFramebufferName); return false; } return true; case GL_PROGRAM_PIPELINE_OBJECT_EXT: - if (!isGLES31 && !context->getExtensions().separateShaderObjects) + if (!isGLES31 && !context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_ENUM, kInvalidType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType); return false; } if (context->getProgramPipeline({name}) == nullptr) { - context->validationError(GL_INVALID_OPERATION, kInvalidProgramPipelineName); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kInvalidProgramPipelineName); return false; } return true; default: - context->validationError(GL_INVALID_ENUM, kInvalidIndentifier); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidIndentifier); return false; } } } // namespace bool ValidateGetTexImageANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum format, GLenum type, const void *pixels) { if (!context->getExtensions().getImageANGLE) { - context->validationError(GL_INVALID_OPERATION, kGetImageExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGetImageExtensionNotEnabled); return false; } if (!ValidTexture2DDestinationTarget(context, target) && !ValidTexture3DDestinationTarget(context, target)) { - context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget); return false; } if (level < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLevel); return false; } TextureType textureType = TextureTargetToType(target); if (!ValidMipLevel(context, textureType, level)) { - context->validationError(GL_INVALID_VALUE, kInvalidMipLevel); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevel); return false; } Texture *texture = context->getTextureByTarget(target); - if (!ValidateGetImageFormatAndType(context, texture, format, type)) + if (!ValidateGetImageFormatAndType(context, entryPoint, texture, format, type)) { return false; } GLsizei width = static_cast(texture->getWidth(target, level)); GLsizei height = static_cast(texture->getHeight(target, level)); - if (!ValidatePixelPack(context, format, type, 0, 0, width, height, -1, nullptr, pixels)) + if (!ValidatePixelPack(context, entryPoint, format, type, 0, 0, width, height, -1, nullptr, + pixels)) { return false; } + if (texture->getFormat(target, level).info->compressed) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kGetImageCompressed); + return false; + } + return true; } +bool ValidateGetCompressedTexImageANGLE(const Context *context, + angle::EntryPoint entryPoint, + TextureTarget target, + GLint level, + const void *pixels) +{ + if (!context->getExtensions().getImageANGLE) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kGetImageExtensionNotEnabled); + return false; + } + + // TODO: Validate all the things. http://anglebug.com/6177 + return false; +} + bool ValidateGetRenderbufferImageANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, const void *pixels) { if (!context->getExtensions().getImageANGLE) { - context->validationError(GL_INVALID_OPERATION, kGetImageExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kGetImageExtensionNotEnabled); return false; } if (target != GL_RENDERBUFFER) { - context->validationError(GL_INVALID_ENUM, kInvalidRenderbufferTarget); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidRenderbufferTarget); return false; } Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer(); - if (!ValidateGetImageFormatAndType(context, renderbuffer, format, type)) + if (!ValidateGetImageFormatAndType(context, entryPoint, renderbuffer, format, type)) { return false; } GLsizei width = renderbuffer->getWidth(); GLsizei height = renderbuffer->getHeight(); - if (!ValidatePixelPack(context, format, type, 0, 0, width, height, -1, nullptr, pixels)) + if (!ValidatePixelPack(context, entryPoint, format, type, 0, 0, width, height, -1, nullptr, + pixels)) { return false; } return true; } bool ValidateDrawElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDrawElementsCommon(context, mode, count, type, indices, 1); + return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 1); } bool ValidateDrawElementsInstancedBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei instancecount, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDrawElementsInstancedBase(context, mode, count, type, indices, instancecount); + return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + instancecount); } bool ValidateDrawRangeElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLuint start, GLuint end, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (end < start) { - context->validationError(GL_INVALID_VALUE, kInvalidElementRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidElementRange); return false; } - if (!ValidateDrawElementsCommon(context, mode, count, type, indices, 0)) + if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 0)) { return false; } // Skip range checks for no-op calls. @@ -370,17 +420,18 @@ indices, &indexRange)); if (indexRange.end > end || indexRange.start < start) { // GL spec says that behavior in this case is undefined - generating an error is fine. - context->validationError(GL_INVALID_OPERATION, kExceedsElementRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExceedsElementRange); return false; } return true; } bool ValidateMultiDrawElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLsizei *count, DrawElementsType type, const void *const *indices, GLsizei drawcount, @@ -388,64 +439,68 @@ { return true; } bool ValidateDrawElementsBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDrawElementsCommon(context, mode, count, type, indices, 1); + return ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 1); } bool ValidateDrawElementsInstancedBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei instancecount, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDrawElementsInstancedBase(context, mode, count, type, indices, instancecount); + return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices, + instancecount); } bool ValidateDrawRangeElementsBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLuint start, GLuint end, GLsizei count, DrawElementsType type, const void *indices, GLint basevertex) { if (!context->getExtensions().drawElementsBaseVertexAny()) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (end < start) { - context->validationError(GL_INVALID_VALUE, kInvalidElementRange); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidElementRange); return false; } - if (!ValidateDrawElementsCommon(context, mode, count, type, indices, 0)) + if (!ValidateDrawElementsCommon(context, entryPoint, mode, count, type, indices, 0)) { return false; } // Skip range checks for no-op calls. @@ -460,244 +515,286 @@ indices, &indexRange)); if (indexRange.end > end || indexRange.start < start) { // GL spec says that behavior in this case is undefined - generating an error is fine. - context->validationError(GL_INVALID_OPERATION, kExceedsElementRange); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExceedsElementRange); return false; } return true; } // GL_KHR_blend_equation_advanced -bool ValidateBlendBarrierKHR(const Context *context) +bool ValidateBlendBarrierKHR(const Context *context, angle::EntryPoint entryPoint) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } bool ValidateBlendEquationSeparateiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendEquationSeparatei(context, buf, modeRGB, modeAlpha); + return ValidateBlendEquationSeparatei(context, entryPoint, buf, modeRGB, modeAlpha); } -bool ValidateBlendEquationiEXT(const Context *context, GLuint buf, GLenum mode) +bool ValidateBlendEquationiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendEquationi(context, buf, mode); + return ValidateBlendEquationi(context, entryPoint, buf, mode); } bool ValidateBlendFuncSeparateiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendFuncSeparatei(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); + return ValidateBlendFuncSeparatei(context, entryPoint, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); } -bool ValidateBlendFunciEXT(const Context *context, GLuint buf, GLenum src, GLenum dst) +bool ValidateBlendFunciEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendFunci(context, buf, src, dst); + return ValidateBlendFunci(context, entryPoint, buf, src, dst); } bool ValidateColorMaskiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateColorMaski(context, index, r, g, b, a); + return ValidateColorMaski(context, entryPoint, index, r, g, b, a); } -bool ValidateDisableiEXT(const Context *context, GLenum target, GLuint index) +bool ValidateDisableiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDisablei(context, target, index); + return ValidateDisablei(context, entryPoint, target, index); } -bool ValidateEnableiEXT(const Context *context, GLenum target, GLuint index) +bool ValidateEnableiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateEnablei(context, target, index); + return ValidateEnablei(context, entryPoint, target, index); } -bool ValidateIsEnablediEXT(const Context *context, GLenum target, GLuint index) +bool ValidateIsEnablediEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateIsEnabledi(context, target, index); + return ValidateIsEnabledi(context, entryPoint, target, index); } bool ValidateBlendEquationSeparateiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendEquationSeparatei(context, buf, modeRGB, modeAlpha); + return ValidateBlendEquationSeparatei(context, entryPoint, buf, modeRGB, modeAlpha); } -bool ValidateBlendEquationiOES(const Context *context, GLuint buf, GLenum mode) +bool ValidateBlendEquationiOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendEquationi(context, buf, mode); + return ValidateBlendEquationi(context, entryPoint, buf, mode); } bool ValidateBlendFuncSeparateiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendFuncSeparatei(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); + return ValidateBlendFuncSeparatei(context, entryPoint, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); } -bool ValidateBlendFunciOES(const Context *context, GLuint buf, GLenum src, GLenum dst) +bool ValidateBlendFunciOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBlendFunci(context, buf, src, dst); + return ValidateBlendFunci(context, entryPoint, buf, src, dst); } bool ValidateColorMaskiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateColorMaski(context, index, r, g, b, a); + return ValidateColorMaski(context, entryPoint, index, r, g, b, a); } -bool ValidateDisableiOES(const Context *context, GLenum target, GLuint index) +bool ValidateDisableiOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDisablei(context, target, index); + return ValidateDisablei(context, entryPoint, target, index); } -bool ValidateEnableiOES(const Context *context, GLenum target, GLuint index) +bool ValidateEnableiOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateEnablei(context, target, index); + return ValidateEnablei(context, entryPoint, target, index); } -bool ValidateIsEnablediOES(const Context *context, GLenum target, GLuint index) +bool ValidateIsEnablediOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { if (!context->getExtensions().drawBuffersIndexedOES) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateIsEnabledi(context, target, index); + return ValidateIsEnabledi(context, entryPoint, target, index); } -bool ValidateGetInteger64vEXT(const Context *context, GLenum pname, const GLint64 *data) +bool ValidateGetInteger64vEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint64 *data) { - if (!context->getExtensions().disjointTimerQuery) + if (!context->getExtensions().disjointTimerQueryEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } GLenum nativeType = GL_NONE; unsigned int numParams = 0; - if (!ValidateStateQuery(context, pname, &nativeType, &numParams)) + if (!ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams)) { return false; } return true; } bool ValidateCopyImageSubDataEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -712,20 +809,21 @@ GLsizei srcHeight, GLsizei srcDepth) { if (!context->getExtensions().copyImageEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateCopyImageSubDataBase(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); + return ValidateCopyImageSubDataBase(context, entryPoint, srcName, srcTarget, srcLevel, srcX, + srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, + srcWidth, srcHeight, srcDepth); } bool ValidateCopyImageSubDataOES(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -740,552 +838,594 @@ GLsizei srcHeight, GLsizei srcDepth) { if (!context->getExtensions().copyImageEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateCopyImageSubDataBase(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); + return ValidateCopyImageSubDataBase(context, entryPoint, srcName, srcTarget, srcLevel, srcX, + srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, + srcWidth, srcHeight, srcDepth); } bool ValidateBufferStorageMemEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizeiptr size, MemoryObjectID memory, GLuint64 offset) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateCreateMemoryObjectsEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const MemoryObjectID *memoryObjects) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateDeleteMemoryObjectsEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const MemoryObjectID *memoryObjects) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateGetMemoryObjectParameterivEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryObject, GLenum pname, const GLint *params) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } const MemoryObject *memory = context->getMemoryObject(memoryObject); if (memory == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidMemoryObject); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMemoryObject); } - if (!IsValidMemoryObjectParamater(context, pname)) + if (!IsValidMemoryObjectParamater(context, entryPoint, pname)) { - context->validationError(GL_INVALID_ENUM, kInvalidMemoryObjectParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMemoryObjectParameter); return false; } return true; } -bool ValidateGetUnsignedBytevEXT(const Context *context, GLenum pname, const GLubyte *data) +bool ValidateGetUnsignedBytevEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLubyte *data) { - if (!context->getExtensions().memoryObject && !context->getExtensions().semaphore) + if (!context->getExtensions().memoryObjectEXT && !context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateGetUnsignedBytei_vEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLubyte *data) { - if (!context->getExtensions().memoryObject && !context->getExtensions().semaphore) + if (!context->getExtensions().memoryObjectEXT && !context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } -bool ValidateIsMemoryObjectEXT(const Context *context, MemoryObjectID memoryObject) +bool ValidateIsMemoryObjectEXT(const Context *context, + angle::EntryPoint entryPoint, + MemoryObjectID memoryObject) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateMemoryObjectParameterivEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryObject, GLenum pname, const GLint *params) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } const MemoryObject *memory = context->getMemoryObject(memoryObject); if (memory == nullptr) { - context->validationError(GL_INVALID_VALUE, kInvalidMemoryObject); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMemoryObject); return false; } if (memory->isImmutable()) { - context->validationError(GL_INVALID_OPERATION, kImmutableMemoryObject); + context->validationError(entryPoint, GL_INVALID_OPERATION, kImmutableMemoryObject); return false; } - if (!IsValidMemoryObjectParamater(context, pname)) + if (!IsValidMemoryObjectParamater(context, entryPoint, pname)) { - context->validationError(GL_INVALID_ENUM, kInvalidMemoryObjectParameter); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidMemoryObjectParameter); return false; } return true; } bool ValidateTexStorageMem2DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, MemoryObjectID memory, GLuint64 offset) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (context->getClientMajorVersion() < 3) { - return ValidateES2TexStorageParametersBase(context, target, levels, internalFormat, width, - height); + return ValidateES2TexStorageParametersBase(context, entryPoint, target, levels, + internalFormat, width, height); } ASSERT(context->getClientMajorVersion() >= 3); - return ValidateES3TexStorage2DParameters(context, target, levels, internalFormat, width, height, - 1); + return ValidateES3TexStorage2DParameters(context, entryPoint, target, levels, internalFormat, + width, height, 1); } bool ValidateTexStorageMem3DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, MemoryObjectID memory, GLuint64 offset) { - if (!context->getExtensions().memoryObject) + if (!context->getExtensions().memoryObjectEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateImportMemoryFdEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memory, GLuint64 size, HandleType handleType, GLint fd) { - if (!context->getExtensions().memoryObjectFd) + if (!context->getExtensions().memoryObjectFdEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (handleType) { case HandleType::OpaqueFd: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidHandleType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidHandleType); return false; } return true; } bool ValidateImportMemoryZirconHandleANGLE(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memory, GLuint64 size, HandleType handleType, GLuint handle) { if (!context->getExtensions().memoryObjectFuchsiaANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (handleType) { case HandleType::ZirconVmo: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidHandleType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidHandleType); return false; } return true; } -bool ValidateDeleteSemaphoresEXT(const Context *context, GLsizei n, const SemaphoreID *semaphores) +bool ValidateDeleteSemaphoresEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const SemaphoreID *semaphores) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } -bool ValidateGenSemaphoresEXT(const Context *context, GLsizei n, const SemaphoreID *semaphores) +bool ValidateGenSemaphoresEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const SemaphoreID *semaphores) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenOrDelete(context, n); + return ValidateGenOrDelete(context, entryPoint, n); } bool ValidateGetSemaphoreParameterui64vEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, GLenum pname, const GLuint64 *params) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } -bool ValidateIsSemaphoreEXT(const Context *context, SemaphoreID semaphore) +bool ValidateIsSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, + SemaphoreID semaphore) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } return true; } bool ValidateSemaphoreParameterui64vEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, GLenum pname, const GLuint64 *params) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } UNIMPLEMENTED(); return false; } bool ValidateSignalSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, GLuint numBufferBarriers, const BufferID *buffers, GLuint numTextureBarriers, const TextureID *textures, const GLenum *dstLayouts) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } for (GLuint i = 0; i < numTextureBarriers; ++i) { if (!IsValidImageLayout(FromGLenum(dstLayouts[i]))) { - context->validationError(GL_INVALID_ENUM, kInvalidImageLayout); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidImageLayout); return false; } } return true; } bool ValidateWaitSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, GLuint numBufferBarriers, const BufferID *buffers, GLuint numTextureBarriers, const TextureID *textures, const GLenum *srcLayouts) { - if (!context->getExtensions().semaphore) + if (!context->getExtensions().semaphoreEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } for (GLuint i = 0; i < numTextureBarriers; ++i) { if (!IsValidImageLayout(FromGLenum(srcLayouts[i]))) { - context->validationError(GL_INVALID_ENUM, kInvalidImageLayout); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidImageLayout); return false; } } return true; } bool ValidateImportSemaphoreFdEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, HandleType handleType, GLint fd) { - if (!context->getExtensions().semaphoreFd) + if (!context->getExtensions().semaphoreFdEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (handleType) { case HandleType::OpaqueFd: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidHandleType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidHandleType); return false; } return true; } bool ValidateGetSamplerParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateGetSamplerParameterBase(context, samplerPacked, pname, nullptr); + return ValidateGetSamplerParameterBase(context, entryPoint, samplerPacked, pname, nullptr); } bool ValidateGetSamplerParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateGetSamplerParameterBase(context, samplerPacked, pname, nullptr); + return ValidateGetSamplerParameterBase(context, entryPoint, samplerPacked, pname, nullptr); } bool ValidateGetTexParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateGetTexParameterBase(context, targetPacked, pname, nullptr); + return ValidateGetTexParameterBase(context, entryPoint, targetPacked, pname, nullptr); } bool ValidateGetTexParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateGetTexParameterBase(context, targetPacked, pname, nullptr); + return ValidateGetTexParameterBase(context, entryPoint, targetPacked, pname, nullptr); } bool ValidateSamplerParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *param) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateSamplerParameterBase(context, samplerPacked, pname, -1, true, param); + return ValidateSamplerParameterBase(context, entryPoint, samplerPacked, pname, -1, true, param); } bool ValidateSamplerParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *param) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateSamplerParameterBase(context, samplerPacked, pname, -1, true, param); + return ValidateSamplerParameterBase(context, entryPoint, samplerPacked, pname, -1, true, param); } bool ValidateTexParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateTexParameterBase(context, targetPacked, pname, -1, true, params); + return ValidateTexParameterBase(context, entryPoint, targetPacked, pname, -1, true, params); } bool ValidateTexParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params) { if (context->getClientMajorVersion() < 3) { - context->validationError(GL_INVALID_OPERATION, kES3Required); + context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required); return false; } - return ValidateTexParameterBase(context, targetPacked, pname, -1, true, params); + return ValidateTexParameterBase(context, entryPoint, targetPacked, pname, -1, true, params); } bool ValidateImportSemaphoreZirconHandleANGLE(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphore, HandleType handleType, GLuint handle) { if (!context->getExtensions().semaphoreFuchsiaANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } switch (handleType) { case HandleType::ZirconEvent: break; default: - context->validationError(GL_INVALID_ENUM, kInvalidHandleType); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidHandleType); return false; } return true; } -bool ValidateFramebufferFetchBarrierEXT(const Context *context) +bool ValidateFramebufferFetchBarrierEXT(const Context *context, angle::EntryPoint entryPoint) { return true; } -bool ValidatePatchParameteriEXT(const Context *context, GLenum pname, GLint value) +bool ValidatePatchParameteriEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint value) { if (!context->getExtensions().tessellationShaderEXT) { - context->validationError(GL_INVALID_OPERATION, kTessellationShaderExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, + kTessellationShaderExtensionNotEnabled); return false; } if (pname != GL_PATCH_VERTICES) { - context->validationError(GL_INVALID_ENUM, kInvalidPname); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname); return false; } if (value <= 0) { - context->validationError(GL_INVALID_VALUE, kInvalidValueNonPositive); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidValueNonPositive); return false; } if (value > context->getCaps().maxPatchVertices) { - context->validationError(GL_INVALID_VALUE, kInvalidValueExceedsMaxPatchSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidValueExceedsMaxPatchSize); return false; } return true; } bool ValidateTexStorageMemFlags2DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, @@ -1294,16 +1434,16 @@ GLbitfield createFlags, GLbitfield usageFlags) { if (!context->getExtensions().memoryObjectFlagsANGLE) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - if (!ValidateTexStorageMem2DEXT(context, targetPacked, levels, internalFormat, width, height, - memoryPacked, offset)) + if (!ValidateTexStorageMem2DEXT(context, entryPoint, targetPacked, levels, internalFormat, + width, height, memoryPacked, offset)) { return false; } // |createFlags| and |usageFlags| must only have bits specified by the extension. @@ -1317,11 +1457,11 @@ GL_CREATE_CORNER_SAMPLED_BIT_ANGLE | GL_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_ANGLE | GL_CREATE_SUBSAMPLED_BIT_ANGLE; if ((createFlags & ~kAllCreateFlags) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidExternalCreateFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidExternalCreateFlags); return false; } constexpr GLbitfield kAllUsageFlags = GL_USAGE_TRANSFER_SRC_BIT_ANGLE | GL_USAGE_TRANSFER_DST_BIT_ANGLE | @@ -1330,18 +1470,19 @@ GL_USAGE_TRANSIENT_ATTACHMENT_BIT_ANGLE | GL_USAGE_INPUT_ATTACHMENT_BIT_ANGLE | GL_USAGE_SHADING_RATE_IMAGE_BIT_ANGLE | GL_USAGE_FRAGMENT_DENSITY_MAP_BIT_ANGLE; if ((usageFlags & ~kAllUsageFlags) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidExternalUsageFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidExternalUsageFlags); return false; } return true; } bool ValidateTexStorageMemFlags2DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, @@ -1354,10 +1495,11 @@ UNIMPLEMENTED(); return false; } bool ValidateTexStorageMemFlags3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, @@ -1370,10 +1512,11 @@ UNIMPLEMENTED(); return false; } bool ValidateTexStorageMemFlags3DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, @@ -1388,113 +1531,119 @@ return false; } // GL_EXT_buffer_storage bool ValidateBufferStorageEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags) { if (!context->isValidBufferBinding(targetPacked)) { - context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidBufferTypes); return false; } if (size <= 0) { - context->validationError(GL_INVALID_VALUE, kNonPositiveSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNonPositiveSize); return false; } constexpr GLbitfield kAllUsageFlags = (GL_DYNAMIC_STORAGE_BIT_EXT | GL_MAP_READ_BIT | GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT_EXT | GL_MAP_COHERENT_BIT_EXT | GL_CLIENT_STORAGE_BIT_EXT); if ((flags & ~kAllUsageFlags) != 0) { - context->validationError(GL_INVALID_VALUE, kInvalidBufferUsageFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBufferUsageFlags); return false; } if (((flags & GL_MAP_PERSISTENT_BIT_EXT) != 0) && ((flags & (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT)) == 0)) { - context->validationError(GL_INVALID_VALUE, kInvalidBufferUsageFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBufferUsageFlags); return false; } if (((flags & GL_MAP_COHERENT_BIT_EXT) != 0) && ((flags & GL_MAP_PERSISTENT_BIT_EXT) == 0)) { - context->validationError(GL_INVALID_VALUE, kInvalidBufferUsageFlags); + context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBufferUsageFlags); return false; } Buffer *buffer = context->getState().getTargetBuffer(targetPacked); if (buffer == nullptr) { - context->validationError(GL_INVALID_OPERATION, kBufferNotBound); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferNotBound); return false; } if (buffer->isImmutable()) { - context->validationError(GL_INVALID_OPERATION, kBufferImmutable); + context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferImmutable); return false; } return true; } // GL_EXT_clip_control -bool ValidateClipControlEXT(const Context *context, GLenum origin, GLenum depth) +bool ValidateClipControlEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum origin, + GLenum depth) { if ((origin != GL_LOWER_LEFT_EXT) && (origin != GL_UPPER_LEFT_EXT)) { - context->validationError(GL_INVALID_ENUM, kInvalidOriginEnum); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidOriginEnum); return false; } if ((depth != GL_NEGATIVE_ONE_TO_ONE_EXT) && (depth != GL_ZERO_TO_ONE_EXT)) { - context->validationError(GL_INVALID_ENUM, kInvalidDepthEnum); + context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidDepthEnum); return false; } return true; } // GL_EXT_external_buffer bool ValidateBufferStorageExternalEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags) { - if (!ValidateBufferStorageEXT(context, targetPacked, size, nullptr, flags)) + if (!ValidateBufferStorageEXT(context, entryPoint, targetPacked, size, nullptr, flags)) { return false; } if (offset != 0) { - context->validationError(GL_INVALID_VALUE, kExternalBufferInvalidOffset); + context->validationError(entryPoint, GL_INVALID_VALUE, kExternalBufferInvalidOffset); return false; } if (clientBuffer == nullptr && size > 0) { - context->validationError(GL_INVALID_VALUE, kClientBufferInvalid); + context->validationError(entryPoint, GL_INVALID_VALUE, kClientBufferInvalid); return false; } return true; } bool ValidateNamedBufferStorageExternalEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags) @@ -1503,713 +1652,809 @@ return false; } // GL_EXT_primitive_bounding_box bool ValidatePrimitiveBoundingBoxEXT(const Context *context, + angle::EntryPoint entryPoint, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); - return false; + if (!context->getExtensions().primitiveBoundingBoxEXT) + { + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); + return false; + } + + return true; } // GL_EXT_separate_shader_objects bool ValidateActiveShaderProgramEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, ShaderProgramID programPacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateActiveShaderProgramBase(context, pipelinePacked, programPacked); + return ValidateActiveShaderProgramBase(context, entryPoint, pipelinePacked, programPacked); } -bool ValidateBindProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateBindProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateBindProgramPipelineBase(context, pipelinePacked); + return ValidateBindProgramPipelineBase(context, entryPoint, pipelinePacked); } bool ValidateCreateShaderProgramvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderType typePacked, GLsizei count, const GLchar **strings) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateCreateShaderProgramvBase(context, typePacked, count, strings); + return ValidateCreateShaderProgramvBase(context, entryPoint, typePacked, count, strings); } bool ValidateDeleteProgramPipelinesEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateDeleteProgramPipelinesBase(context, n, pipelinesPacked); + return ValidateDeleteProgramPipelinesBase(context, entryPoint, n, pipelinesPacked); } bool ValidateGenProgramPipelinesEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGenProgramPipelinesBase(context, n, pipelinesPacked); + return ValidateGenProgramPipelinesBase(context, entryPoint, n, pipelinesPacked); } bool ValidateGetProgramPipelineInfoLogEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGetProgramPipelineInfoLogBase(context, pipelinePacked, bufSize, length, infoLog); + return ValidateGetProgramPipelineInfoLogBase(context, entryPoint, pipelinePacked, bufSize, + length, infoLog); } bool ValidateGetProgramPipelineivEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLenum pname, const GLint *params) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateGetProgramPipelineivBase(context, pipelinePacked, pname, params); + return ValidateGetProgramPipelineivBase(context, entryPoint, pipelinePacked, pname, params); } -bool ValidateIsProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateIsProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateIsProgramPipelineBase(context, pipelinePacked); + return ValidateIsProgramPipelineBase(context, entryPoint, pipelinePacked); } bool ValidateProgramParameteriEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, GLint value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramParameteriBase(context, programPacked, pname, value); + return ValidateProgramParameteriBase(context, entryPoint, programPacked, pname, value); } bool ValidateProgramUniform1fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1fBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1fBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform1iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1iBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1iBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform1uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1uiBase(context, programPacked, locationPacked, v0); + return ValidateProgramUniform1uiBase(context, entryPoint, programPacked, locationPacked, v0); } bool ValidateProgramUniform1uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform1uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform1uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2fBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2fBase(context, entryPoint, programPacked, locationPacked, v0, v1); } bool ValidateProgramUniform2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2iBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2iBase(context, entryPoint, programPacked, locationPacked, v0, v1); } bool ValidateProgramUniform2ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform2uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2uiBase(context, programPacked, locationPacked, v0, v1); + return ValidateProgramUniform2uiBase(context, entryPoint, programPacked, locationPacked, v0, + v1); } bool ValidateProgramUniform2uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform2uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform2uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3fBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3fBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3iBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3iBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform3uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3uiBase(context, programPacked, locationPacked, v0, v1, v2); + return ValidateProgramUniform3uiBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2); } bool ValidateProgramUniform3uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform3uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform3uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform4fBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4fBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform4fvBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4fvBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform4iBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4iBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value) { - return ValidateProgramUniform4ivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4ivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniform4uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniform4uiBase(context, programPacked, locationPacked, v0, v1, v2, v3); + return ValidateProgramUniform4uiBase(context, entryPoint, programPacked, locationPacked, v0, v1, + v2, v3); } bool ValidateProgramUniform4uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value) { - return ValidateProgramUniform4uivBase(context, programPacked, locationPacked, count, value); + return ValidateProgramUniform4uivBase(context, entryPoint, programPacked, locationPacked, count, + value); } bool ValidateProgramUniformMatrix2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix2x3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix2x3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2x3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix2x4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix2x4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix2x4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3x2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix3x2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3x2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix3x4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix3x4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix3x4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix4fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4x2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix4x2fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4x2fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateProgramUniformMatrix4x3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateProgramUniformMatrix4x3fvBase(context, programPacked, locationPacked, count, - transpose, value); + return ValidateProgramUniformMatrix4x3fvBase(context, entryPoint, programPacked, locationPacked, + count, transpose, value); } bool ValidateUseProgramStagesEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLbitfield stages, ShaderProgramID programPacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateUseProgramStagesBase(context, pipelinePacked, stages, programPacked); + return ValidateUseProgramStagesBase(context, entryPoint, pipelinePacked, stages, programPacked); } -bool ValidateValidateProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked) +bool ValidateValidateProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked) { - if (!context->getExtensions().separateShaderObjects) + if (!context->getExtensions().separateShaderObjectsEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } - return ValidateValidateProgramPipelineBase(context, pipelinePacked); + return ValidateValidateProgramPipelineBase(context, entryPoint, pipelinePacked); } // GL_EXT_debug_label bool ValidateGetObjectLabelEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLuint object, GLsizei bufSize, const GLsizei *length, const GLchar *label) { - if (!context->getExtensions().debugLabel) + if (!context->getExtensions().debugLabelEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (bufSize < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeBufferSize); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize); return false; } - return ValidateObjectIdentifierAndName(context, type, object); + return ValidateObjectIdentifierAndName(context, entryPoint, type, object); } bool ValidateLabelObjectEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLuint object, GLsizei length, const GLchar *label) { - if (!context->getExtensions().debugLabel) + if (!context->getExtensions().debugLabelEXT) { - context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); + context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled); return false; } if (length < 0) { - context->validationError(GL_INVALID_VALUE, kNegativeLength); + context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLength); return false; } - return ValidateObjectIdentifierAndName(context, type, object); + return ValidateObjectIdentifierAndName(context, entryPoint, type, object); +} + +bool ValidateEGLImageTargetTextureStorageEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint texture, + GLeglImageOES image, + const GLint *attrib_list) +{ + UNREACHABLE(); + return false; } + +bool ValidateEGLImageTargetTexStorageEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLeglImageOES image, + const GLint *attrib_list) +{ + UNREACHABLE(); + return false; +} + } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationESEXT_autogen.h b/gfx/angle/checkout/src/libANGLE/validationESEXT_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationESEXT_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationESEXT_autogen.h @@ -10,38 +10,43 @@ #ifndef LIBANGLE_VALIDATION_ESEXT_AUTOGEN_H_ #define LIBANGLE_VALIDATION_ESEXT_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; // GL_ANGLE_base_vertex_base_instance bool ValidateDrawArraysInstancedBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); bool ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance); bool ValidateMultiDrawArraysInstancedBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount); bool ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, const GLvoid *const *indices, const GLsizei *instanceCounts, @@ -49,10 +54,11 @@ const GLuint *baseInstances, GLsizei drawcount); // GL_ANGLE_copy_texture_3d bool ValidateCopyTexture3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, @@ -60,10 +66,11 @@ GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); bool ValidateCopySubTexture3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, @@ -78,12 +85,15 @@ GLint depth, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); +// GL_ANGLE_depth_texture + // GL_ANGLE_framebuffer_blit bool ValidateBlitFramebufferANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -93,67 +103,84 @@ GLbitfield mask, GLenum filter); // GL_ANGLE_framebuffer_multisample bool ValidateRenderbufferStorageMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); // GL_ANGLE_get_image bool ValidateGetTexImageANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum format, GLenum type, const void *pixels); +bool ValidateGetCompressedTexImageANGLE(const Context *context, + angle::EntryPoint entryPoint, + TextureTarget targetPacked, + GLint level, + const void *pixels); bool ValidateGetRenderbufferImageANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, const void *pixels); // GL_ANGLE_get_tex_level_parameter bool ValidateGetTexLevelParameterivANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, const GLint *params); bool ValidateGetTexLevelParameterfvANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, const GLfloat *params); // GL_ANGLE_instanced_arrays bool ValidateDrawArraysInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint first, GLsizei count, GLsizei primcount); bool ValidateDrawElementsInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei primcount); -bool ValidateVertexAttribDivisorANGLE(const Context *context, GLuint index, GLuint divisor); +bool ValidateVertexAttribDivisorANGLE(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor); // GL_ANGLE_memory_object_flags bool ValidateTexStorageMemFlags2DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, MemoryObjectID memoryPacked, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); bool ValidateTexStorageMemFlags2DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, @@ -161,10 +188,11 @@ MemoryObjectID memoryPacked, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); bool ValidateTexStorageMemFlags3DANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, @@ -172,10 +200,11 @@ MemoryObjectID memoryPacked, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags); bool ValidateTexStorageMemFlags3DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, @@ -186,140 +215,169 @@ GLbitfield createFlags, GLbitfield usageFlags); // GL_ANGLE_memory_object_fuchsia bool ValidateImportMemoryZirconHandleANGLE(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryPacked, GLuint64 size, HandleType handleTypePacked, GLuint handle); // GL_ANGLE_multi_draw bool ValidateMultiDrawArraysANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); bool ValidateMultiDrawArraysInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); bool ValidateMultiDrawElementsANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, const GLvoid *const *indices, GLsizei drawcount); bool ValidateMultiDrawElementsInstancedANGLE(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked, const GLvoid *const *indices, const GLsizei *instanceCounts, GLsizei drawcount); +// GL_ANGLE_pack_reverse_row_order + // GL_ANGLE_program_binary // GL_ANGLE_provoking_vertex -bool ValidateProvokingVertexANGLE(const Context *context, ProvokingVertexConvention modePacked); +bool ValidateProvokingVertexANGLE(const Context *context, + angle::EntryPoint entryPoint, + ProvokingVertexConvention modePacked); // GL_ANGLE_request_extension -bool ValidateRequestExtensionANGLE(const Context *context, const GLchar *name); -bool ValidateDisableExtensionANGLE(const Context *context, const GLchar *name); +bool ValidateRequestExtensionANGLE(const Context *context, + angle::EntryPoint entryPoint, + const GLchar *name); +bool ValidateDisableExtensionANGLE(const Context *context, + angle::EntryPoint entryPoint, + const GLchar *name); // GL_ANGLE_robust_client_memory bool ValidateGetBooleanvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLboolean *params); bool ValidateGetBufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetFloatvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetFramebufferAttachmentParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetIntegervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *data); bool ValidateGetProgramivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetRenderbufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetShaderivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetTexParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetTexParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetVertexAttribfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetVertexAttribivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetVertexAttribPointervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *pointer); bool ValidateReadPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -328,10 +386,11 @@ const GLsizei *length, const GLsizei *columns, const GLsizei *rows, const void *pixels); bool ValidateTexImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -339,20 +398,23 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateTexParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLfloat *params); bool ValidateTexParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLint *params); bool ValidateTexSubImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -360,10 +422,11 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateTexImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, GLsizei height, @@ -372,10 +435,11 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateTexSubImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -385,20 +449,22 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateCompressedTexImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid *data); bool ValidateCompressedTexSubImage2DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLsizei xoffset, GLsizei yoffset, GLsizei width, @@ -406,10 +472,11 @@ GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid *data); bool ValidateCompressedTexImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -417,10 +484,11 @@ GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid *data); bool ValidateCompressedTexSubImage3DRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -430,149 +498,173 @@ GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid *data); bool ValidateGetQueryivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryType targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetQueryObjectuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetBufferPointervRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *params); bool ValidateGetIntegeri_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint *data); bool ValidateGetInternalformativRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetVertexAttribIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetVertexAttribIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetActiveUniformBlockivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformBlockIndex uniformBlockIndexPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetInteger64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint64 *data); bool ValidateGetInteger64i_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLint64 *data); bool ValidateGetBufferParameteri64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint64 *params); bool ValidateSamplerParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLuint pname, GLsizei bufSize, const GLint *param); bool ValidateSamplerParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLfloat *param); bool ValidateGetSamplerParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetSamplerParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetFramebufferParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetProgramInterfaceivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetBooleani_vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLsizei bufSize, const GLsizei *length, const GLboolean *data); bool ValidateGetMultisamplefvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, GLsizei bufSize, const GLsizei *length, const GLfloat *val); bool ValidateGetTexLevelParameterivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetTexLevelParameterfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetPointervRobustANGLERobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLsizei bufSize, const GLsizei *length, void *const *params); bool ValidateReadnPixelsRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -581,142 +673,179 @@ const GLsizei *length, const GLsizei *columns, const GLsizei *rows, const void *data); bool ValidateGetnUniformfvRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLfloat *params); bool ValidateGetnUniformivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetnUniformuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateTexParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLint *params); bool ValidateTexParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLuint *params); bool ValidateGetTexParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetTexParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateSamplerParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLint *param); bool ValidateSamplerParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLuint *param); bool ValidateGetSamplerParameterIivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetSamplerParameterIuivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint *params); bool ValidateGetQueryObjectivRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint *params); bool ValidateGetQueryObjecti64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLint64 *params); bool ValidateGetQueryObjectui64vRobustANGLE(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, GLsizei bufSize, const GLsizei *length, const GLuint64 *params); // GL_ANGLE_semaphore_fuchsia bool ValidateImportSemaphoreZirconHandleANGLE(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, HandleType handleTypePacked, GLuint handle); +// GL_ANGLE_texture_compression_dxt3 + +// GL_ANGLE_texture_compression_dxt5 + // GL_ANGLE_texture_external_update bool ValidateTexImage2DExternalANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type); -bool ValidateInvalidateTextureANGLE(const Context *context, TextureType targetPacked); +bool ValidateInvalidateTextureANGLE(const Context *context, + angle::EntryPoint entryPoint, + TextureType targetPacked); // GL_ANGLE_texture_multisample bool ValidateTexStorage2DMultisampleANGLE(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); bool ValidateGetMultisamplefvANGLE(const Context *context, + angle::EntryPoint entryPoint, GLenum pname, GLuint index, const GLfloat *val); -bool ValidateSampleMaskiANGLE(const Context *context, GLuint maskNumber, GLbitfield mask); +bool ValidateSampleMaskiANGLE(const Context *context, + angle::EntryPoint entryPoint, + GLuint maskNumber, + GLbitfield mask); + +// GL_ANGLE_texture_usage // GL_ANGLE_translated_shader_source bool ValidateGetTranslatedShaderSourceANGLE(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID shaderPacked, GLsizei bufsize, const GLsizei *length, const GLchar *source); +// GL_APPLE_clip_distance + +// GL_ARB_sync + // GL_CHROMIUM_bind_uniform_location bool ValidateBindUniformLocationCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, const GLchar *name); // GL_CHROMIUM_copy_compressed_texture bool ValidateCompressedCopyTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceIdPacked, TextureID destIdPacked); // GL_CHROMIUM_copy_texture bool ValidateCopyTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, @@ -724,10 +853,11 @@ GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); bool ValidateCopySubTextureCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, @@ -740,51 +870,83 @@ GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); // GL_CHROMIUM_framebuffer_mixed_samples -bool ValidateCoverageModulationCHROMIUM(const Context *context, GLenum components); +bool ValidateCoverageModulationCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, + GLenum components); // GL_CHROMIUM_lose_context bool ValidateLoseContextCHROMIUM(const Context *context, + angle::EntryPoint entryPoint, GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked); // GL_EXT_EGL_image_array +// GL_EXT_EGL_image_storage +bool ValidateEGLImageTargetTexStorageEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLeglImageOES image, + const GLint *attrib_list); +bool ValidateEGLImageTargetTextureStorageEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint texture, + GLeglImageOES image, + const GLint *attrib_list); + // GL_EXT_YUV_target // GL_EXT_blend_func_extended bool ValidateBindFragDataLocationEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint color, const GLchar *name); bool ValidateBindFragDataLocationIndexedEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint colorNumber, GLuint index, const GLchar *name); bool ValidateGetFragDataIndexEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *name); bool ValidateGetProgramResourceLocationIndexEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, const GLchar *name); +// GL_EXT_blend_minmax + // GL_EXT_buffer_storage bool ValidateBufferStorageEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags); // GL_EXT_clip_control -bool ValidateClipControlEXT(const Context *context, GLenum origin, GLenum depth); +bool ValidateClipControlEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum origin, + GLenum depth); + +// GL_EXT_clip_cull_distance + +// GL_EXT_color_buffer_float + +// GL_EXT_color_buffer_half_float // GL_EXT_copy_image bool ValidateCopyImageSubDataEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -799,216 +961,302 @@ GLsizei srcHeight, GLsizei srcDepth); // GL_EXT_debug_label bool ValidateGetObjectLabelEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLuint object, GLsizei bufSize, const GLsizei *length, const GLchar *label); bool ValidateLabelObjectEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLuint object, GLsizei length, const GLchar *label); // GL_EXT_debug_marker -bool ValidateInsertEventMarkerEXT(const Context *context, GLsizei length, const GLchar *marker); -bool ValidatePopGroupMarkerEXT(const Context *context); -bool ValidatePushGroupMarkerEXT(const Context *context, GLsizei length, const GLchar *marker); +bool ValidateInsertEventMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const GLchar *marker); +bool ValidatePopGroupMarkerEXT(const Context *context, angle::EntryPoint entryPoint); +bool ValidatePushGroupMarkerEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei length, + const GLchar *marker); // GL_EXT_discard_framebuffer bool ValidateDiscardFramebufferEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei numAttachments, const GLenum *attachments); // GL_EXT_disjoint_timer_query -bool ValidateBeginQueryEXT(const Context *context, QueryType targetPacked, QueryID idPacked); -bool ValidateDeleteQueriesEXT(const Context *context, GLsizei n, const QueryID *idsPacked); -bool ValidateEndQueryEXT(const Context *context, QueryType targetPacked); -bool ValidateGenQueriesEXT(const Context *context, GLsizei n, const QueryID *idsPacked); -bool ValidateGetInteger64vEXT(const Context *context, GLenum pname, const GLint64 *data); +bool ValidateBeginQueryEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryType targetPacked, + QueryID idPacked); +bool ValidateDeleteQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *idsPacked); +bool ValidateEndQueryEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryType targetPacked); +bool ValidateGenQueriesEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const QueryID *idsPacked); +bool ValidateGetInteger64vEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint64 *data); bool ValidateGetQueryObjecti64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLint64 *params); bool ValidateGetQueryObjectivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLint *params); bool ValidateGetQueryObjectui64vEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLuint64 *params); bool ValidateGetQueryObjectuivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLuint *params); bool ValidateGetQueryivEXT(const Context *context, + angle::EntryPoint entryPoint, QueryType targetPacked, GLenum pname, const GLint *params); -bool ValidateIsQueryEXT(const Context *context, QueryID idPacked); -bool ValidateQueryCounterEXT(const Context *context, QueryID idPacked, QueryType targetPacked); +bool ValidateIsQueryEXT(const Context *context, angle::EntryPoint entryPoint, QueryID idPacked); +bool ValidateQueryCounterEXT(const Context *context, + angle::EntryPoint entryPoint, + QueryID idPacked, + QueryType targetPacked); // GL_EXT_draw_buffers -bool ValidateDrawBuffersEXT(const Context *context, GLsizei n, const GLenum *bufs); +bool ValidateDrawBuffersEXT(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLenum *bufs); // GL_EXT_draw_buffers_indexed bool ValidateBlendEquationSeparateiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -bool ValidateBlendEquationiEXT(const Context *context, GLuint buf, GLenum mode); +bool ValidateBlendEquationiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode); bool ValidateBlendFuncSeparateiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -bool ValidateBlendFunciEXT(const Context *context, GLuint buf, GLenum src, GLenum dst); +bool ValidateBlendFunciEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst); bool ValidateColorMaskiEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -bool ValidateDisableiEXT(const Context *context, GLenum target, GLuint index); -bool ValidateEnableiEXT(const Context *context, GLenum target, GLuint index); -bool ValidateIsEnablediEXT(const Context *context, GLenum target, GLuint index); +bool ValidateDisableiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); +bool ValidateEnableiEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); +bool ValidateIsEnablediEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); // GL_EXT_draw_elements_base_vertex bool ValidateDrawElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); bool ValidateDrawElementsInstancedBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei instancecount, GLint basevertex); bool ValidateDrawRangeElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLuint start, GLuint end, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); bool ValidateMultiDrawElementsBaseVertexEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *count, DrawElementsType typePacked, const void *const *indices, GLsizei primcount, const GLint *basevertex); // GL_EXT_external_buffer bool ValidateBufferStorageExternalEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); bool ValidateNamedBufferStorageExternalEXT(const Context *context, + angle::EntryPoint entryPoint, GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +// GL_EXT_float_blend + // GL_EXT_geometry_shader bool ValidateFramebufferTextureEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texturePacked, GLint level); +// GL_EXT_gpu_shader5 + // GL_EXT_instanced_arrays bool ValidateDrawArraysInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint start, GLsizei count, GLsizei primcount); bool ValidateDrawElementsInstancedEXT(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei primcount); -bool ValidateVertexAttribDivisorEXT(const Context *context, GLuint index, GLuint divisor); +bool ValidateVertexAttribDivisorEXT(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint divisor); // GL_EXT_map_buffer_range bool ValidateFlushMappedBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr length); bool ValidateMapBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLintptr offset, GLsizeiptr length, GLbitfield access); // GL_EXT_memory_object bool ValidateBufferStorageMemEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizeiptr size, MemoryObjectID memoryPacked, GLuint64 offset); bool ValidateCreateMemoryObjectsEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const MemoryObjectID *memoryObjectsPacked); bool ValidateDeleteMemoryObjectsEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const MemoryObjectID *memoryObjectsPacked); bool ValidateGetMemoryObjectParameterivEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryObjectPacked, GLenum pname, const GLint *params); -bool ValidateGetUnsignedBytevEXT(const Context *context, GLenum pname, const GLubyte *data); +bool ValidateGetUnsignedBytevEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLubyte *data); bool ValidateGetUnsignedBytei_vEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLubyte *data); -bool ValidateIsMemoryObjectEXT(const Context *context, MemoryObjectID memoryObjectPacked); +bool ValidateIsMemoryObjectEXT(const Context *context, + angle::EntryPoint entryPoint, + MemoryObjectID memoryObjectPacked); bool ValidateMemoryObjectParameterivEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryObjectPacked, GLenum pname, const GLint *params); bool ValidateTexStorageMem2DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, MemoryObjectID memoryPacked, GLuint64 offset); bool ValidateTexStorageMem2DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked, GLuint64 offset); bool ValidateTexStorageMem3DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, MemoryObjectID memoryPacked, GLuint64 offset); bool ValidateTexStorageMem3DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, @@ -1017,58 +1265,69 @@ MemoryObjectID memoryPacked, GLuint64 offset); // GL_EXT_memory_object_fd bool ValidateImportMemoryFdEXT(const Context *context, + angle::EntryPoint entryPoint, MemoryObjectID memoryPacked, GLuint64 size, HandleType handleTypePacked, GLint fd); // GL_EXT_multisampled_render_to_texture bool ValidateFramebufferTexture2DMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level, GLsizei samples); bool ValidateRenderbufferStorageMultisampleEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); // GL_EXT_occlusion_query_boolean // GL_EXT_primitive_bounding_box bool ValidatePrimitiveBoundingBoxEXT(const Context *context, + angle::EntryPoint entryPoint, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +// GL_EXT_protected_textures + +// GL_EXT_pvrtc_sRGB + // GL_EXT_read_format_bgra // GL_EXT_robustness -bool ValidateGetGraphicsResetStatusEXT(const Context *context); +bool ValidateGetGraphicsResetStatusEXT(const Context *context, angle::EntryPoint entryPoint); bool ValidateGetnUniformfvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLfloat *params); bool ValidateGetnUniformivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLint *params); bool ValidateReadnPixelsEXT(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -1076,310 +1335,387 @@ GLsizei bufSize, const void *data); // GL_EXT_sRGB +// GL_EXT_sRGB_write_control + // GL_EXT_semaphore bool ValidateDeleteSemaphoresEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const SemaphoreID *semaphoresPacked); bool ValidateGenSemaphoresEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const SemaphoreID *semaphoresPacked); bool ValidateGetSemaphoreParameterui64vEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, GLenum pname, const GLuint64 *params); -bool ValidateIsSemaphoreEXT(const Context *context, SemaphoreID semaphorePacked); +bool ValidateIsSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, + SemaphoreID semaphorePacked); bool ValidateSemaphoreParameterui64vEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, GLenum pname, const GLuint64 *params); bool ValidateSignalSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, GLuint numBufferBarriers, const BufferID *buffersPacked, GLuint numTextureBarriers, const TextureID *texturesPacked, const GLenum *dstLayouts); bool ValidateWaitSemaphoreEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, GLuint numBufferBarriers, const BufferID *buffersPacked, GLuint numTextureBarriers, const TextureID *texturesPacked, const GLenum *srcLayouts); // GL_EXT_semaphore_fd bool ValidateImportSemaphoreFdEXT(const Context *context, + angle::EntryPoint entryPoint, SemaphoreID semaphorePacked, HandleType handleTypePacked, GLint fd); // GL_EXT_separate_shader_objects bool ValidateActiveShaderProgramEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, ShaderProgramID programPacked); -bool ValidateBindProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateBindProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); bool ValidateCreateShaderProgramvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderType typePacked, GLsizei count, const GLchar **strings); bool ValidateDeleteProgramPipelinesEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateGenProgramPipelinesEXT(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const ProgramPipelineID *pipelinesPacked); bool ValidateGetProgramPipelineInfoLogEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLsizei bufSize, const GLsizei *length, const GLchar *infoLog); bool ValidateGetProgramPipelineivEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLenum pname, const GLint *params); -bool ValidateIsProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateIsProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); bool ValidateProgramParameteriEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum pname, GLint value); bool ValidateProgramUniform1fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0); bool ValidateProgramUniform1fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform1iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0); bool ValidateProgramUniform1ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform1uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0); bool ValidateProgramUniform1uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform2fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1); bool ValidateProgramUniform2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform2iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1); bool ValidateProgramUniform2ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform2uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1); bool ValidateProgramUniform2uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform3fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2); bool ValidateProgramUniform3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform3iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2); bool ValidateProgramUniform3ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform3uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2); bool ValidateProgramUniform3uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniform4fEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); bool ValidateProgramUniform4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLfloat *value); bool ValidateProgramUniform4iEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLint v0, GLint v1, GLint v2, GLint v3); bool ValidateProgramUniform4ivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLint *value); bool ValidateProgramUniform4uiEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3); bool ValidateProgramUniform4uivEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLuint *value); bool ValidateProgramUniformMatrix2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix2x4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix3x4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x2fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateProgramUniformMatrix4x3fvEXT(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLfloat *value); bool ValidateUseProgramStagesEXT(const Context *context, + angle::EntryPoint entryPoint, ProgramPipelineID pipelinePacked, GLbitfield stages, ShaderProgramID programPacked); -bool ValidateValidateProgramPipelineEXT(const Context *context, ProgramPipelineID pipelinePacked); +bool ValidateValidateProgramPipelineEXT(const Context *context, + angle::EntryPoint entryPoint, + ProgramPipelineID pipelinePacked); // GL_EXT_shader_framebuffer_fetch_non_coherent -bool ValidateFramebufferFetchBarrierEXT(const Context *context); +bool ValidateFramebufferFetchBarrierEXT(const Context *context, angle::EntryPoint entryPoint); // GL_EXT_shader_io_blocks +// GL_EXT_shader_non_constant_global_initializers + +// GL_EXT_shader_texture_lod + +// GL_EXT_shadow_samplers + // GL_EXT_tessellation_shader -bool ValidatePatchParameteriEXT(const Context *context, GLenum pname, GLint value); +bool ValidatePatchParameteriEXT(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint value); // GL_EXT_texture_border_clamp bool ValidateGetSamplerParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *params); bool ValidateGetSamplerParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *params); bool ValidateGetTexParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateGetTexParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); bool ValidateSamplerParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *param); bool ValidateSamplerParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *param); bool ValidateTexParameterIivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateTexParameterIuivEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); // GL_EXT_texture_buffer bool ValidateTexBufferEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked); bool ValidateTexBufferRangeEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); @@ -1398,109 +1734,167 @@ // GL_EXT_texture_filter_anisotropic // GL_EXT_texture_format_BGRA8888 +// GL_EXT_texture_format_sRGB_override + +// GL_EXT_texture_norm16 + +// GL_EXT_texture_rg + // GL_EXT_texture_sRGB_R8 // GL_EXT_texture_sRGB_RG8 +// GL_EXT_texture_sRGB_decode + // GL_EXT_texture_storage bool ValidateTexStorage1DEXT(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); bool ValidateTexStorage2DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); bool ValidateTexStorage3DEXT(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +// GL_EXT_texture_type_2_10_10_10_REV + +// GL_EXT_unpack_subimage + +// GL_IMG_texture_compression_pvrtc + +// GL_IMG_texture_compression_pvrtc2 + // GL_KHR_blend_equation_advanced -bool ValidateBlendBarrierKHR(const Context *context); +bool ValidateBlendBarrierKHR(const Context *context, angle::EntryPoint entryPoint); // GL_KHR_debug bool ValidateDebugMessageCallbackKHR(const Context *context, + angle::EntryPoint entryPoint, GLDEBUGPROCKHR callback, const void *userParam); bool ValidateDebugMessageControlKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); bool ValidateDebugMessageInsertKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); bool ValidateGetDebugMessageLogKHR(const Context *context, + angle::EntryPoint entryPoint, GLuint count, GLsizei bufSize, const GLenum *sources, const GLenum *types, const GLuint *ids, const GLenum *severities, const GLsizei *lengths, const GLchar *messageLog); bool ValidateGetObjectLabelKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei bufSize, const GLsizei *length, const GLchar *label); bool ValidateGetObjectPtrLabelKHR(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei bufSize, const GLsizei *length, const GLchar *label); -bool ValidateGetPointervKHR(const Context *context, GLenum pname, void *const *params); +bool ValidateGetPointervKHR(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + void *const *params); bool ValidateObjectLabelKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum identifier, GLuint name, GLsizei length, const GLchar *label); bool ValidateObjectPtrLabelKHR(const Context *context, + angle::EntryPoint entryPoint, const void *ptr, GLsizei length, const GLchar *label); -bool ValidatePopDebugGroupKHR(const Context *context); +bool ValidatePopDebugGroupKHR(const Context *context, angle::EntryPoint entryPoint); bool ValidatePushDebugGroupKHR(const Context *context, + angle::EntryPoint entryPoint, GLenum source, GLuint id, GLsizei length, const GLchar *message); +// GL_KHR_no_error + // GL_KHR_parallel_shader_compile -bool ValidateMaxShaderCompilerThreadsKHR(const Context *context, GLuint count); +bool ValidateMaxShaderCompilerThreadsKHR(const Context *context, + angle::EntryPoint entryPoint, + GLuint count); + +// GL_KHR_robust_buffer_access_behavior + +// GL_KHR_texture_compression_astc_hdr + +// GL_KHR_texture_compression_astc_ldr + +// GL_KHR_texture_compression_astc_sliced_3d // GL_NV_fence -bool ValidateDeleteFencesNV(const Context *context, GLsizei n, const FenceNVID *fencesPacked); -bool ValidateFinishFenceNV(const Context *context, FenceNVID fencePacked); -bool ValidateGenFencesNV(const Context *context, GLsizei n, const FenceNVID *fencesPacked); +bool ValidateDeleteFencesNV(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const FenceNVID *fencesPacked); +bool ValidateFinishFenceNV(const Context *context, + angle::EntryPoint entryPoint, + FenceNVID fencePacked); +bool ValidateGenFencesNV(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const FenceNVID *fencesPacked); bool ValidateGetFenceivNV(const Context *context, + angle::EntryPoint entryPoint, FenceNVID fencePacked, GLenum pname, const GLint *params); -bool ValidateIsFenceNV(const Context *context, FenceNVID fencePacked); -bool ValidateSetFenceNV(const Context *context, FenceNVID fencePacked, GLenum condition); -bool ValidateTestFenceNV(const Context *context, FenceNVID fencePacked); +bool ValidateIsFenceNV(const Context *context, angle::EntryPoint entryPoint, FenceNVID fencePacked); +bool ValidateSetFenceNV(const Context *context, + angle::EntryPoint entryPoint, + FenceNVID fencePacked, + GLenum condition); +bool ValidateTestFenceNV(const Context *context, + angle::EntryPoint entryPoint, + FenceNVID fencePacked); // GL_NV_framebuffer_blit bool ValidateBlitFramebufferNV(const Context *context, + angle::EntryPoint entryPoint, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, @@ -1508,22 +1902,39 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +// GL_NV_pixel_buffer_object + +// GL_NV_read_depth + +// GL_NV_read_stencil + +// GL_NV_robustness_video_memory_purge + +// GL_NV_shader_noperspective_interpolation + // GL_OES_EGL_image bool ValidateEGLImageTargetRenderbufferStorageOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLeglImageOES image); bool ValidateEGLImageTargetTexture2DOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLeglImageOES image); +// GL_OES_EGL_image_external + +// GL_OES_EGL_image_external_essl3 + // GL_OES_compressed_ETC1_RGB8_texture // GL_OES_copy_image bool ValidateCopyImageSubDataOES(const Context *context, + angle::EntryPoint entryPoint, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, @@ -1536,200 +1947,304 @@ GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +// GL_OES_depth24 + // GL_OES_depth32 +// GL_OES_depth_texture + // GL_OES_draw_buffers_indexed bool ValidateBlendEquationSeparateiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum modeRGB, GLenum modeAlpha); -bool ValidateBlendEquationiOES(const Context *context, GLuint buf, GLenum mode); +bool ValidateBlendEquationiOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum mode); bool ValidateBlendFuncSeparateiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -bool ValidateBlendFunciOES(const Context *context, GLuint buf, GLenum src, GLenum dst); +bool ValidateBlendFunciOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint buf, + GLenum src, + GLenum dst); bool ValidateColorMaskiOES(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -bool ValidateDisableiOES(const Context *context, GLenum target, GLuint index); -bool ValidateEnableiOES(const Context *context, GLenum target, GLuint index); -bool ValidateIsEnablediOES(const Context *context, GLenum target, GLuint index); +bool ValidateDisableiOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); +bool ValidateEnableiOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); +bool ValidateIsEnablediOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); // GL_OES_draw_elements_base_vertex bool ValidateDrawElementsBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); bool ValidateDrawElementsInstancedBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei instancecount, GLint basevertex); bool ValidateDrawRangeElementsBaseVertexOES(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLuint start, GLuint end, GLsizei count, DrawElementsType typePacked, const void *indices, GLint basevertex); // GL_OES_draw_texture bool ValidateDrawTexfOES(const Context *context, + angle::EntryPoint entryPoint, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -bool ValidateDrawTexfvOES(const Context *context, const GLfloat *coords); +bool ValidateDrawTexfvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *coords); bool ValidateDrawTexiOES(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLint z, GLint width, GLint height); -bool ValidateDrawTexivOES(const Context *context, const GLint *coords); +bool ValidateDrawTexivOES(const Context *context, + angle::EntryPoint entryPoint, + const GLint *coords); bool ValidateDrawTexsOES(const Context *context, + angle::EntryPoint entryPoint, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); -bool ValidateDrawTexsvOES(const Context *context, const GLshort *coords); +bool ValidateDrawTexsvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLshort *coords); bool ValidateDrawTexxOES(const Context *context, + angle::EntryPoint entryPoint, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); -bool ValidateDrawTexxvOES(const Context *context, const GLfixed *coords); +bool ValidateDrawTexxvOES(const Context *context, + angle::EntryPoint entryPoint, + const GLfixed *coords); + +// GL_OES_element_index_uint + +// GL_OES_fbo_render_mipmap // GL_OES_framebuffer_object bool ValidateBindFramebufferOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, FramebufferID framebufferPacked); bool ValidateBindRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, RenderbufferID renderbufferPacked); -bool ValidateCheckFramebufferStatusOES(const Context *context, GLenum target); +bool ValidateCheckFramebufferStatusOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target); bool ValidateDeleteFramebuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffersPacked); bool ValidateDeleteRenderbuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffersPacked); bool ValidateFramebufferRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbufferPacked); bool ValidateFramebufferTexture2DOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level); bool ValidateGenFramebuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const FramebufferID *framebuffersPacked); bool ValidateGenRenderbuffersOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffersPacked); -bool ValidateGenerateMipmapOES(const Context *context, TextureType targetPacked); +bool ValidateGenerateMipmapOES(const Context *context, + angle::EntryPoint entryPoint, + TextureType targetPacked); bool ValidateGetFramebufferAttachmentParameterivOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, GLenum pname, const GLint *params); bool ValidateGetRenderbufferParameterivOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum pname, const GLint *params); -bool ValidateIsFramebufferOES(const Context *context, FramebufferID framebufferPacked); -bool ValidateIsRenderbufferOES(const Context *context, RenderbufferID renderbufferPacked); +bool ValidateIsFramebufferOES(const Context *context, + angle::EntryPoint entryPoint, + FramebufferID framebufferPacked); +bool ValidateIsRenderbufferOES(const Context *context, + angle::EntryPoint entryPoint, + RenderbufferID renderbufferPacked); bool ValidateRenderbufferStorageOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +// GL_OES_geometry_shader +bool ValidateFramebufferTextureOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum attachment, + TextureID texturePacked, + GLint level); + // GL_OES_get_program_binary bool ValidateGetProgramBinaryOES(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLsizei bufSize, const GLsizei *length, const GLenum *binaryFormat, const void *binary); bool ValidateProgramBinaryOES(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum binaryFormat, const void *binary, GLint length); // GL_OES_mapbuffer bool ValidateGetBufferPointervOES(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLenum pname, void *const *params); -bool ValidateMapBufferOES(const Context *context, BufferBinding targetPacked, GLenum access); -bool ValidateUnmapBufferOES(const Context *context, BufferBinding targetPacked); +bool ValidateMapBufferOES(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked, + GLenum access); +bool ValidateUnmapBufferOES(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked); // GL_OES_matrix_palette -bool ValidateCurrentPaletteMatrixOES(const Context *context, GLuint matrixpaletteindex); -bool ValidateLoadPaletteFromModelViewMatrixOES(const Context *context); +bool ValidateCurrentPaletteMatrixOES(const Context *context, + angle::EntryPoint entryPoint, + GLuint matrixpaletteindex); +bool ValidateLoadPaletteFromModelViewMatrixOES(const Context *context, + angle::EntryPoint entryPoint); bool ValidateMatrixIndexPointerOES(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer); bool ValidateWeightPointerOES(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer); +// GL_OES_packed_depth_stencil + // GL_OES_point_size_array bool ValidatePointSizePointerOES(const Context *context, + angle::EntryPoint entryPoint, VertexAttribType typePacked, GLsizei stride, const void *pointer); +// GL_OES_point_sprite + // GL_OES_query_matrix bool ValidateQueryMatrixxOES(const Context *context, + angle::EntryPoint entryPoint, const GLfixed *mantissa, const GLint *exponent); +// GL_OES_rgb8_rgba8 + // GL_OES_sample_shading -bool ValidateMinSampleShadingOES(const Context *context, GLfloat value); +bool ValidateMinSampleShadingOES(const Context *context, + angle::EntryPoint entryPoint, + GLfloat value); + +// GL_OES_sample_variables + +// GL_OES_shader_image_atomic // GL_OES_shader_io_blocks +// GL_OES_shader_multisample_interpolation + +// GL_OES_standard_derivatives + +// GL_OES_surfaceless_context + // GL_OES_texture_3D bool ValidateCompressedTexImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); bool ValidateCompressedTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1738,27 +2253,30 @@ GLsizei depth, GLenum format, GLsizei imageSize, const void *data); bool ValidateCopyTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); bool ValidateFramebufferTexture3DOES(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level, GLint zoffset); bool ValidateTexImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width, GLsizei height, @@ -1766,10 +2284,11 @@ GLint border, GLenum format, GLenum type, const void *pixels); bool ValidateTexSubImage3DOES(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1780,102 +2299,161 @@ GLenum type, const void *pixels); // GL_OES_texture_border_clamp bool ValidateGetSamplerParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *params); bool ValidateGetSamplerParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *params); bool ValidateGetTexParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateGetTexParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); bool ValidateSamplerParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLint *param); bool ValidateSamplerParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, SamplerID samplerPacked, GLenum pname, const GLuint *param); bool ValidateTexParameterIivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLint *params); bool ValidateTexParameterIuivOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum pname, const GLuint *params); // GL_OES_texture_buffer bool ValidateTexBufferOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked); bool ValidateTexBufferRangeOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); +// GL_OES_texture_compression_astc + // GL_OES_texture_cube_map bool ValidateGetTexGenfvOES(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLfloat *params); bool ValidateGetTexGenivOES(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLint *params); bool ValidateGetTexGenxvOES(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLfixed *params); -bool ValidateTexGenfOES(const Context *context, GLenum coord, GLenum pname, GLfloat param); -bool ValidateTexGenfvOES(const Context *context, GLenum coord, GLenum pname, const GLfloat *params); -bool ValidateTexGeniOES(const Context *context, GLenum coord, GLenum pname, GLint param); -bool ValidateTexGenivOES(const Context *context, GLenum coord, GLenum pname, const GLint *params); -bool ValidateTexGenxOES(const Context *context, GLenum coord, GLenum pname, GLfixed param); -bool ValidateTexGenxvOES(const Context *context, GLenum coord, GLenum pname, const GLfixed *params); +bool ValidateTexGenfOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfloat param); +bool ValidateTexGenfvOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params); +bool ValidateTexGeniOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLint param); +bool ValidateTexGenivOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *params); +bool ValidateTexGenxOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfixed param); +bool ValidateTexGenxvOES(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfixed *params); // GL_OES_texture_cube_map_array +// GL_OES_texture_float + +// GL_OES_texture_float_linear + // GL_OES_texture_half_float +// GL_OES_texture_half_float_linear + +// GL_OES_texture_npot + // GL_OES_texture_stencil8 // GL_OES_texture_storage_multisample_2d_array bool ValidateTexStorage3DMultisampleOES(const Context *context, + angle::EntryPoint entryPoint, TextureType targetPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); // GL_OES_vertex_array_object -bool ValidateBindVertexArrayOES(const Context *context, VertexArrayID arrayPacked); +bool ValidateBindVertexArrayOES(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID arrayPacked); bool ValidateDeleteVertexArraysOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const VertexArrayID *arraysPacked); bool ValidateGenVertexArraysOES(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const VertexArrayID *arraysPacked); -bool ValidateIsVertexArrayOES(const Context *context, VertexArrayID arrayPacked); +bool ValidateIsVertexArrayOES(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID arrayPacked); + +// GL_OES_vertex_half_float + +// GL_OES_vertex_type_10_10_10_2 // GL_OVR_multiview bool ValidateFramebufferTextureMultiviewOVR(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureID texturePacked, GLint level, GLint baseViewIndex, diff --git a/gfx/angle/checkout/src/libANGLE/validationGL1.cpp b/gfx/angle/checkout/src/libANGLE/validationGL1.cpp --- a/gfx/angle/checkout/src/libANGLE/validationGL1.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationGL1.cpp @@ -9,21 +9,22 @@ #include "libANGLE/validationGL1_autogen.h" namespace gl { -bool ValidateAccum(const Context *, GLenum op, GLfloat value) +bool ValidateAccum(const Context *, angle::EntryPoint entryPoint, GLenum op, GLfloat value) { return true; } -bool ValidateBegin(const Context *, GLenum mode) +bool ValidateBegin(const Context *, angle::EntryPoint entryPoint, GLenum mode) { return true; } bool ValidateBitmap(const Context *, + angle::EntryPoint entryPoint, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, @@ -31,517 +32,671 @@ const GLubyte *bitmap) { return true; } -bool ValidateCallList(const Context *, GLuint list) +bool ValidateCallList(const Context *, angle::EntryPoint entryPoint, GLuint list) { return true; } -bool ValidateCallLists(const Context *, GLsizei n, GLenum type, const void *lists) +bool ValidateCallLists(const Context *, + angle::EntryPoint entryPoint, + GLsizei n, + GLenum type, + const void *lists) { return true; } -bool ValidateClearAccum(const Context *, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) +bool ValidateClearAccum(const Context *, + angle::EntryPoint entryPoint, + GLfloat red, + GLfloat green, + GLfloat blue, + GLfloat alpha) { return true; } -bool ValidateClearDepth(const Context *, GLdouble depth) +bool ValidateClearDepth(const Context *, angle::EntryPoint entryPoint, GLdouble depth) { return true; } -bool ValidateClearIndex(const Context *, GLfloat c) +bool ValidateClearIndex(const Context *, angle::EntryPoint entryPoint, GLfloat c) { return true; } -bool ValidateClipPlane(const Context *, GLenum plane, const GLdouble *equation) +bool ValidateClipPlane(const Context *, + angle::EntryPoint entryPoint, + GLenum plane, + const GLdouble *equation) { return true; } -bool ValidateColor3b(const Context *, GLbyte red, GLbyte green, GLbyte blue) +bool ValidateColor3b(const Context *, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue) { return true; } -bool ValidateColor3bv(const Context *, const GLbyte *v) +bool ValidateColor3bv(const Context *, angle::EntryPoint entryPoint, const GLbyte *v) { return true; } -bool ValidateColor3d(const Context *, GLdouble red, GLdouble green, GLdouble blue) +bool ValidateColor3d(const Context *, + angle::EntryPoint entryPoint, + GLdouble red, + GLdouble green, + GLdouble blue) { return true; } -bool ValidateColor3dv(const Context *, const GLdouble *v) +bool ValidateColor3dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateColor3f(const Context *, GLfloat red, GLfloat green, GLfloat blue) +bool ValidateColor3f(const Context *, + angle::EntryPoint entryPoint, + GLfloat red, + GLfloat green, + GLfloat blue) { return true; } -bool ValidateColor3fv(const Context *, const GLfloat *v) +bool ValidateColor3fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateColor3i(const Context *, GLint red, GLint green, GLint blue) +bool ValidateColor3i(const Context *, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue) { return true; } -bool ValidateColor3iv(const Context *, const GLint *v) +bool ValidateColor3iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateColor3s(const Context *, GLshort red, GLshort green, GLshort blue) +bool ValidateColor3s(const Context *, + angle::EntryPoint entryPoint, + GLshort red, + GLshort green, + GLshort blue) { return true; } -bool ValidateColor3sv(const Context *, const GLshort *v) +bool ValidateColor3sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateColor3ub(const Context *, GLubyte red, GLubyte green, GLubyte blue) +bool ValidateColor3ub(const Context *, + angle::EntryPoint entryPoint, + GLubyte red, + GLubyte green, + GLubyte blue) { return true; } -bool ValidateColor3ubv(const Context *, const GLubyte *v) +bool ValidateColor3ubv(const Context *, angle::EntryPoint entryPoint, const GLubyte *v) { return true; } -bool ValidateColor3ui(const Context *, GLuint red, GLuint green, GLuint blue) +bool ValidateColor3ui(const Context *, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue) { return true; } -bool ValidateColor3uiv(const Context *, const GLuint *v) +bool ValidateColor3uiv(const Context *, angle::EntryPoint entryPoint, const GLuint *v) { return true; } -bool ValidateColor3us(const Context *, GLushort red, GLushort green, GLushort blue) +bool ValidateColor3us(const Context *, + angle::EntryPoint entryPoint, + GLushort red, + GLushort green, + GLushort blue) { return true; } -bool ValidateColor3usv(const Context *, const GLushort *v) +bool ValidateColor3usv(const Context *, angle::EntryPoint entryPoint, const GLushort *v) { return true; } -bool ValidateColor4b(const Context *, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) +bool ValidateColor4b(const Context *, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue, + GLbyte alpha) { return true; } -bool ValidateColor4bv(const Context *, const GLbyte *v) +bool ValidateColor4bv(const Context *, angle::EntryPoint entryPoint, const GLbyte *v) { return true; } -bool ValidateColor4d(const Context *, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) +bool ValidateColor4d(const Context *, + angle::EntryPoint entryPoint, + GLdouble red, + GLdouble green, + GLdouble blue, + GLdouble alpha) { return true; } -bool ValidateColor4dv(const Context *, const GLdouble *v) +bool ValidateColor4dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateColor4fv(const Context *, const GLfloat *v) +bool ValidateColor4fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateColor4i(const Context *, GLint red, GLint green, GLint blue, GLint alpha) +bool ValidateColor4i(const Context *, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue, + GLint alpha) { return true; } -bool ValidateColor4iv(const Context *, const GLint *v) +bool ValidateColor4iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateColor4s(const Context *, GLshort red, GLshort green, GLshort blue, GLshort alpha) +bool ValidateColor4s(const Context *, + angle::EntryPoint entryPoint, + GLshort red, + GLshort green, + GLshort blue, + GLshort alpha) { return true; } -bool ValidateColor4sv(const Context *, const GLshort *v) +bool ValidateColor4sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateColor4ubv(const Context *, const GLubyte *v) +bool ValidateColor4ubv(const Context *, angle::EntryPoint entryPoint, const GLubyte *v) { return true; } -bool ValidateColor4ui(const Context *, GLuint red, GLuint green, GLuint blue, GLuint alpha) +bool ValidateColor4ui(const Context *, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue, + GLuint alpha) { return true; } -bool ValidateColor4uiv(const Context *, const GLuint *v) +bool ValidateColor4uiv(const Context *, angle::EntryPoint entryPoint, const GLuint *v) { return true; } -bool ValidateColor4us(const Context *, GLushort red, GLushort green, GLushort blue, GLushort alpha) +bool ValidateColor4us(const Context *, + angle::EntryPoint entryPoint, + GLushort red, + GLushort green, + GLushort blue, + GLushort alpha) { return true; } -bool ValidateColor4usv(const Context *, const GLushort *v) +bool ValidateColor4usv(const Context *, angle::EntryPoint entryPoint, const GLushort *v) { return true; } -bool ValidateColorMaterial(const Context *, GLenum face, GLenum mode) +bool ValidateColorMaterial(const Context *, angle::EntryPoint entryPoint, GLenum face, GLenum mode) { return true; } bool ValidateCopyPixels(const Context *, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) { return true; } -bool ValidateDeleteLists(const Context *, GLuint list, GLsizei range) +bool ValidateDeleteLists(const Context *, angle::EntryPoint entryPoint, GLuint list, GLsizei range) { return true; } -bool ValidateDepthRange(const Context *, GLdouble n, GLdouble f) +bool ValidateDepthRange(const Context *, angle::EntryPoint entryPoint, GLdouble n, GLdouble f) { return true; } -bool ValidateDrawBuffer(const Context *, GLenum buf) +bool ValidateDrawBuffer(const Context *, angle::EntryPoint entryPoint, GLenum buf) { return true; } bool ValidateDrawPixels(const Context *, + angle::EntryPoint entryPoint, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) { return true; } -bool ValidateEdgeFlag(const Context *, GLboolean flag) +bool ValidateEdgeFlag(const Context *, angle::EntryPoint entryPoint, GLboolean flag) { return true; } -bool ValidateEdgeFlagv(const Context *, const GLboolean *flag) +bool ValidateEdgeFlagv(const Context *, angle::EntryPoint entryPoint, const GLboolean *flag) { return true; } -bool ValidateEnd(const Context *) +bool ValidateEnd(const Context *, angle::EntryPoint entryPoint) { return true; } -bool ValidateEndList(const Context *) +bool ValidateEndList(const Context *, angle::EntryPoint entryPoint) { return true; } -bool ValidateEvalCoord1d(const Context *, GLdouble u) +bool ValidateEvalCoord1d(const Context *, angle::EntryPoint entryPoint, GLdouble u) { return true; } -bool ValidateEvalCoord1dv(const Context *, const GLdouble *u) +bool ValidateEvalCoord1dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *u) { return true; } -bool ValidateEvalCoord1f(const Context *, GLfloat u) +bool ValidateEvalCoord1f(const Context *, angle::EntryPoint entryPoint, GLfloat u) { return true; } -bool ValidateEvalCoord1fv(const Context *, const GLfloat *u) +bool ValidateEvalCoord1fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *u) { return true; } -bool ValidateEvalCoord2d(const Context *, GLdouble u, GLdouble v) +bool ValidateEvalCoord2d(const Context *, angle::EntryPoint entryPoint, GLdouble u, GLdouble v) +{ + return true; +} + +bool ValidateEvalCoord2dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *u) { return true; } -bool ValidateEvalCoord2dv(const Context *, const GLdouble *u) +bool ValidateEvalCoord2f(const Context *, angle::EntryPoint entryPoint, GLfloat u, GLfloat v) { return true; } -bool ValidateEvalCoord2f(const Context *, GLfloat u, GLfloat v) +bool ValidateEvalCoord2fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *u) { return true; } -bool ValidateEvalCoord2fv(const Context *, const GLfloat *u) -{ - return true; -} - -bool ValidateEvalMesh1(const Context *, GLenum mode, GLint i1, GLint i2) +bool ValidateEvalMesh1(const Context *, + angle::EntryPoint entryPoint, + GLenum mode, + GLint i1, + GLint i2) { return true; } -bool ValidateEvalMesh2(const Context *, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) +bool ValidateEvalMesh2(const Context *, + angle::EntryPoint entryPoint, + GLenum mode, + GLint i1, + GLint i2, + GLint j1, + GLint j2) { return true; } -bool ValidateEvalPoint1(const Context *, GLint i) +bool ValidateEvalPoint1(const Context *, angle::EntryPoint entryPoint, GLint i) { return true; } -bool ValidateEvalPoint2(const Context *, GLint i, GLint j) +bool ValidateEvalPoint2(const Context *, angle::EntryPoint entryPoint, GLint i, GLint j) { return true; } -bool ValidateFeedbackBuffer(const Context *, GLsizei size, GLenum type, const GLfloat *buffer) +bool ValidateFeedbackBuffer(const Context *, + angle::EntryPoint entryPoint, + GLsizei size, + GLenum type, + const GLfloat *buffer) { return true; } -bool ValidateFogi(const Context *, GLenum pname, GLint param) +bool ValidateFogi(const Context *, angle::EntryPoint entryPoint, GLenum pname, GLint param) { return true; } -bool ValidateFogiv(const Context *, GLenum pname, const GLint *params) +bool ValidateFogiv(const Context *, angle::EntryPoint entryPoint, GLenum pname, const GLint *params) { return true; } bool ValidateFrustum(const Context *, + angle::EntryPoint entryPoint, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) { return true; } -bool ValidateGenLists(const Context *, GLsizei range) +bool ValidateGenLists(const Context *, angle::EntryPoint entryPoint, GLsizei range) { return true; } -bool ValidateGetClipPlane(const Context *, GLenum plane, const GLdouble *equation) +bool ValidateGetClipPlane(const Context *, + angle::EntryPoint entryPoint, + GLenum plane, + const GLdouble *equation) { return true; } -bool ValidateGetDoublev(const Context *, GLenum pname, const GLdouble *data) +bool ValidateGetDoublev(const Context *, + angle::EntryPoint entryPoint, + GLenum pname, + const GLdouble *data) { return true; } -bool ValidateGetLightiv(const Context *, GLenum light, GLenum pname, const GLint *params) +bool ValidateGetLightiv(const Context *, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + const GLint *params) { return true; } -bool ValidateGetMapdv(const Context *, GLenum target, GLenum query, const GLdouble *v) +bool ValidateGetMapdv(const Context *, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLdouble *v) { return true; } -bool ValidateGetMapfv(const Context *, GLenum target, GLenum query, const GLfloat *v) +bool ValidateGetMapfv(const Context *, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLfloat *v) { return true; } -bool ValidateGetMapiv(const Context *, GLenum target, GLenum query, const GLint *v) +bool ValidateGetMapiv(const Context *, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLint *v) { return true; } -bool ValidateGetMaterialiv(const Context *, GLenum face, GLenum pname, const GLint *params) +bool ValidateGetMaterialiv(const Context *, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + const GLint *params) { return true; } -bool ValidateGetPixelMapfv(const Context *, GLenum map, const GLfloat *values) +bool ValidateGetPixelMapfv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + const GLfloat *values) { return true; } -bool ValidateGetPixelMapuiv(const Context *, GLenum map, const GLuint *values) +bool ValidateGetPixelMapuiv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + const GLuint *values) { return true; } -bool ValidateGetPixelMapusv(const Context *, GLenum map, const GLushort *values) +bool ValidateGetPixelMapusv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + const GLushort *values) { return true; } -bool ValidateGetPolygonStipple(const Context *, const GLubyte *mask) +bool ValidateGetPolygonStipple(const Context *, angle::EntryPoint entryPoint, const GLubyte *mask) { return true; } -bool ValidateGetTexGendv(const Context *, GLenum coord, GLenum pname, const GLdouble *params) +bool ValidateGetTexGendv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLdouble *params) { return true; } -bool ValidateGetTexGenfv(const Context *, GLenum coord, GLenum pname, const GLfloat *params) +bool ValidateGetTexGenfv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params) { return true; } -bool ValidateGetTexGeniv(const Context *, GLenum coord, GLenum pname, const GLint *params) +bool ValidateGetTexGeniv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *params) { return true; } bool ValidateGetTexImage(const Context *, + angle::EntryPoint entryPoint, TextureTarget target, GLint level, GLenum format, GLenum type, const void *pixels) { return true; } -bool ValidateIndexMask(const Context *, GLuint mask) +bool ValidateIndexMask(const Context *, angle::EntryPoint entryPoint, GLuint mask) { return true; } -bool ValidateIndexd(const Context *, GLdouble c) +bool ValidateIndexd(const Context *, angle::EntryPoint entryPoint, GLdouble c) { return true; } -bool ValidateIndexdv(const Context *, const GLdouble *c) +bool ValidateIndexdv(const Context *, angle::EntryPoint entryPoint, const GLdouble *c) { return true; } -bool ValidateIndexf(const Context *, GLfloat c) +bool ValidateIndexf(const Context *, angle::EntryPoint entryPoint, GLfloat c) { return true; } -bool ValidateIndexfv(const Context *, const GLfloat *c) +bool ValidateIndexfv(const Context *, angle::EntryPoint entryPoint, const GLfloat *c) { return true; } -bool ValidateIndexi(const Context *, GLint c) +bool ValidateIndexi(const Context *, angle::EntryPoint entryPoint, GLint c) { return true; } -bool ValidateIndexiv(const Context *, const GLint *c) +bool ValidateIndexiv(const Context *, angle::EntryPoint entryPoint, const GLint *c) { return true; } -bool ValidateIndexs(const Context *, GLshort c) +bool ValidateIndexs(const Context *, angle::EntryPoint entryPoint, GLshort c) { return true; } -bool ValidateIndexsv(const Context *, const GLshort *c) +bool ValidateIndexsv(const Context *, angle::EntryPoint entryPoint, const GLshort *c) +{ + return true; +} + +bool ValidateInitNames(const Context *, angle::EntryPoint entryPoint) { return true; } -bool ValidateInitNames(const Context *) +bool ValidateIsList(const Context *, angle::EntryPoint entryPoint, GLuint list) +{ + return true; +} + +bool ValidateLightModeli(const Context *, angle::EntryPoint entryPoint, GLenum pname, GLint param) { return true; } -bool ValidateIsList(const Context *, GLuint list) +bool ValidateLightModeliv(const Context *, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params) { return true; } -bool ValidateLightModeli(const Context *, GLenum pname, GLint param) -{ - return true; -} - -bool ValidateLightModeliv(const Context *, GLenum pname, const GLint *params) +bool ValidateLighti(const Context *, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + GLint param) { return true; } -bool ValidateLighti(const Context *, GLenum light, GLenum pname, GLint param) -{ - return true; -} - -bool ValidateLightiv(const Context *, GLenum light, GLenum pname, const GLint *params) +bool ValidateLightiv(const Context *, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + const GLint *params) { return true; } -bool ValidateLineStipple(const Context *, GLint factor, GLushort pattern) +bool ValidateLineStipple(const Context *, + angle::EntryPoint entryPoint, + GLint factor, + GLushort pattern) { return true; } -bool ValidateListBase(const Context *, GLuint base) +bool ValidateListBase(const Context *, angle::EntryPoint entryPoint, GLuint base) { return true; } -bool ValidateLoadMatrixd(const Context *, const GLdouble *m) +bool ValidateLoadMatrixd(const Context *, angle::EntryPoint entryPoint, const GLdouble *m) { return true; } -bool ValidateLoadName(const Context *, GLuint name) +bool ValidateLoadName(const Context *, angle::EntryPoint entryPoint, GLuint name) { return true; } bool ValidateMap1d(const Context *, + angle::EntryPoint entryPoint, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, @@ -549,10 +704,11 @@ { return true; } bool ValidateMap1f(const Context *, + angle::EntryPoint entryPoint, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, @@ -560,10 +716,11 @@ { return true; } bool ValidateMap2d(const Context *, + angle::EntryPoint entryPoint, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, @@ -575,10 +732,11 @@ { return true; } bool ValidateMap2f(const Context *, + angle::EntryPoint entryPoint, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, @@ -589,21 +747,30 @@ const GLfloat *points) { return true; } -bool ValidateMapGrid1d(const Context *, GLint un, GLdouble u1, GLdouble u2) +bool ValidateMapGrid1d(const Context *, + angle::EntryPoint entryPoint, + GLint un, + GLdouble u1, + GLdouble u2) { return true; } -bool ValidateMapGrid1f(const Context *, GLint un, GLfloat u1, GLfloat u2) +bool ValidateMapGrid1f(const Context *, + angle::EntryPoint entryPoint, + GLint un, + GLfloat u1, + GLfloat u2) { return true; } bool ValidateMapGrid2d(const Context *, + angle::EntryPoint entryPoint, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, @@ -611,536 +778,709 @@ { return true; } bool ValidateMapGrid2f(const Context *, + angle::EntryPoint entryPoint, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) { return true; } -bool ValidateMateriali(const Context *, GLenum face, GLenum pname, GLint param) -{ - return true; -} - -bool ValidateMaterialiv(const Context *, GLenum face, GLenum pname, const GLint *params) +bool ValidateMateriali(const Context *, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + GLint param) { return true; } -bool ValidateMultMatrixd(const Context *, const GLdouble *m) +bool ValidateMaterialiv(const Context *, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + const GLint *params) { return true; } -bool ValidateNewList(const Context *, GLuint list, GLenum mode) +bool ValidateMultMatrixd(const Context *, angle::EntryPoint entryPoint, const GLdouble *m) { return true; } -bool ValidateNormal3b(const Context *, GLbyte nx, GLbyte ny, GLbyte nz) +bool ValidateNewList(const Context *, angle::EntryPoint entryPoint, GLuint list, GLenum mode) { return true; } -bool ValidateNormal3bv(const Context *, const GLbyte *v) +bool ValidateNormal3b(const Context *, + angle::EntryPoint entryPoint, + GLbyte nx, + GLbyte ny, + GLbyte nz) { return true; } -bool ValidateNormal3d(const Context *, GLdouble nx, GLdouble ny, GLdouble nz) +bool ValidateNormal3bv(const Context *, angle::EntryPoint entryPoint, const GLbyte *v) { return true; } -bool ValidateNormal3dv(const Context *, const GLdouble *v) +bool ValidateNormal3d(const Context *, + angle::EntryPoint entryPoint, + GLdouble nx, + GLdouble ny, + GLdouble nz) { return true; } -bool ValidateNormal3fv(const Context *, const GLfloat *v) +bool ValidateNormal3dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateNormal3i(const Context *, GLint nx, GLint ny, GLint nz) +bool ValidateNormal3fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) +{ + return true; +} + +bool ValidateNormal3i(const Context *, angle::EntryPoint entryPoint, GLint nx, GLint ny, GLint nz) { return true; } -bool ValidateNormal3iv(const Context *, const GLint *v) +bool ValidateNormal3iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateNormal3s(const Context *, GLshort nx, GLshort ny, GLshort nz) +bool ValidateNormal3s(const Context *, + angle::EntryPoint entryPoint, + GLshort nx, + GLshort ny, + GLshort nz) { return true; } -bool ValidateNormal3sv(const Context *, const GLshort *v) +bool ValidateNormal3sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } bool ValidateOrtho(const Context *, + angle::EntryPoint entryPoint, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) { return true; } -bool ValidatePassThrough(const Context *, GLfloat token) +bool ValidatePassThrough(const Context *, angle::EntryPoint entryPoint, GLfloat token) { return true; } -bool ValidatePixelMapfv(const Context *, GLenum map, GLsizei mapsize, const GLfloat *values) +bool ValidatePixelMapfv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + GLsizei mapsize, + const GLfloat *values) { return true; } -bool ValidatePixelMapuiv(const Context *, GLenum map, GLsizei mapsize, const GLuint *values) -{ - return true; -} - -bool ValidatePixelMapusv(const Context *, GLenum map, GLsizei mapsize, const GLushort *values) +bool ValidatePixelMapuiv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + GLsizei mapsize, + const GLuint *values) { return true; } -bool ValidatePixelStoref(const Context *, GLenum pname, GLfloat param) +bool ValidatePixelMapusv(const Context *, + angle::EntryPoint entryPoint, + GLenum map, + GLsizei mapsize, + const GLushort *values) { return true; } -bool ValidatePixelTransferf(const Context *, GLenum pname, GLfloat param) +bool ValidatePixelStoref(const Context *, angle::EntryPoint entryPoint, GLenum pname, GLfloat param) { return true; } -bool ValidatePixelTransferi(const Context *, GLenum pname, GLint param) +bool ValidatePixelTransferf(const Context *, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param) { return true; } -bool ValidatePixelZoom(const Context *, GLfloat xfactor, GLfloat yfactor) +bool ValidatePixelTransferi(const Context *, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param) { return true; } -bool ValidatePolygonMode(const Context *, GLenum face, GLenum mode) +bool ValidatePixelZoom(const Context *, + angle::EntryPoint entryPoint, + GLfloat xfactor, + GLfloat yfactor) { return true; } -bool ValidatePolygonStipple(const Context *, const GLubyte *mask) +bool ValidatePolygonMode(const Context *, angle::EntryPoint entryPoint, GLenum face, GLenum mode) { return true; } -bool ValidatePopAttrib(const Context *) +bool ValidatePolygonStipple(const Context *, angle::EntryPoint entryPoint, const GLubyte *mask) { return true; } -bool ValidatePopName(const Context *) +bool ValidatePopAttrib(const Context *, angle::EntryPoint entryPoint) +{ + return true; +} + +bool ValidatePopName(const Context *, angle::EntryPoint entryPoint) { return true; } -bool ValidatePushAttrib(const Context *, GLbitfield mask) +bool ValidatePushAttrib(const Context *, angle::EntryPoint entryPoint, GLbitfield mask) { return true; } -bool ValidatePushName(const Context *, GLuint name) +bool ValidatePushName(const Context *, angle::EntryPoint entryPoint, GLuint name) { return true; } -bool ValidateRasterPos2d(const Context *, GLdouble x, GLdouble y) +bool ValidateRasterPos2d(const Context *, angle::EntryPoint entryPoint, GLdouble x, GLdouble y) +{ + return true; +} + +bool ValidateRasterPos2dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateRasterPos2dv(const Context *, const GLdouble *v) +bool ValidateRasterPos2f(const Context *, angle::EntryPoint entryPoint, GLfloat x, GLfloat y) { return true; } -bool ValidateRasterPos2f(const Context *, GLfloat x, GLfloat y) +bool ValidateRasterPos2fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) +{ + return true; +} + +bool ValidateRasterPos2i(const Context *, angle::EntryPoint entryPoint, GLint x, GLint y) { return true; } -bool ValidateRasterPos2fv(const Context *, const GLfloat *v) +bool ValidateRasterPos2iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) +{ + return true; +} + +bool ValidateRasterPos2s(const Context *, angle::EntryPoint entryPoint, GLshort x, GLshort y) { return true; } -bool ValidateRasterPos2i(const Context *, GLint x, GLint y) +bool ValidateRasterPos2sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateRasterPos2iv(const Context *, const GLint *v) -{ - return true; -} - -bool ValidateRasterPos2s(const Context *, GLshort x, GLshort y) +bool ValidateRasterPos3d(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateRasterPos2sv(const Context *, const GLshort *v) +bool ValidateRasterPos3dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateRasterPos3d(const Context *, GLdouble x, GLdouble y, GLdouble z) +bool ValidateRasterPos3f(const Context *, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z) { return true; } -bool ValidateRasterPos3dv(const Context *, const GLdouble *v) +bool ValidateRasterPos3fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateRasterPos3f(const Context *, GLfloat x, GLfloat y, GLfloat z) +bool ValidateRasterPos3i(const Context *, angle::EntryPoint entryPoint, GLint x, GLint y, GLint z) +{ + return true; +} + +bool ValidateRasterPos3iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateRasterPos3fv(const Context *, const GLfloat *v) +bool ValidateRasterPos3s(const Context *, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z) { return true; } -bool ValidateRasterPos3i(const Context *, GLint x, GLint y, GLint z) +bool ValidateRasterPos3sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateRasterPos3iv(const Context *, const GLint *v) +bool ValidateRasterPos4d(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z, + GLdouble w) { return true; } -bool ValidateRasterPos3s(const Context *, GLshort x, GLshort y, GLshort z) +bool ValidateRasterPos4dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateRasterPos3sv(const Context *, const GLshort *v) +bool ValidateRasterPos4f(const Context *, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z, + GLfloat w) { return true; } -bool ValidateRasterPos4d(const Context *, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +bool ValidateRasterPos4fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateRasterPos4dv(const Context *, const GLdouble *v) -{ - return true; -} - -bool ValidateRasterPos4f(const Context *, GLfloat x, GLfloat y, GLfloat z, GLfloat w) +bool ValidateRasterPos4i(const Context *, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z, + GLint w) { return true; } -bool ValidateRasterPos4fv(const Context *, const GLfloat *v) +bool ValidateRasterPos4iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateRasterPos4i(const Context *, GLint x, GLint y, GLint z, GLint w) +bool ValidateRasterPos4s(const Context *, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z, + GLshort w) { return true; } -bool ValidateRasterPos4iv(const Context *, const GLint *v) +bool ValidateRasterPos4sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateRasterPos4s(const Context *, GLshort x, GLshort y, GLshort z, GLshort w) +bool ValidateRectd(const Context *, + angle::EntryPoint entryPoint, + GLdouble x1, + GLdouble y1, + GLdouble x2, + GLdouble y2) { return true; } -bool ValidateRasterPos4sv(const Context *, const GLshort *v) -{ - return true; -} - -bool ValidateRectd(const Context *, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) +bool ValidateRectdv(const Context *, + angle::EntryPoint entryPoint, + const GLdouble *v1, + const GLdouble *v2) { return true; } -bool ValidateRectdv(const Context *, const GLdouble *v1, const GLdouble *v2) +bool ValidateRectf(const Context *, + angle::EntryPoint entryPoint, + GLfloat x1, + GLfloat y1, + GLfloat x2, + GLfloat y2) { return true; } -bool ValidateRectf(const Context *, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) +bool ValidateRectfv(const Context *, + angle::EntryPoint entryPoint, + const GLfloat *v1, + const GLfloat *v2) { return true; } -bool ValidateRectfv(const Context *, const GLfloat *v1, const GLfloat *v2) -{ - return true; -} - -bool ValidateRecti(const Context *, GLint x1, GLint y1, GLint x2, GLint y2) +bool ValidateRecti(const Context *, + angle::EntryPoint entryPoint, + GLint x1, + GLint y1, + GLint x2, + GLint y2) { return true; } -bool ValidateRectiv(const Context *, const GLint *v1, const GLint *v2) +bool ValidateRectiv(const Context *, angle::EntryPoint entryPoint, const GLint *v1, const GLint *v2) { return true; } -bool ValidateRects(const Context *, GLshort x1, GLshort y1, GLshort x2, GLshort y2) +bool ValidateRects(const Context *, + angle::EntryPoint entryPoint, + GLshort x1, + GLshort y1, + GLshort x2, + GLshort y2) { return true; } -bool ValidateRectsv(const Context *, const GLshort *v1, const GLshort *v2) +bool ValidateRectsv(const Context *, + angle::EntryPoint entryPoint, + const GLshort *v1, + const GLshort *v2) { return true; } -bool ValidateRenderMode(const Context *, GLenum mode) +bool ValidateRenderMode(const Context *, angle::EntryPoint entryPoint, GLenum mode) { return true; } -bool ValidateRotated(const Context *, GLdouble angle, GLdouble x, GLdouble y, GLdouble z) +bool ValidateRotated(const Context *, + angle::EntryPoint entryPoint, + GLdouble angle, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateScaled(const Context *, GLdouble x, GLdouble y, GLdouble z) +bool ValidateScaled(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateSelectBuffer(const Context *, GLsizei size, const GLuint *buffer) +bool ValidateSelectBuffer(const Context *, + angle::EntryPoint entryPoint, + GLsizei size, + const GLuint *buffer) { return true; } -bool ValidateTexCoord1d(const Context *, GLdouble s) +bool ValidateTexCoord1d(const Context *, angle::EntryPoint entryPoint, GLdouble s) { return true; } -bool ValidateTexCoord1dv(const Context *, const GLdouble *v) +bool ValidateTexCoord1dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateTexCoord1f(const Context *, GLfloat s) +bool ValidateTexCoord1f(const Context *, angle::EntryPoint entryPoint, GLfloat s) { return true; } -bool ValidateTexCoord1fv(const Context *, const GLfloat *v) +bool ValidateTexCoord1fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateTexCoord1i(const Context *, GLint s) +bool ValidateTexCoord1i(const Context *, angle::EntryPoint entryPoint, GLint s) +{ + return true; +} + +bool ValidateTexCoord1iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateTexCoord1iv(const Context *, const GLint *v) +bool ValidateTexCoord1s(const Context *, angle::EntryPoint entryPoint, GLshort s) { return true; } -bool ValidateTexCoord1s(const Context *, GLshort s) +bool ValidateTexCoord1sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateTexCoord1sv(const Context *, const GLshort *v) +bool ValidateTexCoord2d(const Context *, angle::EntryPoint entryPoint, GLdouble s, GLdouble t) +{ + return true; +} + +bool ValidateTexCoord2dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateTexCoord2d(const Context *, GLdouble s, GLdouble t) +bool ValidateTexCoord2f(const Context *, angle::EntryPoint entryPoint, GLfloat s, GLfloat t) { return true; } -bool ValidateTexCoord2dv(const Context *, const GLdouble *v) +bool ValidateTexCoord2fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateTexCoord2f(const Context *, GLfloat s, GLfloat t) +bool ValidateTexCoord2i(const Context *, angle::EntryPoint entryPoint, GLint s, GLint t) { return true; } -bool ValidateTexCoord2fv(const Context *, const GLfloat *v) +bool ValidateTexCoord2iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) +{ + return true; +} + +bool ValidateTexCoord2s(const Context *, angle::EntryPoint entryPoint, GLshort s, GLshort t) { return true; } -bool ValidateTexCoord2i(const Context *, GLint s, GLint t) +bool ValidateTexCoord2sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateTexCoord2iv(const Context *, const GLint *v) -{ - return true; -} - -bool ValidateTexCoord2s(const Context *, GLshort s, GLshort t) +bool ValidateTexCoord3d(const Context *, + angle::EntryPoint entryPoint, + GLdouble s, + GLdouble t, + GLdouble r) { return true; } -bool ValidateTexCoord2sv(const Context *, const GLshort *v) -{ - return true; -} - -bool ValidateTexCoord3d(const Context *, GLdouble s, GLdouble t, GLdouble r) +bool ValidateTexCoord3dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateTexCoord3dv(const Context *, const GLdouble *v) +bool ValidateTexCoord3f(const Context *, + angle::EntryPoint entryPoint, + GLfloat s, + GLfloat t, + GLfloat r) { return true; } -bool ValidateTexCoord3f(const Context *, GLfloat s, GLfloat t, GLfloat r) +bool ValidateTexCoord3fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateTexCoord3fv(const Context *, const GLfloat *v) +bool ValidateTexCoord3i(const Context *, angle::EntryPoint entryPoint, GLint s, GLint t, GLint r) +{ + return true; +} + +bool ValidateTexCoord3iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateTexCoord3i(const Context *, GLint s, GLint t, GLint r) +bool ValidateTexCoord3s(const Context *, + angle::EntryPoint entryPoint, + GLshort s, + GLshort t, + GLshort r) { return true; } -bool ValidateTexCoord3iv(const Context *, const GLint *v) +bool ValidateTexCoord3sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateTexCoord3s(const Context *, GLshort s, GLshort t, GLshort r) +bool ValidateTexCoord4d(const Context *, + angle::EntryPoint entryPoint, + GLdouble s, + GLdouble t, + GLdouble r, + GLdouble q) { return true; } -bool ValidateTexCoord3sv(const Context *, const GLshort *v) +bool ValidateTexCoord4dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateTexCoord4d(const Context *, GLdouble s, GLdouble t, GLdouble r, GLdouble q) +bool ValidateTexCoord4f(const Context *, + angle::EntryPoint entryPoint, + GLfloat s, + GLfloat t, + GLfloat r, + GLfloat q) { return true; } -bool ValidateTexCoord4dv(const Context *, const GLdouble *v) +bool ValidateTexCoord4fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateTexCoord4f(const Context *, GLfloat s, GLfloat t, GLfloat r, GLfloat q) +bool ValidateTexCoord4i(const Context *, + angle::EntryPoint entryPoint, + GLint s, + GLint t, + GLint r, + GLint q) { return true; } -bool ValidateTexCoord4fv(const Context *, const GLfloat *v) +bool ValidateTexCoord4iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateTexCoord4i(const Context *, GLint s, GLint t, GLint r, GLint q) +bool ValidateTexCoord4s(const Context *, + angle::EntryPoint entryPoint, + GLshort s, + GLshort t, + GLshort r, + GLshort q) { return true; } -bool ValidateTexCoord4iv(const Context *, const GLint *v) +bool ValidateTexCoord4sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateTexCoord4s(const Context *, GLshort s, GLshort t, GLshort r, GLshort q) +bool ValidateTexGend(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLdouble param) { return true; } -bool ValidateTexCoord4sv(const Context *, const GLshort *v) -{ - return true; -} - -bool ValidateTexGend(const Context *, GLenum coord, GLenum pname, GLdouble param) -{ - return true; -} - -bool ValidateTexGendv(const Context *, GLenum coord, GLenum pname, const GLdouble *params) +bool ValidateTexGendv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLdouble *params) { return true; } -bool ValidateTexGenf(const Context *, GLenum coord, GLenum pname, GLfloat param) +bool ValidateTexGenf(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfloat param) { return true; } -bool ValidateTexGenfv(const Context *, GLenum coord, GLenum pname, const GLfloat *params) +bool ValidateTexGenfv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params) { return true; } -bool ValidateTexGeni(const Context *, GLenum coord, GLenum pname, GLint param) +bool ValidateTexGeni(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLint param) { return true; } -bool ValidateTexGeniv(const Context *, GLenum coord, GLenum pname, const GLint *params) +bool ValidateTexGeniv(const Context *, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *params) { return true; } bool ValidateTexImage1D(const Context *, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, @@ -1149,149 +1489,187 @@ const void *pixels) { return true; } -bool ValidateTranslated(const Context *, GLdouble x, GLdouble y, GLdouble z) +bool ValidateTranslated(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateVertex2d(const Context *, GLdouble x, GLdouble y) +bool ValidateVertex2d(const Context *, angle::EntryPoint entryPoint, GLdouble x, GLdouble y) { return true; } -bool ValidateVertex2dv(const Context *, const GLdouble *v) +bool ValidateVertex2dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateVertex2f(const Context *, GLfloat x, GLfloat y) +bool ValidateVertex2f(const Context *, angle::EntryPoint entryPoint, GLfloat x, GLfloat y) { return true; } -bool ValidateVertex2fv(const Context *, const GLfloat *v) +bool ValidateVertex2fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) +{ + return true; +} + +bool ValidateVertex2i(const Context *, angle::EntryPoint entryPoint, GLint x, GLint y) { return true; } -bool ValidateVertex2i(const Context *, GLint x, GLint y) +bool ValidateVertex2iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateVertex2iv(const Context *, const GLint *v) +bool ValidateVertex2s(const Context *, angle::EntryPoint entryPoint, GLshort x, GLshort y) { return true; } -bool ValidateVertex2s(const Context *, GLshort x, GLshort y) +bool ValidateVertex2sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateVertex2sv(const Context *, const GLshort *v) +bool ValidateVertex3d(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateVertex3d(const Context *, GLdouble x, GLdouble y, GLdouble z) +bool ValidateVertex3dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateVertex3dv(const Context *, const GLdouble *v) +bool ValidateVertex3f(const Context *, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z) { return true; } -bool ValidateVertex3f(const Context *, GLfloat x, GLfloat y, GLfloat z) +bool ValidateVertex3fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateVertex3fv(const Context *, const GLfloat *v) +bool ValidateVertex3i(const Context *, angle::EntryPoint entryPoint, GLint x, GLint y, GLint z) { return true; } -bool ValidateVertex3i(const Context *, GLint x, GLint y, GLint z) +bool ValidateVertex3iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateVertex3iv(const Context *, const GLint *v) +bool ValidateVertex3s(const Context *, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z) { return true; } -bool ValidateVertex3s(const Context *, GLshort x, GLshort y, GLshort z) +bool ValidateVertex3sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateVertex3sv(const Context *, const GLshort *v) +bool ValidateVertex4d(const Context *, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z, + GLdouble w) { return true; } -bool ValidateVertex4d(const Context *, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +bool ValidateVertex4dv(const Context *, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateVertex4dv(const Context *, const GLdouble *v) +bool ValidateVertex4f(const Context *, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z, + GLfloat w) { return true; } -bool ValidateVertex4f(const Context *, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - return true; -} - -bool ValidateVertex4fv(const Context *, const GLfloat *v) +bool ValidateVertex4fv(const Context *, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateVertex4i(const Context *, GLint x, GLint y, GLint z, GLint w) +bool ValidateVertex4i(const Context *, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z, + GLint w) { return true; } -bool ValidateVertex4iv(const Context *, const GLint *v) +bool ValidateVertex4iv(const Context *, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateVertex4s(const Context *, GLshort x, GLshort y, GLshort z, GLshort w) +bool ValidateVertex4s(const Context *, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z, + GLshort w) { return true; } -bool ValidateVertex4sv(const Context *, const GLshort *v) +bool ValidateVertex4sv(const Context *, angle::EntryPoint entryPoint, const GLshort *v) { return true; } bool ValidateAreTexturesResident(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const GLuint *textures, const GLboolean *residences) { return true; } -bool ValidateArrayElement(const Context *context, GLint i) +bool ValidateArrayElement(const Context *context, angle::EntryPoint entryPoint, GLint i) { return true; } bool ValidateCopyTexImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, @@ -1300,67 +1678,78 @@ { return true; } bool ValidateCopyTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) { return true; } -bool ValidateEdgeFlagPointer(const Context *context, GLsizei stride, const void *pointer) +bool ValidateEdgeFlagPointer(const Context *context, + angle::EntryPoint entryPoint, + GLsizei stride, + const void *pointer) { return true; } -bool ValidateIndexPointer(const Context *context, GLenum type, GLsizei stride, const void *pointer) +bool ValidateIndexPointer(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLsizei stride, + const void *pointer) { return true; } -bool ValidateIndexub(const Context *context, GLubyte c) +bool ValidateIndexub(const Context *context, angle::EntryPoint entryPoint, GLubyte c) { return true; } -bool ValidateIndexubv(const Context *context, const GLubyte *c) +bool ValidateIndexubv(const Context *context, angle::EntryPoint entryPoint, const GLubyte *c) { return true; } bool ValidateInterleavedArrays(const Context *context, + angle::EntryPoint entryPoint, GLenum format, GLsizei stride, const void *pointer) { return true; } -bool ValidatePopClientAttrib(const Context *context) +bool ValidatePopClientAttrib(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidatePrioritizeTextures(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const GLuint *textures, const GLfloat *priorities) { return true; } -bool ValidatePushClientAttrib(const Context *context, GLbitfield mask) +bool ValidatePushClientAttrib(const Context *context, angle::EntryPoint entryPoint, GLbitfield mask) { return true; } bool ValidateTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -1369,10 +1758,11 @@ { return true; } bool ValidateCompressedTexImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, @@ -1381,10 +1771,11 @@ { return true; } bool ValidateCompressedTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -1393,451 +1784,638 @@ { return true; } bool ValidateGetCompressedTexImage(const Context *context, - GLenum target, + angle::EntryPoint entryPoint, + TextureTarget targetPacked, GLint level, const void *img) { return true; } -bool ValidateLoadTransposeMatrixd(const Context *context, const GLdouble *m) +bool ValidateLoadTransposeMatrixd(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *m) +{ + return true; +} + +bool ValidateLoadTransposeMatrixf(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *m) { return true; } -bool ValidateLoadTransposeMatrixf(const Context *context, const GLfloat *m) +bool ValidateMultTransposeMatrixd(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *m) { return true; } -bool ValidateMultTransposeMatrixd(const Context *context, const GLdouble *m) +bool ValidateMultTransposeMatrixf(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *m) { return true; } -bool ValidateMultTransposeMatrixf(const Context *context, const GLfloat *m) +bool ValidateMultiTexCoord1d(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLdouble s) { return true; } -bool ValidateMultiTexCoord1d(const Context *context, GLenum target, GLdouble s) +bool ValidateMultiTexCoord1dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v) { return true; } -bool ValidateMultiTexCoord1dv(const Context *context, GLenum target, const GLdouble *v) +bool ValidateMultiTexCoord1f(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLfloat s) { return true; } -bool ValidateMultiTexCoord1f(const Context *context, GLenum target, GLfloat s) +bool ValidateMultiTexCoord1fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v) { return true; } -bool ValidateMultiTexCoord1fv(const Context *context, GLenum target, const GLfloat *v) +bool ValidateMultiTexCoord1i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s) { return true; } -bool ValidateMultiTexCoord1i(const Context *context, GLenum target, GLint s) +bool ValidateMultiTexCoord1iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v) { return true; } -bool ValidateMultiTexCoord1iv(const Context *context, GLenum target, const GLint *v) -{ - return true; -} - -bool ValidateMultiTexCoord1s(const Context *context, GLenum target, GLshort s) +bool ValidateMultiTexCoord1s(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLshort s) { return true; } -bool ValidateMultiTexCoord1sv(const Context *context, GLenum target, const GLshort *v) +bool ValidateMultiTexCoord1sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v) { return true; } -bool ValidateMultiTexCoord2d(const Context *context, GLenum target, GLdouble s, GLdouble t) +bool ValidateMultiTexCoord2d(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLdouble s, + GLdouble t) { return true; } -bool ValidateMultiTexCoord2dv(const Context *context, GLenum target, const GLdouble *v) +bool ValidateMultiTexCoord2dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v) { return true; } -bool ValidateMultiTexCoord2f(const Context *context, GLenum target, GLfloat s, GLfloat t) +bool ValidateMultiTexCoord2f(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLfloat s, + GLfloat t) { return true; } -bool ValidateMultiTexCoord2fv(const Context *context, GLenum target, const GLfloat *v) +bool ValidateMultiTexCoord2fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v) { return true; } -bool ValidateMultiTexCoord2i(const Context *context, GLenum target, GLint s, GLint t) +bool ValidateMultiTexCoord2i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s, + GLint t) { return true; } -bool ValidateMultiTexCoord2iv(const Context *context, GLenum target, const GLint *v) +bool ValidateMultiTexCoord2iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v) { return true; } -bool ValidateMultiTexCoord2s(const Context *context, GLenum target, GLshort s, GLshort t) +bool ValidateMultiTexCoord2s(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLshort s, + GLshort t) { return true; } -bool ValidateMultiTexCoord2sv(const Context *context, GLenum target, const GLshort *v) +bool ValidateMultiTexCoord2sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v) { return true; } bool ValidateMultiTexCoord3d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble s, GLdouble t, GLdouble r) { return true; } -bool ValidateMultiTexCoord3dv(const Context *context, GLenum target, const GLdouble *v) +bool ValidateMultiTexCoord3dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v) { return true; } -bool ValidateMultiTexCoord3f(const Context *context, GLenum target, GLfloat s, GLfloat t, GLfloat r) +bool ValidateMultiTexCoord3f(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLfloat s, + GLfloat t, + GLfloat r) { return true; } -bool ValidateMultiTexCoord3fv(const Context *context, GLenum target, const GLfloat *v) +bool ValidateMultiTexCoord3fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v) { return true; } -bool ValidateMultiTexCoord3i(const Context *context, GLenum target, GLint s, GLint t, GLint r) +bool ValidateMultiTexCoord3i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s, + GLint t, + GLint r) { return true; } -bool ValidateMultiTexCoord3iv(const Context *context, GLenum target, const GLint *v) +bool ValidateMultiTexCoord3iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v) { return true; } -bool ValidateMultiTexCoord3s(const Context *context, GLenum target, GLshort s, GLshort t, GLshort r) +bool ValidateMultiTexCoord3s(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLshort s, + GLshort t, + GLshort r) { return true; } -bool ValidateMultiTexCoord3sv(const Context *context, GLenum target, const GLshort *v) +bool ValidateMultiTexCoord3sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v) { return true; } bool ValidateMultiTexCoord4d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) { return true; } -bool ValidateMultiTexCoord4dv(const Context *context, GLenum target, const GLdouble *v) +bool ValidateMultiTexCoord4dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v) { return true; } -bool ValidateMultiTexCoord4fv(const Context *context, GLenum target, const GLfloat *v) +bool ValidateMultiTexCoord4fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v) { return true; } bool ValidateMultiTexCoord4i(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint s, GLint t, GLint r, GLint q) { return true; } -bool ValidateMultiTexCoord4iv(const Context *context, GLenum target, const GLint *v) +bool ValidateMultiTexCoord4iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v) { return true; } bool ValidateMultiTexCoord4s(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) { return true; } -bool ValidateMultiTexCoord4sv(const Context *context, GLenum target, const GLshort *v) +bool ValidateMultiTexCoord4sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v) { return true; } bool ValidateFogCoordPointer(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLsizei stride, const void *pointer) { return true; } -bool ValidateFogCoordd(const Context *context, GLdouble coord) +bool ValidateFogCoordd(const Context *context, angle::EntryPoint entryPoint, GLdouble coord) { return true; } -bool ValidateFogCoorddv(const Context *context, const GLdouble *coord) +bool ValidateFogCoorddv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *coord) { return true; } -bool ValidateFogCoordf(const Context *context, GLfloat coord) +bool ValidateFogCoordf(const Context *context, angle::EntryPoint entryPoint, GLfloat coord) { return true; } -bool ValidateFogCoordfv(const Context *context, const GLfloat *coord) +bool ValidateFogCoordfv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *coord) { return true; } bool ValidateMultiDrawArrays(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *first, const GLsizei *count, GLsizei drawcount) { return true; } bool ValidateMultiDrawElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *count, DrawElementsType typePacked, const void *const *indices, GLsizei drawcount) { return true; } -bool ValidatePointParameteri(const Context *context, GLenum pname, GLint param) +bool ValidatePointParameteri(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param) { return true; } -bool ValidatePointParameteriv(const Context *context, GLenum pname, const GLint *params) +bool ValidatePointParameteriv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params) { return true; } -bool ValidateSecondaryColor3b(const Context *context, GLbyte red, GLbyte green, GLbyte blue) +bool ValidateSecondaryColor3b(const Context *context, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue) { return true; } -bool ValidateSecondaryColor3bv(const Context *context, const GLbyte *v) +bool ValidateSecondaryColor3bv(const Context *context, + angle::EntryPoint entryPoint, + const GLbyte *v) { return true; } -bool ValidateSecondaryColor3d(const Context *context, GLdouble red, GLdouble green, GLdouble blue) +bool ValidateSecondaryColor3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble red, + GLdouble green, + GLdouble blue) { return true; } -bool ValidateSecondaryColor3dv(const Context *context, const GLdouble *v) +bool ValidateSecondaryColor3dv(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *v) { return true; } -bool ValidateSecondaryColor3f(const Context *context, GLfloat red, GLfloat green, GLfloat blue) +bool ValidateSecondaryColor3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat red, + GLfloat green, + GLfloat blue) { return true; } -bool ValidateSecondaryColor3fv(const Context *context, const GLfloat *v) +bool ValidateSecondaryColor3fv(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *v) { return true; } -bool ValidateSecondaryColor3i(const Context *context, GLint red, GLint green, GLint blue) +bool ValidateSecondaryColor3i(const Context *context, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue) { return true; } -bool ValidateSecondaryColor3iv(const Context *context, const GLint *v) +bool ValidateSecondaryColor3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateSecondaryColor3s(const Context *context, GLshort red, GLshort green, GLshort blue) +bool ValidateSecondaryColor3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort red, + GLshort green, + GLshort blue) { return true; } -bool ValidateSecondaryColor3sv(const Context *context, const GLshort *v) +bool ValidateSecondaryColor3sv(const Context *context, + angle::EntryPoint entryPoint, + const GLshort *v) { return true; } -bool ValidateSecondaryColor3ub(const Context *context, GLubyte red, GLubyte green, GLubyte blue) +bool ValidateSecondaryColor3ub(const Context *context, + angle::EntryPoint entryPoint, + GLubyte red, + GLubyte green, + GLubyte blue) { return true; } -bool ValidateSecondaryColor3ubv(const Context *context, const GLubyte *v) +bool ValidateSecondaryColor3ubv(const Context *context, + angle::EntryPoint entryPoint, + const GLubyte *v) { return true; } -bool ValidateSecondaryColor3ui(const Context *context, GLuint red, GLuint green, GLuint blue) +bool ValidateSecondaryColor3ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue) { return true; } -bool ValidateSecondaryColor3uiv(const Context *context, const GLuint *v) +bool ValidateSecondaryColor3uiv(const Context *context, + angle::EntryPoint entryPoint, + const GLuint *v) { return true; } -bool ValidateSecondaryColor3us(const Context *context, GLushort red, GLushort green, GLushort blue) +bool ValidateSecondaryColor3us(const Context *context, + angle::EntryPoint entryPoint, + GLushort red, + GLushort green, + GLushort blue) { return true; } -bool ValidateSecondaryColor3usv(const Context *context, const GLushort *v) +bool ValidateSecondaryColor3usv(const Context *context, + angle::EntryPoint entryPoint, + const GLushort *v) { return true; } bool ValidateSecondaryColorPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer) { return true; } -bool ValidateWindowPos2d(const Context *context, GLdouble x, GLdouble y) +bool ValidateWindowPos2d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y) { return true; } -bool ValidateWindowPos2dv(const Context *context, const GLdouble *v) +bool ValidateWindowPos2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateWindowPos2f(const Context *context, GLfloat x, GLfloat y) +bool ValidateWindowPos2f(const Context *context, angle::EntryPoint entryPoint, GLfloat x, GLfloat y) { return true; } -bool ValidateWindowPos2fv(const Context *context, const GLfloat *v) +bool ValidateWindowPos2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v) +{ + return true; +} + +bool ValidateWindowPos2i(const Context *context, angle::EntryPoint entryPoint, GLint x, GLint y) { return true; } -bool ValidateWindowPos2i(const Context *context, GLint x, GLint y) +bool ValidateWindowPos2iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateWindowPos2iv(const Context *context, const GLint *v) +bool ValidateWindowPos2s(const Context *context, angle::EntryPoint entryPoint, GLshort x, GLshort y) { return true; } -bool ValidateWindowPos2s(const Context *context, GLshort x, GLshort y) +bool ValidateWindowPos2sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v) { return true; } -bool ValidateWindowPos2sv(const Context *context, const GLshort *v) +bool ValidateWindowPos3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z) { return true; } -bool ValidateWindowPos3d(const Context *context, GLdouble x, GLdouble y, GLdouble z) +bool ValidateWindowPos3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v) { return true; } -bool ValidateWindowPos3dv(const Context *context, const GLdouble *v) -{ - return true; -} - -bool ValidateWindowPos3f(const Context *context, GLfloat x, GLfloat y, GLfloat z) +bool ValidateWindowPos3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z) { return true; } -bool ValidateWindowPos3fv(const Context *context, const GLfloat *v) +bool ValidateWindowPos3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v) { return true; } -bool ValidateWindowPos3i(const Context *context, GLint x, GLint y, GLint z) +bool ValidateWindowPos3i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z) { return true; } -bool ValidateWindowPos3iv(const Context *context, const GLint *v) +bool ValidateWindowPos3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v) { return true; } -bool ValidateWindowPos3s(const Context *context, GLshort x, GLshort y, GLshort z) +bool ValidateWindowPos3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z) { return true; } -bool ValidateWindowPos3sv(const Context *context, const GLshort *v) +bool ValidateWindowPos3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v) { return true; } bool ValidateGetBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLintptr offset, GLsizeiptr size, const void *data) { return true; } -bool ValidateGetQueryObjectiv(const Context *context, QueryID id, GLenum pname, const GLint *params) +bool ValidateGetQueryObjectiv(const Context *context, + angle::EntryPoint entryPoint, + QueryID id, + GLenum pname, + const GLint *params) { return true; } -bool ValidateMapBuffer(const Context *context, BufferBinding targetPacked, GLenum access) +bool ValidateMapBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked, + GLenum access) { return true; } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationGL1_autogen.h b/gfx/angle/checkout/src/libANGLE/validationGL1_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationGL1_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationGL1_autogen.h @@ -10,181 +10,340 @@ #ifndef LIBANGLE_VALIDATION_GL1_AUTOGEN_H_ #define LIBANGLE_VALIDATION_GL1_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; // GL 1.0 -bool ValidateAccum(const Context *context, GLenum op, GLfloat value); -bool ValidateBegin(const Context *context, GLenum mode); +bool ValidateAccum(const Context *context, angle::EntryPoint entryPoint, GLenum op, GLfloat value); +bool ValidateBegin(const Context *context, angle::EntryPoint entryPoint, GLenum mode); bool ValidateBitmap(const Context *context, + angle::EntryPoint entryPoint, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -bool ValidateCallList(const Context *context, GLuint list); -bool ValidateCallLists(const Context *context, GLsizei n, GLenum type, const void *lists); +bool ValidateCallList(const Context *context, angle::EntryPoint entryPoint, GLuint list); +bool ValidateCallLists(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + GLenum type, + const void *lists); bool ValidateClearAccum(const Context *context, + angle::EntryPoint entryPoint, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -bool ValidateClearDepth(const Context *context, GLdouble depth); -bool ValidateClearIndex(const Context *context, GLfloat c); -bool ValidateClipPlane(const Context *context, GLenum plane, const GLdouble *equation); -bool ValidateColor3b(const Context *context, GLbyte red, GLbyte green, GLbyte blue); -bool ValidateColor3bv(const Context *context, const GLbyte *v); -bool ValidateColor3d(const Context *context, GLdouble red, GLdouble green, GLdouble blue); -bool ValidateColor3dv(const Context *context, const GLdouble *v); -bool ValidateColor3f(const Context *context, GLfloat red, GLfloat green, GLfloat blue); -bool ValidateColor3fv(const Context *context, const GLfloat *v); -bool ValidateColor3i(const Context *context, GLint red, GLint green, GLint blue); -bool ValidateColor3iv(const Context *context, const GLint *v); -bool ValidateColor3s(const Context *context, GLshort red, GLshort green, GLshort blue); -bool ValidateColor3sv(const Context *context, const GLshort *v); -bool ValidateColor3ub(const Context *context, GLubyte red, GLubyte green, GLubyte blue); -bool ValidateColor3ubv(const Context *context, const GLubyte *v); -bool ValidateColor3ui(const Context *context, GLuint red, GLuint green, GLuint blue); -bool ValidateColor3uiv(const Context *context, const GLuint *v); -bool ValidateColor3us(const Context *context, GLushort red, GLushort green, GLushort blue); -bool ValidateColor3usv(const Context *context, const GLushort *v); -bool ValidateColor4b(const Context *context, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -bool ValidateColor4bv(const Context *context, const GLbyte *v); +bool ValidateClearDepth(const Context *context, angle::EntryPoint entryPoint, GLdouble depth); +bool ValidateClearIndex(const Context *context, angle::EntryPoint entryPoint, GLfloat c); +bool ValidateClipPlane(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLdouble *equation); +bool ValidateColor3b(const Context *context, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue); +bool ValidateColor3bv(const Context *context, angle::EntryPoint entryPoint, const GLbyte *v); +bool ValidateColor3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble red, + GLdouble green, + GLdouble blue); +bool ValidateColor3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateColor3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat red, + GLfloat green, + GLfloat blue); +bool ValidateColor3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateColor3i(const Context *context, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue); +bool ValidateColor3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateColor3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort red, + GLshort green, + GLshort blue); +bool ValidateColor3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateColor3ub(const Context *context, + angle::EntryPoint entryPoint, + GLubyte red, + GLubyte green, + GLubyte blue); +bool ValidateColor3ubv(const Context *context, angle::EntryPoint entryPoint, const GLubyte *v); +bool ValidateColor3ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue); +bool ValidateColor3uiv(const Context *context, angle::EntryPoint entryPoint, const GLuint *v); +bool ValidateColor3us(const Context *context, + angle::EntryPoint entryPoint, + GLushort red, + GLushort green, + GLushort blue); +bool ValidateColor3usv(const Context *context, angle::EntryPoint entryPoint, const GLushort *v); +bool ValidateColor4b(const Context *context, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue, + GLbyte alpha); +bool ValidateColor4bv(const Context *context, angle::EntryPoint entryPoint, const GLbyte *v); bool ValidateColor4d(const Context *context, + angle::EntryPoint entryPoint, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -bool ValidateColor4dv(const Context *context, const GLdouble *v); -bool ValidateColor4fv(const Context *context, const GLfloat *v); -bool ValidateColor4i(const Context *context, GLint red, GLint green, GLint blue, GLint alpha); -bool ValidateColor4iv(const Context *context, const GLint *v); +bool ValidateColor4dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateColor4fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateColor4i(const Context *context, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue, + GLint alpha); +bool ValidateColor4iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); bool ValidateColor4s(const Context *context, + angle::EntryPoint entryPoint, GLshort red, GLshort green, GLshort blue, GLshort alpha); -bool ValidateColor4sv(const Context *context, const GLshort *v); -bool ValidateColor4ubv(const Context *context, const GLubyte *v); -bool ValidateColor4ui(const Context *context, GLuint red, GLuint green, GLuint blue, GLuint alpha); -bool ValidateColor4uiv(const Context *context, const GLuint *v); +bool ValidateColor4sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateColor4ubv(const Context *context, angle::EntryPoint entryPoint, const GLubyte *v); +bool ValidateColor4ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue, + GLuint alpha); +bool ValidateColor4uiv(const Context *context, angle::EntryPoint entryPoint, const GLuint *v); bool ValidateColor4us(const Context *context, + angle::EntryPoint entryPoint, GLushort red, GLushort green, GLushort blue, GLushort alpha); -bool ValidateColor4usv(const Context *context, const GLushort *v); -bool ValidateColorMaterial(const Context *context, GLenum face, GLenum mode); +bool ValidateColor4usv(const Context *context, angle::EntryPoint entryPoint, const GLushort *v); +bool ValidateColorMaterial(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLenum mode); bool ValidateCopyPixels(const Context *context, + angle::EntryPoint entryPoint, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -bool ValidateDeleteLists(const Context *context, GLuint list, GLsizei range); -bool ValidateDepthRange(const Context *context, GLdouble n, GLdouble f); -bool ValidateDrawBuffer(const Context *context, GLenum buf); +bool ValidateDeleteLists(const Context *context, + angle::EntryPoint entryPoint, + GLuint list, + GLsizei range); +bool ValidateDepthRange(const Context *context, + angle::EntryPoint entryPoint, + GLdouble n, + GLdouble f); +bool ValidateDrawBuffer(const Context *context, angle::EntryPoint entryPoint, GLenum buf); bool ValidateDrawPixels(const Context *context, + angle::EntryPoint entryPoint, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -bool ValidateEdgeFlag(const Context *context, GLboolean flag); -bool ValidateEdgeFlagv(const Context *context, const GLboolean *flag); -bool ValidateEnd(const Context *context); -bool ValidateEndList(const Context *context); -bool ValidateEvalCoord1d(const Context *context, GLdouble u); -bool ValidateEvalCoord1dv(const Context *context, const GLdouble *u); -bool ValidateEvalCoord1f(const Context *context, GLfloat u); -bool ValidateEvalCoord1fv(const Context *context, const GLfloat *u); -bool ValidateEvalCoord2d(const Context *context, GLdouble u, GLdouble v); -bool ValidateEvalCoord2dv(const Context *context, const GLdouble *u); -bool ValidateEvalCoord2f(const Context *context, GLfloat u, GLfloat v); -bool ValidateEvalCoord2fv(const Context *context, const GLfloat *u); -bool ValidateEvalMesh1(const Context *context, GLenum mode, GLint i1, GLint i2); -bool ValidateEvalMesh2(const Context *context, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -bool ValidateEvalPoint1(const Context *context, GLint i); -bool ValidateEvalPoint2(const Context *context, GLint i, GLint j); +bool ValidateEdgeFlag(const Context *context, angle::EntryPoint entryPoint, GLboolean flag); +bool ValidateEdgeFlagv(const Context *context, angle::EntryPoint entryPoint, const GLboolean *flag); +bool ValidateEnd(const Context *context, angle::EntryPoint entryPoint); +bool ValidateEndList(const Context *context, angle::EntryPoint entryPoint); +bool ValidateEvalCoord1d(const Context *context, angle::EntryPoint entryPoint, GLdouble u); +bool ValidateEvalCoord1dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *u); +bool ValidateEvalCoord1f(const Context *context, angle::EntryPoint entryPoint, GLfloat u); +bool ValidateEvalCoord1fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *u); +bool ValidateEvalCoord2d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble u, + GLdouble v); +bool ValidateEvalCoord2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *u); +bool ValidateEvalCoord2f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat u, + GLfloat v); +bool ValidateEvalCoord2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *u); +bool ValidateEvalMesh1(const Context *context, + angle::EntryPoint entryPoint, + GLenum mode, + GLint i1, + GLint i2); +bool ValidateEvalMesh2(const Context *context, + angle::EntryPoint entryPoint, + GLenum mode, + GLint i1, + GLint i2, + GLint j1, + GLint j2); +bool ValidateEvalPoint1(const Context *context, angle::EntryPoint entryPoint, GLint i); +bool ValidateEvalPoint2(const Context *context, angle::EntryPoint entryPoint, GLint i, GLint j); bool ValidateFeedbackBuffer(const Context *context, + angle::EntryPoint entryPoint, GLsizei size, GLenum type, const GLfloat *buffer); -bool ValidateFogi(const Context *context, GLenum pname, GLint param); -bool ValidateFogiv(const Context *context, GLenum pname, const GLint *params); +bool ValidateFogi(const Context *context, angle::EntryPoint entryPoint, GLenum pname, GLint param); +bool ValidateFogiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params); bool ValidateFrustum(const Context *context, + angle::EntryPoint entryPoint, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -bool ValidateGenLists(const Context *context, GLsizei range); -bool ValidateGetClipPlane(const Context *context, GLenum plane, const GLdouble *equation); -bool ValidateGetDoublev(const Context *context, GLenum pname, const GLdouble *data); -bool ValidateGetLightiv(const Context *context, GLenum light, GLenum pname, const GLint *params); -bool ValidateGetMapdv(const Context *context, GLenum target, GLenum query, const GLdouble *v); -bool ValidateGetMapfv(const Context *context, GLenum target, GLenum query, const GLfloat *v); -bool ValidateGetMapiv(const Context *context, GLenum target, GLenum query, const GLint *v); -bool ValidateGetMaterialiv(const Context *context, GLenum face, GLenum pname, const GLint *params); -bool ValidateGetPixelMapfv(const Context *context, GLenum map, const GLfloat *values); -bool ValidateGetPixelMapuiv(const Context *context, GLenum map, const GLuint *values); -bool ValidateGetPixelMapusv(const Context *context, GLenum map, const GLushort *values); -bool ValidateGetPolygonStipple(const Context *context, const GLubyte *mask); +bool ValidateGenLists(const Context *context, angle::EntryPoint entryPoint, GLsizei range); +bool ValidateGetClipPlane(const Context *context, + angle::EntryPoint entryPoint, + GLenum plane, + const GLdouble *equation); +bool ValidateGetDoublev(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLdouble *data); +bool ValidateGetLightiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + const GLint *params); +bool ValidateGetMapdv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLdouble *v); +bool ValidateGetMapfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLfloat *v); +bool ValidateGetMapiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum query, + const GLint *v); +bool ValidateGetMaterialiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + const GLint *params); +bool ValidateGetPixelMapfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum map, + const GLfloat *values); +bool ValidateGetPixelMapuiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum map, + const GLuint *values); +bool ValidateGetPixelMapusv(const Context *context, + angle::EntryPoint entryPoint, + GLenum map, + const GLushort *values); +bool ValidateGetPolygonStipple(const Context *context, + angle::EntryPoint entryPoint, + const GLubyte *mask); bool ValidateGetTexGendv(const Context *context, + angle::EntryPoint entryPoint, GLenum coord, GLenum pname, const GLdouble *params); -bool ValidateGetTexGenfv(const Context *context, GLenum coord, GLenum pname, const GLfloat *params); -bool ValidateGetTexGeniv(const Context *context, GLenum coord, GLenum pname, const GLint *params); +bool ValidateGetTexGenfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params); +bool ValidateGetTexGeniv(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *params); bool ValidateGetTexImage(const Context *context, + angle::EntryPoint entryPoint, TextureTarget targetPacked, GLint level, GLenum format, GLenum type, const void *pixels); -bool ValidateIndexMask(const Context *context, GLuint mask); -bool ValidateIndexd(const Context *context, GLdouble c); -bool ValidateIndexdv(const Context *context, const GLdouble *c); -bool ValidateIndexf(const Context *context, GLfloat c); -bool ValidateIndexfv(const Context *context, const GLfloat *c); -bool ValidateIndexi(const Context *context, GLint c); -bool ValidateIndexiv(const Context *context, const GLint *c); -bool ValidateIndexs(const Context *context, GLshort c); -bool ValidateIndexsv(const Context *context, const GLshort *c); -bool ValidateInitNames(const Context *context); -bool ValidateIsList(const Context *context, GLuint list); -bool ValidateLightModeli(const Context *context, GLenum pname, GLint param); -bool ValidateLightModeliv(const Context *context, GLenum pname, const GLint *params); -bool ValidateLighti(const Context *context, GLenum light, GLenum pname, GLint param); -bool ValidateLightiv(const Context *context, GLenum light, GLenum pname, const GLint *params); -bool ValidateLineStipple(const Context *context, GLint factor, GLushort pattern); -bool ValidateListBase(const Context *context, GLuint base); -bool ValidateLoadMatrixd(const Context *context, const GLdouble *m); -bool ValidateLoadName(const Context *context, GLuint name); +bool ValidateIndexMask(const Context *context, angle::EntryPoint entryPoint, GLuint mask); +bool ValidateIndexd(const Context *context, angle::EntryPoint entryPoint, GLdouble c); +bool ValidateIndexdv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *c); +bool ValidateIndexf(const Context *context, angle::EntryPoint entryPoint, GLfloat c); +bool ValidateIndexfv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *c); +bool ValidateIndexi(const Context *context, angle::EntryPoint entryPoint, GLint c); +bool ValidateIndexiv(const Context *context, angle::EntryPoint entryPoint, const GLint *c); +bool ValidateIndexs(const Context *context, angle::EntryPoint entryPoint, GLshort c); +bool ValidateIndexsv(const Context *context, angle::EntryPoint entryPoint, const GLshort *c); +bool ValidateInitNames(const Context *context, angle::EntryPoint entryPoint); +bool ValidateIsList(const Context *context, angle::EntryPoint entryPoint, GLuint list); +bool ValidateLightModeli(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param); +bool ValidateLightModeliv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params); +bool ValidateLighti(const Context *context, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + GLint param); +bool ValidateLightiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum light, + GLenum pname, + const GLint *params); +bool ValidateLineStipple(const Context *context, + angle::EntryPoint entryPoint, + GLint factor, + GLushort pattern); +bool ValidateListBase(const Context *context, angle::EntryPoint entryPoint, GLuint base); +bool ValidateLoadMatrixd(const Context *context, angle::EntryPoint entryPoint, const GLdouble *m); +bool ValidateLoadName(const Context *context, angle::EntryPoint entryPoint, GLuint name); bool ValidateMap1d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); bool ValidateMap1f(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); bool ValidateMap2d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, @@ -192,218 +351,491 @@ GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); bool ValidateMap2f(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -bool ValidateMapGrid1d(const Context *context, GLint un, GLdouble u1, GLdouble u2); -bool ValidateMapGrid1f(const Context *context, GLint un, GLfloat u1, GLfloat u2); +bool ValidateMapGrid1d(const Context *context, + angle::EntryPoint entryPoint, + GLint un, + GLdouble u1, + GLdouble u2); +bool ValidateMapGrid1f(const Context *context, + angle::EntryPoint entryPoint, + GLint un, + GLfloat u1, + GLfloat u2); bool ValidateMapGrid2d(const Context *context, + angle::EntryPoint entryPoint, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); bool ValidateMapGrid2f(const Context *context, + angle::EntryPoint entryPoint, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -bool ValidateMateriali(const Context *context, GLenum face, GLenum pname, GLint param); -bool ValidateMaterialiv(const Context *context, GLenum face, GLenum pname, const GLint *params); -bool ValidateMultMatrixd(const Context *context, const GLdouble *m); -bool ValidateNewList(const Context *context, GLuint list, GLenum mode); -bool ValidateNormal3b(const Context *context, GLbyte nx, GLbyte ny, GLbyte nz); -bool ValidateNormal3bv(const Context *context, const GLbyte *v); -bool ValidateNormal3d(const Context *context, GLdouble nx, GLdouble ny, GLdouble nz); -bool ValidateNormal3dv(const Context *context, const GLdouble *v); -bool ValidateNormal3fv(const Context *context, const GLfloat *v); -bool ValidateNormal3i(const Context *context, GLint nx, GLint ny, GLint nz); -bool ValidateNormal3iv(const Context *context, const GLint *v); -bool ValidateNormal3s(const Context *context, GLshort nx, GLshort ny, GLshort nz); -bool ValidateNormal3sv(const Context *context, const GLshort *v); +bool ValidateMateriali(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + GLint param); +bool ValidateMaterialiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLenum pname, + const GLint *params); +bool ValidateMultMatrixd(const Context *context, angle::EntryPoint entryPoint, const GLdouble *m); +bool ValidateNewList(const Context *context, + angle::EntryPoint entryPoint, + GLuint list, + GLenum mode); +bool ValidateNormal3b(const Context *context, + angle::EntryPoint entryPoint, + GLbyte nx, + GLbyte ny, + GLbyte nz); +bool ValidateNormal3bv(const Context *context, angle::EntryPoint entryPoint, const GLbyte *v); +bool ValidateNormal3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble nx, + GLdouble ny, + GLdouble nz); +bool ValidateNormal3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateNormal3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateNormal3i(const Context *context, + angle::EntryPoint entryPoint, + GLint nx, + GLint ny, + GLint nz); +bool ValidateNormal3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateNormal3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort nx, + GLshort ny, + GLshort nz); +bool ValidateNormal3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); bool ValidateOrtho(const Context *context, + angle::EntryPoint entryPoint, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -bool ValidatePassThrough(const Context *context, GLfloat token); -bool ValidatePixelMapfv(const Context *context, GLenum map, GLsizei mapsize, const GLfloat *values); -bool ValidatePixelMapuiv(const Context *context, GLenum map, GLsizei mapsize, const GLuint *values); +bool ValidatePassThrough(const Context *context, angle::EntryPoint entryPoint, GLfloat token); +bool ValidatePixelMapfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum map, + GLsizei mapsize, + const GLfloat *values); +bool ValidatePixelMapuiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum map, + GLsizei mapsize, + const GLuint *values); bool ValidatePixelMapusv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei mapsize, const GLushort *values); -bool ValidatePixelStoref(const Context *context, GLenum pname, GLfloat param); -bool ValidatePixelTransferf(const Context *context, GLenum pname, GLfloat param); -bool ValidatePixelTransferi(const Context *context, GLenum pname, GLint param); -bool ValidatePixelZoom(const Context *context, GLfloat xfactor, GLfloat yfactor); -bool ValidatePolygonMode(const Context *context, GLenum face, GLenum mode); -bool ValidatePolygonStipple(const Context *context, const GLubyte *mask); -bool ValidatePopAttrib(const Context *context); -bool ValidatePopName(const Context *context); -bool ValidatePushAttrib(const Context *context, GLbitfield mask); -bool ValidatePushName(const Context *context, GLuint name); -bool ValidateRasterPos2d(const Context *context, GLdouble x, GLdouble y); -bool ValidateRasterPos2dv(const Context *context, const GLdouble *v); -bool ValidateRasterPos2f(const Context *context, GLfloat x, GLfloat y); -bool ValidateRasterPos2fv(const Context *context, const GLfloat *v); -bool ValidateRasterPos2i(const Context *context, GLint x, GLint y); -bool ValidateRasterPos2iv(const Context *context, const GLint *v); -bool ValidateRasterPos2s(const Context *context, GLshort x, GLshort y); -bool ValidateRasterPos2sv(const Context *context, const GLshort *v); -bool ValidateRasterPos3d(const Context *context, GLdouble x, GLdouble y, GLdouble z); -bool ValidateRasterPos3dv(const Context *context, const GLdouble *v); -bool ValidateRasterPos3f(const Context *context, GLfloat x, GLfloat y, GLfloat z); -bool ValidateRasterPos3fv(const Context *context, const GLfloat *v); -bool ValidateRasterPos3i(const Context *context, GLint x, GLint y, GLint z); -bool ValidateRasterPos3iv(const Context *context, const GLint *v); -bool ValidateRasterPos3s(const Context *context, GLshort x, GLshort y, GLshort z); -bool ValidateRasterPos3sv(const Context *context, const GLshort *v); -bool ValidateRasterPos4d(const Context *context, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -bool ValidateRasterPos4dv(const Context *context, const GLdouble *v); -bool ValidateRasterPos4f(const Context *context, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -bool ValidateRasterPos4fv(const Context *context, const GLfloat *v); -bool ValidateRasterPos4i(const Context *context, GLint x, GLint y, GLint z, GLint w); -bool ValidateRasterPos4iv(const Context *context, const GLint *v); -bool ValidateRasterPos4s(const Context *context, GLshort x, GLshort y, GLshort z, GLshort w); -bool ValidateRasterPos4sv(const Context *context, const GLshort *v); -bool ValidateRectd(const Context *context, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -bool ValidateRectdv(const Context *context, const GLdouble *v1, const GLdouble *v2); -bool ValidateRectf(const Context *context, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -bool ValidateRectfv(const Context *context, const GLfloat *v1, const GLfloat *v2); -bool ValidateRecti(const Context *context, GLint x1, GLint y1, GLint x2, GLint y2); -bool ValidateRectiv(const Context *context, const GLint *v1, const GLint *v2); -bool ValidateRects(const Context *context, GLshort x1, GLshort y1, GLshort x2, GLshort y2); -bool ValidateRectsv(const Context *context, const GLshort *v1, const GLshort *v2); -bool ValidateRenderMode(const Context *context, GLenum mode); -bool ValidateRotated(const Context *context, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -bool ValidateScaled(const Context *context, GLdouble x, GLdouble y, GLdouble z); -bool ValidateSelectBuffer(const Context *context, GLsizei size, const GLuint *buffer); -bool ValidateTexCoord1d(const Context *context, GLdouble s); -bool ValidateTexCoord1dv(const Context *context, const GLdouble *v); -bool ValidateTexCoord1f(const Context *context, GLfloat s); -bool ValidateTexCoord1fv(const Context *context, const GLfloat *v); -bool ValidateTexCoord1i(const Context *context, GLint s); -bool ValidateTexCoord1iv(const Context *context, const GLint *v); -bool ValidateTexCoord1s(const Context *context, GLshort s); -bool ValidateTexCoord1sv(const Context *context, const GLshort *v); -bool ValidateTexCoord2d(const Context *context, GLdouble s, GLdouble t); -bool ValidateTexCoord2dv(const Context *context, const GLdouble *v); -bool ValidateTexCoord2f(const Context *context, GLfloat s, GLfloat t); -bool ValidateTexCoord2fv(const Context *context, const GLfloat *v); -bool ValidateTexCoord2i(const Context *context, GLint s, GLint t); -bool ValidateTexCoord2iv(const Context *context, const GLint *v); -bool ValidateTexCoord2s(const Context *context, GLshort s, GLshort t); -bool ValidateTexCoord2sv(const Context *context, const GLshort *v); -bool ValidateTexCoord3d(const Context *context, GLdouble s, GLdouble t, GLdouble r); -bool ValidateTexCoord3dv(const Context *context, const GLdouble *v); -bool ValidateTexCoord3f(const Context *context, GLfloat s, GLfloat t, GLfloat r); -bool ValidateTexCoord3fv(const Context *context, const GLfloat *v); -bool ValidateTexCoord3i(const Context *context, GLint s, GLint t, GLint r); -bool ValidateTexCoord3iv(const Context *context, const GLint *v); -bool ValidateTexCoord3s(const Context *context, GLshort s, GLshort t, GLshort r); -bool ValidateTexCoord3sv(const Context *context, const GLshort *v); -bool ValidateTexCoord4d(const Context *context, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -bool ValidateTexCoord4dv(const Context *context, const GLdouble *v); -bool ValidateTexCoord4f(const Context *context, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -bool ValidateTexCoord4fv(const Context *context, const GLfloat *v); -bool ValidateTexCoord4i(const Context *context, GLint s, GLint t, GLint r, GLint q); -bool ValidateTexCoord4iv(const Context *context, const GLint *v); -bool ValidateTexCoord4s(const Context *context, GLshort s, GLshort t, GLshort r, GLshort q); -bool ValidateTexCoord4sv(const Context *context, const GLshort *v); -bool ValidateTexGend(const Context *context, GLenum coord, GLenum pname, GLdouble param); -bool ValidateTexGendv(const Context *context, GLenum coord, GLenum pname, const GLdouble *params); -bool ValidateTexGenf(const Context *context, GLenum coord, GLenum pname, GLfloat param); -bool ValidateTexGenfv(const Context *context, GLenum coord, GLenum pname, const GLfloat *params); -bool ValidateTexGeni(const Context *context, GLenum coord, GLenum pname, GLint param); -bool ValidateTexGeniv(const Context *context, GLenum coord, GLenum pname, const GLint *params); +bool ValidatePixelStoref(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param); +bool ValidatePixelTransferf(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLfloat param); +bool ValidatePixelTransferi(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param); +bool ValidatePixelZoom(const Context *context, + angle::EntryPoint entryPoint, + GLfloat xfactor, + GLfloat yfactor); +bool ValidatePolygonMode(const Context *context, + angle::EntryPoint entryPoint, + GLenum face, + GLenum mode); +bool ValidatePolygonStipple(const Context *context, + angle::EntryPoint entryPoint, + const GLubyte *mask); +bool ValidatePopAttrib(const Context *context, angle::EntryPoint entryPoint); +bool ValidatePopName(const Context *context, angle::EntryPoint entryPoint); +bool ValidatePushAttrib(const Context *context, angle::EntryPoint entryPoint, GLbitfield mask); +bool ValidatePushName(const Context *context, angle::EntryPoint entryPoint, GLuint name); +bool ValidateRasterPos2d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y); +bool ValidateRasterPos2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateRasterPos2f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y); +bool ValidateRasterPos2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateRasterPos2i(const Context *context, angle::EntryPoint entryPoint, GLint x, GLint y); +bool ValidateRasterPos2iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateRasterPos2s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y); +bool ValidateRasterPos2sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateRasterPos3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateRasterPos3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateRasterPos3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateRasterPos3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateRasterPos3i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z); +bool ValidateRasterPos3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateRasterPos3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z); +bool ValidateRasterPos3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateRasterPos4d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z, + GLdouble w); +bool ValidateRasterPos4dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateRasterPos4f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z, + GLfloat w); +bool ValidateRasterPos4fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateRasterPos4i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z, + GLint w); +bool ValidateRasterPos4iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateRasterPos4s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z, + GLshort w); +bool ValidateRasterPos4sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateRectd(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x1, + GLdouble y1, + GLdouble x2, + GLdouble y2); +bool ValidateRectdv(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *v1, + const GLdouble *v2); +bool ValidateRectf(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x1, + GLfloat y1, + GLfloat x2, + GLfloat y2); +bool ValidateRectfv(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *v1, + const GLfloat *v2); +bool ValidateRecti(const Context *context, + angle::EntryPoint entryPoint, + GLint x1, + GLint y1, + GLint x2, + GLint y2); +bool ValidateRectiv(const Context *context, + angle::EntryPoint entryPoint, + const GLint *v1, + const GLint *v2); +bool ValidateRects(const Context *context, + angle::EntryPoint entryPoint, + GLshort x1, + GLshort y1, + GLshort x2, + GLshort y2); +bool ValidateRectsv(const Context *context, + angle::EntryPoint entryPoint, + const GLshort *v1, + const GLshort *v2); +bool ValidateRenderMode(const Context *context, angle::EntryPoint entryPoint, GLenum mode); +bool ValidateRotated(const Context *context, + angle::EntryPoint entryPoint, + GLdouble angle, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateScaled(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateSelectBuffer(const Context *context, + angle::EntryPoint entryPoint, + GLsizei size, + const GLuint *buffer); +bool ValidateTexCoord1d(const Context *context, angle::EntryPoint entryPoint, GLdouble s); +bool ValidateTexCoord1dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateTexCoord1f(const Context *context, angle::EntryPoint entryPoint, GLfloat s); +bool ValidateTexCoord1fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateTexCoord1i(const Context *context, angle::EntryPoint entryPoint, GLint s); +bool ValidateTexCoord1iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateTexCoord1s(const Context *context, angle::EntryPoint entryPoint, GLshort s); +bool ValidateTexCoord1sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateTexCoord2d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble s, + GLdouble t); +bool ValidateTexCoord2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateTexCoord2f(const Context *context, angle::EntryPoint entryPoint, GLfloat s, GLfloat t); +bool ValidateTexCoord2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateTexCoord2i(const Context *context, angle::EntryPoint entryPoint, GLint s, GLint t); +bool ValidateTexCoord2iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateTexCoord2s(const Context *context, angle::EntryPoint entryPoint, GLshort s, GLshort t); +bool ValidateTexCoord2sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateTexCoord3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble s, + GLdouble t, + GLdouble r); +bool ValidateTexCoord3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateTexCoord3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat s, + GLfloat t, + GLfloat r); +bool ValidateTexCoord3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateTexCoord3i(const Context *context, + angle::EntryPoint entryPoint, + GLint s, + GLint t, + GLint r); +bool ValidateTexCoord3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateTexCoord3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort s, + GLshort t, + GLshort r); +bool ValidateTexCoord3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateTexCoord4d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble s, + GLdouble t, + GLdouble r, + GLdouble q); +bool ValidateTexCoord4dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateTexCoord4f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat s, + GLfloat t, + GLfloat r, + GLfloat q); +bool ValidateTexCoord4fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateTexCoord4i(const Context *context, + angle::EntryPoint entryPoint, + GLint s, + GLint t, + GLint r, + GLint q); +bool ValidateTexCoord4iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateTexCoord4s(const Context *context, + angle::EntryPoint entryPoint, + GLshort s, + GLshort t, + GLshort r, + GLshort q); +bool ValidateTexCoord4sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateTexGend(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLdouble param); +bool ValidateTexGendv(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLdouble *params); +bool ValidateTexGenf(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLfloat param); +bool ValidateTexGenfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLfloat *params); +bool ValidateTexGeni(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + GLint param); +bool ValidateTexGeniv(const Context *context, + angle::EntryPoint entryPoint, + GLenum coord, + GLenum pname, + const GLint *params); bool ValidateTexImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -bool ValidateTranslated(const Context *context, GLdouble x, GLdouble y, GLdouble z); -bool ValidateVertex2d(const Context *context, GLdouble x, GLdouble y); -bool ValidateVertex2dv(const Context *context, const GLdouble *v); -bool ValidateVertex2f(const Context *context, GLfloat x, GLfloat y); -bool ValidateVertex2fv(const Context *context, const GLfloat *v); -bool ValidateVertex2i(const Context *context, GLint x, GLint y); -bool ValidateVertex2iv(const Context *context, const GLint *v); -bool ValidateVertex2s(const Context *context, GLshort x, GLshort y); -bool ValidateVertex2sv(const Context *context, const GLshort *v); -bool ValidateVertex3d(const Context *context, GLdouble x, GLdouble y, GLdouble z); -bool ValidateVertex3dv(const Context *context, const GLdouble *v); -bool ValidateVertex3f(const Context *context, GLfloat x, GLfloat y, GLfloat z); -bool ValidateVertex3fv(const Context *context, const GLfloat *v); -bool ValidateVertex3i(const Context *context, GLint x, GLint y, GLint z); -bool ValidateVertex3iv(const Context *context, const GLint *v); -bool ValidateVertex3s(const Context *context, GLshort x, GLshort y, GLshort z); -bool ValidateVertex3sv(const Context *context, const GLshort *v); -bool ValidateVertex4d(const Context *context, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -bool ValidateVertex4dv(const Context *context, const GLdouble *v); -bool ValidateVertex4f(const Context *context, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -bool ValidateVertex4fv(const Context *context, const GLfloat *v); -bool ValidateVertex4i(const Context *context, GLint x, GLint y, GLint z, GLint w); -bool ValidateVertex4iv(const Context *context, const GLint *v); -bool ValidateVertex4s(const Context *context, GLshort x, GLshort y, GLshort z, GLshort w); -bool ValidateVertex4sv(const Context *context, const GLshort *v); +bool ValidateTranslated(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateVertex2d(const Context *context, angle::EntryPoint entryPoint, GLdouble x, GLdouble y); +bool ValidateVertex2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateVertex2f(const Context *context, angle::EntryPoint entryPoint, GLfloat x, GLfloat y); +bool ValidateVertex2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateVertex2i(const Context *context, angle::EntryPoint entryPoint, GLint x, GLint y); +bool ValidateVertex2iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateVertex2s(const Context *context, angle::EntryPoint entryPoint, GLshort x, GLshort y); +bool ValidateVertex2sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateVertex3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateVertex3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateVertex3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateVertex3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateVertex3i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z); +bool ValidateVertex3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateVertex3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z); +bool ValidateVertex3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateVertex4d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z, + GLdouble w); +bool ValidateVertex4dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateVertex4f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z, + GLfloat w); +bool ValidateVertex4fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateVertex4i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z, + GLint w); +bool ValidateVertex4iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateVertex4s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z, + GLshort w); +bool ValidateVertex4sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); // GL 1.1 bool ValidateAreTexturesResident(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const GLuint *textures, const GLboolean *residences); -bool ValidateArrayElement(const Context *context, GLint i); +bool ValidateArrayElement(const Context *context, angle::EntryPoint entryPoint, GLint i); bool ValidateCopyTexImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); bool ValidateCopyTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -bool ValidateEdgeFlagPointer(const Context *context, GLsizei stride, const void *pointer); -bool ValidateIndexPointer(const Context *context, GLenum type, GLsizei stride, const void *pointer); -bool ValidateIndexub(const Context *context, GLubyte c); -bool ValidateIndexubv(const Context *context, const GLubyte *c); +bool ValidateEdgeFlagPointer(const Context *context, + angle::EntryPoint entryPoint, + GLsizei stride, + const void *pointer); +bool ValidateIndexPointer(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLsizei stride, + const void *pointer); +bool ValidateIndexub(const Context *context, angle::EntryPoint entryPoint, GLubyte c); +bool ValidateIndexubv(const Context *context, angle::EntryPoint entryPoint, const GLubyte *c); bool ValidateInterleavedArrays(const Context *context, + angle::EntryPoint entryPoint, GLenum format, GLsizei stride, const void *pointer); -bool ValidatePopClientAttrib(const Context *context); +bool ValidatePopClientAttrib(const Context *context, angle::EntryPoint entryPoint); bool ValidatePrioritizeTextures(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const GLuint *textures, const GLfloat *priorities); -bool ValidatePushClientAttrib(const Context *context, GLbitfield mask); +bool ValidatePushClientAttrib(const Context *context, + angle::EntryPoint entryPoint, + GLbitfield mask); bool ValidateTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -412,161 +844,349 @@ // GL 1.2 // GL 1.3 bool ValidateCompressedTexImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); bool ValidateCompressedTexSubImage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); bool ValidateGetCompressedTexImage(const Context *context, - GLenum target, + angle::EntryPoint entryPoint, + TextureTarget targetPacked, GLint level, const void *img); -bool ValidateLoadTransposeMatrixd(const Context *context, const GLdouble *m); -bool ValidateLoadTransposeMatrixf(const Context *context, const GLfloat *m); -bool ValidateMultTransposeMatrixd(const Context *context, const GLdouble *m); -bool ValidateMultTransposeMatrixf(const Context *context, const GLfloat *m); -bool ValidateMultiTexCoord1d(const Context *context, GLenum target, GLdouble s); -bool ValidateMultiTexCoord1dv(const Context *context, GLenum target, const GLdouble *v); -bool ValidateMultiTexCoord1f(const Context *context, GLenum target, GLfloat s); -bool ValidateMultiTexCoord1fv(const Context *context, GLenum target, const GLfloat *v); -bool ValidateMultiTexCoord1i(const Context *context, GLenum target, GLint s); -bool ValidateMultiTexCoord1iv(const Context *context, GLenum target, const GLint *v); -bool ValidateMultiTexCoord1s(const Context *context, GLenum target, GLshort s); -bool ValidateMultiTexCoord1sv(const Context *context, GLenum target, const GLshort *v); -bool ValidateMultiTexCoord2d(const Context *context, GLenum target, GLdouble s, GLdouble t); -bool ValidateMultiTexCoord2dv(const Context *context, GLenum target, const GLdouble *v); -bool ValidateMultiTexCoord2f(const Context *context, GLenum target, GLfloat s, GLfloat t); -bool ValidateMultiTexCoord2fv(const Context *context, GLenum target, const GLfloat *v); -bool ValidateMultiTexCoord2i(const Context *context, GLenum target, GLint s, GLint t); -bool ValidateMultiTexCoord2iv(const Context *context, GLenum target, const GLint *v); -bool ValidateMultiTexCoord2s(const Context *context, GLenum target, GLshort s, GLshort t); -bool ValidateMultiTexCoord2sv(const Context *context, GLenum target, const GLshort *v); +bool ValidateLoadTransposeMatrixd(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *m); +bool ValidateLoadTransposeMatrixf(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *m); +bool ValidateMultTransposeMatrixd(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *m); +bool ValidateMultTransposeMatrixf(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *m); +bool ValidateMultiTexCoord1d(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLdouble s); +bool ValidateMultiTexCoord1dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v); +bool ValidateMultiTexCoord1f(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLfloat s); +bool ValidateMultiTexCoord1fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v); +bool ValidateMultiTexCoord1i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s); +bool ValidateMultiTexCoord1iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v); +bool ValidateMultiTexCoord1s(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLshort s); +bool ValidateMultiTexCoord1sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v); +bool ValidateMultiTexCoord2d(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLdouble s, + GLdouble t); +bool ValidateMultiTexCoord2dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v); +bool ValidateMultiTexCoord2f(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLfloat s, + GLfloat t); +bool ValidateMultiTexCoord2fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v); +bool ValidateMultiTexCoord2i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s, + GLint t); +bool ValidateMultiTexCoord2iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v); +bool ValidateMultiTexCoord2s(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLshort s, + GLshort t); +bool ValidateMultiTexCoord2sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v); bool ValidateMultiTexCoord3d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble s, GLdouble t, GLdouble r); -bool ValidateMultiTexCoord3dv(const Context *context, GLenum target, const GLdouble *v); +bool ValidateMultiTexCoord3dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v); bool ValidateMultiTexCoord3f(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLfloat s, GLfloat t, GLfloat r); -bool ValidateMultiTexCoord3fv(const Context *context, GLenum target, const GLfloat *v); -bool ValidateMultiTexCoord3i(const Context *context, GLenum target, GLint s, GLint t, GLint r); -bool ValidateMultiTexCoord3iv(const Context *context, GLenum target, const GLint *v); +bool ValidateMultiTexCoord3fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v); +bool ValidateMultiTexCoord3i(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLint s, + GLint t, + GLint r); +bool ValidateMultiTexCoord3iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v); bool ValidateMultiTexCoord3s(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLshort s, GLshort t, GLshort r); -bool ValidateMultiTexCoord3sv(const Context *context, GLenum target, const GLshort *v); +bool ValidateMultiTexCoord3sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v); bool ValidateMultiTexCoord4d(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -bool ValidateMultiTexCoord4dv(const Context *context, GLenum target, const GLdouble *v); -bool ValidateMultiTexCoord4fv(const Context *context, GLenum target, const GLfloat *v); +bool ValidateMultiTexCoord4dv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLdouble *v); +bool ValidateMultiTexCoord4fv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLfloat *v); bool ValidateMultiTexCoord4i(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint s, GLint t, GLint r, GLint q); -bool ValidateMultiTexCoord4iv(const Context *context, GLenum target, const GLint *v); +bool ValidateMultiTexCoord4iv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLint *v); bool ValidateMultiTexCoord4s(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -bool ValidateMultiTexCoord4sv(const Context *context, GLenum target, const GLshort *v); +bool ValidateMultiTexCoord4sv(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + const GLshort *v); // GL 1.4 bool ValidateFogCoordPointer(const Context *context, + angle::EntryPoint entryPoint, GLenum type, GLsizei stride, const void *pointer); -bool ValidateFogCoordd(const Context *context, GLdouble coord); -bool ValidateFogCoorddv(const Context *context, const GLdouble *coord); -bool ValidateFogCoordf(const Context *context, GLfloat coord); -bool ValidateFogCoordfv(const Context *context, const GLfloat *coord); +bool ValidateFogCoordd(const Context *context, angle::EntryPoint entryPoint, GLdouble coord); +bool ValidateFogCoorddv(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *coord); +bool ValidateFogCoordf(const Context *context, angle::EntryPoint entryPoint, GLfloat coord); +bool ValidateFogCoordfv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *coord); bool ValidateMultiDrawArrays(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLint *first, const GLsizei *count, GLsizei drawcount); bool ValidateMultiDrawElements(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *count, DrawElementsType typePacked, const void *const *indices, GLsizei drawcount); -bool ValidatePointParameteri(const Context *context, GLenum pname, GLint param); -bool ValidatePointParameteriv(const Context *context, GLenum pname, const GLint *params); -bool ValidateSecondaryColor3b(const Context *context, GLbyte red, GLbyte green, GLbyte blue); -bool ValidateSecondaryColor3bv(const Context *context, const GLbyte *v); -bool ValidateSecondaryColor3d(const Context *context, GLdouble red, GLdouble green, GLdouble blue); -bool ValidateSecondaryColor3dv(const Context *context, const GLdouble *v); -bool ValidateSecondaryColor3f(const Context *context, GLfloat red, GLfloat green, GLfloat blue); -bool ValidateSecondaryColor3fv(const Context *context, const GLfloat *v); -bool ValidateSecondaryColor3i(const Context *context, GLint red, GLint green, GLint blue); -bool ValidateSecondaryColor3iv(const Context *context, const GLint *v); -bool ValidateSecondaryColor3s(const Context *context, GLshort red, GLshort green, GLshort blue); -bool ValidateSecondaryColor3sv(const Context *context, const GLshort *v); -bool ValidateSecondaryColor3ub(const Context *context, GLubyte red, GLubyte green, GLubyte blue); -bool ValidateSecondaryColor3ubv(const Context *context, const GLubyte *v); -bool ValidateSecondaryColor3ui(const Context *context, GLuint red, GLuint green, GLuint blue); -bool ValidateSecondaryColor3uiv(const Context *context, const GLuint *v); -bool ValidateSecondaryColor3us(const Context *context, GLushort red, GLushort green, GLushort blue); -bool ValidateSecondaryColor3usv(const Context *context, const GLushort *v); +bool ValidatePointParameteri(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + GLint param); +bool ValidatePointParameteriv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLint *params); +bool ValidateSecondaryColor3b(const Context *context, + angle::EntryPoint entryPoint, + GLbyte red, + GLbyte green, + GLbyte blue); +bool ValidateSecondaryColor3bv(const Context *context, + angle::EntryPoint entryPoint, + const GLbyte *v); +bool ValidateSecondaryColor3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble red, + GLdouble green, + GLdouble blue); +bool ValidateSecondaryColor3dv(const Context *context, + angle::EntryPoint entryPoint, + const GLdouble *v); +bool ValidateSecondaryColor3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat red, + GLfloat green, + GLfloat blue); +bool ValidateSecondaryColor3fv(const Context *context, + angle::EntryPoint entryPoint, + const GLfloat *v); +bool ValidateSecondaryColor3i(const Context *context, + angle::EntryPoint entryPoint, + GLint red, + GLint green, + GLint blue); +bool ValidateSecondaryColor3iv(const Context *context, + angle::EntryPoint entryPoint, + const GLint *v); +bool ValidateSecondaryColor3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort red, + GLshort green, + GLshort blue); +bool ValidateSecondaryColor3sv(const Context *context, + angle::EntryPoint entryPoint, + const GLshort *v); +bool ValidateSecondaryColor3ub(const Context *context, + angle::EntryPoint entryPoint, + GLubyte red, + GLubyte green, + GLubyte blue); +bool ValidateSecondaryColor3ubv(const Context *context, + angle::EntryPoint entryPoint, + const GLubyte *v); +bool ValidateSecondaryColor3ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint red, + GLuint green, + GLuint blue); +bool ValidateSecondaryColor3uiv(const Context *context, + angle::EntryPoint entryPoint, + const GLuint *v); +bool ValidateSecondaryColor3us(const Context *context, + angle::EntryPoint entryPoint, + GLushort red, + GLushort green, + GLushort blue); +bool ValidateSecondaryColor3usv(const Context *context, + angle::EntryPoint entryPoint, + const GLushort *v); bool ValidateSecondaryColorPointer(const Context *context, + angle::EntryPoint entryPoint, GLint size, GLenum type, GLsizei stride, const void *pointer); -bool ValidateWindowPos2d(const Context *context, GLdouble x, GLdouble y); -bool ValidateWindowPos2dv(const Context *context, const GLdouble *v); -bool ValidateWindowPos2f(const Context *context, GLfloat x, GLfloat y); -bool ValidateWindowPos2fv(const Context *context, const GLfloat *v); -bool ValidateWindowPos2i(const Context *context, GLint x, GLint y); -bool ValidateWindowPos2iv(const Context *context, const GLint *v); -bool ValidateWindowPos2s(const Context *context, GLshort x, GLshort y); -bool ValidateWindowPos2sv(const Context *context, const GLshort *v); -bool ValidateWindowPos3d(const Context *context, GLdouble x, GLdouble y, GLdouble z); -bool ValidateWindowPos3dv(const Context *context, const GLdouble *v); -bool ValidateWindowPos3f(const Context *context, GLfloat x, GLfloat y, GLfloat z); -bool ValidateWindowPos3fv(const Context *context, const GLfloat *v); -bool ValidateWindowPos3i(const Context *context, GLint x, GLint y, GLint z); -bool ValidateWindowPos3iv(const Context *context, const GLint *v); -bool ValidateWindowPos3s(const Context *context, GLshort x, GLshort y, GLshort z); -bool ValidateWindowPos3sv(const Context *context, const GLshort *v); +bool ValidateWindowPos2d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y); +bool ValidateWindowPos2dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateWindowPos2f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y); +bool ValidateWindowPos2fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateWindowPos2i(const Context *context, angle::EntryPoint entryPoint, GLint x, GLint y); +bool ValidateWindowPos2iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateWindowPos2s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y); +bool ValidateWindowPos2sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); +bool ValidateWindowPos3d(const Context *context, + angle::EntryPoint entryPoint, + GLdouble x, + GLdouble y, + GLdouble z); +bool ValidateWindowPos3dv(const Context *context, angle::EntryPoint entryPoint, const GLdouble *v); +bool ValidateWindowPos3f(const Context *context, + angle::EntryPoint entryPoint, + GLfloat x, + GLfloat y, + GLfloat z); +bool ValidateWindowPos3fv(const Context *context, angle::EntryPoint entryPoint, const GLfloat *v); +bool ValidateWindowPos3i(const Context *context, + angle::EntryPoint entryPoint, + GLint x, + GLint y, + GLint z); +bool ValidateWindowPos3iv(const Context *context, angle::EntryPoint entryPoint, const GLint *v); +bool ValidateWindowPos3s(const Context *context, + angle::EntryPoint entryPoint, + GLshort x, + GLshort y, + GLshort z); +bool ValidateWindowPos3sv(const Context *context, angle::EntryPoint entryPoint, const GLshort *v); // GL 1.5 bool ValidateGetBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLintptr offset, GLsizeiptr size, const void *data); bool ValidateGetQueryObjectiv(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLint *params); -bool ValidateMapBuffer(const Context *context, BufferBinding targetPacked, GLenum access); +bool ValidateMapBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferBinding targetPacked, + GLenum access); } // namespace gl #endif // LIBANGLE_VALIDATION_GL1_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationGL2.cpp b/gfx/angle/checkout/src/libANGLE/validationGL2.cpp --- a/gfx/angle/checkout/src/libANGLE/validationGL2.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationGL2.cpp @@ -10,172 +10,253 @@ namespace gl { bool ValidateGetVertexAttribdv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLdouble *params) { return true; } -bool ValidateVertexAttrib1d(const Context *context, GLuint index, GLdouble x) +bool ValidateVertexAttrib1d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x) { return true; } -bool ValidateVertexAttrib1dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttrib1dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } -bool ValidateVertexAttrib1s(const Context *context, GLuint index, GLshort x) +bool ValidateVertexAttrib1s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x) { return true; } -bool ValidateVertexAttrib1sv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttrib1sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } -bool ValidateVertexAttrib2d(const Context *context, GLuint index, GLdouble x, GLdouble y) +bool ValidateVertexAttrib2d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x, + GLdouble y) { return true; } -bool ValidateVertexAttrib2dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttrib2dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } -bool ValidateVertexAttrib2s(const Context *context, GLuint index, GLshort x, GLshort y) +bool ValidateVertexAttrib2s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x, + GLshort y) { return true; } -bool ValidateVertexAttrib2sv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttrib2sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } bool ValidateVertexAttrib3d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z) { return true; } -bool ValidateVertexAttrib3dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttrib3dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } -bool ValidateVertexAttrib3s(const Context *context, GLuint index, GLshort x, GLshort y, GLshort z) +bool ValidateVertexAttrib3s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x, + GLshort y, + GLshort z) { return true; } -bool ValidateVertexAttrib3sv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttrib3sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } -bool ValidateVertexAttrib4Nbv(const Context *context, GLuint index, const GLbyte *v) +bool ValidateVertexAttrib4Nbv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v) { return true; } -bool ValidateVertexAttrib4Niv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttrib4Niv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } -bool ValidateVertexAttrib4Nsv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttrib4Nsv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } bool ValidateVertexAttrib4Nub(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) { return true; } -bool ValidateVertexAttrib4Nubv(const Context *context, GLuint index, const GLubyte *v) +bool ValidateVertexAttrib4Nubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v) { return true; } -bool ValidateVertexAttrib4Nuiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttrib4Nuiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { return true; } -bool ValidateVertexAttrib4Nusv(const Context *context, GLuint index, const GLushort *v) +bool ValidateVertexAttrib4Nusv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v) { return true; } -bool ValidateVertexAttrib4bv(const Context *context, GLuint index, const GLbyte *v) +bool ValidateVertexAttrib4bv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v) { return true; } bool ValidateVertexAttrib4d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) { return true; } -bool ValidateVertexAttrib4dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttrib4dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } -bool ValidateVertexAttrib4iv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttrib4iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } bool ValidateVertexAttrib4s(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) { return true; } -bool ValidateVertexAttrib4sv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttrib4sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } -bool ValidateVertexAttrib4ubv(const Context *context, GLuint index, const GLubyte *v) +bool ValidateVertexAttrib4ubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v) { return true; } -bool ValidateVertexAttrib4uiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttrib4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { return true; } -bool ValidateVertexAttrib4usv(const Context *context, GLuint index, const GLushort *v) +bool ValidateVertexAttrib4usv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v) { return true; } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationGL2_autogen.h b/gfx/angle/checkout/src/libANGLE/validationGL2_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationGL2_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationGL2_autogen.h @@ -10,67 +10,149 @@ #ifndef LIBANGLE_VALIDATION_GL2_AUTOGEN_H_ #define LIBANGLE_VALIDATION_GL2_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; // GL 2.0 bool ValidateGetVertexAttribdv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLdouble *params); -bool ValidateVertexAttrib1d(const Context *context, GLuint index, GLdouble x); -bool ValidateVertexAttrib1dv(const Context *context, GLuint index, const GLdouble *v); -bool ValidateVertexAttrib1s(const Context *context, GLuint index, GLshort x); -bool ValidateVertexAttrib1sv(const Context *context, GLuint index, const GLshort *v); -bool ValidateVertexAttrib2d(const Context *context, GLuint index, GLdouble x, GLdouble y); -bool ValidateVertexAttrib2dv(const Context *context, GLuint index, const GLdouble *v); -bool ValidateVertexAttrib2s(const Context *context, GLuint index, GLshort x, GLshort y); -bool ValidateVertexAttrib2sv(const Context *context, GLuint index, const GLshort *v); +bool ValidateVertexAttrib1d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x); +bool ValidateVertexAttrib1dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); +bool ValidateVertexAttrib1s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x); +bool ValidateVertexAttrib1sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); +bool ValidateVertexAttrib2d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x, + GLdouble y); +bool ValidateVertexAttrib2dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); +bool ValidateVertexAttrib2s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x, + GLshort y); +bool ValidateVertexAttrib2sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); bool ValidateVertexAttrib3d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z); -bool ValidateVertexAttrib3dv(const Context *context, GLuint index, const GLdouble *v); -bool ValidateVertexAttrib3s(const Context *context, GLuint index, GLshort x, GLshort y, GLshort z); -bool ValidateVertexAttrib3sv(const Context *context, GLuint index, const GLshort *v); -bool ValidateVertexAttrib4Nbv(const Context *context, GLuint index, const GLbyte *v); -bool ValidateVertexAttrib4Niv(const Context *context, GLuint index, const GLint *v); -bool ValidateVertexAttrib4Nsv(const Context *context, GLuint index, const GLshort *v); +bool ValidateVertexAttrib3dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); +bool ValidateVertexAttrib3s(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLshort x, + GLshort y, + GLshort z); +bool ValidateVertexAttrib3sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); +bool ValidateVertexAttrib4Nbv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v); +bool ValidateVertexAttrib4Niv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); +bool ValidateVertexAttrib4Nsv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); bool ValidateVertexAttrib4Nub(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -bool ValidateVertexAttrib4Nubv(const Context *context, GLuint index, const GLubyte *v); -bool ValidateVertexAttrib4Nuiv(const Context *context, GLuint index, const GLuint *v); -bool ValidateVertexAttrib4Nusv(const Context *context, GLuint index, const GLushort *v); -bool ValidateVertexAttrib4bv(const Context *context, GLuint index, const GLbyte *v); +bool ValidateVertexAttrib4Nubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v); +bool ValidateVertexAttrib4Nuiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); +bool ValidateVertexAttrib4Nusv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v); +bool ValidateVertexAttrib4bv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v); bool ValidateVertexAttrib4d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -bool ValidateVertexAttrib4dv(const Context *context, GLuint index, const GLdouble *v); -bool ValidateVertexAttrib4iv(const Context *context, GLuint index, const GLint *v); +bool ValidateVertexAttrib4dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); +bool ValidateVertexAttrib4iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); bool ValidateVertexAttrib4s(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -bool ValidateVertexAttrib4sv(const Context *context, GLuint index, const GLshort *v); -bool ValidateVertexAttrib4ubv(const Context *context, GLuint index, const GLubyte *v); -bool ValidateVertexAttrib4uiv(const Context *context, GLuint index, const GLuint *v); -bool ValidateVertexAttrib4usv(const Context *context, GLuint index, const GLushort *v); +bool ValidateVertexAttrib4sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); +bool ValidateVertexAttrib4ubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v); +bool ValidateVertexAttrib4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); +bool ValidateVertexAttrib4usv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v); // GL 2.1 } // namespace gl #endif // LIBANGLE_VALIDATION_GL2_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationGL3.cpp b/gfx/angle/checkout/src/libANGLE/validationGL3.cpp --- a/gfx/angle/checkout/src/libANGLE/validationGL3.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationGL3.cpp @@ -8,166 +8,236 @@ #include "libANGLE/validationGL3_autogen.h" namespace gl { -bool ValidateBeginConditionalRender(const Context *context, GLuint id, GLenum mode) +bool ValidateBeginConditionalRender(const Context *context, + angle::EntryPoint entryPoint, + GLuint id, + GLenum mode) { return true; } bool ValidateBindFragDataLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint color, const GLchar *name) { return true; } -bool ValidateClampColor(const Context *context, GLenum target, GLenum clamp) +bool ValidateClampColor(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum clamp) { return true; } -bool ValidateEndConditionalRender(const Context *context) +bool ValidateEndConditionalRender(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidateFramebufferTexture1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texture, GLint level) { return true; } bool ValidateFramebufferTexture3D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texture, GLint level, GLint zoffset) { return true; } -bool ValidateVertexAttribI1i(const Context *context, GLuint index, GLint x) +bool ValidateVertexAttribI1i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x) { return true; } -bool ValidateVertexAttribI1iv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttribI1iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } -bool ValidateVertexAttribI1ui(const Context *context, GLuint index, GLuint x) +bool ValidateVertexAttribI1ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x) { return true; } -bool ValidateVertexAttribI1uiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttribI1uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { return true; } -bool ValidateVertexAttribI2i(const Context *context, GLuint index, GLint x, GLint y) +bool ValidateVertexAttribI2i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x, + GLint y) { return true; } -bool ValidateVertexAttribI2iv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttribI2iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } -bool ValidateVertexAttribI2ui(const Context *context, GLuint index, GLuint x, GLuint y) +bool ValidateVertexAttribI2ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x, + GLuint y) { return true; } -bool ValidateVertexAttribI2uiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttribI2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { return true; } -bool ValidateVertexAttribI3i(const Context *context, GLuint index, GLint x, GLint y, GLint z) +bool ValidateVertexAttribI3i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x, + GLint y, + GLint z) { return true; } -bool ValidateVertexAttribI3iv(const Context *context, GLuint index, const GLint *v) +bool ValidateVertexAttribI3iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } -bool ValidateVertexAttribI3ui(const Context *context, GLuint index, GLuint x, GLuint y, GLuint z) +bool ValidateVertexAttribI3ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x, + GLuint y, + GLuint z) { return true; } -bool ValidateVertexAttribI3uiv(const Context *context, GLuint index, const GLuint *v) +bool ValidateVertexAttribI3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v) { return true; } -bool ValidateVertexAttribI4bv(const Context *context, GLuint index, const GLbyte *v) +bool ValidateVertexAttribI4bv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v) { return true; } -bool ValidateVertexAttribI4sv(const Context *context, GLuint index, const GLshort *v) +bool ValidateVertexAttribI4sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v) { return true; } -bool ValidateVertexAttribI4ubv(const Context *context, GLuint index, const GLubyte *v) +bool ValidateVertexAttribI4ubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v) { return true; } -bool ValidateVertexAttribI4usv(const Context *context, GLuint index, const GLushort *v) +bool ValidateVertexAttribI4usv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v) { return true; } bool ValidateGetActiveUniformName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint uniformIndex, GLsizei bufSize, const GLsizei *length, const GLchar *uniformName) { return true; } -bool ValidatePrimitiveRestartIndex(const Context *context, GLuint index) +bool ValidatePrimitiveRestartIndex(const Context *context, + angle::EntryPoint entryPoint, + GLuint index) { return true; } bool ValidateMultiDrawElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, const GLsizei *count, DrawElementsType type, const void *const *indices, GLsizei drawcount, const GLint *basevertex) { return true; } -bool ValidateProvokingVertex(const Context *context, ProvokingVertexConvention modePacked) +bool ValidateProvokingVertex(const Context *context, + angle::EntryPoint entryPoint, + ProvokingVertexConvention modePacked) { return true; } bool ValidateTexImage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, @@ -175,10 +245,11 @@ { return true; } bool ValidateTexImage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, @@ -187,274 +258,377 @@ { return true; } bool ValidateBindFragDataLocationIndexed(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint colorNumber, GLuint index, const GLchar *name) { return true; } -bool ValidateColorP3ui(const Context *context, GLenum type, GLuint color) +bool ValidateColorP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint color) { return true; } -bool ValidateColorP3uiv(const Context *context, GLenum type, const GLuint *color) +bool ValidateColorP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color) { return true; } -bool ValidateColorP4ui(const Context *context, GLenum type, GLuint color) +bool ValidateColorP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint color) { return true; } -bool ValidateColorP4uiv(const Context *context, GLenum type, const GLuint *color) +bool ValidateColorP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color) { return true; } -bool ValidateGetFragDataIndex(const Context *context, ShaderProgramID program, const GLchar *name) +bool ValidateGetFragDataIndex(const Context *context, + angle::EntryPoint entryPoint, + ShaderProgramID program, + const GLchar *name) { return true; } bool ValidateGetQueryObjecti64v(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLint64 *params) { return true; } bool ValidateGetQueryObjectui64v(const Context *context, + angle::EntryPoint entryPoint, QueryID id, GLenum pname, const GLuint64 *params) { return true; } -bool ValidateMultiTexCoordP1ui(const Context *context, GLenum texture, GLenum type, GLuint coords) +bool ValidateMultiTexCoordP1ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords) { return true; } bool ValidateMultiTexCoordP1uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords) { return true; } -bool ValidateMultiTexCoordP2ui(const Context *context, GLenum texture, GLenum type, GLuint coords) +bool ValidateMultiTexCoordP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords) { return true; } bool ValidateMultiTexCoordP2uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords) { return true; } -bool ValidateMultiTexCoordP3ui(const Context *context, GLenum texture, GLenum type, GLuint coords) +bool ValidateMultiTexCoordP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords) { return true; } bool ValidateMultiTexCoordP3uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords) { return true; } -bool ValidateMultiTexCoordP4ui(const Context *context, GLenum texture, GLenum type, GLuint coords) +bool ValidateMultiTexCoordP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords) { return true; } bool ValidateMultiTexCoordP4uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords) { return true; } -bool ValidateNormalP3ui(const Context *context, GLenum type, GLuint coords) +bool ValidateNormalP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords) { return true; } -bool ValidateNormalP3uiv(const Context *context, GLenum type, const GLuint *coords) +bool ValidateNormalP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords) { return true; } -bool ValidateQueryCounter(const Context *context, QueryID id, QueryType targetPacked) +bool ValidateQueryCounter(const Context *context, + angle::EntryPoint entryPoint, + QueryID id, + QueryType targetPacked) { return true; } -bool ValidateSecondaryColorP3ui(const Context *context, GLenum type, GLuint color) +bool ValidateSecondaryColorP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint color) { return true; } -bool ValidateSecondaryColorP3uiv(const Context *context, GLenum type, const GLuint *color) +bool ValidateSecondaryColorP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color) { return true; } -bool ValidateTexCoordP1ui(const Context *context, GLenum type, GLuint coords) +bool ValidateTexCoordP1ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords) { return true; } -bool ValidateTexCoordP1uiv(const Context *context, GLenum type, const GLuint *coords) +bool ValidateTexCoordP1uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords) { return true; } -bool ValidateTexCoordP2ui(const Context *context, GLenum type, GLuint coords) +bool ValidateTexCoordP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords) { return true; } -bool ValidateTexCoordP2uiv(const Context *context, GLenum type, const GLuint *coords) +bool ValidateTexCoordP2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords) { return true; } -bool ValidateTexCoordP3ui(const Context *context, GLenum type, GLuint coords) +bool ValidateTexCoordP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords) { return true; } -bool ValidateTexCoordP3uiv(const Context *context, GLenum type, const GLuint *coords) +bool ValidateTexCoordP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords) { return true; } -bool ValidateTexCoordP4ui(const Context *context, GLenum type, GLuint coords) +bool ValidateTexCoordP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords) { return true; } -bool ValidateTexCoordP4uiv(const Context *context, GLenum type, const GLuint *coords) +bool ValidateTexCoordP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords) { return true; } bool ValidateVertexAttribP1ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value) { return true; } bool ValidateVertexAttribP1uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value) { return true; } bool ValidateVertexAttribP2ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value) { return true; } bool ValidateVertexAttribP2uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value) { return true; } bool ValidateVertexAttribP3ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value) { return true; } bool ValidateVertexAttribP3uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value) { return true; } bool ValidateVertexAttribP4ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value) { return true; } bool ValidateVertexAttribP4uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value) { return true; } -bool ValidateVertexP2ui(const Context *context, GLenum type, GLuint value) +bool ValidateVertexP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value) { return true; } -bool ValidateVertexP2uiv(const Context *context, GLenum type, const GLuint *value) +bool ValidateVertexP2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value) { return true; } -bool ValidateVertexP3ui(const Context *context, GLenum type, GLuint value) +bool ValidateVertexP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value) { return true; } -bool ValidateVertexP3uiv(const Context *context, GLenum type, const GLuint *value) +bool ValidateVertexP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value) { return true; } -bool ValidateVertexP4ui(const Context *context, GLenum type, GLuint value) +bool ValidateVertexP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value) { return true; } -bool ValidateVertexP4uiv(const Context *context, GLenum type, const GLuint *value) +bool ValidateVertexP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value) { return true; } } // namespace gl diff --git a/gfx/angle/checkout/src/libANGLE/validationGL3_autogen.h b/gfx/angle/checkout/src/libANGLE/validationGL3_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationGL3_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationGL3_autogen.h @@ -10,185 +10,358 @@ #ifndef LIBANGLE_VALIDATION_GL3_AUTOGEN_H_ #define LIBANGLE_VALIDATION_GL3_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; // GL 3.0 -bool ValidateBeginConditionalRender(const Context *context, GLuint id, GLenum mode); +bool ValidateBeginConditionalRender(const Context *context, + angle::EntryPoint entryPoint, + GLuint id, + GLenum mode); bool ValidateBindFragDataLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint color, const GLchar *name); -bool ValidateClampColor(const Context *context, GLenum target, GLenum clamp); -bool ValidateEndConditionalRender(const Context *context); +bool ValidateClampColor(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLenum clamp); +bool ValidateEndConditionalRender(const Context *context, angle::EntryPoint entryPoint); bool ValidateFramebufferTexture1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level); bool ValidateFramebufferTexture3D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum attachment, TextureTarget textargetPacked, TextureID texturePacked, GLint level, GLint zoffset); -bool ValidateVertexAttribI1i(const Context *context, GLuint index, GLint x); -bool ValidateVertexAttribI1iv(const Context *context, GLuint index, const GLint *v); -bool ValidateVertexAttribI1ui(const Context *context, GLuint index, GLuint x); -bool ValidateVertexAttribI1uiv(const Context *context, GLuint index, const GLuint *v); -bool ValidateVertexAttribI2i(const Context *context, GLuint index, GLint x, GLint y); -bool ValidateVertexAttribI2iv(const Context *context, GLuint index, const GLint *v); -bool ValidateVertexAttribI2ui(const Context *context, GLuint index, GLuint x, GLuint y); -bool ValidateVertexAttribI2uiv(const Context *context, GLuint index, const GLuint *v); -bool ValidateVertexAttribI3i(const Context *context, GLuint index, GLint x, GLint y, GLint z); -bool ValidateVertexAttribI3iv(const Context *context, GLuint index, const GLint *v); -bool ValidateVertexAttribI3ui(const Context *context, GLuint index, GLuint x, GLuint y, GLuint z); -bool ValidateVertexAttribI3uiv(const Context *context, GLuint index, const GLuint *v); -bool ValidateVertexAttribI4bv(const Context *context, GLuint index, const GLbyte *v); -bool ValidateVertexAttribI4sv(const Context *context, GLuint index, const GLshort *v); -bool ValidateVertexAttribI4ubv(const Context *context, GLuint index, const GLubyte *v); -bool ValidateVertexAttribI4usv(const Context *context, GLuint index, const GLushort *v); +bool ValidateVertexAttribI1i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x); +bool ValidateVertexAttribI1iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); +bool ValidateVertexAttribI1ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x); +bool ValidateVertexAttribI1uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); +bool ValidateVertexAttribI2i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x, + GLint y); +bool ValidateVertexAttribI2iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); +bool ValidateVertexAttribI2ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x, + GLuint y); +bool ValidateVertexAttribI2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); +bool ValidateVertexAttribI3i(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLint x, + GLint y, + GLint z); +bool ValidateVertexAttribI3iv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); +bool ValidateVertexAttribI3ui(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLuint x, + GLuint y, + GLuint z); +bool ValidateVertexAttribI3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLuint *v); +bool ValidateVertexAttribI4bv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLbyte *v); +bool ValidateVertexAttribI4sv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLshort *v); +bool ValidateVertexAttribI4ubv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLubyte *v); +bool ValidateVertexAttribI4usv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLushort *v); // GL 3.1 bool ValidateGetActiveUniformName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint uniformIndex, GLsizei bufSize, const GLsizei *length, const GLchar *uniformName); -bool ValidatePrimitiveRestartIndex(const Context *context, GLuint index); +bool ValidatePrimitiveRestartIndex(const Context *context, + angle::EntryPoint entryPoint, + GLuint index); // GL 3.2 bool ValidateMultiDrawElementsBaseVertex(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, const GLsizei *count, DrawElementsType typePacked, const void *const *indices, GLsizei drawcount, const GLint *basevertex); -bool ValidateProvokingVertex(const Context *context, ProvokingVertexConvention modePacked); +bool ValidateProvokingVertex(const Context *context, + angle::EntryPoint entryPoint, + ProvokingVertexConvention modePacked); bool ValidateTexImage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); bool ValidateTexImage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); // GL 3.3 bool ValidateBindFragDataLocationIndexed(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint colorNumber, GLuint index, const GLchar *name); -bool ValidateColorP3ui(const Context *context, GLenum type, GLuint color); -bool ValidateColorP3uiv(const Context *context, GLenum type, const GLuint *color); -bool ValidateColorP4ui(const Context *context, GLenum type, GLuint color); -bool ValidateColorP4uiv(const Context *context, GLenum type, const GLuint *color); +bool ValidateColorP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint color); +bool ValidateColorP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color); +bool ValidateColorP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint color); +bool ValidateColorP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color); bool ValidateGetFragDataIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, const GLchar *name); bool ValidateGetQueryObjecti64v(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLint64 *params); bool ValidateGetQueryObjectui64v(const Context *context, + angle::EntryPoint entryPoint, QueryID idPacked, GLenum pname, const GLuint64 *params); -bool ValidateMultiTexCoordP1ui(const Context *context, GLenum texture, GLenum type, GLuint coords); +bool ValidateMultiTexCoordP1ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords); bool ValidateMultiTexCoordP1uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords); -bool ValidateMultiTexCoordP2ui(const Context *context, GLenum texture, GLenum type, GLuint coords); +bool ValidateMultiTexCoordP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords); bool ValidateMultiTexCoordP2uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords); -bool ValidateMultiTexCoordP3ui(const Context *context, GLenum texture, GLenum type, GLuint coords); +bool ValidateMultiTexCoordP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords); bool ValidateMultiTexCoordP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + const GLuint *coords); +bool ValidateMultiTexCoordP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum texture, + GLenum type, + GLuint coords); +bool ValidateMultiTexCoordP4uiv(const Context *context, + angle::EntryPoint entryPoint, GLenum texture, GLenum type, const GLuint *coords); -bool ValidateMultiTexCoordP4ui(const Context *context, GLenum texture, GLenum type, GLuint coords); -bool ValidateMultiTexCoordP4uiv(const Context *context, - GLenum texture, +bool ValidateNormalP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords); +bool ValidateNormalP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords); +bool ValidateQueryCounter(const Context *context, + angle::EntryPoint entryPoint, + QueryID idPacked, + QueryType targetPacked); +bool ValidateSecondaryColorP3ui(const Context *context, + angle::EntryPoint entryPoint, GLenum type, - const GLuint *coords); -bool ValidateNormalP3ui(const Context *context, GLenum type, GLuint coords); -bool ValidateNormalP3uiv(const Context *context, GLenum type, const GLuint *coords); -bool ValidateQueryCounter(const Context *context, QueryID idPacked, QueryType targetPacked); -bool ValidateSecondaryColorP3ui(const Context *context, GLenum type, GLuint color); -bool ValidateSecondaryColorP3uiv(const Context *context, GLenum type, const GLuint *color); -bool ValidateTexCoordP1ui(const Context *context, GLenum type, GLuint coords); -bool ValidateTexCoordP1uiv(const Context *context, GLenum type, const GLuint *coords); -bool ValidateTexCoordP2ui(const Context *context, GLenum type, GLuint coords); -bool ValidateTexCoordP2uiv(const Context *context, GLenum type, const GLuint *coords); -bool ValidateTexCoordP3ui(const Context *context, GLenum type, GLuint coords); -bool ValidateTexCoordP3uiv(const Context *context, GLenum type, const GLuint *coords); -bool ValidateTexCoordP4ui(const Context *context, GLenum type, GLuint coords); -bool ValidateTexCoordP4uiv(const Context *context, GLenum type, const GLuint *coords); + GLuint color); +bool ValidateSecondaryColorP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *color); +bool ValidateTexCoordP1ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords); +bool ValidateTexCoordP1uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords); +bool ValidateTexCoordP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords); +bool ValidateTexCoordP2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords); +bool ValidateTexCoordP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords); +bool ValidateTexCoordP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords); +bool ValidateTexCoordP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint coords); +bool ValidateTexCoordP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *coords); bool ValidateVertexAttribP1ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value); bool ValidateVertexAttribP1uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); bool ValidateVertexAttribP2ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value); bool ValidateVertexAttribP2uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); bool ValidateVertexAttribP3ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value); bool ValidateVertexAttribP3uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); bool ValidateVertexAttribP4ui(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, GLuint value); bool ValidateVertexAttribP4uiv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -bool ValidateVertexP2ui(const Context *context, GLenum type, GLuint value); -bool ValidateVertexP2uiv(const Context *context, GLenum type, const GLuint *value); -bool ValidateVertexP3ui(const Context *context, GLenum type, GLuint value); -bool ValidateVertexP3uiv(const Context *context, GLenum type, const GLuint *value); -bool ValidateVertexP4ui(const Context *context, GLenum type, GLuint value); -bool ValidateVertexP4uiv(const Context *context, GLenum type, const GLuint *value); +bool ValidateVertexP2ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value); +bool ValidateVertexP2uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value); +bool ValidateVertexP3ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value); +bool ValidateVertexP3uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value); +bool ValidateVertexP4ui(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + GLuint value); +bool ValidateVertexP4uiv(const Context *context, + angle::EntryPoint entryPoint, + GLenum type, + const GLuint *value); } // namespace gl #endif // LIBANGLE_VALIDATION_GL3_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libANGLE/validationGL4.cpp b/gfx/angle/checkout/src/libANGLE/validationGL4.cpp --- a/gfx/angle/checkout/src/libANGLE/validationGL4.cpp +++ b/gfx/angle/checkout/src/libANGLE/validationGL4.cpp @@ -9,34 +9,46 @@ #include "libANGLE/validationGL4_autogen.h" namespace gl { -bool ValidateBeginQueryIndexed(const Context *context, GLenum target, GLuint index, QueryID id) +bool ValidateBeginQueryIndexed(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + QueryID id) { return true; } -bool ValidateDrawTransformFeedback(const Context *context, GLenum mode, TransformFeedbackID id) +bool ValidateDrawTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, + GLenum mode, + TransformFeedbackID id) { return true; } bool ValidateDrawTransformFeedbackStream(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID id, GLuint stream) { return true; } -bool ValidateEndQueryIndexed(const Context *context, GLenum target, GLuint index) +bool ValidateEndQueryIndexed(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index) { return true; } bool ValidateGetActiveSubroutineName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, GLuint index, GLsizei bufsize, const GLsizei *length, @@ -44,10 +56,11 @@ { return true; } bool ValidateGetActiveSubroutineUniformName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, GLuint index, GLsizei bufsize, const GLsizei *length, @@ -55,310 +68,364 @@ { return true; } bool ValidateGetActiveSubroutineUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, GLuint index, GLenum pname, const GLint *values) { return true; } bool ValidateGetProgramStageiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, GLenum pname, const GLint *values) { return true; } bool ValidateGetQueryIndexediv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLenum pname, const GLint *params) { return true; } bool ValidateGetSubroutineIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, const GLchar *name) { return true; } bool ValidateGetSubroutineUniformLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum shadertype, const GLchar *name) { return true; } bool ValidateGetUniformSubroutineuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLint location, const GLuint *params) { return true; } bool ValidateGetUniformdv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, const GLdouble *params) { return true; } -bool ValidatePatchParameterfv(const Context *context, GLenum pname, const GLfloat *values) +bool ValidatePatchParameterfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *values) { return true; } -bool ValidateUniform1d(const Context *context, UniformLocation location, GLdouble x) +bool ValidateUniform1d(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLdouble x) { return true; } bool ValidateUniform1dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } -bool ValidateUniform2d(const Context *context, UniformLocation location, GLdouble x, GLdouble y) +bool ValidateUniform2d(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation location, + GLdouble x, + GLdouble y) { return true; } bool ValidateUniform2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateUniform3d(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLdouble x, GLdouble y, GLdouble z) { return true; } bool ValidateUniform3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateUniform4d(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) { return true; } bool ValidateUniform4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateUniformMatrix2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix2x3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix2x4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix3x2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix3x4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix4x2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformMatrix4x3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateUniformSubroutinesuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLsizei count, const GLuint *indices) { return true; } bool ValidateDepthRangeArrayv(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLdouble *v) { return true; } -bool ValidateDepthRangeIndexed(const Context *context, GLuint index, GLdouble n, GLdouble f) +bool ValidateDepthRangeIndexed(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble n, + GLdouble f) { return true; } -bool ValidateGetDoublei_v(const Context *context, GLenum target, GLuint index, const GLdouble *data) +bool ValidateGetDoublei_v(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + const GLdouble *data) { return true; } -bool ValidateGetFloati_v(const Context *context, GLenum target, GLuint index, const GLfloat *data) +bool ValidateGetFloati_v(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + const GLfloat *data) { return true; } bool ValidateGetVertexAttribLdv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLdouble *params) { return true; } bool ValidateProgramUniform1d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLdouble v0) { return true; } bool ValidateProgramUniform1dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateProgramUniform2d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLdouble v0, GLdouble v1) { return true; } bool ValidateProgramUniform2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateProgramUniform3d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLdouble v0, GLdouble v1, GLdouble v2) { return true; } bool ValidateProgramUniform3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateProgramUniform4d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLdouble v0, GLdouble v1, GLdouble v2, @@ -366,218 +433,268 @@ { return true; } bool ValidateProgramUniform4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix2x3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix2x4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix3x2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix3x4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix4x2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } bool ValidateProgramUniformMatrix4x3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei count, GLboolean transpose, const GLdouble *value) { return true; } -bool ValidateScissorArrayv(const Context *context, GLuint first, GLsizei count, const GLint *v) +bool ValidateScissorArrayv(const Context *context, + angle::EntryPoint entryPoint, + GLuint first, + GLsizei count, + const GLint *v) { return true; } bool ValidateScissorIndexed(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) { return true; } -bool ValidateScissorIndexedv(const Context *context, GLuint index, const GLint *v) +bool ValidateScissorIndexedv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v) { return true; } -bool ValidateVertexAttribL1d(const Context *context, GLuint index, GLdouble x) +bool ValidateVertexAttribL1d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x) { return true; } -bool ValidateVertexAttribL1dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttribL1dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } -bool ValidateVertexAttribL2d(const Context *context, GLuint index, GLdouble x, GLdouble y) +bool ValidateVertexAttribL2d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x, + GLdouble y) { return true; } -bool ValidateVertexAttribL2dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttribL2dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } bool ValidateVertexAttribL3d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z) { return true; } -bool ValidateVertexAttribL3dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttribL3dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } bool ValidateVertexAttribL4d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) { return true; } -bool ValidateVertexAttribL4dv(const Context *context, GLuint index, const GLdouble *v) +bool ValidateVertexAttribL4dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v) { return true; } bool ValidateVertexAttribLPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer) { return true; } -bool ValidateViewportArrayv(const Context *context, GLuint first, GLsizei count, const GLfloat *v) +bool ValidateViewportArrayv(const Context *context, + angle::EntryPoint entryPoint, + GLuint first, + GLsizei count, + const GLfloat *v) { return true; } bool ValidateViewportIndexedf(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) { return true; } -bool ValidateViewportIndexedfv(const Context *context, GLuint index, const GLfloat *v) +bool ValidateViewportIndexedfv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v) { return true; } bool ValidateDrawArraysInstancedBaseInstance(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) { return true; } bool ValidateDrawElementsInstancedBaseInstance(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, @@ -585,10 +702,11 @@ { return true; } bool ValidateDrawElementsInstancedBaseVertexBaseInstance(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode mode, GLsizei count, DrawElementsType type, const void *indices, GLsizei instancecount, @@ -597,55 +715,61 @@ { return true; } bool ValidateDrawTransformFeedbackInstanced(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID id, GLsizei instancecount) { return true; } bool ValidateDrawTransformFeedbackStreamInstanced(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID id, GLuint stream, GLsizei instancecount) { return true; } bool ValidateGetActiveAtomicCounterBufferiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint bufferIndex, GLenum pname, const GLint *params) { return true; } bool ValidateTexStorage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { return true; } bool ValidateClearBufferData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data) { return true; } bool ValidateClearBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, @@ -654,46 +778,55 @@ { return true; } bool ValidateGetInternalformati64v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLint64 *params) { return true; } bool ValidateGetProgramResourceLocationIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLenum programInterface, const GLchar *name) { return true; } -bool ValidateInvalidateBufferData(const Context *context, BufferID buffer) +bool ValidateInvalidateBufferData(const Context *context, + angle::EntryPoint entryPoint, + BufferID buffer) { return true; } bool ValidateInvalidateBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLintptr offset, GLsizeiptr length) { return true; } -bool ValidateInvalidateTexImage(const Context *context, TextureID texture, GLint level) +bool ValidateInvalidateTexImage(const Context *context, + angle::EntryPoint entryPoint, + TextureID texture, + GLint level) { return true; } bool ValidateInvalidateTexSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -703,37 +836,41 @@ { return true; } bool ValidateMultiDrawArraysIndirect(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride) { return true; } bool ValidateMultiDrawElementsIndirect(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride) { return true; } bool ValidateShaderStorageBlockBinding(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, GLuint storageBlockIndex, GLuint storageBlockBinding) { return true; } bool ValidateTextureView(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, @@ -743,28 +880,31 @@ { return true; } bool ValidateVertexAttribLFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) { return true; } bool ValidateBindBuffersBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint first, GLsizei count, const BufferID *buffers) { return true; } bool ValidateBindBuffersRange(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint first, GLsizei count, const BufferID *buffers, const GLintptr *offsets, @@ -772,63 +912,70 @@ { return true; } bool ValidateBindImageTextures(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *textures) { return true; } bool ValidateBindSamplers(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *samplers) { return true; } bool ValidateBindTextures(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *textures) { return true; } bool ValidateBindVertexBuffers(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const BufferID *buffers, const GLintptr *offsets, const GLsizei *strides) { return true; } bool ValidateBufferStorage(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags) { return true; } bool ValidateClearTexImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLenum format, GLenum type, const void *data) { return true; } bool ValidateClearTexSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -840,16 +987,20 @@ const void *data) { return true; } -bool ValidateBindTextureUnit(const Context *context, GLuint unit, TextureID texture) +bool ValidateBindTextureUnit(const Context *context, + angle::EntryPoint entryPoint, + GLuint unit, + TextureID texture) { return true; } bool ValidateBlitNamedFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, @@ -863,27 +1014,30 @@ { return true; } bool ValidateCheckNamedFramebufferStatus(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum target) { return true; } bool ValidateClearNamedBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLenum internalformat, GLenum format, GLenum type, const void *data) { return true; } bool ValidateClearNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, @@ -892,52 +1046,60 @@ { return true; } bool ValidateClearNamedFramebufferfi(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { return true; } bool ValidateClearNamedFramebufferfv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value) { return true; } bool ValidateClearNamedFramebufferiv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value) { return true; } bool ValidateClearNamedFramebufferuiv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value) { return true; } -bool ValidateClipControl(const Context *context, GLenum origin, GLenum depth) +bool ValidateClipControl(const Context *context, + angle::EntryPoint entryPoint, + GLenum origin, + GLenum depth) { return true; } bool ValidateCompressedTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -946,10 +1108,11 @@ { return true; } bool ValidateCompressedTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -960,10 +1123,11 @@ { return true; } bool ValidateCompressedTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -976,20 +1140,22 @@ { return true; } bool ValidateCopyNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { return true; } bool ValidateCopyTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint x, GLint y, @@ -997,10 +1163,11 @@ { return true; } bool ValidateCopyTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint x, @@ -1010,10 +1177,11 @@ { return true; } bool ValidateCopyTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1023,93 +1191,128 @@ GLsizei height) { return true; } -bool ValidateCreateBuffers(const Context *context, GLsizei n, const BufferID *buffers) +bool ValidateCreateBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const BufferID *buffers) { return true; } -bool ValidateCreateFramebuffers(const Context *context, GLsizei n, const GLuint *framebuffers) +bool ValidateCreateFramebuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *framebuffers) { return true; } -bool ValidateCreateProgramPipelines(const Context *context, GLsizei n, const GLuint *pipelines) +bool ValidateCreateProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *pipelines) { return true; } -bool ValidateCreateQueries(const Context *context, GLenum target, GLsizei n, const GLuint *ids) +bool ValidateCreateQueries(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLsizei n, + const GLuint *ids) { return true; } bool ValidateCreateRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffers) { return true; } -bool ValidateCreateSamplers(const Context *context, GLsizei n, const GLuint *samplers) +bool ValidateCreateSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *samplers) { return true; } bool ValidateCreateTextures(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei n, const GLuint *textures) { return true; } -bool ValidateCreateTransformFeedbacks(const Context *context, GLsizei n, const GLuint *ids) +bool ValidateCreateTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *ids) { return true; } -bool ValidateCreateVertexArrays(const Context *context, GLsizei n, const VertexArrayID *arrays) +bool ValidateCreateVertexArrays(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const VertexArrayID *arrays) { return true; } -bool ValidateDisableVertexArrayAttrib(const Context *context, VertexArrayID vaobj, GLuint index) +bool ValidateDisableVertexArrayAttrib(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID vaobj, + GLuint index) { return true; } -bool ValidateEnableVertexArrayAttrib(const Context *context, VertexArrayID vaobj, GLuint index) +bool ValidateEnableVertexArrayAttrib(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID vaobj, + GLuint index) { return true; } bool ValidateFlushMappedNamedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLintptr offset, GLsizeiptr length) { return true; } -bool ValidateGenerateTextureMipmap(const Context *context, TextureID texture) +bool ValidateGenerateTextureMipmap(const Context *context, + angle::EntryPoint entryPoint, + TextureID texture) { return true; } bool ValidateGetCompressedTextureImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLsizei bufSize, const void *pixels) { return true; } bool ValidateGetCompressedTextureSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1121,104 +1324,116 @@ { return true; } bool ValidateGetNamedBufferParameteri64v(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLenum pname, const GLint64 *params) { return true; } bool ValidateGetNamedBufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLenum pname, const GLint *params) { return true; } bool ValidateGetNamedBufferPointerv(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLenum pname, void *const *params) { return true; } bool ValidateGetNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLintptr offset, GLsizeiptr size, const void *data) { return true; } bool ValidateGetNamedFramebufferAttachmentParameteriv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum attachment, GLenum pname, const GLint *params) { return true; } bool ValidateGetNamedFramebufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum pname, const GLint *param) { return true; } bool ValidateGetNamedRenderbufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbuffer, GLenum pname, const GLint *params) { return true; } bool ValidateGetQueryBufferObjecti64v(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID buffer, GLenum pname, GLintptr offset) { return true; } bool ValidateGetQueryBufferObjectiv(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID buffer, GLenum pname, GLintptr offset) { return true; } bool ValidateGetQueryBufferObjectui64v(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID buffer, GLenum pname, GLintptr offset) { return true; } bool ValidateGetQueryBufferObjectuiv(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID buffer, GLenum pname, GLintptr offset) { return true; } bool ValidateGetTextureImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, @@ -1226,60 +1441,67 @@ { return true; } bool ValidateGetTextureLevelParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLenum pname, const GLfloat *params) { return true; } bool ValidateGetTextureLevelParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLenum pname, const GLint *params) { return true; } bool ValidateGetTextureParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLint *params) { return true; } bool ValidateGetTextureParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLuint *params) { return true; } bool ValidateGetTextureParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLfloat *params) { return true; } bool ValidateGetTextureParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLint *params) { return true; } bool ValidateGetTextureSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1293,91 +1515,101 @@ { return true; } bool ValidateGetTransformFeedbacki64_v(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, GLuint index, const GLint64 *param) { return true; } bool ValidateGetTransformFeedbacki_v(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, GLuint index, const GLint *param) { return true; } bool ValidateGetTransformFeedbackiv(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, const GLint *param) { return true; } bool ValidateGetVertexArrayIndexed64iv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint index, GLenum pname, const GLint64 *param) { return true; } bool ValidateGetVertexArrayIndexediv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint index, GLenum pname, const GLint *param) { return true; } bool ValidateGetVertexArrayiv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLenum pname, const GLint *param) { return true; } bool ValidateGetnColorTable(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei bufSize, const void *table) { return true; } bool ValidateGetnCompressedTexImage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint lod, GLsizei bufSize, const void *pixels) { return true; } bool ValidateGetnConvolutionFilter(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei bufSize, const void *image) { return true; } bool ValidateGetnHistogram(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, @@ -1385,37 +1617,41 @@ { return true; } bool ValidateGetnMapdv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLdouble *v) { return true; } bool ValidateGetnMapfv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLfloat *v) { return true; } bool ValidateGetnMapiv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLint *v) { return true; } bool ValidateGetnMinmax(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, @@ -1423,39 +1659,46 @@ { return true; } bool ValidateGetnPixelMapfv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLfloat *values) { return true; } bool ValidateGetnPixelMapuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLuint *values) { return true; } bool ValidateGetnPixelMapusv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLushort *values) { return true; } -bool ValidateGetnPolygonStipple(const Context *context, GLsizei bufSize, const GLubyte *pattern) +bool ValidateGetnPolygonStipple(const Context *context, + angle::EntryPoint entryPoint, + GLsizei bufSize, + const GLubyte *pattern) { return true; } bool ValidateGetnSeparableFilter(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, const void *row, @@ -1465,10 +1708,11 @@ { return true; } bool ValidateGetnTexImage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, @@ -1476,27 +1720,30 @@ { return true; } bool ValidateGetnUniformdv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID program, UniformLocation location, GLsizei bufSize, const GLdouble *params) { return true; } bool ValidateInvalidateNamedFramebufferData(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLsizei numAttachments, const GLenum *attachments) { return true; } bool ValidateInvalidateNamedFramebufferSubData(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, @@ -1504,216 +1751,246 @@ GLsizei height) { return true; } -bool ValidateMapNamedBuffer(const Context *context, BufferID buffer, GLenum access) +bool ValidateMapNamedBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferID buffer, + GLenum access) { return true; } bool ValidateMapNamedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) { return true; } bool ValidateNamedBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLsizeiptr size, const void *data, GLenum usage) { return true; } bool ValidateNamedBufferStorage(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLsizeiptr size, const void *data, GLbitfield flags) { return true; } bool ValidateNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID buffer, GLintptr offset, GLsizeiptr size, const void *data) { return true; } bool ValidateNamedFramebufferDrawBuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum buf) { return true; } bool ValidateNamedFramebufferDrawBuffers(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLsizei n, const GLenum *bufs) { return true; } bool ValidateNamedFramebufferParameteri(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum pname, GLint param) { return true; } bool ValidateNamedFramebufferReadBuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum src) { return true; } bool ValidateNamedFramebufferRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbuffer) { return true; } bool ValidateNamedFramebufferTexture(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum attachment, TextureID texture, GLint level) { return true; } bool ValidateNamedFramebufferTextureLayer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebuffer, GLenum attachment, TextureID texture, GLint level, GLint layer) { return true; } bool ValidateNamedRenderbufferStorage(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) { return true; } bool ValidateNamedRenderbufferStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { return true; } -bool ValidateTextureBarrier(const Context *context) +bool ValidateTextureBarrier(const Context *context, angle::EntryPoint entryPoint) { return true; } bool ValidateTextureBuffer(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum internalformat, BufferID buffer) { return true; } bool ValidateTextureBufferRange(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum internalformat, BufferID buffer, GLintptr offset, GLsizeiptr size) { return true; } bool ValidateTextureParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLint *params) { return true; } bool ValidateTextureParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLuint *params) { return true; } bool ValidateTextureParameterf(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, GLfloat param) { return true; } bool ValidateTextureParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLfloat *param) { return true; } -bool ValidateTextureParameteri(const Context *context, TextureID texture, GLenum pname, GLint param) +bool ValidateTextureParameteri(const Context *context, + angle::EntryPoint entryPoint, + TextureID texture, + GLenum pname, + GLint param) { return true; } bool ValidateTextureParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLenum pname, const GLint *param) { return true; } bool ValidateTextureStorage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLsizei levels, GLenum internalformat, GLsizei width) { return true; } bool ValidateTextureStorage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { return true; } bool ValidateTextureStorage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, @@ -1721,10 +1998,11 @@ { return true; } bool ValidateTextureStorage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, @@ -1732,10 +2010,11 @@ { return true; } bool ValidateTextureStorage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, @@ -1744,10 +2023,11 @@ { return true; } bool ValidateTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -1756,10 +2036,11 @@ { return true; } bool ValidateTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, @@ -1770,10 +2051,11 @@ { return true; } bool ValidateTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1786,41 +2068,45 @@ { return true; } bool ValidateTransformFeedbackBufferBase(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLuint index, BufferID buffer) { return true; } bool ValidateTransformFeedbackBufferRange(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLuint index, BufferID buffer, GLintptr offset, GLsizeiptr size) { return true; } -bool ValidateUnmapNamedBuffer(const Context *context, BufferID buffer) +bool ValidateUnmapNamedBuffer(const Context *context, angle::EntryPoint entryPoint, BufferID buffer) { return true; } bool ValidateVertexArrayAttribBinding(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint attribindex, GLuint bindingindex) { return true; } bool ValidateVertexArrayAttribFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, @@ -1828,53 +2114,61 @@ { return true; } bool ValidateVertexArrayAttribIFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) { return true; } bool ValidateVertexArrayAttribLFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) { return true; } bool ValidateVertexArrayBindingDivisor(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint bindingindex, GLuint divisor) { return true; } -bool ValidateVertexArrayElementBuffer(const Context *context, VertexArrayID vaobj, BufferID buffer) +bool ValidateVertexArrayElementBuffer(const Context *context, + angle::EntryPoint entryPoint, + VertexArrayID vaobj, + BufferID buffer) { return true; } bool ValidateVertexArrayVertexBuffer(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint bindingindex, BufferID buffer, GLintptr offset, GLsizei stride) { return true; } bool ValidateVertexArrayVertexBuffers(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobj, GLuint first, GLsizei count, const BufferID *buffers, const GLintptr *offsets, @@ -1882,20 +2176,22 @@ { return true; } bool ValidateMultiDrawArraysIndirectCount(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) { return true; } bool ValidateMultiDrawElementsIndirectCount(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, @@ -1903,18 +2199,20 @@ { return true; } bool ValidatePolygonOffsetClamp(const Context *context, + angle::EntryPoint entryPoint, GLfloat factor, GLfloat units, GLfloat clamp) { return true; } bool ValidateSpecializeShader(const Context *context, + angle::EntryPoint entryPoint, GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue) diff --git a/gfx/angle/checkout/src/libANGLE/validationGL4_autogen.h b/gfx/angle/checkout/src/libANGLE/validationGL4_autogen.h --- a/gfx/angle/checkout/src/libANGLE/validationGL4_autogen.h +++ b/gfx/angle/checkout/src/libANGLE/validationGL4_autogen.h @@ -10,463 +10,600 @@ #ifndef LIBANGLE_VALIDATION_GL4_AUTOGEN_H_ #define LIBANGLE_VALIDATION_GL4_AUTOGEN_H_ #include "common/PackedEnums.h" +#include "common/entry_points_enum_autogen.h" namespace gl { class Context; // GL 4.0 bool ValidateBeginQueryIndexed(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, QueryID idPacked); bool ValidateDrawTransformFeedback(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID idPacked); bool ValidateDrawTransformFeedbackStream(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID idPacked, GLuint stream); -bool ValidateEndQueryIndexed(const Context *context, GLenum target, GLuint index); +bool ValidateEndQueryIndexed(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index); bool ValidateGetActiveSubroutineName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, GLuint index, GLsizei bufsize, const GLsizei *length, const GLchar *name); bool ValidateGetActiveSubroutineUniformName(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, GLuint index, GLsizei bufsize, const GLsizei *length, const GLchar *name); bool ValidateGetActiveSubroutineUniformiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, GLuint index, GLenum pname, const GLint *values); bool ValidateGetProgramStageiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, GLenum pname, const GLint *values); bool ValidateGetQueryIndexediv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, GLenum pname, const GLint *params); bool ValidateGetSubroutineIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, const GLchar *name); bool ValidateGetSubroutineUniformLocation(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum shadertype, const GLchar *name); bool ValidateGetUniformSubroutineuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLint location, const GLuint *params); bool ValidateGetUniformdv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, const GLdouble *params); -bool ValidatePatchParameterfv(const Context *context, GLenum pname, const GLfloat *values); -bool ValidateUniform1d(const Context *context, UniformLocation locationPacked, GLdouble x); +bool ValidatePatchParameterfv(const Context *context, + angle::EntryPoint entryPoint, + GLenum pname, + const GLfloat *values); +bool ValidateUniform1d(const Context *context, + angle::EntryPoint entryPoint, + UniformLocation locationPacked, + GLdouble x); bool ValidateUniform1dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateUniform2d(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLdouble x, GLdouble y); bool ValidateUniform2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateUniform3d(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLdouble x, GLdouble y, GLdouble z); bool ValidateUniform3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateUniform4d(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLdouble x, GLdouble y, GLdouble z, GLdouble w); bool ValidateUniform4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateUniformMatrix2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix2x3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix2x4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix3x2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix3x4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix4dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix4x2dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformMatrix4x3dv(const Context *context, + angle::EntryPoint entryPoint, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateUniformSubroutinesuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum shadertype, GLsizei count, const GLuint *indices); // GL 4.1 bool ValidateDepthRangeArrayv(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLdouble *v); -bool ValidateDepthRangeIndexed(const Context *context, GLuint index, GLdouble n, GLdouble f); +bool ValidateDepthRangeIndexed(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble n, + GLdouble f); bool ValidateGetDoublei_v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint index, const GLdouble *data); -bool ValidateGetFloati_v(const Context *context, GLenum target, GLuint index, const GLfloat *data); +bool ValidateGetFloati_v(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLuint index, + const GLfloat *data); bool ValidateGetVertexAttribLdv(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLenum pname, const GLdouble *params); bool ValidateProgramUniform1d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLdouble v0); bool ValidateProgramUniform1dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateProgramUniform2d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLdouble v0, GLdouble v1); bool ValidateProgramUniform2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateProgramUniform3d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLdouble v0, GLdouble v1, GLdouble v2); bool ValidateProgramUniform3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateProgramUniform4d(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); bool ValidateProgramUniform4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, const GLdouble *value); bool ValidateProgramUniformMatrix2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix2x3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix2x4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix3x2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix3x4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix4dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix4x2dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); bool ValidateProgramUniformMatrix4x3dv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei count, GLboolean transpose, const GLdouble *value); -bool ValidateScissorArrayv(const Context *context, GLuint first, GLsizei count, const GLint *v); +bool ValidateScissorArrayv(const Context *context, + angle::EntryPoint entryPoint, + GLuint first, + GLsizei count, + const GLint *v); bool ValidateScissorIndexed(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -bool ValidateScissorIndexedv(const Context *context, GLuint index, const GLint *v); -bool ValidateVertexAttribL1d(const Context *context, GLuint index, GLdouble x); -bool ValidateVertexAttribL1dv(const Context *context, GLuint index, const GLdouble *v); -bool ValidateVertexAttribL2d(const Context *context, GLuint index, GLdouble x, GLdouble y); -bool ValidateVertexAttribL2dv(const Context *context, GLuint index, const GLdouble *v); +bool ValidateScissorIndexedv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLint *v); +bool ValidateVertexAttribL1d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x); +bool ValidateVertexAttribL1dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); +bool ValidateVertexAttribL2d(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + GLdouble x, + GLdouble y); +bool ValidateVertexAttribL2dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); bool ValidateVertexAttribL3d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z); -bool ValidateVertexAttribL3dv(const Context *context, GLuint index, const GLdouble *v); +bool ValidateVertexAttribL3dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); bool ValidateVertexAttribL4d(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -bool ValidateVertexAttribL4dv(const Context *context, GLuint index, const GLdouble *v); +bool ValidateVertexAttribL4dv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLdouble *v); bool ValidateVertexAttribLPointer(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -bool ValidateViewportArrayv(const Context *context, GLuint first, GLsizei count, const GLfloat *v); +bool ValidateViewportArrayv(const Context *context, + angle::EntryPoint entryPoint, + GLuint first, + GLsizei count, + const GLfloat *v); bool ValidateViewportIndexedf(const Context *context, + angle::EntryPoint entryPoint, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -bool ValidateViewportIndexedfv(const Context *context, GLuint index, const GLfloat *v); +bool ValidateViewportIndexedfv(const Context *context, + angle::EntryPoint entryPoint, + GLuint index, + const GLfloat *v); // GL 4.2 bool ValidateDrawArraysInstancedBaseInstance(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); bool ValidateDrawElementsInstancedBaseInstance(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); bool ValidateDrawElementsInstancedBaseVertexBaseInstance(const Context *context, + angle::EntryPoint entryPoint, PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); bool ValidateDrawTransformFeedbackInstanced(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID idPacked, GLsizei instancecount); bool ValidateDrawTransformFeedbackStreamInstanced(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, TransformFeedbackID idPacked, GLuint stream, GLsizei instancecount); bool ValidateGetActiveAtomicCounterBufferiv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint bufferIndex, GLenum pname, const GLint *params); bool ValidateTexStorage1D(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); // GL 4.3 bool ValidateClearBufferData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); bool ValidateClearBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); bool ValidateGetInternalformati64v(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, const GLint64 *params); bool ValidateGetProgramResourceLocationIndex(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLenum programInterface, const GLchar *name); -bool ValidateInvalidateBufferData(const Context *context, BufferID bufferPacked); +bool ValidateInvalidateBufferData(const Context *context, + angle::EntryPoint entryPoint, + BufferID bufferPacked); bool ValidateInvalidateBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLintptr offset, GLsizeiptr length); -bool ValidateInvalidateTexImage(const Context *context, TextureID texturePacked, GLint level); +bool ValidateInvalidateTexImage(const Context *context, + angle::EntryPoint entryPoint, + TextureID texturePacked, + GLint level); bool ValidateInvalidateTexSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); bool ValidateMultiDrawArraysIndirect(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); bool ValidateMultiDrawElementsIndirect(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); bool ValidateShaderStorageBlockBinding(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, GLuint storageBlockIndex, GLuint storageBlockBinding); bool ValidateTextureView(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); bool ValidateVertexAttribLFormat(const Context *context, + angle::EntryPoint entryPoint, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); // GL 4.4 bool ValidateBindBuffersBase(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint first, GLsizei count, const BufferID *buffersPacked); bool ValidateBindBuffersRange(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLuint first, GLsizei count, const BufferID *buffersPacked, const GLintptr *offsets, const GLsizeiptr *sizes); bool ValidateBindImageTextures(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *textures); bool ValidateBindSamplers(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *samplers); bool ValidateBindTextures(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const GLuint *textures); bool ValidateBindVertexBuffers(const Context *context, + angle::EntryPoint entryPoint, GLuint first, GLsizei count, const BufferID *buffersPacked, const GLintptr *offsets, const GLsizei *strides); bool ValidateBufferStorage(const Context *context, + angle::EntryPoint entryPoint, BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags); bool ValidateClearTexImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLenum format, GLenum type, const void *data); bool ValidateClearTexSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -476,12 +613,16 @@ GLenum format, GLenum type, const void *data); // GL 4.5 -bool ValidateBindTextureUnit(const Context *context, GLuint unit, TextureID texturePacked); +bool ValidateBindTextureUnit(const Context *context, + angle::EntryPoint entryPoint, + GLuint unit, + TextureID texturePacked); bool ValidateBlitNamedFramebuffer(const Context *context, + angle::EntryPoint entryPoint, GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, @@ -491,67 +632,80 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); bool ValidateCheckNamedFramebufferStatus(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum target); bool ValidateClearNamedBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLenum internalformat, GLenum format, GLenum type, const void *data); bool ValidateClearNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); bool ValidateClearNamedFramebufferfi(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); bool ValidateClearNamedFramebufferfv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum buffer, GLint drawbuffer, const GLfloat *value); bool ValidateClearNamedFramebufferiv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum buffer, GLint drawbuffer, const GLint *value); bool ValidateClearNamedFramebufferuiv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum buffer, GLint drawbuffer, const GLuint *value); -bool ValidateClipControl(const Context *context, GLenum origin, GLenum depth); +bool ValidateClipControl(const Context *context, + angle::EntryPoint entryPoint, + GLenum origin, + GLenum depth); bool ValidateCompressedTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); bool ValidateCompressedTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); bool ValidateCompressedTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -560,74 +714,107 @@ GLsizei depth, GLenum format, GLsizei imageSize, const void *data); bool ValidateCopyNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); bool ValidateCopyTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); bool ValidateCopyTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); bool ValidateCopyTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -bool ValidateCreateBuffers(const Context *context, GLsizei n, const BufferID *buffersPacked); -bool ValidateCreateFramebuffers(const Context *context, GLsizei n, const GLuint *framebuffers); -bool ValidateCreateProgramPipelines(const Context *context, GLsizei n, const GLuint *pipelines); -bool ValidateCreateQueries(const Context *context, GLenum target, GLsizei n, const GLuint *ids); +bool ValidateCreateBuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const BufferID *buffersPacked); +bool ValidateCreateFramebuffers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *framebuffers); +bool ValidateCreateProgramPipelines(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *pipelines); +bool ValidateCreateQueries(const Context *context, + angle::EntryPoint entryPoint, + GLenum target, + GLsizei n, + const GLuint *ids); bool ValidateCreateRenderbuffers(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const RenderbufferID *renderbuffersPacked); -bool ValidateCreateSamplers(const Context *context, GLsizei n, const GLuint *samplers); +bool ValidateCreateSamplers(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *samplers); bool ValidateCreateTextures(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLsizei n, const GLuint *textures); -bool ValidateCreateTransformFeedbacks(const Context *context, GLsizei n, const GLuint *ids); +bool ValidateCreateTransformFeedbacks(const Context *context, + angle::EntryPoint entryPoint, + GLsizei n, + const GLuint *ids); bool ValidateCreateVertexArrays(const Context *context, + angle::EntryPoint entryPoint, GLsizei n, const VertexArrayID *arraysPacked); bool ValidateDisableVertexArrayAttrib(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint index); bool ValidateEnableVertexArrayAttrib(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint index); bool ValidateFlushMappedNamedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLintptr offset, GLsizeiptr length); -bool ValidateGenerateTextureMipmap(const Context *context, TextureID texturePacked); +bool ValidateGenerateTextureMipmap(const Context *context, + angle::EntryPoint entryPoint, + TextureID texturePacked); bool ValidateGetCompressedTextureImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLsizei bufSize, const void *pixels); bool ValidateGetCompressedTextureSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -635,93 +822,112 @@ GLsizei height, GLsizei depth, GLsizei bufSize, const void *pixels); bool ValidateGetNamedBufferParameteri64v(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLenum pname, const GLint64 *params); bool ValidateGetNamedBufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLenum pname, const GLint *params); bool ValidateGetNamedBufferPointerv(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLenum pname, void *const *params); bool ValidateGetNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLintptr offset, GLsizeiptr size, const void *data); bool ValidateGetNamedFramebufferAttachmentParameteriv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum attachment, GLenum pname, const GLint *params); bool ValidateGetNamedFramebufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum pname, const GLint *param); bool ValidateGetNamedRenderbufferParameteriv(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbufferPacked, GLenum pname, const GLint *params); bool ValidateGetQueryBufferObjecti64v(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID bufferPacked, GLenum pname, GLintptr offset); bool ValidateGetQueryBufferObjectiv(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID bufferPacked, GLenum pname, GLintptr offset); bool ValidateGetQueryBufferObjectui64v(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID bufferPacked, GLenum pname, GLintptr offset); bool ValidateGetQueryBufferObjectuiv(const Context *context, + angle::EntryPoint entryPoint, GLuint id, BufferID bufferPacked, GLenum pname, GLintptr offset); bool ValidateGetTextureImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateGetTextureLevelParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLenum pname, const GLfloat *params); bool ValidateGetTextureLevelParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLenum pname, const GLint *params); bool ValidateGetTextureParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLint *params); bool ValidateGetTextureParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLuint *params); bool ValidateGetTextureParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLfloat *params); bool ValidateGetTextureParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLint *params); bool ValidateGetTextureSubImage(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -731,278 +937,335 @@ GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateGetTransformFeedbacki64_v(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, GLuint index, const GLint64 *param); bool ValidateGetTransformFeedbacki_v(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, GLuint index, const GLint *param); bool ValidateGetTransformFeedbackiv(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLenum pname, const GLint *param); bool ValidateGetVertexArrayIndexed64iv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint index, GLenum pname, const GLint64 *param); bool ValidateGetVertexArrayIndexediv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint index, GLenum pname, const GLint *param); bool ValidateGetVertexArrayiv(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLenum pname, const GLint *param); bool ValidateGetnColorTable(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei bufSize, const void *table); bool ValidateGetnCompressedTexImage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint lod, GLsizei bufSize, const void *pixels); bool ValidateGetnConvolutionFilter(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei bufSize, const void *image); bool ValidateGetnHistogram(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, const void *values); bool ValidateGetnMapdv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLdouble *v); bool ValidateGetnMapfv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLfloat *v); bool ValidateGetnMapiv(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum query, GLsizei bufSize, const GLint *v); bool ValidateGetnMinmax(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, const void *values); bool ValidateGetnPixelMapfv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLfloat *values); bool ValidateGetnPixelMapuiv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLuint *values); bool ValidateGetnPixelMapusv(const Context *context, + angle::EntryPoint entryPoint, GLenum map, GLsizei bufSize, const GLushort *values); -bool ValidateGetnPolygonStipple(const Context *context, GLsizei bufSize, const GLubyte *pattern); +bool ValidateGetnPolygonStipple(const Context *context, + angle::EntryPoint entryPoint, + GLsizei bufSize, + const GLubyte *pattern); bool ValidateGetnSeparableFilter(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, const void *row, GLsizei columnBufSize, const void *column, const void *span); bool ValidateGetnTexImage(const Context *context, + angle::EntryPoint entryPoint, GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); bool ValidateGetnUniformdv(const Context *context, + angle::EntryPoint entryPoint, ShaderProgramID programPacked, UniformLocation locationPacked, GLsizei bufSize, const GLdouble *params); bool ValidateInvalidateNamedFramebufferData(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLsizei numAttachments, const GLenum *attachments); bool ValidateInvalidateNamedFramebufferSubData(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -bool ValidateMapNamedBuffer(const Context *context, BufferID bufferPacked, GLenum access); +bool ValidateMapNamedBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferID bufferPacked, + GLenum access); bool ValidateMapNamedBufferRange(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLintptr offset, GLsizeiptr length, GLbitfield access); bool ValidateNamedBufferData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLsizeiptr size, const void *data, GLenum usage); bool ValidateNamedBufferStorage(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLsizeiptr size, const void *data, GLbitfield flags); bool ValidateNamedBufferSubData(const Context *context, + angle::EntryPoint entryPoint, BufferID bufferPacked, GLintptr offset, GLsizeiptr size, const void *data); bool ValidateNamedFramebufferDrawBuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum buf); bool ValidateNamedFramebufferDrawBuffers(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLsizei n, const GLenum *bufs); bool ValidateNamedFramebufferParameteri(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum pname, GLint param); bool ValidateNamedFramebufferReadBuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum src); bool ValidateNamedFramebufferRenderbuffer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum attachment, GLenum renderbuffertarget, RenderbufferID renderbufferPacked); bool ValidateNamedFramebufferTexture(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum attachment, TextureID texturePacked, GLint level); bool ValidateNamedFramebufferTextureLayer(const Context *context, + angle::EntryPoint entryPoint, FramebufferID framebufferPacked, GLenum attachment, TextureID texturePacked, GLint level, GLint layer); bool ValidateNamedRenderbufferStorage(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbufferPacked, GLenum internalformat, GLsizei width, GLsizei height); bool ValidateNamedRenderbufferStorageMultisample(const Context *context, + angle::EntryPoint entryPoint, RenderbufferID renderbufferPacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -bool ValidateTextureBarrier(const Context *context); +bool ValidateTextureBarrier(const Context *context, angle::EntryPoint entryPoint); bool ValidateTextureBuffer(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum internalformat, BufferID bufferPacked); bool ValidateTextureBufferRange(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum internalformat, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); bool ValidateTextureParameterIiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLint *params); bool ValidateTextureParameterIuiv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLuint *params); bool ValidateTextureParameterf(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, GLfloat param); bool ValidateTextureParameterfv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLfloat *param); bool ValidateTextureParameteri(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, GLint param); bool ValidateTextureParameteriv(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLenum pname, const GLint *param); bool ValidateTextureStorage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLsizei levels, GLenum internalformat, GLsizei width); bool ValidateTextureStorage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); bool ValidateTextureStorage2DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); bool ValidateTextureStorage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); bool ValidateTextureStorage3DMultisample(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); bool ValidateTextureSubImage1D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); bool ValidateTextureSubImage2D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); bool ValidateTextureSubImage3D(const Context *context, + angle::EntryPoint entryPoint, TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -1011,83 +1274,99 @@ GLsizei depth, GLenum format, GLenum type, const void *pixels); bool ValidateTransformFeedbackBufferBase(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLuint index, BufferID bufferPacked); bool ValidateTransformFeedbackBufferRange(const Context *context, + angle::EntryPoint entryPoint, GLuint xfb, GLuint index, BufferID bufferPacked, GLintptr offset, GLsizeiptr size); -bool ValidateUnmapNamedBuffer(const Context *context, BufferID bufferPacked); +bool ValidateUnmapNamedBuffer(const Context *context, + angle::EntryPoint entryPoint, + BufferID bufferPacked); bool ValidateVertexArrayAttribBinding(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint attribindex, GLuint bindingindex); bool ValidateVertexArrayAttribFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); bool ValidateVertexArrayAttribIFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); bool ValidateVertexArrayAttribLFormat(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); bool ValidateVertexArrayBindingDivisor(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint bindingindex, GLuint divisor); bool ValidateVertexArrayElementBuffer(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, BufferID bufferPacked); bool ValidateVertexArrayVertexBuffer(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint bindingindex, BufferID bufferPacked, GLintptr offset, GLsizei stride); bool ValidateVertexArrayVertexBuffers(const Context *context, + angle::EntryPoint entryPoint, VertexArrayID vaobjPacked, GLuint first, GLsizei count, const BufferID *buffersPacked, const GLintptr *offsets, const GLsizei *strides); // GL 4.6 bool ValidateMultiDrawArraysIndirectCount(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); bool ValidateMultiDrawElementsIndirectCount(const Context *context, + angle::EntryPoint entryPoint, GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); bool ValidatePolygonOffsetClamp(const Context *context, + angle::EntryPoint entryPoint, GLfloat factor, GLfloat units, GLfloat clamp); bool ValidateSpecializeShader(const Context *context, + angle::EntryPoint entryPoint, GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); diff --git a/gfx/angle/checkout/src/libEGL/libEGL_autogen.cpp b/gfx/angle/checkout/src/libEGL/libEGL_autogen.cpp --- a/gfx/angle/checkout/src/libEGL/libEGL_autogen.cpp +++ b/gfx/angle/checkout/src/libEGL/libEGL_autogen.cpp @@ -41,11 +41,11 @@ { return; } EntryPointsLib().reset( - angle::OpenSharedLibrary(ANGLE_GLESV2_LIBRARY_NAME, angle::SearchType::ApplicationDir)); + angle::OpenSharedLibrary(ANGLE_GLESV2_LIBRARY_NAME, angle::SearchType::ModuleDir)); angle::LoadEGL_EGL(GlobalLoad); if (!EGL_GetPlatformDisplay) { fprintf(stderr, "Error loading EGL entry points.\n"); } diff --git a/gfx/angle/checkout/src/libGLESv2/egl_stubs.cpp b/gfx/angle/checkout/src/libGLESv2/egl_stubs.cpp --- a/gfx/angle/checkout/src/libGLESv2/egl_stubs.cpp +++ b/gfx/angle/checkout/src/libGLESv2/egl_stubs.cpp @@ -6,11 +6,11 @@ // egl_stubs.cpp: Stubs for EGL entry points. // #include "libGLESv2/egl_stubs_autogen.h" -#include "common/version.h" +#include "common/angle_version_info.h" #include "libANGLE/Context.h" #include "libANGLE/Display.h" #include "libANGLE/EGLSync.h" #include "libANGLE/Surface.h" #include "libANGLE/Thread.h" @@ -277,43 +277,14 @@ { ANGLE_EGL_TRY_RETURN(thread, display->prepareForCall(), "eglDestroyContext", GetDisplayIfValid(display), EGL_FALSE); - gl::Context *contextForThread = thread->getContext(); - bool contextWasCurrent = context == contextForThread; - - bool shouldMakeCurrent = - !contextWasCurrent && !context->isExternal() && context->getRefCount() <= 1; - - // Display can't access the current global context, but does exhibit a context switch, - // so ensuring the current global context is correct needs to happen here. - Surface *currentDrawSurface = thread->getCurrentDrawSurface(); - Surface *currentReadSurface = thread->getCurrentReadSurface(); - - if (shouldMakeCurrent) - { - SetContextCurrent(thread, context); - } + ScopedSyncCurrentContextFromThread scopedSyncCurrent(thread); - ANGLE_EGL_TRY_RETURN( - thread, - display->destroyContextWithSurfaces(thread, context, contextForThread, currentDrawSurface, - currentReadSurface), - "eglDestroyContext", GetContextIfValid(display, context), EGL_FALSE); - - if (contextWasCurrent) - { - ANGLE_EGL_TRY_RETURN(thread, display->makeCurrent(context, nullptr, nullptr, nullptr), - "eglDestroyContext", GetContextIfValid(display, context), EGL_FALSE); - SetContextCurrent(thread, nullptr); - } - else if (shouldMakeCurrent) - { - SetContextCurrent(thread, contextForThread); - } - + ANGLE_EGL_TRY_RETURN(thread, display->destroyContext(thread, context), "eglDestroyContext", + GetContextIfValid(display, context), EGL_FALSE); thread->setSuccess(); return EGL_TRUE; } EGLBoolean DestroyImage(Thread *thread, Display *display, Image *img) @@ -492,21 +463,23 @@ Surface *readSurface, gl::Context *context) { ANGLE_EGL_TRY_RETURN(thread, display->prepareForCall(), "eglMakeCurrent", GetDisplayIfValid(display), EGL_FALSE); + ScopedSyncCurrentContextFromThread scopedSyncCurrent(thread); + Surface *previousDraw = thread->getCurrentDrawSurface(); Surface *previousRead = thread->getCurrentReadSurface(); gl::Context *previousContext = thread->getContext(); // Only call makeCurrent if the context or surfaces have changed. if (previousDraw != drawSurface || previousRead != readSurface || previousContext != context) { ANGLE_EGL_TRY_RETURN( - thread, display->makeCurrent(previousContext, drawSurface, readSurface, context), + thread, + display->makeCurrent(thread, previousContext, drawSurface, readSurface, context), "eglMakeCurrent", GetContextIfValid(display, context), EGL_FALSE); - SetContextCurrent(thread, context); } thread->setSuccess(); return EGL_TRUE; } @@ -559,12 +532,16 @@ break; case EGL_VENDOR: result = display->getVendorString().c_str(); break; case EGL_VERSION: - result = "1.5 (ANGLE " ANGLE_VERSION_STRING ")"; + { + static const char *sVersionString = + MakeStaticString(std::string("1.5 (ANGLE ") + angle::GetANGLEVersionString() + ")"); + result = sVersionString; break; + } default: UNREACHABLE(); break; } @@ -605,10 +582,12 @@ return EGL_TRUE; } EGLBoolean ReleaseThread(Thread *thread) { + ScopedSyncCurrentContextFromThread scopedSyncCurrent(thread); + Surface *previousDraw = thread->getCurrentDrawSurface(); Surface *previousRead = thread->getCurrentReadSurface(); gl::Context *previousContext = thread->getContext(); Display *previousDisplay = thread->getDisplay(); @@ -619,16 +598,16 @@ // Only call makeCurrent if the context or surfaces have changed. if (previousDraw != EGL_NO_SURFACE || previousRead != EGL_NO_SURFACE || previousContext != EGL_NO_CONTEXT) { ANGLE_EGL_TRY_RETURN( - thread, previousDisplay->makeCurrent(previousContext, nullptr, nullptr, nullptr), + thread, + previousDisplay->makeCurrent(thread, previousContext, nullptr, nullptr, nullptr), "eglReleaseThread", nullptr, EGL_FALSE); } ANGLE_EGL_TRY_RETURN(thread, previousDisplay->releaseThread(), "eglReleaseThread", GetDisplayIfValid(previousDisplay), EGL_FALSE); - SetContextCurrent(thread, nullptr); } thread->setSuccess(); return EGL_TRUE; } @@ -677,14 +656,13 @@ EGLBoolean Terminate(Thread *thread, Display *display) { ANGLE_EGL_TRY_RETURN(thread, display->prepareForCall(), "eglTerminate", GetDisplayIfValid(display), EGL_FALSE); - ANGLE_EGL_TRY_RETURN(thread, - display->makeCurrent(thread->getContext(), nullptr, nullptr, nullptr), - "eglTerminate", GetDisplayIfValid(display), EGL_FALSE); - SetContextCurrent(thread, nullptr); + + ScopedSyncCurrentContextFromThread scopedSyncCurrent(thread); + ANGLE_EGL_TRY_RETURN(thread, display->terminate(thread), "eglTerminate", GetDisplayIfValid(display), EGL_FALSE); thread->setSuccess(); return EGL_TRUE; diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.cpp @@ -31,11 +31,12 @@ if (context) { AlphaTestFunc funcPacked = PackParam(func); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateAlphaFunc(context, funcPacked, ref)); + (context->skipValidation() || + ValidateAlphaFunc(context, angle::EntryPoint::GLAlphaFunc, funcPacked, ref)); if (isCallValid) { context->alphaFunc(funcPacked, ref); } ANGLE_CAPTURE(AlphaFunc, isCallValid, context, funcPacked, ref); @@ -55,11 +56,12 @@ if (context) { AlphaTestFunc funcPacked = PackParam(func); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateAlphaFuncx(context, funcPacked, ref)); + (context->skipValidation() || + ValidateAlphaFuncx(context, angle::EntryPoint::GLAlphaFuncx, funcPacked, ref)); if (isCallValid) { context->alphaFuncx(funcPacked, ref); } ANGLE_CAPTURE(AlphaFuncx, isCallValid, context, funcPacked, ref); @@ -78,12 +80,13 @@ green, blue, alpha); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClearColorx(context, red, green, blue, alpha)); + bool isCallValid = (context->skipValidation() || + ValidateClearColorx(context, angle::EntryPoint::GLClearColorx, red, + green, blue, alpha)); if (isCallValid) { context->clearColorx(red, green, blue, alpha); } ANGLE_CAPTURE(ClearColorx, isCallValid, context, red, green, blue, alpha); @@ -100,11 +103,12 @@ EVENT(context, GLClearDepthx, "context = %d, depth = 0x%X", CID(context), depth); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearDepthx(context, depth)); + bool isCallValid = (context->skipValidation() || + ValidateClearDepthx(context, angle::EntryPoint::GLClearDepthx, depth)); if (isCallValid) { context->clearDepthx(depth); } ANGLE_CAPTURE(ClearDepthx, isCallValid, context, depth); @@ -122,12 +126,13 @@ GLenumToString(GLenumGroup::TextureUnit, texture)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClientActiveTexture(context, texture)); + bool isCallValid = (context->skipValidation() || + ValidateClientActiveTexture( + context, angle::EntryPoint::GLClientActiveTexture, texture)); if (isCallValid) { context->clientActiveTexture(texture); } ANGLE_CAPTURE(ClientActiveTexture, isCallValid, context, texture); @@ -145,11 +150,12 @@ GLenumToString(GLenumGroup::ClipPlaneName, p), (uintptr_t)eqn); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClipPlanef(context, p, eqn)); + bool isCallValid = (context->skipValidation() || + ValidateClipPlanef(context, angle::EntryPoint::GLClipPlanef, p, eqn)); if (isCallValid) { context->clipPlanef(p, eqn); } ANGLE_CAPTURE(ClipPlanef, isCallValid, context, p, eqn); @@ -168,11 +174,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateClipPlanex(context, plane, equation)); + (context->skipValidation() || + ValidateClipPlanex(context, angle::EntryPoint::GLClipPlanex, plane, equation)); if (isCallValid) { context->clipPlanex(plane, equation); } ANGLE_CAPTURE(ClipPlanex, isCallValid, context, plane, equation); @@ -191,11 +198,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColor4f(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateColor4f(context, angle::EntryPoint::GLColor4f, red, green, blue, alpha)); if (isCallValid) { context->color4f(red, green, blue, alpha); } ANGLE_CAPTURE(Color4f, isCallValid, context, red, green, blue, alpha); @@ -214,11 +222,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColor4ub(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateColor4ub(context, angle::EntryPoint::GLColor4ub, red, green, blue, alpha)); if (isCallValid) { context->color4ub(red, green, blue, alpha); } ANGLE_CAPTURE(Color4ub, isCallValid, context, red, green, blue, alpha); @@ -237,11 +246,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColor4x(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateColor4x(context, angle::EntryPoint::GLColor4x, red, green, blue, alpha)); if (isCallValid) { context->color4x(red, green, blue, alpha); } ANGLE_CAPTURE(Color4x, isCallValid, context, red, green, blue, alpha); @@ -263,11 +273,12 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateColorPointer(context, size, typePacked, stride, pointer)); + ValidateColorPointer(context, angle::EntryPoint::GLColorPointer, size, + typePacked, stride, pointer)); if (isCallValid) { context->colorPointer(size, typePacked, stride, pointer); } ANGLE_CAPTURE(ColorPointer, isCallValid, context, size, typePacked, stride, pointer); @@ -284,11 +295,12 @@ EVENT(context, GLDepthRangex, "context = %d, n = 0x%X, f = 0x%X", CID(context), n, f); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthRangex(context, n, f)); + bool isCallValid = (context->skipValidation() || + ValidateDepthRangex(context, angle::EntryPoint::GLDepthRangex, n, f)); if (isCallValid) { context->depthRangex(n, f); } ANGLE_CAPTURE(DepthRangex, isCallValid, context, n, f); @@ -307,12 +319,13 @@ if (context) { ClientVertexArrayType arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableClientState(context, arrayPacked)); + bool isCallValid = (context->skipValidation() || + ValidateDisableClientState( + context, angle::EntryPoint::GLDisableClientState, arrayPacked)); if (isCallValid) { context->disableClientState(arrayPacked); } ANGLE_CAPTURE(DisableClientState, isCallValid, context, arrayPacked); @@ -331,12 +344,13 @@ if (context) { ClientVertexArrayType arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableClientState(context, arrayPacked)); + bool isCallValid = (context->skipValidation() || + ValidateEnableClientState( + context, angle::EntryPoint::GLEnableClientState, arrayPacked)); if (isCallValid) { context->enableClientState(arrayPacked); } ANGLE_CAPTURE(EnableClientState, isCallValid, context, arrayPacked); @@ -354,11 +368,12 @@ GLenumToString(GLenumGroup::FogParameter, pname), param); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogf(context, pname, param)); + bool isCallValid = (context->skipValidation() || + ValidateFogf(context, angle::EntryPoint::GLFogf, pname, param)); if (isCallValid) { context->fogf(pname, param); } ANGLE_CAPTURE(Fogf, isCallValid, context, pname, param); @@ -376,11 +391,12 @@ GLenumToString(GLenumGroup::FogParameter, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogfv(context, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateFogfv(context, angle::EntryPoint::GLFogfv, pname, params)); if (isCallValid) { context->fogfv(pname, params); } ANGLE_CAPTURE(Fogfv, isCallValid, context, pname, params); @@ -398,11 +414,12 @@ GLenumToString(GLenumGroup::FogPName, pname), param); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogx(context, pname, param)); + bool isCallValid = (context->skipValidation() || + ValidateFogx(context, angle::EntryPoint::GLFogx, pname, param)); if (isCallValid) { context->fogx(pname, param); } ANGLE_CAPTURE(Fogx, isCallValid, context, pname, param); @@ -420,11 +437,12 @@ GLenumToString(GLenumGroup::FogPName, pname), (uintptr_t)param); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogxv(context, pname, param)); + bool isCallValid = (context->skipValidation() || + ValidateFogxv(context, angle::EntryPoint::GLFogxv, pname, param)); if (isCallValid) { context->fogxv(pname, param); } ANGLE_CAPTURE(Fogxv, isCallValid, context, pname, param); @@ -443,11 +461,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateFrustumf(context, l, r, b, t, n, f)); + (context->skipValidation() || + ValidateFrustumf(context, angle::EntryPoint::GLFrustumf, l, r, b, t, n, f)); if (isCallValid) { context->frustumf(l, r, b, t, n, f); } ANGLE_CAPTURE(Frustumf, isCallValid, context, l, r, b, t, n, f); @@ -467,11 +486,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateFrustumx(context, l, r, b, t, n, f)); + (context->skipValidation() || + ValidateFrustumx(context, angle::EntryPoint::GLFrustumx, l, r, b, t, n, f)); if (isCallValid) { context->frustumx(l, r, b, t, n, f); } ANGLE_CAPTURE(Frustumx, isCallValid, context, l, r, b, t, n, f); @@ -490,11 +510,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetClipPlanef(context, plane, equation)); + (context->skipValidation() || + ValidateGetClipPlanef(context, angle::EntryPoint::GLGetClipPlanef, plane, equation)); if (isCallValid) { context->getClipPlanef(plane, equation); } ANGLE_CAPTURE(GetClipPlanef, isCallValid, context, plane, equation); @@ -513,11 +534,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetClipPlanex(context, plane, equation)); + (context->skipValidation() || + ValidateGetClipPlanex(context, angle::EntryPoint::GLGetClipPlanex, plane, equation)); if (isCallValid) { context->getClipPlanex(plane, equation); } ANGLE_CAPTURE(GetClipPlanex, isCallValid, context, plane, equation); @@ -535,11 +557,13 @@ CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetFixedv(context, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFixedv(context, angle::EntryPoint::GLGetFixedv, pname, params)); if (isCallValid) { context->getFixedv(pname, params); } ANGLE_CAPTURE(GetFixedv, isCallValid, context, pname, params); @@ -559,12 +583,13 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetLightfv(context, light, pnamePacked, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetLightfv(context, angle::EntryPoint::GLGetLightfv, light, + pnamePacked, params)); if (isCallValid) { context->getLightfv(light, pnamePacked, params); } ANGLE_CAPTURE(GetLightfv, isCallValid, context, light, pnamePacked, params); @@ -584,12 +609,13 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetLightxv(context, light, pnamePacked, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetLightxv(context, angle::EntryPoint::GLGetLightxv, light, + pnamePacked, params)); if (isCallValid) { context->getLightxv(light, pnamePacked, params); } ANGLE_CAPTURE(GetLightxv, isCallValid, context, light, pnamePacked, params); @@ -611,11 +637,12 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetMaterialfv(context, face, pnamePacked, params)); + ValidateGetMaterialfv(context, angle::EntryPoint::GLGetMaterialfv, face, + pnamePacked, params)); if (isCallValid) { context->getMaterialfv(face, pnamePacked, params); } ANGLE_CAPTURE(GetMaterialfv, isCallValid, context, face, pnamePacked, params); @@ -637,11 +664,12 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetMaterialxv(context, face, pnamePacked, params)); + ValidateGetMaterialxv(context, angle::EntryPoint::GLGetMaterialxv, face, + pnamePacked, params)); if (isCallValid) { context->getMaterialxv(face, pnamePacked, params); } ANGLE_CAPTURE(GetMaterialxv, isCallValid, context, face, pnamePacked, params); @@ -664,11 +692,12 @@ { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexEnvfv(context, targetPacked, pnamePacked, params)); + ValidateGetTexEnvfv(context, angle::EntryPoint::GLGetTexEnvfv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->getTexEnvfv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(GetTexEnvfv, isCallValid, context, targetPacked, pnamePacked, params); @@ -691,11 +720,12 @@ { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexEnviv(context, targetPacked, pnamePacked, params)); + ValidateGetTexEnviv(context, angle::EntryPoint::GLGetTexEnviv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->getTexEnviv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(GetTexEnviv, isCallValid, context, targetPacked, pnamePacked, params); @@ -718,11 +748,12 @@ { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexEnvxv(context, targetPacked, pnamePacked, params)); + ValidateGetTexEnvxv(context, angle::EntryPoint::GLGetTexEnvxv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->getTexEnvxv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(GetTexEnvxv, isCallValid, context, targetPacked, pnamePacked, params); @@ -743,12 +774,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterxv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterxv(context, angle::EntryPoint::GLGetTexParameterxv, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterxv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterxv, isCallValid, context, targetPacked, pname, params); @@ -767,11 +800,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightModelf(context, pname, param)); + (context->skipValidation() || + ValidateLightModelf(context, angle::EntryPoint::GLLightModelf, pname, param)); if (isCallValid) { context->lightModelf(pname, param); } ANGLE_CAPTURE(LightModelf, isCallValid, context, pname, param); @@ -790,11 +824,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightModelfv(context, pname, params)); + (context->skipValidation() || + ValidateLightModelfv(context, angle::EntryPoint::GLLightModelfv, pname, params)); if (isCallValid) { context->lightModelfv(pname, params); } ANGLE_CAPTURE(LightModelfv, isCallValid, context, pname, params); @@ -813,11 +848,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightModelx(context, pname, param)); + (context->skipValidation() || + ValidateLightModelx(context, angle::EntryPoint::GLLightModelx, pname, param)); if (isCallValid) { context->lightModelx(pname, param); } ANGLE_CAPTURE(LightModelx, isCallValid, context, pname, param); @@ -836,11 +872,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightModelxv(context, pname, param)); + (context->skipValidation() || + ValidateLightModelxv(context, angle::EntryPoint::GLLightModelxv, pname, param)); if (isCallValid) { context->lightModelxv(pname, param); } ANGLE_CAPTURE(LightModelxv, isCallValid, context, pname, param); @@ -861,11 +898,12 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightf(context, light, pnamePacked, param)); + (context->skipValidation() || + ValidateLightf(context, angle::EntryPoint::GLLightf, light, pnamePacked, param)); if (isCallValid) { context->lightf(light, pnamePacked, param); } ANGLE_CAPTURE(Lightf, isCallValid, context, light, pnamePacked, param); @@ -886,11 +924,12 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightfv(context, light, pnamePacked, params)); + (context->skipValidation() || + ValidateLightfv(context, angle::EntryPoint::GLLightfv, light, pnamePacked, params)); if (isCallValid) { context->lightfv(light, pnamePacked, params); } ANGLE_CAPTURE(Lightfv, isCallValid, context, light, pnamePacked, params); @@ -911,11 +950,12 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightx(context, light, pnamePacked, param)); + (context->skipValidation() || + ValidateLightx(context, angle::EntryPoint::GLLightx, light, pnamePacked, param)); if (isCallValid) { context->lightx(light, pnamePacked, param); } ANGLE_CAPTURE(Lightx, isCallValid, context, light, pnamePacked, param); @@ -936,11 +976,12 @@ if (context) { LightParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLightxv(context, light, pnamePacked, params)); + (context->skipValidation() || + ValidateLightxv(context, angle::EntryPoint::GLLightxv, light, pnamePacked, params)); if (isCallValid) { context->lightxv(light, pnamePacked, params); } ANGLE_CAPTURE(Lightxv, isCallValid, context, light, pnamePacked, params); @@ -957,11 +998,12 @@ EVENT(context, GLLineWidthx, "context = %d, width = 0x%X", CID(context), width); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLineWidthx(context, width)); + bool isCallValid = (context->skipValidation() || + ValidateLineWidthx(context, angle::EntryPoint::GLLineWidthx, width)); if (isCallValid) { context->lineWidthx(width); } ANGLE_CAPTURE(LineWidthx, isCallValid, context, width); @@ -978,11 +1020,12 @@ EVENT(context, GLLoadIdentity, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadIdentity(context)); + bool isCallValid = (context->skipValidation() || + ValidateLoadIdentity(context, angle::EntryPoint::GLLoadIdentity)); if (isCallValid) { context->loadIdentity(); } ANGLE_CAPTURE(LoadIdentity, isCallValid, context); @@ -1000,11 +1043,12 @@ (uintptr_t)m); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadMatrixf(context, m)); + bool isCallValid = (context->skipValidation() || + ValidateLoadMatrixf(context, angle::EntryPoint::GLLoadMatrixf, m)); if (isCallValid) { context->loadMatrixf(m); } ANGLE_CAPTURE(LoadMatrixf, isCallValid, context, m); @@ -1022,11 +1066,12 @@ (uintptr_t)m); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadMatrixx(context, m)); + bool isCallValid = (context->skipValidation() || + ValidateLoadMatrixx(context, angle::EntryPoint::GLLoadMatrixx, m)); if (isCallValid) { context->loadMatrixx(m); } ANGLE_CAPTURE(LoadMatrixx, isCallValid, context, m); @@ -1045,11 +1090,12 @@ if (context) { LogicalOperation opcodePacked = PackParam(opcode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLogicOp(context, opcodePacked)); + bool isCallValid = (context->skipValidation() || + ValidateLogicOp(context, angle::EntryPoint::GLLogicOp, opcodePacked)); if (isCallValid) { context->logicOp(opcodePacked); } ANGLE_CAPTURE(LogicOp, isCallValid, context, opcodePacked); @@ -1070,11 +1116,12 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateMaterialf(context, face, pnamePacked, param)); + (context->skipValidation() || + ValidateMaterialf(context, angle::EntryPoint::GLMaterialf, face, pnamePacked, param)); if (isCallValid) { context->materialf(face, pnamePacked, param); } ANGLE_CAPTURE(Materialf, isCallValid, context, face, pnamePacked, param); @@ -1094,12 +1141,13 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialfv(context, face, pnamePacked, params)); + bool isCallValid = (context->skipValidation() || + ValidateMaterialfv(context, angle::EntryPoint::GLMaterialfv, face, + pnamePacked, params)); if (isCallValid) { context->materialfv(face, pnamePacked, params); } ANGLE_CAPTURE(Materialfv, isCallValid, context, face, pnamePacked, params); @@ -1120,11 +1168,12 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateMaterialx(context, face, pnamePacked, param)); + (context->skipValidation() || + ValidateMaterialx(context, angle::EntryPoint::GLMaterialx, face, pnamePacked, param)); if (isCallValid) { context->materialx(face, pnamePacked, param); } ANGLE_CAPTURE(Materialx, isCallValid, context, face, pnamePacked, param); @@ -1144,12 +1193,13 @@ if (context) { MaterialParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialxv(context, face, pnamePacked, param)); + bool isCallValid = (context->skipValidation() || + ValidateMaterialxv(context, angle::EntryPoint::GLMaterialxv, face, + pnamePacked, param)); if (isCallValid) { context->materialxv(face, pnamePacked, param); } ANGLE_CAPTURE(Materialxv, isCallValid, context, face, pnamePacked, param); @@ -1168,11 +1218,13 @@ if (context) { MatrixType modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMatrixMode(context, modePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateMatrixMode(context, angle::EntryPoint::GLMatrixMode, modePacked)); if (isCallValid) { context->matrixMode(modePacked); } ANGLE_CAPTURE(MatrixMode, isCallValid, context, modePacked); @@ -1190,11 +1242,12 @@ (uintptr_t)m); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultMatrixf(context, m)); + bool isCallValid = (context->skipValidation() || + ValidateMultMatrixf(context, angle::EntryPoint::GLMultMatrixf, m)); if (isCallValid) { context->multMatrixf(m); } ANGLE_CAPTURE(MultMatrixf, isCallValid, context, m); @@ -1212,11 +1265,12 @@ (uintptr_t)m); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultMatrixx(context, m)); + bool isCallValid = (context->skipValidation() || + ValidateMultMatrixx(context, angle::EntryPoint::GLMultMatrixx, m)); if (isCallValid) { context->multMatrixx(m); } ANGLE_CAPTURE(MultMatrixx, isCallValid, context, m); @@ -1234,12 +1288,13 @@ CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMultiTexCoord4f(context, target, s, t, r, q)); + bool isCallValid = (context->skipValidation() || + ValidateMultiTexCoord4f(context, angle::EntryPoint::GLMultiTexCoord4f, + target, s, t, r, q)); if (isCallValid) { context->multiTexCoord4f(target, s, t, r, q); } ANGLE_CAPTURE(MultiTexCoord4f, isCallValid, context, target, s, t, r, q); @@ -1258,12 +1313,13 @@ GLenumToString(GLenumGroup::TextureUnit, texture), s, t, r, q); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMultiTexCoord4x(context, texture, s, t, r, q)); + bool isCallValid = (context->skipValidation() || + ValidateMultiTexCoord4x(context, angle::EntryPoint::GLMultiTexCoord4x, + texture, s, t, r, q)); if (isCallValid) { context->multiTexCoord4x(texture, s, t, r, q); } ANGLE_CAPTURE(MultiTexCoord4x, isCallValid, context, texture, s, t, r, q); @@ -1280,11 +1336,12 @@ EVENT(context, GLNormal3f, "context = %d, nx = %f, ny = %f, nz = %f", CID(context), nx, ny, nz); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateNormal3f(context, nx, ny, nz)); + bool isCallValid = (context->skipValidation() || + ValidateNormal3f(context, angle::EntryPoint::GLNormal3f, nx, ny, nz)); if (isCallValid) { context->normal3f(nx, ny, nz); } ANGLE_CAPTURE(Normal3f, isCallValid, context, nx, ny, nz); @@ -1302,11 +1359,12 @@ ny, nz); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateNormal3x(context, nx, ny, nz)); + bool isCallValid = (context->skipValidation() || + ValidateNormal3x(context, angle::EntryPoint::GLNormal3x, nx, ny, nz)); if (isCallValid) { context->normal3x(nx, ny, nz); } ANGLE_CAPTURE(Normal3x, isCallValid, context, nx, ny, nz); @@ -1327,11 +1385,12 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateNormalPointer(context, typePacked, stride, pointer)); + ValidateNormalPointer(context, angle::EntryPoint::GLNormalPointer, + typePacked, stride, pointer)); if (isCallValid) { context->normalPointer(typePacked, stride, pointer); } ANGLE_CAPTURE(NormalPointer, isCallValid, context, typePacked, stride, pointer); @@ -1349,11 +1408,12 @@ CID(context), l, r, b, t, n, f); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateOrthof(context, l, r, b, t, n, f)); + bool isCallValid = (context->skipValidation() || + ValidateOrthof(context, angle::EntryPoint::GLOrthof, l, r, b, t, n, f)); if (isCallValid) { context->orthof(l, r, b, t, n, f); } ANGLE_CAPTURE(Orthof, isCallValid, context, l, r, b, t, n, f); @@ -1372,11 +1432,12 @@ l, r, b, t, n, f); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateOrthox(context, l, r, b, t, n, f)); + bool isCallValid = (context->skipValidation() || + ValidateOrthox(context, angle::EntryPoint::GLOrthox, l, r, b, t, n, f)); if (isCallValid) { context->orthox(l, r, b, t, n, f); } ANGLE_CAPTURE(Orthox, isCallValid, context, l, r, b, t, n, f); @@ -1395,12 +1456,13 @@ if (context) { PointParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterf(context, pnamePacked, param)); + bool isCallValid = (context->skipValidation() || + ValidatePointParameterf(context, angle::EntryPoint::GLPointParameterf, + pnamePacked, param)); if (isCallValid) { context->pointParameterf(pnamePacked, param); } ANGLE_CAPTURE(PointParameterf, isCallValid, context, pnamePacked, param); @@ -1419,12 +1481,13 @@ if (context) { PointParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterfv(context, pnamePacked, params)); + bool isCallValid = (context->skipValidation() || + ValidatePointParameterfv(context, angle::EntryPoint::GLPointParameterfv, + pnamePacked, params)); if (isCallValid) { context->pointParameterfv(pnamePacked, params); } ANGLE_CAPTURE(PointParameterfv, isCallValid, context, pnamePacked, params); @@ -1443,12 +1506,13 @@ if (context) { PointParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterx(context, pnamePacked, param)); + bool isCallValid = (context->skipValidation() || + ValidatePointParameterx(context, angle::EntryPoint::GLPointParameterx, + pnamePacked, param)); if (isCallValid) { context->pointParameterx(pnamePacked, param); } ANGLE_CAPTURE(PointParameterx, isCallValid, context, pnamePacked, param); @@ -1467,12 +1531,13 @@ if (context) { PointParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterxv(context, pnamePacked, params)); + bool isCallValid = (context->skipValidation() || + ValidatePointParameterxv(context, angle::EntryPoint::GLPointParameterxv, + pnamePacked, params)); if (isCallValid) { context->pointParameterxv(pnamePacked, params); } ANGLE_CAPTURE(PointParameterxv, isCallValid, context, pnamePacked, params); @@ -1489,11 +1554,12 @@ EVENT(context, GLPointSize, "context = %d, size = %f", CID(context), size); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePointSize(context, size)); + bool isCallValid = (context->skipValidation() || + ValidatePointSize(context, angle::EntryPoint::GLPointSize, size)); if (isCallValid) { context->pointSize(size); } ANGLE_CAPTURE(PointSize, isCallValid, context, size); @@ -1510,11 +1576,12 @@ EVENT(context, GLPointSizex, "context = %d, size = 0x%X", CID(context), size); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePointSizex(context, size)); + bool isCallValid = (context->skipValidation() || + ValidatePointSizex(context, angle::EntryPoint::GLPointSizex, size)); if (isCallValid) { context->pointSizex(size); } ANGLE_CAPTURE(PointSizex, isCallValid, context, size); @@ -1533,11 +1600,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidatePolygonOffsetx(context, factor, units)); + (context->skipValidation() || + ValidatePolygonOffsetx(context, angle::EntryPoint::GLPolygonOffsetx, factor, units)); if (isCallValid) { context->polygonOffsetx(factor, units); } ANGLE_CAPTURE(PolygonOffsetx, isCallValid, context, factor, units); @@ -1554,11 +1622,12 @@ EVENT(context, GLPopMatrix, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopMatrix(context)); + bool isCallValid = (context->skipValidation() || + ValidatePopMatrix(context, angle::EntryPoint::GLPopMatrix)); if (isCallValid) { context->popMatrix(); } ANGLE_CAPTURE(PopMatrix, isCallValid, context); @@ -1575,11 +1644,12 @@ EVENT(context, GLPushMatrix, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePushMatrix(context)); + bool isCallValid = (context->skipValidation() || + ValidatePushMatrix(context, angle::EntryPoint::GLPushMatrix)); if (isCallValid) { context->pushMatrix(); } ANGLE_CAPTURE(PushMatrix, isCallValid, context); @@ -1597,11 +1667,12 @@ angle, x, y, z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateRotatef(context, angle, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateRotatef(context, angle::EntryPoint::GLRotatef, angle, x, y, z)); if (isCallValid) { context->rotatef(angle, x, y, z); } ANGLE_CAPTURE(Rotatef, isCallValid, context, angle, x, y, z); @@ -1619,11 +1690,12 @@ CID(context), angle, x, y, z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateRotatex(context, angle, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateRotatex(context, angle::EntryPoint::GLRotatex, angle, x, y, z)); if (isCallValid) { context->rotatex(angle, x, y, z); } ANGLE_CAPTURE(Rotatex, isCallValid, context, angle, x, y, z); @@ -1642,11 +1714,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateSampleCoveragex(context, value, invert)); + (context->skipValidation() || + ValidateSampleCoveragex(context, angle::EntryPoint::GLSampleCoveragex, value, invert)); if (isCallValid) { context->sampleCoveragex(value, invert); } ANGLE_CAPTURE(SampleCoveragex, isCallValid, context, value, invert); @@ -1663,11 +1736,12 @@ EVENT(context, GLScalef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateScalef(context, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateScalef(context, angle::EntryPoint::GLScalef, x, y, z)); if (isCallValid) { context->scalef(x, y, z); } ANGLE_CAPTURE(Scalef, isCallValid, context, x, y, z); @@ -1684,11 +1758,12 @@ EVENT(context, GLScalex, "context = %d, x = 0x%X, y = 0x%X, z = 0x%X", CID(context), x, y, z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateScalex(context, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateScalex(context, angle::EntryPoint::GLScalex, x, y, z)); if (isCallValid) { context->scalex(x, y, z); } ANGLE_CAPTURE(Scalex, isCallValid, context, x, y, z); @@ -1707,11 +1782,13 @@ if (context) { ShadingModel modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateShadeModel(context, modePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateShadeModel(context, angle::EntryPoint::GLShadeModel, modePacked)); if (isCallValid) { context->shadeModel(modePacked); } ANGLE_CAPTURE(ShadeModel, isCallValid, context, modePacked); @@ -1733,11 +1810,12 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexCoordPointer(context, size, typePacked, stride, pointer)); + ValidateTexCoordPointer(context, angle::EntryPoint::GLTexCoordPointer, + size, typePacked, stride, pointer)); if (isCallValid) { context->texCoordPointer(size, typePacked, stride, pointer); } ANGLE_CAPTURE(TexCoordPointer, isCallValid, context, size, typePacked, stride, pointer); @@ -1758,12 +1836,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvf(context, targetPacked, pnamePacked, param)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnvf(context, angle::EntryPoint::GLTexEnvf, + targetPacked, pnamePacked, param)); if (isCallValid) { context->texEnvf(targetPacked, pnamePacked, param); } ANGLE_CAPTURE(TexEnvf, isCallValid, context, targetPacked, pnamePacked, param); @@ -1784,12 +1863,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvfv(context, targetPacked, pnamePacked, params)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnvfv(context, angle::EntryPoint::GLTexEnvfv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->texEnvfv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(TexEnvfv, isCallValid, context, targetPacked, pnamePacked, params); @@ -1810,12 +1890,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvi(context, targetPacked, pnamePacked, param)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnvi(context, angle::EntryPoint::GLTexEnvi, + targetPacked, pnamePacked, param)); if (isCallValid) { context->texEnvi(targetPacked, pnamePacked, param); } ANGLE_CAPTURE(TexEnvi, isCallValid, context, targetPacked, pnamePacked, param); @@ -1836,12 +1917,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnviv(context, targetPacked, pnamePacked, params)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnviv(context, angle::EntryPoint::GLTexEnviv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->texEnviv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(TexEnviv, isCallValid, context, targetPacked, pnamePacked, params); @@ -1862,12 +1944,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvx(context, targetPacked, pnamePacked, param)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnvx(context, angle::EntryPoint::GLTexEnvx, + targetPacked, pnamePacked, param)); if (isCallValid) { context->texEnvx(targetPacked, pnamePacked, param); } ANGLE_CAPTURE(TexEnvx, isCallValid, context, targetPacked, pnamePacked, param); @@ -1888,12 +1971,13 @@ if (context) { TextureEnvTarget targetPacked = PackParam(target); TextureEnvParameter pnamePacked = PackParam(pname); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvxv(context, targetPacked, pnamePacked, params)); + bool isCallValid = + (context->skipValidation() || ValidateTexEnvxv(context, angle::EntryPoint::GLTexEnvxv, + targetPacked, pnamePacked, params)); if (isCallValid) { context->texEnvxv(targetPacked, pnamePacked, params); } ANGLE_CAPTURE(TexEnvxv, isCallValid, context, targetPacked, pnamePacked, params); @@ -1914,11 +1998,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterx(context, targetPacked, pname, param)); + ValidateTexParameterx(context, angle::EntryPoint::GLTexParameterx, + targetPacked, pname, param)); if (isCallValid) { context->texParameterx(targetPacked, pname, param); } ANGLE_CAPTURE(TexParameterx, isCallValid, context, targetPacked, pname, param); @@ -1940,11 +2025,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterxv(context, targetPacked, pname, params)); + ValidateTexParameterxv(context, angle::EntryPoint::GLTexParameterxv, + targetPacked, pname, params)); if (isCallValid) { context->texParameterxv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterxv, isCallValid, context, targetPacked, pname, params); @@ -1961,11 +2047,12 @@ EVENT(context, GLTranslatef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTranslatef(context, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateTranslatef(context, angle::EntryPoint::GLTranslatef, x, y, z)); if (isCallValid) { context->translatef(x, y, z); } ANGLE_CAPTURE(Translatef, isCallValid, context, x, y, z); @@ -1983,11 +2070,12 @@ z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTranslatex(context, x, y, z)); + bool isCallValid = (context->skipValidation() || + ValidateTranslatex(context, angle::EntryPoint::GLTranslatex, x, y, z)); if (isCallValid) { context->translatex(x, y, z); } ANGLE_CAPTURE(Translatex, isCallValid, context, x, y, z); @@ -2009,11 +2097,12 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateVertexPointer(context, size, typePacked, stride, pointer)); + ValidateVertexPointer(context, angle::EntryPoint::GLVertexPointer, size, + typePacked, stride, pointer)); if (isCallValid) { context->vertexPointer(size, typePacked, stride, pointer); } ANGLE_CAPTURE(VertexPointer, isCallValid, context, size, typePacked, stride, pointer); diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.cpp @@ -29,11 +29,13 @@ GLenumToString(GLenumGroup::TextureUnit, texture)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateActiveTexture(context, texture)); + bool isCallValid = + (context->skipValidation() || + ValidateActiveTexture(context, angle::EntryPoint::GLActiveTexture, texture)); if (isCallValid) { context->activeTexture(texture); } ANGLE_CAPTURE(ActiveTexture, isCallValid, context, texture); @@ -54,11 +56,12 @@ { ShaderProgramID programPacked = PackParam(program); ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateAttachShader(context, programPacked, shaderPacked)); + ValidateAttachShader(context, angle::EntryPoint::GLAttachShader, + programPacked, shaderPacked)); if (isCallValid) { context->attachShader(programPacked, shaderPacked); } ANGLE_CAPTURE(AttachShader, isCallValid, context, programPacked, shaderPacked); @@ -78,12 +81,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindAttribLocation(context, programPacked, index, name)); + bool isCallValid = + (context->skipValidation() || + ValidateBindAttribLocation(context, angle::EntryPoint::GLBindAttribLocation, + programPacked, index, name)); if (isCallValid) { context->bindAttribLocation(programPacked, index, name); } ANGLE_CAPTURE(BindAttribLocation, isCallValid, context, programPacked, index, name); @@ -103,12 +108,13 @@ if (context) { BufferBinding targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindBuffer(context, targetPacked, bufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateBindBuffer(context, angle::EntryPoint::GLBindBuffer, + targetPacked, bufferPacked)); if (isCallValid) { context->bindBuffer(targetPacked, bufferPacked); } ANGLE_CAPTURE(BindBuffer, isCallValid, context, targetPacked, bufferPacked); @@ -128,11 +134,12 @@ if (context) { FramebufferID framebufferPacked = PackParam(framebuffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBindFramebuffer(context, target, framebufferPacked)); + ValidateBindFramebuffer(context, angle::EntryPoint::GLBindFramebuffer, + target, framebufferPacked)); if (isCallValid) { context->bindFramebuffer(target, framebufferPacked); } ANGLE_CAPTURE(BindFramebuffer, isCallValid, context, target, framebufferPacked); @@ -152,11 +159,12 @@ if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBindRenderbuffer(context, target, renderbufferPacked)); + ValidateBindRenderbuffer(context, angle::EntryPoint::GLBindRenderbuffer, + target, renderbufferPacked)); if (isCallValid) { context->bindRenderbuffer(target, renderbufferPacked); } ANGLE_CAPTURE(BindRenderbuffer, isCallValid, context, target, renderbufferPacked); @@ -177,11 +185,12 @@ { TextureType targetPacked = PackParam(target); TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBindTexture(context, targetPacked, texturePacked)); + ValidateBindTexture(context, angle::EntryPoint::GLBindTexture, + targetPacked, texturePacked)); if (isCallValid) { context->bindTexture(targetPacked, texturePacked); } ANGLE_CAPTURE(BindTexture, isCallValid, context, targetPacked, texturePacked); @@ -200,11 +209,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendColor(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateBlendColor(context, angle::EntryPoint::GLBlendColor, red, green, blue, alpha)); if (isCallValid) { context->blendColor(red, green, blue, alpha); } ANGLE_CAPTURE(BlendColor, isCallValid, context, red, green, blue, alpha); @@ -222,11 +232,13 @@ GLenumToString(GLenumGroup::BlendEquationModeEXT, mode)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendEquation(context, mode)); + bool isCallValid = + (context->skipValidation() || + ValidateBlendEquation(context, angle::EntryPoint::GLBlendEquation, mode)); if (isCallValid) { context->blendEquation(mode); } ANGLE_CAPTURE(BlendEquation, isCallValid, context, mode); @@ -245,12 +257,14 @@ GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparate(context, modeRGB, modeAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateBlendEquationSeparate(context, angle::EntryPoint::GLBlendEquationSeparate, + modeRGB, modeAlpha)); if (isCallValid) { context->blendEquationSeparate(modeRGB, modeAlpha); } ANGLE_CAPTURE(BlendEquationSeparate, isCallValid, context, modeRGB, modeAlpha); @@ -270,11 +284,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendFunc(context, sfactor, dfactor)); + (context->skipValidation() || + ValidateBlendFunc(context, angle::EntryPoint::GLBlendFunc, sfactor, dfactor)); if (isCallValid) { context->blendFunc(sfactor, dfactor); } ANGLE_CAPTURE(BlendFunc, isCallValid, context, sfactor, dfactor); @@ -300,12 +315,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendFuncSeparate(context, sfactorRGB, dfactorRGB, - sfactorAlpha, dfactorAlpha)); + (context->skipValidation() || + ValidateBlendFuncSeparate(context, angle::EntryPoint::GLBlendFuncSeparate, sfactorRGB, + dfactorRGB, sfactorAlpha, dfactorAlpha)); if (isCallValid) { context->blendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); } ANGLE_CAPTURE(BlendFuncSeparate, isCallValid, context, sfactorRGB, dfactorRGB, sfactorAlpha, @@ -330,11 +346,12 @@ { BufferBinding targetPacked = PackParam(target); BufferUsage usagePacked = PackParam(usage); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferData(context, targetPacked, size, data, usagePacked)); + ValidateBufferData(context, angle::EntryPoint::GLBufferData, + targetPacked, size, data, usagePacked)); if (isCallValid) { context->bufferData(targetPacked, size, data, usagePacked); } ANGLE_CAPTURE(BufferData, isCallValid, context, targetPacked, size, data, usagePacked); @@ -357,11 +374,12 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferSubData(context, targetPacked, offset, size, data)); + ValidateBufferSubData(context, angle::EntryPoint::GLBufferSubData, + targetPacked, offset, size, data)); if (isCallValid) { context->bufferSubData(targetPacked, offset, size, data); } ANGLE_CAPTURE(BufferSubData, isCallValid, context, targetPacked, offset, size, data); @@ -380,12 +398,13 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCheckFramebufferStatus(context, target)); + bool isCallValid = (context->skipValidation() || + ValidateCheckFramebufferStatus( + context, angle::EntryPoint::GLCheckFramebufferStatus, target)); if (isCallValid) { returnValue = context->checkFramebufferStatus(target); } else @@ -410,11 +429,12 @@ GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str()); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClear(context, mask)); + bool isCallValid = + (context->skipValidation() || ValidateClear(context, angle::EntryPoint::GLClear, mask)); if (isCallValid) { context->clear(mask); } ANGLE_CAPTURE(Clear, isCallValid, context, mask); @@ -433,11 +453,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateClearColor(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateClearColor(context, angle::EntryPoint::GLClearColor, red, green, blue, alpha)); if (isCallValid) { context->clearColor(red, green, blue, alpha); } ANGLE_CAPTURE(ClearColor, isCallValid, context, red, green, blue, alpha); @@ -454,11 +475,12 @@ EVENT(context, GLClearDepthf, "context = %d, d = %f", CID(context), d); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearDepthf(context, d)); + bool isCallValid = (context->skipValidation() || + ValidateClearDepthf(context, angle::EntryPoint::GLClearDepthf, d)); if (isCallValid) { context->clearDepthf(d); } ANGLE_CAPTURE(ClearDepthf, isCallValid, context, d); @@ -475,11 +497,12 @@ EVENT(context, GLClearStencil, "context = %d, s = %d", CID(context), s); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearStencil(context, s)); + bool isCallValid = (context->skipValidation() || + ValidateClearStencil(context, angle::EntryPoint::GLClearStencil, s)); if (isCallValid) { context->clearStencil(s); } ANGLE_CAPTURE(ClearStencil, isCallValid, context, s); @@ -499,11 +522,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColorMask(context, red, green, blue, alpha)); + (context->skipValidation() || + ValidateColorMask(context, angle::EntryPoint::GLColorMask, red, green, blue, alpha)); if (isCallValid) { context->colorMask(red, green, blue, alpha); } ANGLE_CAPTURE(ColorMask, isCallValid, context, red, green, blue, alpha); @@ -522,11 +546,12 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateCompileShader(context, shaderPacked)); + (context->skipValidation() || + ValidateCompileShader(context, angle::EntryPoint::GLCompileShader, shaderPacked)); if (isCallValid) { context->compileShader(shaderPacked); } ANGLE_CAPTURE(CompileShader, isCallValid, context, shaderPacked); @@ -556,14 +581,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexImage2D(context, targetPacked, level, internalformat, width, - height, border, imageSize, data)); + bool isCallValid = (context->skipValidation() || + ValidateCompressedTexImage2D( + context, angle::EntryPoint::GLCompressedTexImage2D, targetPacked, + level, internalformat, width, height, border, imageSize, data)); if (isCallValid) { context->compressedTexImage2D(targetPacked, level, internalformat, width, height, border, imageSize, data); } @@ -596,14 +621,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexSubImage2D(context, targetPacked, level, xoffset, yoffset, width, - height, format, imageSize, data)); + bool isCallValid = (context->skipValidation() || + ValidateCompressedTexSubImage2D( + context, angle::EntryPoint::GLCompressedTexSubImage2D, targetPacked, + level, xoffset, yoffset, width, height, format, imageSize, data)); if (isCallValid) { context->compressedTexSubImage2D(targetPacked, level, xoffset, yoffset, width, height, format, imageSize, data); } @@ -634,13 +659,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexImage2D(context, targetPacked, level, internalformat, x, - y, width, height, border)); + bool isCallValid = + (context->skipValidation() || + ValidateCopyTexImage2D(context, angle::EntryPoint::GLCopyTexImage2D, targetPacked, + level, internalformat, x, y, width, height, border)); if (isCallValid) { context->copyTexImage2D(targetPacked, level, internalformat, x, y, width, height, border); } @@ -671,13 +697,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage2D(context, targetPacked, level, xoffset, - yoffset, x, y, width, height)); + bool isCallValid = + (context->skipValidation() || + ValidateCopyTexSubImage2D(context, angle::EntryPoint::GLCopyTexSubImage2D, + targetPacked, level, xoffset, yoffset, x, y, width, height)); if (isCallValid) { context->copyTexSubImage2D(targetPacked, level, xoffset, yoffset, x, y, width, height); } ANGLE_CAPTURE(CopyTexSubImage2D, isCallValid, context, targetPacked, level, xoffset, @@ -696,11 +723,12 @@ GLuint returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCreateProgram(context)); + bool isCallValid = (context->skipValidation() || + ValidateCreateProgram(context, angle::EntryPoint::GLCreateProgram)); if (isCallValid) { returnValue = context->createProgram(); } else @@ -726,11 +754,13 @@ GLuint returnValue; if (context) { ShaderType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCreateShader(context, typePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateCreateShader(context, angle::EntryPoint::GLCreateShader, typePacked)); if (isCallValid) { returnValue = context->createShader(typePacked); } else @@ -755,11 +785,12 @@ if (context) { CullFaceMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCullFace(context, modePacked)); + bool isCallValid = (context->skipValidation() || + ValidateCullFace(context, angle::EntryPoint::GLCullFace, modePacked)); if (isCallValid) { context->cullFace(modePacked); } ANGLE_CAPTURE(CullFace, isCallValid, context, modePacked); @@ -779,11 +810,12 @@ if (context) { const BufferID *buffersPacked = PackParam(buffers); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteBuffers(context, n, buffersPacked)); + (context->skipValidation() || + ValidateDeleteBuffers(context, angle::EntryPoint::GLDeleteBuffers, n, buffersPacked)); if (isCallValid) { context->deleteBuffers(n, buffersPacked); } ANGLE_CAPTURE(DeleteBuffers, isCallValid, context, n, buffersPacked); @@ -802,12 +834,14 @@ if (context) { const FramebufferID *framebuffersPacked = PackParam(framebuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteFramebuffers(context, n, framebuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteFramebuffers(context, angle::EntryPoint::GLDeleteFramebuffers, n, + framebuffersPacked)); if (isCallValid) { context->deleteFramebuffers(n, framebuffersPacked); } ANGLE_CAPTURE(DeleteFramebuffers, isCallValid, context, n, framebuffersPacked); @@ -826,11 +860,12 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteProgram(context, programPacked)); + (context->skipValidation() || + ValidateDeleteProgram(context, angle::EntryPoint::GLDeleteProgram, programPacked)); if (isCallValid) { context->deleteProgram(programPacked); } ANGLE_CAPTURE(DeleteProgram, isCallValid, context, programPacked); @@ -850,12 +885,14 @@ if (context) { const RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteRenderbuffers(context, n, renderbuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteRenderbuffers(context, angle::EntryPoint::GLDeleteRenderbuffers, n, + renderbuffersPacked)); if (isCallValid) { context->deleteRenderbuffers(n, renderbuffersPacked); } ANGLE_CAPTURE(DeleteRenderbuffers, isCallValid, context, n, renderbuffersPacked); @@ -874,11 +911,12 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteShader(context, shaderPacked)); + (context->skipValidation() || + ValidateDeleteShader(context, angle::EntryPoint::GLDeleteShader, shaderPacked)); if (isCallValid) { context->deleteShader(shaderPacked); } ANGLE_CAPTURE(DeleteShader, isCallValid, context, shaderPacked); @@ -897,12 +935,13 @@ if (context) { const TextureID *texturesPacked = PackParam(textures); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteTextures(context, n, texturesPacked)); + bool isCallValid = (context->skipValidation() || + ValidateDeleteTextures(context, angle::EntryPoint::GLDeleteTextures, n, + texturesPacked)); if (isCallValid) { context->deleteTextures(n, texturesPacked); } ANGLE_CAPTURE(DeleteTextures, isCallValid, context, n, texturesPacked); @@ -920,11 +959,12 @@ GLenumToString(GLenumGroup::DepthFunction, func)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthFunc(context, func)); + bool isCallValid = (context->skipValidation() || + ValidateDepthFunc(context, angle::EntryPoint::GLDepthFunc, func)); if (isCallValid) { context->depthFunc(func); } ANGLE_CAPTURE(DepthFunc, isCallValid, context, func); @@ -941,11 +981,12 @@ EVENT(context, GLDepthMask, "context = %d, flag = %s", CID(context), GLbooleanToString(flag)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthMask(context, flag)); + bool isCallValid = (context->skipValidation() || + ValidateDepthMask(context, angle::EntryPoint::GLDepthMask, flag)); if (isCallValid) { context->depthMask(flag); } ANGLE_CAPTURE(DepthMask, isCallValid, context, flag); @@ -962,11 +1003,12 @@ EVENT(context, GLDepthRangef, "context = %d, n = %f, f = %f", CID(context), n, f); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthRangef(context, n, f)); + bool isCallValid = (context->skipValidation() || + ValidateDepthRangef(context, angle::EntryPoint::GLDepthRangef, n, f)); if (isCallValid) { context->depthRangef(n, f); } ANGLE_CAPTURE(DepthRangef, isCallValid, context, n, f); @@ -987,11 +1029,12 @@ { ShaderProgramID programPacked = PackParam(program); ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDetachShader(context, programPacked, shaderPacked)); + ValidateDetachShader(context, angle::EntryPoint::GLDetachShader, + programPacked, shaderPacked)); if (isCallValid) { context->detachShader(programPacked, shaderPacked); } ANGLE_CAPTURE(DetachShader, isCallValid, context, programPacked, shaderPacked); @@ -1009,11 +1052,12 @@ GLenumToString(GLenumGroup::EnableCap, cap)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDisable(context, cap)); + bool isCallValid = (context->skipValidation() || + ValidateDisable(context, angle::EntryPoint::GLDisable, cap)); if (isCallValid) { context->disable(cap); } ANGLE_CAPTURE(Disable, isCallValid, context, cap); @@ -1030,12 +1074,13 @@ EVENT(context, GLDisableVertexAttribArray, "context = %d, index = %u", CID(context), index); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableVertexAttribArray(context, index)); + bool isCallValid = (context->skipValidation() || + ValidateDisableVertexAttribArray( + context, angle::EntryPoint::GLDisableVertexAttribArray, index)); if (isCallValid) { context->disableVertexAttribArray(index); } ANGLE_CAPTURE(DisableVertexAttribArray, isCallValid, context, index); @@ -1054,12 +1099,13 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawArrays(context, modePacked, first, count)); + bool isCallValid = (context->skipValidation() || + ValidateDrawArrays(context, angle::EntryPoint::GLDrawArrays, modePacked, + first, count)); if (isCallValid) { context->drawArrays(modePacked, first, count); } ANGLE_CAPTURE(DrawArrays, isCallValid, context, modePacked, first, count); @@ -1082,11 +1128,12 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElements(context, modePacked, count, typePacked, indices)); + ValidateDrawElements(context, angle::EntryPoint::GLDrawElements, + modePacked, count, typePacked, indices)); if (isCallValid) { context->drawElements(modePacked, count, typePacked, indices); } ANGLE_CAPTURE(DrawElements, isCallValid, context, modePacked, count, typePacked, indices); @@ -1104,11 +1151,12 @@ GLenumToString(GLenumGroup::EnableCap, cap)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEnable(context, cap)); + bool isCallValid = (context->skipValidation() || + ValidateEnable(context, angle::EntryPoint::GLEnable, cap)); if (isCallValid) { context->enable(cap); } ANGLE_CAPTURE(Enable, isCallValid, context, cap); @@ -1125,12 +1173,13 @@ EVENT(context, GLEnableVertexAttribArray, "context = %d, index = %u", CID(context), index); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableVertexAttribArray(context, index)); + bool isCallValid = (context->skipValidation() || + ValidateEnableVertexAttribArray( + context, angle::EntryPoint::GLEnableVertexAttribArray, index)); if (isCallValid) { context->enableVertexAttribArray(index); } ANGLE_CAPTURE(EnableVertexAttribArray, isCallValid, context, index); @@ -1147,11 +1196,12 @@ EVENT(context, GLFinish, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFinish(context)); + bool isCallValid = + (context->skipValidation() || ValidateFinish(context, angle::EntryPoint::GLFinish)); if (isCallValid) { context->finish(); } ANGLE_CAPTURE(Finish, isCallValid, context); @@ -1168,11 +1218,12 @@ EVENT(context, GLFlush, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFlush(context)); + bool isCallValid = + (context->skipValidation() || ValidateFlush(context, angle::EntryPoint::GLFlush)); if (isCallValid) { context->flush(); } ANGLE_CAPTURE(Flush, isCallValid, context); @@ -1197,14 +1248,14 @@ if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferRenderbuffer(context, target, attachment, renderbuffertarget, - renderbufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateFramebufferRenderbuffer( + context, angle::EntryPoint::GLFramebufferRenderbuffer, target, + attachment, renderbuffertarget, renderbufferPacked)); if (isCallValid) { context->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbufferPacked); } @@ -1234,12 +1285,13 @@ { TextureTarget textargetPacked = PackParam(textarget); TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateFramebufferTexture2D(context, target, attachment, - textargetPacked, texturePacked, level)); + ValidateFramebufferTexture2D( + context, angle::EntryPoint::GLFramebufferTexture2D, target, + attachment, textargetPacked, texturePacked, level)); if (isCallValid) { context->framebufferTexture2D(target, attachment, textargetPacked, texturePacked, level); } @@ -1259,11 +1311,12 @@ GLenumToString(GLenumGroup::FrontFaceDirection, mode)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFrontFace(context, mode)); + bool isCallValid = (context->skipValidation() || + ValidateFrontFace(context, angle::EntryPoint::GLFrontFace, mode)); if (isCallValid) { context->frontFace(mode); } ANGLE_CAPTURE(FrontFace, isCallValid, context, mode); @@ -1283,11 +1336,12 @@ if (context) { BufferID *buffersPacked = PackParam(buffers); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenBuffers(context, n, buffersPacked)); + (context->skipValidation() || + ValidateGenBuffers(context, angle::EntryPoint::GLGenBuffers, n, buffersPacked)); if (isCallValid) { context->genBuffers(n, buffersPacked); } ANGLE_CAPTURE(GenBuffers, isCallValid, context, n, buffersPacked); @@ -1306,12 +1360,13 @@ if (context) { FramebufferID *framebuffersPacked = PackParam(framebuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenFramebuffers(context, n, framebuffersPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenFramebuffers(context, angle::EntryPoint::GLGenFramebuffers, + n, framebuffersPacked)); if (isCallValid) { context->genFramebuffers(n, framebuffersPacked); } ANGLE_CAPTURE(GenFramebuffers, isCallValid, context, n, framebuffersPacked); @@ -1331,11 +1386,12 @@ if (context) { RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGenRenderbuffers(context, n, renderbuffersPacked)); + ValidateGenRenderbuffers(context, angle::EntryPoint::GLGenRenderbuffers, + n, renderbuffersPacked)); if (isCallValid) { context->genRenderbuffers(n, renderbuffersPacked); } ANGLE_CAPTURE(GenRenderbuffers, isCallValid, context, n, renderbuffersPacked); @@ -1355,11 +1411,12 @@ if (context) { TextureID *texturesPacked = PackParam(textures); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenTextures(context, n, texturesPacked)); + (context->skipValidation() || + ValidateGenTextures(context, angle::EntryPoint::GLGenTextures, n, texturesPacked)); if (isCallValid) { context->genTextures(n, texturesPacked); } ANGLE_CAPTURE(GenTextures, isCallValid, context, n, texturesPacked); @@ -1379,11 +1436,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenerateMipmap(context, targetPacked)); + (context->skipValidation() || + ValidateGenerateMipmap(context, angle::EntryPoint::GLGenerateMipmap, targetPacked)); if (isCallValid) { context->generateMipmap(targetPacked); } ANGLE_CAPTURE(GenerateMipmap, isCallValid, context, targetPacked); @@ -1411,13 +1469,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveAttrib(context, programPacked, index, bufSize, length, - size, type, name)); + bool isCallValid = + (context->skipValidation() || + ValidateGetActiveAttrib(context, angle::EntryPoint::GLGetActiveAttrib, programPacked, + index, bufSize, length, size, type, name)); if (isCallValid) { context->getActiveAttrib(programPacked, index, bufSize, length, size, type, name); } ANGLE_CAPTURE(GetActiveAttrib, isCallValid, context, programPacked, index, bufSize, length, @@ -1446,13 +1505,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniform(context, programPacked, index, bufSize, length, - size, type, name)); + bool isCallValid = + (context->skipValidation() || + ValidateGetActiveUniform(context, angle::EntryPoint::GLGetActiveUniform, programPacked, + index, bufSize, length, size, type, name)); if (isCallValid) { context->getActiveUniform(programPacked, index, bufSize, length, size, type, name); } ANGLE_CAPTURE(GetActiveUniform, isCallValid, context, programPacked, index, bufSize, length, @@ -1480,11 +1540,12 @@ ShaderProgramID programPacked = PackParam(program); ShaderProgramID *shadersPacked = PackParam(shaders); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetAttachedShaders(context, programPacked, maxCount, count, shadersPacked)); + ValidateGetAttachedShaders(context, angle::EntryPoint::GLGetAttachedShaders, + programPacked, maxCount, count, shadersPacked)); if (isCallValid) { context->getAttachedShaders(programPacked, maxCount, count, shadersPacked); } ANGLE_CAPTURE(GetAttachedShaders, isCallValid, context, programPacked, maxCount, count, @@ -1506,11 +1567,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetAttribLocation(context, programPacked, name)); + (context->skipValidation() || + ValidateGetAttribLocation(context, angle::EntryPoint::GLGetAttribLocation, + programPacked, name)); if (isCallValid) { returnValue = context->getAttribLocation(programPacked, name); } else @@ -1534,11 +1597,13 @@ CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetBooleanv(context, pname, data)); + bool isCallValid = + (context->skipValidation() || + ValidateGetBooleanv(context, angle::EntryPoint::GLGetBooleanv, pname, data)); if (isCallValid) { context->getBooleanv(pname, data); } ANGLE_CAPTURE(GetBooleanv, isCallValid, context, pname, data); @@ -1559,12 +1624,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteriv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetBufferParameteriv(context, angle::EntryPoint::GLGetBufferParameteriv, + targetPacked, pname, params)); if (isCallValid) { context->getBufferParameteriv(targetPacked, pname, params); } ANGLE_CAPTURE(GetBufferParameteriv, isCallValid, context, targetPacked, pname, params); @@ -1582,11 +1649,12 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetError(context)); + bool isCallValid = + (context->skipValidation() || ValidateGetError(context, angle::EntryPoint::GLGetError)); if (isCallValid) { returnValue = context->getError(); } else @@ -1610,11 +1678,13 @@ GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetFloatv(context, pname, data)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFloatv(context, angle::EntryPoint::GLGetFloatv, pname, data)); if (isCallValid) { context->getFloatv(pname, data); } ANGLE_CAPTURE(GetFloatv, isCallValid, context, pname, data); @@ -1639,13 +1709,14 @@ (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferAttachmentParameteriv( - context, target, attachment, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetFramebufferAttachmentParameteriv( + context, angle::EntryPoint::GLGetFramebufferAttachmentParameteriv, + target, attachment, pname, params)); if (isCallValid) { context->getFramebufferAttachmentParameteriv(target, attachment, pname, params); } ANGLE_CAPTURE(GetFramebufferAttachmentParameteriv, isCallValid, context, target, attachment, @@ -1664,11 +1735,13 @@ CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetIntegerv(context, pname, data)); + bool isCallValid = + (context->skipValidation() || + ValidateGetIntegerv(context, angle::EntryPoint::GLGetIntegerv, pname, data)); if (isCallValid) { context->getIntegerv(pname, data); } ANGLE_CAPTURE(GetIntegerv, isCallValid, context, pname, data); @@ -1694,11 +1767,12 @@ { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramInfoLog(context, programPacked, bufSize, length, infoLog)); + ValidateGetProgramInfoLog(context, angle::EntryPoint::GLGetProgramInfoLog, + programPacked, bufSize, length, infoLog)); if (isCallValid) { context->getProgramInfoLog(programPacked, bufSize, length, infoLog); } ANGLE_CAPTURE(GetProgramInfoLog, isCallValid, context, programPacked, bufSize, length, @@ -1720,11 +1794,12 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramiv(context, programPacked, pname, params)); + ValidateGetProgramiv(context, angle::EntryPoint::GLGetProgramiv, + programPacked, pname, params)); if (isCallValid) { context->getProgramiv(programPacked, pname, params); } ANGLE_CAPTURE(GetProgramiv, isCallValid, context, programPacked, pname, params); @@ -1742,12 +1817,14 @@ GLenumToString(GLenumGroup::RenderbufferParameterName, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetRenderbufferParameteriv(context, target, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetRenderbufferParameteriv( + context, angle::EntryPoint::GLGetRenderbufferParameteriv, target, pname, params)); if (isCallValid) { context->getRenderbufferParameteriv(target, pname, params); } ANGLE_CAPTURE(GetRenderbufferParameteriv, isCallValid, context, target, pname, params); @@ -1771,13 +1848,13 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetShaderInfoLog(context, shaderPacked, bufSize, length, infoLog)); + bool isCallValid = (context->skipValidation() || + ValidateGetShaderInfoLog(context, angle::EntryPoint::GLGetShaderInfoLog, + shaderPacked, bufSize, length, infoLog)); if (isCallValid) { context->getShaderInfoLog(shaderPacked, bufSize, length, infoLog); } ANGLE_CAPTURE(GetShaderInfoLog, isCallValid, context, shaderPacked, bufSize, length, @@ -1804,12 +1881,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetShaderPrecisionFormat(context, shadertype, precisiontype, - range, precision)); + ValidateGetShaderPrecisionFormat( + context, angle::EntryPoint::GLGetShaderPrecisionFormat, shadertype, + precisiontype, range, precision)); if (isCallValid) { context->getShaderPrecisionFormat(shadertype, precisiontype, range, precision); } ANGLE_CAPTURE(GetShaderPrecisionFormat, isCallValid, context, shadertype, precisiontype, @@ -1831,13 +1909,13 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetShaderSource(context, shaderPacked, bufSize, length, source)); + bool isCallValid = (context->skipValidation() || + ValidateGetShaderSource(context, angle::EntryPoint::GLGetShaderSource, + shaderPacked, bufSize, length, source)); if (isCallValid) { context->getShaderSource(shaderPacked, bufSize, length, source); } ANGLE_CAPTURE(GetShaderSource, isCallValid, context, shaderPacked, bufSize, length, source); @@ -1858,11 +1936,12 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetShaderiv(context, shaderPacked, pname, params)); + ValidateGetShaderiv(context, angle::EntryPoint::GLGetShaderiv, + shaderPacked, pname, params)); if (isCallValid) { context->getShaderiv(shaderPacked, pname, params); } ANGLE_CAPTURE(GetShaderiv, isCallValid, context, shaderPacked, pname, params); @@ -1879,11 +1958,12 @@ const GLubyte *returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetString(context, name)); + bool isCallValid = (context->skipValidation() || + ValidateGetString(context, angle::EntryPoint::GLGetString, name)); if (isCallValid) { returnValue = context->getString(name); } else @@ -1910,12 +1990,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterfv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterfv(context, angle::EntryPoint::GLGetTexParameterfv, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterfv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterfv, isCallValid, context, targetPacked, pname, params); @@ -1936,12 +2018,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameteriv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameteriv(context, angle::EntryPoint::GLGetTexParameteriv, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameteriv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameteriv, isCallValid, context, targetPacked, pname, params); @@ -1962,11 +2046,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetUniformLocation(context, programPacked, name)); + (context->skipValidation() || + ValidateGetUniformLocation(context, angle::EntryPoint::GLGetUniformLocation, + programPacked, name)); if (isCallValid) { returnValue = context->getUniformLocation(programPacked, name); } else @@ -1994,11 +2080,12 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformfv(context, programPacked, locationPacked, params)); + ValidateGetUniformfv(context, angle::EntryPoint::GLGetUniformfv, + programPacked, locationPacked, params)); if (isCallValid) { context->getUniformfv(programPacked, locationPacked, params); } ANGLE_CAPTURE(GetUniformfv, isCallValid, context, programPacked, locationPacked, params); @@ -2020,11 +2107,12 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformiv(context, programPacked, locationPacked, params)); + ValidateGetUniformiv(context, angle::EntryPoint::GLGetUniformiv, + programPacked, locationPacked, params)); if (isCallValid) { context->getUniformiv(programPacked, locationPacked, params); } ANGLE_CAPTURE(GetUniformiv, isCallValid, context, programPacked, locationPacked, params); @@ -2043,12 +2131,14 @@ GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)pointer); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribPointerv(context, index, pname, pointer)); + bool isCallValid = + (context->skipValidation() || + ValidateGetVertexAttribPointerv(context, angle::EntryPoint::GLGetVertexAttribPointerv, + index, pname, pointer)); if (isCallValid) { context->getVertexAttribPointerv(index, pname, pointer); } ANGLE_CAPTURE(GetVertexAttribPointerv, isCallValid, context, index, pname, pointer); @@ -2068,11 +2158,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribfv(context, index, pname, params)); + (context->skipValidation() || + ValidateGetVertexAttribfv(context, angle::EntryPoint::GLGetVertexAttribfv, index, + pname, params)); if (isCallValid) { context->getVertexAttribfv(index, pname, params); } ANGLE_CAPTURE(GetVertexAttribfv, isCallValid, context, index, pname, params); @@ -2092,11 +2184,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribiv(context, index, pname, params)); + (context->skipValidation() || + ValidateGetVertexAttribiv(context, angle::EntryPoint::GLGetVertexAttribiv, index, + pname, params)); if (isCallValid) { context->getVertexAttribiv(index, pname, params); } ANGLE_CAPTURE(GetVertexAttribiv, isCallValid, context, index, pname, params); @@ -2115,11 +2209,12 @@ GLenumToString(GLenumGroup::HintMode, mode)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateHint(context, target, mode)); + bool isCallValid = (context->skipValidation() || + ValidateHint(context, angle::EntryPoint::GLHint, target, mode)); if (isCallValid) { context->hint(target, mode); } ANGLE_CAPTURE(Hint, isCallValid, context, target, mode); @@ -2138,11 +2233,12 @@ GLboolean returnValue; if (context) { BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsBuffer(context, bufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsBuffer(context, angle::EntryPoint::GLIsBuffer, bufferPacked)); if (isCallValid) { returnValue = context->isBuffer(bufferPacked); } else @@ -2167,11 +2263,12 @@ GLboolean returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsEnabled(context, cap)); + bool isCallValid = (context->skipValidation() || + ValidateIsEnabled(context, angle::EntryPoint::GLIsEnabled, cap)); if (isCallValid) { returnValue = context->isEnabled(cap); } else @@ -2197,11 +2294,12 @@ if (context) { FramebufferID framebufferPacked = PackParam(framebuffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsFramebuffer(context, framebufferPacked)); + (context->skipValidation() || + ValidateIsFramebuffer(context, angle::EntryPoint::GLIsFramebuffer, framebufferPacked)); if (isCallValid) { returnValue = context->isFramebuffer(framebufferPacked); } else @@ -2226,11 +2324,13 @@ GLboolean returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsProgram(context, programPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateIsProgram(context, angle::EntryPoint::GLIsProgram, programPacked)); if (isCallValid) { returnValue = context->isProgram(programPacked); } else @@ -2255,12 +2355,13 @@ GLboolean returnValue; if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsRenderbuffer(context, renderbufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsRenderbuffer(context, angle::EntryPoint::GLIsRenderbuffer, + renderbufferPacked)); if (isCallValid) { returnValue = context->isRenderbuffer(renderbufferPacked); } else @@ -2285,11 +2386,12 @@ GLboolean returnValue; if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsShader(context, shaderPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsShader(context, angle::EntryPoint::GLIsShader, shaderPacked)); if (isCallValid) { returnValue = context->isShader(shaderPacked); } else @@ -2314,11 +2416,13 @@ GLboolean returnValue; if (context) { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsTexture(context, texturePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateIsTexture(context, angle::EntryPoint::GLIsTexture, texturePacked)); if (isCallValid) { returnValue = context->isTexture(texturePacked); } else @@ -2341,11 +2445,12 @@ EVENT(context, GLLineWidth, "context = %d, width = %f", CID(context), width); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLineWidth(context, width)); + bool isCallValid = (context->skipValidation() || + ValidateLineWidth(context, angle::EntryPoint::GLLineWidth, width)); if (isCallValid) { context->lineWidth(width); } ANGLE_CAPTURE(LineWidth, isCallValid, context, width); @@ -2364,11 +2469,12 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateLinkProgram(context, programPacked)); + (context->skipValidation() || + ValidateLinkProgram(context, angle::EntryPoint::GLLinkProgram, programPacked)); if (isCallValid) { context->linkProgram(programPacked); } ANGLE_CAPTURE(LinkProgram, isCallValid, context, programPacked); @@ -2387,11 +2493,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidatePixelStorei(context, pname, param)); + (context->skipValidation() || + ValidatePixelStorei(context, angle::EntryPoint::GLPixelStorei, pname, param)); if (isCallValid) { context->pixelStorei(pname, param); } ANGLE_CAPTURE(PixelStorei, isCallValid, context, pname, param); @@ -2410,11 +2517,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidatePolygonOffset(context, factor, units)); + (context->skipValidation() || + ValidatePolygonOffset(context, angle::EntryPoint::GLPolygonOffset, factor, units)); if (isCallValid) { context->polygonOffset(factor, units); } ANGLE_CAPTURE(PolygonOffset, isCallValid, context, factor, units); @@ -2442,11 +2550,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateReadPixels(context, x, y, width, height, format, type, pixels)); + ValidateReadPixels(context, angle::EntryPoint::GLReadPixels, x, y, + width, height, format, type, pixels)); if (isCallValid) { context->readPixels(x, y, width, height, format, type, pixels); } ANGLE_CAPTURE(ReadPixels, isCallValid, context, x, y, width, height, format, type, pixels); @@ -2463,11 +2572,13 @@ EVENT(context, GLReleaseShaderCompiler, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateReleaseShaderCompiler(context)); + bool isCallValid = + (context->skipValidation() || + ValidateReleaseShaderCompiler(context, angle::EntryPoint::GLReleaseShaderCompiler)); if (isCallValid) { context->releaseShaderCompiler(); } ANGLE_CAPTURE(ReleaseShaderCompiler, isCallValid, context); @@ -2492,11 +2603,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorage(context, target, internalformat, width, height)); + ValidateRenderbufferStorage(context, angle::EntryPoint::GLRenderbufferStorage, target, + internalformat, width, height)); if (isCallValid) { context->renderbufferStorage(target, internalformat, width, height); } ANGLE_CAPTURE(RenderbufferStorage, isCallValid, context, target, internalformat, width, @@ -2516,11 +2628,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateSampleCoverage(context, value, invert)); + (context->skipValidation() || + ValidateSampleCoverage(context, angle::EntryPoint::GLSampleCoverage, value, invert)); if (isCallValid) { context->sampleCoverage(value, invert); } ANGLE_CAPTURE(SampleCoverage, isCallValid, context, value, invert); @@ -2539,11 +2652,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateScissor(context, x, y, width, height)); + (context->skipValidation() || + ValidateScissor(context, angle::EntryPoint::GLScissor, x, y, width, height)); if (isCallValid) { context->scissor(x, y, width, height); } ANGLE_CAPTURE(Scissor, isCallValid, context, x, y, width, height); @@ -2569,13 +2683,13 @@ if (context) { const ShaderProgramID *shadersPacked = PackParam(shaders); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateShaderBinary(context, count, shadersPacked, binaryformat, binary, length)); + bool isCallValid = (context->skipValidation() || + ValidateShaderBinary(context, angle::EntryPoint::GLShaderBinary, count, + shadersPacked, binaryformat, binary, length)); if (isCallValid) { context->shaderBinary(count, shadersPacked, binaryformat, binary, length); } ANGLE_CAPTURE(ShaderBinary, isCallValid, context, count, shadersPacked, binaryformat, @@ -2601,11 +2715,12 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateShaderSource(context, shaderPacked, count, string, length)); + ValidateShaderSource(context, angle::EntryPoint::GLShaderSource, + shaderPacked, count, string, length)); if (isCallValid) { context->shaderSource(shaderPacked, count, string, length); } ANGLE_CAPTURE(ShaderSource, isCallValid, context, shaderPacked, count, string, length); @@ -2624,11 +2739,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateStencilFunc(context, func, ref, mask)); + (context->skipValidation() || + ValidateStencilFunc(context, angle::EntryPoint::GLStencilFunc, func, ref, mask)); if (isCallValid) { context->stencilFunc(func, ref, mask); } ANGLE_CAPTURE(StencilFunc, isCallValid, context, func, ref, mask); @@ -2647,12 +2763,14 @@ GLenumToString(GLenumGroup::StencilFunction, func), ref, mask); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateStencilFuncSeparate(context, face, func, ref, mask)); + bool isCallValid = + (context->skipValidation() || + ValidateStencilFuncSeparate(context, angle::EntryPoint::GLStencilFuncSeparate, face, + func, ref, mask)); if (isCallValid) { context->stencilFuncSeparate(face, func, ref, mask); } ANGLE_CAPTURE(StencilFuncSeparate, isCallValid, context, face, func, ref, mask); @@ -2669,11 +2787,12 @@ EVENT(context, GLStencilMask, "context = %d, mask = %u", CID(context), mask); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateStencilMask(context, mask)); + bool isCallValid = (context->skipValidation() || + ValidateStencilMask(context, angle::EntryPoint::GLStencilMask, mask)); if (isCallValid) { context->stencilMask(mask); } ANGLE_CAPTURE(StencilMask, isCallValid, context, mask); @@ -2691,12 +2810,13 @@ GLenumToString(GLenumGroup::StencilFaceDirection, face), mask); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateStencilMaskSeparate(context, face, mask)); + bool isCallValid = (context->skipValidation() || + ValidateStencilMaskSeparate( + context, angle::EntryPoint::GLStencilMaskSeparate, face, mask)); if (isCallValid) { context->stencilMaskSeparate(face, mask); } ANGLE_CAPTURE(StencilMaskSeparate, isCallValid, context, face, mask); @@ -2717,11 +2837,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateStencilOp(context, fail, zfail, zpass)); + (context->skipValidation() || + ValidateStencilOp(context, angle::EntryPoint::GLStencilOp, fail, zfail, zpass)); if (isCallValid) { context->stencilOp(fail, zfail, zpass); } ANGLE_CAPTURE(StencilOp, isCallValid, context, fail, zfail, zpass); @@ -2743,12 +2864,14 @@ GLenumToString(GLenumGroup::StencilOp, dppass)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateStencilOpSeparate(context, face, sfail, dpfail, dppass)); + bool isCallValid = + (context->skipValidation() || + ValidateStencilOpSeparate(context, angle::EntryPoint::GLStencilOpSeparate, face, sfail, + dpfail, dppass)); if (isCallValid) { context->stencilOpSeparate(face, sfail, dpfail, dppass); } ANGLE_CAPTURE(StencilOpSeparate, isCallValid, context, face, sfail, dpfail, dppass); @@ -2779,13 +2902,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexImage2D(context, targetPacked, level, internalformat, width, - height, border, format, type, pixels)); + bool isCallValid = + (context->skipValidation() || + ValidateTexImage2D(context, angle::EntryPoint::GLTexImage2D, targetPacked, level, + internalformat, width, height, border, format, type, pixels)); if (isCallValid) { context->texImage2D(targetPacked, level, internalformat, width, height, border, format, type, pixels); } @@ -2808,11 +2932,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterf(context, targetPacked, pname, param)); + ValidateTexParameterf(context, angle::EntryPoint::GLTexParameterf, + targetPacked, pname, param)); if (isCallValid) { context->texParameterf(targetPacked, pname, param); } ANGLE_CAPTURE(TexParameterf, isCallValid, context, targetPacked, pname, param); @@ -2834,11 +2959,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterfv(context, targetPacked, pname, params)); + ValidateTexParameterfv(context, angle::EntryPoint::GLTexParameterfv, + targetPacked, pname, params)); if (isCallValid) { context->texParameterfv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterfv, isCallValid, context, targetPacked, pname, params); @@ -2859,11 +2985,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameteri(context, targetPacked, pname, param)); + ValidateTexParameteri(context, angle::EntryPoint::GLTexParameteri, + targetPacked, pname, param)); if (isCallValid) { context->texParameteri(targetPacked, pname, param); } ANGLE_CAPTURE(TexParameteri, isCallValid, context, targetPacked, pname, param); @@ -2885,11 +3012,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameteriv(context, targetPacked, pname, params)); + ValidateTexParameteriv(context, angle::EntryPoint::GLTexParameteriv, + targetPacked, pname, params)); if (isCallValid) { context->texParameteriv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameteriv, isCallValid, context, targetPacked, pname, params); @@ -2920,13 +3048,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexSubImage2D(context, targetPacked, level, xoffset, yoffset, - width, height, format, type, pixels)); + bool isCallValid = + (context->skipValidation() || + ValidateTexSubImage2D(context, angle::EntryPoint::GLTexSubImage2D, targetPacked, level, + xoffset, yoffset, width, height, format, type, pixels)); if (isCallValid) { context->texSubImage2D(targetPacked, level, xoffset, yoffset, width, height, format, type, pixels); } @@ -2947,11 +3076,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform1f(context, locationPacked, v0)); + (context->skipValidation() || + ValidateUniform1f(context, angle::EntryPoint::GLUniform1f, locationPacked, v0)); if (isCallValid) { context->uniform1f(locationPacked, v0); } ANGLE_CAPTURE(Uniform1f, isCallValid, context, locationPacked, v0); @@ -2972,11 +3102,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform1fv(context, locationPacked, count, value)); + ValidateUniform1fv(context, angle::EntryPoint::GLUniform1fv, + locationPacked, count, value)); if (isCallValid) { context->uniform1fv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform1fv, isCallValid, context, locationPacked, count, value); @@ -2995,11 +3126,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform1i(context, locationPacked, v0)); + (context->skipValidation() || + ValidateUniform1i(context, angle::EntryPoint::GLUniform1i, locationPacked, v0)); if (isCallValid) { context->uniform1i(locationPacked, v0); } ANGLE_CAPTURE(Uniform1i, isCallValid, context, locationPacked, v0); @@ -3020,11 +3152,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform1iv(context, locationPacked, count, value)); + ValidateUniform1iv(context, angle::EntryPoint::GLUniform1iv, + locationPacked, count, value)); if (isCallValid) { context->uniform1iv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform1iv, isCallValid, context, locationPacked, count, value); @@ -3044,11 +3177,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform2f(context, locationPacked, v0, v1)); + (context->skipValidation() || + ValidateUniform2f(context, angle::EntryPoint::GLUniform2f, locationPacked, v0, v1)); if (isCallValid) { context->uniform2f(locationPacked, v0, v1); } ANGLE_CAPTURE(Uniform2f, isCallValid, context, locationPacked, v0, v1); @@ -3069,11 +3203,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform2fv(context, locationPacked, count, value)); + ValidateUniform2fv(context, angle::EntryPoint::GLUniform2fv, + locationPacked, count, value)); if (isCallValid) { context->uniform2fv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform2fv, isCallValid, context, locationPacked, count, value); @@ -3093,11 +3228,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform2i(context, locationPacked, v0, v1)); + (context->skipValidation() || + ValidateUniform2i(context, angle::EntryPoint::GLUniform2i, locationPacked, v0, v1)); if (isCallValid) { context->uniform2i(locationPacked, v0, v1); } ANGLE_CAPTURE(Uniform2i, isCallValid, context, locationPacked, v0, v1); @@ -3118,11 +3254,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform2iv(context, locationPacked, count, value)); + ValidateUniform2iv(context, angle::EntryPoint::GLUniform2iv, + locationPacked, count, value)); if (isCallValid) { context->uniform2iv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform2iv, isCallValid, context, locationPacked, count, value); @@ -3142,11 +3279,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform3f(context, locationPacked, v0, v1, v2)); + (context->skipValidation() || ValidateUniform3f(context, angle::EntryPoint::GLUniform3f, + locationPacked, v0, v1, v2)); if (isCallValid) { context->uniform3f(locationPacked, v0, v1, v2); } ANGLE_CAPTURE(Uniform3f, isCallValid, context, locationPacked, v0, v1, v2); @@ -3167,11 +3305,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform3fv(context, locationPacked, count, value)); + ValidateUniform3fv(context, angle::EntryPoint::GLUniform3fv, + locationPacked, count, value)); if (isCallValid) { context->uniform3fv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform3fv, isCallValid, context, locationPacked, count, value); @@ -3191,11 +3330,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform3i(context, locationPacked, v0, v1, v2)); + (context->skipValidation() || ValidateUniform3i(context, angle::EntryPoint::GLUniform3i, + locationPacked, v0, v1, v2)); if (isCallValid) { context->uniform3i(locationPacked, v0, v1, v2); } ANGLE_CAPTURE(Uniform3i, isCallValid, context, locationPacked, v0, v1, v2); @@ -3216,11 +3356,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform3iv(context, locationPacked, count, value)); + ValidateUniform3iv(context, angle::EntryPoint::GLUniform3iv, + locationPacked, count, value)); if (isCallValid) { context->uniform3iv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform3iv, isCallValid, context, locationPacked, count, value); @@ -3239,12 +3380,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4f(context, locationPacked, v0, v1, v2, v3)); + bool isCallValid = + (context->skipValidation() || ValidateUniform4f(context, angle::EntryPoint::GLUniform4f, + locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->uniform4f(locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(Uniform4f, isCallValid, context, locationPacked, v0, v1, v2, v3); @@ -3265,11 +3407,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform4fv(context, locationPacked, count, value)); + ValidateUniform4fv(context, angle::EntryPoint::GLUniform4fv, + locationPacked, count, value)); if (isCallValid) { context->uniform4fv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform4fv, isCallValid, context, locationPacked, count, value); @@ -3288,12 +3431,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4i(context, locationPacked, v0, v1, v2, v3)); + bool isCallValid = + (context->skipValidation() || ValidateUniform4i(context, angle::EntryPoint::GLUniform4i, + locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->uniform4i(locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(Uniform4i, isCallValid, context, locationPacked, v0, v1, v2, v3); @@ -3314,11 +3458,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform4iv(context, locationPacked, count, value)); + ValidateUniform4iv(context, angle::EntryPoint::GLUniform4iv, + locationPacked, count, value)); if (isCallValid) { context->uniform4iv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform4iv, isCallValid, context, locationPacked, count, value); @@ -3341,13 +3486,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix2fv(context, locationPacked, count, transpose, value)); + bool isCallValid = (context->skipValidation() || + ValidateUniformMatrix2fv(context, angle::EntryPoint::GLUniformMatrix2fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix2fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix2fv, isCallValid, context, locationPacked, count, transpose, @@ -3371,13 +3516,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix3fv(context, locationPacked, count, transpose, value)); + bool isCallValid = (context->skipValidation() || + ValidateUniformMatrix3fv(context, angle::EntryPoint::GLUniformMatrix3fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix3fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix3fv, isCallValid, context, locationPacked, count, transpose, @@ -3401,13 +3546,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix4fv(context, locationPacked, count, transpose, value)); + bool isCallValid = (context->skipValidation() || + ValidateUniformMatrix4fv(context, angle::EntryPoint::GLUniformMatrix4fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix4fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix4fv, isCallValid, context, locationPacked, count, transpose, @@ -3427,11 +3572,12 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUseProgram(context, programPacked)); + (context->skipValidation() || + ValidateUseProgram(context, angle::EntryPoint::GLUseProgram, programPacked)); if (isCallValid) { context->useProgram(programPacked); } ANGLE_CAPTURE(UseProgram, isCallValid, context, programPacked); @@ -3450,11 +3596,12 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateValidateProgram(context, programPacked)); + (context->skipValidation() || + ValidateValidateProgram(context, angle::EntryPoint::GLValidateProgram, programPacked)); if (isCallValid) { context->validateProgram(programPacked); } ANGLE_CAPTURE(ValidateProgram, isCallValid, context, programPacked); @@ -3471,11 +3618,13 @@ EVENT(context, GLVertexAttrib1f, "context = %d, index = %u, x = %f", CID(context), index, x); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateVertexAttrib1f(context, index, x)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexAttrib1f(context, angle::EntryPoint::GLVertexAttrib1f, index, x)); if (isCallValid) { context->vertexAttrib1f(index, x); } ANGLE_CAPTURE(VertexAttrib1f, isCallValid, context, index, x); @@ -3494,11 +3643,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib1fv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttrib1fv(context, angle::EntryPoint::GLVertexAttrib1fv, index, v)); if (isCallValid) { context->vertexAttrib1fv(index, v); } ANGLE_CAPTURE(VertexAttrib1fv, isCallValid, context, index, v); @@ -3517,11 +3667,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib2f(context, index, x, y)); + (context->skipValidation() || + ValidateVertexAttrib2f(context, angle::EntryPoint::GLVertexAttrib2f, index, x, y)); if (isCallValid) { context->vertexAttrib2f(index, x, y); } ANGLE_CAPTURE(VertexAttrib2f, isCallValid, context, index, x, y); @@ -3540,11 +3691,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib2fv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttrib2fv(context, angle::EntryPoint::GLVertexAttrib2fv, index, v)); if (isCallValid) { context->vertexAttrib2fv(index, v); } ANGLE_CAPTURE(VertexAttrib2fv, isCallValid, context, index, v); @@ -3563,11 +3715,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib3f(context, index, x, y, z)); + (context->skipValidation() || + ValidateVertexAttrib3f(context, angle::EntryPoint::GLVertexAttrib3f, index, x, y, z)); if (isCallValid) { context->vertexAttrib3f(index, x, y, z); } ANGLE_CAPTURE(VertexAttrib3f, isCallValid, context, index, x, y, z); @@ -3586,11 +3739,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib3fv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttrib3fv(context, angle::EntryPoint::GLVertexAttrib3fv, index, v)); if (isCallValid) { context->vertexAttrib3fv(index, v); } ANGLE_CAPTURE(VertexAttrib3fv, isCallValid, context, index, v); @@ -3608,12 +3762,13 @@ CID(context), index, x, y, z, w); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib4f(context, index, x, y, z, w)); + bool isCallValid = (context->skipValidation() || + ValidateVertexAttrib4f(context, angle::EntryPoint::GLVertexAttrib4f, + index, x, y, z, w)); if (isCallValid) { context->vertexAttrib4f(index, x, y, z, w); } ANGLE_CAPTURE(VertexAttrib4f, isCallValid, context, index, x, y, z, w); @@ -3632,11 +3787,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib4fv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttrib4fv(context, angle::EntryPoint::GLVertexAttrib4fv, index, v)); if (isCallValid) { context->vertexAttrib4fv(index, v); } ANGLE_CAPTURE(VertexAttrib4fv, isCallValid, context, index, v); @@ -3663,13 +3819,14 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribPointer(context, index, size, typePacked, - normalized, stride, pointer)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexAttribPointer(context, angle::EntryPoint::GLVertexAttribPointer, index, + size, typePacked, normalized, stride, pointer)); if (isCallValid) { context->vertexAttribPointer(index, size, typePacked, normalized, stride, pointer); } ANGLE_CAPTURE(VertexAttribPointer, isCallValid, context, index, size, typePacked, @@ -3689,11 +3846,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateViewport(context, x, y, width, height)); + (context->skipValidation() || + ValidateViewport(context, angle::EntryPoint::GLViewport, x, y, width, height)); if (isCallValid) { context->viewport(x, y, width, height); } ANGLE_CAPTURE(Viewport, isCallValid, context, x, y, width, height); diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp @@ -32,11 +32,12 @@ { QueryType targetPacked = PackParam(target); QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBeginQuery(context, targetPacked, idPacked)); + (context->skipValidation() || + ValidateBeginQuery(context, angle::EntryPoint::GLBeginQuery, targetPacked, idPacked)); if (isCallValid) { context->beginQuery(targetPacked, idPacked); } ANGLE_CAPTURE(BeginQuery, isCallValid, context, targetPacked, idPacked); @@ -55,12 +56,14 @@ if (context) { PrimitiveMode primitiveModePacked = PackParam(primitiveMode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBeginTransformFeedback(context, primitiveModePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateBeginTransformFeedback(context, angle::EntryPoint::GLBeginTransformFeedback, + primitiveModePacked)); if (isCallValid) { context->beginTransformFeedback(primitiveModePacked); } ANGLE_CAPTURE(BeginTransformFeedback, isCallValid, context, primitiveModePacked); @@ -81,11 +84,12 @@ { BufferBinding targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBindBufferBase(context, targetPacked, index, bufferPacked)); + ValidateBindBufferBase(context, angle::EntryPoint::GLBindBufferBase, + targetPacked, index, bufferPacked)); if (isCallValid) { context->bindBufferBase(targetPacked, index, bufferPacked); } ANGLE_CAPTURE(BindBufferBase, isCallValid, context, targetPacked, index, bufferPacked); @@ -110,11 +114,12 @@ BufferBinding targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBindBufferRange(context, targetPacked, index, bufferPacked, offset, size)); + ValidateBindBufferRange(context, angle::EntryPoint::GLBindBufferRange, targetPacked, + index, bufferPacked, offset, size)); if (isCallValid) { context->bindBufferRange(targetPacked, index, bufferPacked, offset, size); } ANGLE_CAPTURE(BindBufferRange, isCallValid, context, targetPacked, index, bufferPacked, @@ -135,11 +140,12 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBindSampler(context, unit, samplerPacked)); + (context->skipValidation() || + ValidateBindSampler(context, angle::EntryPoint::GLBindSampler, unit, samplerPacked)); if (isCallValid) { context->bindSampler(unit, samplerPacked); } ANGLE_CAPTURE(BindSampler, isCallValid, context, unit, samplerPacked); @@ -159,11 +165,13 @@ if (context) { TransformFeedbackID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBindTransformFeedback(context, target, idPacked)); + (context->skipValidation() || + ValidateBindTransformFeedback(context, angle::EntryPoint::GLBindTransformFeedback, + target, idPacked)); if (isCallValid) { context->bindTransformFeedback(target, idPacked); } ANGLE_CAPTURE(BindTransformFeedback, isCallValid, context, target, idPacked); @@ -182,11 +190,12 @@ if (context) { VertexArrayID arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBindVertexArray(context, arrayPacked)); + (context->skipValidation() || + ValidateBindVertexArray(context, angle::EntryPoint::GLBindVertexArray, arrayPacked)); if (isCallValid) { context->bindVertexArray(arrayPacked); } ANGLE_CAPTURE(BindVertexArray, isCallValid, context, arrayPacked); @@ -217,13 +226,14 @@ GLenumToString(GLenumGroup::BlitFramebufferFilter, filter)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlitFramebuffer(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); + bool isCallValid = + (context->skipValidation() || + ValidateBlitFramebuffer(context, angle::EntryPoint::GLBlitFramebuffer, srcX0, srcY0, + srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)); if (isCallValid) { context->blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } @@ -245,11 +255,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateClearBufferfi(context, buffer, drawbuffer, depth, stencil)); + ValidateClearBufferfi(context, angle::EntryPoint::GLClearBufferfi, + buffer, drawbuffer, depth, stencil)); if (isCallValid) { context->clearBufferfi(buffer, drawbuffer, depth, stencil); } ANGLE_CAPTURE(ClearBufferfi, isCallValid, context, buffer, drawbuffer, depth, stencil); @@ -269,11 +280,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateClearBufferfv(context, buffer, drawbuffer, value)); + ValidateClearBufferfv(context, angle::EntryPoint::GLClearBufferfv, + buffer, drawbuffer, value)); if (isCallValid) { context->clearBufferfv(buffer, drawbuffer, value); } ANGLE_CAPTURE(ClearBufferfv, isCallValid, context, buffer, drawbuffer, value); @@ -293,11 +305,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateClearBufferiv(context, buffer, drawbuffer, value)); + ValidateClearBufferiv(context, angle::EntryPoint::GLClearBufferiv, + buffer, drawbuffer, value)); if (isCallValid) { context->clearBufferiv(buffer, drawbuffer, value); } ANGLE_CAPTURE(ClearBufferiv, isCallValid, context, buffer, drawbuffer, value); @@ -317,11 +330,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateClearBufferuiv(context, buffer, drawbuffer, value)); + ValidateClearBufferuiv(context, angle::EntryPoint::GLClearBufferuiv, + buffer, drawbuffer, value)); if (isCallValid) { context->clearBufferuiv(buffer, drawbuffer, value); } ANGLE_CAPTURE(ClearBufferuiv, isCallValid, context, buffer, drawbuffer, value); @@ -342,12 +356,13 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClientWaitSync(context, sync, flags, timeout)); + bool isCallValid = (context->skipValidation() || + ValidateClientWaitSync(context, angle::EntryPoint::GLClientWaitSync, + sync, flags, timeout)); if (isCallValid) { returnValue = context->clientWaitSync(sync, flags, timeout); } else @@ -386,12 +401,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCompressedTexImage3D(context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, data)); + ValidateCompressedTexImage3D(context, angle::EntryPoint::GLCompressedTexImage3D, + targetPacked, level, internalformat, width, height, depth, + border, imageSize, data)); if (isCallValid) { context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth, border, imageSize, data); } @@ -426,14 +442,15 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCompressedTexSubImage3D(context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, - format, imageSize, data)); + bool isCallValid = + (context->skipValidation() || + ValidateCompressedTexSubImage3D(context, angle::EntryPoint::GLCompressedTexSubImage3D, + targetPacked, level, xoffset, yoffset, zoffset, width, + height, depth, format, imageSize, data)); if (isCallValid) { context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } @@ -465,12 +482,13 @@ { BufferBinding readTargetPacked = PackParam(readTarget); BufferBinding writeTargetPacked = PackParam(writeTarget); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked, - readOffset, writeOffset, size)); + ValidateCopyBufferSubData( + context, angle::EntryPoint::GLCopyBufferSubData, readTargetPacked, + writeTargetPacked, readOffset, writeOffset, size)); if (isCallValid) { context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset, size); } @@ -503,12 +521,13 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage3D(context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height)); + ValidateCopyTexSubImage3D( + context, angle::EntryPoint::GLCopyTexSubImage3D, targetPacked, + level, xoffset, yoffset, zoffset, x, y, width, height)); if (isCallValid) { context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width, height); } @@ -530,11 +549,12 @@ if (context) { const QueryID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteQueries(context, n, idsPacked)); + (context->skipValidation() || + ValidateDeleteQueries(context, angle::EntryPoint::GLDeleteQueries, n, idsPacked)); if (isCallValid) { context->deleteQueries(n, idsPacked); } ANGLE_CAPTURE(DeleteQueries, isCallValid, context, n, idsPacked); @@ -553,12 +573,13 @@ if (context) { const SamplerID *samplersPacked = PackParam(samplers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteSamplers(context, count, samplersPacked)); + bool isCallValid = (context->skipValidation() || + ValidateDeleteSamplers(context, angle::EntryPoint::GLDeleteSamplers, + count, samplersPacked)); if (isCallValid) { context->deleteSamplers(count, samplersPacked); } ANGLE_CAPTURE(DeleteSamplers, isCallValid, context, count, samplersPacked); @@ -576,11 +597,12 @@ (uintptr_t)sync); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDeleteSync(context, sync)); + bool isCallValid = (context->skipValidation() || + ValidateDeleteSync(context, angle::EntryPoint::GLDeleteSync, sync)); if (isCallValid) { context->deleteSync(sync); } ANGLE_CAPTURE(DeleteSync, isCallValid, context, sync); @@ -600,11 +622,13 @@ if (context) { const TransformFeedbackID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteTransformFeedbacks(context, n, idsPacked)); + (context->skipValidation() || + ValidateDeleteTransformFeedbacks( + context, angle::EntryPoint::GLDeleteTransformFeedbacks, n, idsPacked)); if (isCallValid) { context->deleteTransformFeedbacks(n, idsPacked); } ANGLE_CAPTURE(DeleteTransformFeedbacks, isCallValid, context, n, idsPacked); @@ -623,12 +647,13 @@ if (context) { const VertexArrayID *arraysPacked = PackParam(arrays); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteVertexArrays(context, n, arraysPacked)); + bool isCallValid = (context->skipValidation() || + ValidateDeleteVertexArrays( + context, angle::EntryPoint::GLDeleteVertexArrays, n, arraysPacked)); if (isCallValid) { context->deleteVertexArrays(n, arraysPacked); } ANGLE_CAPTURE(DeleteVertexArrays, isCallValid, context, n, arraysPacked); @@ -653,11 +678,12 @@ { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawArraysInstanced(context, modePacked, first, count, instancecount)); + ValidateDrawArraysInstanced(context, angle::EntryPoint::GLDrawArraysInstanced, + modePacked, first, count, instancecount)); if (isCallValid) { context->drawArraysInstanced(modePacked, first, count, instancecount); } ANGLE_CAPTURE(DrawArraysInstanced, isCallValid, context, modePacked, first, count, @@ -676,11 +702,13 @@ (uintptr_t)bufs); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawBuffers(context, n, bufs)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawBuffers(context, angle::EntryPoint::GLDrawBuffers, n, bufs)); if (isCallValid) { context->drawBuffers(n, bufs); } ANGLE_CAPTURE(DrawBuffers, isCallValid, context, n, bufs); @@ -707,13 +735,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstanced(context, modePacked, count, typePacked, - indices, instancecount)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawElementsInstanced(context, angle::EntryPoint::GLDrawElementsInstanced, + modePacked, count, typePacked, indices, instancecount)); if (isCallValid) { context->drawElementsInstanced(modePacked, count, typePacked, indices, instancecount); } ANGLE_CAPTURE(DrawElementsInstanced, isCallValid, context, modePacked, count, typePacked, @@ -743,12 +772,13 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDrawRangeElements(context, modePacked, start, end, - count, typePacked, indices)); + (context->skipValidation() || + ValidateDrawRangeElements(context, angle::EntryPoint::GLDrawRangeElements, modePacked, + start, end, count, typePacked, indices)); if (isCallValid) { context->drawRangeElements(modePacked, start, end, count, typePacked, indices); } ANGLE_CAPTURE(DrawRangeElements, isCallValid, context, modePacked, start, end, count, @@ -768,11 +798,12 @@ if (context) { QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEndQuery(context, targetPacked)); + bool isCallValid = (context->skipValidation() || + ValidateEndQuery(context, angle::EntryPoint::GLEndQuery, targetPacked)); if (isCallValid) { context->endQuery(targetPacked); } ANGLE_CAPTURE(EndQuery, isCallValid, context, targetPacked); @@ -789,11 +820,13 @@ EVENT(context, GLEndTransformFeedback, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEndTransformFeedback(context)); + bool isCallValid = + (context->skipValidation() || + ValidateEndTransformFeedback(context, angle::EntryPoint::GLEndTransformFeedback)); if (isCallValid) { context->endTransformFeedback(); } ANGLE_CAPTURE(EndTransformFeedback, isCallValid, context); @@ -814,11 +847,12 @@ GLsync returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateFenceSync(context, condition, flags)); + (context->skipValidation() || + ValidateFenceSync(context, angle::EntryPoint::GLFenceSync, condition, flags)); if (isCallValid) { returnValue = context->fenceSync(condition, flags); } else @@ -845,12 +879,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFlushMappedBufferRange(context, targetPacked, offset, length)); + bool isCallValid = + (context->skipValidation() || + ValidateFlushMappedBufferRange(context, angle::EntryPoint::GLFlushMappedBufferRange, + targetPacked, offset, length)); if (isCallValid) { context->flushMappedBufferRange(targetPacked, offset, length); } ANGLE_CAPTURE(FlushMappedBufferRange, isCallValid, context, targetPacked, offset, length); @@ -875,13 +911,14 @@ if (context) { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferTextureLayer(context, target, attachment, - texturePacked, level, layer)); + bool isCallValid = + (context->skipValidation() || + ValidateFramebufferTextureLayer(context, angle::EntryPoint::GLFramebufferTextureLayer, + target, attachment, texturePacked, level, layer)); if (isCallValid) { context->framebufferTextureLayer(target, attachment, texturePacked, level, layer); } ANGLE_CAPTURE(FramebufferTextureLayer, isCallValid, context, target, attachment, @@ -901,11 +938,13 @@ if (context) { QueryID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGenQueries(context, n, idsPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateGenQueries(context, angle::EntryPoint::GLGenQueries, n, idsPacked)); if (isCallValid) { context->genQueries(n, idsPacked); } ANGLE_CAPTURE(GenQueries, isCallValid, context, n, idsPacked); @@ -925,11 +964,12 @@ if (context) { SamplerID *samplersPacked = PackParam(samplers); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenSamplers(context, count, samplersPacked)); + (context->skipValidation() || + ValidateGenSamplers(context, angle::EntryPoint::GLGenSamplers, count, samplersPacked)); if (isCallValid) { context->genSamplers(count, samplersPacked); } ANGLE_CAPTURE(GenSamplers, isCallValid, context, count, samplersPacked); @@ -948,12 +988,13 @@ if (context) { TransformFeedbackID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenTransformFeedbacks(context, n, idsPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenTransformFeedbacks( + context, angle::EntryPoint::GLGenTransformFeedbacks, n, idsPacked)); if (isCallValid) { context->genTransformFeedbacks(n, idsPacked); } ANGLE_CAPTURE(GenTransformFeedbacks, isCallValid, context, n, idsPacked); @@ -972,12 +1013,13 @@ if (context) { VertexArrayID *arraysPacked = PackParam(arrays); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenVertexArrays(context, n, arraysPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenVertexArrays(context, angle::EntryPoint::GLGenVertexArrays, + n, arraysPacked)); if (isCallValid) { context->genVertexArrays(n, arraysPacked); } ANGLE_CAPTURE(GenVertexArrays, isCallValid, context, n, arraysPacked); @@ -1007,12 +1049,13 @@ ShaderProgramID programPacked = PackParam(program); UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniformBlockName(context, programPacked, uniformBlockIndexPacked, - bufSize, length, uniformBlockName)); + ValidateGetActiveUniformBlockName( + context, angle::EntryPoint::GLGetActiveUniformBlockName, programPacked, + uniformBlockIndexPacked, bufSize, length, uniformBlockName)); if (isCallValid) { context->getActiveUniformBlockName(programPacked, uniformBlockIndexPacked, bufSize, length, uniformBlockName); } @@ -1042,11 +1085,12 @@ ShaderProgramID programPacked = PackParam(program); UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetActiveUniformBlockiv( - context, programPacked, uniformBlockIndexPacked, pname, params)); + context, angle::EntryPoint::GLGetActiveUniformBlockiv, + programPacked, uniformBlockIndexPacked, pname, params)); if (isCallValid) { context->getActiveUniformBlockiv(programPacked, uniformBlockIndexPacked, pname, params); } ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, programPacked, @@ -1074,12 +1118,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniformsiv(context, programPacked, uniformCount, - uniformIndices, pname, params)); + ValidateGetActiveUniformsiv( + context, angle::EntryPoint::GLGetActiveUniformsiv, programPacked, + uniformCount, uniformIndices, pname, params)); if (isCallValid) { context->getActiveUniformsiv(programPacked, uniformCount, uniformIndices, pname, params); } @@ -1102,12 +1147,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteri64v(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetBufferParameteri64v(context, angle::EntryPoint::GLGetBufferParameteri64v, + targetPacked, pname, params)); if (isCallValid) { context->getBufferParameteri64v(targetPacked, pname, params); } ANGLE_CAPTURE(GetBufferParameteri64v, isCallValid, context, targetPacked, pname, params); @@ -1128,12 +1175,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointerv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetBufferPointerv(context, angle::EntryPoint::GLGetBufferPointerv, + targetPacked, pname, params)); if (isCallValid) { context->getBufferPointerv(targetPacked, pname, params); } ANGLE_CAPTURE(GetBufferPointerv, isCallValid, context, targetPacked, pname, params); @@ -1153,12 +1202,14 @@ GLint returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFragDataLocation(context, programPacked, name)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFragDataLocation(context, angle::EntryPoint::GLGetFragDataLocation, + programPacked, name)); if (isCallValid) { returnValue = context->getFragDataLocation(programPacked, name); } else @@ -1183,12 +1234,13 @@ GLenumToString(GLenumGroup::TypeEnum, target), index, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetInteger64i_v(context, target, index, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetInteger64i_v(context, angle::EntryPoint::GLGetInteger64i_v, + target, index, data)); if (isCallValid) { context->getInteger64i_v(target, index, data); } ANGLE_CAPTURE(GetInteger64i_v, isCallValid, context, target, index, data); @@ -1207,11 +1259,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetInteger64v(context, pname, data)); + (context->skipValidation() || + ValidateGetInteger64v(context, angle::EntryPoint::GLGetInteger64v, pname, data)); if (isCallValid) { context->getInteger64v(pname, data); } ANGLE_CAPTURE(GetInteger64v, isCallValid, context, pname, data); @@ -1230,12 +1283,13 @@ GLenumToString(GLenumGroup::TypeEnum, target), index, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetIntegeri_v(context, target, index, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetIntegeri_v(context, angle::EntryPoint::GLGetIntegeri_v, + target, index, data)); if (isCallValid) { context->getIntegeri_v(target, index, data); } ANGLE_CAPTURE(GetIntegeri_v, isCallValid, context, target, index, data); @@ -1263,11 +1317,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetInternalformativ(context, target, internalformat, pname, bufSize, params)); + ValidateGetInternalformativ(context, angle::EntryPoint::GLGetInternalformativ, target, + internalformat, pname, bufSize, params)); if (isCallValid) { context->getInternalformativ(target, internalformat, pname, bufSize, params); } ANGLE_CAPTURE(GetInternalformativ, isCallValid, context, target, internalformat, pname, @@ -1295,12 +1350,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetProgramBinary(context, programPacked, bufSize, - length, binaryFormat, binary)); + (context->skipValidation() || + ValidateGetProgramBinary(context, angle::EntryPoint::GLGetProgramBinary, programPacked, + bufSize, length, binaryFormat, binary)); if (isCallValid) { context->getProgramBinary(programPacked, bufSize, length, binaryFormat, binary); } ANGLE_CAPTURE(GetProgramBinary, isCallValid, context, programPacked, bufSize, length, @@ -1321,12 +1377,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectuiv(context, idPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetQueryObjectuiv(context, angle::EntryPoint::GLGetQueryObjectuiv, idPacked, + pname, params)); if (isCallValid) { context->getQueryObjectuiv(idPacked, pname, params); } ANGLE_CAPTURE(GetQueryObjectuiv, isCallValid, context, idPacked, pname, params); @@ -1347,12 +1405,13 @@ if (context) { QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryiv(context, targetPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetQueryiv(context, angle::EntryPoint::GLGetQueryiv, + targetPacked, pname, params)); if (isCallValid) { context->getQueryiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetQueryiv, isCallValid, context, targetPacked, pname, params); @@ -1372,12 +1431,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterfv(context, samplerPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetSamplerParameterfv(context, angle::EntryPoint::GLGetSamplerParameterfv, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterfv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterfv, isCallValid, context, samplerPacked, pname, params); @@ -1397,12 +1458,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameteriv(context, samplerPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetSamplerParameteriv(context, angle::EntryPoint::GLGetSamplerParameteriv, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameteriv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameteriv, isCallValid, context, samplerPacked, pname, params); @@ -1421,11 +1484,13 @@ const GLubyte *returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetStringi(context, name, index)); + bool isCallValid = + (context->skipValidation() || + ValidateGetStringi(context, angle::EntryPoint::GLGetStringi, name, index)); if (isCallValid) { returnValue = context->getStringi(name, index); } else @@ -1453,12 +1518,13 @@ bufSize, (uintptr_t)length, (uintptr_t)values); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSynciv(context, sync, pname, bufSize, length, values)); + bool isCallValid = + (context->skipValidation() || ValidateGetSynciv(context, angle::EntryPoint::GLGetSynciv, + sync, pname, bufSize, length, values)); if (isCallValid) { context->getSynciv(sync, pname, bufSize, length, values); } ANGLE_CAPTURE(GetSynciv, isCallValid, context, sync, pname, bufSize, length, values); @@ -1485,12 +1551,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTransformFeedbackVarying(context, programPacked, index, - bufSize, length, size, type, name)); + ValidateGetTransformFeedbackVarying( + context, angle::EntryPoint::GLGetTransformFeedbackVarying, + programPacked, index, bufSize, length, size, type, name)); if (isCallValid) { context->getTransformFeedbackVarying(programPacked, index, bufSize, length, size, type, name); } @@ -1513,12 +1580,14 @@ GLuint returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformBlockIndex(context, programPacked, uniformBlockName)); + bool isCallValid = + (context->skipValidation() || + ValidateGetUniformBlockIndex(context, angle::EntryPoint::GLGetUniformBlockIndex, + programPacked, uniformBlockName)); if (isCallValid) { returnValue = context->getUniformBlockIndex(programPacked, uniformBlockName); } else @@ -1550,13 +1619,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformIndices(context, programPacked, uniformCount, - uniformNames, uniformIndices)); + bool isCallValid = + (context->skipValidation() || + ValidateGetUniformIndices(context, angle::EntryPoint::GLGetUniformIndices, + programPacked, uniformCount, uniformNames, uniformIndices)); if (isCallValid) { context->getUniformIndices(programPacked, uniformCount, uniformNames, uniformIndices); } ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, programPacked, uniformCount, @@ -1579,11 +1649,12 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformuiv(context, programPacked, locationPacked, params)); + ValidateGetUniformuiv(context, angle::EntryPoint::GLGetUniformuiv, + programPacked, locationPacked, params)); if (isCallValid) { context->getUniformuiv(programPacked, locationPacked, params); } ANGLE_CAPTURE(GetUniformuiv, isCallValid, context, programPacked, locationPacked, params); @@ -1602,12 +1673,14 @@ GLenumToString(GLenumGroup::VertexAttribEnum, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribIiv(context, index, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetVertexAttribIiv(context, angle::EntryPoint::GLGetVertexAttribIiv, index, + pname, params)); if (isCallValid) { context->getVertexAttribIiv(index, pname, params); } ANGLE_CAPTURE(GetVertexAttribIiv, isCallValid, context, index, pname, params); @@ -1626,12 +1699,14 @@ GLenumToString(GLenumGroup::VertexAttribEnum, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribIuiv(context, index, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetVertexAttribIuiv(context, angle::EntryPoint::GLGetVertexAttribIuiv, index, + pname, params)); if (isCallValid) { context->getVertexAttribIuiv(index, pname, params); } ANGLE_CAPTURE(GetVertexAttribIuiv, isCallValid, context, index, pname, params); @@ -1655,11 +1730,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateInvalidateFramebuffer(context, target, numAttachments, attachments)); + ValidateInvalidateFramebuffer(context, angle::EntryPoint::GLInvalidateFramebuffer, + target, numAttachments, attachments)); if (isCallValid) { context->invalidateFramebuffer(target, numAttachments, attachments); } ANGLE_CAPTURE(InvalidateFramebuffer, isCallValid, context, target, numAttachments, @@ -1688,12 +1764,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateInvalidateSubFramebuffer(context, target, numAttachments, - attachments, x, y, width, height)); + ValidateInvalidateSubFramebuffer( + context, angle::EntryPoint::GLInvalidateSubFramebuffer, target, + numAttachments, attachments, x, y, width, height)); if (isCallValid) { context->invalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height); } @@ -1714,11 +1791,12 @@ GLboolean returnValue; if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsQuery(context, idPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsQuery(context, angle::EntryPoint::GLIsQuery, idPacked)); if (isCallValid) { returnValue = context->isQuery(idPacked); } else @@ -1743,11 +1821,13 @@ GLboolean returnValue; if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsSampler(context, samplerPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateIsSampler(context, angle::EntryPoint::GLIsSampler, samplerPacked)); if (isCallValid) { returnValue = context->isSampler(samplerPacked); } else @@ -1772,11 +1852,12 @@ GLboolean returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsSync(context, sync)); + bool isCallValid = (context->skipValidation() || + ValidateIsSync(context, angle::EntryPoint::GLIsSync, sync)); if (isCallValid) { returnValue = context->isSync(sync); } else @@ -1801,12 +1882,13 @@ GLboolean returnValue; if (context) { TransformFeedbackID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsTransformFeedback(context, idPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsTransformFeedback( + context, angle::EntryPoint::GLIsTransformFeedback, idPacked)); if (isCallValid) { returnValue = context->isTransformFeedback(idPacked); } else @@ -1833,11 +1915,12 @@ if (context) { VertexArrayID arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsVertexArray(context, arrayPacked)); + (context->skipValidation() || + ValidateIsVertexArray(context, angle::EntryPoint::GLIsVertexArray, arrayPacked)); if (isCallValid) { returnValue = context->isVertexArray(arrayPacked); } else @@ -1870,11 +1953,12 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateMapBufferRange(context, targetPacked, offset, length, access)); + ValidateMapBufferRange(context, angle::EntryPoint::GLMapBufferRange, + targetPacked, offset, length, access)); if (isCallValid) { returnValue = context->mapBufferRange(targetPacked, offset, length, access); } else @@ -1898,11 +1982,13 @@ EVENT(context, GLPauseTransformFeedback, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePauseTransformFeedback(context)); + bool isCallValid = + (context->skipValidation() || + ValidatePauseTransformFeedback(context, angle::EntryPoint::GLPauseTransformFeedback)); if (isCallValid) { context->pauseTransformFeedback(); } ANGLE_CAPTURE(PauseTransformFeedback, isCallValid, context); @@ -1926,13 +2012,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramBinary(context, programPacked, binaryFormat, binary, length)); + bool isCallValid = (context->skipValidation() || + ValidateProgramBinary(context, angle::EntryPoint::GLProgramBinary, + programPacked, binaryFormat, binary, length)); if (isCallValid) { context->programBinary(programPacked, binaryFormat, binary, length); } ANGLE_CAPTURE(ProgramBinary, isCallValid, context, programPacked, binaryFormat, binary, @@ -1952,12 +2038,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramParameteri(context, programPacked, pname, value)); + bool isCallValid = + (context->skipValidation() || + ValidateProgramParameteri(context, angle::EntryPoint::GLProgramParameteri, + programPacked, pname, value)); if (isCallValid) { context->programParameteri(programPacked, pname, value); } ANGLE_CAPTURE(ProgramParameteri, isCallValid, context, programPacked, pname, value); @@ -1975,11 +2063,12 @@ GLenumToString(GLenumGroup::ReadBufferMode, src)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateReadBuffer(context, src)); + bool isCallValid = (context->skipValidation() || + ValidateReadBuffer(context, angle::EntryPoint::GLReadBuffer, src)); if (isCallValid) { context->readBuffer(src); } ANGLE_CAPTURE(ReadBuffer, isCallValid, context, src); @@ -2004,12 +2093,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorageMultisample(context, target, samples, - internalformat, width, height)); + ValidateRenderbufferStorageMultisample( + context, angle::EntryPoint::GLRenderbufferStorageMultisample, + target, samples, internalformat, width, height)); if (isCallValid) { context->renderbufferStorageMultisample(target, samples, internalformat, width, height); } ANGLE_CAPTURE(RenderbufferStorageMultisample, isCallValid, context, target, samples, @@ -2027,11 +2117,13 @@ EVENT(context, GLResumeTransformFeedback, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateResumeTransformFeedback(context)); + bool isCallValid = (context->skipValidation() || + ValidateResumeTransformFeedback( + context, angle::EntryPoint::GLResumeTransformFeedback)); if (isCallValid) { context->resumeTransformFeedback(); } ANGLE_CAPTURE(ResumeTransformFeedback, isCallValid, context); @@ -2050,12 +2142,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterf(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterf(context, angle::EntryPoint::GLSamplerParameterf, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterf(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterf, isCallValid, context, samplerPacked, pname, param); @@ -2075,12 +2169,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterfv(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterfv(context, angle::EntryPoint::GLSamplerParameterfv, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterfv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterfv, isCallValid, context, samplerPacked, pname, param); @@ -2099,12 +2195,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameteri(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameteri(context, angle::EntryPoint::GLSamplerParameteri, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameteri(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameteri, isCallValid, context, samplerPacked, pname, param); @@ -2124,12 +2222,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameteriv(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameteriv(context, angle::EntryPoint::GLSamplerParameteriv, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameteriv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameteriv, isCallValid, context, samplerPacked, pname, param); @@ -2162,12 +2262,13 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexImage3D(context, targetPacked, level, internalformat, width, - height, depth, border, format, type, pixels)); + ValidateTexImage3D(context, angle::EntryPoint::GLTexImage3D, + targetPacked, level, internalformat, width, height, + depth, border, format, type, pixels)); if (isCallValid) { context->texImage3D(targetPacked, level, internalformat, width, height, depth, border, format, type, pixels); } @@ -2193,11 +2294,12 @@ { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorage2D(context, targetPacked, levels, internalformat, width, height)); + ValidateTexStorage2D(context, angle::EntryPoint::GLTexStorage2D, targetPacked, levels, + internalformat, width, height)); if (isCallValid) { context->texStorage2D(targetPacked, levels, internalformat, width, height); } ANGLE_CAPTURE(TexStorage2D, isCallValid, context, targetPacked, levels, internalformat, @@ -2225,13 +2327,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorage3D(context, targetPacked, levels, internalformat, - width, height, depth)); + bool isCallValid = + (context->skipValidation() || + ValidateTexStorage3D(context, angle::EntryPoint::GLTexStorage3D, targetPacked, levels, + internalformat, width, height, depth)); if (isCallValid) { context->texStorage3D(targetPacked, levels, internalformat, width, height, depth); } ANGLE_CAPTURE(TexStorage3D, isCallValid, context, targetPacked, levels, internalformat, @@ -2265,14 +2368,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexSubImage3D(context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, type, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateTexSubImage3D(context, angle::EntryPoint::GLTexSubImage3D, + targetPacked, level, xoffset, yoffset, zoffset, + width, height, depth, format, type, pixels)); if (isCallValid) { context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); } @@ -2298,13 +2401,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTransformFeedbackVaryings( - context, programPacked, count, varyings, bufferMode)); + bool isCallValid = (context->skipValidation() || + ValidateTransformFeedbackVaryings( + context, angle::EntryPoint::GLTransformFeedbackVaryings, + programPacked, count, varyings, bufferMode)); if (isCallValid) { context->transformFeedbackVaryings(programPacked, count, varyings, bufferMode); } ANGLE_CAPTURE(TransformFeedbackVaryings, isCallValid, context, programPacked, count, @@ -2325,11 +2429,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform1ui(context, locationPacked, v0)); + (context->skipValidation() || + ValidateUniform1ui(context, angle::EntryPoint::GLUniform1ui, locationPacked, v0)); if (isCallValid) { context->uniform1ui(locationPacked, v0); } ANGLE_CAPTURE(Uniform1ui, isCallValid, context, locationPacked, v0); @@ -2350,11 +2455,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform1uiv(context, locationPacked, count, value)); + ValidateUniform1uiv(context, angle::EntryPoint::GLUniform1uiv, + locationPacked, count, value)); if (isCallValid) { context->uniform1uiv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform1uiv, isCallValid, context, locationPacked, count, value); @@ -2374,11 +2480,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUniform2ui(context, locationPacked, v0, v1)); + (context->skipValidation() || + ValidateUniform2ui(context, angle::EntryPoint::GLUniform2ui, locationPacked, v0, v1)); if (isCallValid) { context->uniform2ui(locationPacked, v0, v1); } ANGLE_CAPTURE(Uniform2ui, isCallValid, context, locationPacked, v0, v1); @@ -2399,11 +2506,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform2uiv(context, locationPacked, count, value)); + ValidateUniform2uiv(context, angle::EntryPoint::GLUniform2uiv, + locationPacked, count, value)); if (isCallValid) { context->uniform2uiv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform2uiv, isCallValid, context, locationPacked, count, value); @@ -2422,12 +2530,13 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform3ui(context, locationPacked, v0, v1, v2)); + bool isCallValid = (context->skipValidation() || + ValidateUniform3ui(context, angle::EntryPoint::GLUniform3ui, + locationPacked, v0, v1, v2)); if (isCallValid) { context->uniform3ui(locationPacked, v0, v1, v2); } ANGLE_CAPTURE(Uniform3ui, isCallValid, context, locationPacked, v0, v1, v2); @@ -2448,11 +2557,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform3uiv(context, locationPacked, count, value)); + ValidateUniform3uiv(context, angle::EntryPoint::GLUniform3uiv, + locationPacked, count, value)); if (isCallValid) { context->uniform3uiv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform3uiv, isCallValid, context, locationPacked, count, value); @@ -2472,11 +2582,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform4ui(context, locationPacked, v0, v1, v2, v3)); + ValidateUniform4ui(context, angle::EntryPoint::GLUniform4ui, + locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->uniform4ui(locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(Uniform4ui, isCallValid, context, locationPacked, v0, v1, v2, v3); @@ -2497,11 +2608,12 @@ if (context) { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniform4uiv(context, locationPacked, count, value)); + ValidateUniform4uiv(context, angle::EntryPoint::GLUniform4uiv, + locationPacked, count, value)); if (isCallValid) { context->uniform4uiv(locationPacked, count, value); } ANGLE_CAPTURE(Uniform4uiv, isCallValid, context, locationPacked, count, value); @@ -2524,14 +2636,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformBlockBinding(context, programPacked, uniformBlockIndexPacked, - uniformBlockBinding)); + bool isCallValid = (context->skipValidation() || + ValidateUniformBlockBinding( + context, angle::EntryPoint::GLUniformBlockBinding, programPacked, + uniformBlockIndexPacked, uniformBlockBinding)); if (isCallValid) { context->uniformBlockBinding(programPacked, uniformBlockIndexPacked, uniformBlockBinding); } @@ -2558,11 +2670,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix2x3fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix2x3fv(context, angle::EntryPoint::GLUniformMatrix2x3fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix2x3fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix2x3fv, isCallValid, context, locationPacked, count, transpose, @@ -2588,11 +2701,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix2x4fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix2x4fv(context, angle::EntryPoint::GLUniformMatrix2x4fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix2x4fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix2x4fv, isCallValid, context, locationPacked, count, transpose, @@ -2618,11 +2732,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix3x2fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix3x2fv(context, angle::EntryPoint::GLUniformMatrix3x2fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix3x2fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix3x2fv, isCallValid, context, locationPacked, count, transpose, @@ -2648,11 +2763,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix3x4fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix3x4fv(context, angle::EntryPoint::GLUniformMatrix3x4fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix3x4fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix3x4fv, isCallValid, context, locationPacked, count, transpose, @@ -2678,11 +2794,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix4x2fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix4x2fv(context, angle::EntryPoint::GLUniformMatrix4x2fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix4x2fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix4x2fv, isCallValid, context, locationPacked, count, transpose, @@ -2708,11 +2825,12 @@ { UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUniformMatrix4x3fv(context, locationPacked, count, transpose, value)); + ValidateUniformMatrix4x3fv(context, angle::EntryPoint::GLUniformMatrix4x3fv, + locationPacked, count, transpose, value)); if (isCallValid) { context->uniformMatrix4x3fv(locationPacked, count, transpose, value); } ANGLE_CAPTURE(UniformMatrix4x3fv, isCallValid, context, locationPacked, count, transpose, @@ -2734,11 +2852,12 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUnmapBuffer(context, targetPacked)); + (context->skipValidation() || + ValidateUnmapBuffer(context, angle::EntryPoint::GLUnmapBuffer, targetPacked)); if (isCallValid) { returnValue = context->unmapBuffer(targetPacked); } else @@ -2762,12 +2881,13 @@ index, divisor); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribDivisor(context, index, divisor)); + bool isCallValid = (context->skipValidation() || + ValidateVertexAttribDivisor( + context, angle::EntryPoint::GLVertexAttribDivisor, index, divisor)); if (isCallValid) { context->vertexAttribDivisor(index, divisor); } ANGLE_CAPTURE(VertexAttribDivisor, isCallValid, context, index, divisor); @@ -2785,12 +2905,13 @@ CID(context), index, x, y, z, w); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4i(context, index, x, y, z, w)); + bool isCallValid = (context->skipValidation() || + ValidateVertexAttribI4i(context, angle::EntryPoint::GLVertexAttribI4i, + index, x, y, z, w)); if (isCallValid) { context->vertexAttribI4i(index, x, y, z, w); } ANGLE_CAPTURE(VertexAttribI4i, isCallValid, context, index, x, y, z, w); @@ -2809,11 +2930,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4iv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttribI4iv(context, angle::EntryPoint::GLVertexAttribI4iv, index, v)); if (isCallValid) { context->vertexAttribI4iv(index, v); } ANGLE_CAPTURE(VertexAttribI4iv, isCallValid, context, index, v); @@ -2831,12 +2953,13 @@ CID(context), index, x, y, z, w); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4ui(context, index, x, y, z, w)); + bool isCallValid = (context->skipValidation() || + ValidateVertexAttribI4ui(context, angle::EntryPoint::GLVertexAttribI4ui, + index, x, y, z, w)); if (isCallValid) { context->vertexAttribI4ui(index, x, y, z, w); } ANGLE_CAPTURE(VertexAttribI4ui, isCallValid, context, index, x, y, z, w); @@ -2855,11 +2978,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4uiv(context, index, v)); + (context->skipValidation() || + ValidateVertexAttribI4uiv(context, angle::EntryPoint::GLVertexAttribI4uiv, index, v)); if (isCallValid) { context->vertexAttribI4uiv(index, v); } ANGLE_CAPTURE(VertexAttribI4uiv, isCallValid, context, index, v); @@ -2884,11 +3008,12 @@ { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateVertexAttribIPointer(context, index, size, typePacked, stride, pointer)); + ValidateVertexAttribIPointer(context, angle::EntryPoint::GLVertexAttribIPointer, index, + size, typePacked, stride, pointer)); if (isCallValid) { context->vertexAttribIPointer(index, size, typePacked, stride, pointer); } ANGLE_CAPTURE(VertexAttribIPointer, isCallValid, context, index, size, typePacked, stride, @@ -2910,11 +3035,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateWaitSync(context, sync, flags, timeout)); + (context->skipValidation() || + ValidateWaitSync(context, angle::EntryPoint::GLWaitSync, sync, flags, timeout)); if (isCallValid) { context->waitSync(sync, flags, timeout); } ANGLE_CAPTURE(WaitSync, isCallValid, context, sync, flags, timeout); diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.cpp @@ -31,12 +31,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateActiveShaderProgram(context, pipelinePacked, programPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateActiveShaderProgram(context, angle::EntryPoint::GLActiveShaderProgram, + pipelinePacked, programPacked)); if (isCallValid) { context->activeShaderProgram(pipelinePacked, programPacked); } ANGLE_CAPTURE(ActiveShaderProgram, isCallValid, context, pipelinePacked, programPacked); @@ -65,13 +67,14 @@ if (context) { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindImageTexture(context, unit, texturePacked, level, layered, - layer, access, format)); + bool isCallValid = + (context->skipValidation() || + ValidateBindImageTexture(context, angle::EntryPoint::GLBindImageTexture, unit, + texturePacked, level, layered, layer, access, format)); if (isCallValid) { context->bindImageTexture(unit, texturePacked, level, layered, layer, access, format); } ANGLE_CAPTURE(BindImageTexture, isCallValid, context, unit, texturePacked, level, layered, @@ -90,12 +93,13 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindProgramPipeline(context, pipelinePacked)); + bool isCallValid = (context->skipValidation() || + ValidateBindProgramPipeline( + context, angle::EntryPoint::GLBindProgramPipeline, pipelinePacked)); if (isCallValid) { context->bindProgramPipeline(pipelinePacked); } ANGLE_CAPTURE(BindProgramPipeline, isCallValid, context, pipelinePacked); @@ -118,13 +122,13 @@ if (context) { BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBindVertexBuffer(context, bindingindex, bufferPacked, offset, stride)); + bool isCallValid = (context->skipValidation() || + ValidateBindVertexBuffer(context, angle::EntryPoint::GLBindVertexBuffer, + bindingindex, bufferPacked, offset, stride)); if (isCallValid) { context->bindVertexBuffer(bindingindex, bufferPacked, offset, stride); } ANGLE_CAPTURE(BindVertexBuffer, isCallValid, context, bindingindex, bufferPacked, offset, @@ -146,12 +150,14 @@ GLuint returnValue; if (context) { ShaderType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateShaderProgramv(context, typePacked, count, strings)); + bool isCallValid = + (context->skipValidation() || + ValidateCreateShaderProgramv(context, angle::EntryPoint::GLCreateShaderProgramv, + typePacked, count, strings)); if (isCallValid) { returnValue = context->createShaderProgramv(typePacked, count, strings); } else @@ -178,12 +184,14 @@ if (context) { const ProgramPipelineID *pipelinesPacked = PackParam(pipelines); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteProgramPipelines(context, n, pipelinesPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteProgramPipelines(context, angle::EntryPoint::GLDeleteProgramPipelines, n, + pipelinesPacked)); if (isCallValid) { context->deleteProgramPipelines(n, pipelinesPacked); } ANGLE_CAPTURE(DeleteProgramPipelines, isCallValid, context, n, pipelinesPacked); @@ -202,13 +210,13 @@ num_groups_x, num_groups_y, num_groups_z); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDispatchCompute(context, num_groups_x, num_groups_y, num_groups_z)); + bool isCallValid = (context->skipValidation() || + ValidateDispatchCompute(context, angle::EntryPoint::GLDispatchCompute, + num_groups_x, num_groups_y, num_groups_z)); if (isCallValid) { context->dispatchCompute(num_groups_x, num_groups_y, num_groups_z); } ANGLE_CAPTURE(DispatchCompute, isCallValid, context, num_groups_x, num_groups_y, @@ -227,12 +235,13 @@ static_cast(indirect)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDispatchComputeIndirect(context, indirect)); + bool isCallValid = (context->skipValidation() || + ValidateDispatchComputeIndirect( + context, angle::EntryPoint::GLDispatchComputeIndirect, indirect)); if (isCallValid) { context->dispatchComputeIndirect(indirect); } ANGLE_CAPTURE(DispatchComputeIndirect, isCallValid, context, indirect); @@ -251,12 +260,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawArraysIndirect(context, modePacked, indirect)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawArraysIndirect(context, angle::EntryPoint::GLDrawArraysIndirect, + modePacked, indirect)); if (isCallValid) { context->drawArraysIndirect(modePacked, indirect); } ANGLE_CAPTURE(DrawArraysIndirect, isCallValid, context, modePacked, indirect); @@ -280,11 +291,12 @@ PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElementsIndirect(context, modePacked, typePacked, indirect)); + ValidateDrawElementsIndirect(context, angle::EntryPoint::GLDrawElementsIndirect, + modePacked, typePacked, indirect)); if (isCallValid) { context->drawElementsIndirect(modePacked, typePacked, indirect); } ANGLE_CAPTURE(DrawElementsIndirect, isCallValid, context, modePacked, typePacked, indirect); @@ -303,12 +315,14 @@ GLenumToString(GLenumGroup::FramebufferParameterName, pname), param); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferParameteri(context, target, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateFramebufferParameteri(context, angle::EntryPoint::GLFramebufferParameteri, + target, pname, param)); if (isCallValid) { context->framebufferParameteri(target, pname, param); } ANGLE_CAPTURE(FramebufferParameteri, isCallValid, context, target, pname, param); @@ -328,11 +342,13 @@ if (context) { ProgramPipelineID *pipelinesPacked = PackParam(pipelines); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenProgramPipelines(context, n, pipelinesPacked)); + (context->skipValidation() || + ValidateGenProgramPipelines(context, angle::EntryPoint::GLGenProgramPipelines, n, + pipelinesPacked)); if (isCallValid) { context->genProgramPipelines(n, pipelinesPacked); } ANGLE_CAPTURE(GenProgramPipelines, isCallValid, context, n, pipelinesPacked); @@ -351,12 +367,13 @@ GLenumToString(GLenumGroup::BufferTargetARB, target), index, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetBooleani_v(context, target, index, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetBooleani_v(context, angle::EntryPoint::GLGetBooleani_v, + target, index, data)); if (isCallValid) { context->getBooleani_v(target, index, data); } ANGLE_CAPTURE(GetBooleani_v, isCallValid, context, target, index, data); @@ -377,12 +394,14 @@ (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFramebufferParameteriv(context, target, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFramebufferParameteriv( + context, angle::EntryPoint::GLGetFramebufferParameteriv, target, pname, params)); if (isCallValid) { context->getFramebufferParameteriv(target, pname, params); } ANGLE_CAPTURE(GetFramebufferParameteriv, isCallValid, context, target, pname, params); @@ -401,12 +420,13 @@ GLenumToString(GLenumGroup::DefaultGroup, pname), index, (uintptr_t)val); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetMultisamplefv(context, pname, index, val)); + bool isCallValid = (context->skipValidation() || + ValidateGetMultisamplefv(context, angle::EntryPoint::GLGetMultisamplefv, + pname, index, val)); if (isCallValid) { context->getMultisamplefv(pname, index, val); } ANGLE_CAPTURE(GetMultisamplefv, isCallValid, context, pname, index, val); @@ -431,13 +451,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramInterfaceiv(context, programPacked, programInterface, - pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetProgramInterfaceiv(context, angle::EntryPoint::GLGetProgramInterfaceiv, + programPacked, programInterface, pname, params)); if (isCallValid) { context->getProgramInterfaceiv(programPacked, programInterface, pname, params); } ANGLE_CAPTURE(GetProgramInterfaceiv, isCallValid, context, programPacked, programInterface, @@ -462,13 +483,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramPipelineInfoLog(context, pipelinePacked, bufSize, length, infoLog)); + bool isCallValid = (context->skipValidation() || + ValidateGetProgramPipelineInfoLog( + context, angle::EntryPoint::GLGetProgramPipelineInfoLog, + pipelinePacked, bufSize, length, infoLog)); if (isCallValid) { context->getProgramPipelineInfoLog(pipelinePacked, bufSize, length, infoLog); } ANGLE_CAPTURE(GetProgramPipelineInfoLog, isCallValid, context, pipelinePacked, bufSize, @@ -489,12 +511,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramPipelineiv(context, pipelinePacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetProgramPipelineiv(context, angle::EntryPoint::GLGetProgramPipelineiv, + pipelinePacked, pname, params)); if (isCallValid) { context->getProgramPipelineiv(pipelinePacked, pname, params); } ANGLE_CAPTURE(GetProgramPipelineiv, isCallValid, context, pipelinePacked, pname, params); @@ -520,11 +544,12 @@ { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramResourceIndex(context, programPacked, programInterface, name)); + ValidateGetProgramResourceIndex(context, angle::EntryPoint::GLGetProgramResourceIndex, + programPacked, programInterface, name)); if (isCallValid) { returnValue = context->getProgramResourceIndex(programPacked, programInterface, name); } else @@ -556,13 +581,14 @@ GLint returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramResourceLocation(context, programPacked, programInterface, name)); + bool isCallValid = (context->skipValidation() || + ValidateGetProgramResourceLocation( + context, angle::EntryPoint::GLGetProgramResourceLocation, + programPacked, programInterface, name)); if (isCallValid) { returnValue = context->getProgramResourceLocation(programPacked, programInterface, name); } @@ -600,12 +626,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramResourceName(context, programPacked, programInterface, - index, bufSize, length, name)); + ValidateGetProgramResourceName( + context, angle::EntryPoint::GLGetProgramResourceName, programPacked, + programInterface, index, bufSize, length, name)); if (isCallValid) { context->getProgramResourceName(programPacked, programInterface, index, bufSize, length, name); } @@ -638,12 +665,13 @@ { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramResourceiv(context, programPacked, programInterface, index, - propCount, props, bufSize, length, params)); + ValidateGetProgramResourceiv(context, angle::EntryPoint::GLGetProgramResourceiv, + programPacked, programInterface, index, propCount, props, + bufSize, length, params)); if (isCallValid) { context->getProgramResourceiv(programPacked, programInterface, index, propCount, props, bufSize, length, params); } @@ -671,11 +699,12 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexLevelParameterfv(context, targetPacked, level, pname, params)); + ValidateGetTexLevelParameterfv(context, angle::EntryPoint::GLGetTexLevelParameterfv, + targetPacked, level, pname, params)); if (isCallValid) { context->getTexLevelParameterfv(targetPacked, level, pname, params); } ANGLE_CAPTURE(GetTexLevelParameterfv, isCallValid, context, targetPacked, level, pname, @@ -699,11 +728,12 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexLevelParameteriv(context, targetPacked, level, pname, params)); + ValidateGetTexLevelParameteriv(context, angle::EntryPoint::GLGetTexLevelParameteriv, + targetPacked, level, pname, params)); if (isCallValid) { context->getTexLevelParameteriv(targetPacked, level, pname, params); } ANGLE_CAPTURE(GetTexLevelParameteriv, isCallValid, context, targetPacked, level, pname, @@ -723,12 +753,13 @@ GLboolean returnValue; if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsProgramPipeline(context, pipelinePacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsProgramPipeline( + context, angle::EntryPoint::GLIsProgramPipeline, pipelinePacked)); if (isCallValid) { returnValue = context->isProgramPipeline(pipelinePacked); } else @@ -753,11 +784,13 @@ GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str()); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMemoryBarrier(context, barriers)); + bool isCallValid = + (context->skipValidation() || + ValidateMemoryBarrier(context, angle::EntryPoint::GLMemoryBarrier, barriers)); if (isCallValid) { context->memoryBarrier(barriers); } ANGLE_CAPTURE(MemoryBarrier, isCallValid, context, barriers); @@ -775,12 +808,13 @@ GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str()); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMemoryBarrierByRegion(context, barriers)); + bool isCallValid = (context->skipValidation() || + ValidateMemoryBarrierByRegion( + context, angle::EntryPoint::GLMemoryBarrierByRegion, barriers)); if (isCallValid) { context->memoryBarrierByRegion(barriers); } ANGLE_CAPTURE(MemoryBarrierByRegion, isCallValid, context, barriers); @@ -801,11 +835,12 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1f(context, programPacked, locationPacked, v0)); + ValidateProgramUniform1f(context, angle::EntryPoint::GLProgramUniform1f, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1f(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1f, isCallValid, context, programPacked, locationPacked, v0); @@ -831,11 +866,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1fv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1fv(context, angle::EntryPoint::GLProgramUniform1fv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1fv, isCallValid, context, programPacked, locationPacked, count, @@ -857,11 +893,12 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1i(context, programPacked, locationPacked, v0)); + ValidateProgramUniform1i(context, angle::EntryPoint::GLProgramUniform1i, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1i(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1i, isCallValid, context, programPacked, locationPacked, v0); @@ -887,11 +924,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1iv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1iv(context, angle::EntryPoint::GLProgramUniform1iv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1iv, isCallValid, context, programPacked, locationPacked, count, @@ -912,12 +950,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1ui(context, programPacked, locationPacked, v0)); + bool isCallValid = + (context->skipValidation() || + ValidateProgramUniform1ui(context, angle::EntryPoint::GLProgramUniform1ui, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1ui(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1ui, isCallValid, context, programPacked, locationPacked, v0); @@ -943,11 +983,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1uiv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1uiv(context, angle::EntryPoint::GLProgramUniform1uiv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1uiv, isCallValid, context, programPacked, locationPacked, @@ -969,13 +1010,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2f(context, programPacked, locationPacked, v0, v1)); + bool isCallValid = (context->skipValidation() || + ValidateProgramUniform2f(context, angle::EntryPoint::GLProgramUniform2f, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2f(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2f, isCallValid, context, programPacked, locationPacked, v0, @@ -1002,11 +1043,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2fv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2fv(context, angle::EntryPoint::GLProgramUniform2fv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2fv, isCallValid, context, programPacked, locationPacked, count, @@ -1028,13 +1070,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2i(context, programPacked, locationPacked, v0, v1)); + bool isCallValid = (context->skipValidation() || + ValidateProgramUniform2i(context, angle::EntryPoint::GLProgramUniform2i, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2i(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2i, isCallValid, context, programPacked, locationPacked, v0, @@ -1061,11 +1103,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2iv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2iv(context, angle::EntryPoint::GLProgramUniform2iv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2iv, isCallValid, context, programPacked, locationPacked, count, @@ -1089,11 +1132,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2ui(context, programPacked, locationPacked, v0, v1)); + ValidateProgramUniform2ui(context, angle::EntryPoint::GLProgramUniform2ui, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2ui(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2ui, isCallValid, context, programPacked, locationPacked, v0, @@ -1120,11 +1164,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2uiv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2uiv(context, angle::EntryPoint::GLProgramUniform2uiv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2uiv, isCallValid, context, programPacked, locationPacked, @@ -1147,13 +1192,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3f(context, programPacked, locationPacked, v0, v1, v2)); + bool isCallValid = (context->skipValidation() || + ValidateProgramUniform3f(context, angle::EntryPoint::GLProgramUniform3f, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3f(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3f, isCallValid, context, programPacked, locationPacked, v0, v1, @@ -1180,11 +1225,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3fv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3fv(context, angle::EntryPoint::GLProgramUniform3fv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3fv, isCallValid, context, programPacked, locationPacked, count, @@ -1206,13 +1252,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3i(context, programPacked, locationPacked, v0, v1, v2)); + bool isCallValid = (context->skipValidation() || + ValidateProgramUniform3i(context, angle::EntryPoint::GLProgramUniform3i, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3i(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3i, isCallValid, context, programPacked, locationPacked, v0, v1, @@ -1239,11 +1285,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3iv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3iv(context, angle::EntryPoint::GLProgramUniform3iv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3iv, isCallValid, context, programPacked, locationPacked, count, @@ -1268,11 +1315,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3ui(context, programPacked, locationPacked, v0, v1, v2)); + ValidateProgramUniform3ui(context, angle::EntryPoint::GLProgramUniform3ui, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3ui(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3ui, isCallValid, context, programPacked, locationPacked, v0, @@ -1299,11 +1347,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3uiv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3uiv(context, angle::EntryPoint::GLProgramUniform3uiv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3uiv, isCallValid, context, programPacked, locationPacked, @@ -1328,11 +1377,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4f(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4f(context, angle::EntryPoint::GLProgramUniform4f, programPacked, + locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4f(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4f, isCallValid, context, programPacked, locationPacked, v0, v1, @@ -1359,11 +1409,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4fv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4fv(context, angle::EntryPoint::GLProgramUniform4fv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4fv, isCallValid, context, programPacked, locationPacked, count, @@ -1388,11 +1439,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4i(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4i(context, angle::EntryPoint::GLProgramUniform4i, programPacked, + locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4i(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4i, isCallValid, context, programPacked, locationPacked, v0, v1, @@ -1419,11 +1471,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4iv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4iv(context, angle::EntryPoint::GLProgramUniform4iv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4iv, isCallValid, context, programPacked, locationPacked, count, @@ -1448,11 +1501,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4ui(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4ui(context, angle::EntryPoint::GLProgramUniform4ui, + programPacked, locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4ui(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4ui, isCallValid, context, programPacked, locationPacked, v0, @@ -1479,11 +1533,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4uiv(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4uiv(context, angle::EntryPoint::GLProgramUniform4uiv, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4uiv, isCallValid, context, programPacked, locationPacked, @@ -1511,12 +1566,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2fv(context, programPacked, locationPacked, - count, transpose, value)); + ValidateProgramUniformMatrix2fv( + context, angle::EntryPoint::GLProgramUniformMatrix2fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2fv(programPacked, locationPacked, count, transpose, value); } @@ -1546,11 +1602,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix2x3fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix2x3fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2x3fv(programPacked, locationPacked, count, transpose, value); } @@ -1580,11 +1637,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix2x4fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix2x4fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2x4fv(programPacked, locationPacked, count, transpose, value); } @@ -1613,12 +1671,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3fv(context, programPacked, locationPacked, - count, transpose, value)); + ValidateProgramUniformMatrix3fv( + context, angle::EntryPoint::GLProgramUniformMatrix3fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3fv(programPacked, locationPacked, count, transpose, value); } @@ -1648,11 +1707,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix3x2fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix3x2fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3x2fv(programPacked, locationPacked, count, transpose, value); } @@ -1682,11 +1742,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix3x4fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix3x4fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3x4fv(programPacked, locationPacked, count, transpose, value); } @@ -1715,12 +1776,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4fv(context, programPacked, locationPacked, - count, transpose, value)); + ValidateProgramUniformMatrix4fv( + context, angle::EntryPoint::GLProgramUniformMatrix4fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4fv(programPacked, locationPacked, count, transpose, value); } @@ -1750,11 +1812,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix4x2fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix4x2fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4x2fv(programPacked, locationPacked, count, transpose, value); } @@ -1784,11 +1847,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix4x3fv( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix4x3fv, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4x3fv(programPacked, locationPacked, count, transpose, value); } @@ -1809,11 +1873,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateSampleMaski(context, maskNumber, mask)); + (context->skipValidation() || + ValidateSampleMaski(context, angle::EntryPoint::GLSampleMaski, maskNumber, mask)); if (isCallValid) { context->sampleMaski(maskNumber, mask); } ANGLE_CAPTURE(SampleMaski, isCallValid, context, maskNumber, mask); @@ -1841,14 +1906,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage2DMultisample(context, targetPacked, samples, internalformat, width, - height, fixedsamplelocations)); + bool isCallValid = (context->skipValidation() || + ValidateTexStorage2DMultisample( + context, angle::EntryPoint::GLTexStorage2DMultisample, targetPacked, + samples, internalformat, width, height, fixedsamplelocations)); if (isCallValid) { context->texStorage2DMultisample(targetPacked, samples, internalformat, width, height, fixedsamplelocations); } @@ -1871,13 +1936,13 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUseProgramStages(context, pipelinePacked, stages, programPacked)); + bool isCallValid = (context->skipValidation() || + ValidateUseProgramStages(context, angle::EntryPoint::GLUseProgramStages, + pipelinePacked, stages, programPacked)); if (isCallValid) { context->useProgramStages(pipelinePacked, stages, programPacked); } ANGLE_CAPTURE(UseProgramStages, isCallValid, context, pipelinePacked, stages, @@ -1898,11 +1963,13 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateValidateProgramPipeline(context, pipelinePacked)); + (context->skipValidation() || + ValidateValidateProgramPipeline(context, angle::EntryPoint::GLValidateProgramPipeline, + pipelinePacked)); if (isCallValid) { context->validateProgramPipeline(pipelinePacked); } ANGLE_CAPTURE(ValidateProgramPipeline, isCallValid, context, pipelinePacked); @@ -1920,12 +1987,14 @@ CID(context), attribindex, bindingindex); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribBinding(context, attribindex, bindingindex)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexAttribBinding(context, angle::EntryPoint::GLVertexAttribBinding, + attribindex, bindingindex)); if (isCallValid) { context->vertexAttribBinding(attribindex, bindingindex); } ANGLE_CAPTURE(VertexAttribBinding, isCallValid, context, attribindex, bindingindex); @@ -1951,13 +2020,14 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribFormat(context, attribindex, size, typePacked, - normalized, relativeoffset)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexAttribFormat(context, angle::EntryPoint::GLVertexAttribFormat, + attribindex, size, typePacked, normalized, relativeoffset)); if (isCallValid) { context->vertexAttribFormat(attribindex, size, typePacked, normalized, relativeoffset); } ANGLE_CAPTURE(VertexAttribFormat, isCallValid, context, attribindex, size, typePacked, @@ -1983,11 +2053,12 @@ { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateVertexAttribIFormat(context, attribindex, size, typePacked, relativeoffset)); + ValidateVertexAttribIFormat(context, angle::EntryPoint::GLVertexAttribIFormat, + attribindex, size, typePacked, relativeoffset)); if (isCallValid) { context->vertexAttribIFormat(attribindex, size, typePacked, relativeoffset); } ANGLE_CAPTURE(VertexAttribIFormat, isCallValid, context, attribindex, size, typePacked, @@ -2006,12 +2077,14 @@ CID(context), bindingindex, divisor); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexBindingDivisor(context, bindingindex, divisor)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexBindingDivisor(context, angle::EntryPoint::GLVertexBindingDivisor, + bindingindex, divisor)); if (isCallValid) { context->vertexBindingDivisor(bindingindex, divisor); } ANGLE_CAPTURE(VertexBindingDivisor, isCallValid, context, bindingindex, divisor); diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.cpp @@ -28,11 +28,12 @@ EVENT(context, GLBlendBarrier, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendBarrier(context)); + bool isCallValid = (context->skipValidation() || + ValidateBlendBarrier(context, angle::EntryPoint::GLBlendBarrier)); if (isCallValid) { context->blendBarrier(); } ANGLE_CAPTURE(BlendBarrier, isCallValid, context); @@ -51,12 +52,14 @@ GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparatei(context, buf, modeRGB, modeAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateBlendEquationSeparatei(context, angle::EntryPoint::GLBlendEquationSeparatei, + buf, modeRGB, modeAlpha)); if (isCallValid) { context->blendEquationSeparatei(buf, modeRGB, modeAlpha); } ANGLE_CAPTURE(BlendEquationSeparatei, isCallValid, context, buf, modeRGB, modeAlpha); @@ -75,11 +78,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendEquationi(context, buf, mode)); + (context->skipValidation() || + ValidateBlendEquationi(context, angle::EntryPoint::GLBlendEquationi, buf, mode)); if (isCallValid) { context->blendEquationi(buf, mode); } ANGLE_CAPTURE(BlendEquationi, isCallValid, context, buf, mode); @@ -104,11 +108,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBlendFuncSeparatei(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); + ValidateBlendFuncSeparatei(context, angle::EntryPoint::GLBlendFuncSeparatei, buf, + srcRGB, dstRGB, srcAlpha, dstAlpha)); if (isCallValid) { context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); } ANGLE_CAPTURE(BlendFuncSeparatei, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, @@ -129,11 +134,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendFunci(context, buf, src, dst)); + (context->skipValidation() || + ValidateBlendFunci(context, angle::EntryPoint::GLBlendFunci, buf, src, dst)); if (isCallValid) { context->blendFunci(buf, src, dst); } ANGLE_CAPTURE(BlendFunci, isCallValid, context, buf, src, dst); @@ -153,11 +159,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColorMaski(context, index, r, g, b, a)); + (context->skipValidation() || + ValidateColorMaski(context, angle::EntryPoint::GLColorMaski, index, r, g, b, a)); if (isCallValid) { context->colorMaski(index, r, g, b, a); } ANGLE_CAPTURE(ColorMaski, isCallValid, context, index, r, g, b, a); @@ -195,14 +202,15 @@ dstZ, srcWidth, srcHeight, srcDepth); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyImageSubData(context, srcName, srcTarget, srcLevel, srcX, - srcY, srcZ, dstName, dstTarget, dstLevel, dstX, - dstY, dstZ, srcWidth, srcHeight, srcDepth)); + bool isCallValid = + (context->skipValidation() || + ValidateCopyImageSubData(context, angle::EntryPoint::GLCopyImageSubData, srcName, + srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, + dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth)); if (isCallValid) { context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth); @@ -225,12 +233,14 @@ (uintptr_t)callback, (uintptr_t)userParam); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDebugMessageCallback(context, callback, userParam)); + bool isCallValid = + (context->skipValidation() || + ValidateDebugMessageCallback(context, angle::EntryPoint::GLDebugMessageCallback, + callback, userParam)); if (isCallValid) { context->debugMessageCallback(callback, userParam); } ANGLE_CAPTURE(DebugMessageCallback, isCallValid, context, callback, userParam); @@ -260,11 +270,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDebugMessageControl(context, source, type, severity, count, ids, enabled)); + ValidateDebugMessageControl(context, angle::EntryPoint::GLDebugMessageControl, source, + type, severity, count, ids, enabled)); if (isCallValid) { context->debugMessageControl(source, type, severity, count, ids, enabled); } ANGLE_CAPTURE(DebugMessageControl, isCallValid, context, source, type, severity, count, ids, @@ -294,11 +305,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDebugMessageInsert(context, source, type, id, severity, length, buf)); + ValidateDebugMessageInsert(context, angle::EntryPoint::GLDebugMessageInsert, source, + type, id, severity, length, buf)); if (isCallValid) { context->debugMessageInsert(source, type, id, severity, length, buf); } ANGLE_CAPTURE(DebugMessageInsert, isCallValid, context, source, type, id, severity, length, @@ -317,11 +329,13 @@ GLenumToString(GLenumGroup::EnableCap, target), index); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDisablei(context, target, index)); + bool isCallValid = + (context->skipValidation() || + ValidateDisablei(context, angle::EntryPoint::GLDisablei, target, index)); if (isCallValid) { context->disablei(target, index); } ANGLE_CAPTURE(Disablei, isCallValid, context, target, index); @@ -348,13 +362,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertex(context, modePacked, count, typePacked, - indices, basevertex)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawElementsBaseVertex(context, angle::EntryPoint::GLDrawElementsBaseVertex, + modePacked, count, typePacked, indices, basevertex)); if (isCallValid) { context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); } ANGLE_CAPTURE(DrawElementsBaseVertex, isCallValid, context, modePacked, count, typePacked, @@ -384,13 +399,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertex( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawElementsInstancedBaseVertex( + context, angle::EntryPoint::GLDrawElementsInstancedBaseVertex, + modePacked, count, typePacked, indices, instancecount, basevertex)); if (isCallValid) { context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, instancecount, basevertex); } @@ -421,13 +437,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertex( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawRangeElementsBaseVertex( + context, angle::EntryPoint::GLDrawRangeElementsBaseVertex, + modePacked, start, end, count, typePacked, indices, basevertex)); if (isCallValid) { context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, basevertex); } @@ -447,11 +464,12 @@ GLenumToString(GLenumGroup::EnableCap, target), index); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEnablei(context, target, index)); + bool isCallValid = (context->skipValidation() || + ValidateEnablei(context, angle::EntryPoint::GLEnablei, target, index)); if (isCallValid) { context->enablei(target, index); } ANGLE_CAPTURE(Enablei, isCallValid, context, target, index); @@ -477,11 +495,12 @@ { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateFramebufferTexture(context, target, attachment, texturePacked, level)); + ValidateFramebufferTexture(context, angle::EntryPoint::GLFramebufferTexture, target, + attachment, texturePacked, level)); if (isCallValid) { context->framebufferTexture(target, attachment, texturePacked, level); } ANGLE_CAPTURE(FramebufferTexture, isCallValid, context, target, attachment, texturePacked, @@ -513,12 +532,13 @@ GLuint returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetDebugMessageLog(context, count, bufSize, sources, types, ids, - severities, lengths, messageLog)); + ValidateGetDebugMessageLog( + context, angle::EntryPoint::GLGetDebugMessageLog, count, bufSize, + sources, types, ids, severities, lengths, messageLog)); if (isCallValid) { returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog); } @@ -544,11 +564,13 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetGraphicsResetStatus(context)); + bool isCallValid = + (context->skipValidation() || + ValidateGetGraphicsResetStatus(context, angle::EntryPoint::GLGetGraphicsResetStatus)); if (isCallValid) { returnValue = context->getGraphicsResetStatus(); } else @@ -577,13 +599,13 @@ (uintptr_t)length, (uintptr_t)label); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetObjectLabel(context, identifier, name, bufSize, length, label)); + bool isCallValid = (context->skipValidation() || + ValidateGetObjectLabel(context, angle::EntryPoint::GLGetObjectLabel, + identifier, name, bufSize, length, label)); if (isCallValid) { context->getObjectLabel(identifier, name, bufSize, length, label); } ANGLE_CAPTURE(GetObjectLabel, isCallValid, context, identifier, name, bufSize, length, @@ -607,12 +629,14 @@ CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetObjectPtrLabel(context, ptr, bufSize, length, label)); + bool isCallValid = + (context->skipValidation() || + ValidateGetObjectPtrLabel(context, angle::EntryPoint::GLGetObjectPtrLabel, ptr, + bufSize, length, label)); if (isCallValid) { context->getObjectPtrLabel(ptr, bufSize, length, label); } ANGLE_CAPTURE(GetObjectPtrLabel, isCallValid, context, ptr, bufSize, length, label); @@ -631,11 +655,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetPointerv(context, pname, params)); + (context->skipValidation() || + ValidateGetPointerv(context, angle::EntryPoint::GLGetPointerv, pname, params)); if (isCallValid) { context->getPointerv(pname, params); } ANGLE_CAPTURE(GetPointerv, isCallValid, context, pname, params); @@ -655,12 +680,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIiv(context, samplerPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetSamplerParameterIiv(context, angle::EntryPoint::GLGetSamplerParameterIiv, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIiv, isCallValid, context, samplerPacked, pname, params); @@ -680,12 +707,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIuiv(context, samplerPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetSamplerParameterIuiv(context, angle::EntryPoint::GLGetSamplerParameterIuiv, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIuiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIuiv, isCallValid, context, samplerPacked, pname, params); @@ -706,12 +735,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIiv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIiv(context, angle::EntryPoint::GLGetTexParameterIiv, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIiv, isCallValid, context, targetPacked, pname, params); @@ -732,12 +763,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuiv(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIuiv(context, angle::EntryPoint::GLGetTexParameterIuiv, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIuiv, isCallValid, context, targetPacked, pname, params); @@ -758,13 +791,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformfv(context, programPacked, locationPacked, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetnUniformfv(context, angle::EntryPoint::GLGetnUniformfv, + programPacked, locationPacked, bufSize, params)); if (isCallValid) { context->getnUniformfv(programPacked, locationPacked, bufSize, params); } ANGLE_CAPTURE(GetnUniformfv, isCallValid, context, programPacked, locationPacked, bufSize, @@ -786,13 +819,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformiv(context, programPacked, locationPacked, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetnUniformiv(context, angle::EntryPoint::GLGetnUniformiv, + programPacked, locationPacked, bufSize, params)); if (isCallValid) { context->getnUniformiv(programPacked, locationPacked, bufSize, params); } ANGLE_CAPTURE(GetnUniformiv, isCallValid, context, programPacked, locationPacked, bufSize, @@ -814,13 +847,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformuiv(context, programPacked, locationPacked, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetnUniformuiv(context, angle::EntryPoint::GLGetnUniformuiv, + programPacked, locationPacked, bufSize, params)); if (isCallValid) { context->getnUniformuiv(programPacked, locationPacked, bufSize, params); } ANGLE_CAPTURE(GetnUniformuiv, isCallValid, context, programPacked, locationPacked, bufSize, @@ -841,11 +874,12 @@ GLboolean returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsEnabledi(context, target, index)); + (context->skipValidation() || + ValidateIsEnabledi(context, angle::EntryPoint::GLIsEnabledi, target, index)); if (isCallValid) { returnValue = context->isEnabledi(target, index); } else @@ -868,11 +902,13 @@ EVENT(context, GLMinSampleShading, "context = %d, value = %f", CID(context), value); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMinSampleShading(context, value)); + bool isCallValid = + (context->skipValidation() || + ValidateMinSampleShading(context, angle::EntryPoint::GLMinSampleShading, value)); if (isCallValid) { context->minSampleShading(value); } ANGLE_CAPTURE(MinSampleShading, isCallValid, context, value); @@ -893,11 +929,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateObjectLabel(context, identifier, name, length, label)); + ValidateObjectLabel(context, angle::EntryPoint::GLObjectLabel, + identifier, name, length, label)); if (isCallValid) { context->objectLabel(identifier, name, length, label); } ANGLE_CAPTURE(ObjectLabel, isCallValid, context, identifier, name, length, label); @@ -916,12 +953,13 @@ CID(context), (uintptr_t)ptr, length, (uintptr_t)label); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateObjectPtrLabel(context, ptr, length, label)); + bool isCallValid = (context->skipValidation() || + ValidateObjectPtrLabel(context, angle::EntryPoint::GLObjectPtrLabel, + ptr, length, label)); if (isCallValid) { context->objectPtrLabel(ptr, length, label); } ANGLE_CAPTURE(ObjectPtrLabel, isCallValid, context, ptr, length, label); @@ -940,11 +978,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidatePatchParameteri(context, pname, value)); + (context->skipValidation() || + ValidatePatchParameteri(context, angle::EntryPoint::GLPatchParameteri, pname, value)); if (isCallValid) { context->patchParameteri(pname, value); } ANGLE_CAPTURE(PatchParameteri, isCallValid, context, pname, value); @@ -961,11 +1000,12 @@ EVENT(context, GLPopDebugGroup, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopDebugGroup(context)); + bool isCallValid = (context->skipValidation() || + ValidatePopDebugGroup(context, angle::EntryPoint::GLPopDebugGroup)); if (isCallValid) { context->popDebugGroup(); } ANGLE_CAPTURE(PopDebugGroup, isCallValid, context); @@ -994,11 +1034,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidatePrimitiveBoundingBox(context, minX, minY, minZ, minW, maxX, maxY, maxZ, maxW)); + ValidatePrimitiveBoundingBox(context, angle::EntryPoint::GLPrimitiveBoundingBox, minX, + minY, minZ, minW, maxX, maxY, maxZ, maxW)); if (isCallValid) { context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); } ANGLE_CAPTURE(PrimitiveBoundingBox, isCallValid, context, minX, minY, minZ, minW, maxX, @@ -1020,11 +1061,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidatePushDebugGroup(context, source, id, length, message)); + ValidatePushDebugGroup(context, angle::EntryPoint::GLPushDebugGroup, + source, id, length, message)); if (isCallValid) { context->pushDebugGroup(source, id, length, message); } ANGLE_CAPTURE(PushDebugGroup, isCallValid, context, source, id, length, message); @@ -1052,13 +1094,13 @@ GLenumToString(GLenumGroup::PixelType, type), bufSize, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixels(context, x, y, width, height, format, type, bufSize, data)); + bool isCallValid = (context->skipValidation() || + ValidateReadnPixels(context, angle::EntryPoint::GLReadnPixels, x, y, + width, height, format, type, bufSize, data)); if (isCallValid) { context->readnPixels(x, y, width, height, format, type, bufSize, data); } ANGLE_CAPTURE(ReadnPixels, isCallValid, context, x, y, width, height, format, type, bufSize, @@ -1079,12 +1121,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIiv(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIiv(context, angle::EntryPoint::GLSamplerParameterIiv, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIiv, isCallValid, context, samplerPacked, pname, param); @@ -1104,12 +1148,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuiv(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIuiv(context, angle::EntryPoint::GLSamplerParameterIuiv, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIuiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIuiv, isCallValid, context, samplerPacked, pname, param); @@ -1131,11 +1177,12 @@ { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexBuffer(context, targetPacked, internalformat, bufferPacked)); + ValidateTexBuffer(context, angle::EntryPoint::GLTexBuffer, targetPacked, + internalformat, bufferPacked)); if (isCallValid) { context->texBuffer(targetPacked, internalformat, bufferPacked); } ANGLE_CAPTURE(TexBuffer, isCallValid, context, targetPacked, internalformat, bufferPacked); @@ -1162,13 +1209,14 @@ if (context) { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRange(context, targetPacked, internalformat, - bufferPacked, offset, size)); + bool isCallValid = + (context->skipValidation() || + ValidateTexBufferRange(context, angle::EntryPoint::GLTexBufferRange, targetPacked, + internalformat, bufferPacked, offset, size)); if (isCallValid) { context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); } ANGLE_CAPTURE(TexBufferRange, isCallValid, context, targetPacked, internalformat, @@ -1191,11 +1239,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterIiv(context, targetPacked, pname, params)); + ValidateTexParameterIiv(context, angle::EntryPoint::GLTexParameterIiv, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIiv, isCallValid, context, targetPacked, pname, params); @@ -1217,11 +1266,12 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuiv(context, targetPacked, pname, params)); + ValidateTexParameterIuiv(context, angle::EntryPoint::GLTexParameterIuiv, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIuiv, isCallValid, context, targetPacked, pname, params); @@ -1252,12 +1302,13 @@ { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorage3DMultisample(context, targetPacked, samples, internalformat, width, - height, depth, fixedsamplelocations)); + ValidateTexStorage3DMultisample(context, angle::EntryPoint::GLTexStorage3DMultisample, + targetPacked, samples, internalformat, width, height, + depth, fixedsamplelocations)); if (isCallValid) { context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height, depth, fixedsamplelocations); } diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.h b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.h --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.h +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.h @@ -78,10 +78,12 @@ GLint depth, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha); +// GL_ANGLE_depth_texture + // GL_ANGLE_framebuffer_blit ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, @@ -100,10 +102,13 @@ GLsizei height); // GL_ANGLE_get_image ANGLE_EXPORT void GL_APIENTRY GL_GetTexImageANGLE(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +ANGLE_EXPORT void GL_APIENTRY GL_GetCompressedTexImageANGLE(GLenum target, + GLint level, + void *pixels); ANGLE_EXPORT void GL_APIENTRY GL_GetRenderbufferImageANGLE(GLenum target, GLenum format, GLenum type, void *pixels); @@ -199,10 +204,12 @@ GLenum type, const GLvoid *const *indices, const GLsizei *instanceCounts, GLsizei drawcount); +// GL_ANGLE_pack_reverse_row_order + // GL_ANGLE_program_binary // GL_ANGLE_provoking_vertex ANGLE_EXPORT void GL_APIENTRY GL_ProvokingVertexANGLE(GLenum mode); @@ -584,10 +591,14 @@ // GL_ANGLE_semaphore_fuchsia ANGLE_EXPORT void GL_APIENTRY GL_ImportSemaphoreZirconHandleANGLE(GLuint semaphore, GLenum handleType, GLuint handle); +// GL_ANGLE_texture_compression_dxt3 + +// GL_ANGLE_texture_compression_dxt5 + // GL_ANGLE_texture_external_update ANGLE_EXPORT void GL_APIENTRY GL_TexImage2DExternalANGLE(GLenum target, GLint level, GLint internalformat, GLsizei width, @@ -605,16 +616,22 @@ GLsizei height, GLboolean fixedsamplelocations); ANGLE_EXPORT void GL_APIENTRY GL_GetMultisamplefvANGLE(GLenum pname, GLuint index, GLfloat *val); ANGLE_EXPORT void GL_APIENTRY GL_SampleMaskiANGLE(GLuint maskNumber, GLbitfield mask); +// GL_ANGLE_texture_usage + // GL_ANGLE_translated_shader_source ANGLE_EXPORT void GL_APIENTRY GL_GetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); +// GL_APPLE_clip_distance + +// GL_ARB_sync + // GL_CHROMIUM_bind_uniform_location ANGLE_EXPORT void GL_APIENTRY GL_BindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name); @@ -653,10 +670,18 @@ // GL_CHROMIUM_lose_context ANGLE_EXPORT void GL_APIENTRY GL_LoseContextCHROMIUM(GLenum current, GLenum other); // GL_EXT_EGL_image_array +// GL_EXT_EGL_image_storage +ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetTexStorageEXT(GLenum target, + GLeglImageOES image, + const GLint *attrib_list); +ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetTextureStorageEXT(GLuint texture, + GLeglImageOES image, + const GLint *attrib_list); + // GL_EXT_YUV_target // GL_EXT_blend_func_extended ANGLE_EXPORT void GL_APIENTRY GL_BindFragDataLocationEXT(GLuint program, GLuint color, @@ -668,19 +693,27 @@ ANGLE_EXPORT GLint GL_APIENTRY GL_GetFragDataIndexEXT(GLuint program, const GLchar *name); ANGLE_EXPORT GLint GL_APIENTRY GL_GetProgramResourceLocationIndexEXT(GLuint program, GLenum programInterface, const GLchar *name); +// GL_EXT_blend_minmax + // GL_EXT_buffer_storage ANGLE_EXPORT void GL_APIENTRY GL_BufferStorageEXT(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); // GL_EXT_clip_control ANGLE_EXPORT void GL_APIENTRY GL_ClipControlEXT(GLenum origin, GLenum depth); +// GL_EXT_clip_cull_distance + +// GL_EXT_color_buffer_float + +// GL_EXT_color_buffer_half_float + // GL_EXT_copy_image ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataEXT(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, @@ -784,16 +817,20 @@ GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +// GL_EXT_float_blend + // GL_EXT_geometry_shader ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level); +// GL_EXT_gpu_shader5 + // GL_EXT_instanced_arrays ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount); @@ -891,10 +928,14 @@ GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +// GL_EXT_protected_textures + +// GL_EXT_pvrtc_sRGB + // GL_EXT_read_format_bgra // GL_EXT_robustness ANGLE_EXPORT GLenum GL_APIENTRY GL_GetGraphicsResetStatusEXT(); ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformfvEXT(GLuint program, @@ -914,10 +955,12 @@ GLsizei bufSize, void *data); // GL_EXT_sRGB +// GL_EXT_sRGB_write_control + // GL_EXT_semaphore ANGLE_EXPORT void GL_APIENTRY GL_DeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores); ANGLE_EXPORT void GL_APIENTRY GL_GenSemaphoresEXT(GLsizei n, GLuint *semaphores); ANGLE_EXPORT void GL_APIENTRY GL_GetSemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, @@ -1093,10 +1136,16 @@ // GL_EXT_shader_framebuffer_fetch_non_coherent ANGLE_EXPORT void GL_APIENTRY GL_FramebufferFetchBarrierEXT(); // GL_EXT_shader_io_blocks +// GL_EXT_shader_non_constant_global_initializers + +// GL_EXT_shader_texture_lod + +// GL_EXT_shadow_samplers + // GL_EXT_tessellation_shader ANGLE_EXPORT void GL_APIENTRY GL_PatchParameteriEXT(GLenum pname, GLint value); // GL_EXT_texture_border_clamp ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIivEXT(GLuint sampler, @@ -1144,14 +1193,22 @@ // GL_EXT_texture_filter_anisotropic // GL_EXT_texture_format_BGRA8888 +// GL_EXT_texture_format_sRGB_override + +// GL_EXT_texture_norm16 + +// GL_EXT_texture_rg + // GL_EXT_texture_sRGB_R8 // GL_EXT_texture_sRGB_RG8 +// GL_EXT_texture_sRGB_decode + // GL_EXT_texture_storage ANGLE_EXPORT void GL_APIENTRY GL_TexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); @@ -1165,10 +1222,18 @@ GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +// GL_EXT_texture_type_2_10_10_10_REV + +// GL_EXT_unpack_subimage + +// GL_IMG_texture_compression_pvrtc + +// GL_IMG_texture_compression_pvrtc2 + // GL_KHR_blend_equation_advanced ANGLE_EXPORT void GL_APIENTRY GL_BlendBarrierKHR(); // GL_KHR_debug ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageCallbackKHR(GLDEBUGPROCKHR callback, @@ -1214,13 +1279,23 @@ ANGLE_EXPORT void GL_APIENTRY GL_PushDebugGroupKHR(GLenum source, GLuint id, GLsizei length, const GLchar *message); +// GL_KHR_no_error + // GL_KHR_parallel_shader_compile ANGLE_EXPORT void GL_APIENTRY GL_MaxShaderCompilerThreadsKHR(GLuint count); +// GL_KHR_robust_buffer_access_behavior + +// GL_KHR_texture_compression_astc_hdr + +// GL_KHR_texture_compression_astc_ldr + +// GL_KHR_texture_compression_astc_sliced_3d + // GL_NV_fence ANGLE_EXPORT void GL_APIENTRY GL_DeleteFencesNV(GLsizei n, const GLuint *fences); ANGLE_EXPORT void GL_APIENTRY GL_FinishFenceNV(GLuint fence); ANGLE_EXPORT void GL_APIENTRY GL_GenFencesNV(GLsizei n, GLuint *fences); ANGLE_EXPORT void GL_APIENTRY GL_GetFenceivNV(GLuint fence, GLenum pname, GLint *params); @@ -1238,15 +1313,29 @@ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +// GL_NV_pixel_buffer_object + +// GL_NV_read_depth + +// GL_NV_read_stencil + +// GL_NV_robustness_video_memory_purge + +// GL_NV_shader_noperspective_interpolation + // GL_OES_EGL_image ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image); ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); +// GL_OES_EGL_image_external + +// GL_OES_EGL_image_external_essl3 + // GL_OES_compressed_ETC1_RGB8_texture // GL_OES_copy_image ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataOES(GLuint srcName, GLenum srcTarget, @@ -1262,12 +1351,16 @@ GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +// GL_OES_depth24 + // GL_OES_depth32 +// GL_OES_depth_texture + // GL_OES_draw_buffers_indexed ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha); ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationiOES(GLuint buf, GLenum mode); @@ -1314,10 +1407,14 @@ ANGLE_EXPORT void GL_APIENTRY GL_DrawTexsvOES(const GLshort *coords); ANGLE_EXPORT void GL_APIENTRY GL_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); ANGLE_EXPORT void GL_APIENTRY GL_DrawTexxvOES(const GLfixed *coords); +// GL_OES_element_index_uint + +// GL_OES_fbo_render_mipmap + // GL_OES_framebuffer_object ANGLE_EXPORT void GL_APIENTRY GL_BindFramebufferOES(GLenum target, GLuint framebuffer); ANGLE_EXPORT void GL_APIENTRY GL_BindRenderbufferOES(GLenum target, GLuint renderbuffer); ANGLE_EXPORT GLenum GL_APIENTRY GL_CheckFramebufferStatusOES(GLenum target); ANGLE_EXPORT void GL_APIENTRY GL_DeleteFramebuffersOES(GLsizei n, const GLuint *framebuffers); @@ -1346,10 +1443,16 @@ ANGLE_EXPORT void GL_APIENTRY GL_RenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +// GL_OES_geometry_shader +ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureOES(GLenum target, + GLenum attachment, + GLuint texture, + GLint level); + // GL_OES_get_program_binary ANGLE_EXPORT void GL_APIENTRY GL_GetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, @@ -1374,23 +1477,39 @@ ANGLE_EXPORT void GL_APIENTRY GL_WeightPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer); +// GL_OES_packed_depth_stencil + // GL_OES_point_size_array ANGLE_EXPORT void GL_APIENTRY GL_PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer); +// GL_OES_point_sprite + // GL_OES_query_matrix ANGLE_EXPORT GLbitfield GL_APIENTRY GL_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent); +// GL_OES_rgb8_rgba8 + // GL_OES_sample_shading ANGLE_EXPORT void GL_APIENTRY GL_MinSampleShadingOES(GLfloat value); +// GL_OES_sample_variables + +// GL_OES_shader_image_atomic + // GL_OES_shader_io_blocks +// GL_OES_shader_multisample_interpolation + +// GL_OES_standard_derivatives + +// GL_OES_surfaceless_context + // GL_OES_texture_3D ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, @@ -1477,10 +1596,12 @@ GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +// GL_OES_texture_compression_astc + // GL_OES_texture_cube_map ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params); ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenivOES(GLenum coord, GLenum pname, GLint *params); ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params); ANGLE_EXPORT void GL_APIENTRY GL_TexGenfOES(GLenum coord, GLenum pname, GLfloat param); @@ -1490,12 +1611,20 @@ ANGLE_EXPORT void GL_APIENTRY GL_TexGenxOES(GLenum coord, GLenum pname, GLfixed param); ANGLE_EXPORT void GL_APIENTRY GL_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params); // GL_OES_texture_cube_map_array +// GL_OES_texture_float + +// GL_OES_texture_float_linear + // GL_OES_texture_half_float +// GL_OES_texture_half_float_linear + +// GL_OES_texture_npot + // GL_OES_texture_stencil8 // GL_OES_texture_storage_multisample_2d_array ANGLE_EXPORT void GL_APIENTRY GL_TexStorage3DMultisampleOES(GLenum target, GLsizei samples, @@ -1509,3541 +1638,21 @@ ANGLE_EXPORT void GL_APIENTRY GL_BindVertexArrayOES(GLuint array); ANGLE_EXPORT void GL_APIENTRY GL_DeleteVertexArraysOES(GLsizei n, const GLuint *arrays); ANGLE_EXPORT void GL_APIENTRY GL_GenVertexArraysOES(GLsizei n, GLuint *arrays); ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsVertexArrayOES(GLuint array); +// GL_OES_vertex_half_float + +// GL_OES_vertex_type_10_10_10_2 + // GL_OVR_multiview ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); // GL_OVR_multiview2 - -// EGL_ANGLE_explicit_context -ANGLE_EXPORT void GL_APIENTRY GL_ActiveShaderProgramContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_ActiveShaderProgramEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_ActiveTextureContextANGLE(GLeglContext ctx, GLenum texture); -ANGLE_EXPORT void GL_APIENTRY GL_AlphaFuncContextANGLE(GLeglContext ctx, GLenum func, GLfloat ref); -ANGLE_EXPORT void GL_APIENTRY GL_AlphaFuncxContextANGLE(GLeglContext ctx, GLenum func, GLfixed ref); -ANGLE_EXPORT void GL_APIENTRY GL_AttachShaderContextANGLE(GLeglContext ctx, - GLuint program, - GLuint shader); -ANGLE_EXPORT void GL_APIENTRY GL_BeginQueryContextANGLE(GLeglContext ctx, GLenum target, GLuint id); -ANGLE_EXPORT void GL_APIENTRY GL_BeginQueryEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint id); -ANGLE_EXPORT void GL_APIENTRY GL_BeginTransformFeedbackContextANGLE(GLeglContext ctx, - GLenum primitiveMode); -ANGLE_EXPORT void GL_APIENTRY GL_BindAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_BindBufferContextANGLE(GLeglContext ctx, - GLenum target, - GLuint buffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindBufferBaseContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer, - GLintptr offset, - GLsizeiptr size); -ANGLE_EXPORT void GL_APIENTRY GL_BindFragDataLocationEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint color, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_BindFragDataLocationIndexedEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint colorNumber, - GLuint index, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_BindFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLuint framebuffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindFramebufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint framebuffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindImageTextureContextANGLE(GLeglContext ctx, - GLuint unit, - GLuint texture, - GLint level, - GLboolean layered, - GLint layer, - GLenum access, - GLenum format); -ANGLE_EXPORT void GL_APIENTRY GL_BindProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline); -ANGLE_EXPORT void GL_APIENTRY GL_BindProgramPipelineEXTContextANGLE(GLeglContext ctx, - GLuint pipeline); -ANGLE_EXPORT void GL_APIENTRY GL_BindRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer); -ANGLE_EXPORT void GL_APIENTRY GL_BindSamplerContextANGLE(GLeglContext ctx, - GLuint unit, - GLuint sampler); -ANGLE_EXPORT void GL_APIENTRY GL_BindTextureContextANGLE(GLeglContext ctx, - GLenum target, - GLuint texture); -ANGLE_EXPORT void GL_APIENTRY GL_BindTransformFeedbackContextANGLE(GLeglContext ctx, - GLenum target, - GLuint id); -ANGLE_EXPORT void GL_APIENTRY GL_BindVertexArrayContextANGLE(GLeglContext ctx, GLuint array); -ANGLE_EXPORT void GL_APIENTRY GL_BindVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array); -ANGLE_EXPORT void GL_APIENTRY GL_BindVertexBufferContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint buffer, - GLintptr offset, - GLsizei stride); -ANGLE_EXPORT void GL_APIENTRY GL_BlendBarrierContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_BlendBarrierKHRContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_BlendColorContextANGLE(GLeglContext ctx, - GLfloat red, - GLfloat green, - GLfloat blue, - GLfloat alpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateContextANGLE(GLeglContext ctx, - GLenum modeRGB, - GLenum modeAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_BlendEquationiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFuncContextANGLE(GLeglContext ctx, - GLenum sfactor, - GLenum dfactor); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFuncSeparateContextANGLE(GLeglContext ctx, - GLenum sfactorRGB, - GLenum dfactorRGB, - GLenum sfactorAlpha, - GLenum dfactorAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFuncSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFuncSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFuncSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFunciContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum src, - GLenum dst); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFunciEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum src, - GLenum dst); -ANGLE_EXPORT void GL_APIENTRY GL_BlendFunciOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum src, - GLenum dst); -ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter); -ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferANGLEContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter); -ANGLE_EXPORT void GL_APIENTRY GL_BlitFramebufferNVContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter); -ANGLE_EXPORT void GL_APIENTRY GL_BufferDataContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLenum usage); -ANGLE_EXPORT void GL_APIENTRY GL_BufferStorageEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLbitfield flags); -ANGLE_EXPORT void GL_APIENTRY -GL_BufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags); -ANGLE_EXPORT void GL_APIENTRY GL_BufferStorageMemEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - GLuint memory, - GLuint64 offset); -ANGLE_EXPORT void GL_APIENTRY GL_BufferSubDataContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - const void *data); -ANGLE_EXPORT GLenum GL_APIENTRY GL_CheckFramebufferStatusContextANGLE(GLeglContext ctx, - GLenum target); -ANGLE_EXPORT GLenum GL_APIENTRY GL_CheckFramebufferStatusOESContextANGLE(GLeglContext ctx, - GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_ClearContextANGLE(GLeglContext ctx, GLbitfield mask); -ANGLE_EXPORT void GL_APIENTRY GL_ClearBufferfiContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - GLfloat depth, - GLint stencil); -ANGLE_EXPORT void GL_APIENTRY GL_ClearBufferfvContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ClearBufferivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ClearBufferuivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ClearColorContextANGLE(GLeglContext ctx, - GLfloat red, - GLfloat green, - GLfloat blue, - GLfloat alpha); -ANGLE_EXPORT void GL_APIENTRY GL_ClearColorxContextANGLE(GLeglContext ctx, - GLfixed red, - GLfixed green, - GLfixed blue, - GLfixed alpha); -ANGLE_EXPORT void GL_APIENTRY GL_ClearDepthfContextANGLE(GLeglContext ctx, GLfloat d); -ANGLE_EXPORT void GL_APIENTRY GL_ClearDepthxContextANGLE(GLeglContext ctx, GLfixed depth); -ANGLE_EXPORT void GL_APIENTRY GL_ClearStencilContextANGLE(GLeglContext ctx, GLint s); -ANGLE_EXPORT void GL_APIENTRY GL_ClientActiveTextureContextANGLE(GLeglContext ctx, GLenum texture); -ANGLE_EXPORT GLenum GL_APIENTRY GL_ClientWaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout); -ANGLE_EXPORT void GL_APIENTRY GL_ClipControlEXTContextANGLE(GLeglContext ctx, - GLenum origin, - GLenum depth); -ANGLE_EXPORT void GL_APIENTRY GL_ClipPlanefContextANGLE(GLeglContext ctx, - GLenum p, - const GLfloat *eqn); -ANGLE_EXPORT void GL_APIENTRY GL_ClipPlanexContextANGLE(GLeglContext ctx, - GLenum plane, - const GLfixed *equation); -ANGLE_EXPORT void GL_APIENTRY -GL_Color4fContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -ANGLE_EXPORT void GL_APIENTRY -GL_Color4ubContextANGLE(GLeglContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -ANGLE_EXPORT void GL_APIENTRY -GL_Color4xContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -ANGLE_EXPORT void GL_APIENTRY GL_ColorMaskContextANGLE(GLeglContext ctx, - GLboolean red, - GLboolean green, - GLboolean blue, - GLboolean alpha); -ANGLE_EXPORT void GL_APIENTRY GL_ColorMaskiContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a); -ANGLE_EXPORT void GL_APIENTRY GL_ColorMaskiEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a); -ANGLE_EXPORT void GL_APIENTRY GL_ColorMaskiOESContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a); -ANGLE_EXPORT void GL_APIENTRY GL_ColorPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_CompileShaderContextANGLE(GLeglContext ctx, GLuint shader); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data); -ANGLE_EXPORT void GL_APIENTRY GL_CopyBufferSubDataContextANGLE(GLeglContext ctx, - GLenum readTarget, - GLenum writeTarget, - GLintptr readOffset, - GLintptr writeOffset, - GLsizeiptr size); -ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth); -ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataEXTContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth); -ANGLE_EXPORT void GL_APIENTRY GL_CopyImageSubDataOESContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLint border); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_CreateMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *memoryObjects); -ANGLE_EXPORT GLuint GL_APIENTRY GL_CreateProgramContextANGLE(GLeglContext ctx); -ANGLE_EXPORT GLuint GL_APIENTRY GL_CreateShaderContextANGLE(GLeglContext ctx, GLenum type); -ANGLE_EXPORT GLuint GL_APIENTRY GL_CreateShaderProgramvContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar *const *strings); -ANGLE_EXPORT GLuint GL_APIENTRY GL_CreateShaderProgramvEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar **strings); -ANGLE_EXPORT void GL_APIENTRY GL_CullFaceContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_CurrentPaletteMatrixOESContextANGLE(GLeglContext ctx, - GLuint matrixpaletteindex); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageCallbackContextANGLE(GLeglContext ctx, - GLDEBUGPROC callback, - const void *userParam); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageCallbackKHRContextANGLE(GLeglContext ctx, - GLDEBUGPROCKHR callback, - const void *userParam); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageControlContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageControlKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageInsertContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf); -ANGLE_EXPORT void GL_APIENTRY GL_DebugMessageInsertKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteBuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *buffers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteFencesNVContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *fences); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteFramebuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteFramebuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *memoryObjects); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteProgramContextANGLE(GLeglContext ctx, GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteProgramPipelinesContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteQueriesContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteQueriesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteRenderbuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteSamplersContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *samplers); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteSemaphoresEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *semaphores); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteShaderContextANGLE(GLeglContext ctx, GLuint shader); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteSyncContextANGLE(GLeglContext ctx, GLsync sync); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteTexturesContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *textures); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteTransformFeedbacksContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteVertexArraysContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *arrays); -ANGLE_EXPORT void GL_APIENTRY GL_DeleteVertexArraysOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *arrays); -ANGLE_EXPORT void GL_APIENTRY GL_DepthFuncContextANGLE(GLeglContext ctx, GLenum func); -ANGLE_EXPORT void GL_APIENTRY GL_DepthMaskContextANGLE(GLeglContext ctx, GLboolean flag); -ANGLE_EXPORT void GL_APIENTRY GL_DepthRangefContextANGLE(GLeglContext ctx, GLfloat n, GLfloat f); -ANGLE_EXPORT void GL_APIENTRY GL_DepthRangexContextANGLE(GLeglContext ctx, GLfixed n, GLfixed f); -ANGLE_EXPORT void GL_APIENTRY GL_DetachShaderContextANGLE(GLeglContext ctx, - GLuint program, - GLuint shader); -ANGLE_EXPORT void GL_APIENTRY GL_DisableContextANGLE(GLeglContext ctx, GLenum cap); -ANGLE_EXPORT void GL_APIENTRY GL_DisableClientStateContextANGLE(GLeglContext ctx, GLenum array); -ANGLE_EXPORT void GL_APIENTRY GL_DisableVertexAttribArrayContextANGLE(GLeglContext ctx, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_DisableiContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_DisableiEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_DisableiOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_DiscardFramebufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments); -ANGLE_EXPORT void GL_APIENTRY GL_DispatchComputeContextANGLE(GLeglContext ctx, - GLuint num_groups_x, - GLuint num_groups_y, - GLuint num_groups_z); -ANGLE_EXPORT void GL_APIENTRY GL_DispatchComputeIndirectContextANGLE(GLeglContext ctx, - GLintptr indirect); -ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count); -ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - const void *indirect); -ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instancecount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei primcount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawArraysInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLint start, - GLsizei count, - GLsizei primcount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawBuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLenum *bufs); -ANGLE_EXPORT void GL_APIENTRY GL_DrawBuffersEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLenum *bufs); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - GLenum type, - const void *indirect); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsInstancedBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY -GL_DrawElementsInstancedBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY -GL_DrawElementsInstancedBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawElementsInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount); -ANGLE_EXPORT void GL_APIENTRY GL_DrawRangeElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices); -ANGLE_EXPORT void GL_APIENTRY GL_DrawRangeElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawRangeElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawRangeElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexfOESContextANGLE(GLeglContext ctx, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat width, - GLfloat height); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexfvOESContextANGLE(GLeglContext ctx, const GLfloat *coords); -ANGLE_EXPORT void GL_APIENTRY -GL_DrawTexiOESContextANGLE(GLeglContext ctx, GLint x, GLint y, GLint z, GLint width, GLint height); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexivOESContextANGLE(GLeglContext ctx, const GLint *coords); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexsOESContextANGLE(GLeglContext ctx, - GLshort x, - GLshort y, - GLshort z, - GLshort width, - GLshort height); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexsvOESContextANGLE(GLeglContext ctx, const GLshort *coords); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexxOESContextANGLE(GLeglContext ctx, - GLfixed x, - GLfixed y, - GLfixed z, - GLfixed width, - GLfixed height); -ANGLE_EXPORT void GL_APIENTRY GL_DrawTexxvOESContextANGLE(GLeglContext ctx, const GLfixed *coords); -ANGLE_EXPORT void GL_APIENTRY -GL_EGLImageTargetRenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image); -ANGLE_EXPORT void GL_APIENTRY GL_EGLImageTargetTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image); -ANGLE_EXPORT void GL_APIENTRY GL_EnableContextANGLE(GLeglContext ctx, GLenum cap); -ANGLE_EXPORT void GL_APIENTRY GL_EnableClientStateContextANGLE(GLeglContext ctx, GLenum array); -ANGLE_EXPORT void GL_APIENTRY GL_EnableVertexAttribArrayContextANGLE(GLeglContext ctx, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_EnableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_EnableiEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_EnableiOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_EndQueryContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_EndQueryEXTContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_EndTransformFeedbackContextANGLE(GLeglContext ctx); -ANGLE_EXPORT GLsync GL_APIENTRY GL_FenceSyncContextANGLE(GLeglContext ctx, - GLenum condition, - GLbitfield flags); -ANGLE_EXPORT void GL_APIENTRY GL_FinishContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_FinishFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -ANGLE_EXPORT void GL_APIENTRY GL_FlushContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_FlushMappedBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length); -ANGLE_EXPORT void GL_APIENTRY GL_FlushMappedBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length); -ANGLE_EXPORT void GL_APIENTRY GL_FogfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_FogfvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_FogxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_FogxvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfixed *param); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferFetchBarrierEXTContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTexture2DContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTexture2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLsizei samples); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTexture3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLint zoffset); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureLayerContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint layer); -ANGLE_EXPORT void GL_APIENTRY GL_FramebufferTextureMultiviewOVRContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint baseViewIndex, - GLsizei numViews); -ANGLE_EXPORT void GL_APIENTRY GL_FrontFaceContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_FrustumfContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f); -ANGLE_EXPORT void GL_APIENTRY GL_FrustumxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f); -ANGLE_EXPORT void GL_APIENTRY GL_GenBuffersContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *buffers); -ANGLE_EXPORT void GL_APIENTRY GL_GenFencesNVContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *fences); -ANGLE_EXPORT void GL_APIENTRY GL_GenFramebuffersContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *framebuffers); -ANGLE_EXPORT void GL_APIENTRY GL_GenFramebuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *framebuffers); -ANGLE_EXPORT void GL_APIENTRY GL_GenProgramPipelinesContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *pipelines); -ANGLE_EXPORT void GL_APIENTRY GL_GenProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *pipelines); -ANGLE_EXPORT void GL_APIENTRY GL_GenQueriesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_GenQueriesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_GenRenderbuffersContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *renderbuffers); -ANGLE_EXPORT void GL_APIENTRY GL_GenRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *renderbuffers); -ANGLE_EXPORT void GL_APIENTRY GL_GenSamplersContextANGLE(GLeglContext ctx, - GLsizei count, - GLuint *samplers); -ANGLE_EXPORT void GL_APIENTRY GL_GenSemaphoresEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *semaphores); -ANGLE_EXPORT void GL_APIENTRY GL_GenTexturesContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *textures); -ANGLE_EXPORT void GL_APIENTRY GL_GenTransformFeedbacksContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *ids); -ANGLE_EXPORT void GL_APIENTRY GL_GenVertexArraysContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *arrays); -ANGLE_EXPORT void GL_APIENTRY GL_GenVertexArraysOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *arrays); -ANGLE_EXPORT void GL_APIENTRY GL_GenerateMipmapContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_GenerateMipmapOESContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_GetActiveAttribContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetActiveUniformContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetActiveUniformBlockNameContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLsizei bufSize, - GLsizei *length, - GLchar *uniformBlockName); -ANGLE_EXPORT void GL_APIENTRY GL_GetActiveUniformBlockivContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetActiveUniformsivContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLuint *uniformIndices, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetAttachedShadersContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei maxCount, - GLsizei *count, - GLuint *shaders); -ANGLE_EXPORT GLint GL_APIENTRY GL_GetAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetBooleani_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLboolean *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetBooleanvContextANGLE(GLeglContext ctx, - GLenum pname, - GLboolean *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferParameteri64vContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferPointervContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferPointervOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_GetClipPlanefContextANGLE(GLeglContext ctx, - GLenum plane, - GLfloat *equation); -ANGLE_EXPORT void GL_APIENTRY GL_GetClipPlanexContextANGLE(GLeglContext ctx, - GLenum plane, - GLfixed *equation); -ANGLE_EXPORT GLuint GL_APIENTRY GL_GetDebugMessageLogContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog); -ANGLE_EXPORT GLuint GL_APIENTRY GL_GetDebugMessageLogKHRContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog); -ANGLE_EXPORT GLenum GL_APIENTRY GL_GetErrorContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_GetFenceivNVContextANGLE(GLeglContext ctx, - GLuint fence, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetFixedvContextANGLE(GLeglContext ctx, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetFloatvContextANGLE(GLeglContext ctx, - GLenum pname, - GLfloat *data); -ANGLE_EXPORT GLint GL_APIENTRY GL_GetFragDataIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name); -ANGLE_EXPORT GLint GL_APIENTRY GL_GetFragDataLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetFramebufferAttachmentParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY -GL_GetFramebufferAttachmentParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetFramebufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT GLenum GL_APIENTRY GL_GetGraphicsResetStatusContextANGLE(GLeglContext ctx); -ANGLE_EXPORT GLenum GL_APIENTRY GL_GetGraphicsResetStatusEXTContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_GetInteger64i_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint64 *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetInteger64vContextANGLE(GLeglContext ctx, - GLenum pname, - GLint64 *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetInteger64vEXTContextANGLE(GLeglContext ctx, - GLenum pname, - GLint64 *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetIntegeri_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetIntegervContextANGLE(GLeglContext ctx, - GLenum pname, - GLint *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetInternalformativContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetLightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetLightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetMaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetMaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetMultisamplefvContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val); -ANGLE_EXPORT void GL_APIENTRY GL_GetObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_GetObjectLabelEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei bufSize, - GLsizei *length, - GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_GetObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_GetObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_GetObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_GetPointervContextANGLE(GLeglContext ctx, - GLenum pname, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_GetPointervKHRContextANGLE(GLeglContext ctx, - GLenum pname, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramInfoLogContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramInterfaceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramPipelineInfoLogContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramPipelineInfoLogEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramPipelineivContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramPipelineivEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params); -ANGLE_EXPORT GLuint GL_APIENTRY GL_GetProgramResourceIndexContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name); -ANGLE_EXPORT GLint GL_APIENTRY GL_GetProgramResourceLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name); -ANGLE_EXPORT GLint GL_APIENTRY -GL_GetProgramResourceLocationIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramResourceNameContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramResourceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei propCount, - const GLenum *props, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjecti64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectui64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectuivContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectuivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetRenderbufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetRenderbufferParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - GLuint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetShaderInfoLogContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog); -ANGLE_EXPORT void GL_APIENTRY GL_GetShaderPrecisionFormatContextANGLE(GLeglContext ctx, - GLenum shadertype, - GLenum precisiontype, - GLint *range, - GLint *precision); -ANGLE_EXPORT void GL_APIENTRY GL_GetShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *source); -ANGLE_EXPORT void GL_APIENTRY GL_GetShaderivContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLint *params); -ANGLE_EXPORT const GLubyte *GL_APIENTRY GL_GetStringContextANGLE(GLeglContext ctx, GLenum name); -ANGLE_EXPORT const GLubyte *GL_APIENTRY GL_GetStringiContextANGLE(GLeglContext ctx, - GLenum name, - GLuint index); -ANGLE_EXPORT void GL_APIENTRY GL_GetSyncivContextANGLE(GLeglContext ctx, - GLsync sync, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *values); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTransformFeedbackVaryingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLsizei *size, - GLenum *type, - GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetTranslatedShaderSourceANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufsize, - GLsizei *length, - GLchar *source); -ANGLE_EXPORT GLuint GL_APIENTRY GL_GetUniformBlockIndexContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *uniformBlockName); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformIndicesContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLchar *const *uniformNames, - GLuint *uniformIndices); -ANGLE_EXPORT GLint GL_APIENTRY GL_GetUniformLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUnsignedBytevEXTContextANGLE(GLeglContext ctx, - GLenum pname, - GLubyte *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetUnsignedBytei_vEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLubyte *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribIivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribIuivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribPointervContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - void **pointer); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribfvContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformfvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_HintContextANGLE(GLeglContext ctx, GLenum target, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_ImportMemoryFdEXTContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLint fd); -ANGLE_EXPORT void GL_APIENTRY GL_ImportSemaphoreFdEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLint fd); -ANGLE_EXPORT void GL_APIENTRY GL_InsertEventMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker); -ANGLE_EXPORT void GL_APIENTRY GL_InvalidateFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments); -ANGLE_EXPORT void GL_APIENTRY GL_InvalidateSubFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments, - GLint x, - GLint y, - GLsizei width, - GLsizei height); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsBufferContextANGLE(GLeglContext ctx, GLuint buffer); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsEnabledContextANGLE(GLeglContext ctx, GLenum cap); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsEnablediContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsEnablediEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsEnablediOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsFramebufferContextANGLE(GLeglContext ctx, - GLuint framebuffer); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsFramebufferOESContextANGLE(GLeglContext ctx, - GLuint framebuffer); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsMemoryObjectEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsProgramContextANGLE(GLeglContext ctx, GLuint program); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsProgramPipelineContextANGLE(GLeglContext ctx, - GLuint pipeline); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsProgramPipelineEXTContextANGLE(GLeglContext ctx, - GLuint pipeline); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsQueryContextANGLE(GLeglContext ctx, GLuint id); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsQueryEXTContextANGLE(GLeglContext ctx, GLuint id); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsRenderbufferContextANGLE(GLeglContext ctx, - GLuint renderbuffer); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsRenderbufferOESContextANGLE(GLeglContext ctx, - GLuint renderbuffer); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsSamplerContextANGLE(GLeglContext ctx, GLuint sampler); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsShaderContextANGLE(GLeglContext ctx, GLuint shader); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsSyncContextANGLE(GLeglContext ctx, GLsync sync); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsTextureContextANGLE(GLeglContext ctx, GLuint texture); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsTransformFeedbackContextANGLE(GLeglContext ctx, GLuint id); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsVertexArrayContextANGLE(GLeglContext ctx, GLuint array); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_IsVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array); -ANGLE_EXPORT void GL_APIENTRY GL_LabelObjectEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei length, - const GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_LightModelfContextANGLE(GLeglContext ctx, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_LightModelfvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_LightModelxContextANGLE(GLeglContext ctx, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_LightModelxvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfixed *param); -ANGLE_EXPORT void GL_APIENTRY GL_LightfContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_LightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_LightxContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_LightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_LineWidthContextANGLE(GLeglContext ctx, GLfloat width); -ANGLE_EXPORT void GL_APIENTRY GL_LineWidthxContextANGLE(GLeglContext ctx, GLfixed width); -ANGLE_EXPORT void GL_APIENTRY GL_LinkProgramContextANGLE(GLeglContext ctx, GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_LoadIdentityContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_LoadMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m); -ANGLE_EXPORT void GL_APIENTRY GL_LoadMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m); -ANGLE_EXPORT void GL_APIENTRY GL_LoadPaletteFromModelViewMatrixOESContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_LogicOpContextANGLE(GLeglContext ctx, GLenum opcode); -ANGLE_EXPORT void *GL_APIENTRY GL_MapBufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum access); -ANGLE_EXPORT void *GL_APIENTRY GL_MapBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access); -ANGLE_EXPORT void *GL_APIENTRY GL_MapBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access); -ANGLE_EXPORT void GL_APIENTRY GL_MaterialfContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_MaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_MaterialxContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_MaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfixed *param); -ANGLE_EXPORT void GL_APIENTRY GL_MatrixIndexPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_MatrixModeContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_MaxShaderCompilerThreadsKHRContextANGLE(GLeglContext ctx, - GLuint count); -ANGLE_EXPORT void GL_APIENTRY GL_MemoryBarrierContextANGLE(GLeglContext ctx, GLbitfield barriers); -ANGLE_EXPORT void GL_APIENTRY GL_MemoryBarrierByRegionContextANGLE(GLeglContext ctx, - GLbitfield barriers); -ANGLE_EXPORT void GL_APIENTRY GL_MemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_MinSampleShadingContextANGLE(GLeglContext ctx, GLfloat value); -ANGLE_EXPORT void GL_APIENTRY GL_MinSampleShadingOESContextANGLE(GLeglContext ctx, GLfloat value); -ANGLE_EXPORT void GL_APIENTRY GL_MultMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m); -ANGLE_EXPORT void GL_APIENTRY GL_MultMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m); -ANGLE_EXPORT void GL_APIENTRY -GL_MultiDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *count, - GLenum type, - const void *const *indices, - GLsizei primcount, - const GLint *basevertex); -ANGLE_EXPORT void GL_APIENTRY GL_MultiTexCoord4fContextANGLE(GLeglContext ctx, - GLenum target, - GLfloat s, - GLfloat t, - GLfloat r, - GLfloat q); -ANGLE_EXPORT void GL_APIENTRY GL_MultiTexCoord4xContextANGLE(GLeglContext ctx, - GLenum texture, - GLfixed s, - GLfixed t, - GLfixed r, - GLfixed q); -ANGLE_EXPORT void GL_APIENTRY -GL_NamedBufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLuint buffer, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags); -ANGLE_EXPORT void GL_APIENTRY GL_Normal3fContextANGLE(GLeglContext ctx, - GLfloat nx, - GLfloat ny, - GLfloat nz); -ANGLE_EXPORT void GL_APIENTRY GL_Normal3xContextANGLE(GLeglContext ctx, - GLfixed nx, - GLfixed ny, - GLfixed nz); -ANGLE_EXPORT void GL_APIENTRY GL_NormalPointerContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_ObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_ObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_ObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_ObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label); -ANGLE_EXPORT void GL_APIENTRY GL_OrthofContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f); -ANGLE_EXPORT void GL_APIENTRY GL_OrthoxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f); -ANGLE_EXPORT void GL_APIENTRY GL_PatchParameteriContextANGLE(GLeglContext ctx, - GLenum pname, - GLint value); -ANGLE_EXPORT void GL_APIENTRY GL_PatchParameteriEXTContextANGLE(GLeglContext ctx, - GLenum pname, - GLint value); -ANGLE_EXPORT void GL_APIENTRY GL_PauseTransformFeedbackContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_PixelStoreiContextANGLE(GLeglContext ctx, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_PointParameterfContextANGLE(GLeglContext ctx, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_PointParameterfvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_PointParameterxContextANGLE(GLeglContext ctx, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_PointParameterxvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_PointSizeContextANGLE(GLeglContext ctx, GLfloat size); -ANGLE_EXPORT void GL_APIENTRY GL_PointSizePointerOESContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_PointSizexContextANGLE(GLeglContext ctx, GLfixed size); -ANGLE_EXPORT void GL_APIENTRY GL_PolygonOffsetContextANGLE(GLeglContext ctx, - GLfloat factor, - GLfloat units); -ANGLE_EXPORT void GL_APIENTRY GL_PolygonOffsetxContextANGLE(GLeglContext ctx, - GLfixed factor, - GLfixed units); -ANGLE_EXPORT void GL_APIENTRY GL_PopDebugGroupContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_PopDebugGroupKHRContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_PopGroupMarkerEXTContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_PopMatrixContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_PrimitiveBoundingBoxContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW); -ANGLE_EXPORT void GL_APIENTRY GL_PrimitiveBoundingBoxEXTContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLsizei length); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLint length); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramParameteriContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramParameteriEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform1uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform2uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform3uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniform4uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix2x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix3x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_ProgramUniformMatrix4x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_PushDebugGroupContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message); -ANGLE_EXPORT void GL_APIENTRY GL_PushDebugGroupKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message); -ANGLE_EXPORT void GL_APIENTRY GL_PushGroupMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker); -ANGLE_EXPORT void GL_APIENTRY GL_PushMatrixContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_QueryCounterEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum target); -ANGLE_EXPORT GLbitfield GL_APIENTRY GL_QueryMatrixxOESContextANGLE(GLeglContext ctx, - GLfixed *mantissa, - GLint *exponent); -ANGLE_EXPORT void GL_APIENTRY GL_ReadBufferContextANGLE(GLeglContext ctx, GLenum src); -ANGLE_EXPORT void GL_APIENTRY GL_ReadPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_ReadnPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data); -ANGLE_EXPORT void GL_APIENTRY GL_ReadnPixelsEXTContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data); -ANGLE_EXPORT void GL_APIENTRY GL_ReleaseShaderCompilerContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY GL_RenderbufferStorageContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_RenderbufferStorageMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY -GL_RenderbufferStorageMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY -GL_RenderbufferStorageMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_RenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_ResumeTransformFeedbackContextANGLE(GLeglContext ctx); -ANGLE_EXPORT void GL_APIENTRY -GL_RotatefContextANGLE(GLeglContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -ANGLE_EXPORT void GL_APIENTRY -GL_RotatexContextANGLE(GLeglContext ctx, GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -ANGLE_EXPORT void GL_APIENTRY GL_SampleCoverageContextANGLE(GLeglContext ctx, - GLfloat value, - GLboolean invert); -ANGLE_EXPORT void GL_APIENTRY GL_SampleCoveragexContextANGLE(GLeglContext ctx, - GLclampx value, - GLboolean invert); -ANGLE_EXPORT void GL_APIENTRY GL_SampleMaskiContextANGLE(GLeglContext ctx, - GLuint maskNumber, - GLbitfield mask); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterfContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLfloat *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameteriContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_ScalefContextANGLE(GLeglContext ctx, - GLfloat x, - GLfloat y, - GLfloat z); -ANGLE_EXPORT void GL_APIENTRY GL_ScalexContextANGLE(GLeglContext ctx, - GLfixed x, - GLfixed y, - GLfixed z); -ANGLE_EXPORT void GL_APIENTRY -GL_ScissorContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_SemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - const GLuint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_SetFenceNVContextANGLE(GLeglContext ctx, - GLuint fence, - GLenum condition); -ANGLE_EXPORT void GL_APIENTRY GL_ShadeModelContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_ShaderBinaryContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *shaders, - GLenum binaryformat, - const void *binary, - GLsizei length); -ANGLE_EXPORT void GL_APIENTRY GL_ShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei count, - const GLchar *const *string, - const GLint *length); -ANGLE_EXPORT void GL_APIENTRY GL_SignalSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *dstLayouts); -ANGLE_EXPORT void GL_APIENTRY GL_StencilFuncContextANGLE(GLeglContext ctx, - GLenum func, - GLint ref, - GLuint mask); -ANGLE_EXPORT void GL_APIENTRY GL_StencilFuncSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum func, - GLint ref, - GLuint mask); -ANGLE_EXPORT void GL_APIENTRY GL_StencilMaskContextANGLE(GLeglContext ctx, GLuint mask); -ANGLE_EXPORT void GL_APIENTRY GL_StencilMaskSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLuint mask); -ANGLE_EXPORT void GL_APIENTRY GL_StencilOpContextANGLE(GLeglContext ctx, - GLenum fail, - GLenum zfail, - GLenum zpass); -ANGLE_EXPORT void GL_APIENTRY GL_StencilOpSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum sfail, - GLenum dpfail, - GLenum dppass); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_TestFenceNVContextANGLE(GLeglContext ctx, GLuint fence); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size); -ANGLE_EXPORT void GL_APIENTRY GL_TexBufferRangeOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size); -ANGLE_EXPORT void GL_APIENTRY GL_TexCoordPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnvfContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnviContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnvxContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_TexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexGenfOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_TexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexGeniOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_TexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexGenxOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_TexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterfContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat param); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterxContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed param); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorage1DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorage2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorage2DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorage3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorage3DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorage3DMultisampleOESContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorageMem2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorageMem2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorageMem3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorageMem3DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset); -ANGLE_EXPORT void GL_APIENTRY GL_TexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY -GL_TransformFeedbackVaryingsContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei count, - const GLchar *const *varyings, - GLenum bufferMode); -ANGLE_EXPORT void GL_APIENTRY GL_TranslatefContextANGLE(GLeglContext ctx, - GLfloat x, - GLfloat y, - GLfloat z); -ANGLE_EXPORT void GL_APIENTRY GL_TranslatexContextANGLE(GLeglContext ctx, - GLfixed x, - GLfixed y, - GLfixed z); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1fContextANGLE(GLeglContext ctx, - GLint location, - GLfloat v0); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1iContextANGLE(GLeglContext ctx, GLint location, GLint v0); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1uiContextANGLE(GLeglContext ctx, - GLint location, - GLuint v0); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform1uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2fContextANGLE(GLeglContext ctx, - GLint location, - GLfloat v0, - GLfloat v1); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2iContextANGLE(GLeglContext ctx, - GLint location, - GLint v0, - GLint v1); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2uiContextANGLE(GLeglContext ctx, - GLint location, - GLuint v0, - GLuint v1); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform2uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY -GL_Uniform3fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY -GL_Uniform3iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform3ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY -GL_Uniform3uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform3uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform4fContextANGLE(GLeglContext ctx, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY -GL_Uniform4iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform4ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform4uiContextANGLE(GLeglContext ctx, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3); -ANGLE_EXPORT void GL_APIENTRY GL_Uniform4uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformBlockBindingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLuint uniformBlockBinding); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT void GL_APIENTRY GL_UniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_UnmapBufferContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT GLboolean GL_APIENTRY GL_UnmapBufferOESContextANGLE(GLeglContext ctx, GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_UseProgramContextANGLE(GLeglContext ctx, GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_UseProgramStagesContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_UseProgramStagesEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_ValidateProgramContextANGLE(GLeglContext ctx, GLuint program); -ANGLE_EXPORT void GL_APIENTRY GL_ValidateProgramPipelineContextANGLE(GLeglContext ctx, - GLuint pipeline); -ANGLE_EXPORT void GL_APIENTRY GL_ValidateProgramPipelineEXTContextANGLE(GLeglContext ctx, - GLuint pipeline); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib1fContextANGLE(GLeglContext ctx, - GLuint index, - GLfloat x); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib1fvContextANGLE(GLeglContext ctx, - GLuint index, - const GLfloat *v); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib2fContextANGLE(GLeglContext ctx, - GLuint index, - GLfloat x, - GLfloat y); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib2fvContextANGLE(GLeglContext ctx, - GLuint index, - const GLfloat *v); -ANGLE_EXPORT void GL_APIENTRY -GL_VertexAttrib3fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib3fvContextANGLE(GLeglContext ctx, - GLuint index, - const GLfloat *v); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib4fContextANGLE(GLeglContext ctx, - GLuint index, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat w); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttrib4fvContextANGLE(GLeglContext ctx, - GLuint index, - const GLfloat *v); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribBindingContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLuint bindingindex); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribDivisorContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribDivisorANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribDivisorEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLboolean normalized, - GLuint relativeoffset); -ANGLE_EXPORT void GL_APIENTRY -GL_VertexAttribI4iContextANGLE(GLeglContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribI4ivContextANGLE(GLeglContext ctx, - GLuint index, - const GLint *v); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribI4uiContextANGLE(GLeglContext ctx, - GLuint index, - GLuint x, - GLuint y, - GLuint z, - GLuint w); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribI4uivContextANGLE(GLeglContext ctx, - GLuint index, - const GLuint *v); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribIFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLuint relativeoffset); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribIPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_VertexAttribPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLboolean normalized, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_VertexBindingDivisorContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint divisor); -ANGLE_EXPORT void GL_APIENTRY GL_VertexPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY -GL_ViewportContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); -ANGLE_EXPORT void GL_APIENTRY GL_WaitSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *srcLayouts); -ANGLE_EXPORT void GL_APIENTRY GL_WaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout); -ANGLE_EXPORT void GL_APIENTRY GL_WeightPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer); -ANGLE_EXPORT void GL_APIENTRY GL_BindUniformLocationCHROMIUMContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_CoverageModulationCHROMIUMContextANGLE(GLeglContext ctx, - GLenum components); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -ANGLE_EXPORT void GL_APIENTRY -GL_CopySubTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLint width, - GLint height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLuint destId); -ANGLE_EXPORT void GL_APIENTRY GL_RequestExtensionANGLEContextANGLE(GLeglContext ctx, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_DisableExtensionANGLEContextANGLE(GLeglContext ctx, - const GLchar *name); -ANGLE_EXPORT void GL_APIENTRY GL_GetBooleanvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLboolean *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetFloatvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY -GL_GetFramebufferAttachmentParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetIntegervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetProgramivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetRenderbufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetShaderivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **pointer); -ANGLE_EXPORT void GL_APIENTRY GL_ReadPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLsizei xoffset, - GLsizei yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data); -ANGLE_EXPORT void GL_APIENTRY GL_CompressedTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_GetIntegeri_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetInternalformativRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetVertexAttribIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY -GL_GetActiveUniformBlockivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetInteger64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetInteger64i_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint64 *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetBufferParameteri64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLuint pname, - GLsizei bufSize, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLfloat *param); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetFramebufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY -GL_GetProgramInterfaceivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetBooleani_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLboolean *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetMultisamplefvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLfloat *val); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetPointervRobustANGLERobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params); -ANGLE_EXPORT void GL_APIENTRY GL_ReadnPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *data); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetnUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_TexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLint *param); -ANGLE_EXPORT void GL_APIENTRY GL_SamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLuint *param); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjecti64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetQueryObjectui64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint64 *params); -ANGLE_EXPORT void GL_APIENTRY GL_CopyTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -ANGLE_EXPORT void GL_APIENTRY GL_CopySubTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLint z, - GLint width, - GLint height, - GLint depth, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorage2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterivANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexLevelParameterfvANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params); -ANGLE_EXPORT void GL_APIENTRY GL_MultiDrawArraysANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY -GL_MultiDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY GL_MultiDrawElementsANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY -GL_MultiDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY -GL_DrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instanceCount, - GLuint baseInstance); -ANGLE_EXPORT void GL_APIENTRY -GL_DrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const GLvoid *indices, - GLsizei instanceCounts, - GLint baseVertex, - GLuint baseInstance); -ANGLE_EXPORT void GL_APIENTRY -GL_MultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - const GLuint *baseInstances, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY -GL_MultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - const GLint *baseVertices, - const GLuint *baseInstances, - GLsizei drawcount); -ANGLE_EXPORT void GL_APIENTRY GL_GetMultisamplefvANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val); -ANGLE_EXPORT void GL_APIENTRY GL_SampleMaskiANGLEContextANGLE(GLeglContext ctx, - GLuint maskNumber, - GLbitfield mask); -ANGLE_EXPORT void GL_APIENTRY GL_ProvokingVertexANGLEContextANGLE(GLeglContext ctx, GLenum mode); -ANGLE_EXPORT void GL_APIENTRY GL_LoseContextCHROMIUMContextANGLE(GLeglContext ctx, - GLenum current, - GLenum other); -ANGLE_EXPORT void GL_APIENTRY GL_TexImage2DExternalANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type); -ANGLE_EXPORT void GL_APIENTRY GL_InvalidateTextureANGLEContextANGLE(GLeglContext ctx, - GLenum target); -ANGLE_EXPORT void GL_APIENTRY GL_GetTexImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum format, - GLenum type, - void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_GetRenderbufferImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum format, - GLenum type, - void *pixels); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorageMemFlags2DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorageMemFlags2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags); -ANGLE_EXPORT void GL_APIENTRY GL_TexStorageMemFlags3DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags); -ANGLE_EXPORT void GL_APIENTRY -GL_TexStorageMemFlags3DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags); -ANGLE_EXPORT void GL_APIENTRY GL_ImportMemoryZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLuint handle); -ANGLE_EXPORT void GL_APIENTRY GL_ImportSemaphoreZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLuint handle); } // extern "C" #endif // LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_ diff --git a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.cpp @@ -53,11 +53,12 @@ { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateDrawArraysInstancedBaseInstanceANGLE( - context, modePacked, first, count, instanceCount, baseInstance)); + context, angle::EntryPoint::GLDrawArraysInstancedBaseInstanceANGLE, + modePacked, first, count, instanceCount, baseInstance)); if (isCallValid) { context->drawArraysInstancedBaseInstance(modePacked, first, count, instanceCount, baseInstance); } @@ -90,13 +91,14 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE( - context, modePacked, count, typePacked, indices, - instanceCounts, baseVertex, baseInstance)); + (context->skipValidation() || + ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE( + context, angle::EntryPoint::GLDrawElementsInstancedBaseVertexBaseInstanceANGLE, + modePacked, count, typePacked, indices, instanceCounts, baseVertex, baseInstance)); if (isCallValid) { context->drawElementsInstancedBaseVertexBaseInstance( modePacked, count, typePacked, indices, instanceCounts, baseVertex, baseInstance); } @@ -129,11 +131,12 @@ PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateMultiDrawArraysInstancedBaseInstanceANGLE( - context, modePacked, firsts, counts, instanceCounts, baseInstances, drawcount)); + context, angle::EntryPoint::GLMultiDrawArraysInstancedBaseInstanceANGLE, + modePacked, firsts, counts, instanceCounts, baseInstances, drawcount)); if (isCallValid) { context->multiDrawArraysInstancedBaseInstance(modePacked, firsts, counts, instanceCounts, baseInstances, drawcount); } @@ -168,14 +171,17 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE( - context, modePacked, counts, typePacked, indices, instanceCounts, - baseVertices, baseInstances, drawcount)); + bool isCallValid = + (context->skipValidation() || + ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE( + context, + angle::EntryPoint::GLMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE, + modePacked, counts, typePacked, indices, instanceCounts, baseVertices, + baseInstances, drawcount)); if (isCallValid) { context->multiDrawElementsInstancedBaseVertexBaseInstance( modePacked, counts, typePacked, indices, instanceCounts, baseVertices, baseInstances, drawcount); @@ -216,15 +222,16 @@ { TextureID sourceIdPacked = PackParam(sourceId); TextureTarget destTargetPacked = PackParam(destTarget); TextureID destIdPacked = PackParam(destId); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexture3DANGLE( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateCopyTexture3DANGLE(context, angle::EntryPoint::GLCopyTexture3DANGLE, + sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, + destLevel, internalFormat, destType, unpackFlipY, + unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); if (isCallValid) { context->copyTexture3D(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, destLevel, internalFormat, destType, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); @@ -274,14 +281,14 @@ TextureTarget destTargetPacked = PackParam(destTarget); TextureID destIdPacked = PackParam(destId); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCopySubTexture3DANGLE(context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, xoffset, yoffset, zoffset, x, y, - z, width, height, depth, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); + ValidateCopySubTexture3DANGLE( + context, angle::EntryPoint::GLCopySubTexture3DANGLE, sourceIdPacked, sourceLevel, + destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, zoffset, x, y, z, + width, height, depth, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); if (isCallValid) { context->copySubTexture3D(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, zoffset, x, y, z, width, height, depth, unpackFlipY, unpackPremultiplyAlpha, @@ -296,10 +303,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_ANGLE_depth_texture + // GL_ANGLE_framebuffer_blit void GL_APIENTRY GL_BlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, @@ -320,12 +329,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBlitFramebufferANGLE(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); + ValidateBlitFramebufferANGLE( + context, angle::EntryPoint::GLBlitFramebufferANGLE, srcX0, srcY0, + srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)); if (isCallValid) { context->blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } @@ -354,11 +364,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateRenderbufferStorageMultisampleANGLE( - context, target, samples, internalformat, width, height)); + context, angle::EntryPoint::GLRenderbufferStorageMultisampleANGLE, + target, samples, internalformat, width, height)); if (isCallValid) { context->renderbufferStorageMultisample(target, samples, internalformat, width, height); } ANGLE_CAPTURE(RenderbufferStorageMultisampleANGLE, isCallValid, context, target, samples, @@ -384,13 +395,13 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexImageANGLE(context, targetPacked, level, format, type, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexImageANGLE(context, angle::EntryPoint::GLGetTexImageANGLE, + targetPacked, level, format, type, pixels)); if (isCallValid) { context->getTexImage(targetPacked, level, format, type, pixels); } ANGLE_CAPTURE(GetTexImageANGLE, isCallValid, context, targetPacked, level, format, type, @@ -400,10 +411,38 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +void GL_APIENTRY GL_GetCompressedTexImageANGLE(GLenum target, GLint level, void *pixels) +{ + Context *context = GetValidGlobalContext(); + EVENT(context, GLGetCompressedTexImageANGLE, + "context = %d, target = %s, level = %d, pixels = 0x%016" PRIxPTR "", CID(context), + GLenumToString(GLenumGroup::TextureTarget, target), level, (uintptr_t)pixels); + + if (context) + { + TextureTarget targetPacked = PackParam(target); + std::unique_lock shareContextLock = GetContextLock(context); + bool isCallValid = (context->skipValidation() || + ValidateGetCompressedTexImageANGLE( + context, angle::EntryPoint::GLGetCompressedTexImageANGLE, + targetPacked, level, pixels)); + if (isCallValid) + { + context->getCompressedTexImage(targetPacked, level, pixels); + } + ANGLE_CAPTURE(GetCompressedTexImageANGLE, isCallValid, context, targetPacked, level, + pixels); + } + else + { + GenerateContextLostErrorOnCurrentGlobalContext(); + } +} + void GL_APIENTRY GL_GetRenderbufferImageANGLE(GLenum target, GLenum format, GLenum type, void *pixels) { @@ -415,13 +454,14 @@ GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetRenderbufferImageANGLE(context, target, format, type, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateGetRenderbufferImageANGLE( + context, angle::EntryPoint::GLGetRenderbufferImageANGLE, target, + format, type, pixels)); if (isCallValid) { context->getRenderbufferImage(target, format, type, pixels); } ANGLE_CAPTURE(GetRenderbufferImageANGLE, isCallValid, context, target, format, type, @@ -447,13 +487,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameterivANGLE(context, targetPacked, level, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexLevelParameterivANGLE( + context, angle::EntryPoint::GLGetTexLevelParameterivANGLE, + targetPacked, level, pname, params)); if (isCallValid) { context->getTexLevelParameteriv(targetPacked, level, pname, params); } ANGLE_CAPTURE(GetTexLevelParameterivANGLE, isCallValid, context, targetPacked, level, pname, @@ -478,13 +519,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameterfvANGLE(context, targetPacked, level, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexLevelParameterfvANGLE( + context, angle::EntryPoint::GLGetTexLevelParameterfvANGLE, + targetPacked, level, pname, params)); if (isCallValid) { context->getTexLevelParameterfv(targetPacked, level, pname, params); } ANGLE_CAPTURE(GetTexLevelParameterfvANGLE, isCallValid, context, targetPacked, level, pname, @@ -509,13 +551,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDrawArraysInstancedANGLE(context, modePacked, first, count, primcount)); + bool isCallValid = (context->skipValidation() || + ValidateDrawArraysInstancedANGLE( + context, angle::EntryPoint::GLDrawArraysInstancedANGLE, modePacked, + first, count, primcount)); if (isCallValid) { context->drawArraysInstanced(modePacked, first, count, primcount); } ANGLE_CAPTURE(DrawArraysInstancedANGLE, isCallValid, context, modePacked, first, count, @@ -544,12 +587,13 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstancedANGLE(context, modePacked, count, - typePacked, indices, primcount)); + ValidateDrawElementsInstancedANGLE( + context, angle::EntryPoint::GLDrawElementsInstancedANGLE, + modePacked, count, typePacked, indices, primcount)); if (isCallValid) { context->drawElementsInstanced(modePacked, count, typePacked, indices, primcount); } ANGLE_CAPTURE(DrawElementsInstancedANGLE, isCallValid, context, modePacked, count, @@ -568,12 +612,14 @@ CID(context), index, divisor); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribDivisorANGLE(context, index, divisor)); + bool isCallValid = + (context->skipValidation() || + ValidateVertexAttribDivisorANGLE( + context, angle::EntryPoint::GLVertexAttribDivisorANGLE, index, divisor)); if (isCallValid) { context->vertexAttribDivisor(index, divisor); } ANGLE_CAPTURE(VertexAttribDivisorANGLE, isCallValid, context, index, divisor); @@ -608,14 +654,15 @@ if (context) { TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorageMemFlags2DANGLE( - context, targetPacked, levels, internalFormat, width, height, - memoryPacked, offset, createFlags, usageFlags)); + bool isCallValid = + (context->skipValidation() || + ValidateTexStorageMemFlags2DANGLE( + context, angle::EntryPoint::GLTexStorageMemFlags2DANGLE, targetPacked, levels, + internalFormat, width, height, memoryPacked, offset, createFlags, usageFlags)); if (isCallValid) { context->texStorageMemFlags2D(targetPacked, levels, internalFormat, width, height, memoryPacked, offset, createFlags, usageFlags); } @@ -656,12 +703,13 @@ MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateTexStorageMemFlags2DMultisampleANGLE( - context, targetPacked, samples, internalFormat, width, height, - fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags)); + context, angle::EntryPoint::GLTexStorageMemFlags2DMultisampleANGLE, targetPacked, + samples, internalFormat, width, height, fixedSampleLocations, memoryPacked, offset, + createFlags, usageFlags)); if (isCallValid) { context->texStorageMemFlags2DMultisample(targetPacked, samples, internalFormat, width, height, fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags); @@ -702,11 +750,12 @@ TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateTexStorageMemFlags3DANGLE( - context, targetPacked, levels, internalFormat, width, height, depth, + context, angle::EntryPoint::GLTexStorageMemFlags3DANGLE, + targetPacked, levels, internalFormat, width, height, depth, memoryPacked, offset, createFlags, usageFlags)); if (isCallValid) { context->texStorageMemFlags3D(targetPacked, levels, internalFormat, width, height, depth, memoryPacked, offset, createFlags, usageFlags); @@ -750,12 +799,13 @@ MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateTexStorageMemFlags3DMultisampleANGLE( - context, targetPacked, samples, internalFormat, width, height, depth, - fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags)); + context, angle::EntryPoint::GLTexStorageMemFlags3DMultisampleANGLE, targetPacked, + samples, internalFormat, width, height, depth, fixedSampleLocations, memoryPacked, + offset, createFlags, usageFlags)); if (isCallValid) { context->texStorageMemFlags3DMultisample(targetPacked, samples, internalFormat, width, height, depth, fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags); @@ -786,12 +836,13 @@ { MemoryObjectID memoryPacked = PackParam(memory); HandleType handleTypePacked = PackParam(handleType); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateImportMemoryZirconHandleANGLE(context, memoryPacked, size, - handleTypePacked, handle)); + ValidateImportMemoryZirconHandleANGLE( + context, angle::EntryPoint::GLImportMemoryZirconHandleANGLE, + memoryPacked, size, handleTypePacked, handle)); if (isCallValid) { context->importMemoryZirconHandle(memoryPacked, size, handleTypePacked, handle); } ANGLE_CAPTURE(ImportMemoryZirconHandleANGLE, isCallValid, context, memoryPacked, size, @@ -820,11 +871,12 @@ { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateMultiDrawArraysANGLE(context, modePacked, firsts, counts, drawcount)); + ValidateMultiDrawArraysANGLE(context, angle::EntryPoint::GLMultiDrawArraysANGLE, + modePacked, firsts, counts, drawcount)); if (isCallValid) { context->multiDrawArrays(modePacked, firsts, counts, drawcount); } ANGLE_CAPTURE(MultiDrawArraysANGLE, isCallValid, context, modePacked, firsts, counts, @@ -853,11 +905,12 @@ { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateMultiDrawArraysInstancedANGLE( - context, modePacked, firsts, counts, instanceCounts, drawcount)); + context, angle::EntryPoint::GLMultiDrawArraysInstancedANGLE, + modePacked, firsts, counts, instanceCounts, drawcount)); if (isCallValid) { context->multiDrawArraysInstanced(modePacked, firsts, counts, instanceCounts, drawcount); } @@ -886,13 +939,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMultiDrawElementsANGLE(context, modePacked, counts, typePacked, - indices, drawcount)); + bool isCallValid = + (context->skipValidation() || + ValidateMultiDrawElementsANGLE(context, angle::EntryPoint::GLMultiDrawElementsANGLE, + modePacked, counts, typePacked, indices, drawcount)); if (isCallValid) { context->multiDrawElements(modePacked, counts, typePacked, indices, drawcount); } ANGLE_CAPTURE(MultiDrawElementsANGLE, isCallValid, context, modePacked, counts, typePacked, @@ -924,12 +978,13 @@ PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateMultiDrawElementsInstancedANGLE(context, modePacked, counts, typePacked, - indices, instanceCounts, drawcount)); + ValidateMultiDrawElementsInstancedANGLE( + context, angle::EntryPoint::GLMultiDrawElementsInstancedANGLE, modePacked, counts, + typePacked, indices, instanceCounts, drawcount)); if (isCallValid) { context->multiDrawElementsInstanced(modePacked, counts, typePacked, indices, instanceCounts, drawcount); } @@ -940,10 +995,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_ANGLE_pack_reverse_row_order + // GL_ANGLE_program_binary // GL_ANGLE_provoking_vertex void GL_APIENTRY GL_ProvokingVertexANGLE(GLenum mode) { @@ -953,12 +1010,13 @@ if (context) { ProvokingVertexConvention modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateProvokingVertexANGLE(context, modePacked)); + bool isCallValid = (context->skipValidation() || + ValidateProvokingVertexANGLE( + context, angle::EntryPoint::GLProvokingVertexANGLE, modePacked)); if (isCallValid) { context->provokingVertex(modePacked); } ANGLE_CAPTURE(ProvokingVertexANGLE, isCallValid, context, modePacked); @@ -977,12 +1035,13 @@ (uintptr_t)name); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateRequestExtensionANGLE(context, name)); + bool isCallValid = (context->skipValidation() || + ValidateRequestExtensionANGLE( + context, angle::EntryPoint::GLRequestExtensionANGLE, name)); if (isCallValid) { context->requestExtension(name); } ANGLE_CAPTURE(RequestExtensionANGLE, isCallValid, context, name); @@ -1000,12 +1059,13 @@ (uintptr_t)name); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableExtensionANGLE(context, name)); + bool isCallValid = (context->skipValidation() || + ValidateDisableExtensionANGLE( + context, angle::EntryPoint::GLDisableExtensionANGLE, name)); if (isCallValid) { context->disableExtension(name); } ANGLE_CAPTURE(DisableExtensionANGLE, isCallValid, context, name); @@ -1032,11 +1092,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetBooleanvRobustANGLE(context, pname, bufSize, length, params)); + ValidateGetBooleanvRobustANGLE(context, angle::EntryPoint::GLGetBooleanvRobustANGLE, + pname, bufSize, length, params)); if (isCallValid) { context->getBooleanvRobust(pname, bufSize, length, params); } ANGLE_CAPTURE(GetBooleanvRobustANGLE, isCallValid, context, pname, bufSize, length, params); @@ -1064,12 +1125,13 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameterivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetBufferParameterivRobustANGLE( + context, angle::EntryPoint::GLGetBufferParameterivRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getBufferParameterivRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetBufferParameterivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -1094,12 +1156,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFloatvRobustANGLE(context, pname, bufSize, length, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFloatvRobustANGLE(context, angle::EntryPoint::GLGetFloatvRobustANGLE, pname, + bufSize, length, params)); if (isCallValid) { context->getFloatvRobust(pname, bufSize, length, params); } ANGLE_CAPTURE(GetFloatvRobustANGLE, isCallValid, context, pname, bufSize, length, params); @@ -1127,13 +1191,15 @@ (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFramebufferAttachmentParameterivRobustANGLE( - context, target, attachment, pname, bufSize, length, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFramebufferAttachmentParameterivRobustANGLE( + context, angle::EntryPoint::GLGetFramebufferAttachmentParameterivRobustANGLE, + target, attachment, pname, bufSize, length, params)); if (isCallValid) { context->getFramebufferAttachmentParameterivRobust(target, attachment, pname, bufSize, length, params); } @@ -1159,12 +1225,14 @@ (uintptr_t)length, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetIntegervRobustANGLE(context, pname, bufSize, length, data)); + bool isCallValid = + (context->skipValidation() || + ValidateGetIntegervRobustANGLE(context, angle::EntryPoint::GLGetIntegervRobustANGLE, + pname, bufSize, length, data)); if (isCallValid) { context->getIntegervRobust(pname, bufSize, length, data); } ANGLE_CAPTURE(GetIntegervRobustANGLE, isCallValid, context, pname, bufSize, length, data); @@ -1190,13 +1258,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramivRobustANGLE(context, programPacked, pname, bufSize, - length, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetProgramivRobustANGLE(context, angle::EntryPoint::GLGetProgramivRobustANGLE, + programPacked, pname, bufSize, length, params)); if (isCallValid) { context->getProgramivRobust(programPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetProgramivRobustANGLE, isCallValid, context, programPacked, pname, bufSize, @@ -1221,13 +1290,14 @@ (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetRenderbufferParameterivRobustANGLE( - context, target, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetRenderbufferParameterivRobustANGLE( + context, angle::EntryPoint::GLGetRenderbufferParameterivRobustANGLE, + target, pname, bufSize, length, params)); if (isCallValid) { context->getRenderbufferParameterivRobust(target, pname, bufSize, length, params); } ANGLE_CAPTURE(GetRenderbufferParameterivRobustANGLE, isCallValid, context, target, pname, @@ -1256,11 +1326,12 @@ { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetShaderivRobustANGLE(context, shaderPacked, pname, bufSize, length, params)); + ValidateGetShaderivRobustANGLE(context, angle::EntryPoint::GLGetShaderivRobustANGLE, + shaderPacked, pname, bufSize, length, params)); if (isCallValid) { context->getShaderivRobust(shaderPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetShaderivRobustANGLE, isCallValid, context, shaderPacked, pname, bufSize, @@ -1287,12 +1358,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterfvRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetTexParameterfvRobustANGLE( + context, angle::EntryPoint::GLGetTexParameterfvRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getTexParameterfvRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetTexParameterfvRobustANGLE, isCallValid, context, targetPacked, pname, @@ -1321,12 +1393,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetTexParameterivRobustANGLE( + context, angle::EntryPoint::GLGetTexParameterivRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getTexParameterivRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetTexParameterivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -1354,12 +1427,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformfvRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); + ValidateGetUniformfvRobustANGLE( + context, angle::EntryPoint::GLGetUniformfvRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getUniformfvRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetUniformfvRobustANGLE, isCallValid, context, programPacked, locationPacked, @@ -1387,12 +1461,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); + ValidateGetUniformivRobustANGLE( + context, angle::EntryPoint::GLGetUniformivRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getUniformivRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetUniformivRobustANGLE, isCallValid, context, programPacked, locationPacked, @@ -1418,13 +1493,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribfvRobustANGLE(context, index, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetVertexAttribfvRobustANGLE( + context, angle::EntryPoint::GLGetVertexAttribfvRobustANGLE, index, + pname, bufSize, length, params)); if (isCallValid) { context->getVertexAttribfvRobust(index, pname, bufSize, length, params); } ANGLE_CAPTURE(GetVertexAttribfvRobustANGLE, isCallValid, context, index, pname, bufSize, @@ -1450,13 +1526,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribivRobustANGLE(context, index, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetVertexAttribivRobustANGLE( + context, angle::EntryPoint::GLGetVertexAttribivRobustANGLE, index, + pname, bufSize, length, params)); if (isCallValid) { context->getVertexAttribivRobust(index, pname, bufSize, length, params); } ANGLE_CAPTURE(GetVertexAttribivRobustANGLE, isCallValid, context, index, pname, bufSize, @@ -1482,13 +1559,14 @@ (uintptr_t)length, (uintptr_t)pointer); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribPointervRobustANGLE( - context, index, pname, bufSize, length, pointer)); + bool isCallValid = (context->skipValidation() || + ValidateGetVertexAttribPointervRobustANGLE( + context, angle::EntryPoint::GLGetVertexAttribPointervRobustANGLE, + index, pname, bufSize, length, pointer)); if (isCallValid) { context->getVertexAttribPointervRobust(index, pname, bufSize, length, pointer); } ANGLE_CAPTURE(GetVertexAttribPointervRobustANGLE, isCallValid, context, index, pname, @@ -1522,14 +1600,14 @@ (uintptr_t)columns, (uintptr_t)rows, (uintptr_t)pixels); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadPixelsRobustANGLE(context, x, y, width, height, format, type, bufSize, - length, columns, rows, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateReadPixelsRobustANGLE( + context, angle::EntryPoint::GLReadPixelsRobustANGLE, x, y, width, + height, format, type, bufSize, length, columns, rows, pixels)); if (isCallValid) { context->readPixelsRobust(x, y, width, height, format, type, bufSize, length, columns, rows, pixels); } @@ -1565,12 +1643,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexImage2DRobustANGLE(context, targetPacked, level, internalformat, width, - height, border, format, type, bufSize, pixels)); + ValidateTexImage2DRobustANGLE(context, angle::EntryPoint::GLTexImage2DRobustANGLE, + targetPacked, level, internalformat, width, height, + border, format, type, bufSize, pixels)); if (isCallValid) { context->texImage2DRobust(targetPacked, level, internalformat, width, height, border, format, type, bufSize, pixels); } @@ -1596,13 +1675,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterfvRobustANGLE(context, targetPacked, pname, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateTexParameterfvRobustANGLE( + context, angle::EntryPoint::GLTexParameterfvRobustANGLE, + targetPacked, pname, bufSize, params)); if (isCallValid) { context->texParameterfvRobust(targetPacked, pname, bufSize, params); } ANGLE_CAPTURE(TexParameterfvRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, @@ -1627,13 +1707,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterivRobustANGLE(context, targetPacked, pname, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateTexParameterivRobustANGLE( + context, angle::EntryPoint::GLTexParameterivRobustANGLE, + targetPacked, pname, bufSize, params)); if (isCallValid) { context->texParameterivRobust(targetPacked, pname, bufSize, params); } ANGLE_CAPTURE(TexParameterivRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, @@ -1668,12 +1749,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexSubImage2DRobustANGLE(context, targetPacked, level, xoffset, yoffset, width, - height, format, type, bufSize, pixels)); + ValidateTexSubImage2DRobustANGLE( + context, angle::EntryPoint::GLTexSubImage2DRobustANGLE, targetPacked, level, + xoffset, yoffset, width, height, format, type, bufSize, pixels)); if (isCallValid) { context->texSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, height, format, type, bufSize, pixels); } @@ -1711,12 +1793,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexImage3DRobustANGLE(context, targetPacked, level, internalformat, width, - height, depth, border, format, type, bufSize, pixels)); + ValidateTexImage3DRobustANGLE(context, angle::EntryPoint::GLTexImage3DRobustANGLE, + targetPacked, level, internalformat, width, height, + depth, border, format, type, bufSize, pixels)); if (isCallValid) { context->texImage3DRobust(targetPacked, level, internalformat, width, height, depth, border, format, type, bufSize, pixels); } @@ -1754,14 +1837,15 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexSubImage3DRobustANGLE(context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, - format, type, bufSize, pixels)); + bool isCallValid = + (context->skipValidation() || + ValidateTexSubImage3DRobustANGLE( + context, angle::EntryPoint::GLTexSubImage3DRobustANGLE, targetPacked, level, + xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels)); if (isCallValid) { context->texSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels); } @@ -1795,13 +1879,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateCompressedTexImage2DRobustANGLE( - context, targetPacked, level, internalformat, width, - height, border, imageSize, dataSize, data)); + (context->skipValidation() || + ValidateCompressedTexImage2DRobustANGLE( + context, angle::EntryPoint::GLCompressedTexImage2DRobustANGLE, targetPacked, level, + internalformat, width, height, border, imageSize, dataSize, data)); if (isCallValid) { context->compressedTexImage2DRobust(targetPacked, level, internalformat, width, height, border, imageSize, dataSize, data); } @@ -1836,13 +1921,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateCompressedTexSubImage2DRobustANGLE( - context, targetPacked, level, xoffset, yoffset, width, - height, format, imageSize, dataSize, data)); + (context->skipValidation() || + ValidateCompressedTexSubImage2DRobustANGLE( + context, angle::EntryPoint::GLCompressedTexSubImage2DRobustANGLE, targetPacked, + level, xoffset, yoffset, width, height, format, imageSize, dataSize, data)); if (isCallValid) { context->compressedTexSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, height, format, imageSize, dataSize, data); } @@ -1877,13 +1963,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateCompressedTexImage3DRobustANGLE( - context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, dataSize, data)); + (context->skipValidation() || + ValidateCompressedTexImage3DRobustANGLE( + context, angle::EntryPoint::GLCompressedTexImage3DRobustANGLE, targetPacked, level, + internalformat, width, height, depth, border, imageSize, dataSize, data)); if (isCallValid) { context->compressedTexImage3DRobust(targetPacked, level, internalformat, width, height, depth, border, imageSize, dataSize, data); } @@ -1922,12 +2009,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateCompressedTexSubImage3DRobustANGLE( - context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, dataSize, data)); + context, angle::EntryPoint::GLCompressedTexSubImage3DRobustANGLE, + targetPacked, level, xoffset, yoffset, zoffset, width, height, + depth, format, imageSize, dataSize, data)); if (isCallValid) { context->compressedTexSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, dataSize, data); @@ -1960,11 +2048,12 @@ { QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetQueryivRobustANGLE(context, targetPacked, pname, bufSize, length, params)); + ValidateGetQueryivRobustANGLE(context, angle::EntryPoint::GLGetQueryivRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getQueryivRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetQueryivRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, @@ -1991,13 +2080,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectuivRobustANGLE( - context, idPacked, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetQueryObjectuivRobustANGLE( + context, angle::EntryPoint::GLGetQueryObjectuivRobustANGLE, + idPacked, pname, bufSize, length, params)); if (isCallValid) { context->getQueryObjectuivRobust(idPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetQueryObjectuivRobustANGLE, isCallValid, context, idPacked, pname, bufSize, @@ -2026,12 +2116,13 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointervRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetBufferPointervRobustANGLE( + context, angle::EntryPoint::GLGetBufferPointervRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getBufferPointervRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetBufferPointervRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2057,13 +2148,14 @@ (uintptr_t)length, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetIntegeri_vRobustANGLE(context, target, index, bufSize, length, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetIntegeri_vRobustANGLE( + context, angle::EntryPoint::GLGetIntegeri_vRobustANGLE, target, + index, bufSize, length, data)); if (isCallValid) { context->getIntegeri_vRobust(target, index, bufSize, length, data); } ANGLE_CAPTURE(GetIntegeri_vRobustANGLE, isCallValid, context, target, index, bufSize, @@ -2093,12 +2185,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetInternalformativRobustANGLE(context, target, internalformat, - pname, bufSize, length, params)); + ValidateGetInternalformativRobustANGLE( + context, angle::EntryPoint::GLGetInternalformativRobustANGLE, + target, internalformat, pname, bufSize, length, params)); if (isCallValid) { context->getInternalformativRobust(target, internalformat, pname, bufSize, length, params); } @@ -2125,13 +2218,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribIivRobustANGLE(context, index, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetVertexAttribIivRobustANGLE( + context, angle::EntryPoint::GLGetVertexAttribIivRobustANGLE, index, + pname, bufSize, length, params)); if (isCallValid) { context->getVertexAttribIivRobust(index, pname, bufSize, length, params); } ANGLE_CAPTURE(GetVertexAttribIivRobustANGLE, isCallValid, context, index, pname, bufSize, @@ -2157,13 +2251,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribIuivRobustANGLE( - context, index, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetVertexAttribIuivRobustANGLE( + context, angle::EntryPoint::GLGetVertexAttribIuivRobustANGLE, index, + pname, bufSize, length, params)); if (isCallValid) { context->getVertexAttribIuivRobust(index, pname, bufSize, length, params); } ANGLE_CAPTURE(GetVertexAttribIuivRobustANGLE, isCallValid, context, index, pname, bufSize, @@ -2191,12 +2286,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetUniformuivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); + ValidateGetUniformuivRobustANGLE( + context, angle::EntryPoint::GLGetUniformuivRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getUniformuivRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetUniformuivRobustANGLE, isCallValid, context, programPacked, locationPacked, @@ -2229,11 +2325,12 @@ UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetActiveUniformBlockivRobustANGLE( - context, programPacked, uniformBlockIndexPacked, pname, bufSize, length, params)); + context, angle::EntryPoint::GLGetActiveUniformBlockivRobustANGLE, programPacked, + uniformBlockIndexPacked, pname, bufSize, length, params)); if (isCallValid) { context->getActiveUniformBlockivRobust(programPacked, uniformBlockIndexPacked, pname, bufSize, length, params); } @@ -2259,13 +2356,14 @@ (uintptr_t)length, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetInteger64vRobustANGLE(context, pname, bufSize, length, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetInteger64vRobustANGLE( + context, angle::EntryPoint::GLGetInteger64vRobustANGLE, pname, + bufSize, length, data)); if (isCallValid) { context->getInteger64vRobust(pname, bufSize, length, data); } ANGLE_CAPTURE(GetInteger64vRobustANGLE, isCallValid, context, pname, bufSize, length, data); @@ -2290,13 +2388,14 @@ (uintptr_t)length, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetInteger64i_vRobustANGLE(context, target, index, bufSize, length, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetInteger64i_vRobustANGLE( + context, angle::EntryPoint::GLGetInteger64i_vRobustANGLE, target, + index, bufSize, length, data)); if (isCallValid) { context->getInteger64i_vRobust(target, index, bufSize, length, data); } ANGLE_CAPTURE(GetInteger64i_vRobustANGLE, isCallValid, context, target, index, bufSize, @@ -2325,12 +2424,13 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteri64vRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetBufferParameteri64vRobustANGLE( + context, angle::EntryPoint::GLGetBufferParameteri64vRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getBufferParameteri64vRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetBufferParameteri64vRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2354,13 +2454,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterivRobustANGLE(context, samplerPacked, pname, bufSize, param)); + bool isCallValid = (context->skipValidation() || + ValidateSamplerParameterivRobustANGLE( + context, angle::EntryPoint::GLSamplerParameterivRobustANGLE, + samplerPacked, pname, bufSize, param)); if (isCallValid) { context->samplerParameterivRobust(samplerPacked, pname, bufSize, param); } ANGLE_CAPTURE(SamplerParameterivRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -2385,13 +2486,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterfvRobustANGLE(context, samplerPacked, pname, bufSize, param)); + bool isCallValid = (context->skipValidation() || + ValidateSamplerParameterfvRobustANGLE( + context, angle::EntryPoint::GLSamplerParameterfvRobustANGLE, + samplerPacked, pname, bufSize, param)); if (isCallValid) { context->samplerParameterfvRobust(samplerPacked, pname, bufSize, param); } ANGLE_CAPTURE(SamplerParameterfvRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -2419,12 +2521,13 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterivRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); + ValidateGetSamplerParameterivRobustANGLE( + context, angle::EntryPoint::GLGetSamplerParameterivRobustANGLE, + samplerPacked, pname, bufSize, length, params)); if (isCallValid) { context->getSamplerParameterivRobust(samplerPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetSamplerParameterivRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -2452,12 +2555,13 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterfvRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); + ValidateGetSamplerParameterfvRobustANGLE( + context, angle::EntryPoint::GLGetSamplerParameterfvRobustANGLE, + samplerPacked, pname, bufSize, length, params)); if (isCallValid) { context->getSamplerParameterfvRobust(samplerPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetSamplerParameterfvRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -2484,13 +2588,14 @@ (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferParameterivRobustANGLE( - context, target, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetFramebufferParameterivRobustANGLE( + context, angle::EntryPoint::GLGetFramebufferParameterivRobustANGLE, + target, pname, bufSize, length, params)); if (isCallValid) { context->getFramebufferParameterivRobust(target, pname, bufSize, length, params); } ANGLE_CAPTURE(GetFramebufferParameterivRobustANGLE, isCallValid, context, target, pname, @@ -2519,14 +2624,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramInterfaceivRobustANGLE(context, programPacked, programInterface, - pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetProgramInterfaceivRobustANGLE( + context, angle::EntryPoint::GLGetProgramInterfaceivRobustANGLE, + programPacked, programInterface, pname, bufSize, length, params)); if (isCallValid) { context->getProgramInterfaceivRobust(programPacked, programInterface, pname, bufSize, length, params); } @@ -2553,13 +2658,14 @@ (uintptr_t)length, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetBooleani_vRobustANGLE(context, target, index, bufSize, length, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetBooleani_vRobustANGLE( + context, angle::EntryPoint::GLGetBooleani_vRobustANGLE, target, + index, bufSize, length, data)); if (isCallValid) { context->getBooleani_vRobust(target, index, bufSize, length, data); } ANGLE_CAPTURE(GetBooleani_vRobustANGLE, isCallValid, context, target, index, bufSize, @@ -2585,13 +2691,14 @@ (uintptr_t)length, (uintptr_t)val); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetMultisamplefvRobustANGLE(context, pname, index, bufSize, length, val)); + bool isCallValid = (context->skipValidation() || + ValidateGetMultisamplefvRobustANGLE( + context, angle::EntryPoint::GLGetMultisamplefvRobustANGLE, pname, + index, bufSize, length, val)); if (isCallValid) { context->getMultisamplefvRobust(pname, index, bufSize, length, val); } ANGLE_CAPTURE(GetMultisamplefvRobustANGLE, isCallValid, context, pname, index, bufSize, @@ -2622,11 +2729,12 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetTexLevelParameterivRobustANGLE( - context, targetPacked, level, pname, bufSize, length, params)); + context, angle::EntryPoint::GLGetTexLevelParameterivRobustANGLE, + targetPacked, level, pname, bufSize, length, params)); if (isCallValid) { context->getTexLevelParameterivRobust(targetPacked, level, pname, bufSize, length, params); } @@ -2658,11 +2766,12 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetTexLevelParameterfvRobustANGLE( - context, targetPacked, level, pname, bufSize, length, params)); + context, angle::EntryPoint::GLGetTexLevelParameterfvRobustANGLE, + targetPacked, level, pname, bufSize, length, params)); if (isCallValid) { context->getTexLevelParameterfvRobust(targetPacked, level, pname, bufSize, length, params); } @@ -2688,13 +2797,14 @@ (uintptr_t)length, (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetPointervRobustANGLERobustANGLE(context, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetPointervRobustANGLERobustANGLE( + context, angle::EntryPoint::GLGetPointervRobustANGLERobustANGLE, + pname, bufSize, length, params)); if (isCallValid) { context->getPointervRobustANGLERobust(pname, bufSize, length, params); } ANGLE_CAPTURE(GetPointervRobustANGLERobustANGLE, isCallValid, context, pname, bufSize, @@ -2728,14 +2838,14 @@ (uintptr_t)columns, (uintptr_t)rows, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixelsRobustANGLE(context, x, y, width, height, format, type, bufSize, - length, columns, rows, data)); + bool isCallValid = (context->skipValidation() || + ValidateReadnPixelsRobustANGLE( + context, angle::EntryPoint::GLReadnPixelsRobustANGLE, x, y, width, + height, format, type, bufSize, length, columns, rows, data)); if (isCallValid) { context->readnPixelsRobust(x, y, width, height, format, type, bufSize, length, columns, rows, data); } @@ -2764,12 +2874,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetnUniformfvRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); + ValidateGetnUniformfvRobustANGLE( + context, angle::EntryPoint::GLGetnUniformfvRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getnUniformfvRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetnUniformfvRobustANGLE, isCallValid, context, programPacked, locationPacked, @@ -2797,12 +2908,13 @@ { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetnUniformivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); + ValidateGetnUniformivRobustANGLE( + context, angle::EntryPoint::GLGetnUniformivRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getnUniformivRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetnUniformivRobustANGLE, isCallValid, context, programPacked, locationPacked, @@ -2831,11 +2943,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetnUniformuivRobustANGLE( - context, programPacked, locationPacked, bufSize, length, params)); + context, angle::EntryPoint::GLGetnUniformuivRobustANGLE, + programPacked, locationPacked, bufSize, length, params)); if (isCallValid) { context->getnUniformuivRobust(programPacked, locationPacked, bufSize, length, params); } ANGLE_CAPTURE(GetnUniformuivRobustANGLE, isCallValid, context, programPacked, @@ -2860,13 +2973,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterIivRobustANGLE(context, targetPacked, pname, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateTexParameterIivRobustANGLE( + context, angle::EntryPoint::GLTexParameterIivRobustANGLE, + targetPacked, pname, bufSize, params)); if (isCallValid) { context->texParameterIivRobust(targetPacked, pname, bufSize, params); } ANGLE_CAPTURE(TexParameterIivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2891,13 +3005,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterIuivRobustANGLE(context, targetPacked, pname, bufSize, params)); + bool isCallValid = (context->skipValidation() || + ValidateTexParameterIuivRobustANGLE( + context, angle::EntryPoint::GLTexParameterIuivRobustANGLE, + targetPacked, pname, bufSize, params)); if (isCallValid) { context->texParameterIuivRobust(targetPacked, pname, bufSize, params); } ANGLE_CAPTURE(TexParameterIuivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2926,12 +3041,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetTexParameterIivRobustANGLE( + context, angle::EntryPoint::GLGetTexParameterIivRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getTexParameterIivRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetTexParameterIivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2960,12 +3076,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); + ValidateGetTexParameterIuivRobustANGLE( + context, angle::EntryPoint::GLGetTexParameterIuivRobustANGLE, + targetPacked, pname, bufSize, length, params)); if (isCallValid) { context->getTexParameterIuivRobust(targetPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetTexParameterIuivRobustANGLE, isCallValid, context, targetPacked, pname, @@ -2990,13 +3107,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterIivRobustANGLE(context, samplerPacked, pname, bufSize, param)); + bool isCallValid = (context->skipValidation() || + ValidateSamplerParameterIivRobustANGLE( + context, angle::EntryPoint::GLSamplerParameterIivRobustANGLE, + samplerPacked, pname, bufSize, param)); if (isCallValid) { context->samplerParameterIivRobust(samplerPacked, pname, bufSize, param); } ANGLE_CAPTURE(SamplerParameterIivRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -3021,13 +3139,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSamplerParameterIuivRobustANGLE( - context, samplerPacked, pname, bufSize, param)); + bool isCallValid = (context->skipValidation() || + ValidateSamplerParameterIuivRobustANGLE( + context, angle::EntryPoint::GLSamplerParameterIuivRobustANGLE, + samplerPacked, pname, bufSize, param)); if (isCallValid) { context->samplerParameterIuivRobust(samplerPacked, pname, bufSize, param); } ANGLE_CAPTURE(SamplerParameterIuivRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -3055,12 +3174,13 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIivRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); + ValidateGetSamplerParameterIivRobustANGLE( + context, angle::EntryPoint::GLGetSamplerParameterIivRobustANGLE, + samplerPacked, pname, bufSize, length, params)); if (isCallValid) { context->getSamplerParameterIivRobust(samplerPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetSamplerParameterIivRobustANGLE, isCallValid, context, samplerPacked, pname, @@ -3089,11 +3209,12 @@ { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateGetSamplerParameterIuivRobustANGLE( - context, samplerPacked, pname, bufSize, length, params)); + context, angle::EntryPoint::GLGetSamplerParameterIuivRobustANGLE, + samplerPacked, pname, bufSize, length, params)); if (isCallValid) { context->getSamplerParameterIuivRobust(samplerPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetSamplerParameterIuivRobustANGLE, isCallValid, context, samplerPacked, @@ -3120,13 +3241,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectivRobustANGLE( - context, idPacked, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetQueryObjectivRobustANGLE( + context, angle::EntryPoint::GLGetQueryObjectivRobustANGLE, idPacked, + pname, bufSize, length, params)); if (isCallValid) { context->getQueryObjectivRobust(idPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetQueryObjectivRobustANGLE, isCallValid, context, idPacked, pname, bufSize, @@ -3151,13 +3273,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjecti64vRobustANGLE( - context, idPacked, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetQueryObjecti64vRobustANGLE( + context, angle::EntryPoint::GLGetQueryObjecti64vRobustANGLE, + idPacked, pname, bufSize, length, params)); if (isCallValid) { context->getQueryObjecti64vRobust(idPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetQueryObjecti64vRobustANGLE, isCallValid, context, idPacked, pname, bufSize, @@ -3182,13 +3305,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectui64vRobustANGLE( - context, idPacked, pname, bufSize, length, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetQueryObjectui64vRobustANGLE( + context, angle::EntryPoint::GLGetQueryObjectui64vRobustANGLE, + idPacked, pname, bufSize, length, params)); if (isCallValid) { context->getQueryObjectui64vRobust(idPacked, pname, bufSize, length, params); } ANGLE_CAPTURE(GetQueryObjectui64vRobustANGLE, isCallValid, context, idPacked, pname, @@ -3213,13 +3337,14 @@ if (context) { SemaphoreID semaphorePacked = PackParam(semaphore); HandleType handleTypePacked = PackParam(handleType); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateImportSemaphoreZirconHandleANGLE( - context, semaphorePacked, handleTypePacked, handle)); + bool isCallValid = (context->skipValidation() || + ValidateImportSemaphoreZirconHandleANGLE( + context, angle::EntryPoint::GLImportSemaphoreZirconHandleANGLE, + semaphorePacked, handleTypePacked, handle)); if (isCallValid) { context->importSemaphoreZirconHandle(semaphorePacked, handleTypePacked, handle); } ANGLE_CAPTURE(ImportSemaphoreZirconHandleANGLE, isCallValid, context, semaphorePacked, @@ -3229,10 +3354,14 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_ANGLE_texture_compression_dxt3 + +// GL_ANGLE_texture_compression_dxt5 + // GL_ANGLE_texture_external_update void GL_APIENTRY GL_TexImage2DExternalANGLE(GLenum target, GLint level, GLint internalformat, GLsizei width, @@ -3251,14 +3380,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage2DExternalANGLE(context, targetPacked, level, internalformat, width, - height, border, format, type)); + bool isCallValid = (context->skipValidation() || + ValidateTexImage2DExternalANGLE( + context, angle::EntryPoint::GLTexImage2DExternalANGLE, targetPacked, + level, internalformat, width, height, border, format, type)); if (isCallValid) { context->texImage2DExternal(targetPacked, level, internalformat, width, height, border, format, type); } @@ -3280,11 +3409,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateInvalidateTextureANGLE(context, targetPacked)); + (context->skipValidation() || + ValidateInvalidateTextureANGLE(context, angle::EntryPoint::GLInvalidateTextureANGLE, + targetPacked)); if (isCallValid) { context->invalidateTexture(targetPacked); } ANGLE_CAPTURE(InvalidateTextureANGLE, isCallValid, context, targetPacked); @@ -3315,12 +3446,13 @@ { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorage2DMultisampleANGLE(context, targetPacked, samples, internalformat, - width, height, fixedsamplelocations)); + ValidateTexStorage2DMultisampleANGLE( + context, angle::EntryPoint::GLTexStorage2DMultisampleANGLE, targetPacked, samples, + internalformat, width, height, fixedsamplelocations)); if (isCallValid) { context->texStorage2DMultisample(targetPacked, samples, internalformat, width, height, fixedsamplelocations); } @@ -3341,12 +3473,14 @@ GLenumToString(GLenumGroup::DefaultGroup, pname), index, (uintptr_t)val); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetMultisamplefvANGLE(context, pname, index, val)); + bool isCallValid = + (context->skipValidation() || + ValidateGetMultisamplefvANGLE(context, angle::EntryPoint::GLGetMultisamplefvANGLE, + pname, index, val)); if (isCallValid) { context->getMultisamplefv(pname, index, val); } ANGLE_CAPTURE(GetMultisamplefvANGLE, isCallValid, context, pname, index, val); @@ -3364,12 +3498,13 @@ maskNumber, GLbitfieldToString(GLenumGroup::DefaultGroup, mask).c_str()); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSampleMaskiANGLE(context, maskNumber, mask)); + bool isCallValid = (context->skipValidation() || + ValidateSampleMaskiANGLE(context, angle::EntryPoint::GLSampleMaskiANGLE, + maskNumber, mask)); if (isCallValid) { context->sampleMaski(maskNumber, mask); } ANGLE_CAPTURE(SampleMaskiANGLE, isCallValid, context, maskNumber, mask); @@ -3382,10 +3517,12 @@ // GetTexLevelParameterfvANGLE is already defined. // GetTexLevelParameterivANGLE is already defined. +// GL_ANGLE_texture_usage + // GL_ANGLE_translated_shader_source void GL_APIENTRY GL_GetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source) @@ -3398,13 +3535,14 @@ if (context) { ShaderProgramID shaderPacked = PackParam(shader); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTranslatedShaderSourceANGLE( - context, shaderPacked, bufsize, length, source)); + bool isCallValid = (context->skipValidation() || + ValidateGetTranslatedShaderSourceANGLE( + context, angle::EntryPoint::GLGetTranslatedShaderSourceANGLE, + shaderPacked, bufsize, length, source)); if (isCallValid) { context->getTranslatedShaderSource(shaderPacked, bufsize, length, source); } ANGLE_CAPTURE(GetTranslatedShaderSourceANGLE, isCallValid, context, shaderPacked, bufsize, @@ -3414,10 +3552,27 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_APPLE_clip_distance + +// GL_ARB_sync +// ClientWaitSync is already defined. + +// DeleteSync is already defined. + +// FenceSync is already defined. + +// GetInteger64v is already defined. + +// GetSynciv is already defined. + +// IsSync is already defined. + +// WaitSync is already defined. + // GL_CHROMIUM_bind_uniform_location void GL_APIENTRY GL_BindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name) { Context *context = GetValidGlobalContext(); EVENT(context, GLBindUniformLocationCHROMIUM, @@ -3427,13 +3582,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBindUniformLocationCHROMIUM(context, programPacked, locationPacked, name)); + bool isCallValid = (context->skipValidation() || + ValidateBindUniformLocationCHROMIUM( + context, angle::EntryPoint::GLBindUniformLocationCHROMIUM, + programPacked, locationPacked, name)); if (isCallValid) { context->bindUniformLocation(programPacked, locationPacked, name); } ANGLE_CAPTURE(BindUniformLocationCHROMIUM, isCallValid, context, programPacked, @@ -3455,13 +3611,14 @@ if (context) { TextureID sourceIdPacked = PackParam(sourceId); TextureID destIdPacked = PackParam(destId); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedCopyTextureCHROMIUM(context, sourceIdPacked, destIdPacked)); + bool isCallValid = (context->skipValidation() || + ValidateCompressedCopyTextureCHROMIUM( + context, angle::EntryPoint::GLCompressedCopyTextureCHROMIUM, + sourceIdPacked, destIdPacked)); if (isCallValid) { context->compressedCopyTexture(sourceIdPacked, destIdPacked); } ANGLE_CAPTURE(CompressedCopyTextureCHROMIUM, isCallValid, context, sourceIdPacked, @@ -3499,15 +3656,16 @@ { TextureID sourceIdPacked = PackParam(sourceId); TextureTarget destTargetPacked = PackParam(destTarget); TextureID destIdPacked = PackParam(destId); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTextureCHROMIUM( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateCopyTextureCHROMIUM( + context, angle::EntryPoint::GLCopyTextureCHROMIUM, sourceIdPacked, sourceLevel, + destTargetPacked, destIdPacked, destLevel, internalFormat, destType, unpackFlipY, + unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); if (isCallValid) { context->copyTexture(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, destLevel, internalFormat, destType, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); @@ -3551,15 +3709,16 @@ { TextureID sourceIdPacked = PackParam(sourceId); TextureTarget destTargetPacked = PackParam(destTarget); TextureID destIdPacked = PackParam(destId); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopySubTextureCHROMIUM( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, xoffset, yoffset, x, y, width, height, - unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateCopySubTextureCHROMIUM( + context, angle::EntryPoint::GLCopySubTextureCHROMIUM, sourceIdPacked, sourceLevel, + destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, x, y, width, height, + unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); if (isCallValid) { context->copySubTexture(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, x, y, width, height, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); @@ -3583,11 +3742,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateCoverageModulationCHROMIUM(context, components)); + (context->skipValidation() || + ValidateCoverageModulationCHROMIUM( + context, angle::EntryPoint::GLCoverageModulationCHROMIUM, components)); if (isCallValid) { context->coverageModulation(components); } ANGLE_CAPTURE(CoverageModulationCHROMIUM, isCallValid, context, components); @@ -3609,12 +3770,14 @@ if (context) { GraphicsResetStatus currentPacked = PackParam(current); GraphicsResetStatus otherPacked = PackParam(other); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateLoseContextCHROMIUM(context, currentPacked, otherPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateLoseContextCHROMIUM(context, angle::EntryPoint::GLLoseContextCHROMIUM, + currentPacked, otherPacked)); if (isCallValid) { context->loseContext(currentPacked, otherPacked); } ANGLE_CAPTURE(LoseContextCHROMIUM, isCallValid, context, currentPacked, otherPacked); @@ -3625,10 +3788,70 @@ } } // GL_EXT_EGL_image_array +// GL_EXT_EGL_image_storage +void GL_APIENTRY GL_EGLImageTargetTexStorageEXT(GLenum target, + GLeglImageOES image, + const GLint *attrib_list) +{ + Context *context = GetValidGlobalContext(); + EVENT(context, GLEGLImageTargetTexStorageEXT, + "context = %d, target = %s, image = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR "", + CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), (uintptr_t)image, + (uintptr_t)attrib_list); + + if (context) + { + std::unique_lock shareContextLock = GetContextLock(context); + bool isCallValid = (context->skipValidation() || + ValidateEGLImageTargetTexStorageEXT( + context, angle::EntryPoint::GLEGLImageTargetTexStorageEXT, target, + image, attrib_list)); + if (isCallValid) + { + context->eGLImageTargetTexStorage(target, image, attrib_list); + } + ANGLE_CAPTURE(EGLImageTargetTexStorageEXT, isCallValid, context, target, image, + attrib_list); + } + else + { + GenerateContextLostErrorOnCurrentGlobalContext(); + } +} + +void GL_APIENTRY GL_EGLImageTargetTextureStorageEXT(GLuint texture, + GLeglImageOES image, + const GLint *attrib_list) +{ + Context *context = GetValidGlobalContext(); + EVENT(context, GLEGLImageTargetTextureStorageEXT, + "context = %d, texture = %u, image = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR "", + CID(context), texture, (uintptr_t)image, (uintptr_t)attrib_list); + + if (context) + { + std::unique_lock shareContextLock = GetContextLock(context); + bool isCallValid = (context->skipValidation() || + ValidateEGLImageTargetTextureStorageEXT( + context, angle::EntryPoint::GLEGLImageTargetTextureStorageEXT, + texture, image, attrib_list)); + if (isCallValid) + { + context->eGLImageTargetTextureStorage(texture, image, attrib_list); + } + ANGLE_CAPTURE(EGLImageTargetTextureStorageEXT, isCallValid, context, texture, image, + attrib_list); + } + else + { + GenerateContextLostErrorOnCurrentGlobalContext(); + } +} + // GL_EXT_YUV_target // GL_EXT_blend_func_extended void GL_APIENTRY GL_BindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name) { @@ -3639,12 +3862,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindFragDataLocationEXT(context, programPacked, color, name)); + bool isCallValid = + (context->skipValidation() || + ValidateBindFragDataLocationEXT(context, angle::EntryPoint::GLBindFragDataLocationEXT, + programPacked, color, name)); if (isCallValid) { context->bindFragDataLocation(programPacked, color, name); } ANGLE_CAPTURE(BindFragDataLocationEXT, isCallValid, context, programPacked, color, name); @@ -3667,13 +3892,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindFragDataLocationIndexedEXT( - context, programPacked, colorNumber, index, name)); + bool isCallValid = (context->skipValidation() || + ValidateBindFragDataLocationIndexedEXT( + context, angle::EntryPoint::GLBindFragDataLocationIndexedEXT, + programPacked, colorNumber, index, name)); if (isCallValid) { context->bindFragDataLocationIndexed(programPacked, colorNumber, index, name); } ANGLE_CAPTURE(BindFragDataLocationIndexedEXT, isCallValid, context, programPacked, @@ -3694,12 +3920,14 @@ GLint returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFragDataIndexEXT(context, programPacked, name)); + bool isCallValid = + (context->skipValidation() || + ValidateGetFragDataIndexEXT(context, angle::EntryPoint::GLGetFragDataIndexEXT, + programPacked, name)); if (isCallValid) { returnValue = context->getFragDataIndex(programPacked, name); } else @@ -3729,13 +3957,14 @@ GLint returnValue; if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetProgramResourceLocationIndexEXT( - context, programPacked, programInterface, name)); + bool isCallValid = (context->skipValidation() || + ValidateGetProgramResourceLocationIndexEXT( + context, angle::EntryPoint::GLGetProgramResourceLocationIndexEXT, + programPacked, programInterface, name)); if (isCallValid) { returnValue = context->getProgramResourceLocationIndex(programPacked, programInterface, name); } @@ -3755,10 +3984,12 @@ GetDefaultReturnValue(); } return returnValue; } +// GL_EXT_blend_minmax + // GL_EXT_buffer_storage void GL_APIENTRY GL_BufferStorageEXT(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags) @@ -3773,11 +4004,12 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferStorageEXT(context, targetPacked, size, data, flags)); + ValidateBufferStorageEXT(context, angle::EntryPoint::GLBufferStorageEXT, + targetPacked, size, data, flags)); if (isCallValid) { context->bufferStorage(targetPacked, size, data, flags); } ANGLE_CAPTURE(BufferStorageEXT, isCallValid, context, targetPacked, size, data, flags); @@ -3798,11 +4030,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateClipControlEXT(context, origin, depth)); + (context->skipValidation() || + ValidateClipControlEXT(context, angle::EntryPoint::GLClipControlEXT, origin, depth)); if (isCallValid) { context->clipControl(origin, depth); } ANGLE_CAPTURE(ClipControlEXT, isCallValid, context, origin, depth); @@ -3811,10 +4044,16 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_EXT_clip_cull_distance + +// GL_EXT_color_buffer_float + +// GL_EXT_color_buffer_half_float + // GL_EXT_copy_image void GL_APIENTRY GL_CopyImageSubDataEXT(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, @@ -3841,15 +4080,15 @@ dstZ, srcWidth, srcHeight, srcDepth); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCopyImageSubDataEXT(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth)); + bool isCallValid = (context->skipValidation() || + ValidateCopyImageSubDataEXT( + context, angle::EntryPoint::GLCopyImageSubDataEXT, srcName, + srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, + dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth)); if (isCallValid) { context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth); @@ -3878,11 +4117,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetObjectLabelEXT(context, type, object, bufSize, length, label)); + ValidateGetObjectLabelEXT(context, angle::EntryPoint::GLGetObjectLabelEXT, type, + object, bufSize, length, label)); if (isCallValid) { context->getObjectLabel(type, object, bufSize, length, label); } ANGLE_CAPTURE(GetObjectLabelEXT, isCallValid, context, type, object, bufSize, length, @@ -3904,11 +4144,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateLabelObjectEXT(context, type, object, length, label)); + ValidateLabelObjectEXT(context, angle::EntryPoint::GLLabelObjectEXT, + type, object, length, label)); if (isCallValid) { context->labelObject(type, object, length, label); } ANGLE_CAPTURE(LabelObjectEXT, isCallValid, context, type, object, length, label); @@ -3930,11 +4171,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateInsertEventMarkerEXT(context, length, marker)); + (context->skipValidation() || + ValidateInsertEventMarkerEXT(context, angle::EntryPoint::GLInsertEventMarkerEXT, + length, marker)); if (isCallValid) { context->insertEventMarker(length, marker); } ANGLE_CAPTURE(InsertEventMarkerEXT, isCallValid, context, length, marker); @@ -3953,11 +4196,13 @@ // EVENT(context, GLPopGroupMarkerEXT, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopGroupMarkerEXT(context)); + bool isCallValid = + (context->skipValidation() || + ValidatePopGroupMarkerEXT(context, angle::EntryPoint::GLPopGroupMarkerEXT)); if (isCallValid) { context->popGroupMarker(); } ANGLE_CAPTURE(PopGroupMarkerEXT, isCallValid, context); @@ -3977,12 +4222,13 @@ // CID(context), length, (uintptr_t)marker); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePushGroupMarkerEXT(context, length, marker)); + bool isCallValid = (context->skipValidation() || + ValidatePushGroupMarkerEXT( + context, angle::EntryPoint::GLPushGroupMarkerEXT, length, marker)); if (isCallValid) { context->pushGroupMarker(length, marker); } ANGLE_CAPTURE(PushGroupMarkerEXT, isCallValid, context, length, marker); @@ -4007,11 +4253,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDiscardFramebufferEXT(context, target, numAttachments, attachments)); + ValidateDiscardFramebufferEXT(context, angle::EntryPoint::GLDiscardFramebufferEXT, + target, numAttachments, attachments)); if (isCallValid) { context->discardFramebuffer(target, numAttachments, attachments); } ANGLE_CAPTURE(DiscardFramebufferEXT, isCallValid, context, target, numAttachments, @@ -4033,12 +4280,13 @@ if (context) { QueryType targetPacked = PackParam(target); QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBeginQueryEXT(context, targetPacked, idPacked)); + bool isCallValid = (context->skipValidation() || + ValidateBeginQueryEXT(context, angle::EntryPoint::GLBeginQueryEXT, + targetPacked, idPacked)); if (isCallValid) { context->beginQuery(targetPacked, idPacked); } ANGLE_CAPTURE(BeginQueryEXT, isCallValid, context, targetPacked, idPacked); @@ -4057,12 +4305,13 @@ if (context) { const QueryID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteQueriesEXT(context, n, idsPacked)); + bool isCallValid = (context->skipValidation() || + ValidateDeleteQueriesEXT(context, angle::EntryPoint::GLDeleteQueriesEXT, + n, idsPacked)); if (isCallValid) { context->deleteQueries(n, idsPacked); } ANGLE_CAPTURE(DeleteQueriesEXT, isCallValid, context, n, idsPacked); @@ -4082,11 +4331,12 @@ if (context) { QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateEndQueryEXT(context, targetPacked)); + (context->skipValidation() || + ValidateEndQueryEXT(context, angle::EntryPoint::GLEndQueryEXT, targetPacked)); if (isCallValid) { context->endQuery(targetPacked); } ANGLE_CAPTURE(EndQueryEXT, isCallValid, context, targetPacked); @@ -4106,11 +4356,12 @@ if (context) { QueryID *idsPacked = PackParam(ids); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenQueriesEXT(context, n, idsPacked)); + (context->skipValidation() || + ValidateGenQueriesEXT(context, angle::EntryPoint::GLGenQueriesEXT, n, idsPacked)); if (isCallValid) { context->genQueries(n, idsPacked); } ANGLE_CAPTURE(GenQueriesEXT, isCallValid, context, n, idsPacked); @@ -4129,11 +4380,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetInteger64vEXT(context, pname, data)); + (context->skipValidation() || + ValidateGetInteger64vEXT(context, angle::EntryPoint::GLGetInteger64vEXT, pname, data)); if (isCallValid) { context->getInteger64v(pname, data); } ANGLE_CAPTURE(GetInteger64vEXT, isCallValid, context, pname, data); @@ -4153,12 +4405,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjecti64vEXT(context, idPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetQueryObjecti64vEXT(context, angle::EntryPoint::GLGetQueryObjecti64vEXT, + idPacked, pname, params)); if (isCallValid) { context->getQueryObjecti64v(idPacked, pname, params); } ANGLE_CAPTURE(GetQueryObjecti64vEXT, isCallValid, context, idPacked, pname, params); @@ -4176,12 +4430,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectivEXT(context, idPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetQueryObjectivEXT(context, angle::EntryPoint::GLGetQueryObjectivEXT, + idPacked, pname, params)); if (isCallValid) { context->getQueryObjectiv(idPacked, pname, params); } ANGLE_CAPTURE(GetQueryObjectivEXT, isCallValid, context, idPacked, pname, params); @@ -4199,12 +4455,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectui64vEXT(context, idPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetQueryObjectui64vEXT(context, angle::EntryPoint::GLGetQueryObjectui64vEXT, + idPacked, pname, params)); if (isCallValid) { context->getQueryObjectui64v(idPacked, pname, params); } ANGLE_CAPTURE(GetQueryObjectui64vEXT, isCallValid, context, idPacked, pname, params); @@ -4224,12 +4482,14 @@ if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectuivEXT(context, idPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetQueryObjectuivEXT(context, angle::EntryPoint::GLGetQueryObjectuivEXT, + idPacked, pname, params)); if (isCallValid) { context->getQueryObjectuiv(idPacked, pname, params); } ANGLE_CAPTURE(GetQueryObjectuivEXT, isCallValid, context, idPacked, pname, params); @@ -4251,11 +4511,12 @@ if (context) { QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetQueryivEXT(context, targetPacked, pname, params)); + ValidateGetQueryivEXT(context, angle::EntryPoint::GLGetQueryivEXT, + targetPacked, pname, params)); if (isCallValid) { context->getQueryiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetQueryivEXT, isCallValid, context, targetPacked, pname, params); @@ -4274,11 +4535,12 @@ GLboolean returnValue; if (context) { QueryID idPacked = PackParam(id); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsQueryEXT(context, idPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsQueryEXT(context, angle::EntryPoint::GLIsQueryEXT, idPacked)); if (isCallValid) { returnValue = context->isQuery(idPacked); } else @@ -4304,12 +4566,13 @@ if (context) { QueryID idPacked = PackParam(id); QueryType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateQueryCounterEXT(context, idPacked, targetPacked)); + bool isCallValid = (context->skipValidation() || + ValidateQueryCounterEXT(context, angle::EntryPoint::GLQueryCounterEXT, + idPacked, targetPacked)); if (isCallValid) { context->queryCounter(idPacked, targetPacked); } ANGLE_CAPTURE(QueryCounterEXT, isCallValid, context, idPacked, targetPacked); @@ -4328,11 +4591,13 @@ n, (uintptr_t)bufs); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawBuffersEXT(context, n, bufs)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawBuffersEXT(context, angle::EntryPoint::GLDrawBuffersEXT, n, bufs)); if (isCallValid) { context->drawBuffers(n, bufs); } ANGLE_CAPTURE(DrawBuffersEXT, isCallValid, context, n, bufs); @@ -4353,12 +4618,14 @@ GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparateiEXT(context, buf, modeRGB, modeAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateBlendEquationSeparateiEXT( + context, angle::EntryPoint::GLBlendEquationSeparateiEXT, buf, modeRGB, modeAlpha)); if (isCallValid) { context->blendEquationSeparatei(buf, modeRGB, modeAlpha); } ANGLE_CAPTURE(BlendEquationSeparateiEXT, isCallValid, context, buf, modeRGB, modeAlpha); @@ -4377,11 +4644,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendEquationiEXT(context, buf, mode)); + (context->skipValidation() || + ValidateBlendEquationiEXT(context, angle::EntryPoint::GLBlendEquationiEXT, buf, mode)); if (isCallValid) { context->blendEquationi(buf, mode); } ANGLE_CAPTURE(BlendEquationiEXT, isCallValid, context, buf, mode); @@ -4406,11 +4674,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBlendFuncSeparateiEXT(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); + ValidateBlendFuncSeparateiEXT(context, angle::EntryPoint::GLBlendFuncSeparateiEXT, buf, + srcRGB, dstRGB, srcAlpha, dstAlpha)); if (isCallValid) { context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); } ANGLE_CAPTURE(BlendFuncSeparateiEXT, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, @@ -4431,11 +4700,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendFunciEXT(context, buf, src, dst)); + (context->skipValidation() || + ValidateBlendFunciEXT(context, angle::EntryPoint::GLBlendFunciEXT, buf, src, dst)); if (isCallValid) { context->blendFunci(buf, src, dst); } ANGLE_CAPTURE(BlendFunciEXT, isCallValid, context, buf, src, dst); @@ -4455,11 +4725,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColorMaskiEXT(context, index, r, g, b, a)); + (context->skipValidation() || + ValidateColorMaskiEXT(context, angle::EntryPoint::GLColorMaskiEXT, index, r, g, b, a)); if (isCallValid) { context->colorMaski(index, r, g, b, a); } ANGLE_CAPTURE(ColorMaskiEXT, isCallValid, context, index, r, g, b, a); @@ -4478,11 +4749,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDisableiEXT(context, target, index)); + (context->skipValidation() || + ValidateDisableiEXT(context, angle::EntryPoint::GLDisableiEXT, target, index)); if (isCallValid) { context->disablei(target, index); } ANGLE_CAPTURE(DisableiEXT, isCallValid, context, target, index); @@ -4501,11 +4773,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateEnableiEXT(context, target, index)); + (context->skipValidation() || + ValidateEnableiEXT(context, angle::EntryPoint::GLEnableiEXT, target, index)); if (isCallValid) { context->enablei(target, index); } ANGLE_CAPTURE(EnableiEXT, isCallValid, context, target, index); @@ -4525,11 +4798,12 @@ GLboolean returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsEnablediEXT(context, target, index)); + (context->skipValidation() || + ValidateIsEnablediEXT(context, angle::EntryPoint::GLIsEnablediEXT, target, index)); if (isCallValid) { returnValue = context->isEnabledi(target, index); } else @@ -4564,12 +4838,13 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertexEXT(context, modePacked, count, - typePacked, indices, basevertex)); + ValidateDrawElementsBaseVertexEXT( + context, angle::EntryPoint::GLDrawElementsBaseVertexEXT, modePacked, + count, typePacked, indices, basevertex)); if (isCallValid) { context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); } ANGLE_CAPTURE(DrawElementsBaseVertexEXT, isCallValid, context, modePacked, count, @@ -4599,13 +4874,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexEXT( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawElementsInstancedBaseVertexEXT( + context, angle::EntryPoint::GLDrawElementsInstancedBaseVertexEXT, + modePacked, count, typePacked, indices, instancecount, basevertex)); if (isCallValid) { context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, instancecount, basevertex); } @@ -4636,13 +4912,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertexEXT( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawRangeElementsBaseVertexEXT( + context, angle::EntryPoint::GLDrawRangeElementsBaseVertexEXT, + modePacked, start, end, count, typePacked, indices, basevertex)); if (isCallValid) { context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, basevertex); } @@ -4673,13 +4950,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultiDrawElementsBaseVertexEXT( - context, modePacked, count, typePacked, - indices, primcount, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateMultiDrawElementsBaseVertexEXT( + context, angle::EntryPoint::GLMultiDrawElementsBaseVertexEXT, + modePacked, count, typePacked, indices, primcount, basevertex)); if (isCallValid) { context->multiDrawElementsBaseVertex(modePacked, count, typePacked, indices, primcount, basevertex); } @@ -4711,12 +4989,13 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferStorageExternalEXT(context, targetPacked, offset, size, - clientBuffer, flags)); + ValidateBufferStorageExternalEXT( + context, angle::EntryPoint::GLBufferStorageExternalEXT, + targetPacked, offset, size, clientBuffer, flags)); if (isCallValid) { context->bufferStorageExternal(targetPacked, offset, size, clientBuffer, flags); } ANGLE_CAPTURE(BufferStorageExternalEXT, isCallValid, context, targetPacked, offset, size, @@ -4743,13 +5022,14 @@ GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateNamedBufferStorageExternalEXT( - context, buffer, offset, size, clientBuffer, flags)); + bool isCallValid = (context->skipValidation() || + ValidateNamedBufferStorageExternalEXT( + context, angle::EntryPoint::GLNamedBufferStorageExternalEXT, buffer, + offset, size, clientBuffer, flags)); if (isCallValid) { context->namedBufferStorageExternal(buffer, offset, size, clientBuffer, flags); } ANGLE_CAPTURE(NamedBufferStorageExternalEXT, isCallValid, context, buffer, offset, size, @@ -4759,10 +5039,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_EXT_float_blend + // GL_EXT_geometry_shader void GL_APIENTRY GL_FramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level) @@ -4777,11 +5059,12 @@ { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateFramebufferTextureEXT(context, target, attachment, texturePacked, level)); + ValidateFramebufferTextureEXT(context, angle::EntryPoint::GLFramebufferTextureEXT, + target, attachment, texturePacked, level)); if (isCallValid) { context->framebufferTexture(target, attachment, texturePacked, level); } ANGLE_CAPTURE(FramebufferTextureEXT, isCallValid, context, target, attachment, @@ -4791,10 +5074,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_EXT_gpu_shader5 + // GL_EXT_instanced_arrays void GL_APIENTRY GL_DrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount) @@ -4808,11 +5093,12 @@ { PrimitiveMode modePacked = PackParam(mode); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawArraysInstancedEXT(context, modePacked, start, count, primcount)); + ValidateDrawArraysInstancedEXT(context, angle::EntryPoint::GLDrawArraysInstancedEXT, + modePacked, start, count, primcount)); if (isCallValid) { context->drawArraysInstanced(modePacked, start, count, primcount); } ANGLE_CAPTURE(DrawArraysInstancedEXT, isCallValid, context, modePacked, start, count, @@ -4841,12 +5127,13 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstancedEXT(context, modePacked, count, typePacked, - indices, primcount)); + ValidateDrawElementsInstancedEXT( + context, angle::EntryPoint::GLDrawElementsInstancedEXT, modePacked, + count, typePacked, indices, primcount)); if (isCallValid) { context->drawElementsInstanced(modePacked, count, typePacked, indices, primcount); } ANGLE_CAPTURE(DrawElementsInstancedEXT, isCallValid, context, modePacked, count, typePacked, @@ -4866,11 +5153,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateVertexAttribDivisorEXT(context, index, divisor)); + (context->skipValidation() || + ValidateVertexAttribDivisorEXT(context, angle::EntryPoint::GLVertexAttribDivisorEXT, + index, divisor)); if (isCallValid) { context->vertexAttribDivisor(index, divisor); } ANGLE_CAPTURE(VertexAttribDivisorEXT, isCallValid, context, index, divisor); @@ -4892,13 +5181,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFlushMappedBufferRangeEXT(context, targetPacked, offset, length)); + bool isCallValid = (context->skipValidation() || + ValidateFlushMappedBufferRangeEXT( + context, angle::EntryPoint::GLFlushMappedBufferRangeEXT, + targetPacked, offset, length)); if (isCallValid) { context->flushMappedBufferRange(targetPacked, offset, length); } ANGLE_CAPTURE(FlushMappedBufferRangeEXT, isCallValid, context, targetPacked, offset, @@ -4927,11 +5217,12 @@ { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateMapBufferRangeEXT(context, targetPacked, offset, length, access)); + ValidateMapBufferRangeEXT(context, angle::EntryPoint::GLMapBufferRangeEXT, + targetPacked, offset, length, access)); if (isCallValid) { returnValue = context->mapBufferRange(targetPacked, offset, length, access); } else @@ -4966,11 +5257,12 @@ TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferStorageMemEXT(context, targetPacked, size, memoryPacked, offset)); + ValidateBufferStorageMemEXT(context, angle::EntryPoint::GLBufferStorageMemEXT, + targetPacked, size, memoryPacked, offset)); if (isCallValid) { context->bufferStorageMem(targetPacked, size, memoryPacked, offset); } ANGLE_CAPTURE(BufferStorageMemEXT, isCallValid, context, targetPacked, size, memoryPacked, @@ -4991,12 +5283,14 @@ if (context) { MemoryObjectID *memoryObjectsPacked = PackParam(memoryObjects); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateMemoryObjectsEXT(context, n, memoryObjectsPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateCreateMemoryObjectsEXT(context, angle::EntryPoint::GLCreateMemoryObjectsEXT, n, + memoryObjectsPacked)); if (isCallValid) { context->createMemoryObjects(n, memoryObjectsPacked); } ANGLE_CAPTURE(CreateMemoryObjectsEXT, isCallValid, context, n, memoryObjectsPacked); @@ -5017,12 +5311,14 @@ if (context) { const MemoryObjectID *memoryObjectsPacked = PackParam(memoryObjects); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteMemoryObjectsEXT(context, n, memoryObjectsPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteMemoryObjectsEXT(context, angle::EntryPoint::GLDeleteMemoryObjectsEXT, n, + memoryObjectsPacked)); if (isCallValid) { context->deleteMemoryObjects(n, memoryObjectsPacked); } ANGLE_CAPTURE(DeleteMemoryObjectsEXT, isCallValid, context, n, memoryObjectsPacked); @@ -5043,13 +5339,14 @@ if (context) { MemoryObjectID memoryObjectPacked = PackParam(memoryObject); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetMemoryObjectParameterivEXT(context, memoryObjectPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetMemoryObjectParameterivEXT( + context, angle::EntryPoint::GLGetMemoryObjectParameterivEXT, + memoryObjectPacked, pname, params)); if (isCallValid) { context->getMemoryObjectParameteriv(memoryObjectPacked, pname, params); } ANGLE_CAPTURE(GetMemoryObjectParameterivEXT, isCallValid, context, memoryObjectPacked, @@ -5068,12 +5365,13 @@ CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetUnsignedBytevEXT(context, pname, data)); + bool isCallValid = (context->skipValidation() || + ValidateGetUnsignedBytevEXT( + context, angle::EntryPoint::GLGetUnsignedBytevEXT, pname, data)); if (isCallValid) { context->getUnsignedBytev(pname, data); } ANGLE_CAPTURE(GetUnsignedBytevEXT, isCallValid, context, pname, data); @@ -5092,12 +5390,14 @@ GLenumToString(GLenumGroup::DefaultGroup, target), index, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUnsignedBytei_vEXT(context, target, index, data)); + bool isCallValid = + (context->skipValidation() || + ValidateGetUnsignedBytei_vEXT(context, angle::EntryPoint::GLGetUnsignedBytei_vEXT, + target, index, data)); if (isCallValid) { context->getUnsignedBytei_v(target, index, data); } ANGLE_CAPTURE(GetUnsignedBytei_vEXT, isCallValid, context, target, index, data); @@ -5118,11 +5418,13 @@ if (context) { MemoryObjectID memoryObjectPacked = PackParam(memoryObject); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsMemoryObjectEXT(context, memoryObjectPacked)); + (context->skipValidation() || + ValidateIsMemoryObjectEXT(context, angle::EntryPoint::GLIsMemoryObjectEXT, + memoryObjectPacked)); if (isCallValid) { returnValue = context->isMemoryObject(memoryObjectPacked); } else @@ -5152,13 +5454,14 @@ if (context) { MemoryObjectID memoryObjectPacked = PackParam(memoryObject); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMemoryObjectParameterivEXT(context, memoryObjectPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateMemoryObjectParameterivEXT( + context, angle::EntryPoint::GLMemoryObjectParameterivEXT, + memoryObjectPacked, pname, params)); if (isCallValid) { context->memoryObjectParameteriv(memoryObjectPacked, pname, params); } ANGLE_CAPTURE(MemoryObjectParameterivEXT, isCallValid, context, memoryObjectPacked, pname, @@ -5189,14 +5492,14 @@ if (context) { TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorageMem2DEXT(context, targetPacked, levels, internalFormat, width, - height, memoryPacked, offset)); + bool isCallValid = (context->skipValidation() || + ValidateTexStorageMem2DEXT( + context, angle::EntryPoint::GLTexStorageMem2DEXT, targetPacked, + levels, internalFormat, width, height, memoryPacked, offset)); if (isCallValid) { context->texStorageMem2D(targetPacked, levels, internalFormat, width, height, memoryPacked, offset); } @@ -5230,13 +5533,14 @@ { TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexStorageMem2DMultisampleEXT( - context, targetPacked, samples, internalFormat, width, - height, fixedSampleLocations, memoryPacked, offset)); + (context->skipValidation() || + ValidateTexStorageMem2DMultisampleEXT( + context, angle::EntryPoint::GLTexStorageMem2DMultisampleEXT, targetPacked, samples, + internalFormat, width, height, fixedSampleLocations, memoryPacked, offset)); if (isCallValid) { context->texStorageMem2DMultisample(targetPacked, samples, internalFormat, width, height, fixedSampleLocations, memoryPacked, offset); } @@ -5271,12 +5575,13 @@ TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorageMem3DEXT(context, targetPacked, levels, internalFormat, width, - height, depth, memoryPacked, offset)); + ValidateTexStorageMem3DEXT(context, angle::EntryPoint::GLTexStorageMem3DEXT, + targetPacked, levels, internalFormat, width, height, depth, + memoryPacked, offset)); if (isCallValid) { context->texStorageMem3D(targetPacked, levels, internalFormat, width, height, depth, memoryPacked, offset); } @@ -5310,14 +5615,15 @@ if (context) { TextureType targetPacked = PackParam(target); MemoryObjectID memoryPacked = PackParam(memory); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorageMem3DMultisampleEXT( - context, targetPacked, samples, internalFormat, width, height, - depth, fixedSampleLocations, memoryPacked, offset)); + bool isCallValid = + (context->skipValidation() || + ValidateTexStorageMem3DMultisampleEXT( + context, angle::EntryPoint::GLTexStorageMem3DMultisampleEXT, targetPacked, samples, + internalFormat, width, height, depth, fixedSampleLocations, memoryPacked, offset)); if (isCallValid) { context->texStorageMem3DMultisample(targetPacked, samples, internalFormat, width, height, depth, fixedSampleLocations, memoryPacked, offset); @@ -5346,11 +5652,12 @@ MemoryObjectID memoryPacked = PackParam(memory); HandleType handleTypePacked = PackParam(handleType); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateImportMemoryFdEXT(context, memoryPacked, size, handleTypePacked, fd)); + ValidateImportMemoryFdEXT(context, angle::EntryPoint::GLImportMemoryFdEXT, + memoryPacked, size, handleTypePacked, fd)); if (isCallValid) { context->importMemoryFd(memoryPacked, size, handleTypePacked, fd); } ANGLE_CAPTURE(ImportMemoryFdEXT, isCallValid, context, memoryPacked, size, handleTypePacked, @@ -5384,11 +5691,12 @@ TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateFramebufferTexture2DMultisampleEXT( - context, target, attachment, textargetPacked, texturePacked, level, samples)); + context, angle::EntryPoint::GLFramebufferTexture2DMultisampleEXT, target, + attachment, textargetPacked, texturePacked, level, samples)); if (isCallValid) { context->framebufferTexture2DMultisample(target, attachment, textargetPacked, texturePacked, level, samples); } @@ -5416,11 +5724,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateRenderbufferStorageMultisampleEXT( - context, target, samples, internalformat, width, height)); + context, angle::EntryPoint::GLRenderbufferStorageMultisampleEXT, + target, samples, internalformat, width, height)); if (isCallValid) { context->renderbufferStorageMultisampleEXT(target, samples, internalformat, width, height); } @@ -5465,13 +5774,14 @@ CID(context), minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePrimitiveBoundingBoxEXT(context, minX, minY, minZ, minW, maxX, - maxY, maxZ, maxW)); + bool isCallValid = + (context->skipValidation() || + ValidatePrimitiveBoundingBoxEXT(context, angle::EntryPoint::GLPrimitiveBoundingBoxEXT, + minX, minY, minZ, minW, maxX, maxY, maxZ, maxW)); if (isCallValid) { context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); } ANGLE_CAPTURE(PrimitiveBoundingBoxEXT, isCallValid, context, minX, minY, minZ, minW, maxX, @@ -5481,10 +5791,14 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_EXT_protected_textures + +// GL_EXT_pvrtc_sRGB + // GL_EXT_read_format_bgra // GL_EXT_robustness GLenum GL_APIENTRY GL_GetGraphicsResetStatusEXT() { @@ -5493,12 +5807,13 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetGraphicsResetStatusEXT(context)); + bool isCallValid = (context->skipValidation() || + ValidateGetGraphicsResetStatusEXT( + context, angle::EntryPoint::GLGetGraphicsResetStatusEXT)); if (isCallValid) { returnValue = context->getGraphicsResetStatus(); } else @@ -5532,11 +5847,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetnUniformfvEXT(context, programPacked, locationPacked, bufSize, params)); + ValidateGetnUniformfvEXT(context, angle::EntryPoint::GLGetnUniformfvEXT, programPacked, + locationPacked, bufSize, params)); if (isCallValid) { context->getnUniformfv(programPacked, locationPacked, bufSize, params); } ANGLE_CAPTURE(GetnUniformfvEXT, isCallValid, context, programPacked, locationPacked, @@ -5560,11 +5876,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetnUniformivEXT(context, programPacked, locationPacked, bufSize, params)); + ValidateGetnUniformivEXT(context, angle::EntryPoint::GLGetnUniformivEXT, programPacked, + locationPacked, bufSize, params)); if (isCallValid) { context->getnUniformiv(programPacked, locationPacked, bufSize, params); } ANGLE_CAPTURE(GetnUniformivEXT, isCallValid, context, programPacked, locationPacked, @@ -5593,13 +5910,13 @@ GLenumToString(GLenumGroup::PixelType, type), bufSize, (uintptr_t)data); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixelsEXT(context, x, y, width, height, format, type, bufSize, data)); + bool isCallValid = (context->skipValidation() || + ValidateReadnPixelsEXT(context, angle::EntryPoint::GLReadnPixelsEXT, x, + y, width, height, format, type, bufSize, data)); if (isCallValid) { context->readnPixels(x, y, width, height, format, type, bufSize, data); } ANGLE_CAPTURE(ReadnPixelsEXT, isCallValid, context, x, y, width, height, format, type, @@ -5611,10 +5928,12 @@ } } // GL_EXT_sRGB +// GL_EXT_sRGB_write_control + // GL_EXT_semaphore void GL_APIENTRY GL_DeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores) { Context *context = GetValidGlobalContext(); EVENT(context, GLDeleteSemaphoresEXT, "context = %d, n = %d, semaphores = 0x%016" PRIxPTR "", @@ -5622,12 +5941,14 @@ if (context) { const SemaphoreID *semaphoresPacked = PackParam(semaphores); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteSemaphoresEXT(context, n, semaphoresPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteSemaphoresEXT(context, angle::EntryPoint::GLDeleteSemaphoresEXT, n, + semaphoresPacked)); if (isCallValid) { context->deleteSemaphores(n, semaphoresPacked); } ANGLE_CAPTURE(DeleteSemaphoresEXT, isCallValid, context, n, semaphoresPacked); @@ -5646,12 +5967,13 @@ if (context) { SemaphoreID *semaphoresPacked = PackParam(semaphores); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenSemaphoresEXT(context, n, semaphoresPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenSemaphoresEXT(context, angle::EntryPoint::GLGenSemaphoresEXT, + n, semaphoresPacked)); if (isCallValid) { context->genSemaphores(n, semaphoresPacked); } ANGLE_CAPTURE(GenSemaphoresEXT, isCallValid, context, n, semaphoresPacked); @@ -5671,13 +5993,14 @@ if (context) { SemaphoreID semaphorePacked = PackParam(semaphore); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSemaphoreParameterui64vEXT(context, semaphorePacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetSemaphoreParameterui64vEXT( + context, angle::EntryPoint::GLGetSemaphoreParameterui64vEXT, + semaphorePacked, pname, params)); if (isCallValid) { context->getSemaphoreParameterui64v(semaphorePacked, pname, params); } ANGLE_CAPTURE(GetSemaphoreParameterui64vEXT, isCallValid, context, semaphorePacked, pname, @@ -5698,11 +6021,12 @@ if (context) { SemaphoreID semaphorePacked = PackParam(semaphore); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsSemaphoreEXT(context, semaphorePacked)); + (context->skipValidation() || + ValidateIsSemaphoreEXT(context, angle::EntryPoint::GLIsSemaphoreEXT, semaphorePacked)); if (isCallValid) { returnValue = context->isSemaphore(semaphorePacked); } else @@ -5730,13 +6054,14 @@ if (context) { SemaphoreID semaphorePacked = PackParam(semaphore); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSemaphoreParameterui64vEXT(context, semaphorePacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateSemaphoreParameterui64vEXT( + context, angle::EntryPoint::GLSemaphoreParameterui64vEXT, + semaphorePacked, pname, params)); if (isCallValid) { context->semaphoreParameterui64v(semaphorePacked, pname, params); } ANGLE_CAPTURE(SemaphoreParameterui64vEXT, isCallValid, context, semaphorePacked, pname, @@ -5768,11 +6093,12 @@ const BufferID *buffersPacked = PackParam(buffers); const TextureID *texturesPacked = PackParam(textures); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateSignalSemaphoreEXT(context, semaphorePacked, numBufferBarriers, buffersPacked, + ValidateSignalSemaphoreEXT(context, angle::EntryPoint::GLSignalSemaphoreEXT, + semaphorePacked, numBufferBarriers, buffersPacked, numTextureBarriers, texturesPacked, dstLayouts)); if (isCallValid) { context->signalSemaphore(semaphorePacked, numBufferBarriers, buffersPacked, numTextureBarriers, texturesPacked, dstLayouts); @@ -5806,11 +6132,12 @@ const BufferID *buffersPacked = PackParam(buffers); const TextureID *texturesPacked = PackParam(textures); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateWaitSemaphoreEXT(context, semaphorePacked, numBufferBarriers, buffersPacked, + ValidateWaitSemaphoreEXT(context, angle::EntryPoint::GLWaitSemaphoreEXT, + semaphorePacked, numBufferBarriers, buffersPacked, numTextureBarriers, texturesPacked, srcLayouts)); if (isCallValid) { context->waitSemaphore(semaphorePacked, numBufferBarriers, buffersPacked, numTextureBarriers, texturesPacked, srcLayouts); @@ -5840,11 +6167,12 @@ SemaphoreID semaphorePacked = PackParam(semaphore); HandleType handleTypePacked = PackParam(handleType); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateImportSemaphoreFdEXT(context, semaphorePacked, handleTypePacked, fd)); + ValidateImportSemaphoreFdEXT(context, angle::EntryPoint::GLImportSemaphoreFdEXT, + semaphorePacked, handleTypePacked, fd)); if (isCallValid) { context->importSemaphoreFd(semaphorePacked, handleTypePacked, fd); } ANGLE_CAPTURE(ImportSemaphoreFdEXT, isCallValid, context, semaphorePacked, handleTypePacked, @@ -5866,12 +6194,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateActiveShaderProgramEXT(context, pipelinePacked, programPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateActiveShaderProgramEXT(context, angle::EntryPoint::GLActiveShaderProgramEXT, + pipelinePacked, programPacked)); if (isCallValid) { context->activeShaderProgram(pipelinePacked, programPacked); } ANGLE_CAPTURE(ActiveShaderProgramEXT, isCallValid, context, pipelinePacked, programPacked); @@ -5890,11 +6220,13 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBindProgramPipelineEXT(context, pipelinePacked)); + (context->skipValidation() || + ValidateBindProgramPipelineEXT(context, angle::EntryPoint::GLBindProgramPipelineEXT, + pipelinePacked)); if (isCallValid) { context->bindProgramPipeline(pipelinePacked); } ANGLE_CAPTURE(BindProgramPipelineEXT, isCallValid, context, pipelinePacked); @@ -5915,12 +6247,14 @@ GLuint returnValue; if (context) { ShaderType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateShaderProgramvEXT(context, typePacked, count, strings)); + bool isCallValid = + (context->skipValidation() || + ValidateCreateShaderProgramvEXT(context, angle::EntryPoint::GLCreateShaderProgramvEXT, + typePacked, count, strings)); if (isCallValid) { returnValue = context->createShaderProgramv(typePacked, count, strings); } else @@ -5948,12 +6282,14 @@ if (context) { const ProgramPipelineID *pipelinesPacked = PackParam(pipelines); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteProgramPipelinesEXT(context, n, pipelinesPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteProgramPipelinesEXT( + context, angle::EntryPoint::GLDeleteProgramPipelinesEXT, n, pipelinesPacked)); if (isCallValid) { context->deleteProgramPipelines(n, pipelinesPacked); } ANGLE_CAPTURE(DeleteProgramPipelinesEXT, isCallValid, context, n, pipelinesPacked); @@ -5972,12 +6308,14 @@ if (context) { ProgramPipelineID *pipelinesPacked = PackParam(pipelines); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenProgramPipelinesEXT(context, n, pipelinesPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateGenProgramPipelinesEXT(context, angle::EntryPoint::GLGenProgramPipelinesEXT, n, + pipelinesPacked)); if (isCallValid) { context->genProgramPipelines(n, pipelinesPacked); } ANGLE_CAPTURE(GenProgramPipelinesEXT, isCallValid, context, n, pipelinesPacked); @@ -6001,13 +6339,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetProgramPipelineInfoLogEXT( - context, pipelinePacked, bufSize, length, infoLog)); + bool isCallValid = (context->skipValidation() || + ValidateGetProgramPipelineInfoLogEXT( + context, angle::EntryPoint::GLGetProgramPipelineInfoLogEXT, + pipelinePacked, bufSize, length, infoLog)); if (isCallValid) { context->getProgramPipelineInfoLog(pipelinePacked, bufSize, length, infoLog); } ANGLE_CAPTURE(GetProgramPipelineInfoLogEXT, isCallValid, context, pipelinePacked, bufSize, @@ -6030,11 +6369,12 @@ { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetProgramPipelineivEXT(context, pipelinePacked, pname, params)); + ValidateGetProgramPipelineivEXT(context, angle::EntryPoint::GLGetProgramPipelineivEXT, + pipelinePacked, pname, params)); if (isCallValid) { context->getProgramPipelineiv(pipelinePacked, pname, params); } ANGLE_CAPTURE(GetProgramPipelineivEXT, isCallValid, context, pipelinePacked, pname, params); @@ -6054,11 +6394,13 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsProgramPipelineEXT(context, pipelinePacked)); + (context->skipValidation() || + ValidateIsProgramPipelineEXT(context, angle::EntryPoint::GLIsProgramPipelineEXT, + pipelinePacked)); if (isCallValid) { returnValue = context->isProgramPipeline(pipelinePacked); } else @@ -6084,12 +6426,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramParameteriEXT(context, programPacked, pname, value)); + bool isCallValid = + (context->skipValidation() || + ValidateProgramParameteriEXT(context, angle::EntryPoint::GLProgramParameteriEXT, + programPacked, pname, value)); if (isCallValid) { context->programParameteri(programPacked, pname, value); } ANGLE_CAPTURE(ProgramParameteriEXT, isCallValid, context, programPacked, pname, value); @@ -6111,11 +6455,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1fEXT(context, programPacked, locationPacked, v0)); + ValidateProgramUniform1fEXT(context, angle::EntryPoint::GLProgramUniform1fEXT, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1f(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1fEXT, isCallValid, context, programPacked, locationPacked, v0); @@ -6141,11 +6486,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1fvEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1fvEXT(context, angle::EntryPoint::GLProgramUniform1fvEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1fvEXT, isCallValid, context, programPacked, locationPacked, @@ -6168,11 +6514,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1iEXT(context, programPacked, locationPacked, v0)); + ValidateProgramUniform1iEXT(context, angle::EntryPoint::GLProgramUniform1iEXT, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1i(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1iEXT, isCallValid, context, programPacked, locationPacked, v0); @@ -6198,11 +6545,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1ivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1ivEXT(context, angle::EntryPoint::GLProgramUniform1ivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1ivEXT, isCallValid, context, programPacked, locationPacked, @@ -6225,11 +6573,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1uiEXT(context, programPacked, locationPacked, v0)); + ValidateProgramUniform1uiEXT(context, angle::EntryPoint::GLProgramUniform1uiEXT, + programPacked, locationPacked, v0)); if (isCallValid) { context->programUniform1ui(programPacked, locationPacked, v0); } ANGLE_CAPTURE(ProgramUniform1uiEXT, isCallValid, context, programPacked, locationPacked, @@ -6256,11 +6605,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1uivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform1uivEXT(context, angle::EntryPoint::GLProgramUniform1uivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform1uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform1uivEXT, isCallValid, context, programPacked, locationPacked, @@ -6284,11 +6634,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2fEXT(context, programPacked, locationPacked, v0, v1)); + ValidateProgramUniform2fEXT(context, angle::EntryPoint::GLProgramUniform2fEXT, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2f(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2fEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6315,11 +6666,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2fvEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2fvEXT(context, angle::EntryPoint::GLProgramUniform2fvEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2fvEXT, isCallValid, context, programPacked, locationPacked, @@ -6343,11 +6695,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2iEXT(context, programPacked, locationPacked, v0, v1)); + ValidateProgramUniform2iEXT(context, angle::EntryPoint::GLProgramUniform2iEXT, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2i(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2iEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6374,11 +6727,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2ivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2ivEXT(context, angle::EntryPoint::GLProgramUniform2ivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2ivEXT, isCallValid, context, programPacked, locationPacked, @@ -6402,11 +6756,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2uiEXT(context, programPacked, locationPacked, v0, v1)); + ValidateProgramUniform2uiEXT(context, angle::EntryPoint::GLProgramUniform2uiEXT, + programPacked, locationPacked, v0, v1)); if (isCallValid) { context->programUniform2ui(programPacked, locationPacked, v0, v1); } ANGLE_CAPTURE(ProgramUniform2uiEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6433,11 +6788,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform2uivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform2uivEXT(context, angle::EntryPoint::GLProgramUniform2uivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform2uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform2uivEXT, isCallValid, context, programPacked, locationPacked, @@ -6462,11 +6818,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3fEXT(context, programPacked, locationPacked, v0, v1, v2)); + ValidateProgramUniform3fEXT(context, angle::EntryPoint::GLProgramUniform3fEXT, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3f(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3fEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6493,11 +6850,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3fvEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3fvEXT(context, angle::EntryPoint::GLProgramUniform3fvEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3fvEXT, isCallValid, context, programPacked, locationPacked, @@ -6522,11 +6880,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3iEXT(context, programPacked, locationPacked, v0, v1, v2)); + ValidateProgramUniform3iEXT(context, angle::EntryPoint::GLProgramUniform3iEXT, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3i(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3iEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6553,11 +6912,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3ivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3ivEXT(context, angle::EntryPoint::GLProgramUniform3ivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3ivEXT, isCallValid, context, programPacked, locationPacked, @@ -6582,11 +6942,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3uiEXT(context, programPacked, locationPacked, v0, v1, v2)); + ValidateProgramUniform3uiEXT(context, angle::EntryPoint::GLProgramUniform3uiEXT, + programPacked, locationPacked, v0, v1, v2)); if (isCallValid) { context->programUniform3ui(programPacked, locationPacked, v0, v1, v2); } ANGLE_CAPTURE(ProgramUniform3uiEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6613,11 +6974,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform3uivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform3uivEXT(context, angle::EntryPoint::GLProgramUniform3uivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform3uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform3uivEXT, isCallValid, context, programPacked, locationPacked, @@ -6646,11 +7008,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4fEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4fEXT(context, angle::EntryPoint::GLProgramUniform4fEXT, + programPacked, locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4f(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4fEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6677,11 +7040,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4fvEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4fvEXT(context, angle::EntryPoint::GLProgramUniform4fvEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4fv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4fvEXT, isCallValid, context, programPacked, locationPacked, @@ -6706,11 +7070,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4iEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4iEXT(context, angle::EntryPoint::GLProgramUniform4iEXT, + programPacked, locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4i(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4iEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6737,11 +7102,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4ivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4ivEXT(context, angle::EntryPoint::GLProgramUniform4ivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4iv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4ivEXT, isCallValid, context, programPacked, locationPacked, @@ -6766,11 +7132,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4uiEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); + ValidateProgramUniform4uiEXT(context, angle::EntryPoint::GLProgramUniform4uiEXT, + programPacked, locationPacked, v0, v1, v2, v3)); if (isCallValid) { context->programUniform4ui(programPacked, locationPacked, v0, v1, v2, v3); } ANGLE_CAPTURE(ProgramUniform4uiEXT, isCallValid, context, programPacked, locationPacked, v0, @@ -6797,11 +7164,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateProgramUniform4uivEXT(context, programPacked, locationPacked, count, value)); + ValidateProgramUniform4uivEXT(context, angle::EntryPoint::GLProgramUniform4uivEXT, + programPacked, locationPacked, count, value)); if (isCallValid) { context->programUniform4uiv(programPacked, locationPacked, count, value); } ANGLE_CAPTURE(ProgramUniform4uivEXT, isCallValid, context, programPacked, locationPacked, @@ -6830,11 +7198,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix2fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2fv(programPacked, locationPacked, count, transpose, value); } @@ -6864,11 +7233,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix2x3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix2x3fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2x3fv(programPacked, locationPacked, count, transpose, value); } @@ -6898,11 +7268,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix2x4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix2x4fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix2x4fv(programPacked, locationPacked, count, transpose, value); } @@ -6932,11 +7303,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix3fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3fv(programPacked, locationPacked, count, transpose, value); } @@ -6966,11 +7338,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix3x2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix3x2fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3x2fv(programPacked, locationPacked, count, transpose, value); } @@ -7000,11 +7373,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix3x4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix3x4fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix3x4fv(programPacked, locationPacked, count, transpose, value); } @@ -7034,11 +7408,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix4fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4fv(programPacked, locationPacked, count, transpose, value); } @@ -7068,11 +7443,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix4x2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix4x2fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4x2fv(programPacked, locationPacked, count, transpose, value); } @@ -7102,11 +7478,12 @@ ShaderProgramID programPacked = PackParam(program); UniformLocation locationPacked = PackParam(location); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || ValidateProgramUniformMatrix4x3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); + context, angle::EntryPoint::GLProgramUniformMatrix4x3fvEXT, + programPacked, locationPacked, count, transpose, value)); if (isCallValid) { context->programUniformMatrix4x3fv(programPacked, locationPacked, count, transpose, value); } @@ -7131,11 +7508,12 @@ ProgramPipelineID pipelinePacked = PackParam(pipeline); ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateUseProgramStagesEXT(context, pipelinePacked, stages, programPacked)); + ValidateUseProgramStagesEXT(context, angle::EntryPoint::GLUseProgramStagesEXT, + pipelinePacked, stages, programPacked)); if (isCallValid) { context->useProgramStages(pipelinePacked, stages, programPacked); } ANGLE_CAPTURE(UseProgramStagesEXT, isCallValid, context, pipelinePacked, stages, @@ -7155,12 +7533,14 @@ if (context) { ProgramPipelineID pipelinePacked = PackParam(pipeline); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateValidateProgramPipelineEXT(context, pipelinePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateValidateProgramPipelineEXT( + context, angle::EntryPoint::GLValidateProgramPipelineEXT, pipelinePacked)); if (isCallValid) { context->validateProgramPipeline(pipelinePacked); } ANGLE_CAPTURE(ValidateProgramPipelineEXT, isCallValid, context, pipelinePacked); @@ -7178,12 +7558,13 @@ EVENT(context, GLFramebufferFetchBarrierEXT, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFramebufferFetchBarrierEXT(context)); + bool isCallValid = (context->skipValidation() || + ValidateFramebufferFetchBarrierEXT( + context, angle::EntryPoint::GLFramebufferFetchBarrierEXT)); if (isCallValid) { context->framebufferFetchBarrier(); } ANGLE_CAPTURE(FramebufferFetchBarrierEXT, isCallValid, context); @@ -7194,22 +7575,29 @@ } } // GL_EXT_shader_io_blocks +// GL_EXT_shader_non_constant_global_initializers + +// GL_EXT_shader_texture_lod + +// GL_EXT_shadow_samplers + // GL_EXT_tessellation_shader void GL_APIENTRY GL_PatchParameteriEXT(GLenum pname, GLint value) { Context *context = GetValidGlobalContext(); EVENT(context, GLPatchParameteriEXT, "context = %d, pname = %s, value = %d", CID(context), GLenumToString(GLenumGroup::PatchParameterName, pname), value); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePatchParameteriEXT(context, pname, value)); + bool isCallValid = (context->skipValidation() || + ValidatePatchParameteriEXT( + context, angle::EntryPoint::GLPatchParameteriEXT, pname, value)); if (isCallValid) { context->patchParameteri(pname, value); } ANGLE_CAPTURE(PatchParameteriEXT, isCallValid, context, pname, value); @@ -7230,13 +7618,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIivEXT(context, samplerPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetSamplerParameterIivEXT( + context, angle::EntryPoint::GLGetSamplerParameterIivEXT, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIivEXT, isCallValid, context, samplerPacked, pname, @@ -7257,13 +7646,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIuivEXT(context, samplerPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetSamplerParameterIuivEXT( + context, angle::EntryPoint::GLGetSamplerParameterIuivEXT, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIuiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIuivEXT, isCallValid, context, samplerPacked, pname, @@ -7285,12 +7675,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivEXT(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIivEXT(context, angle::EntryPoint::GLGetTexParameterIivEXT, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIivEXT, isCallValid, context, targetPacked, pname, params); @@ -7311,12 +7703,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivEXT(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIuivEXT(context, angle::EntryPoint::GLGetTexParameterIuivEXT, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIuivEXT, isCallValid, context, targetPacked, pname, params); @@ -7336,12 +7730,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIivEXT(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIivEXT(context, angle::EntryPoint::GLSamplerParameterIivEXT, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIivEXT, isCallValid, context, samplerPacked, pname, param); @@ -7361,12 +7757,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuivEXT(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIuivEXT(context, angle::EntryPoint::GLSamplerParameterIuivEXT, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIuiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIuivEXT, isCallValid, context, samplerPacked, pname, param); @@ -7387,12 +7785,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIivEXT(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateTexParameterIivEXT(context, angle::EntryPoint::GLTexParameterIivEXT, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIivEXT, isCallValid, context, targetPacked, pname, params); @@ -7413,12 +7813,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuivEXT(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateTexParameterIuivEXT(context, angle::EntryPoint::GLTexParameterIuivEXT, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIuivEXT, isCallValid, context, targetPacked, pname, params); @@ -7440,13 +7842,13 @@ if (context) { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexBufferEXT(context, targetPacked, internalformat, bufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateTexBufferEXT(context, angle::EntryPoint::GLTexBufferEXT, + targetPacked, internalformat, bufferPacked)); if (isCallValid) { context->texBuffer(targetPacked, internalformat, bufferPacked); } ANGLE_CAPTURE(TexBufferEXT, isCallValid, context, targetPacked, internalformat, @@ -7474,13 +7876,14 @@ if (context) { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRangeEXT(context, targetPacked, internalformat, - bufferPacked, offset, size)); + bool isCallValid = + (context->skipValidation() || + ValidateTexBufferRangeEXT(context, angle::EntryPoint::GLTexBufferRangeEXT, + targetPacked, internalformat, bufferPacked, offset, size)); if (isCallValid) { context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); } ANGLE_CAPTURE(TexBufferRangeEXT, isCallValid, context, targetPacked, internalformat, @@ -7506,14 +7909,22 @@ // GL_EXT_texture_filter_anisotropic // GL_EXT_texture_format_BGRA8888 +// GL_EXT_texture_format_sRGB_override + +// GL_EXT_texture_norm16 + +// GL_EXT_texture_rg + // GL_EXT_texture_sRGB_R8 // GL_EXT_texture_sRGB_RG8 +// GL_EXT_texture_sRGB_decode + // GL_EXT_texture_storage void GL_APIENTRY GL_TexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) @@ -7525,13 +7936,13 @@ GLenumToString(GLenumGroup::InternalFormat, internalformat), width); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage1DEXT(context, target, levels, internalformat, width)); + bool isCallValid = (context->skipValidation() || + ValidateTexStorage1DEXT(context, angle::EntryPoint::GLTexStorage1DEXT, + target, levels, internalformat, width)); if (isCallValid) { context->texStorage1D(target, levels, internalformat, width); } ANGLE_CAPTURE(TexStorage1DEXT, isCallValid, context, target, levels, internalformat, width); @@ -7558,11 +7969,12 @@ { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorage2DEXT(context, targetPacked, levels, internalformat, width, height)); + ValidateTexStorage2DEXT(context, angle::EntryPoint::GLTexStorage2DEXT, targetPacked, + levels, internalformat, width, height)); if (isCallValid) { context->texStorage2D(targetPacked, levels, internalformat, width, height); } ANGLE_CAPTURE(TexStorage2DEXT, isCallValid, context, targetPacked, levels, internalformat, @@ -7590,13 +8002,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorage3DEXT(context, targetPacked, levels, internalformat, - width, height, depth)); + bool isCallValid = + (context->skipValidation() || + ValidateTexStorage3DEXT(context, angle::EntryPoint::GLTexStorage3DEXT, targetPacked, + levels, internalformat, width, height, depth)); if (isCallValid) { context->texStorage3D(targetPacked, levels, internalformat, width, height, depth); } ANGLE_CAPTURE(TexStorage3DEXT, isCallValid, context, targetPacked, levels, internalformat, @@ -7606,20 +8019,29 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_EXT_texture_type_2_10_10_10_REV + +// GL_EXT_unpack_subimage + +// GL_IMG_texture_compression_pvrtc + +// GL_IMG_texture_compression_pvrtc2 + // GL_KHR_blend_equation_advanced void GL_APIENTRY GL_BlendBarrierKHR() { Context *context = GetValidGlobalContext(); EVENT(context, GLBlendBarrierKHR, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendBarrierKHR(context)); + bool isCallValid = (context->skipValidation() || + ValidateBlendBarrierKHR(context, angle::EntryPoint::GLBlendBarrierKHR)); if (isCallValid) { context->blendBarrier(); } ANGLE_CAPTURE(BlendBarrierKHR, isCallValid, context); @@ -7639,12 +8061,14 @@ (uintptr_t)callback, (uintptr_t)userParam); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDebugMessageCallbackKHR(context, callback, userParam)); + bool isCallValid = + (context->skipValidation() || + ValidateDebugMessageCallbackKHR(context, angle::EntryPoint::GLDebugMessageCallbackKHR, + callback, userParam)); if (isCallValid) { context->debugMessageCallback(callback, userParam); } ANGLE_CAPTURE(DebugMessageCallbackKHR, isCallValid, context, callback, userParam); @@ -7674,11 +8098,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDebugMessageControlKHR(context, source, type, severity, count, ids, enabled)); + ValidateDebugMessageControlKHR(context, angle::EntryPoint::GLDebugMessageControlKHR, + source, type, severity, count, ids, enabled)); if (isCallValid) { context->debugMessageControl(source, type, severity, count, ids, enabled); } ANGLE_CAPTURE(DebugMessageControlKHR, isCallValid, context, source, type, severity, count, @@ -7708,11 +8133,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDebugMessageInsertKHR(context, source, type, id, severity, length, buf)); + ValidateDebugMessageInsertKHR(context, angle::EntryPoint::GLDebugMessageInsertKHR, + source, type, id, severity, length, buf)); if (isCallValid) { context->debugMessageInsert(source, type, id, severity, length, buf); } ANGLE_CAPTURE(DebugMessageInsertKHR, isCallValid, context, source, type, id, severity, @@ -7744,12 +8170,13 @@ GLuint returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetDebugMessageLogKHR(context, count, bufSize, sources, types, - ids, severities, lengths, messageLog)); + ValidateGetDebugMessageLogKHR( + context, angle::EntryPoint::GLGetDebugMessageLogKHR, count, bufSize, + sources, types, ids, severities, lengths, messageLog)); if (isCallValid) { returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog); } @@ -7785,11 +8212,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetObjectLabelKHR(context, identifier, name, bufSize, length, label)); + ValidateGetObjectLabelKHR(context, angle::EntryPoint::GLGetObjectLabelKHR, identifier, + name, bufSize, length, label)); if (isCallValid) { context->getObjectLabel(identifier, name, bufSize, length, label); } ANGLE_CAPTURE(GetObjectLabelKHR, isCallValid, context, identifier, name, bufSize, length, @@ -7813,12 +8241,14 @@ CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetObjectPtrLabelKHR(context, ptr, bufSize, length, label)); + bool isCallValid = + (context->skipValidation() || + ValidateGetObjectPtrLabelKHR(context, angle::EntryPoint::GLGetObjectPtrLabelKHR, ptr, + bufSize, length, label)); if (isCallValid) { context->getObjectPtrLabel(ptr, bufSize, length, label); } ANGLE_CAPTURE(GetObjectPtrLabelKHR, isCallValid, context, ptr, bufSize, length, label); @@ -7837,11 +8267,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetPointervKHR(context, pname, params)); + (context->skipValidation() || + ValidateGetPointervKHR(context, angle::EntryPoint::GLGetPointervKHR, pname, params)); if (isCallValid) { context->getPointerv(pname, params); } ANGLE_CAPTURE(GetPointervKHR, isCallValid, context, pname, params); @@ -7865,11 +8296,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateObjectLabelKHR(context, identifier, name, length, label)); + ValidateObjectLabelKHR(context, angle::EntryPoint::GLObjectLabelKHR, + identifier, name, length, label)); if (isCallValid) { context->objectLabel(identifier, name, length, label); } ANGLE_CAPTURE(ObjectLabelKHR, isCallValid, context, identifier, name, length, label); @@ -7889,11 +8321,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateObjectPtrLabelKHR(context, ptr, length, label)); + (context->skipValidation() || + ValidateObjectPtrLabelKHR(context, angle::EntryPoint::GLObjectPtrLabelKHR, ptr, length, + label)); if (isCallValid) { context->objectPtrLabel(ptr, length, label); } ANGLE_CAPTURE(ObjectPtrLabelKHR, isCallValid, context, ptr, length, label); @@ -7910,11 +8344,13 @@ EVENT(context, GLPopDebugGroupKHR, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopDebugGroupKHR(context)); + bool isCallValid = + (context->skipValidation() || + ValidatePopDebugGroupKHR(context, angle::EntryPoint::GLPopDebugGroupKHR)); if (isCallValid) { context->popDebugGroup(); } ANGLE_CAPTURE(PopDebugGroupKHR, isCallValid, context); @@ -7937,12 +8373,14 @@ (uintptr_t)message); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePushDebugGroupKHR(context, source, id, length, message)); + bool isCallValid = + (context->skipValidation() || + ValidatePushDebugGroupKHR(context, angle::EntryPoint::GLPushDebugGroupKHR, source, id, + length, message)); if (isCallValid) { context->pushDebugGroup(source, id, length, message); } ANGLE_CAPTURE(PushDebugGroupKHR, isCallValid, context, source, id, length, message); @@ -7951,21 +8389,24 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_KHR_no_error + // GL_KHR_parallel_shader_compile void GL_APIENTRY GL_MaxShaderCompilerThreadsKHR(GLuint count) { Context *context = GetValidGlobalContext(); EVENT(context, GLMaxShaderCompilerThreadsKHR, "context = %d, count = %u", CID(context), count); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaxShaderCompilerThreadsKHR(context, count)); + bool isCallValid = (context->skipValidation() || + ValidateMaxShaderCompilerThreadsKHR( + context, angle::EntryPoint::GLMaxShaderCompilerThreadsKHR, count)); if (isCallValid) { context->maxShaderCompilerThreads(count); } ANGLE_CAPTURE(MaxShaderCompilerThreadsKHR, isCallValid, context, count); @@ -7974,10 +8415,18 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_KHR_robust_buffer_access_behavior + +// GL_KHR_texture_compression_astc_hdr + +// GL_KHR_texture_compression_astc_ldr + +// GL_KHR_texture_compression_astc_sliced_3d + // GL_NV_fence void GL_APIENTRY GL_DeleteFencesNV(GLsizei n, const GLuint *fences) { Context *context = GetValidGlobalContext(); EVENT(context, GLDeleteFencesNV, "context = %d, n = %d, fences = 0x%016" PRIxPTR "", @@ -7986,11 +8435,12 @@ if (context) { const FenceNVID *fencesPacked = PackParam(fences); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteFencesNV(context, n, fencesPacked)); + (context->skipValidation() || + ValidateDeleteFencesNV(context, angle::EntryPoint::GLDeleteFencesNV, n, fencesPacked)); if (isCallValid) { context->deleteFencesNV(n, fencesPacked); } ANGLE_CAPTURE(DeleteFencesNV, isCallValid, context, n, fencesPacked); @@ -8009,11 +8459,12 @@ if (context) { FenceNVID fencePacked = PackParam(fence); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateFinishFenceNV(context, fencePacked)); + (context->skipValidation() || + ValidateFinishFenceNV(context, angle::EntryPoint::GLFinishFenceNV, fencePacked)); if (isCallValid) { context->finishFenceNV(fencePacked); } ANGLE_CAPTURE(FinishFenceNV, isCallValid, context, fencePacked); @@ -8033,11 +8484,12 @@ if (context) { FenceNVID *fencesPacked = PackParam(fences); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGenFencesNV(context, n, fencesPacked)); + (context->skipValidation() || + ValidateGenFencesNV(context, angle::EntryPoint::GLGenFencesNV, n, fencesPacked)); if (isCallValid) { context->genFencesNV(n, fencesPacked); } ANGLE_CAPTURE(GenFencesNV, isCallValid, context, n, fencesPacked); @@ -8058,11 +8510,12 @@ if (context) { FenceNVID fencePacked = PackParam(fence); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetFenceivNV(context, fencePacked, pname, params)); + ValidateGetFenceivNV(context, angle::EntryPoint::GLGetFenceivNV, + fencePacked, pname, params)); if (isCallValid) { context->getFenceivNV(fencePacked, pname, params); } ANGLE_CAPTURE(GetFenceivNV, isCallValid, context, fencePacked, pname, params); @@ -8081,11 +8534,13 @@ GLboolean returnValue; if (context) { FenceNVID fencePacked = PackParam(fence); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsFenceNV(context, fencePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateIsFenceNV(context, angle::EntryPoint::GLIsFenceNV, fencePacked)); if (isCallValid) { returnValue = context->isFenceNV(fencePacked); } else @@ -8111,11 +8566,12 @@ if (context) { FenceNVID fencePacked = PackParam(fence); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateSetFenceNV(context, fencePacked, condition)); + (context->skipValidation() || + ValidateSetFenceNV(context, angle::EntryPoint::GLSetFenceNV, fencePacked, condition)); if (isCallValid) { context->setFenceNV(fencePacked, condition); } ANGLE_CAPTURE(SetFenceNV, isCallValid, context, fencePacked, condition); @@ -8134,11 +8590,13 @@ GLboolean returnValue; if (context) { FenceNVID fencePacked = PackParam(fence); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTestFenceNV(context, fencePacked)); + bool isCallValid = + (context->skipValidation() || + ValidateTestFenceNV(context, angle::EntryPoint::GLTestFenceNV, fencePacked)); if (isCallValid) { returnValue = context->testFenceNV(fencePacked); } else @@ -8177,12 +8635,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBlitFramebufferNV(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); + ValidateBlitFramebufferNV( + context, angle::EntryPoint::GLBlitFramebufferNV, srcX0, srcY0, + srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)); if (isCallValid) { context->blitFramebufferNV(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } @@ -8193,10 +8652,20 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_NV_pixel_buffer_object + +// GL_NV_read_depth + +// GL_NV_read_stencil + +// GL_NV_robustness_video_memory_purge + +// GL_NV_shader_noperspective_interpolation + // GL_OES_EGL_image void GL_APIENTRY GL_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) { Context *context = GetValidGlobalContext(); EVENT(context, GLEGLImageTargetRenderbufferStorageOES, @@ -8205,11 +8674,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateEGLImageTargetRenderbufferStorageOES(context, target, image)); + ValidateEGLImageTargetRenderbufferStorageOES( + context, angle::EntryPoint::GLEGLImageTargetRenderbufferStorageOES, + target, image)); if (isCallValid) { context->eGLImageTargetRenderbufferStorage(target, image); } ANGLE_CAPTURE(EGLImageTargetRenderbufferStorageOES, isCallValid, context, target, image); @@ -8229,12 +8700,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateEGLImageTargetTexture2DOES(context, targetPacked, image)); + bool isCallValid = + (context->skipValidation() || + ValidateEGLImageTargetTexture2DOES( + context, angle::EntryPoint::GLEGLImageTargetTexture2DOES, targetPacked, image)); if (isCallValid) { context->eGLImageTargetTexture2D(targetPacked, image); } ANGLE_CAPTURE(EGLImageTargetTexture2DOES, isCallValid, context, targetPacked, image); @@ -8243,10 +8716,14 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_EGL_image_external + +// GL_OES_EGL_image_external_essl3 + // GL_OES_compressed_ETC1_RGB8_texture // GL_OES_copy_image void GL_APIENTRY GL_CopyImageSubDataOES(GLuint srcName, GLenum srcTarget, @@ -8275,15 +8752,15 @@ dstZ, srcWidth, srcHeight, srcDepth); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCopyImageSubDataOES(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth)); + bool isCallValid = (context->skipValidation() || + ValidateCopyImageSubDataOES( + context, angle::EntryPoint::GLCopyImageSubDataOES, srcName, + srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, + dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth)); if (isCallValid) { context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth); @@ -8296,12 +8773,16 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_depth24 + // GL_OES_depth32 +// GL_OES_depth_texture + // GL_OES_draw_buffers_indexed void GL_APIENTRY GL_BlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha) { Context *context = GetValidGlobalContext(); EVENT(context, GLBlendEquationSeparateiOES, @@ -8310,12 +8791,14 @@ GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparateiOES(context, buf, modeRGB, modeAlpha)); + bool isCallValid = + (context->skipValidation() || + ValidateBlendEquationSeparateiOES( + context, angle::EntryPoint::GLBlendEquationSeparateiOES, buf, modeRGB, modeAlpha)); if (isCallValid) { context->blendEquationSeparatei(buf, modeRGB, modeAlpha); } ANGLE_CAPTURE(BlendEquationSeparateiOES, isCallValid, context, buf, modeRGB, modeAlpha); @@ -8334,11 +8817,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendEquationiOES(context, buf, mode)); + (context->skipValidation() || + ValidateBlendEquationiOES(context, angle::EntryPoint::GLBlendEquationiOES, buf, mode)); if (isCallValid) { context->blendEquationi(buf, mode); } ANGLE_CAPTURE(BlendEquationiOES, isCallValid, context, buf, mode); @@ -8363,11 +8847,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateBlendFuncSeparateiOES(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); + ValidateBlendFuncSeparateiOES(context, angle::EntryPoint::GLBlendFuncSeparateiOES, buf, + srcRGB, dstRGB, srcAlpha, dstAlpha)); if (isCallValid) { context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); } ANGLE_CAPTURE(BlendFuncSeparateiOES, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, @@ -8388,11 +8873,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateBlendFunciOES(context, buf, src, dst)); + (context->skipValidation() || + ValidateBlendFunciOES(context, angle::EntryPoint::GLBlendFunciOES, buf, src, dst)); if (isCallValid) { context->blendFunci(buf, src, dst); } ANGLE_CAPTURE(BlendFunciOES, isCallValid, context, buf, src, dst); @@ -8412,11 +8898,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateColorMaskiOES(context, index, r, g, b, a)); + (context->skipValidation() || + ValidateColorMaskiOES(context, angle::EntryPoint::GLColorMaskiOES, index, r, g, b, a)); if (isCallValid) { context->colorMaski(index, r, g, b, a); } ANGLE_CAPTURE(ColorMaskiOES, isCallValid, context, index, r, g, b, a); @@ -8435,11 +8922,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDisableiOES(context, target, index)); + (context->skipValidation() || + ValidateDisableiOES(context, angle::EntryPoint::GLDisableiOES, target, index)); if (isCallValid) { context->disablei(target, index); } ANGLE_CAPTURE(DisableiOES, isCallValid, context, target, index); @@ -8458,11 +8946,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateEnableiOES(context, target, index)); + (context->skipValidation() || + ValidateEnableiOES(context, angle::EntryPoint::GLEnableiOES, target, index)); if (isCallValid) { context->enablei(target, index); } ANGLE_CAPTURE(EnableiOES, isCallValid, context, target, index); @@ -8482,11 +8971,12 @@ GLboolean returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsEnablediOES(context, target, index)); + (context->skipValidation() || + ValidateIsEnablediOES(context, angle::EntryPoint::GLIsEnablediOES, target, index)); if (isCallValid) { returnValue = context->isEnabledi(target, index); } else @@ -8521,12 +9011,13 @@ { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertexOES(context, modePacked, count, - typePacked, indices, basevertex)); + ValidateDrawElementsBaseVertexOES( + context, angle::EntryPoint::GLDrawElementsBaseVertexOES, modePacked, + count, typePacked, indices, basevertex)); if (isCallValid) { context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); } ANGLE_CAPTURE(DrawElementsBaseVertexOES, isCallValid, context, modePacked, count, @@ -8556,13 +9047,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexOES( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawElementsInstancedBaseVertexOES( + context, angle::EntryPoint::GLDrawElementsInstancedBaseVertexOES, + modePacked, count, typePacked, indices, instancecount, basevertex)); if (isCallValid) { context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, instancecount, basevertex); } @@ -8593,13 +9085,14 @@ if (context) { PrimitiveMode modePacked = PackParam(mode); DrawElementsType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertexOES( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); + bool isCallValid = (context->skipValidation() || + ValidateDrawRangeElementsBaseVertexOES( + context, angle::EntryPoint::GLDrawRangeElementsBaseVertexOES, + modePacked, start, end, count, typePacked, indices, basevertex)); if (isCallValid) { context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, basevertex); } @@ -8622,12 +9115,13 @@ CID(context), x, y, z, width, height); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexfOES(context, x, y, z, width, height)); + bool isCallValid = (context->skipValidation() || + ValidateDrawTexfOES(context, angle::EntryPoint::GLDrawTexfOES, x, y, z, + width, height)); if (isCallValid) { context->drawTexf(x, y, z, width, height); } ANGLE_CAPTURE(DrawTexfOES, isCallValid, context, x, y, z, width, height); @@ -8645,11 +9139,13 @@ (uintptr_t)coords); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexfvOES(context, coords)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawTexfvOES(context, angle::EntryPoint::GLDrawTexfvOES, coords)); if (isCallValid) { context->drawTexfv(coords); } ANGLE_CAPTURE(DrawTexfvOES, isCallValid, context, coords); @@ -8667,12 +9163,13 @@ CID(context), x, y, z, width, height); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexiOES(context, x, y, z, width, height)); + bool isCallValid = (context->skipValidation() || + ValidateDrawTexiOES(context, angle::EntryPoint::GLDrawTexiOES, x, y, z, + width, height)); if (isCallValid) { context->drawTexi(x, y, z, width, height); } ANGLE_CAPTURE(DrawTexiOES, isCallValid, context, x, y, z, width, height); @@ -8690,11 +9187,13 @@ (uintptr_t)coords); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexivOES(context, coords)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawTexivOES(context, angle::EntryPoint::GLDrawTexivOES, coords)); if (isCallValid) { context->drawTexiv(coords); } ANGLE_CAPTURE(DrawTexivOES, isCallValid, context, coords); @@ -8712,12 +9211,13 @@ CID(context), x, y, z, width, height); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexsOES(context, x, y, z, width, height)); + bool isCallValid = (context->skipValidation() || + ValidateDrawTexsOES(context, angle::EntryPoint::GLDrawTexsOES, x, y, z, + width, height)); if (isCallValid) { context->drawTexs(x, y, z, width, height); } ANGLE_CAPTURE(DrawTexsOES, isCallValid, context, x, y, z, width, height); @@ -8735,11 +9235,13 @@ (uintptr_t)coords); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexsvOES(context, coords)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawTexsvOES(context, angle::EntryPoint::GLDrawTexsvOES, coords)); if (isCallValid) { context->drawTexsv(coords); } ANGLE_CAPTURE(DrawTexsvOES, isCallValid, context, coords); @@ -8758,12 +9260,13 @@ x, y, z, width, height); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexxOES(context, x, y, z, width, height)); + bool isCallValid = (context->skipValidation() || + ValidateDrawTexxOES(context, angle::EntryPoint::GLDrawTexxOES, x, y, z, + width, height)); if (isCallValid) { context->drawTexx(x, y, z, width, height); } ANGLE_CAPTURE(DrawTexxOES, isCallValid, context, x, y, z, width, height); @@ -8781,11 +9284,13 @@ (uintptr_t)coords); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexxvOES(context, coords)); + bool isCallValid = + (context->skipValidation() || + ValidateDrawTexxvOES(context, angle::EntryPoint::GLDrawTexxvOES, coords)); if (isCallValid) { context->drawTexxv(coords); } ANGLE_CAPTURE(DrawTexxvOES, isCallValid, context, coords); @@ -8794,10 +9299,14 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_element_index_uint + +// GL_OES_fbo_render_mipmap + // GL_OES_framebuffer_object void GL_APIENTRY GL_BindFramebufferOES(GLenum target, GLuint framebuffer) { Context *context = GetValidGlobalContext(); EVENT(context, GLBindFramebufferOES, "context = %d, target = %s, framebuffer = %u", @@ -8805,12 +9314,14 @@ if (context) { FramebufferID framebufferPacked = PackParam(framebuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindFramebufferOES(context, target, framebufferPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateBindFramebufferOES(context, angle::EntryPoint::GLBindFramebufferOES, target, + framebufferPacked)); if (isCallValid) { context->bindFramebuffer(target, framebufferPacked); } ANGLE_CAPTURE(BindFramebufferOES, isCallValid, context, target, framebufferPacked); @@ -8829,12 +9340,14 @@ if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindRenderbufferOES(context, target, renderbufferPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateBindRenderbufferOES(context, angle::EntryPoint::GLBindRenderbufferOES, target, + renderbufferPacked)); if (isCallValid) { context->bindRenderbuffer(target, renderbufferPacked); } ANGLE_CAPTURE(BindRenderbufferOES, isCallValid, context, target, renderbufferPacked); @@ -8853,12 +9366,13 @@ GLenum returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCheckFramebufferStatusOES(context, target)); + bool isCallValid = (context->skipValidation() || + ValidateCheckFramebufferStatusOES( + context, angle::EntryPoint::GLCheckFramebufferStatusOES, target)); if (isCallValid) { returnValue = context->checkFramebufferStatus(target); } else @@ -8886,12 +9400,14 @@ if (context) { const FramebufferID *framebuffersPacked = PackParam(framebuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteFramebuffersOES(context, n, framebuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteFramebuffersOES(context, angle::EntryPoint::GLDeleteFramebuffersOES, n, + framebuffersPacked)); if (isCallValid) { context->deleteFramebuffers(n, framebuffersPacked); } ANGLE_CAPTURE(DeleteFramebuffersOES, isCallValid, context, n, framebuffersPacked); @@ -8912,12 +9428,14 @@ if (context) { const RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteRenderbuffersOES(context, n, renderbuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateDeleteRenderbuffersOES(context, angle::EntryPoint::GLDeleteRenderbuffersOES, n, + renderbuffersPacked)); if (isCallValid) { context->deleteRenderbuffers(n, renderbuffersPacked); } ANGLE_CAPTURE(DeleteRenderbuffersOES, isCallValid, context, n, renderbuffersPacked); @@ -8942,14 +9460,14 @@ if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferRenderbufferOES(context, target, attachment, renderbuffertarget, - renderbufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateFramebufferRenderbufferOES( + context, angle::EntryPoint::GLFramebufferRenderbufferOES, target, + attachment, renderbuffertarget, renderbufferPacked)); if (isCallValid) { context->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbufferPacked); } @@ -8979,12 +9497,13 @@ { TextureTarget textargetPacked = PackParam(textarget); TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateFramebufferTexture2DOES(context, target, attachment, - textargetPacked, texturePacked, level)); + ValidateFramebufferTexture2DOES( + context, angle::EntryPoint::GLFramebufferTexture2DOES, target, + attachment, textargetPacked, texturePacked, level)); if (isCallValid) { context->framebufferTexture2D(target, attachment, textargetPacked, texturePacked, level); } @@ -9005,12 +9524,14 @@ if (context) { FramebufferID *framebuffersPacked = PackParam(framebuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenFramebuffersOES(context, n, framebuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateGenFramebuffersOES(context, angle::EntryPoint::GLGenFramebuffersOES, n, + framebuffersPacked)); if (isCallValid) { context->genFramebuffers(n, framebuffersPacked); } ANGLE_CAPTURE(GenFramebuffersOES, isCallValid, context, n, framebuffersPacked); @@ -9029,12 +9550,14 @@ if (context) { RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenRenderbuffersOES(context, n, renderbuffersPacked)); + bool isCallValid = + (context->skipValidation() || + ValidateGenRenderbuffersOES(context, angle::EntryPoint::GLGenRenderbuffersOES, n, + renderbuffersPacked)); if (isCallValid) { context->genRenderbuffers(n, renderbuffersPacked); } ANGLE_CAPTURE(GenRenderbuffersOES, isCallValid, context, n, renderbuffersPacked); @@ -9053,12 +9576,13 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenerateMipmapOES(context, targetPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenerateMipmapOES( + context, angle::EntryPoint::GLGenerateMipmapOES, targetPacked)); if (isCallValid) { context->generateMipmap(targetPacked); } ANGLE_CAPTURE(GenerateMipmapOES, isCallValid, context, targetPacked); @@ -9084,12 +9608,14 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferAttachmentParameterivOES( - context, target, attachment, pname, params)); + (context->skipValidation() || + ValidateGetFramebufferAttachmentParameterivOES( + context, angle::EntryPoint::GLGetFramebufferAttachmentParameterivOES, target, + attachment, pname, params)); if (isCallValid) { context->getFramebufferAttachmentParameteriv(target, attachment, pname, params); } ANGLE_CAPTURE(GetFramebufferAttachmentParameterivOES, isCallValid, context, target, @@ -9111,11 +9637,13 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateGetRenderbufferParameterivOES(context, target, pname, params)); + ValidateGetRenderbufferParameterivOES( + context, angle::EntryPoint::GLGetRenderbufferParameterivOES, target, + pname, params)); if (isCallValid) { context->getRenderbufferParameteriv(target, pname, params); } ANGLE_CAPTURE(GetRenderbufferParameterivOES, isCallValid, context, target, pname, params); @@ -9134,12 +9662,13 @@ GLboolean returnValue; if (context) { FramebufferID framebufferPacked = PackParam(framebuffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsFramebufferOES(context, framebufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateIsFramebufferOES(context, angle::EntryPoint::GLIsFramebufferOES, + framebufferPacked)); if (isCallValid) { returnValue = context->isFramebuffer(framebufferPacked); } else @@ -9166,11 +9695,13 @@ if (context) { RenderbufferID renderbufferPacked = PackParam(renderbuffer); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsRenderbufferOES(context, renderbufferPacked)); + (context->skipValidation() || + ValidateIsRenderbufferOES(context, angle::EntryPoint::GLIsRenderbufferOES, + renderbufferPacked)); if (isCallValid) { returnValue = context->isRenderbuffer(renderbufferPacked); } else @@ -9202,11 +9733,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorageOES(context, target, internalformat, width, height)); + ValidateRenderbufferStorageOES(context, angle::EntryPoint::GLRenderbufferStorageOES, + target, internalformat, width, height)); if (isCallValid) { context->renderbufferStorage(target, internalformat, width, height); } ANGLE_CAPTURE(RenderbufferStorageOES, isCallValid, context, target, internalformat, width, @@ -9216,10 +9748,43 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_geometry_shader +void GL_APIENTRY GL_FramebufferTextureOES(GLenum target, + GLenum attachment, + GLuint texture, + GLint level) +{ + Context *context = GetValidGlobalContext(); + EVENT(context, GLFramebufferTextureOES, + "context = %d, target = %s, attachment = %s, texture = %u, level = %d", CID(context), + GLenumToString(GLenumGroup::FramebufferTarget, target), + GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level); + + if (context) + { + TextureID texturePacked = PackParam(texture); + std::unique_lock shareContextLock = GetContextLock(context); + bool isCallValid = + (context->skipValidation() || + ValidateFramebufferTextureOES(context, angle::EntryPoint::GLFramebufferTextureOES, + target, attachment, texturePacked, level)); + if (isCallValid) + { + context->framebufferTexture(target, attachment, texturePacked, level); + } + ANGLE_CAPTURE(FramebufferTextureOES, isCallValid, context, target, attachment, + texturePacked, level); + } + else + { + GenerateContextLostErrorOnCurrentGlobalContext(); + } +} + // GL_OES_get_program_binary void GL_APIENTRY GL_GetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, @@ -9234,13 +9799,14 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramBinaryOES(context, programPacked, bufSize, length, - binaryFormat, binary)); + bool isCallValid = + (context->skipValidation() || + ValidateGetProgramBinaryOES(context, angle::EntryPoint::GLGetProgramBinaryOES, + programPacked, bufSize, length, binaryFormat, binary)); if (isCallValid) { context->getProgramBinary(programPacked, bufSize, length, binaryFormat, binary); } ANGLE_CAPTURE(GetProgramBinaryOES, isCallValid, context, programPacked, bufSize, length, @@ -9265,13 +9831,13 @@ if (context) { ShaderProgramID programPacked = PackParam(program); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramBinaryOES(context, programPacked, binaryFormat, binary, length)); + bool isCallValid = (context->skipValidation() || + ValidateProgramBinaryOES(context, angle::EntryPoint::GLProgramBinaryOES, + programPacked, binaryFormat, binary, length)); if (isCallValid) { context->programBinary(programPacked, binaryFormat, binary, length); } ANGLE_CAPTURE(ProgramBinaryOES, isCallValid, context, programPacked, binaryFormat, binary, @@ -9294,12 +9860,14 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointervOES(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetBufferPointervOES(context, angle::EntryPoint::GLGetBufferPointervOES, + targetPacked, pname, params)); if (isCallValid) { context->getBufferPointerv(targetPacked, pname, params); } ANGLE_CAPTURE(GetBufferPointervOES, isCallValid, context, targetPacked, pname, params); @@ -9320,12 +9888,13 @@ void *returnValue; if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMapBufferOES(context, targetPacked, access)); + bool isCallValid = (context->skipValidation() || + ValidateMapBufferOES(context, angle::EntryPoint::GLMapBufferOES, + targetPacked, access)); if (isCallValid) { returnValue = context->mapBuffer(targetPacked, access); } else @@ -9352,11 +9921,12 @@ if (context) { BufferBinding targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateUnmapBufferOES(context, targetPacked)); + (context->skipValidation() || + ValidateUnmapBufferOES(context, angle::EntryPoint::GLUnmapBufferOES, targetPacked)); if (isCallValid) { returnValue = context->unmapBuffer(targetPacked); } else @@ -9381,12 +9951,14 @@ matrixpaletteindex); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCurrentPaletteMatrixOES(context, matrixpaletteindex)); + bool isCallValid = + (context->skipValidation() || + ValidateCurrentPaletteMatrixOES(context, angle::EntryPoint::GLCurrentPaletteMatrixOES, + matrixpaletteindex)); if (isCallValid) { context->currentPaletteMatrix(matrixpaletteindex); } ANGLE_CAPTURE(CurrentPaletteMatrixOES, isCallValid, context, matrixpaletteindex); @@ -9403,12 +9975,13 @@ EVENT(context, GLLoadPaletteFromModelViewMatrixOES, "context = %d", CID(context)); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLoadPaletteFromModelViewMatrixOES(context)); + bool isCallValid = (context->skipValidation() || + ValidateLoadPaletteFromModelViewMatrixOES( + context, angle::EntryPoint::GLLoadPaletteFromModelViewMatrixOES)); if (isCallValid) { context->loadPaletteFromModelViewMatrix(); } ANGLE_CAPTURE(LoadPaletteFromModelViewMatrixOES, isCallValid, context); @@ -9431,12 +10004,14 @@ (uintptr_t)pointer); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMatrixIndexPointerOES(context, size, type, stride, pointer)); + bool isCallValid = + (context->skipValidation() || + ValidateMatrixIndexPointerOES(context, angle::EntryPoint::GLMatrixIndexPointerOES, + size, type, stride, pointer)); if (isCallValid) { context->matrixIndexPointer(size, type, stride, pointer); } ANGLE_CAPTURE(MatrixIndexPointerOES, isCallValid, context, size, type, stride, pointer); @@ -9457,11 +10032,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateWeightPointerOES(context, size, type, stride, pointer)); + ValidateWeightPointerOES(context, angle::EntryPoint::GLWeightPointerOES, + size, type, stride, pointer)); if (isCallValid) { context->weightPointer(size, type, stride, pointer); } ANGLE_CAPTURE(WeightPointerOES, isCallValid, context, size, type, stride, pointer); @@ -9470,10 +10046,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_packed_depth_stencil + // GL_OES_point_size_array void GL_APIENTRY GL_PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer) { Context *context = GetValidGlobalContext(); EVENT(context, GLPointSizePointerOES, @@ -9482,12 +10060,14 @@ if (context) { VertexAttribType typePacked = PackParam(type); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePointSizePointerOES(context, typePacked, stride, pointer)); + bool isCallValid = + (context->skipValidation() || + ValidatePointSizePointerOES(context, angle::EntryPoint::GLPointSizePointerOES, + typePacked, stride, pointer)); if (isCallValid) { context->pointSizePointer(typePacked, stride, pointer); } ANGLE_CAPTURE(PointSizePointerOES, isCallValid, context, typePacked, stride, pointer); @@ -9496,10 +10076,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_point_sprite + // GL_OES_query_matrix GLbitfield GL_APIENTRY GL_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent) { Context *context = GetValidGlobalContext(); EVENT(context, GLQueryMatrixxOES, @@ -9508,12 +10090,13 @@ GLbitfield returnValue; if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateQueryMatrixxOES(context, mantissa, exponent)); + bool isCallValid = (context->skipValidation() || + ValidateQueryMatrixxOES(context, angle::EntryPoint::GLQueryMatrixxOES, + mantissa, exponent)); if (isCallValid) { returnValue = context->queryMatrixx(mantissa, exponent); } else @@ -9528,21 +10111,24 @@ returnValue = GetDefaultReturnValue(); } return returnValue; } +// GL_OES_rgb8_rgba8 + // GL_OES_sample_shading void GL_APIENTRY GL_MinSampleShadingOES(GLfloat value) { Context *context = GetValidGlobalContext(); EVENT(context, GLMinSampleShadingOES, "context = %d, value = %f", CID(context), value); if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateMinSampleShadingOES(context, value)); + (context->skipValidation() || + ValidateMinSampleShadingOES(context, angle::EntryPoint::GLMinSampleShadingOES, value)); if (isCallValid) { context->minSampleShading(value); } ANGLE_CAPTURE(MinSampleShadingOES, isCallValid, context, value); @@ -9551,12 +10137,22 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_sample_variables + +// GL_OES_shader_image_atomic + // GL_OES_shader_io_blocks +// GL_OES_shader_multisample_interpolation + +// GL_OES_standard_derivatives + +// GL_OES_surfaceless_context + // GL_OES_texture_3D void GL_APIENTRY GL_CompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, @@ -9578,12 +10174,13 @@ { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCompressedTexImage3DOES(context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, data)); + ValidateCompressedTexImage3DOES(context, angle::EntryPoint::GLCompressedTexImage3DOES, + targetPacked, level, internalformat, width, height, + depth, border, imageSize, data)); if (isCallValid) { context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth, border, imageSize, data); } @@ -9618,14 +10215,15 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCompressedTexSubImage3DOES( - context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data)); + bool isCallValid = + (context->skipValidation() || + ValidateCompressedTexSubImage3DOES( + context, angle::EntryPoint::GLCompressedTexSubImage3DOES, targetPacked, level, + xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)); if (isCallValid) { context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } @@ -9658,12 +10256,13 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage3DOES(context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height)); + ValidateCopyTexSubImage3DOES( + context, angle::EntryPoint::GLCopyTexSubImage3DOES, targetPacked, + level, xoffset, yoffset, zoffset, x, y, width, height)); if (isCallValid) { context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width, height); } @@ -9694,14 +10293,14 @@ if (context) { TextureTarget textargetPacked = PackParam(textarget); TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTexture3DOES(context, target, attachment, textargetPacked, - texturePacked, level, zoffset)); + bool isCallValid = (context->skipValidation() || + ValidateFramebufferTexture3DOES( + context, angle::EntryPoint::GLFramebufferTexture3DOES, target, + attachment, textargetPacked, texturePacked, level, zoffset)); if (isCallValid) { context->framebufferTexture3D(target, attachment, textargetPacked, texturePacked, level, zoffset); } @@ -9736,14 +10335,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage3DOES(context, targetPacked, level, internalformat, width, height, - depth, border, format, type, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateTexImage3DOES(context, angle::EntryPoint::GLTexImage3DOES, + targetPacked, level, internalformat, width, + height, depth, border, format, type, pixels)); if (isCallValid) { context->texImage3D(targetPacked, level, internalformat, width, height, depth, border, format, type, pixels); } @@ -9778,14 +10377,14 @@ if (context) { TextureTarget targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexSubImage3DOES(context, targetPacked, level, xoffset, yoffset, zoffset, - width, height, depth, format, type, pixels)); + bool isCallValid = (context->skipValidation() || + ValidateTexSubImage3DOES(context, angle::EntryPoint::GLTexSubImage3DOES, + targetPacked, level, xoffset, yoffset, zoffset, + width, height, depth, format, type, pixels)); if (isCallValid) { context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); } @@ -9808,13 +10407,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIivOES(context, samplerPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetSamplerParameterIivOES( + context, angle::EntryPoint::GLGetSamplerParameterIivOES, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIivOES, isCallValid, context, samplerPacked, pname, @@ -9835,13 +10435,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIuivOES(context, samplerPacked, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetSamplerParameterIuivOES( + context, angle::EntryPoint::GLGetSamplerParameterIuivOES, + samplerPacked, pname, params)); if (isCallValid) { context->getSamplerParameterIuiv(samplerPacked, pname, params); } ANGLE_CAPTURE(GetSamplerParameterIuivOES, isCallValid, context, samplerPacked, pname, @@ -9863,12 +10464,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivOES(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIivOES(context, angle::EntryPoint::GLGetTexParameterIivOES, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIivOES, isCallValid, context, targetPacked, pname, params); @@ -9889,12 +10492,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivOES(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateGetTexParameterIuivOES(context, angle::EntryPoint::GLGetTexParameterIuivOES, + targetPacked, pname, params)); if (isCallValid) { context->getTexParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(GetTexParameterIuivOES, isCallValid, context, targetPacked, pname, params); @@ -9914,12 +10519,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIivOES(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIivOES(context, angle::EntryPoint::GLSamplerParameterIivOES, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIivOES, isCallValid, context, samplerPacked, pname, param); @@ -9939,12 +10546,14 @@ if (context) { SamplerID samplerPacked = PackParam(sampler); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuivOES(context, samplerPacked, pname, param)); + bool isCallValid = + (context->skipValidation() || + ValidateSamplerParameterIuivOES(context, angle::EntryPoint::GLSamplerParameterIuivOES, + samplerPacked, pname, param)); if (isCallValid) { context->samplerParameterIuiv(samplerPacked, pname, param); } ANGLE_CAPTURE(SamplerParameterIuivOES, isCallValid, context, samplerPacked, pname, param); @@ -9965,12 +10574,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIivOES(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateTexParameterIivOES(context, angle::EntryPoint::GLTexParameterIivOES, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIivOES, isCallValid, context, targetPacked, pname, params); @@ -9991,12 +10602,14 @@ if (context) { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuivOES(context, targetPacked, pname, params)); + bool isCallValid = + (context->skipValidation() || + ValidateTexParameterIuivOES(context, angle::EntryPoint::GLTexParameterIuivOES, + targetPacked, pname, params)); if (isCallValid) { context->texParameterIuiv(targetPacked, pname, params); } ANGLE_CAPTURE(TexParameterIuivOES, isCallValid, context, targetPacked, pname, params); @@ -10018,13 +10631,13 @@ if (context) { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexBufferOES(context, targetPacked, internalformat, bufferPacked)); + bool isCallValid = (context->skipValidation() || + ValidateTexBufferOES(context, angle::EntryPoint::GLTexBufferOES, + targetPacked, internalformat, bufferPacked)); if (isCallValid) { context->texBuffer(targetPacked, internalformat, bufferPacked); } ANGLE_CAPTURE(TexBufferOES, isCallValid, context, targetPacked, internalformat, @@ -10052,13 +10665,14 @@ if (context) { TextureType targetPacked = PackParam(target); BufferID bufferPacked = PackParam(buffer); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRangeOES(context, targetPacked, internalformat, - bufferPacked, offset, size)); + bool isCallValid = + (context->skipValidation() || + ValidateTexBufferRangeOES(context, angle::EntryPoint::GLTexBufferRangeOES, + targetPacked, internalformat, bufferPacked, offset, size)); if (isCallValid) { context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); } ANGLE_CAPTURE(TexBufferRangeOES, isCallValid, context, targetPacked, internalformat, @@ -10068,10 +10682,12 @@ { GenerateContextLostErrorOnCurrentGlobalContext(); } } +// GL_OES_texture_compression_astc + // GL_OES_texture_cube_map void GL_APIENTRY GL_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params) { Context *context = GetValidGlobalContext(); EVENT(context, GLGetTexGenfvOES, @@ -10080,12 +10696,13 @@ GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenfvOES(context, coord, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexGenfvOES(context, angle::EntryPoint::GLGetTexGenfvOES, + coord, pname, params)); if (isCallValid) { context->getTexGenfv(coord, pname, params); } ANGLE_CAPTURE(GetTexGenfvOES, isCallValid, context, coord, pname, params); @@ -10105,12 +10722,13 @@ GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenivOES(context, coord, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexGenivOES(context, angle::EntryPoint::GLGetTexGenivOES, + coord, pname, params)); if (isCallValid) { context->getTexGeniv(coord, pname, params); } ANGLE_CAPTURE(GetTexGenivOES, isCallValid, context, coord, pname, params); @@ -10130,12 +10748,13 @@ GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); if (context) { std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenxvOES(context, coord, pname, params)); + bool isCallValid = (context->skipValidation() || + ValidateGetTexGenxvOES(context, angle::EntryPoint::GLGetTexGenxvOES, + coord, pname, params)); if (isCallValid) { context->getTexGenxv(coord, pname, params); } ANGLE_CAPTURE(GetTexGenxvOES, isCallValid, context, coord, pname, params); @@ -10155,11 +10774,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGenfOES(context, coord, pname, param)); + (context->skipValidation() || + ValidateTexGenfOES(context, angle::EntryPoint::GLTexGenfOES, coord, pname, param)); if (isCallValid) { context->texGenf(coord, pname, param); } ANGLE_CAPTURE(TexGenfOES, isCallValid, context, coord, pname, param); @@ -10180,11 +10800,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGenfvOES(context, coord, pname, params)); + (context->skipValidation() || + ValidateTexGenfvOES(context, angle::EntryPoint::GLTexGenfvOES, coord, pname, params)); if (isCallValid) { context->texGenfv(coord, pname, params); } ANGLE_CAPTURE(TexGenfvOES, isCallValid, context, coord, pname, params); @@ -10204,11 +10825,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGeniOES(context, coord, pname, param)); + (context->skipValidation() || + ValidateTexGeniOES(context, angle::EntryPoint::GLTexGeniOES, coord, pname, param)); if (isCallValid) { context->texGeni(coord, pname, param); } ANGLE_CAPTURE(TexGeniOES, isCallValid, context, coord, pname, param); @@ -10229,11 +10851,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGenivOES(context, coord, pname, params)); + (context->skipValidation() || + ValidateTexGenivOES(context, angle::EntryPoint::GLTexGenivOES, coord, pname, params)); if (isCallValid) { context->texGeniv(coord, pname, params); } ANGLE_CAPTURE(TexGenivOES, isCallValid, context, coord, pname, params); @@ -10253,11 +10876,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGenxOES(context, coord, pname, param)); + (context->skipValidation() || + ValidateTexGenxOES(context, angle::EntryPoint::GLTexGenxOES, coord, pname, param)); if (isCallValid) { context->texGenx(coord, pname, param); } ANGLE_CAPTURE(TexGenxOES, isCallValid, context, coord, pname, param); @@ -10278,11 +10902,12 @@ if (context) { std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateTexGenxvOES(context, coord, pname, params)); + (context->skipValidation() || + ValidateTexGenxvOES(context, angle::EntryPoint::GLTexGenxvOES, coord, pname, params)); if (isCallValid) { context->texGenxv(coord, pname, params); } ANGLE_CAPTURE(TexGenxvOES, isCallValid, context, coord, pname, params); @@ -10293,12 +10918,20 @@ } } // GL_OES_texture_cube_map_array +// GL_OES_texture_float + +// GL_OES_texture_float_linear + // GL_OES_texture_half_float +// GL_OES_texture_half_float_linear + +// GL_OES_texture_npot + // GL_OES_texture_stencil8 // GL_OES_texture_storage_multisample_2d_array void GL_APIENTRY GL_TexStorage3DMultisampleOES(GLenum target, GLsizei samples, @@ -10320,12 +10953,13 @@ { TextureType targetPacked = PackParam(target); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = (context->skipValidation() || - ValidateTexStorage3DMultisampleOES(context, targetPacked, samples, internalformat, - width, height, depth, fixedsamplelocations)); + ValidateTexStorage3DMultisampleOES( + context, angle::EntryPoint::GLTexStorage3DMultisampleOES, targetPacked, samples, + internalformat, width, height, depth, fixedsamplelocations)); if (isCallValid) { context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height, depth, fixedsamplelocations); } @@ -10346,12 +10980,13 @@ if (context) { VertexArrayID arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindVertexArrayOES(context, arrayPacked)); + bool isCallValid = (context->skipValidation() || + ValidateBindVertexArrayOES( + context, angle::EntryPoint::GLBindVertexArrayOES, arrayPacked)); if (isCallValid) { context->bindVertexArray(arrayPacked); } ANGLE_CAPTURE(BindVertexArrayOES, isCallValid, context, arrayPacked); @@ -10371,11 +11006,13 @@ if (context) { const VertexArrayID *arraysPacked = PackParam(arrays); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateDeleteVertexArraysOES(context, n, arraysPacked)); + (context->skipValidation() || + ValidateDeleteVertexArraysOES(context, angle::EntryPoint::GLDeleteVertexArraysOES, n, + arraysPacked)); if (isCallValid) { context->deleteVertexArrays(n, arraysPacked); } ANGLE_CAPTURE(DeleteVertexArraysOES, isCallValid, context, n, arraysPacked); @@ -10394,12 +11031,13 @@ if (context) { VertexArrayID *arraysPacked = PackParam(arrays); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenVertexArraysOES(context, n, arraysPacked)); + bool isCallValid = (context->skipValidation() || + ValidateGenVertexArraysOES( + context, angle::EntryPoint::GLGenVertexArraysOES, n, arraysPacked)); if (isCallValid) { context->genVertexArrays(n, arraysPacked); } ANGLE_CAPTURE(GenVertexArraysOES, isCallValid, context, n, arraysPacked); @@ -10419,11 +11057,12 @@ if (context) { VertexArrayID arrayPacked = PackParam(array); std::unique_lock shareContextLock = GetContextLock(context); bool isCallValid = - (context->skipValidation() || ValidateIsVertexArrayOES(context, arrayPacked)); + (context->skipValidation() || + ValidateIsVertexArrayOES(context, angle::EntryPoint::GLIsVertexArrayOES, arrayPacked)); if (isCallValid) { returnValue = context->isVertexArray(arrayPacked); } else @@ -10438,10 +11077,14 @@ returnValue = GetDefaultReturnValue(); } return returnValue; } +// GL_OES_vertex_half_float + +// GL_OES_vertex_type_10_10_10_2 + // GL_OVR_multiview void GL_APIENTRY GL_FramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, @@ -10458,14 +11101,14 @@ if (context) { TextureID texturePacked = PackParam(texture); std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTextureMultiviewOVR(context, target, attachment, texturePacked, - level, baseViewIndex, numViews)); + bool isCallValid = (context->skipValidation() || + ValidateFramebufferTextureMultiviewOVR( + context, angle::EntryPoint::GLFramebufferTextureMultiviewOVR, + target, attachment, texturePacked, level, baseViewIndex, numViews)); if (isCallValid) { context->framebufferTextureMultiview(target, attachment, texturePacked, level, baseViewIndex, numViews); } @@ -10477,24044 +11120,6 @@ GenerateContextLostErrorOnCurrentGlobalContext(); } } // GL_OVR_multiview2 - -// EGL_ANGLE_explicit_context -void GL_APIENTRY GL_ActiveShaderProgramContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLActiveShaderProgram, "context = %d, pipeline = %u, program = %u", CID(context), - pipeline, program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateActiveShaderProgram(context, pipelinePacked, programPacked)); - if (isCallValid) - { - context->activeShaderProgram(pipelinePacked, programPacked); - } - ANGLE_CAPTURE(ActiveShaderProgram, isCallValid, context, pipelinePacked, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ActiveShaderProgramEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLActiveShaderProgramEXT, "context = %d, pipeline = %u, program = %u", - CID(context), pipeline, program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateActiveShaderProgramEXT(context, pipelinePacked, programPacked)); - if (isCallValid) - { - context->activeShaderProgram(pipelinePacked, programPacked); - } - ANGLE_CAPTURE(ActiveShaderProgramEXT, isCallValid, context, pipelinePacked, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ActiveTextureContextANGLE(GLeglContext ctx, GLenum texture) -{ - Context *context = static_cast(ctx); - EVENT(context, GLActiveTexture, "context = %d, texture = %s", CID(context), - GLenumToString(GLenumGroup::TextureUnit, texture)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateActiveTexture(context, texture)); - if (isCallValid) - { - context->activeTexture(texture); - } - ANGLE_CAPTURE(ActiveTexture, isCallValid, context, texture); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_AlphaFuncContextANGLE(GLeglContext ctx, GLenum func, GLfloat ref) -{ - Context *context = static_cast(ctx); - EVENT(context, GLAlphaFunc, "context = %d, func = %s, ref = %f", CID(context), - GLenumToString(GLenumGroup::AlphaFunction, func), ref); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - AlphaTestFunc funcPacked = PackParam(func); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateAlphaFunc(context, funcPacked, ref)); - if (isCallValid) - { - context->alphaFunc(funcPacked, ref); - } - ANGLE_CAPTURE(AlphaFunc, isCallValid, context, funcPacked, ref); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_AlphaFuncxContextANGLE(GLeglContext ctx, GLenum func, GLfixed ref) -{ - Context *context = static_cast(ctx); - EVENT(context, GLAlphaFuncx, "context = %d, func = %s, ref = 0x%X", CID(context), - GLenumToString(GLenumGroup::AlphaFunction, func), ref); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - AlphaTestFunc funcPacked = PackParam(func); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateAlphaFuncx(context, funcPacked, ref)); - if (isCallValid) - { - context->alphaFuncx(funcPacked, ref); - } - ANGLE_CAPTURE(AlphaFuncx, isCallValid, context, funcPacked, ref); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_AttachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader) -{ - Context *context = static_cast(ctx); - EVENT(context, GLAttachShader, "context = %d, program = %u, shader = %u", CID(context), program, - shader); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateAttachShader(context, programPacked, shaderPacked)); - if (isCallValid) - { - context->attachShader(programPacked, shaderPacked); - } - ANGLE_CAPTURE(AttachShader, isCallValid, context, programPacked, shaderPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BeginQueryContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBeginQuery, "context = %d, target = %s, id = %u", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target), id); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBeginQuery(context, targetPacked, idPacked)); - if (isCallValid) - { - context->beginQuery(targetPacked, idPacked); - } - ANGLE_CAPTURE(BeginQuery, isCallValid, context, targetPacked, idPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BeginQueryEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBeginQueryEXT, "context = %d, target = %s, id = %u", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target), id); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBeginQueryEXT(context, targetPacked, idPacked)); - if (isCallValid) - { - context->beginQuery(targetPacked, idPacked); - } - ANGLE_CAPTURE(BeginQueryEXT, isCallValid, context, targetPacked, idPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BeginTransformFeedbackContextANGLE(GLeglContext ctx, GLenum primitiveMode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBeginTransformFeedback, "context = %d, primitiveMode = %s", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, primitiveMode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode primitiveModePacked = PackParam(primitiveMode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBeginTransformFeedback(context, primitiveModePacked)); - if (isCallValid) - { - context->beginTransformFeedback(primitiveModePacked); - } - ANGLE_CAPTURE(BeginTransformFeedback, isCallValid, context, primitiveModePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindAttribLocation, - "context = %d, program = %u, index = %u, name = 0x%016" PRIxPTR "", CID(context), program, - index, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindAttribLocation(context, programPacked, index, name)); - if (isCallValid) - { - context->bindAttribLocation(programPacked, index, name); - } - ANGLE_CAPTURE(BindAttribLocation, isCallValid, context, programPacked, index, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindBufferContextANGLE(GLeglContext ctx, GLenum target, GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindBuffer, "context = %d, target = %s, buffer = %u", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), buffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindBuffer(context, targetPacked, bufferPacked)); - if (isCallValid) - { - context->bindBuffer(targetPacked, bufferPacked); - } - ANGLE_CAPTURE(BindBuffer, isCallValid, context, targetPacked, bufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindBufferBaseContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindBufferBase, "context = %d, target = %s, index = %u, buffer = %u", - CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target), index, buffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindBufferBase(context, targetPacked, index, bufferPacked)); - if (isCallValid) - { - context->bindBufferBase(targetPacked, index, bufferPacked); - } - ANGLE_CAPTURE(BindBufferBase, isCallValid, context, targetPacked, index, bufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindBufferRange, - "context = %d, target = %s, index = %u, buffer = %u, offset = %llu, size = %llu", - CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target), index, buffer, - static_cast(offset), static_cast(size)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBindBufferRange(context, targetPacked, index, bufferPacked, offset, size)); - if (isCallValid) - { - context->bindBufferRange(targetPacked, index, bufferPacked, offset, size); - } - ANGLE_CAPTURE(BindBufferRange, isCallValid, context, targetPacked, index, bufferPacked, - offset, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindFragDataLocationEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint color, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindFragDataLocationEXT, - "context = %d, program = %u, color = %u, name = 0x%016" PRIxPTR "", CID(context), program, - color, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindFragDataLocationEXT(context, programPacked, color, name)); - if (isCallValid) - { - context->bindFragDataLocation(programPacked, color, name); - } - ANGLE_CAPTURE(BindFragDataLocationEXT, isCallValid, context, programPacked, color, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindFragDataLocationIndexedEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint colorNumber, - GLuint index, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindFragDataLocationIndexedEXT, - "context = %d, program = %u, colorNumber = %u, index = %u, name = 0x%016" PRIxPTR "", - CID(context), program, colorNumber, index, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindFragDataLocationIndexedEXT( - context, programPacked, colorNumber, index, name)); - if (isCallValid) - { - context->bindFragDataLocationIndexed(programPacked, colorNumber, index, name); - } - ANGLE_CAPTURE(BindFragDataLocationIndexedEXT, isCallValid, context, programPacked, - colorNumber, index, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindFramebufferContextANGLE(GLeglContext ctx, GLenum target, GLuint framebuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindFramebuffer, "context = %d, target = %s, framebuffer = %u", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target), framebuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID framebufferPacked = PackParam(framebuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindFramebuffer(context, target, framebufferPacked)); - if (isCallValid) - { - context->bindFramebuffer(target, framebufferPacked); - } - ANGLE_CAPTURE(BindFramebuffer, isCallValid, context, target, framebufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindFramebufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint framebuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindFramebufferOES, "context = %d, target = %s, framebuffer = %u", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), framebuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID framebufferPacked = PackParam(framebuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindFramebufferOES(context, target, framebufferPacked)); - if (isCallValid) - { - context->bindFramebuffer(target, framebufferPacked); - } - ANGLE_CAPTURE(BindFramebufferOES, isCallValid, context, target, framebufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindImageTextureContextANGLE(GLeglContext ctx, - GLuint unit, - GLuint texture, - GLint level, - GLboolean layered, - GLint layer, - GLenum access, - GLenum format) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindImageTexture, - "context = %d, unit = %u, texture = %u, level = %d, layered = %s, layer = %d, access = " - "%s, format = %s", - CID(context), unit, texture, level, GLbooleanToString(layered), layer, - GLenumToString(GLenumGroup::BufferAccessARB, access), - GLenumToString(GLenumGroup::InternalFormat, format)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindImageTexture(context, unit, texturePacked, level, layered, - layer, access, format)); - if (isCallValid) - { - context->bindImageTexture(unit, texturePacked, level, layered, layer, access, format); - } - ANGLE_CAPTURE(BindImageTexture, isCallValid, context, unit, texturePacked, level, layered, - layer, access, format); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindProgramPipeline, "context = %d, pipeline = %u", CID(context), pipeline); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindProgramPipeline(context, pipelinePacked)); - if (isCallValid) - { - context->bindProgramPipeline(pipelinePacked); - } - ANGLE_CAPTURE(BindProgramPipeline, isCallValid, context, pipelinePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindProgramPipelineEXT, "context = %d, pipeline = %u", CID(context), pipeline); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindProgramPipelineEXT(context, pipelinePacked)); - if (isCallValid) - { - context->bindProgramPipeline(pipelinePacked); - } - ANGLE_CAPTURE(BindProgramPipelineEXT, isCallValid, context, pipelinePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindRenderbuffer, "context = %d, target = %s, renderbuffer = %u", CID(context), - GLenumToString(GLenumGroup::RenderbufferTarget, target), renderbuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindRenderbuffer(context, target, renderbufferPacked)); - if (isCallValid) - { - context->bindRenderbuffer(target, renderbufferPacked); - } - ANGLE_CAPTURE(BindRenderbuffer, isCallValid, context, target, renderbufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindRenderbufferOES, "context = %d, target = %s, renderbuffer = %u", - CID(context), GLenumToString(GLenumGroup::RenderbufferTarget, target), renderbuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindRenderbufferOES(context, target, renderbufferPacked)); - if (isCallValid) - { - context->bindRenderbuffer(target, renderbufferPacked); - } - ANGLE_CAPTURE(BindRenderbufferOES, isCallValid, context, target, renderbufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindSamplerContextANGLE(GLeglContext ctx, GLuint unit, GLuint sampler) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindSampler, "context = %d, unit = %u, sampler = %u", CID(context), unit, - sampler); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindSampler(context, unit, samplerPacked)); - if (isCallValid) - { - context->bindSampler(unit, samplerPacked); - } - ANGLE_CAPTURE(BindSampler, isCallValid, context, unit, samplerPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindTextureContextANGLE(GLeglContext ctx, GLenum target, GLuint texture) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindTexture, "context = %d, target = %s, texture = %u", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), texture); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBindTexture(context, targetPacked, texturePacked)); - if (isCallValid) - { - context->bindTexture(targetPacked, texturePacked); - } - ANGLE_CAPTURE(BindTexture, isCallValid, context, targetPacked, texturePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindTransformFeedbackContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindTransformFeedback, "context = %d, target = %s, id = %u", CID(context), - GLenumToString(GLenumGroup::BindTransformFeedbackTarget, target), id); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TransformFeedbackID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindTransformFeedback(context, target, idPacked)); - if (isCallValid) - { - context->bindTransformFeedback(target, idPacked); - } - ANGLE_CAPTURE(BindTransformFeedback, isCallValid, context, target, idPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindVertexArrayContextANGLE(GLeglContext ctx, GLuint array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindVertexArray, "context = %d, array = %u", CID(context), array); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindVertexArray(context, arrayPacked)); - if (isCallValid) - { - context->bindVertexArray(arrayPacked); - } - ANGLE_CAPTURE(BindVertexArray, isCallValid, context, arrayPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindVertexArrayOES, "context = %d, array = %u", CID(context), array); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBindVertexArrayOES(context, arrayPacked)); - if (isCallValid) - { - context->bindVertexArray(arrayPacked); - } - ANGLE_CAPTURE(BindVertexArrayOES, isCallValid, context, arrayPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindVertexBufferContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint buffer, - GLintptr offset, - GLsizei stride) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindVertexBuffer, - "context = %d, bindingindex = %u, buffer = %u, offset = %llu, stride = %d", CID(context), - bindingindex, buffer, static_cast(offset), stride); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBindVertexBuffer(context, bindingindex, bufferPacked, offset, stride)); - if (isCallValid) - { - context->bindVertexBuffer(bindingindex, bufferPacked, offset, stride); - } - ANGLE_CAPTURE(BindVertexBuffer, isCallValid, context, bindingindex, bufferPacked, offset, - stride); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendBarrierContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendBarrier, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendBarrier(context)); - if (isCallValid) - { - context->blendBarrier(); - } - ANGLE_CAPTURE(BlendBarrier, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendBarrierKHRContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendBarrierKHR, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendBarrierKHR(context)); - if (isCallValid) - { - context->blendBarrier(); - } - ANGLE_CAPTURE(BlendBarrierKHR, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_BlendColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendColor, "context = %d, red = %f, green = %f, blue = %f, alpha = %f", - CID(context), red, green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendColor(context, red, green, blue, alpha)); - if (isCallValid) - { - context->blendColor(red, green, blue, alpha); - } - ANGLE_CAPTURE(BlendColor, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquation, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::BlendEquationModeEXT, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateBlendEquation(context, mode)); - if (isCallValid) - { - context->blendEquation(mode); - } - ANGLE_CAPTURE(BlendEquation, isCallValid, context, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationSeparateContextANGLE(GLeglContext ctx, - GLenum modeRGB, - GLenum modeAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationSeparate, "context = %d, modeRGB = %s, modeAlpha = %s", - CID(context), GLenumToString(GLenumGroup::BlendEquationModeEXT, modeRGB), - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparate(context, modeRGB, modeAlpha)); - if (isCallValid) - { - context->blendEquationSeparate(modeRGB, modeAlpha); - } - ANGLE_CAPTURE(BlendEquationSeparate, isCallValid, context, modeRGB, modeAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationSeparatei, "context = %d, buf = %u, modeRGB = %s, modeAlpha = %s", - CID(context), buf, GLenumToString(GLenumGroup::BlendEquationModeEXT, modeRGB), - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparatei(context, buf, modeRGB, modeAlpha)); - if (isCallValid) - { - context->blendEquationSeparatei(buf, modeRGB, modeAlpha); - } - ANGLE_CAPTURE(BlendEquationSeparatei, isCallValid, context, buf, modeRGB, modeAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationSeparateiEXT, - "context = %d, buf = %u, modeRGB = %s, modeAlpha = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeRGB), - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparateiEXT(context, buf, modeRGB, modeAlpha)); - if (isCallValid) - { - context->blendEquationSeparatei(buf, modeRGB, modeAlpha); - } - ANGLE_CAPTURE(BlendEquationSeparateiEXT, isCallValid, context, buf, modeRGB, modeAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationSeparateiOES, - "context = %d, buf = %u, modeRGB = %s, modeAlpha = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeRGB), - GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlendEquationSeparateiOES(context, buf, modeRGB, modeAlpha)); - if (isCallValid) - { - context->blendEquationSeparatei(buf, modeRGB, modeAlpha); - } - ANGLE_CAPTURE(BlendEquationSeparateiOES, isCallValid, context, buf, modeRGB, modeAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationiContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationi, "context = %d, buf = %u, mode = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendEquationModeEXT, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendEquationi(context, buf, mode)); - if (isCallValid) - { - context->blendEquationi(buf, mode); - } - ANGLE_CAPTURE(BlendEquationi, isCallValid, context, buf, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationiEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationiEXT, "context = %d, buf = %u, mode = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendEquationModeEXT, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendEquationiEXT(context, buf, mode)); - if (isCallValid) - { - context->blendEquationi(buf, mode); - } - ANGLE_CAPTURE(BlendEquationiEXT, isCallValid, context, buf, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendEquationiOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendEquationiOES, "context = %d, buf = %u, mode = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendEquationModeEXT, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendEquationiOES(context, buf, mode)); - if (isCallValid) - { - context->blendEquationi(buf, mode); - } - ANGLE_CAPTURE(BlendEquationiOES, isCallValid, context, buf, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFuncContextANGLE(GLeglContext ctx, GLenum sfactor, GLenum dfactor) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFunc, "context = %d, sfactor = %s, dfactor = %s", CID(context), - GLenumToString(GLenumGroup::BlendingFactor, sfactor), - GLenumToString(GLenumGroup::BlendingFactor, dfactor)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendFunc(context, sfactor, dfactor)); - if (isCallValid) - { - context->blendFunc(sfactor, dfactor); - } - ANGLE_CAPTURE(BlendFunc, isCallValid, context, sfactor, dfactor); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFuncSeparateContextANGLE(GLeglContext ctx, - GLenum sfactorRGB, - GLenum dfactorRGB, - GLenum sfactorAlpha, - GLenum dfactorAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFuncSeparate, - "context = %d, sfactorRGB = %s, dfactorRGB = %s, sfactorAlpha = %s, dfactorAlpha = %s", - CID(context), GLenumToString(GLenumGroup::BlendingFactor, sfactorRGB), - GLenumToString(GLenumGroup::BlendingFactor, dfactorRGB), - GLenumToString(GLenumGroup::BlendingFactor, sfactorAlpha), - GLenumToString(GLenumGroup::BlendingFactor, dfactorAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendFuncSeparate(context, sfactorRGB, dfactorRGB, - sfactorAlpha, dfactorAlpha)); - if (isCallValid) - { - context->blendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); - } - ANGLE_CAPTURE(BlendFuncSeparate, isCallValid, context, sfactorRGB, dfactorRGB, sfactorAlpha, - dfactorAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFuncSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFuncSeparatei, - "context = %d, buf = %u, srcRGB = %s, dstRGB = %s, srcAlpha = %s, dstAlpha = %s", - CID(context), buf, GLenumToString(GLenumGroup::BlendingFactor, srcRGB), - GLenumToString(GLenumGroup::BlendingFactor, dstRGB), - GLenumToString(GLenumGroup::BlendingFactor, srcAlpha), - GLenumToString(GLenumGroup::BlendingFactor, dstAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBlendFuncSeparatei(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); - if (isCallValid) - { - context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); - } - ANGLE_CAPTURE(BlendFuncSeparatei, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, - dstAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFuncSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFuncSeparateiEXT, - "context = %d, buf = %u, srcRGB = %s, dstRGB = %s, srcAlpha = %s, dstAlpha = %s", - CID(context), buf, GLenumToString(GLenumGroup::BlendingFactor, srcRGB), - GLenumToString(GLenumGroup::BlendingFactor, dstRGB), - GLenumToString(GLenumGroup::BlendingFactor, srcAlpha), - GLenumToString(GLenumGroup::BlendingFactor, dstAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBlendFuncSeparateiEXT(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); - if (isCallValid) - { - context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); - } - ANGLE_CAPTURE(BlendFuncSeparateiEXT, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, - dstAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFuncSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFuncSeparateiOES, - "context = %d, buf = %u, srcRGB = %s, dstRGB = %s, srcAlpha = %s, dstAlpha = %s", - CID(context), buf, GLenumToString(GLenumGroup::BlendingFactor, srcRGB), - GLenumToString(GLenumGroup::BlendingFactor, dstRGB), - GLenumToString(GLenumGroup::BlendingFactor, srcAlpha), - GLenumToString(GLenumGroup::BlendingFactor, dstAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBlendFuncSeparateiOES(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha)); - if (isCallValid) - { - context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); - } - ANGLE_CAPTURE(BlendFuncSeparateiOES, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha, - dstAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFunciContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFunci, "context = %d, buf = %u, src = %s, dst = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendingFactor, src), - GLenumToString(GLenumGroup::BlendingFactor, dst)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendFunci(context, buf, src, dst)); - if (isCallValid) - { - context->blendFunci(buf, src, dst); - } - ANGLE_CAPTURE(BlendFunci, isCallValid, context, buf, src, dst); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFunciEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFunciEXT, "context = %d, buf = %u, src = %s, dst = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendingFactor, src), - GLenumToString(GLenumGroup::BlendingFactor, dst)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendFunciEXT(context, buf, src, dst)); - if (isCallValid) - { - context->blendFunci(buf, src, dst); - } - ANGLE_CAPTURE(BlendFunciEXT, isCallValid, context, buf, src, dst); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlendFunciOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlendFunciOES, "context = %d, buf = %u, src = %s, dst = %s", CID(context), buf, - GLenumToString(GLenumGroup::BlendingFactor, src), - GLenumToString(GLenumGroup::BlendingFactor, dst)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateBlendFunciOES(context, buf, src, dst)); - if (isCallValid) - { - context->blendFunci(buf, src, dst); - } - ANGLE_CAPTURE(BlendFunciOES, isCallValid, context, buf, src, dst); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlitFramebufferContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlitFramebuffer, - "context = %d, srcX0 = %d, srcY0 = %d, srcX1 = %d, srcY1 = %d, dstX0 = %d, dstY0 = %d, " - "dstX1 = %d, dstY1 = %d, mask = %s, filter = %s", - CID(context), srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, - GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str(), - GLenumToString(GLenumGroup::BlitFramebufferFilter, filter)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlitFramebuffer(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); - if (isCallValid) - { - context->blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, - filter); - } - ANGLE_CAPTURE(BlitFramebuffer, isCallValid, context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlitFramebufferANGLEContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlitFramebufferANGLE, - "context = %d, srcX0 = %d, srcY0 = %d, srcX1 = %d, srcY1 = %d, dstX0 = %d, dstY0 = %d, " - "dstX1 = %d, dstY1 = %d, mask = %s, filter = %s", - CID(context), srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, - GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str(), - GLenumToString(GLenumGroup::BlitFramebufferFilter, filter)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlitFramebufferANGLE(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); - if (isCallValid) - { - context->blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, - filter); - } - ANGLE_CAPTURE(BlitFramebufferANGLE, isCallValid, context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BlitFramebufferNVContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBlitFramebufferNV, - "context = %d, srcX0 = %d, srcY0 = %d, srcX1 = %d, srcY1 = %d, dstX0 = %d, dstY0 = %d, " - "dstX1 = %d, dstY1 = %d, mask = %s, filter = %s", - CID(context), srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, - GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str(), - GLenumToString(GLenumGroup::BlitFramebufferFilter, filter)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBlitFramebufferNV(context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter)); - if (isCallValid) - { - context->blitFramebufferNV(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, - filter); - } - ANGLE_CAPTURE(BlitFramebufferNV, isCallValid, context, srcX0, srcY0, srcX1, srcY1, dstX0, - dstY0, dstX1, dstY1, mask, filter); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BufferDataContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLenum usage) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBufferData, - "context = %d, target = %s, size = %llu, data = 0x%016" PRIxPTR ", usage = %s", - CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(size), (uintptr_t)data, - GLenumToString(GLenumGroup::BufferUsageARB, usage)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - BufferUsage usagePacked = PackParam(usage); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBufferData(context, targetPacked, size, data, usagePacked)); - if (isCallValid) - { - context->bufferData(targetPacked, size, data, usagePacked); - } - ANGLE_CAPTURE(BufferData, isCallValid, context, targetPacked, size, data, usagePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BufferStorageEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLbitfield flags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBufferStorageEXT, - "context = %d, target = %s, size = %llu, data = 0x%016" PRIxPTR ", flags = %s", - CID(context), GLenumToString(GLenumGroup::BufferStorageTarget, target), - static_cast(size), (uintptr_t)data, - GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBufferStorageEXT(context, targetPacked, size, data, flags)); - if (isCallValid) - { - context->bufferStorage(targetPacked, size, data, flags); - } - ANGLE_CAPTURE(BufferStorageEXT, isCallValid, context, targetPacked, size, data, flags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBufferStorageExternalEXT, - "context = %d, target = %s, offset = %llu, size = %llu, clientBuffer = 0x%016" PRIxPTR - ", flags = %s", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - static_cast(offset), static_cast(size), - (uintptr_t)clientBuffer, - GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBufferStorageExternalEXT(context, targetPacked, offset, size, - clientBuffer, flags)); - if (isCallValid) - { - context->bufferStorageExternal(targetPacked, offset, size, clientBuffer, flags); - } - ANGLE_CAPTURE(BufferStorageExternalEXT, isCallValid, context, targetPacked, offset, size, - clientBuffer, flags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BufferStorageMemEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - GLuint memory, - GLuint64 offset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBufferStorageMemEXT, - "context = %d, target = %s, size = %llu, memory = %u, offset = %llu", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(size), memory, static_cast(offset)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBufferStorageMemEXT(context, targetPacked, size, memoryPacked, offset)); - if (isCallValid) - { - context->bufferStorageMem(targetPacked, size, memoryPacked, offset); - } - ANGLE_CAPTURE(BufferStorageMemEXT, isCallValid, context, targetPacked, size, memoryPacked, - offset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BufferSubDataContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBufferSubData, - "context = %d, target = %s, offset = %llu, size = %llu, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(offset), static_cast(size), - (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateBufferSubData(context, targetPacked, offset, size, data)); - if (isCallValid) - { - context->bufferSubData(targetPacked, offset, size, data); - } - ANGLE_CAPTURE(BufferSubData, isCallValid, context, targetPacked, offset, size, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLenum GL_APIENTRY GL_CheckFramebufferStatusContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCheckFramebufferStatus, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target)); - - GLenum returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCheckFramebufferStatus(context, target)); - if (isCallValid) - { - returnValue = context->checkFramebufferStatus(target); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CheckFramebufferStatus, isCallValid, context, target, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLenum GL_APIENTRY GL_CheckFramebufferStatusOESContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCheckFramebufferStatusOES, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target)); - - GLenum returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCheckFramebufferStatusOES(context, target)); - if (isCallValid) - { - returnValue = context->checkFramebufferStatus(target); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CheckFramebufferStatusOES, isCallValid, context, target, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = - GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_ClearContextANGLE(GLeglContext ctx, GLbitfield mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClear, "context = %d, mask = %s", CID(context), - GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClear(context, mask)); - if (isCallValid) - { - context->clear(mask); - } - ANGLE_CAPTURE(Clear, isCallValid, context, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearBufferfiContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - GLfloat depth, - GLint stencil) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearBufferfi, - "context = %d, buffer = %s, drawbuffer = %d, depth = %f, stencil = %d", CID(context), - GLenumToString(GLenumGroup::Buffer, buffer), drawbuffer, depth, stencil); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateClearBufferfi(context, buffer, drawbuffer, depth, stencil)); - if (isCallValid) - { - context->clearBufferfi(buffer, drawbuffer, depth, stencil); - } - ANGLE_CAPTURE(ClearBufferfi, isCallValid, context, buffer, drawbuffer, depth, stencil); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearBufferfvContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearBufferfv, - "context = %d, buffer = %s, drawbuffer = %d, value = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::Buffer, buffer), drawbuffer, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateClearBufferfv(context, buffer, drawbuffer, value)); - if (isCallValid) - { - context->clearBufferfv(buffer, drawbuffer, value); - } - ANGLE_CAPTURE(ClearBufferfv, isCallValid, context, buffer, drawbuffer, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearBufferivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearBufferiv, - "context = %d, buffer = %s, drawbuffer = %d, value = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::Buffer, buffer), drawbuffer, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateClearBufferiv(context, buffer, drawbuffer, value)); - if (isCallValid) - { - context->clearBufferiv(buffer, drawbuffer, value); - } - ANGLE_CAPTURE(ClearBufferiv, isCallValid, context, buffer, drawbuffer, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearBufferuivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearBufferuiv, - "context = %d, buffer = %s, drawbuffer = %d, value = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::Buffer, buffer), drawbuffer, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateClearBufferuiv(context, buffer, drawbuffer, value)); - if (isCallValid) - { - context->clearBufferuiv(buffer, drawbuffer, value); - } - ANGLE_CAPTURE(ClearBufferuiv, isCallValid, context, buffer, drawbuffer, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_ClearColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearColor, "context = %d, red = %f, green = %f, blue = %f, alpha = %f", - CID(context), red, green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClearColor(context, red, green, blue, alpha)); - if (isCallValid) - { - context->clearColor(red, green, blue, alpha); - } - ANGLE_CAPTURE(ClearColor, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearColorxContextANGLE(GLeglContext ctx, - GLfixed red, - GLfixed green, - GLfixed blue, - GLfixed alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearColorx, - "context = %d, red = 0x%X, green = 0x%X, blue = 0x%X, alpha = 0x%X", CID(context), red, - green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClearColorx(context, red, green, blue, alpha)); - if (isCallValid) - { - context->clearColorx(red, green, blue, alpha); - } - ANGLE_CAPTURE(ClearColorx, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearDepthfContextANGLE(GLeglContext ctx, GLfloat d) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearDepthf, "context = %d, d = %f", CID(context), d); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearDepthf(context, d)); - if (isCallValid) - { - context->clearDepthf(d); - } - ANGLE_CAPTURE(ClearDepthf, isCallValid, context, d); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearDepthxContextANGLE(GLeglContext ctx, GLfixed depth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearDepthx, "context = %d, depth = 0x%X", CID(context), depth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearDepthx(context, depth)); - if (isCallValid) - { - context->clearDepthx(depth); - } - ANGLE_CAPTURE(ClearDepthx, isCallValid, context, depth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClearStencilContextANGLE(GLeglContext ctx, GLint s) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClearStencil, "context = %d, s = %d", CID(context), s); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClearStencil(context, s)); - if (isCallValid) - { - context->clearStencil(s); - } - ANGLE_CAPTURE(ClearStencil, isCallValid, context, s); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClientActiveTextureContextANGLE(GLeglContext ctx, GLenum texture) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClientActiveTexture, "context = %d, texture = %s", CID(context), - GLenumToString(GLenumGroup::TextureUnit, texture)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClientActiveTexture(context, texture)); - if (isCallValid) - { - context->clientActiveTexture(texture); - } - ANGLE_CAPTURE(ClientActiveTexture, isCallValid, context, texture); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLenum GL_APIENTRY GL_ClientWaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClientWaitSync, - "context = %d, sync = 0x%016" PRIxPTR ", flags = %s, timeout = %llu", CID(context), - (uintptr_t)sync, GLbitfieldToString(GLenumGroup::SyncObjectMask, flags).c_str(), - static_cast(timeout)); - - GLenum returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClientWaitSync(context, sync, flags, timeout)); - if (isCallValid) - { - returnValue = context->clientWaitSync(sync, flags, timeout); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(ClientWaitSync, isCallValid, context, sync, flags, timeout, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_ClipControlEXTContextANGLE(GLeglContext ctx, GLenum origin, GLenum depth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClipControlEXT, "context = %d, origin = %s, depth = %s", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, origin), - GLenumToString(GLenumGroup::DefaultGroup, depth)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClipControlEXT(context, origin, depth)); - if (isCallValid) - { - context->clipControl(origin, depth); - } - ANGLE_CAPTURE(ClipControlEXT, isCallValid, context, origin, depth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClipPlanefContextANGLE(GLeglContext ctx, GLenum p, const GLfloat *eqn) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClipPlanef, "context = %d, p = %s, eqn = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::ClipPlaneName, p), (uintptr_t)eqn); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateClipPlanef(context, p, eqn)); - if (isCallValid) - { - context->clipPlanef(p, eqn); - } - ANGLE_CAPTURE(ClipPlanef, isCallValid, context, p, eqn); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, const GLfixed *equation) -{ - Context *context = static_cast(ctx); - EVENT(context, GLClipPlanex, "context = %d, plane = %s, equation = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ClipPlaneName, plane), (uintptr_t)equation); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateClipPlanex(context, plane, equation)); - if (isCallValid) - { - context->clipPlanex(plane, equation); - } - ANGLE_CAPTURE(ClipPlanex, isCallValid, context, plane, equation); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Color4fContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColor4f, "context = %d, red = %f, green = %f, blue = %f, alpha = %f", - CID(context), red, green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColor4f(context, red, green, blue, alpha)); - if (isCallValid) - { - context->color4f(red, green, blue, alpha); - } - ANGLE_CAPTURE(Color4f, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Color4ubContextANGLE(GLeglContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColor4ub, "context = %d, red = %d, green = %d, blue = %d, alpha = %d", - CID(context), red, green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColor4ub(context, red, green, blue, alpha)); - if (isCallValid) - { - context->color4ub(red, green, blue, alpha); - } - ANGLE_CAPTURE(Color4ub, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Color4xContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColor4x, "context = %d, red = 0x%X, green = 0x%X, blue = 0x%X, alpha = 0x%X", - CID(context), red, green, blue, alpha); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColor4x(context, red, green, blue, alpha)); - if (isCallValid) - { - context->color4x(red, green, blue, alpha); - } - ANGLE_CAPTURE(Color4x, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ColorMaskContextANGLE(GLeglContext ctx, - GLboolean red, - GLboolean green, - GLboolean blue, - GLboolean alpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColorMask, "context = %d, red = %s, green = %s, blue = %s, alpha = %s", - CID(context), GLbooleanToString(red), GLbooleanToString(green), GLbooleanToString(blue), - GLbooleanToString(alpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColorMask(context, red, green, blue, alpha)); - if (isCallValid) - { - context->colorMask(red, green, blue, alpha); - } - ANGLE_CAPTURE(ColorMask, isCallValid, context, red, green, blue, alpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ColorMaskiContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColorMaski, "context = %d, index = %u, r = %s, g = %s, b = %s, a = %s", - CID(context), index, GLbooleanToString(r), GLbooleanToString(g), GLbooleanToString(b), - GLbooleanToString(a)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColorMaski(context, index, r, g, b, a)); - if (isCallValid) - { - context->colorMaski(index, r, g, b, a); - } - ANGLE_CAPTURE(ColorMaski, isCallValid, context, index, r, g, b, a); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ColorMaskiEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColorMaskiEXT, "context = %d, index = %u, r = %s, g = %s, b = %s, a = %s", - CID(context), index, GLbooleanToString(r), GLbooleanToString(g), GLbooleanToString(b), - GLbooleanToString(a)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColorMaskiEXT(context, index, r, g, b, a)); - if (isCallValid) - { - context->colorMaski(index, r, g, b, a); - } - ANGLE_CAPTURE(ColorMaskiEXT, isCallValid, context, index, r, g, b, a); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ColorMaskiOESContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColorMaskiOES, "context = %d, index = %u, r = %s, g = %s, b = %s, a = %s", - CID(context), index, GLbooleanToString(r), GLbooleanToString(g), GLbooleanToString(b), - GLbooleanToString(a)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateColorMaskiOES(context, index, r, g, b, a)); - if (isCallValid) - { - context->colorMaski(index, r, g, b, a); - } - ANGLE_CAPTURE(ColorMaskiOES, isCallValid, context, index, r, g, b, a); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ColorPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLColorPointer, - "context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", - CID(context), size, GLenumToString(GLenumGroup::ColorPointerType, type), stride, - (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateColorPointer(context, size, typePacked, stride, pointer)); - if (isCallValid) - { - context->colorPointer(size, typePacked, stride, pointer); - } - ANGLE_CAPTURE(ColorPointer, isCallValid, context, size, typePacked, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompileShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompileShader, "context = %d, shader = %u", CID(context), shader); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCompileShader(context, shaderPacked)); - if (isCallValid) - { - context->compileShader(shaderPacked); - } - ANGLE_CAPTURE(CompileShader, isCallValid, context, shaderPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexImage2D, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "border = %d, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, border, - imageSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexImage2D(context, targetPacked, level, internalformat, width, - height, border, imageSize, data)); - if (isCallValid) - { - context->compressedTexImage2D(targetPacked, level, internalformat, width, height, - border, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexImage2D, isCallValid, context, targetPacked, level, - internalformat, width, height, border, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexImage3D, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, border = %d, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, border, - imageSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexImage3D(context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, data)); - if (isCallValid) - { - context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth, - border, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexImage3D, isCallValid, context, targetPacked, level, - internalformat, width, height, depth, border, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexImage3DOES, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, border = %d, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, border, - imageSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexImage3DOES(context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, data)); - if (isCallValid) - { - context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth, - border, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexImage3DOES, isCallValid, context, targetPacked, level, - internalformat, width, height, depth, border, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexSubImage2D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = " - "%d, format = %s, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - width, height, GLenumToString(GLenumGroup::PixelFormat, format), imageSize, - (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedTexSubImage2D(context, targetPacked, level, xoffset, yoffset, width, - height, format, imageSize, data)); - if (isCallValid) - { - context->compressedTexSubImage2D(targetPacked, level, xoffset, yoffset, width, height, - format, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexSubImage2D, isCallValid, context, targetPacked, level, xoffset, - yoffset, width, height, format, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexSubImage3D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width " - "= %d, height = %d, depth = %d, format = %s, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format), - imageSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCompressedTexSubImage3D(context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, - format, imageSize, data)); - if (isCallValid) - { - context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexSubImage3D, isCallValid, context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, format, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexSubImage3DOES, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width " - "= %d, height = %d, depth = %d, format = %s, imageSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format), - imageSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCompressedTexSubImage3DOES( - context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data)); - if (isCallValid) - { - context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, data); - } - ANGLE_CAPTURE(CompressedTexSubImage3DOES, isCallValid, context, targetPacked, level, - xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyBufferSubDataContextANGLE(GLeglContext ctx, - GLenum readTarget, - GLenum writeTarget, - GLintptr readOffset, - GLintptr writeOffset, - GLsizeiptr size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyBufferSubData, - "context = %d, readTarget = %s, writeTarget = %s, readOffset = %llu, writeOffset = %llu, " - "size = %llu", - CID(context), GLenumToString(GLenumGroup::CopyBufferSubDataTarget, readTarget), - GLenumToString(GLenumGroup::CopyBufferSubDataTarget, writeTarget), - static_cast(readOffset), static_cast(writeOffset), - static_cast(size)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding readTargetPacked = PackParam(readTarget); - BufferBinding writeTargetPacked = PackParam(writeTarget); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked, - readOffset, writeOffset, size)); - if (isCallValid) - { - context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset, - size); - } - ANGLE_CAPTURE(CopyBufferSubData, isCallValid, context, readTargetPacked, writeTargetPacked, - readOffset, writeOffset, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyImageSubDataContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyImageSubData, - "context = %d, srcName = %u, srcTarget = %s, srcLevel = %d, srcX = %d, srcY = %d, srcZ = " - "%d, dstName = %u, dstTarget = %s, dstLevel = %d, dstX = %d, dstY = %d, dstZ = %d, " - "srcWidth = %d, srcHeight = %d, srcDepth = %d", - CID(context), srcName, GLenumToString(GLenumGroup::CopyBufferSubDataTarget, srcTarget), - srcLevel, srcX, srcY, srcZ, dstName, - GLenumToString(GLenumGroup::CopyBufferSubDataTarget, dstTarget), dstLevel, dstX, dstY, - dstZ, srcWidth, srcHeight, srcDepth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyImageSubData(context, srcName, srcTarget, srcLevel, srcX, - srcY, srcZ, dstName, dstTarget, dstLevel, dstX, - dstY, dstZ, srcWidth, srcHeight, srcDepth)); - if (isCallValid) - { - context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, - dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, - srcDepth); - } - ANGLE_CAPTURE(CopyImageSubData, isCallValid, context, srcName, srcTarget, srcLevel, srcX, - srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyImageSubDataEXTContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyImageSubDataEXT, - "context = %d, srcName = %u, srcTarget = %s, srcLevel = %d, srcX = %d, srcY = %d, srcZ = " - "%d, dstName = %u, dstTarget = %s, dstLevel = %d, dstX = %d, dstY = %d, dstZ = %d, " - "srcWidth = %d, srcHeight = %d, srcDepth = %d", - CID(context), srcName, GLenumToString(GLenumGroup::CopyBufferSubDataTarget, srcTarget), - srcLevel, srcX, srcY, srcZ, dstName, - GLenumToString(GLenumGroup::CopyBufferSubDataTarget, dstTarget), dstLevel, dstX, dstY, - dstZ, srcWidth, srcHeight, srcDepth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCopyImageSubDataEXT(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth)); - if (isCallValid) - { - context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, - dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, - srcDepth); - } - ANGLE_CAPTURE(CopyImageSubDataEXT, isCallValid, context, srcName, srcTarget, srcLevel, srcX, - srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyImageSubDataOESContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyImageSubDataOES, - "context = %d, srcName = %u, srcTarget = %s, srcLevel = %d, srcX = %d, srcY = %d, srcZ = " - "%d, dstName = %u, dstTarget = %s, dstLevel = %d, dstX = %d, dstY = %d, dstZ = %d, " - "srcWidth = %d, srcHeight = %d, srcDepth = %d", - CID(context), srcName, GLenumToString(GLenumGroup::CopyBufferSubDataTarget, srcTarget), - srcLevel, srcX, srcY, srcZ, dstName, - GLenumToString(GLenumGroup::CopyBufferSubDataTarget, dstTarget), dstLevel, dstX, dstY, - dstZ, srcWidth, srcHeight, srcDepth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCopyImageSubDataOES(context, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth)); - if (isCallValid) - { - context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, - dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, - srcDepth); - } - ANGLE_CAPTURE(CopyImageSubDataOES, isCallValid, context, srcName, srcTarget, srcLevel, srcX, - srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLint border) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTexImage2D, - "context = %d, target = %s, level = %d, internalformat = %s, x = %d, y = %d, width = %d, " - "height = %d, border = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::InternalFormat, internalformat), x, y, width, height, border); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexImage2D(context, targetPacked, level, internalformat, x, - y, width, height, border)); - if (isCallValid) - { - context->copyTexImage2D(targetPacked, level, internalformat, x, y, width, height, - border); - } - ANGLE_CAPTURE(CopyTexImage2D, isCallValid, context, targetPacked, level, internalformat, x, - y, width, height, border); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTexSubImage2D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, x = %d, y = %d, " - "width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage2D(context, targetPacked, level, xoffset, - yoffset, x, y, width, height)); - if (isCallValid) - { - context->copyTexSubImage2D(targetPacked, level, xoffset, yoffset, x, y, width, height); - } - ANGLE_CAPTURE(CopyTexSubImage2D, isCallValid, context, targetPacked, level, xoffset, - yoffset, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTexSubImage3D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, x = " - "%d, y = %d, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - zoffset, x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage3D(context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height)); - if (isCallValid) - { - context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width, - height); - } - ANGLE_CAPTURE(CopyTexSubImage3D, isCallValid, context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTexSubImage3DOES, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, x = " - "%d, y = %d, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, xoffset, yoffset, - zoffset, x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexSubImage3DOES(context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height)); - if (isCallValid) - { - context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width, - height); - } - ANGLE_CAPTURE(CopyTexSubImage3DOES, isCallValid, context, targetPacked, level, xoffset, - yoffset, zoffset, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CreateMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *memoryObjects) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCreateMemoryObjectsEXT, - "context = %d, n = %d, memoryObjects = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)memoryObjects); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID *memoryObjectsPacked = PackParam(memoryObjects); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateMemoryObjectsEXT(context, n, memoryObjectsPacked)); - if (isCallValid) - { - context->createMemoryObjects(n, memoryObjectsPacked); - } - ANGLE_CAPTURE(CreateMemoryObjectsEXT, isCallValid, context, n, memoryObjectsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLuint GL_APIENTRY GL_CreateProgramContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCreateProgram, "context = %d", CID(context)); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCreateProgram(context)); - if (isCallValid) - { - returnValue = context->createProgram(); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CreateProgram, isCallValid, context, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLuint GL_APIENTRY GL_CreateShaderContextANGLE(GLeglContext ctx, GLenum type) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCreateShader, "context = %d, type = %s", CID(context), - GLenumToString(GLenumGroup::ShaderType, type)); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCreateShader(context, typePacked)); - if (isCallValid) - { - returnValue = context->createShader(typePacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CreateShader, isCallValid, context, typePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLuint GL_APIENTRY GL_CreateShaderProgramvContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar *const *strings) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCreateShaderProgramv, - "context = %d, type = %s, count = %d, strings = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::ShaderType, type), count, (uintptr_t)strings); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateShaderProgramv(context, typePacked, count, strings)); - if (isCallValid) - { - returnValue = context->createShaderProgramv(typePacked, count, strings); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CreateShaderProgramv, isCallValid, context, typePacked, count, strings, - returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLuint GL_APIENTRY GL_CreateShaderProgramvEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar **strings) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCreateShaderProgramvEXT, - "context = %d, type = %s, count = %d, strings = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::ShaderType, type), count, (uintptr_t)strings); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCreateShaderProgramvEXT(context, typePacked, count, strings)); - if (isCallValid) - { - returnValue = context->createShaderProgramv(typePacked, count, strings); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(CreateShaderProgramvEXT, isCallValid, context, typePacked, count, strings, - returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_CullFaceContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCullFace, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::CullFaceMode, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - CullFaceMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateCullFace(context, modePacked)); - if (isCallValid) - { - context->cullFace(modePacked); - } - ANGLE_CAPTURE(CullFace, isCallValid, context, modePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CurrentPaletteMatrixOESContextANGLE(GLeglContext ctx, GLuint matrixpaletteindex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCurrentPaletteMatrixOES, "context = %d, matrixpaletteindex = %u", CID(context), - matrixpaletteindex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCurrentPaletteMatrixOES(context, matrixpaletteindex)); - if (isCallValid) - { - context->currentPaletteMatrix(matrixpaletteindex); - } - ANGLE_CAPTURE(CurrentPaletteMatrixOES, isCallValid, context, matrixpaletteindex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageCallbackContextANGLE(GLeglContext ctx, - GLDEBUGPROC callback, - const void *userParam) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageCallback, - "context = %d, callback = 0x%016" PRIxPTR ", userParam = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)callback, (uintptr_t)userParam); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDebugMessageCallback(context, callback, userParam)); - if (isCallValid) - { - context->debugMessageCallback(callback, userParam); - } - ANGLE_CAPTURE(DebugMessageCallback, isCallValid, context, callback, userParam); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageCallbackKHRContextANGLE(GLeglContext ctx, - GLDEBUGPROCKHR callback, - const void *userParam) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageCallbackKHR, - "context = %d, callback = 0x%016" PRIxPTR ", userParam = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)callback, (uintptr_t)userParam); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDebugMessageCallbackKHR(context, callback, userParam)); - if (isCallValid) - { - context->debugMessageCallback(callback, userParam); - } - ANGLE_CAPTURE(DebugMessageCallbackKHR, isCallValid, context, callback, userParam); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageControlContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageControl, - "context = %d, source = %s, type = %s, severity = %s, count = %d, ids = 0x%016" PRIxPTR - ", enabled = %s", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), - GLenumToString(GLenumGroup::DebugType, type), - GLenumToString(GLenumGroup::DebugSeverity, severity), count, (uintptr_t)ids, - GLbooleanToString(enabled)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDebugMessageControl(context, source, type, severity, count, ids, enabled)); - if (isCallValid) - { - context->debugMessageControl(source, type, severity, count, ids, enabled); - } - ANGLE_CAPTURE(DebugMessageControl, isCallValid, context, source, type, severity, count, ids, - enabled); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageControlKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageControlKHR, - "context = %d, source = %s, type = %s, severity = %s, count = %d, ids = 0x%016" PRIxPTR - ", enabled = %s", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), - GLenumToString(GLenumGroup::DebugType, type), - GLenumToString(GLenumGroup::DebugSeverity, severity), count, (uintptr_t)ids, - GLbooleanToString(enabled)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDebugMessageControlKHR(context, source, type, severity, count, ids, enabled)); - if (isCallValid) - { - context->debugMessageControl(source, type, severity, count, ids, enabled); - } - ANGLE_CAPTURE(DebugMessageControlKHR, isCallValid, context, source, type, severity, count, - ids, enabled); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageInsertContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageInsert, - "context = %d, source = %s, type = %s, id = %u, severity = %s, length = %d, buf = " - "0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), - GLenumToString(GLenumGroup::DebugType, type), id, - GLenumToString(GLenumGroup::DebugSeverity, severity), length, (uintptr_t)buf); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDebugMessageInsert(context, source, type, id, severity, length, buf)); - if (isCallValid) - { - context->debugMessageInsert(source, type, id, severity, length, buf); - } - ANGLE_CAPTURE(DebugMessageInsert, isCallValid, context, source, type, id, severity, length, - buf); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DebugMessageInsertKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDebugMessageInsertKHR, - "context = %d, source = %s, type = %s, id = %u, severity = %s, length = %d, buf = " - "0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), - GLenumToString(GLenumGroup::DebugType, type), id, - GLenumToString(GLenumGroup::DebugSeverity, severity), length, (uintptr_t)buf); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDebugMessageInsertKHR(context, source, type, id, severity, length, buf)); - if (isCallValid) - { - context->debugMessageInsert(source, type, id, severity, length, buf); - } - ANGLE_CAPTURE(DebugMessageInsertKHR, isCallValid, context, source, type, id, severity, - length, buf); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *buffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteBuffers, "context = %d, n = %d, buffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)buffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const BufferID *buffersPacked = PackParam(buffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteBuffers(context, n, buffersPacked)); - if (isCallValid) - { - context->deleteBuffers(n, buffersPacked); - } - ANGLE_CAPTURE(DeleteBuffers, isCallValid, context, n, buffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteFencesNVContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *fences) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteFencesNV, "context = %d, n = %d, fences = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)fences); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const FenceNVID *fencesPacked = PackParam(fences); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteFencesNV(context, n, fencesPacked)); - if (isCallValid) - { - context->deleteFencesNV(n, fencesPacked); - } - ANGLE_CAPTURE(DeleteFencesNV, isCallValid, context, n, fencesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteFramebuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteFramebuffers, "context = %d, n = %d, framebuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)framebuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const FramebufferID *framebuffersPacked = PackParam(framebuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteFramebuffers(context, n, framebuffersPacked)); - if (isCallValid) - { - context->deleteFramebuffers(n, framebuffersPacked); - } - ANGLE_CAPTURE(DeleteFramebuffers, isCallValid, context, n, framebuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteFramebuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteFramebuffersOES, - "context = %d, n = %d, framebuffers = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)framebuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const FramebufferID *framebuffersPacked = PackParam(framebuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteFramebuffersOES(context, n, framebuffersPacked)); - if (isCallValid) - { - context->deleteFramebuffers(n, framebuffersPacked); - } - ANGLE_CAPTURE(DeleteFramebuffersOES, isCallValid, context, n, framebuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *memoryObjects) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteMemoryObjectsEXT, - "context = %d, n = %d, memoryObjects = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)memoryObjects); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const MemoryObjectID *memoryObjectsPacked = - PackParam(memoryObjects); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteMemoryObjectsEXT(context, n, memoryObjectsPacked)); - if (isCallValid) - { - context->deleteMemoryObjects(n, memoryObjectsPacked); - } - ANGLE_CAPTURE(DeleteMemoryObjectsEXT, isCallValid, context, n, memoryObjectsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteProgram, "context = %d, program = %u", CID(context), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteProgram(context, programPacked)); - if (isCallValid) - { - context->deleteProgram(programPacked); - } - ANGLE_CAPTURE(DeleteProgram, isCallValid, context, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteProgramPipelinesContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteProgramPipelines, "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)pipelines); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const ProgramPipelineID *pipelinesPacked = PackParam(pipelines); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteProgramPipelines(context, n, pipelinesPacked)); - if (isCallValid) - { - context->deleteProgramPipelines(n, pipelinesPacked); - } - ANGLE_CAPTURE(DeleteProgramPipelines, isCallValid, context, n, pipelinesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteProgramPipelinesEXT, - "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)pipelines); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const ProgramPipelineID *pipelinesPacked = PackParam(pipelines); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteProgramPipelinesEXT(context, n, pipelinesPacked)); - if (isCallValid) - { - context->deleteProgramPipelines(n, pipelinesPacked); - } - ANGLE_CAPTURE(DeleteProgramPipelinesEXT, isCallValid, context, n, pipelinesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteQueriesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteQueries, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", CID(context), - n, (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const QueryID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteQueries(context, n, idsPacked)); - if (isCallValid) - { - context->deleteQueries(n, idsPacked); - } - ANGLE_CAPTURE(DeleteQueries, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteQueriesEXT, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const QueryID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteQueriesEXT(context, n, idsPacked)); - if (isCallValid) - { - context->deleteQueries(n, idsPacked); - } - ANGLE_CAPTURE(DeleteQueriesEXT, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteRenderbuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteRenderbuffers, "context = %d, n = %d, renderbuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)renderbuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const RenderbufferID *renderbuffersPacked = - PackParam(renderbuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteRenderbuffers(context, n, renderbuffersPacked)); - if (isCallValid) - { - context->deleteRenderbuffers(n, renderbuffersPacked); - } - ANGLE_CAPTURE(DeleteRenderbuffers, isCallValid, context, n, renderbuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteRenderbuffersOES, - "context = %d, n = %d, renderbuffers = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)renderbuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const RenderbufferID *renderbuffersPacked = - PackParam(renderbuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteRenderbuffersOES(context, n, renderbuffersPacked)); - if (isCallValid) - { - context->deleteRenderbuffers(n, renderbuffersPacked); - } - ANGLE_CAPTURE(DeleteRenderbuffersOES, isCallValid, context, n, renderbuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteSamplersContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *samplers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteSamplers, "context = %d, count = %d, samplers = 0x%016" PRIxPTR "", - CID(context), count, (uintptr_t)samplers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const SamplerID *samplersPacked = PackParam(samplers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteSamplers(context, count, samplersPacked)); - if (isCallValid) - { - context->deleteSamplers(count, samplersPacked); - } - ANGLE_CAPTURE(DeleteSamplers, isCallValid, context, count, samplersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteSemaphoresEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *semaphores) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteSemaphoresEXT, "context = %d, n = %d, semaphores = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)semaphores); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const SemaphoreID *semaphoresPacked = PackParam(semaphores); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDeleteSemaphoresEXT(context, n, semaphoresPacked)); - if (isCallValid) - { - context->deleteSemaphores(n, semaphoresPacked); - } - ANGLE_CAPTURE(DeleteSemaphoresEXT, isCallValid, context, n, semaphoresPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteShader, "context = %d, shader = %u", CID(context), shader); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteShader(context, shaderPacked)); - if (isCallValid) - { - context->deleteShader(shaderPacked); - } - ANGLE_CAPTURE(DeleteShader, isCallValid, context, shaderPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteSyncContextANGLE(GLeglContext ctx, GLsync sync) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteSync, "context = %d, sync = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)sync); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDeleteSync(context, sync)); - if (isCallValid) - { - context->deleteSync(sync); - } - ANGLE_CAPTURE(DeleteSync, isCallValid, context, sync); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteTexturesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *textures) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteTextures, "context = %d, n = %d, textures = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)textures); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const TextureID *texturesPacked = PackParam(textures); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteTextures(context, n, texturesPacked)); - if (isCallValid) - { - context->deleteTextures(n, texturesPacked); - } - ANGLE_CAPTURE(DeleteTextures, isCallValid, context, n, texturesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteTransformFeedbacksContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteTransformFeedbacks, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const TransformFeedbackID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteTransformFeedbacks(context, n, idsPacked)); - if (isCallValid) - { - context->deleteTransformFeedbacks(n, idsPacked); - } - ANGLE_CAPTURE(DeleteTransformFeedbacks, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteVertexArraysContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *arrays) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteVertexArrays, "context = %d, n = %d, arrays = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)arrays); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const VertexArrayID *arraysPacked = PackParam(arrays); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteVertexArrays(context, n, arraysPacked)); - if (isCallValid) - { - context->deleteVertexArrays(n, arraysPacked); - } - ANGLE_CAPTURE(DeleteVertexArrays, isCallValid, context, n, arraysPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DeleteVertexArraysOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *arrays) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDeleteVertexArraysOES, "context = %d, n = %d, arrays = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)arrays); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const VertexArrayID *arraysPacked = PackParam(arrays); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDeleteVertexArraysOES(context, n, arraysPacked)); - if (isCallValid) - { - context->deleteVertexArrays(n, arraysPacked); - } - ANGLE_CAPTURE(DeleteVertexArraysOES, isCallValid, context, n, arraysPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DepthFuncContextANGLE(GLeglContext ctx, GLenum func) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDepthFunc, "context = %d, func = %s", CID(context), - GLenumToString(GLenumGroup::DepthFunction, func)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthFunc(context, func)); - if (isCallValid) - { - context->depthFunc(func); - } - ANGLE_CAPTURE(DepthFunc, isCallValid, context, func); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DepthMaskContextANGLE(GLeglContext ctx, GLboolean flag) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDepthMask, "context = %d, flag = %s", CID(context), GLbooleanToString(flag)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthMask(context, flag)); - if (isCallValid) - { - context->depthMask(flag); - } - ANGLE_CAPTURE(DepthMask, isCallValid, context, flag); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DepthRangefContextANGLE(GLeglContext ctx, GLfloat n, GLfloat f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDepthRangef, "context = %d, n = %f, f = %f", CID(context), n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthRangef(context, n, f)); - if (isCallValid) - { - context->depthRangef(n, f); - } - ANGLE_CAPTURE(DepthRangef, isCallValid, context, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DepthRangexContextANGLE(GLeglContext ctx, GLfixed n, GLfixed f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDepthRangex, "context = %d, n = 0x%X, f = 0x%X", CID(context), n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDepthRangex(context, n, f)); - if (isCallValid) - { - context->depthRangex(n, f); - } - ANGLE_CAPTURE(DepthRangex, isCallValid, context, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DetachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDetachShader, "context = %d, program = %u, shader = %u", CID(context), program, - shader); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDetachShader(context, programPacked, shaderPacked)); - if (isCallValid) - { - context->detachShader(programPacked, shaderPacked); - } - ANGLE_CAPTURE(DetachShader, isCallValid, context, programPacked, shaderPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableContextANGLE(GLeglContext ctx, GLenum cap) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisable, "context = %d, cap = %s", CID(context), - GLenumToString(GLenumGroup::EnableCap, cap)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDisable(context, cap)); - if (isCallValid) - { - context->disable(cap); - } - ANGLE_CAPTURE(Disable, isCallValid, context, cap); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableClientStateContextANGLE(GLeglContext ctx, GLenum array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisableClientState, "context = %d, array = %s", CID(context), - GLenumToString(GLenumGroup::EnableCap, array)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ClientVertexArrayType arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableClientState(context, arrayPacked)); - if (isCallValid) - { - context->disableClientState(arrayPacked); - } - ANGLE_CAPTURE(DisableClientState, isCallValid, context, arrayPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisableVertexAttribArray, "context = %d, index = %u", CID(context), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableVertexAttribArray(context, index)); - if (isCallValid) - { - context->disableVertexAttribArray(index); - } - ANGLE_CAPTURE(DisableVertexAttribArray, isCallValid, context, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisablei, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDisablei(context, target, index)); - if (isCallValid) - { - context->disablei(target, index); - } - ANGLE_CAPTURE(Disablei, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisableiEXT, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableiEXT(context, target, index)); - if (isCallValid) - { - context->disablei(target, index); - } - ANGLE_CAPTURE(DisableiEXT, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisableiOES, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableiOES(context, target, index)); - if (isCallValid) - { - context->disablei(target, index); - } - ANGLE_CAPTURE(DisableiOES, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DiscardFramebufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDiscardFramebufferEXT, - "context = %d, target = %s, numAttachments = %d, attachments = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), numAttachments, - (uintptr_t)attachments); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDiscardFramebufferEXT(context, target, numAttachments, attachments)); - if (isCallValid) - { - context->discardFramebuffer(target, numAttachments, attachments); - } - ANGLE_CAPTURE(DiscardFramebufferEXT, isCallValid, context, target, numAttachments, - attachments); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DispatchComputeContextANGLE(GLeglContext ctx, - GLuint num_groups_x, - GLuint num_groups_y, - GLuint num_groups_z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDispatchCompute, - "context = %d, num_groups_x = %u, num_groups_y = %u, num_groups_z = %u", CID(context), - num_groups_x, num_groups_y, num_groups_z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDispatchCompute(context, num_groups_x, num_groups_y, num_groups_z)); - if (isCallValid) - { - context->dispatchCompute(num_groups_x, num_groups_y, num_groups_z); - } - ANGLE_CAPTURE(DispatchCompute, isCallValid, context, num_groups_x, num_groups_y, - num_groups_z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DispatchComputeIndirectContextANGLE(GLeglContext ctx, GLintptr indirect) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDispatchComputeIndirect, "context = %d, indirect = %llu", CID(context), - static_cast(indirect)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDispatchComputeIndirect(context, indirect)); - if (isCallValid) - { - context->dispatchComputeIndirect(indirect); - } - ANGLE_CAPTURE(DispatchComputeIndirect, isCallValid, context, indirect); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArrays, "context = %d, mode = %s, first = %d, count = %d", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, mode), first, count); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawArrays(context, modePacked, first, count)); - if (isCallValid) - { - context->drawArrays(modePacked, first, count); - } - ANGLE_CAPTURE(DrawArrays, isCallValid, context, modePacked, first, count); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - const void *indirect) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArraysIndirect, "context = %d, mode = %s, indirect = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)indirect); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawArraysIndirect(context, modePacked, indirect)); - if (isCallValid) - { - context->drawArraysIndirect(modePacked, indirect); - } - ANGLE_CAPTURE(DrawArraysIndirect, isCallValid, context, modePacked, indirect); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instancecount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArraysInstanced, - "context = %d, mode = %s, first = %d, count = %d, instancecount = %d", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, instancecount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDrawArraysInstanced(context, modePacked, first, count, instancecount)); - if (isCallValid) - { - context->drawArraysInstanced(modePacked, first, count, instancecount); - } - ANGLE_CAPTURE(DrawArraysInstanced, isCallValid, context, modePacked, first, count, - instancecount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei primcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArraysInstancedANGLE, - "context = %d, mode = %s, first = %d, count = %d, primcount = %d", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, primcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDrawArraysInstancedANGLE(context, modePacked, first, count, primcount)); - if (isCallValid) - { - context->drawArraysInstanced(modePacked, first, count, primcount); - } - ANGLE_CAPTURE(DrawArraysInstancedANGLE, isCallValid, context, modePacked, first, count, - primcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLint start, - GLsizei count, - GLsizei primcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArraysInstancedEXT, - "context = %d, mode = %s, start = %d, count = %d, primcount = %d", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, mode), start, count, primcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDrawArraysInstancedEXT(context, modePacked, start, count, primcount)); - if (isCallValid) - { - context->drawArraysInstanced(modePacked, start, count, primcount); - } - ANGLE_CAPTURE(DrawArraysInstancedEXT, isCallValid, context, modePacked, start, count, - primcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawBuffers, "context = %d, n = %d, bufs = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)bufs); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawBuffers(context, n, bufs)); - if (isCallValid) - { - context->drawBuffers(n, bufs); - } - ANGLE_CAPTURE(DrawBuffers, isCallValid, context, n, bufs); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawBuffersEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawBuffersEXT, "context = %d, n = %d, bufs = 0x%016" PRIxPTR "", CID(context), - n, (uintptr_t)bufs); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawBuffersEXT(context, n, bufs)); - if (isCallValid) - { - context->drawBuffers(n, bufs); - } - ANGLE_CAPTURE(DrawBuffersEXT, isCallValid, context, n, bufs); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElements, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElements(context, modePacked, count, typePacked, indices)); - if (isCallValid) - { - context->drawElements(modePacked, count, typePacked, indices); - } - ANGLE_CAPTURE(DrawElements, isCallValid, context, modePacked, count, typePacked, indices); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsBaseVertex, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertex(context, modePacked, count, typePacked, - indices, basevertex)); - if (isCallValid) - { - context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); - } - ANGLE_CAPTURE(DrawElementsBaseVertex, isCallValid, context, modePacked, count, typePacked, - indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsBaseVertexEXT, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertexEXT(context, modePacked, count, - typePacked, indices, basevertex)); - if (isCallValid) - { - context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); - } - ANGLE_CAPTURE(DrawElementsBaseVertexEXT, isCallValid, context, modePacked, count, - typePacked, indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsBaseVertexOES, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsBaseVertexOES(context, modePacked, count, - typePacked, indices, basevertex)); - if (isCallValid) - { - context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex); - } - ANGLE_CAPTURE(DrawElementsBaseVertexOES, isCallValid, context, modePacked, count, - typePacked, indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - GLenum type, - const void *indirect) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsIndirect, - "context = %d, mode = %s, type = %s, indirect = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::PrimitiveType, mode), - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indirect); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateDrawElementsIndirect(context, modePacked, typePacked, indirect)); - if (isCallValid) - { - context->drawElementsIndirect(modePacked, typePacked, indirect); - } - ANGLE_CAPTURE(DrawElementsIndirect, isCallValid, context, modePacked, typePacked, indirect); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstanced, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", instancecount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstanced(context, modePacked, count, typePacked, - indices, instancecount)); - if (isCallValid) - { - context->drawElementsInstanced(modePacked, count, typePacked, indices, instancecount); - } - ANGLE_CAPTURE(DrawElementsInstanced, isCallValid, context, modePacked, count, typePacked, - indices, instancecount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedANGLE, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", primcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::PrimitiveType, type), (uintptr_t)indices, primcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstancedANGLE(context, modePacked, count, - typePacked, indices, primcount)); - if (isCallValid) - { - context->drawElementsInstanced(modePacked, count, typePacked, indices, primcount); - } - ANGLE_CAPTURE(DrawElementsInstancedANGLE, isCallValid, context, modePacked, count, - typePacked, indices, primcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedBaseVertex, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", instancecount = %d, basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount, - basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertex( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); - if (isCallValid) - { - context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, - instancecount, basevertex); - } - ANGLE_CAPTURE(DrawElementsInstancedBaseVertex, isCallValid, context, modePacked, count, - typePacked, indices, instancecount, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedBaseVertexEXT, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", instancecount = %d, basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount, - basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexEXT( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); - if (isCallValid) - { - context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, - instancecount, basevertex); - } - ANGLE_CAPTURE(DrawElementsInstancedBaseVertexEXT, isCallValid, context, modePacked, count, - typePacked, indices, instancecount, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedBaseVertexOES, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", instancecount = %d, basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount, - basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexOES( - context, modePacked, count, typePacked, - indices, instancecount, basevertex)); - if (isCallValid) - { - context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices, - instancecount, basevertex); - } - ANGLE_CAPTURE(DrawElementsInstancedBaseVertexOES, isCallValid, context, modePacked, count, - typePacked, indices, instancecount, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawElementsInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedEXT, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", primcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, primcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawElementsInstancedEXT(context, modePacked, count, typePacked, - indices, primcount)); - if (isCallValid) - { - context->drawElementsInstanced(modePacked, count, typePacked, indices, primcount); - } - ANGLE_CAPTURE(DrawElementsInstancedEXT, isCallValid, context, modePacked, count, typePacked, - indices, primcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawRangeElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawRangeElements, - "context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = " - "0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawRangeElements(context, modePacked, start, end, - count, typePacked, indices)); - if (isCallValid) - { - context->drawRangeElements(modePacked, start, end, count, typePacked, indices); - } - ANGLE_CAPTURE(DrawRangeElements, isCallValid, context, modePacked, start, end, count, - typePacked, indices); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawRangeElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawRangeElementsBaseVertex, - "context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = " - "0x%016" PRIxPTR ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertex( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); - if (isCallValid) - { - context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, - basevertex); - } - ANGLE_CAPTURE(DrawRangeElementsBaseVertex, isCallValid, context, modePacked, start, end, - count, typePacked, indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawRangeElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawRangeElementsBaseVertexEXT, - "context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = " - "0x%016" PRIxPTR ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertexEXT( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); - if (isCallValid) - { - context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, - basevertex); - } - ANGLE_CAPTURE(DrawRangeElementsBaseVertexEXT, isCallValid, context, modePacked, start, end, - count, typePacked, indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawRangeElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawRangeElementsBaseVertexOES, - "context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = " - "0x%016" PRIxPTR ", basevertex = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertexOES( - context, modePacked, start, end, count, - typePacked, indices, basevertex)); - if (isCallValid) - { - context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices, - basevertex); - } - ANGLE_CAPTURE(DrawRangeElementsBaseVertexOES, isCallValid, context, modePacked, start, end, - count, typePacked, indices, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexfOESContextANGLE(GLeglContext ctx, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat width, - GLfloat height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexfOES, "context = %d, x = %f, y = %f, z = %f, width = %f, height = %f", - CID(context), x, y, z, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexfOES(context, x, y, z, width, height)); - if (isCallValid) - { - context->drawTexf(x, y, z, width, height); - } - ANGLE_CAPTURE(DrawTexfOES, isCallValid, context, x, y, z, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexfvOESContextANGLE(GLeglContext ctx, const GLfloat *coords) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexfvOES, "context = %d, coords = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)coords); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexfvOES(context, coords)); - if (isCallValid) - { - context->drawTexfv(coords); - } - ANGLE_CAPTURE(DrawTexfvOES, isCallValid, context, coords); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_DrawTexiOESContextANGLE(GLeglContext ctx, GLint x, GLint y, GLint z, GLint width, GLint height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexiOES, "context = %d, x = %d, y = %d, z = %d, width = %d, height = %d", - CID(context), x, y, z, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexiOES(context, x, y, z, width, height)); - if (isCallValid) - { - context->drawTexi(x, y, z, width, height); - } - ANGLE_CAPTURE(DrawTexiOES, isCallValid, context, x, y, z, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexivOESContextANGLE(GLeglContext ctx, const GLint *coords) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexivOES, "context = %d, coords = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)coords); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexivOES(context, coords)); - if (isCallValid) - { - context->drawTexiv(coords); - } - ANGLE_CAPTURE(DrawTexivOES, isCallValid, context, coords); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexsOESContextANGLE(GLeglContext ctx, - GLshort x, - GLshort y, - GLshort z, - GLshort width, - GLshort height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexsOES, "context = %d, x = %d, y = %d, z = %d, width = %d, height = %d", - CID(context), x, y, z, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexsOES(context, x, y, z, width, height)); - if (isCallValid) - { - context->drawTexs(x, y, z, width, height); - } - ANGLE_CAPTURE(DrawTexsOES, isCallValid, context, x, y, z, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexsvOESContextANGLE(GLeglContext ctx, const GLshort *coords) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexsvOES, "context = %d, coords = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)coords); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexsvOES(context, coords)); - if (isCallValid) - { - context->drawTexsv(coords); - } - ANGLE_CAPTURE(DrawTexsvOES, isCallValid, context, coords); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexxOESContextANGLE(GLeglContext ctx, - GLfixed x, - GLfixed y, - GLfixed z, - GLfixed width, - GLfixed height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexxOES, - "context = %d, x = 0x%X, y = 0x%X, z = 0x%X, width = 0x%X, height = 0x%X", CID(context), - x, y, z, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawTexxOES(context, x, y, z, width, height)); - if (isCallValid) - { - context->drawTexx(x, y, z, width, height); - } - ANGLE_CAPTURE(DrawTexxOES, isCallValid, context, x, y, z, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawTexxvOESContextANGLE(GLeglContext ctx, const GLfixed *coords) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawTexxvOES, "context = %d, coords = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)coords); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateDrawTexxvOES(context, coords)); - if (isCallValid) - { - context->drawTexxv(coords); - } - ANGLE_CAPTURE(DrawTexxvOES, isCallValid, context, coords); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EGLImageTargetRenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEGLImageTargetRenderbufferStorageOES, - "context = %d, target = %s, image = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, target), (uintptr_t)image); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateEGLImageTargetRenderbufferStorageOES(context, target, image)); - if (isCallValid) - { - context->eGLImageTargetRenderbufferStorage(target, image); - } - ANGLE_CAPTURE(EGLImageTargetRenderbufferStorageOES, isCallValid, context, target, image); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EGLImageTargetTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEGLImageTargetTexture2DOES, - "context = %d, target = %s, image = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, target), (uintptr_t)image); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateEGLImageTargetTexture2DOES(context, targetPacked, image)); - if (isCallValid) - { - context->eGLImageTargetTexture2D(targetPacked, image); - } - ANGLE_CAPTURE(EGLImageTargetTexture2DOES, isCallValid, context, targetPacked, image); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableContextANGLE(GLeglContext ctx, GLenum cap) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnable, "context = %d, cap = %s", CID(context), - GLenumToString(GLenumGroup::EnableCap, cap)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEnable(context, cap)); - if (isCallValid) - { - context->enable(cap); - } - ANGLE_CAPTURE(Enable, isCallValid, context, cap); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableClientStateContextANGLE(GLeglContext ctx, GLenum array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnableClientState, "context = %d, array = %s", CID(context), - GLenumToString(GLenumGroup::EnableCap, array)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ClientVertexArrayType arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableClientState(context, arrayPacked)); - if (isCallValid) - { - context->enableClientState(arrayPacked); - } - ANGLE_CAPTURE(EnableClientState, isCallValid, context, arrayPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnableVertexAttribArray, "context = %d, index = %u", CID(context), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableVertexAttribArray(context, index)); - if (isCallValid) - { - context->enableVertexAttribArray(index); - } - ANGLE_CAPTURE(EnableVertexAttribArray, isCallValid, context, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnablei, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEnablei(context, target, index)); - if (isCallValid) - { - context->enablei(target, index); - } - ANGLE_CAPTURE(Enablei, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnableiEXT, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableiEXT(context, target, index)); - if (isCallValid) - { - context->enablei(target, index); - } - ANGLE_CAPTURE(EnableiEXT, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EnableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEnableiOES, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEnableiOES(context, target, index)); - if (isCallValid) - { - context->enablei(target, index); - } - ANGLE_CAPTURE(EnableiOES, isCallValid, context, target, index); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EndQueryContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEndQuery, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEndQuery(context, targetPacked)); - if (isCallValid) - { - context->endQuery(targetPacked); - } - ANGLE_CAPTURE(EndQuery, isCallValid, context, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EndQueryEXTContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEndQueryEXT, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateEndQueryEXT(context, targetPacked)); - if (isCallValid) - { - context->endQuery(targetPacked); - } - ANGLE_CAPTURE(EndQueryEXT, isCallValid, context, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_EndTransformFeedbackContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLEndTransformFeedback, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateEndTransformFeedback(context)); - if (isCallValid) - { - context->endTransformFeedback(); - } - ANGLE_CAPTURE(EndTransformFeedback, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLsync GL_APIENTRY GL_FenceSyncContextANGLE(GLeglContext ctx, GLenum condition, GLbitfield flags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFenceSync, "context = %d, condition = %s, flags = %s", CID(context), - GLenumToString(GLenumGroup::SyncCondition, condition), - GLbitfieldToString(GLenumGroup::DefaultGroup, flags).c_str()); - - GLsync returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFenceSync(context, condition, flags)); - if (isCallValid) - { - returnValue = context->fenceSync(condition, flags); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(FenceSync, isCallValid, context, condition, flags, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_FinishContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFinish, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFinish(context)); - if (isCallValid) - { - context->finish(); - } - ANGLE_CAPTURE(Finish, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FinishFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFinishFenceNV, "context = %d, fence = %u", CID(context), fence); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID fencePacked = PackParam(fence); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFinishFenceNV(context, fencePacked)); - if (isCallValid) - { - context->finishFenceNV(fencePacked); - } - ANGLE_CAPTURE(FinishFenceNV, isCallValid, context, fencePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FlushContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFlush, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFlush(context)); - if (isCallValid) - { - context->flush(); - } - ANGLE_CAPTURE(Flush, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FlushMappedBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFlushMappedBufferRange, - "context = %d, target = %s, offset = %llu, length = %llu", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(offset), static_cast(length)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFlushMappedBufferRange(context, targetPacked, offset, length)); - if (isCallValid) - { - context->flushMappedBufferRange(targetPacked, offset, length); - } - ANGLE_CAPTURE(FlushMappedBufferRange, isCallValid, context, targetPacked, offset, length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FlushMappedBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFlushMappedBufferRangeEXT, - "context = %d, target = %s, offset = %llu, length = %llu", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(offset), static_cast(length)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFlushMappedBufferRangeEXT(context, targetPacked, offset, length)); - if (isCallValid) - { - context->flushMappedBufferRange(targetPacked, offset, length); - } - ANGLE_CAPTURE(FlushMappedBufferRangeEXT, isCallValid, context, targetPacked, offset, - length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FogfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFogf, "context = %d, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::FogParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogf(context, pname, param)); - if (isCallValid) - { - context->fogf(pname, param); - } - ANGLE_CAPTURE(Fogf, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FogfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFogfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::FogParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogfv(context, pname, params)); - if (isCallValid) - { - context->fogfv(pname, params); - } - ANGLE_CAPTURE(Fogfv, isCallValid, context, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FogxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFogx, "context = %d, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::FogPName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogx(context, pname, param)); - if (isCallValid) - { - context->fogx(pname, param); - } - ANGLE_CAPTURE(Fogx, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FogxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFogxv, "context = %d, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::FogPName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFogxv(context, pname, param)); - if (isCallValid) - { - context->fogxv(pname, param); - } - ANGLE_CAPTURE(Fogxv, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferFetchBarrierEXTContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferFetchBarrierEXT, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFramebufferFetchBarrierEXT(context)); - if (isCallValid) - { - context->framebufferFetchBarrier(); - } - ANGLE_CAPTURE(FramebufferFetchBarrierEXT, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferParameteri, "context = %d, target = %s, pname = %s, param = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferParameterName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferParameteri(context, target, pname, param)); - if (isCallValid) - { - context->framebufferParameteri(target, pname, param); - } - ANGLE_CAPTURE(FramebufferParameteri, isCallValid, context, target, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferRenderbuffer, - "context = %d, target = %s, attachment = %s, renderbuffertarget = %s, renderbuffer = %u", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::RenderbufferTarget, renderbuffertarget), renderbuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferRenderbuffer(context, target, attachment, renderbuffertarget, - renderbufferPacked)); - if (isCallValid) - { - context->framebufferRenderbuffer(target, attachment, renderbuffertarget, - renderbufferPacked); - } - ANGLE_CAPTURE(FramebufferRenderbuffer, isCallValid, context, target, attachment, - renderbuffertarget, renderbufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferRenderbufferOES, - "context = %d, target = %s, attachment = %s, renderbuffertarget = %s, renderbuffer = %u", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::RenderbufferTarget, renderbuffertarget), renderbuffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferRenderbufferOES(context, target, attachment, renderbuffertarget, - renderbufferPacked)); - if (isCallValid) - { - context->framebufferRenderbuffer(target, attachment, renderbuffertarget, - renderbufferPacked); - } - ANGLE_CAPTURE(FramebufferRenderbufferOES, isCallValid, context, target, attachment, - renderbuffertarget, renderbufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTextureContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTexture, - "context = %d, target = %s, attachment = %s, texture = %u, level = %d", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTexture(context, target, attachment, texturePacked, level)); - if (isCallValid) - { - context->framebufferTexture(target, attachment, texturePacked, level); - } - ANGLE_CAPTURE(FramebufferTexture, isCallValid, context, target, attachment, texturePacked, - level); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTexture2DContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTexture2D, - "context = %d, target = %s, attachment = %s, textarget = %s, texture = %u, level = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::TextureTarget, textarget), texture, level); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget textargetPacked = PackParam(textarget); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferTexture2D(context, target, attachment, - textargetPacked, texturePacked, level)); - if (isCallValid) - { - context->framebufferTexture2D(target, attachment, textargetPacked, texturePacked, - level); - } - ANGLE_CAPTURE(FramebufferTexture2D, isCallValid, context, target, attachment, - textargetPacked, texturePacked, level); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTexture2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLsizei samples) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTexture2DMultisampleEXT, - "context = %d, target = %s, attachment = %s, textarget = %s, texture = %u, level = %d, " - "samples = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::TextureTarget, textarget), texture, level, samples); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget textargetPacked = PackParam(textarget); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTexture2DMultisampleEXT( - context, target, attachment, textargetPacked, texturePacked, level, samples)); - if (isCallValid) - { - context->framebufferTexture2DMultisample(target, attachment, textargetPacked, - texturePacked, level, samples); - } - ANGLE_CAPTURE(FramebufferTexture2DMultisampleEXT, isCallValid, context, target, attachment, - textargetPacked, texturePacked, level, samples); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTexture2DOES, - "context = %d, target = %s, attachment = %s, textarget = %s, texture = %u, level = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::TextureTarget, textarget), texture, level); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget textargetPacked = PackParam(textarget); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferTexture2DOES(context, target, attachment, - textargetPacked, texturePacked, level)); - if (isCallValid) - { - context->framebufferTexture2D(target, attachment, textargetPacked, texturePacked, - level); - } - ANGLE_CAPTURE(FramebufferTexture2DOES, isCallValid, context, target, attachment, - textargetPacked, texturePacked, level); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTexture3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLint zoffset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTexture3DOES, - "context = %d, target = %s, attachment = %s, textarget = %s, texture = %u, level = %d, " - "zoffset = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::TextureTarget, textarget), texture, level, zoffset); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget textargetPacked = PackParam(textarget); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTexture3DOES(context, target, attachment, textargetPacked, - texturePacked, level, zoffset)); - if (isCallValid) - { - context->framebufferTexture3D(target, attachment, textargetPacked, texturePacked, level, - zoffset); - } - ANGLE_CAPTURE(FramebufferTexture3DOES, isCallValid, context, target, attachment, - textargetPacked, texturePacked, level, zoffset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTextureEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTextureEXT, - "context = %d, target = %s, attachment = %s, texture = %u, level = %d", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTextureEXT(context, target, attachment, texturePacked, level)); - if (isCallValid) - { - context->framebufferTexture(target, attachment, texturePacked, level); - } - ANGLE_CAPTURE(FramebufferTextureEXT, isCallValid, context, target, attachment, - texturePacked, level); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTextureLayerContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint layer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTextureLayer, - "context = %d, target = %s, attachment = %s, texture = %u, level = %d, layer = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level, layer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateFramebufferTextureLayer(context, target, attachment, - texturePacked, level, layer)); - if (isCallValid) - { - context->framebufferTextureLayer(target, attachment, texturePacked, level, layer); - } - ANGLE_CAPTURE(FramebufferTextureLayer, isCallValid, context, target, attachment, - texturePacked, level, layer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FramebufferTextureMultiviewOVRContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint baseViewIndex, - GLsizei numViews) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFramebufferTextureMultiviewOVR, - "context = %d, target = %s, attachment = %s, texture = %u, level = %d, baseViewIndex = " - "%d, numViews = %d", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level, - baseViewIndex, numViews); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateFramebufferTextureMultiviewOVR(context, target, attachment, texturePacked, - level, baseViewIndex, numViews)); - if (isCallValid) - { - context->framebufferTextureMultiview(target, attachment, texturePacked, level, - baseViewIndex, numViews); - } - ANGLE_CAPTURE(FramebufferTextureMultiviewOVR, isCallValid, context, target, attachment, - texturePacked, level, baseViewIndex, numViews); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FrontFaceContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFrontFace, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::FrontFaceDirection, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateFrontFace(context, mode)); - if (isCallValid) - { - context->frontFace(mode); - } - ANGLE_CAPTURE(FrontFace, isCallValid, context, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FrustumfContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFrustumf, "context = %d, l = %f, r = %f, b = %f, t = %f, n = %f, f = %f", - CID(context), l, r, b, t, n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFrustumf(context, l, r, b, t, n, f)); - if (isCallValid) - { - context->frustumf(l, r, b, t, n, f); - } - ANGLE_CAPTURE(Frustumf, isCallValid, context, l, r, b, t, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_FrustumxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLFrustumx, - "context = %d, l = 0x%X, r = 0x%X, b = 0x%X, t = 0x%X, n = 0x%X, f = 0x%X", CID(context), - l, r, b, t, n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateFrustumx(context, l, r, b, t, n, f)); - if (isCallValid) - { - context->frustumx(l, r, b, t, n, f); - } - ANGLE_CAPTURE(Frustumx, isCallValid, context, l, r, b, t, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenBuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *buffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenBuffers, "context = %d, n = %d, buffers = 0x%016" PRIxPTR "", CID(context), - n, (uintptr_t)buffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferID *buffersPacked = PackParam(buffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenBuffers(context, n, buffersPacked)); - if (isCallValid) - { - context->genBuffers(n, buffersPacked); - } - ANGLE_CAPTURE(GenBuffers, isCallValid, context, n, buffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenFencesNVContextANGLE(GLeglContext ctx, GLsizei n, GLuint *fences) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenFencesNV, "context = %d, n = %d, fences = 0x%016" PRIxPTR "", CID(context), - n, (uintptr_t)fences); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID *fencesPacked = PackParam(fences); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenFencesNV(context, n, fencesPacked)); - if (isCallValid) - { - context->genFencesNV(n, fencesPacked); - } - ANGLE_CAPTURE(GenFencesNV, isCallValid, context, n, fencesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenFramebuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *framebuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenFramebuffers, "context = %d, n = %d, framebuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)framebuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID *framebuffersPacked = PackParam(framebuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenFramebuffers(context, n, framebuffersPacked)); - if (isCallValid) - { - context->genFramebuffers(n, framebuffersPacked); - } - ANGLE_CAPTURE(GenFramebuffers, isCallValid, context, n, framebuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenFramebuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *framebuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenFramebuffersOES, "context = %d, n = %d, framebuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)framebuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID *framebuffersPacked = PackParam(framebuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenFramebuffersOES(context, n, framebuffersPacked)); - if (isCallValid) - { - context->genFramebuffers(n, framebuffersPacked); - } - ANGLE_CAPTURE(GenFramebuffersOES, isCallValid, context, n, framebuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenProgramPipelinesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *pipelines) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenProgramPipelines, "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)pipelines); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID *pipelinesPacked = PackParam(pipelines); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenProgramPipelines(context, n, pipelinesPacked)); - if (isCallValid) - { - context->genProgramPipelines(n, pipelinesPacked); - } - ANGLE_CAPTURE(GenProgramPipelines, isCallValid, context, n, pipelinesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *pipelines) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenProgramPipelinesEXT, "context = %d, n = %d, pipelines = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)pipelines); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID *pipelinesPacked = PackParam(pipelines); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenProgramPipelinesEXT(context, n, pipelinesPacked)); - if (isCallValid) - { - context->genProgramPipelines(n, pipelinesPacked); - } - ANGLE_CAPTURE(GenProgramPipelinesEXT, isCallValid, context, n, pipelinesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenQueriesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenQueries, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", CID(context), n, - (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGenQueries(context, n, idsPacked)); - if (isCallValid) - { - context->genQueries(n, idsPacked); - } - ANGLE_CAPTURE(GenQueries, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenQueriesEXT, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", CID(context), - n, (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenQueriesEXT(context, n, idsPacked)); - if (isCallValid) - { - context->genQueries(n, idsPacked); - } - ANGLE_CAPTURE(GenQueriesEXT, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenRenderbuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *renderbuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenRenderbuffers, "context = %d, n = %d, renderbuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)renderbuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenRenderbuffers(context, n, renderbuffersPacked)); - if (isCallValid) - { - context->genRenderbuffers(n, renderbuffersPacked); - } - ANGLE_CAPTURE(GenRenderbuffers, isCallValid, context, n, renderbuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *renderbuffers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenRenderbuffersOES, "context = %d, n = %d, renderbuffers = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)renderbuffers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID *renderbuffersPacked = PackParam(renderbuffers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGenRenderbuffersOES(context, n, renderbuffersPacked)); - if (isCallValid) - { - context->genRenderbuffers(n, renderbuffersPacked); - } - ANGLE_CAPTURE(GenRenderbuffersOES, isCallValid, context, n, renderbuffersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenSamplersContextANGLE(GLeglContext ctx, GLsizei count, GLuint *samplers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenSamplers, "context = %d, count = %d, samplers = 0x%016" PRIxPTR "", - CID(context), count, (uintptr_t)samplers); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID *samplersPacked = PackParam(samplers); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenSamplers(context, count, samplersPacked)); - if (isCallValid) - { - context->genSamplers(count, samplersPacked); - } - ANGLE_CAPTURE(GenSamplers, isCallValid, context, count, samplersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenSemaphoresEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *semaphores) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenSemaphoresEXT, "context = %d, n = %d, semaphores = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)semaphores); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID *semaphoresPacked = PackParam(semaphores); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenSemaphoresEXT(context, n, semaphoresPacked)); - if (isCallValid) - { - context->genSemaphores(n, semaphoresPacked); - } - ANGLE_CAPTURE(GenSemaphoresEXT, isCallValid, context, n, semaphoresPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenTexturesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *textures) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenTextures, "context = %d, n = %d, textures = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)textures); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID *texturesPacked = PackParam(textures); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenTextures(context, n, texturesPacked)); - if (isCallValid) - { - context->genTextures(n, texturesPacked); - } - ANGLE_CAPTURE(GenTextures, isCallValid, context, n, texturesPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenTransformFeedbacksContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenTransformFeedbacks, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)ids); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TransformFeedbackID *idsPacked = PackParam(ids); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenTransformFeedbacks(context, n, idsPacked)); - if (isCallValid) - { - context->genTransformFeedbacks(n, idsPacked); - } - ANGLE_CAPTURE(GenTransformFeedbacks, isCallValid, context, n, idsPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenVertexArraysContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenVertexArrays, "context = %d, n = %d, arrays = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)arrays); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID *arraysPacked = PackParam(arrays); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenVertexArrays(context, n, arraysPacked)); - if (isCallValid) - { - context->genVertexArrays(n, arraysPacked); - } - ANGLE_CAPTURE(GenVertexArrays, isCallValid, context, n, arraysPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenVertexArraysOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenVertexArraysOES, "context = %d, n = %d, arrays = 0x%016" PRIxPTR "", - CID(context), n, (uintptr_t)arrays); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID *arraysPacked = PackParam(arrays); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenVertexArraysOES(context, n, arraysPacked)); - if (isCallValid) - { - context->genVertexArrays(n, arraysPacked); - } - ANGLE_CAPTURE(GenVertexArraysOES, isCallValid, context, n, arraysPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenerateMipmapContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenerateMipmap, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenerateMipmap(context, targetPacked)); - if (isCallValid) - { - context->generateMipmap(targetPacked); - } - ANGLE_CAPTURE(GenerateMipmap, isCallValid, context, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GenerateMipmapOESContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGenerateMipmapOES, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGenerateMipmapOES(context, targetPacked)); - if (isCallValid) - { - context->generateMipmap(targetPacked); - } - ANGLE_CAPTURE(GenerateMipmapOES, isCallValid, context, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveAttribContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetActiveAttrib, - "context = %d, program = %u, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", size = 0x%016" PRIxPTR ", type = 0x%016" PRIxPTR ", name = 0x%016" PRIxPTR "", - CID(context), program, index, bufSize, (uintptr_t)length, (uintptr_t)size, - (uintptr_t)type, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveAttrib(context, programPacked, index, bufSize, length, - size, type, name)); - if (isCallValid) - { - context->getActiveAttrib(programPacked, index, bufSize, length, size, type, name); - } - ANGLE_CAPTURE(GetActiveAttrib, isCallValid, context, programPacked, index, bufSize, length, - size, type, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveUniformContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetActiveUniform, - "context = %d, program = %u, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", size = 0x%016" PRIxPTR ", type = 0x%016" PRIxPTR ", name = 0x%016" PRIxPTR "", - CID(context), program, index, bufSize, (uintptr_t)length, (uintptr_t)size, - (uintptr_t)type, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniform(context, programPacked, index, bufSize, length, - size, type, name)); - if (isCallValid) - { - context->getActiveUniform(programPacked, index, bufSize, length, size, type, name); - } - ANGLE_CAPTURE(GetActiveUniform, isCallValid, context, programPacked, index, bufSize, length, - size, type, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveUniformBlockNameContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLsizei bufSize, - GLsizei *length, - GLchar *uniformBlockName) -{ - Context *context = static_cast(ctx); - EVENT( - context, GLGetActiveUniformBlockName, - "context = %d, program = %u, uniformBlockIndex = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", uniformBlockName = 0x%016" PRIxPTR "", - CID(context), program, uniformBlockIndex, bufSize, (uintptr_t)length, - (uintptr_t)uniformBlockName); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetActiveUniformBlockName(context, programPacked, uniformBlockIndexPacked, - bufSize, length, uniformBlockName)); - if (isCallValid) - { - context->getActiveUniformBlockName(programPacked, uniformBlockIndexPacked, bufSize, - length, uniformBlockName); - } - ANGLE_CAPTURE(GetActiveUniformBlockName, isCallValid, context, programPacked, - uniformBlockIndexPacked, bufSize, length, uniformBlockName); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveUniformBlockivContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetActiveUniformBlockiv, - "context = %d, program = %u, uniformBlockIndex = %u, pname = %s, params = 0x%016" PRIxPTR - "", - CID(context), program, uniformBlockIndex, - GLenumToString(GLenumGroup::UniformBlockPName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniformBlockiv( - context, programPacked, uniformBlockIndexPacked, pname, params)); - if (isCallValid) - { - context->getActiveUniformBlockiv(programPacked, uniformBlockIndexPacked, pname, params); - } - ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, programPacked, - uniformBlockIndexPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveUniformsivContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLuint *uniformIndices, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetActiveUniformsiv, - "context = %d, program = %u, uniformCount = %d, uniformIndices = 0x%016" PRIxPTR - ", pname = %s, params = 0x%016" PRIxPTR "", - CID(context), program, uniformCount, (uintptr_t)uniformIndices, - GLenumToString(GLenumGroup::UniformPName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetActiveUniformsiv(context, programPacked, uniformCount, - uniformIndices, pname, params)); - if (isCallValid) - { - context->getActiveUniformsiv(programPacked, uniformCount, uniformIndices, pname, - params); - } - ANGLE_CAPTURE(GetActiveUniformsiv, isCallValid, context, programPacked, uniformCount, - uniformIndices, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetAttachedShadersContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei maxCount, - GLsizei *count, - GLuint *shaders) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetAttachedShaders, - "context = %d, program = %u, maxCount = %d, count = 0x%016" PRIxPTR - ", shaders = 0x%016" PRIxPTR "", - CID(context), program, maxCount, (uintptr_t)count, (uintptr_t)shaders); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - ShaderProgramID *shadersPacked = PackParam(shaders); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetAttachedShaders(context, programPacked, maxCount, count, shadersPacked)); - if (isCallValid) - { - context->getAttachedShaders(programPacked, maxCount, count, shadersPacked); - } - ANGLE_CAPTURE(GetAttachedShaders, isCallValid, context, programPacked, maxCount, count, - shadersPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLint GL_APIENTRY GL_GetAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetAttribLocation, "context = %d, program = %u, name = 0x%016" PRIxPTR "", - CID(context), program, (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetAttribLocation(context, programPacked, name)); - if (isCallValid) - { - returnValue = context->getAttribLocation(programPacked, name); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetAttribLocation, isCallValid, context, programPacked, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetBooleani_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLboolean *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBooleani_v, - "context = %d, target = %s, index = %u, data = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), index, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetBooleani_v(context, target, index, data)); - if (isCallValid) - { - context->getBooleani_v(target, index, data); - } - ANGLE_CAPTURE(GetBooleani_v, isCallValid, context, target, index, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBooleanvContextANGLE(GLeglContext ctx, GLenum pname, GLboolean *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBooleanv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetBooleanv(context, pname, data)); - if (isCallValid) - { - context->getBooleanv(pname, data); - } - ANGLE_CAPTURE(GetBooleanv, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferParameteri64vContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferParameteri64v, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteri64v(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getBufferParameteri64v(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetBufferParameteri64v, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferParameteriv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteriv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getBufferParameteriv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetBufferParameteriv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferPointervContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferPointerv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointerv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getBufferPointerv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetBufferPointerv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferPointervOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferPointervOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointervOES(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getBufferPointerv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetBufferPointervOES, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetClipPlanefContextANGLE(GLeglContext ctx, GLenum plane, GLfloat *equation) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetClipPlanef, "context = %d, plane = %s, equation = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ClipPlaneName, plane), (uintptr_t)equation); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetClipPlanef(context, plane, equation)); - if (isCallValid) - { - context->getClipPlanef(plane, equation); - } - ANGLE_CAPTURE(GetClipPlanef, isCallValid, context, plane, equation); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, GLfixed *equation) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetClipPlanex, "context = %d, plane = %s, equation = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ClipPlaneName, plane), (uintptr_t)equation); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetClipPlanex(context, plane, equation)); - if (isCallValid) - { - context->getClipPlanex(plane, equation); - } - ANGLE_CAPTURE(GetClipPlanex, isCallValid, context, plane, equation); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLuint GL_APIENTRY GL_GetDebugMessageLogContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetDebugMessageLog, - "context = %d, count = %u, bufSize = %d, sources = 0x%016" PRIxPTR - ", types = 0x%016" PRIxPTR ", ids = 0x%016" PRIxPTR ", severities = 0x%016" PRIxPTR - ", lengths = 0x%016" PRIxPTR ", messageLog = 0x%016" PRIxPTR "", - CID(context), count, bufSize, (uintptr_t)sources, (uintptr_t)types, (uintptr_t)ids, - (uintptr_t)severities, (uintptr_t)lengths, (uintptr_t)messageLog); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetDebugMessageLog(context, count, bufSize, sources, types, ids, - severities, lengths, messageLog)); - if (isCallValid) - { - returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids, - severities, lengths, messageLog); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetDebugMessageLog, isCallValid, context, count, bufSize, sources, types, ids, - severities, lengths, messageLog, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLuint GL_APIENTRY GL_GetDebugMessageLogKHRContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetDebugMessageLogKHR, - "context = %d, count = %u, bufSize = %d, sources = 0x%016" PRIxPTR - ", types = 0x%016" PRIxPTR ", ids = 0x%016" PRIxPTR ", severities = 0x%016" PRIxPTR - ", lengths = 0x%016" PRIxPTR ", messageLog = 0x%016" PRIxPTR "", - CID(context), count, bufSize, (uintptr_t)sources, (uintptr_t)types, (uintptr_t)ids, - (uintptr_t)severities, (uintptr_t)lengths, (uintptr_t)messageLog); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetDebugMessageLogKHR(context, count, bufSize, sources, types, - ids, severities, lengths, messageLog)); - if (isCallValid) - { - returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids, - severities, lengths, messageLog); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetDebugMessageLogKHR, isCallValid, context, count, bufSize, sources, types, - ids, severities, lengths, messageLog, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLenum GL_APIENTRY GL_GetErrorContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetError, "context = %d", CID(context)); - - GLenum returnValue; - if (context) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetError(context)); - if (isCallValid) - { - returnValue = context->getError(); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetError, isCallValid, context, returnValue); - } - else - { - - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetFenceivNVContextANGLE(GLeglContext ctx, - GLuint fence, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFenceivNV, - "context = %d, fence = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), fence, - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID fencePacked = PackParam(fence); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFenceivNV(context, fencePacked, pname, params)); - if (isCallValid) - { - context->getFenceivNV(fencePacked, pname, params); - } - ANGLE_CAPTURE(GetFenceivNV, isCallValid, context, fencePacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFixedvContextANGLE(GLeglContext ctx, GLenum pname, GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFixedv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetFixedv(context, pname, params)); - if (isCallValid) - { - context->getFixedv(pname, params); - } - ANGLE_CAPTURE(GetFixedv, isCallValid, context, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFloatvContextANGLE(GLeglContext ctx, GLenum pname, GLfloat *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFloatv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetFloatv(context, pname, data)); - if (isCallValid) - { - context->getFloatv(pname, data); - } - ANGLE_CAPTURE(GetFloatv, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLint GL_APIENTRY GL_GetFragDataIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFragDataIndexEXT, "context = %d, program = %u, name = 0x%016" PRIxPTR "", - CID(context), program, (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFragDataIndexEXT(context, programPacked, name)); - if (isCallValid) - { - returnValue = context->getFragDataIndex(programPacked, name); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetFragDataIndexEXT, isCallValid, context, programPacked, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLint GL_APIENTRY GL_GetFragDataLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFragDataLocation, "context = %d, program = %u, name = 0x%016" PRIxPTR "", - CID(context), program, (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFragDataLocation(context, programPacked, name)); - if (isCallValid) - { - returnValue = context->getFragDataLocation(programPacked, name); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetFragDataLocation, isCallValid, context, programPacked, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetFramebufferAttachmentParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFramebufferAttachmentParameteriv, - "context = %d, target = %s, attachment = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::FramebufferAttachmentParameterName, pname), - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferAttachmentParameteriv( - context, target, attachment, pname, params)); - if (isCallValid) - { - context->getFramebufferAttachmentParameteriv(target, attachment, pname, params); - } - ANGLE_CAPTURE(GetFramebufferAttachmentParameteriv, isCallValid, context, target, attachment, - pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFramebufferAttachmentParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFramebufferAttachmentParameterivOES, - "context = %d, target = %s, attachment = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachment, attachment), - GLenumToString(GLenumGroup::FramebufferAttachmentParameterName, pname), - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferAttachmentParameterivOES( - context, target, attachment, pname, params)); - if (isCallValid) - { - context->getFramebufferAttachmentParameteriv(target, attachment, pname, params); - } - ANGLE_CAPTURE(GetFramebufferAttachmentParameterivOES, isCallValid, context, target, - attachment, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFramebufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFramebufferParameteriv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::FramebufferTarget, target), - GLenumToString(GLenumGroup::FramebufferAttachmentParameterName, pname), - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFramebufferParameteriv(context, target, pname, params)); - if (isCallValid) - { - context->getFramebufferParameteriv(target, pname, params); - } - ANGLE_CAPTURE(GetFramebufferParameteriv, isCallValid, context, target, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLenum GL_APIENTRY GL_GetGraphicsResetStatusContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetGraphicsResetStatus, "context = %d", CID(context)); - - GLenum returnValue; - if (context) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetGraphicsResetStatus(context)); - if (isCallValid) - { - returnValue = context->getGraphicsResetStatus(); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetGraphicsResetStatus, isCallValid, context, returnValue); - } - else - { - - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLenum GL_APIENTRY GL_GetGraphicsResetStatusEXTContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetGraphicsResetStatusEXT, "context = %d", CID(context)); - - GLenum returnValue; - if (context) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetGraphicsResetStatusEXT(context)); - if (isCallValid) - { - returnValue = context->getGraphicsResetStatus(); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetGraphicsResetStatusEXT, isCallValid, context, returnValue); - } - else - { - - returnValue = - GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetInteger64i_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint64 *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInteger64i_v, - "context = %d, target = %s, index = %u, data = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TypeEnum, target), index, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetInteger64i_v(context, target, index, data)); - if (isCallValid) - { - context->getInteger64i_v(target, index, data); - } - ANGLE_CAPTURE(GetInteger64i_v, isCallValid, context, target, index, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInteger64vContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInteger64v, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetInteger64v(context, pname, data)); - if (isCallValid) - { - context->getInteger64v(pname, data); - } - ANGLE_CAPTURE(GetInteger64v, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInteger64vEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInteger64vEXT, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetInteger64vEXT(context, pname, data)); - if (isCallValid) - { - context->getInteger64v(pname, data); - } - ANGLE_CAPTURE(GetInteger64vEXT, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetIntegeri_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetIntegeri_v, - "context = %d, target = %s, index = %u, data = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TypeEnum, target), index, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetIntegeri_v(context, target, index, data)); - if (isCallValid) - { - context->getIntegeri_v(target, index, data); - } - ANGLE_CAPTURE(GetIntegeri_v, isCallValid, context, target, index, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetIntegervContextANGLE(GLeglContext ctx, GLenum pname, GLint *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetIntegerv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetIntegerv(context, pname, data)); - if (isCallValid) - { - context->getIntegerv(pname, data); - } - ANGLE_CAPTURE(GetIntegerv, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInternalformativContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInternalformativ, - "context = %d, target = %s, internalformat = %s, pname = %s, bufSize = %d, params = " - "0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), - GLenumToString(GLenumGroup::InternalFormatPName, pname), bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetInternalformativ(context, target, internalformat, pname, bufSize, params)); - if (isCallValid) - { - context->getInternalformativ(target, internalformat, pname, bufSize, params); - } - ANGLE_CAPTURE(GetInternalformativ, isCallValid, context, target, internalformat, pname, - bufSize, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetLightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetLightfv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetLightfv(context, light, pnamePacked, params)); - if (isCallValid) - { - context->getLightfv(light, pnamePacked, params); - } - ANGLE_CAPTURE(GetLightfv, isCallValid, context, light, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetLightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetLightxv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetLightxv(context, light, pnamePacked, params)); - if (isCallValid) - { - context->getLightxv(light, pnamePacked, params); - } - ANGLE_CAPTURE(GetLightxv, isCallValid, context, light, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMaterialfv, - "context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetMaterialfv(context, face, pnamePacked, params)); - if (isCallValid) - { - context->getMaterialfv(face, pnamePacked, params); - } - ANGLE_CAPTURE(GetMaterialfv, isCallValid, context, face, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMaterialxv, - "context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetMaterialxv(context, face, pnamePacked, params)); - if (isCallValid) - { - context->getMaterialxv(face, pnamePacked, params); - } - ANGLE_CAPTURE(GetMaterialxv, isCallValid, context, face, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMemoryObjectParameterivEXT, - "context = %d, memoryObject = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - memoryObject, GLenumToString(GLenumGroup::MemoryObjectParameterName, pname), - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID memoryObjectPacked = PackParam(memoryObject); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetMemoryObjectParameterivEXT(context, memoryObjectPacked, pname, params)); - if (isCallValid) - { - context->getMemoryObjectParameteriv(memoryObjectPacked, pname, params); - } - ANGLE_CAPTURE(GetMemoryObjectParameterivEXT, isCallValid, context, memoryObjectPacked, - pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMultisamplefvContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMultisamplefv, - "context = %d, pname = %s, index = %u, val = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, pname), index, (uintptr_t)val); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetMultisamplefv(context, pname, index, val)); - if (isCallValid) - { - context->getMultisamplefv(pname, index, val); - } - ANGLE_CAPTURE(GetMultisamplefv, isCallValid, context, pname, index, val); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetObjectLabel, - "context = %d, identifier = %s, name = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, identifier), name, bufSize, - (uintptr_t)length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetObjectLabel(context, identifier, name, bufSize, length, label)); - if (isCallValid) - { - context->getObjectLabel(identifier, name, bufSize, length, label); - } - ANGLE_CAPTURE(GetObjectLabel, isCallValid, context, identifier, name, bufSize, length, - label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetObjectLabelEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetObjectLabelEXT, - "context = %d, type = %s, object = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, type), object, bufSize, - (uintptr_t)length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetObjectLabelEXT(context, type, object, bufSize, length, label)); - if (isCallValid) - { - context->getObjectLabel(type, object, bufSize, length, label); - } - ANGLE_CAPTURE(GetObjectLabelEXT, isCallValid, context, type, object, bufSize, length, - label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetObjectLabelKHR, - "context = %d, identifier = %s, name = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, identifier), name, bufSize, - (uintptr_t)length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetObjectLabelKHR(context, identifier, name, bufSize, length, label)); - if (isCallValid) - { - context->getObjectLabel(identifier, name, bufSize, length, label); - } - ANGLE_CAPTURE(GetObjectLabelKHR, isCallValid, context, identifier, name, bufSize, length, - label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetObjectPtrLabel, - "context = %d, ptr = 0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR - ", label = 0x%016" PRIxPTR "", - CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetObjectPtrLabel(context, ptr, bufSize, length, label)); - if (isCallValid) - { - context->getObjectPtrLabel(ptr, bufSize, length, label); - } - ANGLE_CAPTURE(GetObjectPtrLabel, isCallValid, context, ptr, bufSize, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetObjectPtrLabelKHR, - "context = %d, ptr = 0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR - ", label = 0x%016" PRIxPTR "", - CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetObjectPtrLabelKHR(context, ptr, bufSize, length, label)); - if (isCallValid) - { - context->getObjectPtrLabel(ptr, bufSize, length, label); - } - ANGLE_CAPTURE(GetObjectPtrLabelKHR, isCallValid, context, ptr, bufSize, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetPointervContextANGLE(GLeglContext ctx, GLenum pname, void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetPointerv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPointervPName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetPointerv(context, pname, params)); - if (isCallValid) - { - context->getPointerv(pname, params); - } - ANGLE_CAPTURE(GetPointerv, isCallValid, context, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetPointervKHRContextANGLE(GLeglContext ctx, GLenum pname, void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetPointervKHR, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetPointervKHR(context, pname, params)); - if (isCallValid) - { - context->getPointerv(pname, params); - } - ANGLE_CAPTURE(GetPointervKHR, isCallValid, context, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramBinary, - "context = %d, program = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", binaryFormat = 0x%016" PRIxPTR ", binary = 0x%016" PRIxPTR "", - CID(context), program, bufSize, (uintptr_t)length, (uintptr_t)binaryFormat, - (uintptr_t)binary); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetProgramBinary(context, programPacked, bufSize, - length, binaryFormat, binary)); - if (isCallValid) - { - context->getProgramBinary(programPacked, bufSize, length, binaryFormat, binary); - } - ANGLE_CAPTURE(GetProgramBinary, isCallValid, context, programPacked, bufSize, length, - binaryFormat, binary); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramBinaryOES, - "context = %d, program = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", binaryFormat = 0x%016" PRIxPTR ", binary = 0x%016" PRIxPTR "", - CID(context), program, bufSize, (uintptr_t)length, (uintptr_t)binaryFormat, - (uintptr_t)binary); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramBinaryOES(context, programPacked, bufSize, length, - binaryFormat, binary)); - if (isCallValid) - { - context->getProgramBinary(programPacked, bufSize, length, binaryFormat, binary); - } - ANGLE_CAPTURE(GetProgramBinaryOES, isCallValid, context, programPacked, bufSize, length, - binaryFormat, binary); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramInfoLogContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramInfoLog, - "context = %d, program = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", infoLog = 0x%016" PRIxPTR "", - CID(context), program, bufSize, (uintptr_t)length, (uintptr_t)infoLog); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramInfoLog(context, programPacked, bufSize, length, infoLog)); - if (isCallValid) - { - context->getProgramInfoLog(programPacked, bufSize, length, infoLog); - } - ANGLE_CAPTURE(GetProgramInfoLog, isCallValid, context, programPacked, bufSize, length, - infoLog); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramInterfaceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramInterfaceiv, - "context = %d, program = %u, programInterface = %s, pname = %s, params = 0x%016" PRIxPTR - "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - GLenumToString(GLenumGroup::ProgramInterfacePName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramInterfaceiv(context, programPacked, programInterface, - pname, params)); - if (isCallValid) - { - context->getProgramInterfaceiv(programPacked, programInterface, pname, params); - } - ANGLE_CAPTURE(GetProgramInterfaceiv, isCallValid, context, programPacked, programInterface, - pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramPipelineInfoLogContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramPipelineInfoLog, - "context = %d, pipeline = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", infoLog = 0x%016" PRIxPTR "", - CID(context), pipeline, bufSize, (uintptr_t)length, (uintptr_t)infoLog); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramPipelineInfoLog(context, pipelinePacked, bufSize, length, infoLog)); - if (isCallValid) - { - context->getProgramPipelineInfoLog(pipelinePacked, bufSize, length, infoLog); - } - ANGLE_CAPTURE(GetProgramPipelineInfoLog, isCallValid, context, pipelinePacked, bufSize, - length, infoLog); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramPipelineInfoLogEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramPipelineInfoLogEXT, - "context = %d, pipeline = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", infoLog = 0x%016" PRIxPTR "", - CID(context), pipeline, bufSize, (uintptr_t)length, (uintptr_t)infoLog); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetProgramPipelineInfoLogEXT( - context, pipelinePacked, bufSize, length, infoLog)); - if (isCallValid) - { - context->getProgramPipelineInfoLog(pipelinePacked, bufSize, length, infoLog); - } - ANGLE_CAPTURE(GetProgramPipelineInfoLogEXT, isCallValid, context, pipelinePacked, bufSize, - length, infoLog); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramPipelineivContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramPipelineiv, - "context = %d, pipeline = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - pipeline, GLenumToString(GLenumGroup::PipelineParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramPipelineiv(context, pipelinePacked, pname, params)); - if (isCallValid) - { - context->getProgramPipelineiv(pipelinePacked, pname, params); - } - ANGLE_CAPTURE(GetProgramPipelineiv, isCallValid, context, pipelinePacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramPipelineivEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramPipelineivEXT, - "context = %d, pipeline = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - pipeline, GLenumToString(GLenumGroup::PipelineParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramPipelineivEXT(context, pipelinePacked, pname, params)); - if (isCallValid) - { - context->getProgramPipelineiv(pipelinePacked, pname, params); - } - ANGLE_CAPTURE(GetProgramPipelineivEXT, isCallValid, context, pipelinePacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLuint GL_APIENTRY GL_GetProgramResourceIndexContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramResourceIndex, - "context = %d, program = %u, programInterface = %s, name = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - (uintptr_t)name); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramResourceIndex(context, programPacked, programInterface, name)); - if (isCallValid) - { - returnValue = context->getProgramResourceIndex(programPacked, programInterface, name); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetProgramResourceIndex, isCallValid, context, programPacked, - programInterface, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLint GL_APIENTRY GL_GetProgramResourceLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramResourceLocation, - "context = %d, program = %u, programInterface = %s, name = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramResourceLocation(context, programPacked, programInterface, name)); - if (isCallValid) - { - returnValue = - context->getProgramResourceLocation(programPacked, programInterface, name); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetProgramResourceLocation, isCallValid, context, programPacked, - programInterface, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = - GetDefaultReturnValue(); - } - return returnValue; -} - -GLint GL_APIENTRY GL_GetProgramResourceLocationIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramResourceLocationIndexEXT, - "context = %d, program = %u, programInterface = %s, name = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetProgramResourceLocationIndexEXT( - context, programPacked, programInterface, name)); - if (isCallValid) - { - returnValue = - context->getProgramResourceLocationIndex(programPacked, programInterface, name); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetProgramResourceLocationIndexEXT, isCallValid, context, programPacked, - programInterface, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = - GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetProgramResourceNameContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramResourceName, - "context = %d, program = %u, programInterface = %s, index = %u, bufSize = %d, length = " - "0x%016" PRIxPTR ", name = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - index, bufSize, (uintptr_t)length, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramResourceName(context, programPacked, programInterface, - index, bufSize, length, name)); - if (isCallValid) - { - context->getProgramResourceName(programPacked, programInterface, index, bufSize, length, - name); - } - ANGLE_CAPTURE(GetProgramResourceName, isCallValid, context, programPacked, programInterface, - index, bufSize, length, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramResourceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei propCount, - const GLenum *props, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramResourceiv, - "context = %d, program = %u, programInterface = %s, index = %u, propCount = %d, props = " - "0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::ProgramInterface, programInterface), - index, propCount, (uintptr_t)props, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramResourceiv(context, programPacked, programInterface, index, - propCount, props, bufSize, length, params)); - if (isCallValid) - { - context->getProgramResourceiv(programPacked, programInterface, index, propCount, props, - bufSize, length, params); - } - ANGLE_CAPTURE(GetProgramResourceiv, isCallValid, context, programPacked, programInterface, - index, propCount, props, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramiv, - "context = %d, program = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - program, GLenumToString(GLenumGroup::ProgramPropertyARB, pname), (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramiv(context, programPacked, pname, params)); - if (isCallValid) - { - context->getProgramiv(programPacked, pname, params); - } - ANGLE_CAPTURE(GetProgramiv, isCallValid, context, programPacked, pname, params); - } - else - {} -} - -void GL_APIENTRY GL_GetQueryObjecti64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjecti64vEXT, - "context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id, - GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjecti64vEXT(context, idPacked, pname, params)); - if (isCallValid) - { - context->getQueryObjecti64v(idPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryObjecti64vEXT, isCallValid, context, idPacked, pname, params); - } - else - {} -} - -void GL_APIENTRY GL_GetQueryObjectivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectivEXT, - "context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id, - GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectivEXT(context, idPacked, pname, params)); - if (isCallValid) - { - context->getQueryObjectiv(idPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryObjectivEXT, isCallValid, context, idPacked, pname, params); - } - else - {} -} - -void GL_APIENTRY GL_GetQueryObjectui64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectui64vEXT, - "context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id, - GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectui64vEXT(context, idPacked, pname, params)); - if (isCallValid) - { - context->getQueryObjectui64v(idPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryObjectui64vEXT, isCallValid, context, idPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryObjectuivContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectuiv, - "context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id, - GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectuiv(context, idPacked, pname, params)); - if (isCallValid) - { - context->getQueryObjectuiv(idPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryObjectuiv, isCallValid, context, idPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryObjectuivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectuivEXT, - "context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id, - GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryObjectuivEXT(context, idPacked, pname, params)); - if (isCallValid) - { - context->getQueryObjectuiv(idPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryObjectuivEXT, isCallValid, context, idPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryiv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target), - GLenumToString(GLenumGroup::QueryParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryiv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getQueryiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryiv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryivEXT, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::QueryTarget, target), - GLenumToString(GLenumGroup::QueryParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetQueryivEXT(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getQueryiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetQueryivEXT, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetRenderbufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetRenderbufferParameteriv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::RenderbufferTarget, target), - GLenumToString(GLenumGroup::RenderbufferParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetRenderbufferParameteriv(context, target, pname, params)); - if (isCallValid) - { - context->getRenderbufferParameteriv(target, pname, params); - } - ANGLE_CAPTURE(GetRenderbufferParameteriv, isCallValid, context, target, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetRenderbufferParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetRenderbufferParameterivOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::RenderbufferTarget, target), - GLenumToString(GLenumGroup::RenderbufferParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetRenderbufferParameterivOES(context, target, pname, params)); - if (isCallValid) - { - context->getRenderbufferParameteriv(target, pname, params); - } - ANGLE_CAPTURE(GetRenderbufferParameterivOES, isCallValid, context, target, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIiv, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIiv(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIiv, isCallValid, context, samplerPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIivEXT, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIivEXT(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIivEXT, isCallValid, context, samplerPacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIivOES, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIivOES(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIivOES, isCallValid, context, samplerPacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIuiv, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIuiv(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIuiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIuiv, isCallValid, context, samplerPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIuivEXT, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIuivEXT(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIuiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIuivEXT, isCallValid, context, samplerPacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIuivOES, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSamplerParameterIuivOES(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterIuiv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterIuivOES, isCallValid, context, samplerPacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterfv, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterfv(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameterfv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameterfv, isCallValid, context, samplerPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameteriv, - "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameteriv(context, samplerPacked, pname, params)); - if (isCallValid) - { - context->getSamplerParameteriv(samplerPacked, pname, params); - } - ANGLE_CAPTURE(GetSamplerParameteriv, isCallValid, context, samplerPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - GLuint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSemaphoreParameterui64vEXT, - "context = %d, semaphore = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - semaphore, GLenumToString(GLenumGroup::SemaphoreParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetSemaphoreParameterui64vEXT(context, semaphorePacked, pname, params)); - if (isCallValid) - { - context->getSemaphoreParameterui64v(semaphorePacked, pname, params); - } - ANGLE_CAPTURE(GetSemaphoreParameterui64vEXT, isCallValid, context, semaphorePacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetShaderInfoLogContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetShaderInfoLog, - "context = %d, shader = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", infoLog = 0x%016" PRIxPTR "", - CID(context), shader, bufSize, (uintptr_t)length, (uintptr_t)infoLog); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetShaderInfoLog(context, shaderPacked, bufSize, length, infoLog)); - if (isCallValid) - { - context->getShaderInfoLog(shaderPacked, bufSize, length, infoLog); - } - ANGLE_CAPTURE(GetShaderInfoLog, isCallValid, context, shaderPacked, bufSize, length, - infoLog); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetShaderPrecisionFormatContextANGLE(GLeglContext ctx, - GLenum shadertype, - GLenum precisiontype, - GLint *range, - GLint *precision) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetShaderPrecisionFormat, - "context = %d, shadertype = %s, precisiontype = %s, range = 0x%016" PRIxPTR - ", precision = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ShaderType, shadertype), - GLenumToString(GLenumGroup::PrecisionType, precisiontype), (uintptr_t)range, - (uintptr_t)precision); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetShaderPrecisionFormat(context, shadertype, precisiontype, - range, precision)); - if (isCallValid) - { - context->getShaderPrecisionFormat(shadertype, precisiontype, range, precision); - } - ANGLE_CAPTURE(GetShaderPrecisionFormat, isCallValid, context, shadertype, precisiontype, - range, precision); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *source) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetShaderSource, - "context = %d, shader = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", source = 0x%016" PRIxPTR "", - CID(context), shader, bufSize, (uintptr_t)length, (uintptr_t)source); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetShaderSource(context, shaderPacked, bufSize, length, source)); - if (isCallValid) - { - context->getShaderSource(shaderPacked, bufSize, length, source); - } - ANGLE_CAPTURE(GetShaderSource, isCallValid, context, shaderPacked, bufSize, length, source); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetShaderivContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetShaderiv, - "context = %d, shader = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), shader, - GLenumToString(GLenumGroup::ShaderParameterName, pname), (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetShaderiv(context, shaderPacked, pname, params)); - if (isCallValid) - { - context->getShaderiv(shaderPacked, pname, params); - } - ANGLE_CAPTURE(GetShaderiv, isCallValid, context, shaderPacked, pname, params); - } - else - {} -} - -const GLubyte *GL_APIENTRY GL_GetStringContextANGLE(GLeglContext ctx, GLenum name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetString, "context = %d, name = %s", CID(context), - GLenumToString(GLenumGroup::StringName, name)); - - const GLubyte *returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetString(context, name)); - if (isCallValid) - { - returnValue = context->getString(name); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetString, isCallValid, context, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -const GLubyte *GL_APIENTRY GL_GetStringiContextANGLE(GLeglContext ctx, GLenum name, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetStringi, "context = %d, name = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::StringName, name), index); - - const GLubyte *returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateGetStringi(context, name, index)); - if (isCallValid) - { - returnValue = context->getStringi(name, index); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetStringi, isCallValid, context, name, index, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetSyncivContextANGLE(GLeglContext ctx, - GLsync sync, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *values) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSynciv, - "context = %d, sync = 0x%016" PRIxPTR - ", pname = %s, bufSize = %d, length = 0x%016" PRIxPTR ", values = 0x%016" PRIxPTR "", - CID(context), (uintptr_t)sync, GLenumToString(GLenumGroup::SyncParameterName, pname), - bufSize, (uintptr_t)length, (uintptr_t)values); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSynciv(context, sync, pname, bufSize, length, values)); - if (isCallValid) - { - context->getSynciv(sync, pname, bufSize, length, values); - } - ANGLE_CAPTURE(GetSynciv, isCallValid, context, sync, pname, bufSize, length, values); - } - else - {} -} - -void GL_APIENTRY GL_GetTexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexEnvfv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexEnvfv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->getTexEnvfv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(GetTexEnvfv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexEnviv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexEnviv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->getTexEnviv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(GetTexEnviv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexEnvxv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexEnvxv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->getTexEnvxv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(GetTexEnvxv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexGenfvOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenfvOES(context, coord, pname, params)); - if (isCallValid) - { - context->getTexGenfv(coord, pname, params); - } - ANGLE_CAPTURE(GetTexGenfvOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexGenivOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenivOES(context, coord, pname, params)); - if (isCallValid) - { - context->getTexGeniv(coord, pname, params); - } - ANGLE_CAPTURE(GetTexGenivOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexGenxvOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTexGenxvOES(context, coord, pname, params)); - if (isCallValid) - { - context->getTexGenxv(coord, pname, params); - } - ANGLE_CAPTURE(GetTexGenxvOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameterfv, - "context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameterfv(context, targetPacked, level, pname, params)); - if (isCallValid) - { - context->getTexLevelParameterfv(targetPacked, level, pname, params); - } - ANGLE_CAPTURE(GetTexLevelParameterfv, isCallValid, context, targetPacked, level, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameteriv, - "context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameteriv(context, targetPacked, level, pname, params)); - if (isCallValid) - { - context->getTexLevelParameteriv(targetPacked, level, pname, params); - } - ANGLE_CAPTURE(GetTexLevelParameteriv, isCallValid, context, targetPacked, level, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIiv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIiv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIiv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIivEXT, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivEXT(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIivEXT, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIivOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivOES(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIivOES, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIuiv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuiv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIuiv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIuivEXT, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivEXT(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIuivEXT, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIuivOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivOES(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterIuivOES, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterfv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterfv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterfv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterfv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameteriv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameteriv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameteriv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameteriv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterxv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterxv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->getTexParameterxv(targetPacked, pname, params); - } - ANGLE_CAPTURE(GetTexParameterxv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTransformFeedbackVaryingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLsizei *size, - GLenum *type, - GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTransformFeedbackVarying, - "context = %d, program = %u, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", size = 0x%016" PRIxPTR ", type = 0x%016" PRIxPTR ", name = 0x%016" PRIxPTR "", - CID(context), program, index, bufSize, (uintptr_t)length, (uintptr_t)size, - (uintptr_t)type, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTransformFeedbackVarying(context, programPacked, index, - bufSize, length, size, type, name)); - if (isCallValid) - { - context->getTransformFeedbackVarying(programPacked, index, bufSize, length, size, type, - name); - } - ANGLE_CAPTURE(GetTransformFeedbackVarying, isCallValid, context, programPacked, index, - bufSize, length, size, type, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTranslatedShaderSourceANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufsize, - GLsizei *length, - GLchar *source) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTranslatedShaderSourceANGLE, - "context = %d, shader = %u, bufsize = %d, length = 0x%016" PRIxPTR - ", source = 0x%016" PRIxPTR "", - CID(context), shader, bufsize, (uintptr_t)length, (uintptr_t)source); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetTranslatedShaderSourceANGLE( - context, shaderPacked, bufsize, length, source)); - if (isCallValid) - { - context->getTranslatedShaderSource(shaderPacked, bufsize, length, source); - } - ANGLE_CAPTURE(GetTranslatedShaderSourceANGLE, isCallValid, context, shaderPacked, bufsize, - length, source); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLuint GL_APIENTRY GL_GetUniformBlockIndexContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *uniformBlockName) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformBlockIndex, - "context = %d, program = %u, uniformBlockName = 0x%016" PRIxPTR "", CID(context), program, - (uintptr_t)uniformBlockName); - - GLuint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformBlockIndex(context, programPacked, uniformBlockName)); - if (isCallValid) - { - returnValue = context->getUniformBlockIndex(programPacked, uniformBlockName); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetUniformBlockIndex, isCallValid, context, programPacked, uniformBlockName, - returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetUniformIndicesContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLchar *const *uniformNames, - GLuint *uniformIndices) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformIndices, - "context = %d, program = %u, uniformCount = %d, uniformNames = 0x%016" PRIxPTR - ", uniformIndices = 0x%016" PRIxPTR "", - CID(context), program, uniformCount, (uintptr_t)uniformNames, (uintptr_t)uniformIndices); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformIndices(context, programPacked, uniformCount, - uniformNames, uniformIndices)); - if (isCallValid) - { - context->getUniformIndices(programPacked, uniformCount, uniformNames, uniformIndices); - } - ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, programPacked, uniformCount, - uniformNames, uniformIndices); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLint GL_APIENTRY GL_GetUniformLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformLocation, "context = %d, program = %u, name = 0x%016" PRIxPTR "", - CID(context), program, (uintptr_t)name); - - GLint returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetUniformLocation(context, programPacked, name)); - if (isCallValid) - { - returnValue = context->getUniformLocation(programPacked, name); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(GetUniformLocation, isCallValid, context, programPacked, name, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_GetUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformfv, - "context = %d, program = %u, location = %d, params = 0x%016" PRIxPTR "", CID(context), - program, location, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformfv(context, programPacked, locationPacked, params)); - if (isCallValid) - { - context->getUniformfv(programPacked, locationPacked, params); - } - ANGLE_CAPTURE(GetUniformfv, isCallValid, context, programPacked, locationPacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformiv, - "context = %d, program = %u, location = %d, params = 0x%016" PRIxPTR "", CID(context), - program, location, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformiv(context, programPacked, locationPacked, params)); - if (isCallValid) - { - context->getUniformiv(programPacked, locationPacked, params); - } - ANGLE_CAPTURE(GetUniformiv, isCallValid, context, programPacked, locationPacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformuiv, - "context = %d, program = %u, location = %d, params = 0x%016" PRIxPTR "", CID(context), - program, location, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformuiv(context, programPacked, locationPacked, params)); - if (isCallValid) - { - context->getUniformuiv(programPacked, locationPacked, params); - } - ANGLE_CAPTURE(GetUniformuiv, isCallValid, context, programPacked, locationPacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUnsignedBytevEXTContextANGLE(GLeglContext ctx, GLenum pname, GLubyte *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUnsignedBytevEXT, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetUnsignedBytevEXT(context, pname, data)); - if (isCallValid) - { - context->getUnsignedBytev(pname, data); - } - ANGLE_CAPTURE(GetUnsignedBytevEXT, isCallValid, context, pname, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUnsignedBytei_vEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLubyte *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUnsignedBytei_vEXT, - "context = %d, target = %s, index = %u, data = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, target), index, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUnsignedBytei_vEXT(context, target, index, data)); - if (isCallValid) - { - context->getUnsignedBytei_v(target, index, data); - } - ANGLE_CAPTURE(GetUnsignedBytei_vEXT, isCallValid, context, target, index, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribIivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribIiv, - "context = %d, index = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), index, - GLenumToString(GLenumGroup::VertexAttribEnum, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribIiv(context, index, pname, params)); - if (isCallValid) - { - context->getVertexAttribIiv(index, pname, params); - } - ANGLE_CAPTURE(GetVertexAttribIiv, isCallValid, context, index, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribIuivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribIuiv, - "context = %d, index = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), index, - GLenumToString(GLenumGroup::VertexAttribEnum, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribIuiv(context, index, pname, params)); - if (isCallValid) - { - context->getVertexAttribIuiv(index, pname, params); - } - ANGLE_CAPTURE(GetVertexAttribIuiv, isCallValid, context, index, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribPointervContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - void **pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribPointerv, - "context = %d, index = %u, pname = %s, pointer = 0x%016" PRIxPTR "", CID(context), index, - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetVertexAttribPointerv(context, index, pname, pointer)); - if (isCallValid) - { - context->getVertexAttribPointerv(index, pname, pointer); - } - ANGLE_CAPTURE(GetVertexAttribPointerv, isCallValid, context, index, pname, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribfvContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribfv, - "context = %d, index = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), index, - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribfv(context, index, pname, params)); - if (isCallValid) - { - context->getVertexAttribfv(index, pname, params); - } - ANGLE_CAPTURE(GetVertexAttribfv, isCallValid, context, index, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribiv, - "context = %d, index = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), index, - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribiv(context, index, pname, params)); - if (isCallValid) - { - context->getVertexAttribiv(index, pname, params); - } - ANGLE_CAPTURE(GetVertexAttribiv, isCallValid, context, index, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformfv, - "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformfv(context, programPacked, locationPacked, bufSize, params)); - if (isCallValid) - { - context->getnUniformfv(programPacked, locationPacked, bufSize, params); - } - ANGLE_CAPTURE(GetnUniformfv, isCallValid, context, programPacked, locationPacked, bufSize, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformfvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformfvEXT, - "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformfvEXT(context, programPacked, locationPacked, bufSize, params)); - if (isCallValid) - { - context->getnUniformfv(programPacked, locationPacked, bufSize, params); - } - ANGLE_CAPTURE(GetnUniformfvEXT, isCallValid, context, programPacked, locationPacked, - bufSize, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformiv, - "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformiv(context, programPacked, locationPacked, bufSize, params)); - if (isCallValid) - { - context->getnUniformiv(programPacked, locationPacked, bufSize, params); - } - ANGLE_CAPTURE(GetnUniformiv, isCallValid, context, programPacked, locationPacked, bufSize, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformivEXT, - "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformivEXT(context, programPacked, locationPacked, bufSize, params)); - if (isCallValid) - { - context->getnUniformiv(programPacked, locationPacked, bufSize, params); - } - ANGLE_CAPTURE(GetnUniformivEXT, isCallValid, context, programPacked, locationPacked, - bufSize, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformuiv, - "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetnUniformuiv(context, programPacked, locationPacked, bufSize, params)); - if (isCallValid) - { - context->getnUniformuiv(programPacked, locationPacked, bufSize, params); - } - ANGLE_CAPTURE(GetnUniformuiv, isCallValid, context, programPacked, locationPacked, bufSize, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_HintContextANGLE(GLeglContext ctx, GLenum target, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLHint, "context = %d, target = %s, mode = %s", CID(context), - GLenumToString(GLenumGroup::HintTarget, target), - GLenumToString(GLenumGroup::HintMode, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateHint(context, target, mode)); - if (isCallValid) - { - context->hint(target, mode); - } - ANGLE_CAPTURE(Hint, isCallValid, context, target, mode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ImportMemoryFdEXTContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLint fd) -{ - Context *context = static_cast(ctx); - EVENT(context, GLImportMemoryFdEXT, - "context = %d, memory = %u, size = %llu, handleType = %s, fd = %d", CID(context), memory, - static_cast(size), - GLenumToString(GLenumGroup::ExternalHandleType, handleType), fd); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID memoryPacked = PackParam(memory); - HandleType handleTypePacked = PackParam(handleType); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateImportMemoryFdEXT(context, memoryPacked, size, handleTypePacked, fd)); - if (isCallValid) - { - context->importMemoryFd(memoryPacked, size, handleTypePacked, fd); - } - ANGLE_CAPTURE(ImportMemoryFdEXT, isCallValid, context, memoryPacked, size, handleTypePacked, - fd); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ImportSemaphoreFdEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLint fd) -{ - Context *context = static_cast(ctx); - EVENT(context, GLImportSemaphoreFdEXT, "context = %d, semaphore = %u, handleType = %s, fd = %d", - CID(context), semaphore, GLenumToString(GLenumGroup::ExternalHandleType, handleType), fd); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - HandleType handleTypePacked = PackParam(handleType); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateImportSemaphoreFdEXT(context, semaphorePacked, handleTypePacked, fd)); - if (isCallValid) - { - context->importSemaphoreFd(semaphorePacked, handleTypePacked, fd); - } - ANGLE_CAPTURE(ImportSemaphoreFdEXT, isCallValid, context, semaphorePacked, handleTypePacked, - fd); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_InsertEventMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker) -{ - Context *context = static_cast(ctx); - // Don't run the EVENT() macro on the EXT_debug_marker entry points. - // It can interfere with the debug events being set by the caller. - // EVENT(context, GLInsertEventMarkerEXT, "context = %d, length = %d, marker = 0x%016" PRIxPTR - // "", CID(context), length, (uintptr_t)marker); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateInsertEventMarkerEXT(context, length, marker)); - if (isCallValid) - { - context->insertEventMarker(length, marker); - } - ANGLE_CAPTURE(InsertEventMarkerEXT, isCallValid, context, length, marker); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_InvalidateFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments) -{ - Context *context = static_cast(ctx); - EVENT(context, GLInvalidateFramebuffer, - "context = %d, target = %s, numAttachments = %d, attachments = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::FramebufferTarget, target), numAttachments, - (uintptr_t)attachments); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateInvalidateFramebuffer(context, target, numAttachments, attachments)); - if (isCallValid) - { - context->invalidateFramebuffer(target, numAttachments, attachments); - } - ANGLE_CAPTURE(InvalidateFramebuffer, isCallValid, context, target, numAttachments, - attachments); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_InvalidateSubFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLInvalidateSubFramebuffer, - "context = %d, target = %s, numAttachments = %d, attachments = 0x%016" PRIxPTR - ", x = %d, y = %d, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), numAttachments, - (uintptr_t)attachments, x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateInvalidateSubFramebuffer(context, target, numAttachments, - attachments, x, y, width, height)); - if (isCallValid) - { - context->invalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, - height); - } - ANGLE_CAPTURE(InvalidateSubFramebuffer, isCallValid, context, target, numAttachments, - attachments, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLboolean GL_APIENTRY GL_IsBufferContextANGLE(GLeglContext ctx, GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsBuffer, "context = %d, buffer = %u", CID(context), buffer); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsBuffer(context, bufferPacked)); - if (isCallValid) - { - returnValue = context->isBuffer(bufferPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsBuffer, isCallValid, context, bufferPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsEnabledContextANGLE(GLeglContext ctx, GLenum cap) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsEnabled, "context = %d, cap = %s", CID(context), - GLenumToString(GLenumGroup::EnableCap, cap)); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsEnabled(context, cap)); - if (isCallValid) - { - returnValue = context->isEnabled(cap); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsEnabled, isCallValid, context, cap, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsEnablediContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsEnabledi, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsEnabledi(context, target, index)); - if (isCallValid) - { - returnValue = context->isEnabledi(target, index); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsEnabledi, isCallValid, context, target, index, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsEnablediEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsEnablediEXT, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsEnablediEXT(context, target, index)); - if (isCallValid) - { - returnValue = context->isEnabledi(target, index); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsEnablediEXT, isCallValid, context, target, index, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsEnablediOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsEnablediOES, "context = %d, target = %s, index = %u", CID(context), - GLenumToString(GLenumGroup::EnableCap, target), index); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsEnablediOES(context, target, index)); - if (isCallValid) - { - returnValue = context->isEnabledi(target, index); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsEnablediOES, isCallValid, context, target, index, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsFenceNV, "context = %d, fence = %u", CID(context), fence); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID fencePacked = PackParam(fence); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsFenceNV(context, fencePacked)); - if (isCallValid) - { - returnValue = context->isFenceNV(fencePacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsFenceNV, isCallValid, context, fencePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsFramebufferContextANGLE(GLeglContext ctx, GLuint framebuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsFramebuffer, "context = %d, framebuffer = %u", CID(context), framebuffer); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID framebufferPacked = PackParam(framebuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsFramebuffer(context, framebufferPacked)); - if (isCallValid) - { - returnValue = context->isFramebuffer(framebufferPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsFramebuffer, isCallValid, context, framebufferPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsFramebufferOESContextANGLE(GLeglContext ctx, GLuint framebuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsFramebufferOES, "context = %d, framebuffer = %u", CID(context), framebuffer); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FramebufferID framebufferPacked = PackParam(framebuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsFramebufferOES(context, framebufferPacked)); - if (isCallValid) - { - returnValue = context->isFramebuffer(framebufferPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsFramebufferOES, isCallValid, context, framebufferPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsMemoryObjectEXTContextANGLE(GLeglContext ctx, GLuint memoryObject) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsMemoryObjectEXT, "context = %d, memoryObject = %u", CID(context), - memoryObject); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID memoryObjectPacked = PackParam(memoryObject); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsMemoryObjectEXT(context, memoryObjectPacked)); - if (isCallValid) - { - returnValue = context->isMemoryObject(memoryObjectPacked); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsMemoryObjectEXT, isCallValid, context, memoryObjectPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsProgram, "context = %d, program = %u", CID(context), program); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsProgram(context, programPacked)); - if (isCallValid) - { - returnValue = context->isProgram(programPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsProgram, isCallValid, context, programPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsProgramPipeline, "context = %d, pipeline = %u", CID(context), pipeline); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsProgramPipeline(context, pipelinePacked)); - if (isCallValid) - { - returnValue = context->isProgramPipeline(pipelinePacked); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsProgramPipeline, isCallValid, context, pipelinePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsProgramPipelineEXT, "context = %d, pipeline = %u", CID(context), pipeline); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsProgramPipelineEXT(context, pipelinePacked)); - if (isCallValid) - { - returnValue = context->isProgramPipeline(pipelinePacked); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsProgramPipelineEXT, isCallValid, context, pipelinePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsQueryContextANGLE(GLeglContext ctx, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsQuery, "context = %d, id = %u", CID(context), id); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsQuery(context, idPacked)); - if (isCallValid) - { - returnValue = context->isQuery(idPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsQuery, isCallValid, context, idPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsQueryEXTContextANGLE(GLeglContext ctx, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsQueryEXT, "context = %d, id = %u", CID(context), id); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsQueryEXT(context, idPacked)); - if (isCallValid) - { - returnValue = context->isQuery(idPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsQueryEXT, isCallValid, context, idPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsRenderbufferContextANGLE(GLeglContext ctx, GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsRenderbuffer, "context = %d, renderbuffer = %u", CID(context), renderbuffer); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsRenderbuffer(context, renderbufferPacked)); - if (isCallValid) - { - returnValue = context->isRenderbuffer(renderbufferPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsRenderbuffer, isCallValid, context, renderbufferPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsRenderbufferOESContextANGLE(GLeglContext ctx, GLuint renderbuffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsRenderbufferOES, "context = %d, renderbuffer = %u", CID(context), - renderbuffer); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - RenderbufferID renderbufferPacked = PackParam(renderbuffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsRenderbufferOES(context, renderbufferPacked)); - if (isCallValid) - { - returnValue = context->isRenderbuffer(renderbufferPacked); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsRenderbufferOES, isCallValid, context, renderbufferPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsSemaphoreEXTContextANGLE(GLeglContext ctx, GLuint semaphore) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsSemaphoreEXT, "context = %d, semaphore = %u", CID(context), semaphore); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsSemaphoreEXT(context, semaphorePacked)); - if (isCallValid) - { - returnValue = context->isSemaphore(semaphorePacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsSemaphoreEXT, isCallValid, context, semaphorePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsSamplerContextANGLE(GLeglContext ctx, GLuint sampler) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsSampler, "context = %d, sampler = %u", CID(context), sampler); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsSampler(context, samplerPacked)); - if (isCallValid) - { - returnValue = context->isSampler(samplerPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsSampler, isCallValid, context, samplerPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsShader, "context = %d, shader = %u", CID(context), shader); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsShader(context, shaderPacked)); - if (isCallValid) - { - returnValue = context->isShader(shaderPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsShader, isCallValid, context, shaderPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsSyncContextANGLE(GLeglContext ctx, GLsync sync) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsSync, "context = %d, sync = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)sync); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsSync(context, sync)); - if (isCallValid) - { - returnValue = context->isSync(sync); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsSync, isCallValid, context, sync, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsTextureContextANGLE(GLeglContext ctx, GLuint texture) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsTexture, "context = %d, texture = %u", CID(context), texture); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID texturePacked = PackParam(texture); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateIsTexture(context, texturePacked)); - if (isCallValid) - { - returnValue = context->isTexture(texturePacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsTexture, isCallValid, context, texturePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsTransformFeedbackContextANGLE(GLeglContext ctx, GLuint id) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsTransformFeedback, "context = %d, id = %u", CID(context), id); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TransformFeedbackID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsTransformFeedback(context, idPacked)); - if (isCallValid) - { - returnValue = context->isTransformFeedback(idPacked); - } - else - { - returnValue = - GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsTransformFeedback, isCallValid, context, idPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsVertexArrayContextANGLE(GLeglContext ctx, GLuint array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsVertexArray, "context = %d, array = %u", CID(context), array); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsVertexArray(context, arrayPacked)); - if (isCallValid) - { - returnValue = context->isVertexArray(arrayPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsVertexArray, isCallValid, context, arrayPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_IsVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array) -{ - Context *context = static_cast(ctx); - EVENT(context, GLIsVertexArrayOES, "context = %d, array = %u", CID(context), array); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexArrayID arrayPacked = PackParam(array); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateIsVertexArrayOES(context, arrayPacked)); - if (isCallValid) - { - returnValue = context->isVertexArray(arrayPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(IsVertexArrayOES, isCallValid, context, arrayPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_LabelObjectEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei length, - const GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLabelObjectEXT, - "context = %d, type = %s, object = %u, length = %d, label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, type), object, length, - (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateLabelObjectEXT(context, type, object, length, label)); - if (isCallValid) - { - context->labelObject(type, object, length, label); - } - ANGLE_CAPTURE(LabelObjectEXT, isCallValid, context, type, object, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightModelfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightModelf, "context = %d, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::LightModelParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightModelf(context, pname, param)); - if (isCallValid) - { - context->lightModelf(pname, param); - } - ANGLE_CAPTURE(LightModelf, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightModelfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightModelfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightModelParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightModelfv(context, pname, params)); - if (isCallValid) - { - context->lightModelfv(pname, params); - } - ANGLE_CAPTURE(LightModelfv, isCallValid, context, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightModelxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightModelx, "context = %d, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::LightModelParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightModelx(context, pname, param)); - if (isCallValid) - { - context->lightModelx(pname, param); - } - ANGLE_CAPTURE(LightModelx, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightModelxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightModelxv, "context = %d, pname = %s, param = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightModelParameter, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightModelxv(context, pname, param)); - if (isCallValid) - { - context->lightModelxv(pname, param); - } - ANGLE_CAPTURE(LightModelxv, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightfContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightf, "context = %d, light = %s, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightf(context, light, pnamePacked, param)); - if (isCallValid) - { - context->lightf(light, pnamePacked, param); - } - ANGLE_CAPTURE(Lightf, isCallValid, context, light, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightfv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightfv(context, light, pnamePacked, params)); - if (isCallValid) - { - context->lightfv(light, pnamePacked, params); - } - ANGLE_CAPTURE(Lightfv, isCallValid, context, light, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightxContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightx, "context = %d, light = %s, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightx(context, light, pnamePacked, param)); - if (isCallValid) - { - context->lightx(light, pnamePacked, param); - } - ANGLE_CAPTURE(Lightx, isCallValid, context, light, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLightxv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::LightName, light), - GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LightParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLightxv(context, light, pnamePacked, params)); - if (isCallValid) - { - context->lightxv(light, pnamePacked, params); - } - ANGLE_CAPTURE(Lightxv, isCallValid, context, light, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LineWidthContextANGLE(GLeglContext ctx, GLfloat width) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLineWidth, "context = %d, width = %f", CID(context), width); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLineWidth(context, width)); - if (isCallValid) - { - context->lineWidth(width); - } - ANGLE_CAPTURE(LineWidth, isCallValid, context, width); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LineWidthxContextANGLE(GLeglContext ctx, GLfixed width) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLineWidthx, "context = %d, width = 0x%X", CID(context), width); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLineWidthx(context, width)); - if (isCallValid) - { - context->lineWidthx(width); - } - ANGLE_CAPTURE(LineWidthx, isCallValid, context, width); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LinkProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLinkProgram, "context = %d, program = %u", CID(context), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLinkProgram(context, programPacked)); - if (isCallValid) - { - context->linkProgram(programPacked); - } - ANGLE_CAPTURE(LinkProgram, isCallValid, context, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LoadIdentityContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLoadIdentity, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadIdentity(context)); - if (isCallValid) - { - context->loadIdentity(); - } - ANGLE_CAPTURE(LoadIdentity, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LoadMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLoadMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)m); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadMatrixf(context, m)); - if (isCallValid) - { - context->loadMatrixf(m); - } - ANGLE_CAPTURE(LoadMatrixf, isCallValid, context, m); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LoadMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLoadMatrixx, "context = %d, m = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)m); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLoadMatrixx(context, m)); - if (isCallValid) - { - context->loadMatrixx(m); - } - ANGLE_CAPTURE(LoadMatrixx, isCallValid, context, m); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LoadPaletteFromModelViewMatrixOESContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLoadPaletteFromModelViewMatrixOES, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateLoadPaletteFromModelViewMatrixOES(context)); - if (isCallValid) - { - context->loadPaletteFromModelViewMatrix(); - } - ANGLE_CAPTURE(LoadPaletteFromModelViewMatrixOES, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LogicOpContextANGLE(GLeglContext ctx, GLenum opcode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLogicOp, "context = %d, opcode = %s", CID(context), - GLenumToString(GLenumGroup::LogicOp, opcode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - LogicalOperation opcodePacked = PackParam(opcode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateLogicOp(context, opcodePacked)); - if (isCallValid) - { - context->logicOp(opcodePacked); - } - ANGLE_CAPTURE(LogicOp, isCallValid, context, opcodePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void *GL_APIENTRY GL_MapBufferOESContextANGLE(GLeglContext ctx, GLenum target, GLenum access) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMapBufferOES, "context = %d, target = %s, access = %s", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - GLenumToString(GLenumGroup::BufferAccessARB, access)); - - void *returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMapBufferOES(context, targetPacked, access)); - if (isCallValid) - { - returnValue = context->mapBuffer(targetPacked, access); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(MapBufferOES, isCallValid, context, targetPacked, access, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void *GL_APIENTRY GL_MapBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMapBufferRange, - "context = %d, target = %s, offset = %llu, length = %llu, access = %s", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(offset), static_cast(length), - GLbitfieldToString(GLenumGroup::BufferAccessMask, access).c_str()); - - void *returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMapBufferRange(context, targetPacked, offset, length, access)); - if (isCallValid) - { - returnValue = context->mapBufferRange(targetPacked, offset, length, access); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(MapBufferRange, isCallValid, context, targetPacked, offset, length, access, - returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void *GL_APIENTRY GL_MapBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMapBufferRangeEXT, - "context = %d, target = %s, offset = %llu, length = %llu, access = %s", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target), - static_cast(offset), static_cast(length), - GLbitfieldToString(GLenumGroup::BufferAccessMask, access).c_str()); - - void *returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMapBufferRangeEXT(context, targetPacked, offset, length, access)); - if (isCallValid) - { - returnValue = context->mapBufferRange(targetPacked, offset, length, access); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(MapBufferRangeEXT, isCallValid, context, targetPacked, offset, length, access, - returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_MaterialfContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMaterialf, "context = %d, face = %s, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialf(context, face, pnamePacked, param)); - if (isCallValid) - { - context->materialf(face, pnamePacked, param); - } - ANGLE_CAPTURE(Materialf, isCallValid, context, face, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMaterialfv, "context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialfv(context, face, pnamePacked, params)); - if (isCallValid) - { - context->materialfv(face, pnamePacked, params); - } - ANGLE_CAPTURE(Materialfv, isCallValid, context, face, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MaterialxContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMaterialx, "context = %d, face = %s, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialx(context, face, pnamePacked, param)); - if (isCallValid) - { - context->materialx(face, pnamePacked, param); - } - ANGLE_CAPTURE(Materialx, isCallValid, context, face, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfixed *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMaterialxv, "context = %d, face = %s, pname = %s, param = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::MaterialFace, face), - GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MaterialParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaterialxv(context, face, pnamePacked, param)); - if (isCallValid) - { - context->materialxv(face, pnamePacked, param); - } - ANGLE_CAPTURE(Materialxv, isCallValid, context, face, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MatrixIndexPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMatrixIndexPointerOES, - "context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", - CID(context), size, GLenumToString(GLenumGroup::DefaultGroup, type), stride, - (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMatrixIndexPointerOES(context, size, type, stride, pointer)); - if (isCallValid) - { - context->matrixIndexPointer(size, type, stride, pointer); - } - ANGLE_CAPTURE(MatrixIndexPointerOES, isCallValid, context, size, type, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MatrixModeContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMatrixMode, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::MatrixMode, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MatrixType modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMatrixMode(context, modePacked)); - if (isCallValid) - { - context->matrixMode(modePacked); - } - ANGLE_CAPTURE(MatrixMode, isCallValid, context, modePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MaxShaderCompilerThreadsKHRContextANGLE(GLeglContext ctx, GLuint count) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMaxShaderCompilerThreadsKHR, "context = %d, count = %u", CID(context), count); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMaxShaderCompilerThreadsKHR(context, count)); - if (isCallValid) - { - context->maxShaderCompilerThreads(count); - } - ANGLE_CAPTURE(MaxShaderCompilerThreadsKHR, isCallValid, context, count); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MemoryBarrierContextANGLE(GLeglContext ctx, GLbitfield barriers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMemoryBarrier, "context = %d, barriers = %s", CID(context), - GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMemoryBarrier(context, barriers)); - if (isCallValid) - { - context->memoryBarrier(barriers); - } - ANGLE_CAPTURE(MemoryBarrier, isCallValid, context, barriers); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MemoryBarrierByRegionContextANGLE(GLeglContext ctx, GLbitfield barriers) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMemoryBarrierByRegion, "context = %d, barriers = %s", CID(context), - GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMemoryBarrierByRegion(context, barriers)); - if (isCallValid) - { - context->memoryBarrierByRegion(barriers); - } - ANGLE_CAPTURE(MemoryBarrierByRegion, isCallValid, context, barriers); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMemoryObjectParameterivEXT, - "context = %d, memoryObject = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - memoryObject, GLenumToString(GLenumGroup::MemoryObjectParameterName, pname), - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID memoryObjectPacked = PackParam(memoryObject); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMemoryObjectParameterivEXT(context, memoryObjectPacked, pname, params)); - if (isCallValid) - { - context->memoryObjectParameteriv(memoryObjectPacked, pname, params); - } - ANGLE_CAPTURE(MemoryObjectParameterivEXT, isCallValid, context, memoryObjectPacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MinSampleShadingContextANGLE(GLeglContext ctx, GLfloat value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMinSampleShading, "context = %d, value = %f", CID(context), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMinSampleShading(context, value)); - if (isCallValid) - { - context->minSampleShading(value); - } - ANGLE_CAPTURE(MinSampleShading, isCallValid, context, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MinSampleShadingOESContextANGLE(GLeglContext ctx, GLfloat value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMinSampleShadingOES, "context = %d, value = %f", CID(context), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMinSampleShadingOES(context, value)); - if (isCallValid) - { - context->minSampleShading(value); - } - ANGLE_CAPTURE(MinSampleShadingOES, isCallValid, context, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)m); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultMatrixf(context, m)); - if (isCallValid) - { - context->multMatrixf(m); - } - ANGLE_CAPTURE(MultMatrixf, isCallValid, context, m); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultMatrixx, "context = %d, m = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)m); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultMatrixx(context, m)); - if (isCallValid) - { - context->multMatrixx(m); - } - ANGLE_CAPTURE(MultMatrixx, isCallValid, context, m); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *count, - GLenum type, - const void *const *indices, - GLsizei primcount, - const GLint *basevertex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawElementsBaseVertexEXT, - "context = %d, mode = %s, count = 0x%016" PRIxPTR ", type = %s, indices = 0x%016" PRIxPTR - ", primcount = %d, basevertex = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, primcount, - (uintptr_t)basevertex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateMultiDrawElementsBaseVertexEXT( - context, modePacked, count, typePacked, - indices, primcount, basevertex)); - if (isCallValid) - { - context->multiDrawElementsBaseVertex(modePacked, count, typePacked, indices, primcount, - basevertex); - } - ANGLE_CAPTURE(MultiDrawElementsBaseVertexEXT, isCallValid, context, modePacked, count, - typePacked, indices, primcount, basevertex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiTexCoord4fContextANGLE(GLeglContext ctx, - GLenum target, - GLfloat s, - GLfloat t, - GLfloat r, - GLfloat q) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiTexCoord4f, "context = %d, target = %s, s = %f, t = %f, r = %f, q = %f", - CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMultiTexCoord4f(context, target, s, t, r, q)); - if (isCallValid) - { - context->multiTexCoord4f(target, s, t, r, q); - } - ANGLE_CAPTURE(MultiTexCoord4f, isCallValid, context, target, s, t, r, q); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiTexCoord4xContextANGLE(GLeglContext ctx, - GLenum texture, - GLfixed s, - GLfixed t, - GLfixed r, - GLfixed q) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiTexCoord4x, - "context = %d, texture = %s, s = 0x%X, t = 0x%X, r = 0x%X, q = 0x%X", CID(context), - GLenumToString(GLenumGroup::TextureUnit, texture), s, t, r, q); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateMultiTexCoord4x(context, texture, s, t, r, q)); - if (isCallValid) - { - context->multiTexCoord4x(texture, s, t, r, q); - } - ANGLE_CAPTURE(MultiTexCoord4x, isCallValid, context, texture, s, t, r, q); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_NamedBufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLuint buffer, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLNamedBufferStorageExternalEXT, - "context = %d, buffer = %u, offset = %llu, size = %llu, clientBuffer = 0x%016" PRIxPTR - ", flags = %s", - CID(context), buffer, static_cast(offset), - static_cast(size), (uintptr_t)clientBuffer, - GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateNamedBufferStorageExternalEXT( - context, buffer, offset, size, clientBuffer, flags)); - if (isCallValid) - { - context->namedBufferStorageExternal(buffer, offset, size, clientBuffer, flags); - } - ANGLE_CAPTURE(NamedBufferStorageExternalEXT, isCallValid, context, buffer, offset, size, - clientBuffer, flags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Normal3fContextANGLE(GLeglContext ctx, GLfloat nx, GLfloat ny, GLfloat nz) -{ - Context *context = static_cast(ctx); - EVENT(context, GLNormal3f, "context = %d, nx = %f, ny = %f, nz = %f", CID(context), nx, ny, nz); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateNormal3f(context, nx, ny, nz)); - if (isCallValid) - { - context->normal3f(nx, ny, nz); - } - ANGLE_CAPTURE(Normal3f, isCallValid, context, nx, ny, nz); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Normal3xContextANGLE(GLeglContext ctx, GLfixed nx, GLfixed ny, GLfixed nz) -{ - Context *context = static_cast(ctx); - EVENT(context, GLNormal3x, "context = %d, nx = 0x%X, ny = 0x%X, nz = 0x%X", CID(context), nx, - ny, nz); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateNormal3x(context, nx, ny, nz)); - if (isCallValid) - { - context->normal3x(nx, ny, nz); - } - ANGLE_CAPTURE(Normal3x, isCallValid, context, nx, ny, nz); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_NormalPointerContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLNormalPointer, - "context = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::NormalPointerType, type), stride, (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateNormalPointer(context, typePacked, stride, pointer)); - if (isCallValid) - { - context->normalPointer(typePacked, stride, pointer); - } - ANGLE_CAPTURE(NormalPointer, isCallValid, context, typePacked, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLObjectLabel, - "context = %d, identifier = %s, name = %u, length = %d, label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ObjectIdentifier, identifier), name, length, - (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateObjectLabel(context, identifier, name, length, label)); - if (isCallValid) - { - context->objectLabel(identifier, name, length, label); - } - ANGLE_CAPTURE(ObjectLabel, isCallValid, context, identifier, name, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLObjectLabelKHR, - "context = %d, identifier = %s, name = %u, length = %d, label = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::ObjectIdentifier, identifier), name, length, - (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateObjectLabelKHR(context, identifier, name, length, label)); - if (isCallValid) - { - context->objectLabel(identifier, name, length, label); - } - ANGLE_CAPTURE(ObjectLabelKHR, isCallValid, context, identifier, name, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLObjectPtrLabel, - "context = %d, ptr = 0x%016" PRIxPTR ", length = %d, label = 0x%016" PRIxPTR "", - CID(context), (uintptr_t)ptr, length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateObjectPtrLabel(context, ptr, length, label)); - if (isCallValid) - { - context->objectPtrLabel(ptr, length, label); - } - ANGLE_CAPTURE(ObjectPtrLabel, isCallValid, context, ptr, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label) -{ - Context *context = static_cast(ctx); - EVENT(context, GLObjectPtrLabelKHR, - "context = %d, ptr = 0x%016" PRIxPTR ", length = %d, label = 0x%016" PRIxPTR "", - CID(context), (uintptr_t)ptr, length, (uintptr_t)label); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateObjectPtrLabelKHR(context, ptr, length, label)); - if (isCallValid) - { - context->objectPtrLabel(ptr, length, label); - } - ANGLE_CAPTURE(ObjectPtrLabelKHR, isCallValid, context, ptr, length, label); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_OrthofContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLOrthof, "context = %d, l = %f, r = %f, b = %f, t = %f, n = %f, f = %f", - CID(context), l, r, b, t, n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateOrthof(context, l, r, b, t, n, f)); - if (isCallValid) - { - context->orthof(l, r, b, t, n, f); - } - ANGLE_CAPTURE(Orthof, isCallValid, context, l, r, b, t, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_OrthoxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f) -{ - Context *context = static_cast(ctx); - EVENT(context, GLOrthox, - "context = %d, l = 0x%X, r = 0x%X, b = 0x%X, t = 0x%X, n = 0x%X, f = 0x%X", CID(context), - l, r, b, t, n, f); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateOrthox(context, l, r, b, t, n, f)); - if (isCallValid) - { - context->orthox(l, r, b, t, n, f); - } - ANGLE_CAPTURE(Orthox, isCallValid, context, l, r, b, t, n, f); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PatchParameteriContextANGLE(GLeglContext ctx, GLenum pname, GLint value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPatchParameteri, "context = %d, pname = %s, value = %d", CID(context), - GLenumToString(GLenumGroup::PatchParameterName, pname), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePatchParameteri(context, pname, value)); - if (isCallValid) - { - context->patchParameteri(pname, value); - } - ANGLE_CAPTURE(PatchParameteri, isCallValid, context, pname, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PatchParameteriEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPatchParameteriEXT, "context = %d, pname = %s, value = %d", CID(context), - GLenumToString(GLenumGroup::PatchParameterName, pname), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePatchParameteriEXT(context, pname, value)); - if (isCallValid) - { - context->patchParameteri(pname, value); - } - ANGLE_CAPTURE(PatchParameteriEXT, isCallValid, context, pname, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PauseTransformFeedbackContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPauseTransformFeedback, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePauseTransformFeedback(context)); - if (isCallValid) - { - context->pauseTransformFeedback(); - } - ANGLE_CAPTURE(PauseTransformFeedback, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PixelStoreiContextANGLE(GLeglContext ctx, GLenum pname, GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPixelStorei, "context = %d, pname = %s, param = %d", CID(context), - GLenumToString(GLenumGroup::PixelStoreParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePixelStorei(context, pname, param)); - if (isCallValid) - { - context->pixelStorei(pname, param); - } - ANGLE_CAPTURE(PixelStorei, isCallValid, context, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointParameterfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointParameterf, "context = %d, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PointParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterf(context, pnamePacked, param)); - if (isCallValid) - { - context->pointParameterf(pnamePacked, param); - } - ANGLE_CAPTURE(PointParameterf, isCallValid, context, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointParameterfvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointParameterfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PointParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterfv(context, pnamePacked, params)); - if (isCallValid) - { - context->pointParameterfv(pnamePacked, params); - } - ANGLE_CAPTURE(PointParameterfv, isCallValid, context, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointParameterxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointParameterx, "context = %d, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PointParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterx(context, pnamePacked, param)); - if (isCallValid) - { - context->pointParameterx(pnamePacked, param); - } - ANGLE_CAPTURE(PointParameterx, isCallValid, context, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointParameterxvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointParameterxv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PointParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePointParameterxv(context, pnamePacked, params)); - if (isCallValid) - { - context->pointParameterxv(pnamePacked, params); - } - ANGLE_CAPTURE(PointParameterxv, isCallValid, context, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointSizeContextANGLE(GLeglContext ctx, GLfloat size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointSize, "context = %d, size = %f", CID(context), size); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePointSize(context, size)); - if (isCallValid) - { - context->pointSize(size); - } - ANGLE_CAPTURE(PointSize, isCallValid, context, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointSizePointerOESContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointSizePointerOES, - "context = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, type), stride, (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePointSizePointerOES(context, typePacked, stride, pointer)); - if (isCallValid) - { - context->pointSizePointer(typePacked, stride, pointer); - } - ANGLE_CAPTURE(PointSizePointerOES, isCallValid, context, typePacked, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PointSizexContextANGLE(GLeglContext ctx, GLfixed size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPointSizex, "context = %d, size = 0x%X", CID(context), size); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePointSizex(context, size)); - if (isCallValid) - { - context->pointSizex(size); - } - ANGLE_CAPTURE(PointSizex, isCallValid, context, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PolygonOffsetContextANGLE(GLeglContext ctx, GLfloat factor, GLfloat units) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPolygonOffset, "context = %d, factor = %f, units = %f", CID(context), factor, - units); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePolygonOffset(context, factor, units)); - if (isCallValid) - { - context->polygonOffset(factor, units); - } - ANGLE_CAPTURE(PolygonOffset, isCallValid, context, factor, units); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PolygonOffsetxContextANGLE(GLeglContext ctx, GLfixed factor, GLfixed units) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPolygonOffsetx, "context = %d, factor = 0x%X, units = 0x%X", CID(context), - factor, units); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePolygonOffsetx(context, factor, units)); - if (isCallValid) - { - context->polygonOffsetx(factor, units); - } - ANGLE_CAPTURE(PolygonOffsetx, isCallValid, context, factor, units); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PopDebugGroupContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPopDebugGroup, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopDebugGroup(context)); - if (isCallValid) - { - context->popDebugGroup(); - } - ANGLE_CAPTURE(PopDebugGroup, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PopDebugGroupKHRContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPopDebugGroupKHR, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopDebugGroupKHR(context)); - if (isCallValid) - { - context->popDebugGroup(); - } - ANGLE_CAPTURE(PopDebugGroupKHR, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PopGroupMarkerEXTContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - // Don't run the EVENT() macro on the EXT_debug_marker entry points. - // It can interfere with the debug events being set by the caller. - // EVENT(context, GLPopGroupMarkerEXT, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopGroupMarkerEXT(context)); - if (isCallValid) - { - context->popGroupMarker(); - } - ANGLE_CAPTURE(PopGroupMarkerEXT, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PopMatrixContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPopMatrix, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePopMatrix(context)); - if (isCallValid) - { - context->popMatrix(); - } - ANGLE_CAPTURE(PopMatrix, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PrimitiveBoundingBoxContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPrimitiveBoundingBox, - "context = %d, minX = %f, minY = %f, minZ = %f, minW = %f, maxX = %f, maxY = %f, maxZ = " - "%f, maxW = %f", - CID(context), minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidatePrimitiveBoundingBox(context, minX, minY, minZ, minW, maxX, maxY, maxZ, maxW)); - if (isCallValid) - { - context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); - } - ANGLE_CAPTURE(PrimitiveBoundingBox, isCallValid, context, minX, minY, minZ, minW, maxX, - maxY, maxZ, maxW); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PrimitiveBoundingBoxEXTContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPrimitiveBoundingBoxEXT, - "context = %d, minX = %f, minY = %f, minZ = %f, minW = %f, maxX = %f, maxY = %f, maxZ = " - "%f, maxW = %f", - CID(context), minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePrimitiveBoundingBoxEXT(context, minX, minY, minZ, minW, maxX, - maxY, maxZ, maxW)); - if (isCallValid) - { - context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); - } - ANGLE_CAPTURE(PrimitiveBoundingBoxEXT, isCallValid, context, minX, minY, minZ, minW, maxX, - maxY, maxZ, maxW); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLsizei length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramBinary, - "context = %d, program = %u, binaryFormat = %s, binary = 0x%016" PRIxPTR ", length = %d", - CID(context), program, GLenumToString(GLenumGroup::DefaultGroup, binaryFormat), - (uintptr_t)binary, length); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramBinary(context, programPacked, binaryFormat, binary, length)); - if (isCallValid) - { - context->programBinary(programPacked, binaryFormat, binary, length); - } - ANGLE_CAPTURE(ProgramBinary, isCallValid, context, programPacked, binaryFormat, binary, - length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLint length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramBinaryOES, - "context = %d, program = %u, binaryFormat = %s, binary = 0x%016" PRIxPTR ", length = %d", - CID(context), program, GLenumToString(GLenumGroup::DefaultGroup, binaryFormat), - (uintptr_t)binary, length); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramBinaryOES(context, programPacked, binaryFormat, binary, length)); - if (isCallValid) - { - context->programBinary(programPacked, binaryFormat, binary, length); - } - ANGLE_CAPTURE(ProgramBinaryOES, isCallValid, context, programPacked, binaryFormat, binary, - length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramParameteriContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramParameteri, "context = %d, program = %u, pname = %s, value = %d", - CID(context), program, GLenumToString(GLenumGroup::ProgramParameterPName, pname), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramParameteri(context, programPacked, pname, value)); - if (isCallValid) - { - context->programParameteri(programPacked, pname, value); - } - ANGLE_CAPTURE(ProgramParameteri, isCallValid, context, programPacked, pname, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramParameteriEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramParameteriEXT, "context = %d, program = %u, pname = %s, value = %d", - CID(context), program, GLenumToString(GLenumGroup::ProgramParameterPName, pname), value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramParameteriEXT(context, programPacked, pname, value)); - if (isCallValid) - { - context->programParameteri(programPacked, pname, value); - } - ANGLE_CAPTURE(ProgramParameteriEXT, isCallValid, context, programPacked, pname, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1f, "context = %d, program = %u, location = %d, v0 = %f", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1f(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1f(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1f, isCallValid, context, programPacked, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1fEXT, "context = %d, program = %u, location = %d, v0 = %f", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1fEXT(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1f(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1fEXT, isCallValid, context, programPacked, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1fv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1fv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1fv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1fvEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1fvEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1fvEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1i, "context = %d, program = %u, location = %d, v0 = %d", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1i(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1i(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1i, isCallValid, context, programPacked, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1iEXT, "context = %d, program = %u, location = %d, v0 = %d", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1iEXT(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1i(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1iEXT, isCallValid, context, programPacked, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1iv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1iv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1iv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1ivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1ivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1ivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1ui, "context = %d, program = %u, location = %d, v0 = %u", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniform1ui(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1ui(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1ui, isCallValid, context, programPacked, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1uiEXT, "context = %d, program = %u, location = %d, v0 = %u", - CID(context), program, location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1uiEXT(context, programPacked, locationPacked, v0)); - if (isCallValid) - { - context->programUniform1ui(programPacked, locationPacked, v0); - } - ANGLE_CAPTURE(ProgramUniform1uiEXT, isCallValid, context, programPacked, locationPacked, - v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1uiv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1uiv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1uiv, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform1uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform1uivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform1uivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform1uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform1uivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2f, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2f(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2f(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2f, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2fEXT, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2fEXT(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2f(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2fEXT, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2fv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2fv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2fv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2fvEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2fvEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2fvEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2i, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2i(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2i(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2i, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2iEXT, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2iEXT(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2i(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2iEXT, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2iv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2iv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2iv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2ivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2ivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2ivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2ui, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2ui(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2ui(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2ui, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2uiEXT, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u", CID(context), program, - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2uiEXT(context, programPacked, locationPacked, v0, v1)); - if (isCallValid) - { - context->programUniform2ui(programPacked, locationPacked, v0, v1); - } - ANGLE_CAPTURE(ProgramUniform2uiEXT, isCallValid, context, programPacked, locationPacked, v0, - v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2uiv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2uiv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2uiv, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform2uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform2uivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform2uivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform2uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform2uivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3f, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3f(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3f(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3f, isCallValid, context, programPacked, locationPacked, v0, v1, - v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3fEXT, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3fEXT(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3f(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3fEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3fv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3fv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3fv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3fvEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3fvEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3fvEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3i, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3i(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3i(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3i, isCallValid, context, programPacked, locationPacked, v0, v1, - v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3iEXT, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3iEXT(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3i(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3iEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3iv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3iv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3iv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3ivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3ivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3ivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3ui, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3ui(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3ui(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3ui, isCallValid, context, programPacked, locationPacked, v0, - v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3uiEXT, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u", CID(context), - program, location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3uiEXT(context, programPacked, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->programUniform3ui(programPacked, locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(ProgramUniform3uiEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3uiv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3uiv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3uiv, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform3uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform3uivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform3uivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform3uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform3uivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4f, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f, v3 = %f", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4f(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4f(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4f, isCallValid, context, programPacked, locationPacked, v0, v1, - v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4fEXT, - "context = %d, program = %u, location = %d, v0 = %f, v1 = %f, v2 = %f, v3 = %f", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4fEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4f(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4fEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4fv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4fv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4fv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4fvEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4fvEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4fv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4fvEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4i, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d, v3 = %d", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4i(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4i(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4i, isCallValid, context, programPacked, locationPacked, v0, v1, - v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4iEXT, - "context = %d, program = %u, location = %d, v0 = %d, v1 = %d, v2 = %d, v3 = %d", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4iEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4i(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4iEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4iv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4iv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4iv, isCallValid, context, programPacked, locationPacked, count, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4ivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4ivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4iv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4ivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4ui, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u, v3 = %u", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4ui(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4ui(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4ui, isCallValid, context, programPacked, locationPacked, v0, - v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4uiEXT, - "context = %d, program = %u, location = %d, v0 = %u, v1 = %u, v2 = %u, v3 = %u", - CID(context), program, location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4uiEXT(context, programPacked, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->programUniform4ui(programPacked, locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(ProgramUniform4uiEXT, isCallValid, context, programPacked, locationPacked, v0, - v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4uiv, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4uiv(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4uiv, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniform4uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniform4uivEXT, - "context = %d, program = %u, location = %d, count = %d, value = 0x%016" PRIxPTR "", - CID(context), program, location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateProgramUniform4uivEXT(context, programPacked, locationPacked, count, value)); - if (isCallValid) - { - context->programUniform4uiv(programPacked, locationPacked, count, value); - } - ANGLE_CAPTURE(ProgramUniform4uivEXT, isCallValid, context, programPacked, locationPacked, - count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2fv(context, programPacked, locationPacked, - count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2fv, isCallValid, context, programPacked, locationPacked, - count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2x3fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2x3fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2x3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2x3fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2x3fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2x3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2x3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2x3fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2x4fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2x4fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2x4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2x4fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix2x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix2x4fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix2x4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix2x4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix2x4fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3fv(context, programPacked, locationPacked, - count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3fv, isCallValid, context, programPacked, locationPacked, - count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3x2fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3x2fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3x2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3x2fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3x2fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3x2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3x2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3x2fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3x4fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3x4fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3x4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3x4fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix3x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix3x4fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix3x4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix3x4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix3x4fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4fv(context, programPacked, locationPacked, - count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4fv, isCallValid, context, programPacked, locationPacked, - count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4x2fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4x2fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4x2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4x2fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4x2fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4x2fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4x2fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4x2fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4x3fv, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4x3fv( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4x3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4x3fv, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProgramUniformMatrix4x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProgramUniformMatrix4x3fvEXT, - "context = %d, program = %u, location = %d, count = %d, transpose = %s, value = " - "0x%016" PRIxPTR "", - CID(context), program, location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateProgramUniformMatrix4x3fvEXT( - context, programPacked, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->programUniformMatrix4x3fv(programPacked, locationPacked, count, transpose, - value); - } - ANGLE_CAPTURE(ProgramUniformMatrix4x3fvEXT, isCallValid, context, programPacked, - locationPacked, count, transpose, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PushDebugGroupContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPushDebugGroup, - "context = %d, source = %s, id = %u, length = %d, message = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), id, length, - (uintptr_t)message); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePushDebugGroup(context, source, id, length, message)); - if (isCallValid) - { - context->pushDebugGroup(source, id, length, message); - } - ANGLE_CAPTURE(PushDebugGroup, isCallValid, context, source, id, length, message); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PushDebugGroupKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPushDebugGroupKHR, - "context = %d, source = %s, id = %u, length = %d, message = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DebugSource, source), id, length, - (uintptr_t)message); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidatePushDebugGroupKHR(context, source, id, length, message)); - if (isCallValid) - { - context->pushDebugGroup(source, id, length, message); - } - ANGLE_CAPTURE(PushDebugGroupKHR, isCallValid, context, source, id, length, message); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PushGroupMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker) -{ - Context *context = static_cast(ctx); - // Don't run the EVENT() macro on the EXT_debug_marker entry points. - // It can interfere with the debug events being set by the caller. - // EVENT(context, GLPushGroupMarkerEXT, "context = %d, length = %d, marker = 0x%016" PRIxPTR "", - // CID(context), length, (uintptr_t)marker); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidatePushGroupMarkerEXT(context, length, marker)); - if (isCallValid) - { - context->pushGroupMarker(length, marker); - } - ANGLE_CAPTURE(PushGroupMarkerEXT, isCallValid, context, length, marker); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_PushMatrixContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLPushMatrix, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidatePushMatrix(context)); - if (isCallValid) - { - context->pushMatrix(); - } - ANGLE_CAPTURE(PushMatrix, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_QueryCounterEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLQueryCounterEXT, "context = %d, id = %u, target = %s", CID(context), id, - GLenumToString(GLenumGroup::QueryTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateQueryCounterEXT(context, idPacked, targetPacked)); - if (isCallValid) - { - context->queryCounter(idPacked, targetPacked); - } - ANGLE_CAPTURE(QueryCounterEXT, isCallValid, context, idPacked, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLbitfield GL_APIENTRY GL_QueryMatrixxOESContextANGLE(GLeglContext ctx, - GLfixed *mantissa, - GLint *exponent) -{ - Context *context = static_cast(ctx); - EVENT(context, GLQueryMatrixxOES, - "context = %d, mantissa = 0x%016" PRIxPTR ", exponent = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)mantissa, (uintptr_t)exponent); - - GLbitfield returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateQueryMatrixxOES(context, mantissa, exponent)); - if (isCallValid) - { - returnValue = context->queryMatrixx(mantissa, exponent); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(QueryMatrixxOES, isCallValid, context, mantissa, exponent, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_ReadBufferContextANGLE(GLeglContext ctx, GLenum src) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadBuffer, "context = %d, src = %s", CID(context), - GLenumToString(GLenumGroup::ReadBufferMode, src)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateReadBuffer(context, src)); - if (isCallValid) - { - context->readBuffer(src); - } - ANGLE_CAPTURE(ReadBuffer, isCallValid, context, src); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReadPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadPixels, - "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, pixels = " - "0x%016" PRIxPTR "", - CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateReadPixels(context, x, y, width, height, format, type, pixels)); - if (isCallValid) - { - context->readPixels(x, y, width, height, format, type, pixels); - } - ANGLE_CAPTURE(ReadPixels, isCallValid, context, x, y, width, height, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReadnPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadnPixels, - "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize " - "= %d, data = 0x%016" PRIxPTR "", - CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), bufSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixels(context, x, y, width, height, format, type, bufSize, data)); - if (isCallValid) - { - context->readnPixels(x, y, width, height, format, type, bufSize, data); - } - ANGLE_CAPTURE(ReadnPixels, isCallValid, context, x, y, width, height, format, type, bufSize, - data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReadnPixelsEXTContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadnPixelsEXT, - "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize " - "= %d, data = 0x%016" PRIxPTR "", - CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), bufSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixelsEXT(context, x, y, width, height, format, type, bufSize, data)); - if (isCallValid) - { - context->readnPixels(x, y, width, height, format, type, bufSize, data); - } - ANGLE_CAPTURE(ReadnPixelsEXT, isCallValid, context, x, y, width, height, format, type, - bufSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReleaseShaderCompilerContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReleaseShaderCompiler, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateReleaseShaderCompiler(context)); - if (isCallValid) - { - context->releaseShaderCompiler(); - } - ANGLE_CAPTURE(ReleaseShaderCompiler, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RenderbufferStorageContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRenderbufferStorage, - "context = %d, target = %s, internalformat = %s, width = %d, height = %d", CID(context), - GLenumToString(GLenumGroup::RenderbufferTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateRenderbufferStorage(context, target, internalformat, width, height)); - if (isCallValid) - { - context->renderbufferStorage(target, internalformat, width, height); - } - ANGLE_CAPTURE(RenderbufferStorage, isCallValid, context, target, internalformat, width, - height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RenderbufferStorageMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRenderbufferStorageMultisample, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::RenderbufferTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorageMultisample(context, target, samples, - internalformat, width, height)); - if (isCallValid) - { - context->renderbufferStorageMultisample(target, samples, internalformat, width, height); - } - ANGLE_CAPTURE(RenderbufferStorageMultisample, isCallValid, context, target, samples, - internalformat, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RenderbufferStorageMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRenderbufferStorageMultisampleANGLE, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::RenderbufferTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorageMultisampleANGLE( - context, target, samples, internalformat, width, height)); - if (isCallValid) - { - context->renderbufferStorageMultisample(target, samples, internalformat, width, height); - } - ANGLE_CAPTURE(RenderbufferStorageMultisampleANGLE, isCallValid, context, target, samples, - internalformat, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RenderbufferStorageMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRenderbufferStorageMultisampleEXT, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::RenderbufferTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateRenderbufferStorageMultisampleEXT( - context, target, samples, internalformat, width, height)); - if (isCallValid) - { - context->renderbufferStorageMultisampleEXT(target, samples, internalformat, width, - height); - } - ANGLE_CAPTURE(RenderbufferStorageMultisampleEXT, isCallValid, context, target, samples, - internalformat, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRenderbufferStorageOES, - "context = %d, target = %s, internalformat = %s, width = %d, height = %d", CID(context), - GLenumToString(GLenumGroup::RenderbufferTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateRenderbufferStorageOES(context, target, internalformat, width, height)); - if (isCallValid) - { - context->renderbufferStorage(target, internalformat, width, height); - } - ANGLE_CAPTURE(RenderbufferStorageOES, isCallValid, context, target, internalformat, width, - height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ResumeTransformFeedbackContextANGLE(GLeglContext ctx) -{ - Context *context = static_cast(ctx); - EVENT(context, GLResumeTransformFeedback, "context = %d", CID(context)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateResumeTransformFeedback(context)); - if (isCallValid) - { - context->resumeTransformFeedback(); - } - ANGLE_CAPTURE(ResumeTransformFeedback, isCallValid, context); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_RotatefContextANGLE(GLeglContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRotatef, "context = %d, angle = %f, x = %f, y = %f, z = %f", CID(context), - angle, x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateRotatef(context, angle, x, y, z)); - if (isCallValid) - { - context->rotatef(angle, x, y, z); - } - ANGLE_CAPTURE(Rotatef, isCallValid, context, angle, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_RotatexContextANGLE(GLeglContext ctx, GLfixed angle, GLfixed x, GLfixed y, GLfixed z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRotatex, "context = %d, angle = 0x%X, x = 0x%X, y = 0x%X, z = 0x%X", - CID(context), angle, x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateRotatex(context, angle, x, y, z)); - if (isCallValid) - { - context->rotatex(angle, x, y, z); - } - ANGLE_CAPTURE(Rotatex, isCallValid, context, angle, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SampleCoverageContextANGLE(GLeglContext ctx, GLfloat value, GLboolean invert) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSampleCoverage, "context = %d, value = %f, invert = %s", CID(context), value, - GLbooleanToString(invert)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSampleCoverage(context, value, invert)); - if (isCallValid) - { - context->sampleCoverage(value, invert); - } - ANGLE_CAPTURE(SampleCoverage, isCallValid, context, value, invert); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SampleCoveragexContextANGLE(GLeglContext ctx, GLclampx value, GLboolean invert) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSampleCoveragex, "context = %d, value = 0x%X, invert = %s", CID(context), - value, GLbooleanToString(invert)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSampleCoveragex(context, value, invert)); - if (isCallValid) - { - context->sampleCoveragex(value, invert); - } - ANGLE_CAPTURE(SampleCoveragex, isCallValid, context, value, invert); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SampleMaskiContextANGLE(GLeglContext ctx, GLuint maskNumber, GLbitfield mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSampleMaski, "context = %d, maskNumber = %u, mask = %s", CID(context), - maskNumber, GLbitfieldToString(GLenumGroup::DefaultGroup, mask).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSampleMaski(context, maskNumber, mask)); - if (isCallValid) - { - context->sampleMaski(maskNumber, mask); - } - ANGLE_CAPTURE(SampleMaski, isCallValid, context, maskNumber, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIiv, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIiv(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIiv, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIivEXT, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIivEXT(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIivEXT, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIivOES, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIivOES(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIivOES, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIuiv, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuiv(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIuiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIuiv, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIuivEXT, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuivEXT(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIuiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIuivEXT, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIuivOES, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterIuivOES(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterIuiv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterIuivOES, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterfContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterf, "context = %d, sampler = %u, pname = %s, param = %f", - CID(context), sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterf(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterf(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterf, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLfloat *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterfv, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameterfv(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameterfv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameterfv, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameteriContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameteri, "context = %d, sampler = %u, pname = %s, param = %d", - CID(context), sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameteri(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameteri(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameteri, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameteriv, - "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context), - sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateSamplerParameteriv(context, samplerPacked, pname, param)); - if (isCallValid) - { - context->samplerParameteriv(samplerPacked, pname, param); - } - ANGLE_CAPTURE(SamplerParameteriv, isCallValid, context, samplerPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ScalefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLScalef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateScalef(context, x, y, z)); - if (isCallValid) - { - context->scalef(x, y, z); - } - ANGLE_CAPTURE(Scalef, isCallValid, context, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ScalexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLScalex, "context = %d, x = 0x%X, y = 0x%X, z = 0x%X", CID(context), x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateScalex(context, x, y, z)); - if (isCallValid) - { - context->scalex(x, y, z); - } - ANGLE_CAPTURE(Scalex, isCallValid, context, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_ScissorContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLScissor, "context = %d, x = %d, y = %d, width = %d, height = %d", CID(context), - x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateScissor(context, x, y, width, height)); - if (isCallValid) - { - context->scissor(x, y, width, height); - } - ANGLE_CAPTURE(Scissor, isCallValid, context, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - const GLuint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSemaphoreParameterui64vEXT, - "context = %d, semaphore = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - semaphore, GLenumToString(GLenumGroup::SemaphoreParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSemaphoreParameterui64vEXT(context, semaphorePacked, pname, params)); - if (isCallValid) - { - context->semaphoreParameterui64v(semaphorePacked, pname, params); - } - ANGLE_CAPTURE(SemaphoreParameterui64vEXT, isCallValid, context, semaphorePacked, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SetFenceNVContextANGLE(GLeglContext ctx, GLuint fence, GLenum condition) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSetFenceNV, "context = %d, fence = %u, condition = %s", CID(context), fence, - GLenumToString(GLenumGroup::DefaultGroup, condition)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID fencePacked = PackParam(fence); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSetFenceNV(context, fencePacked, condition)); - if (isCallValid) - { - context->setFenceNV(fencePacked, condition); - } - ANGLE_CAPTURE(SetFenceNV, isCallValid, context, fencePacked, condition); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ShadeModelContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLShadeModel, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::ShadingModel, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShadingModel modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateShadeModel(context, modePacked)); - if (isCallValid) - { - context->shadeModel(modePacked); - } - ANGLE_CAPTURE(ShadeModel, isCallValid, context, modePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ShaderBinaryContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *shaders, - GLenum binaryformat, - const void *binary, - GLsizei length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLShaderBinary, - "context = %d, count = %d, shaders = 0x%016" PRIxPTR - ", binaryformat = %s, binary = 0x%016" PRIxPTR ", length = %d", - CID(context), count, (uintptr_t)shaders, - GLenumToString(GLenumGroup::DefaultGroup, binaryformat), (uintptr_t)binary, length); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - const ShaderProgramID *shadersPacked = PackParam(shaders); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateShaderBinary(context, count, shadersPacked, binaryformat, binary, length)); - if (isCallValid) - { - context->shaderBinary(count, shadersPacked, binaryformat, binary, length); - } - ANGLE_CAPTURE(ShaderBinary, isCallValid, context, count, shadersPacked, binaryformat, - binary, length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei count, - const GLchar *const *string, - const GLint *length) -{ - Context *context = static_cast(ctx); - EVENT(context, GLShaderSource, - "context = %d, shader = %u, count = %d, string = 0x%016" PRIxPTR - ", length = 0x%016" PRIxPTR "", - CID(context), shader, count, (uintptr_t)string, (uintptr_t)length); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateShaderSource(context, shaderPacked, count, string, length)); - if (isCallValid) - { - context->shaderSource(shaderPacked, count, string, length); - } - ANGLE_CAPTURE(ShaderSource, isCallValid, context, shaderPacked, count, string, length); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SignalSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *dstLayouts) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSignalSemaphoreEXT, - "context = %d, semaphore = %u, numBufferBarriers = %u, buffers = 0x%016" PRIxPTR - ", numTextureBarriers = %u, textures = 0x%016" PRIxPTR ", dstLayouts = 0x%016" PRIxPTR "", - CID(context), semaphore, numBufferBarriers, (uintptr_t)buffers, numTextureBarriers, - (uintptr_t)textures, (uintptr_t)dstLayouts); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - const BufferID *buffersPacked = PackParam(buffers); - const TextureID *texturesPacked = PackParam(textures); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSignalSemaphoreEXT(context, semaphorePacked, numBufferBarriers, buffersPacked, - numTextureBarriers, texturesPacked, dstLayouts)); - if (isCallValid) - { - context->signalSemaphore(semaphorePacked, numBufferBarriers, buffersPacked, - numTextureBarriers, texturesPacked, dstLayouts); - } - ANGLE_CAPTURE(SignalSemaphoreEXT, isCallValid, context, semaphorePacked, numBufferBarriers, - buffersPacked, numTextureBarriers, texturesPacked, dstLayouts); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilFuncContextANGLE(GLeglContext ctx, GLenum func, GLint ref, GLuint mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilFunc, "context = %d, func = %s, ref = %d, mask = %u", CID(context), - GLenumToString(GLenumGroup::StencilFunction, func), ref, mask); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateStencilFunc(context, func, ref, mask)); - if (isCallValid) - { - context->stencilFunc(func, ref, mask); - } - ANGLE_CAPTURE(StencilFunc, isCallValid, context, func, ref, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilFuncSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum func, - GLint ref, - GLuint mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilFuncSeparate, "context = %d, face = %s, func = %s, ref = %d, mask = %u", - CID(context), GLenumToString(GLenumGroup::StencilFaceDirection, face), - GLenumToString(GLenumGroup::StencilFunction, func), ref, mask); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateStencilFuncSeparate(context, face, func, ref, mask)); - if (isCallValid) - { - context->stencilFuncSeparate(face, func, ref, mask); - } - ANGLE_CAPTURE(StencilFuncSeparate, isCallValid, context, face, func, ref, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilMaskContextANGLE(GLeglContext ctx, GLuint mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilMask, "context = %d, mask = %u", CID(context), mask); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateStencilMask(context, mask)); - if (isCallValid) - { - context->stencilMask(mask); - } - ANGLE_CAPTURE(StencilMask, isCallValid, context, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilMaskSeparateContextANGLE(GLeglContext ctx, GLenum face, GLuint mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilMaskSeparate, "context = %d, face = %s, mask = %u", CID(context), - GLenumToString(GLenumGroup::StencilFaceDirection, face), mask); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateStencilMaskSeparate(context, face, mask)); - if (isCallValid) - { - context->stencilMaskSeparate(face, mask); - } - ANGLE_CAPTURE(StencilMaskSeparate, isCallValid, context, face, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilOpContextANGLE(GLeglContext ctx, GLenum fail, GLenum zfail, GLenum zpass) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilOp, "context = %d, fail = %s, zfail = %s, zpass = %s", CID(context), - GLenumToString(GLenumGroup::StencilOp, fail), - GLenumToString(GLenumGroup::StencilOp, zfail), - GLenumToString(GLenumGroup::StencilOp, zpass)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateStencilOp(context, fail, zfail, zpass)); - if (isCallValid) - { - context->stencilOp(fail, zfail, zpass); - } - ANGLE_CAPTURE(StencilOp, isCallValid, context, fail, zfail, zpass); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_StencilOpSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum sfail, - GLenum dpfail, - GLenum dppass) -{ - Context *context = static_cast(ctx); - EVENT(context, GLStencilOpSeparate, - "context = %d, face = %s, sfail = %s, dpfail = %s, dppass = %s", CID(context), - GLenumToString(GLenumGroup::StencilFaceDirection, face), - GLenumToString(GLenumGroup::StencilOp, sfail), - GLenumToString(GLenumGroup::StencilOp, dpfail), - GLenumToString(GLenumGroup::StencilOp, dppass)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateStencilOpSeparate(context, face, sfail, dpfail, dppass)); - if (isCallValid) - { - context->stencilOpSeparate(face, sfail, dpfail, dppass); - } - ANGLE_CAPTURE(StencilOpSeparate, isCallValid, context, face, sfail, dpfail, dppass); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLboolean GL_APIENTRY GL_TestFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTestFenceNV, "context = %d, fence = %u", CID(context), fence); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - FenceNVID fencePacked = PackParam(fence); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTestFenceNV(context, fencePacked)); - if (isCallValid) - { - returnValue = context->testFenceNV(fencePacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(TestFenceNV, isCallValid, context, fencePacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_TexBufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBuffer, "context = %d, target = %s, internalformat = %s, buffer = %u", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBuffer(context, targetPacked, internalformat, bufferPacked)); - if (isCallValid) - { - context->texBuffer(targetPacked, internalformat, bufferPacked); - } - ANGLE_CAPTURE(TexBuffer, isCallValid, context, targetPacked, internalformat, bufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexBufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBufferEXT, "context = %d, target = %s, internalformat = %s, buffer = %u", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexBufferEXT(context, targetPacked, internalformat, bufferPacked)); - if (isCallValid) - { - context->texBuffer(targetPacked, internalformat, bufferPacked); - } - ANGLE_CAPTURE(TexBufferEXT, isCallValid, context, targetPacked, internalformat, - bufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexBufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBufferOES, "context = %d, target = %s, internalformat = %s, buffer = %u", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexBufferOES(context, targetPacked, internalformat, bufferPacked)); - if (isCallValid) - { - context->texBuffer(targetPacked, internalformat, bufferPacked); - } - ANGLE_CAPTURE(TexBufferOES, isCallValid, context, targetPacked, internalformat, - bufferPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBufferRange, - "context = %d, target = %s, internalformat = %s, buffer = %u, offset = %llu, size = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer, - static_cast(offset), static_cast(size)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRange(context, targetPacked, internalformat, - bufferPacked, offset, size)); - if (isCallValid) - { - context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); - } - ANGLE_CAPTURE(TexBufferRange, isCallValid, context, targetPacked, internalformat, - bufferPacked, offset, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBufferRangeEXT, - "context = %d, target = %s, internalformat = %s, buffer = %u, offset = %llu, size = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer, - static_cast(offset), static_cast(size)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRangeEXT(context, targetPacked, internalformat, - bufferPacked, offset, size)); - if (isCallValid) - { - context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); - } - ANGLE_CAPTURE(TexBufferRangeEXT, isCallValid, context, targetPacked, internalformat, - bufferPacked, offset, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexBufferRangeOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexBufferRangeOES, - "context = %d, target = %s, internalformat = %s, buffer = %u, offset = %llu, size = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer, - static_cast(offset), static_cast(size)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - BufferID bufferPacked = PackParam(buffer); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexBufferRangeOES(context, targetPacked, internalformat, - bufferPacked, offset, size)); - if (isCallValid) - { - context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size); - } - ANGLE_CAPTURE(TexBufferRangeOES, isCallValid, context, targetPacked, internalformat, - bufferPacked, offset, size); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexCoordPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexCoordPointer, - "context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", - CID(context), size, GLenumToString(GLenumGroup::TexCoordPointerType, type), stride, - (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexCoordPointer(context, size, typePacked, stride, pointer)); - if (isCallValid) - { - context->texCoordPointer(size, typePacked, stride, pointer); - } - ANGLE_CAPTURE(TexCoordPointer, isCallValid, context, size, typePacked, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnvfContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnvf, "context = %d, target = %s, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvf(context, targetPacked, pnamePacked, param)); - if (isCallValid) - { - context->texEnvf(targetPacked, pnamePacked, param); - } - ANGLE_CAPTURE(TexEnvf, isCallValid, context, targetPacked, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnvfv, "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvfv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->texEnvfv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(TexEnvfv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnviContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnvi, "context = %d, target = %s, pname = %s, param = %d", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvi(context, targetPacked, pnamePacked, param)); - if (isCallValid) - { - context->texEnvi(targetPacked, pnamePacked, param); - } - ANGLE_CAPTURE(TexEnvi, isCallValid, context, targetPacked, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnviv, "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnviv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->texEnviv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(TexEnviv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnvxContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnvx, "context = %d, target = %s, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvx(context, targetPacked, pnamePacked, param)); - if (isCallValid) - { - context->texEnvx(targetPacked, pnamePacked, param); - } - ANGLE_CAPTURE(TexEnvx, isCallValid, context, targetPacked, pnamePacked, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexEnvxv, "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureEnvTarget, target), - GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureEnvTarget targetPacked = PackParam(target); - TextureEnvParameter pnamePacked = PackParam(pname); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexEnvxv(context, targetPacked, pnamePacked, params)); - if (isCallValid) - { - context->texEnvxv(targetPacked, pnamePacked, params); - } - ANGLE_CAPTURE(TexEnvxv, isCallValid, context, targetPacked, pnamePacked, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGenfOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGenfOES, "context = %d, coord = %s, pname = %s, param = %f", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGenfOES(context, coord, pname, param)); - if (isCallValid) - { - context->texGenf(coord, pname, param); - } - ANGLE_CAPTURE(TexGenfOES, isCallValid, context, coord, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGenfvOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGenfvOES(context, coord, pname, params)); - if (isCallValid) - { - context->texGenfv(coord, pname, params); - } - ANGLE_CAPTURE(TexGenfvOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGeniOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGeniOES, "context = %d, coord = %s, pname = %s, param = %d", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGeniOES(context, coord, pname, param)); - if (isCallValid) - { - context->texGeni(coord, pname, param); - } - ANGLE_CAPTURE(TexGeniOES, isCallValid, context, coord, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGenivOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGenivOES(context, coord, pname, params)); - if (isCallValid) - { - context->texGeniv(coord, pname, params); - } - ANGLE_CAPTURE(TexGenivOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGenxOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGenxOES, "context = %d, coord = %s, pname = %s, param = 0x%X", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGenxOES(context, coord, pname, param)); - if (isCallValid) - { - context->texGenx(coord, pname, param); - } - ANGLE_CAPTURE(TexGenxOES, isCallValid, context, coord, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexGenxvOES, - "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureCoordName, coord), - GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexGenxvOES(context, coord, pname, params)); - if (isCallValid) - { - context->texGenxv(coord, pname, params); - } - ANGLE_CAPTURE(TexGenxvOES, isCallValid, context, coord, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage2D, - "context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, " - "border = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat, - width, height, border, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexImage2D(context, targetPacked, level, internalformat, width, - height, border, format, type, pixels)); - if (isCallValid) - { - context->texImage2D(targetPacked, level, internalformat, width, height, border, format, - type, pixels); - } - ANGLE_CAPTURE(TexImage2D, isCallValid, context, targetPacked, level, internalformat, width, - height, border, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage3D, - "context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, " - "depth = %d, border = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat, - width, height, depth, border, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexImage3D(context, targetPacked, level, internalformat, width, - height, depth, border, format, type, pixels)); - if (isCallValid) - { - context->texImage3D(targetPacked, level, internalformat, width, height, depth, border, - format, type, pixels); - } - ANGLE_CAPTURE(TexImage3D, isCallValid, context, targetPacked, level, internalformat, width, - height, depth, border, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage3DOES, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, border = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, border, - GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage3DOES(context, targetPacked, level, internalformat, width, height, - depth, border, format, type, pixels)); - if (isCallValid) - { - context->texImage3D(targetPacked, level, internalformat, width, height, depth, border, - format, type, pixels); - } - ANGLE_CAPTURE(TexImage3DOES, isCallValid, context, targetPacked, level, internalformat, - width, height, depth, border, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIiv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIiv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIiv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIivEXT, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIivEXT(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIivEXT, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIivOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIivOES(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIivOES, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIuiv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuiv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIuiv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIuivEXT, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuivEXT(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIuivEXT, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIuivOES, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterIuivOES(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterIuiv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterIuivOES, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterfContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterf, "context = %d, target = %s, pname = %s, param = %f", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterf(context, targetPacked, pname, param)); - if (isCallValid) - { - context->texParameterf(targetPacked, pname, param); - } - ANGLE_CAPTURE(TexParameterf, isCallValid, context, targetPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterfv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterfv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterfv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterfv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameteri, "context = %d, target = %s, pname = %s, param = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameteri(context, targetPacked, pname, param)); - if (isCallValid) - { - context->texParameteri(targetPacked, pname, param); - } - ANGLE_CAPTURE(TexParameteri, isCallValid, context, targetPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameteriv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameteriv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameteriv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameteriv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterxContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterx, "context = %d, target = %s, pname = %s, param = 0x%X", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterx(context, targetPacked, pname, param)); - if (isCallValid) - { - context->texParameterx(targetPacked, pname, param); - } - ANGLE_CAPTURE(TexParameterx, isCallValid, context, targetPacked, pname, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterxv, - "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexParameterxv(context, targetPacked, pname, params)); - if (isCallValid) - { - context->texParameterxv(targetPacked, pname, params); - } - ANGLE_CAPTURE(TexParameterxv, isCallValid, context, targetPacked, pname, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage1DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage1DEXT, - "context = %d, target = %s, levels = %d, internalformat = %s, width = %d", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage1DEXT(context, target, levels, internalformat, width)); - if (isCallValid) - { - context->texStorage1D(target, levels, internalformat, width); - } - ANGLE_CAPTURE(TexStorage1DEXT, isCallValid, context, target, levels, internalformat, width); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage2D, - "context = %d, target = %s, levels = %d, internalformat = %s, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage2D(context, targetPacked, levels, internalformat, width, height)); - if (isCallValid) - { - context->texStorage2D(targetPacked, levels, internalformat, width, height); - } - ANGLE_CAPTURE(TexStorage2D, isCallValid, context, targetPacked, levels, internalformat, - width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage2DEXT, - "context = %d, target = %s, levels = %d, internalformat = %s, width = %d, height = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage2DEXT(context, targetPacked, levels, internalformat, width, height)); - if (isCallValid) - { - context->texStorage2D(targetPacked, levels, internalformat, width, height); - } - ANGLE_CAPTURE(TexStorage2DEXT, isCallValid, context, targetPacked, levels, internalformat, - width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage2DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage2DMultisample, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, " - "fixedsamplelocations = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, - GLbooleanToString(fixedsamplelocations)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage2DMultisample(context, targetPacked, samples, internalformat, width, - height, fixedsamplelocations)); - if (isCallValid) - { - context->texStorage2DMultisample(targetPacked, samples, internalformat, width, height, - fixedsamplelocations); - } - ANGLE_CAPTURE(TexStorage2DMultisample, isCallValid, context, targetPacked, samples, - internalformat, width, height, fixedsamplelocations); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage3D, - "context = %d, target = %s, levels = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorage3D(context, targetPacked, levels, internalformat, - width, height, depth)); - if (isCallValid) - { - context->texStorage3D(targetPacked, levels, internalformat, width, height, depth); - } - ANGLE_CAPTURE(TexStorage3D, isCallValid, context, targetPacked, levels, internalformat, - width, height, depth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage3DEXT, - "context = %d, target = %s, levels = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorage3DEXT(context, targetPacked, levels, internalformat, - width, height, depth)); - if (isCallValid) - { - context->texStorage3D(targetPacked, levels, internalformat, width, height, depth); - } - ANGLE_CAPTURE(TexStorage3DEXT, isCallValid, context, targetPacked, levels, internalformat, - width, height, depth); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage3DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage3DMultisample, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, fixedsamplelocations = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, - GLbooleanToString(fixedsamplelocations)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage3DMultisample(context, targetPacked, samples, internalformat, width, - height, depth, fixedsamplelocations)); - if (isCallValid) - { - context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height, - depth, fixedsamplelocations); - } - ANGLE_CAPTURE(TexStorage3DMultisample, isCallValid, context, targetPacked, samples, - internalformat, width, height, depth, fixedsamplelocations); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage3DMultisampleOESContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage3DMultisampleOES, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, fixedsamplelocations = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, - GLbooleanToString(fixedsamplelocations)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage3DMultisampleOES(context, targetPacked, samples, internalformat, - width, height, depth, fixedsamplelocations)); - if (isCallValid) - { - context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height, - depth, fixedsamplelocations); - } - ANGLE_CAPTURE(TexStorage3DMultisampleOES, isCallValid, context, targetPacked, samples, - internalformat, width, height, depth, fixedsamplelocations); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMem2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMem2DEXT, - "context = %d, target = %s, levels = %d, internalFormat = %s, width = %d, height = %d, " - "memory = %u, offset = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, memory, - static_cast(offset)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorageMem2DEXT(context, targetPacked, levels, internalFormat, width, - height, memoryPacked, offset)); - if (isCallValid) - { - context->texStorageMem2D(targetPacked, levels, internalFormat, width, height, - memoryPacked, offset); - } - ANGLE_CAPTURE(TexStorageMem2DEXT, isCallValid, context, targetPacked, levels, - internalFormat, width, height, memoryPacked, offset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMem2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMem2DMultisampleEXT, - "context = %d, target = %s, samples = %d, internalFormat = %s, width = %d, height = %d, " - "fixedSampleLocations = %s, memory = %u, offset = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, - GLbooleanToString(fixedSampleLocations), memory, static_cast(offset)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTexStorageMem2DMultisampleEXT( - context, targetPacked, samples, internalFormat, width, - height, fixedSampleLocations, memoryPacked, offset)); - if (isCallValid) - { - context->texStorageMem2DMultisample(targetPacked, samples, internalFormat, width, - height, fixedSampleLocations, memoryPacked, offset); - } - ANGLE_CAPTURE(TexStorageMem2DMultisampleEXT, isCallValid, context, targetPacked, samples, - internalFormat, width, height, fixedSampleLocations, memoryPacked, offset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMem3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMem3DEXT, - "context = %d, target = %s, levels = %d, internalFormat = %s, width = %d, height = %d, " - "depth = %d, memory = %u, offset = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, depth, memory, - static_cast(offset)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorageMem3DEXT(context, targetPacked, levels, internalFormat, width, - height, depth, memoryPacked, offset)); - if (isCallValid) - { - context->texStorageMem3D(targetPacked, levels, internalFormat, width, height, depth, - memoryPacked, offset); - } - ANGLE_CAPTURE(TexStorageMem3DEXT, isCallValid, context, targetPacked, levels, - internalFormat, width, height, depth, memoryPacked, offset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMem3DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMem3DMultisampleEXT, - "context = %d, target = %s, samples = %d, internalFormat = %s, width = %d, height = %d, " - "depth = %d, fixedSampleLocations = %s, memory = %u, offset = %llu", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, depth, - GLbooleanToString(fixedSampleLocations), memory, static_cast(offset)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorageMem3DMultisampleEXT( - context, targetPacked, samples, internalFormat, width, height, - depth, fixedSampleLocations, memoryPacked, offset)); - if (isCallValid) - { - context->texStorageMem3DMultisample(targetPacked, samples, internalFormat, width, - height, depth, fixedSampleLocations, memoryPacked, - offset); - } - ANGLE_CAPTURE(TexStorageMem3DMultisampleEXT, isCallValid, context, targetPacked, samples, - internalFormat, width, height, depth, fixedSampleLocations, memoryPacked, - offset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexSubImage2D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = " - "%d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - width, height, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexSubImage2D(context, targetPacked, level, xoffset, yoffset, - width, height, format, type, pixels)); - if (isCallValid) - { - context->texSubImage2D(targetPacked, level, xoffset, yoffset, width, height, format, - type, pixels); - } - ANGLE_CAPTURE(TexSubImage2D, isCallValid, context, targetPacked, level, xoffset, yoffset, - width, height, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexSubImage3D, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width " - "= %d, height = %d, depth = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexSubImage3D(context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, type, pixels)); - if (isCallValid) - { - context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, - depth, format, type, pixels); - } - ANGLE_CAPTURE(TexSubImage3D, isCallValid, context, targetPacked, level, xoffset, yoffset, - zoffset, width, height, depth, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexSubImage3DOES, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width " - "= %d, height = %d, depth = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexSubImage3DOES(context, targetPacked, level, xoffset, yoffset, zoffset, - width, height, depth, format, type, pixels)); - if (isCallValid) - { - context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height, - depth, format, type, pixels); - } - ANGLE_CAPTURE(TexSubImage3DOES, isCallValid, context, targetPacked, level, xoffset, yoffset, - zoffset, width, height, depth, format, type, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TransformFeedbackVaryingsContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei count, - const GLchar *const *varyings, - GLenum bufferMode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTransformFeedbackVaryings, - "context = %d, program = %u, count = %d, varyings = 0x%016" PRIxPTR ", bufferMode = %s", - CID(context), program, count, (uintptr_t)varyings, - GLenumToString(GLenumGroup::DefaultGroup, bufferMode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateTransformFeedbackVaryings( - context, programPacked, count, varyings, bufferMode)); - if (isCallValid) - { - context->transformFeedbackVaryings(programPacked, count, varyings, bufferMode); - } - ANGLE_CAPTURE(TransformFeedbackVaryings, isCallValid, context, programPacked, count, - varyings, bufferMode); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TranslatefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTranslatef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTranslatef(context, x, y, z)); - if (isCallValid) - { - context->translatef(x, y, z); - } - ANGLE_CAPTURE(Translatef, isCallValid, context, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TranslatexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTranslatex, "context = %d, x = 0x%X, y = 0x%X, z = 0x%X", CID(context), x, y, - z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateTranslatex(context, x, y, z)); - if (isCallValid) - { - context->translatex(x, y, z); - } - ANGLE_CAPTURE(Translatex, isCallValid, context, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1f, "context = %d, location = %d, v0 = %f", CID(context), location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform1f(context, locationPacked, v0)); - if (isCallValid) - { - context->uniform1f(locationPacked, v0); - } - ANGLE_CAPTURE(Uniform1f, isCallValid, context, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1fv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform1fv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform1fv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform1fv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1iContextANGLE(GLeglContext ctx, GLint location, GLint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1i, "context = %d, location = %d, v0 = %d", CID(context), location, v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform1i(context, locationPacked, v0)); - if (isCallValid) - { - context->uniform1i(locationPacked, v0); - } - ANGLE_CAPTURE(Uniform1i, isCallValid, context, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1iv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform1iv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform1iv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform1iv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1ui, "context = %d, location = %d, v0 = %u", CID(context), location, - v0); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform1ui(context, locationPacked, v0)); - if (isCallValid) - { - context->uniform1ui(locationPacked, v0); - } - ANGLE_CAPTURE(Uniform1ui, isCallValid, context, locationPacked, v0); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform1uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform1uiv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform1uiv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform1uiv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform1uiv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2f, "context = %d, location = %d, v0 = %f, v1 = %f", CID(context), - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform2f(context, locationPacked, v0, v1)); - if (isCallValid) - { - context->uniform2f(locationPacked, v0, v1); - } - ANGLE_CAPTURE(Uniform2f, isCallValid, context, locationPacked, v0, v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2fv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform2fv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform2fv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform2fv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2i, "context = %d, location = %d, v0 = %d, v1 = %d", CID(context), - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform2i(context, locationPacked, v0, v1)); - if (isCallValid) - { - context->uniform2i(locationPacked, v0, v1); - } - ANGLE_CAPTURE(Uniform2i, isCallValid, context, locationPacked, v0, v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2iv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform2iv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform2iv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform2iv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2ui, "context = %d, location = %d, v0 = %u, v1 = %u", CID(context), - location, v0, v1); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform2ui(context, locationPacked, v0, v1)); - if (isCallValid) - { - context->uniform2ui(locationPacked, v0, v1); - } - ANGLE_CAPTURE(Uniform2ui, isCallValid, context, locationPacked, v0, v1); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform2uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform2uiv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform2uiv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform2uiv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform2uiv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Uniform3fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3f, "context = %d, location = %d, v0 = %f, v1 = %f, v2 = %f", - CID(context), location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform3f(context, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->uniform3f(locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(Uniform3f, isCallValid, context, locationPacked, v0, v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3fv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform3fv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform3fv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform3fv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Uniform3iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3i, "context = %d, location = %d, v0 = %d, v1 = %d, v2 = %d", - CID(context), location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform3i(context, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->uniform3i(locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(Uniform3i, isCallValid, context, locationPacked, v0, v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform3ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3iv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform3iv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform3iv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform3iv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Uniform3uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3ui, "context = %d, location = %d, v0 = %u, v1 = %u, v2 = %u", - CID(context), location, v0, v1, v2); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUniform3ui(context, locationPacked, v0, v1, v2)); - if (isCallValid) - { - context->uniform3ui(locationPacked, v0, v1, v2); - } - ANGLE_CAPTURE(Uniform3ui, isCallValid, context, locationPacked, v0, v1, v2); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform3uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform3uiv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform3uiv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform3uiv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform3uiv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform4fContextANGLE(GLeglContext ctx, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4f, "context = %d, location = %d, v0 = %f, v1 = %f, v2 = %f, v3 = %f", - CID(context), location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4f(context, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->uniform4f(locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(Uniform4f, isCallValid, context, locationPacked, v0, v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4fv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4fv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform4fv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform4fv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_Uniform4iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4i, "context = %d, location = %d, v0 = %d, v1 = %d, v2 = %d, v3 = %d", - CID(context), location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4i(context, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->uniform4i(locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(Uniform4i, isCallValid, context, locationPacked, v0, v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform4ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4iv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4iv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform4iv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform4iv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform4uiContextANGLE(GLeglContext ctx, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4ui, "context = %d, location = %d, v0 = %u, v1 = %u, v2 = %u, v3 = %u", - CID(context), location, v0, v1, v2, v3); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4ui(context, locationPacked, v0, v1, v2, v3)); - if (isCallValid) - { - context->uniform4ui(locationPacked, v0, v1, v2, v3); - } - ANGLE_CAPTURE(Uniform4ui, isCallValid, context, locationPacked, v0, v1, v2, v3); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_Uniform4uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniform4uiv, - "context = %d, location = %d, count = %d, value = 0x%016" PRIxPTR "", CID(context), - location, count, (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateUniform4uiv(context, locationPacked, count, value)); - if (isCallValid) - { - context->uniform4uiv(locationPacked, count, value); - } - ANGLE_CAPTURE(Uniform4uiv, isCallValid, context, locationPacked, count, value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformBlockBindingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLuint uniformBlockBinding) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformBlockBinding, - "context = %d, program = %u, uniformBlockIndex = %u, uniformBlockBinding = %u", - CID(context), program, uniformBlockIndex, uniformBlockBinding); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformBlockBinding(context, programPacked, uniformBlockIndexPacked, - uniformBlockBinding)); - if (isCallValid) - { - context->uniformBlockBinding(programPacked, uniformBlockIndexPacked, - uniformBlockBinding); - } - ANGLE_CAPTURE(UniformBlockBinding, isCallValid, context, programPacked, - uniformBlockIndexPacked, uniformBlockBinding); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix2fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix2fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix2fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix2fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix2x3fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix2x3fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix2x3fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix2x3fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix2x4fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix2x4fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix2x4fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix2x4fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix3fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix3fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix3fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix3fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix3x2fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix3x2fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix3x2fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix3x2fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix3x4fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix3x4fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix3x4fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix3x4fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix4fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix4fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix4fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix4fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix4x2fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix4x2fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix4x2fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix4x2fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUniformMatrix4x3fv, - "context = %d, location = %d, count = %d, transpose = %s, value = 0x%016" PRIxPTR "", - CID(context), location, count, GLbooleanToString(transpose), (uintptr_t)value); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUniformMatrix4x3fv(context, locationPacked, count, transpose, value)); - if (isCallValid) - { - context->uniformMatrix4x3fv(locationPacked, count, transpose, value); - } - ANGLE_CAPTURE(UniformMatrix4x3fv, isCallValid, context, locationPacked, count, transpose, - value); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -GLboolean GL_APIENTRY GL_UnmapBufferContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUnmapBuffer, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::BufferTargetARB, target)); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUnmapBuffer(context, targetPacked)); - if (isCallValid) - { - returnValue = context->unmapBuffer(targetPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(UnmapBuffer, isCallValid, context, targetPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -GLboolean GL_APIENTRY GL_UnmapBufferOESContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUnmapBufferOES, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, target)); - - GLboolean returnValue; - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUnmapBufferOES(context, targetPacked)); - if (isCallValid) - { - returnValue = context->unmapBuffer(targetPacked); - } - else - { - returnValue = GetDefaultReturnValue(); - } - ANGLE_CAPTURE(UnmapBufferOES, isCallValid, context, targetPacked, returnValue); - } - else - { - GenerateContextLostErrorOnContext(context); - returnValue = GetDefaultReturnValue(); - } - return returnValue; -} - -void GL_APIENTRY GL_UseProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUseProgram, "context = %d, program = %u", CID(context), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateUseProgram(context, programPacked)); - if (isCallValid) - { - context->useProgram(programPacked); - } - ANGLE_CAPTURE(UseProgram, isCallValid, context, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UseProgramStagesContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUseProgramStages, "context = %d, pipeline = %u, stages = %s, program = %u", - CID(context), pipeline, - GLbitfieldToString(GLenumGroup::UseProgramStageMask, stages).c_str(), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUseProgramStages(context, pipelinePacked, stages, programPacked)); - if (isCallValid) - { - context->useProgramStages(pipelinePacked, stages, programPacked); - } - ANGLE_CAPTURE(UseProgramStages, isCallValid, context, pipelinePacked, stages, - programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_UseProgramStagesEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLUseProgramStagesEXT, "context = %d, pipeline = %u, stages = %s, program = %u", - CID(context), pipeline, - GLbitfieldToString(GLenumGroup::UseProgramStageMask, stages).c_str(), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateUseProgramStagesEXT(context, pipelinePacked, stages, programPacked)); - if (isCallValid) - { - context->useProgramStages(pipelinePacked, stages, programPacked); - } - ANGLE_CAPTURE(UseProgramStagesEXT, isCallValid, context, pipelinePacked, stages, - programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ValidateProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - Context *context = static_cast(ctx); - EVENT(context, GLValidateProgram, "context = %d, program = %u", CID(context), program); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateValidateProgram(context, programPacked)); - if (isCallValid) - { - context->validateProgram(programPacked); - } - ANGLE_CAPTURE(ValidateProgram, isCallValid, context, programPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ValidateProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLValidateProgramPipeline, "context = %d, pipeline = %u", CID(context), - pipeline); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateValidateProgramPipeline(context, pipelinePacked)); - if (isCallValid) - { - context->validateProgramPipeline(pipelinePacked); - } - ANGLE_CAPTURE(ValidateProgramPipeline, isCallValid, context, pipelinePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ValidateProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - Context *context = static_cast(ctx); - EVENT(context, GLValidateProgramPipelineEXT, "context = %d, pipeline = %u", CID(context), - pipeline); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProgramPipelineID pipelinePacked = PackParam(pipeline); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateValidateProgramPipelineEXT(context, pipelinePacked)); - if (isCallValid) - { - context->validateProgramPipeline(pipelinePacked); - } - ANGLE_CAPTURE(ValidateProgramPipelineEXT, isCallValid, context, pipelinePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib1fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib1f, "context = %d, index = %u, x = %f", CID(context), index, x); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || ValidateVertexAttrib1f(context, index, x)); - if (isCallValid) - { - context->vertexAttrib1f(index, x); - } - ANGLE_CAPTURE(VertexAttrib1f, isCallValid, context, index, x); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib1fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib1fv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib1fv(context, index, v)); - if (isCallValid) - { - context->vertexAttrib1fv(index, v); - } - ANGLE_CAPTURE(VertexAttrib1fv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib2fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib2f, "context = %d, index = %u, x = %f, y = %f", CID(context), - index, x, y); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib2f(context, index, x, y)); - if (isCallValid) - { - context->vertexAttrib2f(index, x, y); - } - ANGLE_CAPTURE(VertexAttrib2f, isCallValid, context, index, x, y); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib2fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib2fv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib2fv(context, index, v)); - if (isCallValid) - { - context->vertexAttrib2fv(index, v); - } - ANGLE_CAPTURE(VertexAttrib2fv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_VertexAttrib3fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib3f, "context = %d, index = %u, x = %f, y = %f, z = %f", - CID(context), index, x, y, z); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib3f(context, index, x, y, z)); - if (isCallValid) - { - context->vertexAttrib3f(index, x, y, z); - } - ANGLE_CAPTURE(VertexAttrib3f, isCallValid, context, index, x, y, z); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib3fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib3fv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib3fv(context, index, v)); - if (isCallValid) - { - context->vertexAttrib3fv(index, v); - } - ANGLE_CAPTURE(VertexAttrib3fv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib4fContextANGLE(GLeglContext ctx, - GLuint index, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat w) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib4f, "context = %d, index = %u, x = %f, y = %f, z = %f, w = %f", - CID(context), index, x, y, z, w); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib4f(context, index, x, y, z, w)); - if (isCallValid) - { - context->vertexAttrib4f(index, x, y, z, w); - } - ANGLE_CAPTURE(VertexAttrib4f, isCallValid, context, index, x, y, z, w); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttrib4fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttrib4fv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttrib4fv(context, index, v)); - if (isCallValid) - { - context->vertexAttrib4fv(index, v); - } - ANGLE_CAPTURE(VertexAttrib4fv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribBindingContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLuint bindingindex) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribBinding, "context = %d, attribindex = %u, bindingindex = %u", - CID(context), attribindex, bindingindex); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribBinding(context, attribindex, bindingindex)); - if (isCallValid) - { - context->vertexAttribBinding(attribindex, bindingindex); - } - ANGLE_CAPTURE(VertexAttribBinding, isCallValid, context, attribindex, bindingindex); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribDivisorContextANGLE(GLeglContext ctx, GLuint index, GLuint divisor) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribDivisor, "context = %d, index = %u, divisor = %u", CID(context), - index, divisor); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribDivisor(context, index, divisor)); - if (isCallValid) - { - context->vertexAttribDivisor(index, divisor); - } - ANGLE_CAPTURE(VertexAttribDivisor, isCallValid, context, index, divisor); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribDivisorANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribDivisorANGLE, "context = %d, index = %u, divisor = %u", - CID(context), index, divisor); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribDivisorANGLE(context, index, divisor)); - if (isCallValid) - { - context->vertexAttribDivisor(index, divisor); - } - ANGLE_CAPTURE(VertexAttribDivisorANGLE, isCallValid, context, index, divisor); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribDivisorEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribDivisorEXT, "context = %d, index = %u, divisor = %u", CID(context), - index, divisor); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribDivisorEXT(context, index, divisor)); - if (isCallValid) - { - context->vertexAttribDivisor(index, divisor); - } - ANGLE_CAPTURE(VertexAttribDivisorEXT, isCallValid, context, index, divisor); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLboolean normalized, - GLuint relativeoffset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribFormat, - "context = %d, attribindex = %u, size = %d, type = %s, normalized = %s, relativeoffset = " - "%u", - CID(context), attribindex, size, GLenumToString(GLenumGroup::DefaultGroup, type), - GLbooleanToString(normalized), relativeoffset); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribFormat(context, attribindex, size, typePacked, - normalized, relativeoffset)); - if (isCallValid) - { - context->vertexAttribFormat(attribindex, size, typePacked, normalized, relativeoffset); - } - ANGLE_CAPTURE(VertexAttribFormat, isCallValid, context, attribindex, size, typePacked, - normalized, relativeoffset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_VertexAttribI4iContextANGLE(GLeglContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribI4i, "context = %d, index = %u, x = %d, y = %d, z = %d, w = %d", - CID(context), index, x, y, z, w); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4i(context, index, x, y, z, w)); - if (isCallValid) - { - context->vertexAttribI4i(index, x, y, z, w); - } - ANGLE_CAPTURE(VertexAttribI4i, isCallValid, context, index, x, y, z, w); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribI4ivContextANGLE(GLeglContext ctx, GLuint index, const GLint *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribI4iv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4iv(context, index, v)); - if (isCallValid) - { - context->vertexAttribI4iv(index, v); - } - ANGLE_CAPTURE(VertexAttribI4iv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribI4uiContextANGLE(GLeglContext ctx, - GLuint index, - GLuint x, - GLuint y, - GLuint z, - GLuint w) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribI4ui, "context = %d, index = %u, x = %u, y = %u, z = %u, w = %u", - CID(context), index, x, y, z, w); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4ui(context, index, x, y, z, w)); - if (isCallValid) - { - context->vertexAttribI4ui(index, x, y, z, w); - } - ANGLE_CAPTURE(VertexAttribI4ui, isCallValid, context, index, x, y, z, w); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribI4uivContextANGLE(GLeglContext ctx, GLuint index, const GLuint *v) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribI4uiv, "context = %d, index = %u, v = 0x%016" PRIxPTR "", - CID(context), index, (uintptr_t)v); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateVertexAttribI4uiv(context, index, v)); - if (isCallValid) - { - context->vertexAttribI4uiv(index, v); - } - ANGLE_CAPTURE(VertexAttribI4uiv, isCallValid, context, index, v); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribIFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLuint relativeoffset) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribIFormat, - "context = %d, attribindex = %u, size = %d, type = %s, relativeoffset = %u", CID(context), - attribindex, size, GLenumToString(GLenumGroup::DefaultGroup, type), relativeoffset); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateVertexAttribIFormat(context, attribindex, size, typePacked, relativeoffset)); - if (isCallValid) - { - context->vertexAttribIFormat(attribindex, size, typePacked, relativeoffset); - } - ANGLE_CAPTURE(VertexAttribIFormat, isCallValid, context, attribindex, size, typePacked, - relativeoffset); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribIPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribIPointer, - "context = %d, index = %u, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR - "", - CID(context), index, size, GLenumToString(GLenumGroup::VertexAttribPointerType, type), - stride, (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateVertexAttribIPointer(context, index, size, typePacked, stride, pointer)); - if (isCallValid) - { - context->vertexAttribIPointer(index, size, typePacked, stride, pointer); - } - ANGLE_CAPTURE(VertexAttribIPointer, isCallValid, context, index, size, typePacked, stride, - pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexAttribPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLboolean normalized, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexAttribPointer, - "context = %d, index = %u, size = %d, type = %s, normalized = %s, stride = %d, pointer = " - "0x%016" PRIxPTR "", - CID(context), index, size, GLenumToString(GLenumGroup::VertexAttribPointerType, type), - GLbooleanToString(normalized), stride, (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexAttribPointer(context, index, size, typePacked, - normalized, stride, pointer)); - if (isCallValid) - { - context->vertexAttribPointer(index, size, typePacked, normalized, stride, pointer); - } - ANGLE_CAPTURE(VertexAttribPointer, isCallValid, context, index, size, typePacked, - normalized, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexBindingDivisorContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint divisor) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexBindingDivisor, "context = %d, bindingindex = %u, divisor = %u", - CID(context), bindingindex, divisor); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexBindingDivisor(context, bindingindex, divisor)); - if (isCallValid) - { - context->vertexBindingDivisor(bindingindex, divisor); - } - ANGLE_CAPTURE(VertexBindingDivisor, isCallValid, context, bindingindex, divisor); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_VertexPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLVertexPointer, - "context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", - CID(context), size, GLenumToString(GLenumGroup::VertexPointerType, type), stride, - (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - VertexAttribType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateVertexPointer(context, size, typePacked, stride, pointer)); - if (isCallValid) - { - context->vertexPointer(size, typePacked, stride, pointer); - } - ANGLE_CAPTURE(VertexPointer, isCallValid, context, size, typePacked, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_ViewportContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height) -{ - Context *context = static_cast(ctx); - EVENT(context, GLViewport, "context = %d, x = %d, y = %d, width = %d, height = %d", - CID(context), x, y, width, height); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateViewport(context, x, y, width, height)); - if (isCallValid) - { - context->viewport(x, y, width, height); - } - ANGLE_CAPTURE(Viewport, isCallValid, context, x, y, width, height); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_WaitSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *srcLayouts) -{ - Context *context = static_cast(ctx); - EVENT(context, GLWaitSemaphoreEXT, - "context = %d, semaphore = %u, numBufferBarriers = %u, buffers = 0x%016" PRIxPTR - ", numTextureBarriers = %u, textures = 0x%016" PRIxPTR ", srcLayouts = 0x%016" PRIxPTR "", - CID(context), semaphore, numBufferBarriers, (uintptr_t)buffers, numTextureBarriers, - (uintptr_t)textures, (uintptr_t)srcLayouts); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - const BufferID *buffersPacked = PackParam(buffers); - const TextureID *texturesPacked = PackParam(textures); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateWaitSemaphoreEXT(context, semaphorePacked, numBufferBarriers, buffersPacked, - numTextureBarriers, texturesPacked, srcLayouts)); - if (isCallValid) - { - context->waitSemaphore(semaphorePacked, numBufferBarriers, buffersPacked, - numTextureBarriers, texturesPacked, srcLayouts); - } - ANGLE_CAPTURE(WaitSemaphoreEXT, isCallValid, context, semaphorePacked, numBufferBarriers, - buffersPacked, numTextureBarriers, texturesPacked, srcLayouts); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_WaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout) -{ - Context *context = static_cast(ctx); - EVENT(context, GLWaitSync, "context = %d, sync = 0x%016" PRIxPTR ", flags = %s, timeout = %llu", - CID(context), (uintptr_t)sync, - GLbitfieldToString(GLenumGroup::DefaultGroup, flags).c_str(), - static_cast(timeout)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateWaitSync(context, sync, flags, timeout)); - if (isCallValid) - { - context->waitSync(sync, flags, timeout); - } - ANGLE_CAPTURE(WaitSync, isCallValid, context, sync, flags, timeout); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_WeightPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLWeightPointerOES, - "context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", - CID(context), size, GLenumToString(GLenumGroup::DefaultGroup, type), stride, - (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateWeightPointerOES(context, size, type, stride, pointer)); - if (isCallValid) - { - context->weightPointer(size, type, stride, pointer); - } - ANGLE_CAPTURE(WeightPointerOES, isCallValid, context, size, type, stride, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_BindUniformLocationCHROMIUMContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLBindUniformLocationCHROMIUM, - "context = %d, program = %u, location = %d, name = 0x%016" PRIxPTR "", CID(context), - program, location, (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateBindUniformLocationCHROMIUM(context, programPacked, locationPacked, name)); - if (isCallValid) - { - context->bindUniformLocation(programPacked, locationPacked, name); - } - ANGLE_CAPTURE(BindUniformLocationCHROMIUM, isCallValid, context, programPacked, - locationPacked, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CoverageModulationCHROMIUMContextANGLE(GLeglContext ctx, GLenum components) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCoverageModulationCHROMIUM, "context = %d, components = %s", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, components)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCoverageModulationCHROMIUM(context, components)); - if (isCallValid) - { - context->coverageModulation(components); - } - ANGLE_CAPTURE(CoverageModulationCHROMIUM, isCallValid, context, components); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTextureCHROMIUM, - "context = %d, sourceId = %u, sourceLevel = %d, destTarget = %s, destId = %u, destLevel " - "= %d, internalFormat = %d, destType = %s, unpackFlipY = %s, unpackPremultiplyAlpha = " - "%s, unpackUnmultiplyAlpha = %s", - CID(context), sourceId, sourceLevel, - GLenumToString(GLenumGroup::DefaultGroup, destTarget), destId, destLevel, internalFormat, - GLenumToString(GLenumGroup::DefaultGroup, destType), GLbooleanToString(unpackFlipY), - GLbooleanToString(unpackPremultiplyAlpha), GLbooleanToString(unpackUnmultiplyAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID sourceIdPacked = PackParam(sourceId); - TextureTarget destTargetPacked = PackParam(destTarget); - TextureID destIdPacked = PackParam(destId); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTextureCHROMIUM( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); - if (isCallValid) - { - context->copyTexture(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, - destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - ANGLE_CAPTURE(CopyTextureCHROMIUM, isCallValid, context, sourceIdPacked, sourceLevel, - destTargetPacked, destIdPacked, destLevel, internalFormat, destType, - unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopySubTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLint width, - GLint height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopySubTextureCHROMIUM, - "context = %d, sourceId = %u, sourceLevel = %d, destTarget = %s, destId = %u, destLevel " - "= %d, xoffset = %d, yoffset = %d, x = %d, y = %d, width = %d, height = %d, unpackFlipY " - "= %s, unpackPremultiplyAlpha = %s, unpackUnmultiplyAlpha = %s", - CID(context), sourceId, sourceLevel, - GLenumToString(GLenumGroup::DefaultGroup, destTarget), destId, destLevel, xoffset, - yoffset, x, y, width, height, GLbooleanToString(unpackFlipY), - GLbooleanToString(unpackPremultiplyAlpha), GLbooleanToString(unpackUnmultiplyAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID sourceIdPacked = PackParam(sourceId); - TextureTarget destTargetPacked = PackParam(destTarget); - TextureID destIdPacked = PackParam(destId); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopySubTextureCHROMIUM( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, xoffset, yoffset, x, y, width, height, - unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); - if (isCallValid) - { - context->copySubTexture(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, - destLevel, xoffset, yoffset, x, y, width, height, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - ANGLE_CAPTURE(CopySubTextureCHROMIUM, isCallValid, context, sourceIdPacked, sourceLevel, - destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, x, y, width, - height, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLuint destId) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedCopyTextureCHROMIUM, "context = %d, sourceId = %u, destId = %u", - CID(context), sourceId, destId); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID sourceIdPacked = PackParam(sourceId); - TextureID destIdPacked = PackParam(destId); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCompressedCopyTextureCHROMIUM(context, sourceIdPacked, destIdPacked)); - if (isCallValid) - { - context->compressedCopyTexture(sourceIdPacked, destIdPacked); - } - ANGLE_CAPTURE(CompressedCopyTextureCHROMIUM, isCallValid, context, sourceIdPacked, - destIdPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_RequestExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLRequestExtensionANGLE, "context = %d, name = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateRequestExtensionANGLE(context, name)); - if (isCallValid) - { - context->requestExtension(name); - } - ANGLE_CAPTURE(RequestExtensionANGLE, isCallValid, context, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DisableExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar *name) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDisableExtensionANGLE, "context = %d, name = 0x%016" PRIxPTR "", CID(context), - (uintptr_t)name); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDisableExtensionANGLE(context, name)); - if (isCallValid) - { - context->disableExtension(name); - } - ANGLE_CAPTURE(DisableExtensionANGLE, isCallValid, context, name); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBooleanvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLboolean *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBooleanvRobustANGLE, - "context = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetBooleanvRobustANGLE(context, pname, bufSize, length, params)); - if (isCallValid) - { - context->getBooleanvRobust(pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetBooleanvRobustANGLE, isCallValid, context, pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferParameterivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameterivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getBufferParameterivRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetBufferParameterivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFloatvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFloatvRobustANGLE, - "context = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFloatvRobustANGLE(context, pname, bufSize, length, params)); - if (isCallValid) - { - context->getFloatvRobust(pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetFloatvRobustANGLE, isCallValid, context, pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFramebufferAttachmentParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFramebufferAttachmentParameterivRobustANGLE, - "context = %d, target = %s, attachment = %s, pname = %s, bufSize = %d, length = " - "0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, attachment), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetFramebufferAttachmentParameterivRobustANGLE( - context, target, attachment, pname, bufSize, length, params)); - if (isCallValid) - { - context->getFramebufferAttachmentParameterivRobust(target, attachment, pname, bufSize, - length, params); - } - ANGLE_CAPTURE(GetFramebufferAttachmentParameterivRobustANGLE, isCallValid, context, target, - attachment, pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetIntegervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetIntegervRobustANGLE, - "context = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetIntegervRobustANGLE(context, pname, bufSize, length, data)); - if (isCallValid) - { - context->getIntegervRobust(pname, bufSize, length, data); - } - ANGLE_CAPTURE(GetIntegervRobustANGLE, isCallValid, context, pname, bufSize, length, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramivRobustANGLE, - "context = %d, program = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetProgramivRobustANGLE(context, programPacked, pname, bufSize, - length, params)); - if (isCallValid) - { - context->getProgramivRobust(programPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetProgramivRobustANGLE, isCallValid, context, programPacked, pname, bufSize, - length, params); - } - else - {} -} - -void GL_APIENTRY GL_GetRenderbufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetRenderbufferParameterivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetRenderbufferParameterivRobustANGLE( - context, target, pname, bufSize, length, params)); - if (isCallValid) - { - context->getRenderbufferParameterivRobust(target, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetRenderbufferParameterivRobustANGLE, isCallValid, context, target, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetShaderivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetShaderivRobustANGLE, - "context = %d, shader = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), shader, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID shaderPacked = PackParam(shader); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetShaderivRobustANGLE(context, shaderPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getShaderivRobust(shaderPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetShaderivRobustANGLE, isCallValid, context, shaderPacked, pname, bufSize, - length, params); - } - else - {} -} - -void GL_APIENTRY GL_GetTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterfvRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterfvRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getTexParameterfvRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetTexParameterfvRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getTexParameterivRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetTexParameterivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformfvRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformfvRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); - if (isCallValid) - { - context->getUniformfvRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetUniformfvRobustANGLE, isCallValid, context, programPacked, locationPacked, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformivRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); - if (isCallValid) - { - context->getUniformivRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetUniformivRobustANGLE, isCallValid, context, programPacked, locationPacked, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribfvRobustANGLE, - "context = %d, index = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), index, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribfvRobustANGLE(context, index, pname, bufSize, length, params)); - if (isCallValid) - { - context->getVertexAttribfvRobust(index, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetVertexAttribfvRobustANGLE, isCallValid, context, index, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribivRobustANGLE, - "context = %d, index = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), index, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribivRobustANGLE(context, index, pname, bufSize, length, params)); - if (isCallValid) - { - context->getVertexAttribivRobust(index, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetVertexAttribivRobustANGLE, isCallValid, context, index, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **pointer) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribPointervRobustANGLE, - "context = %d, index = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", pointer = 0x%016" PRIxPTR "", - CID(context), index, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)pointer); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribPointervRobustANGLE( - context, index, pname, bufSize, length, pointer)); - if (isCallValid) - { - context->getVertexAttribPointervRobust(index, pname, bufSize, length, pointer); - } - ANGLE_CAPTURE(GetVertexAttribPointervRobustANGLE, isCallValid, context, index, pname, - bufSize, length, pointer); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReadPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadPixelsRobustANGLE, - "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize " - "= %d, length = 0x%016" PRIxPTR ", columns = 0x%016" PRIxPTR ", rows = 0x%016" PRIxPTR - ", pixels = 0x%016" PRIxPTR "", - CID(context), x, y, width, height, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)length, - (uintptr_t)columns, (uintptr_t)rows, (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadPixelsRobustANGLE(context, x, y, width, height, format, type, bufSize, - length, columns, rows, pixels)); - if (isCallValid) - { - context->readPixelsRobust(x, y, width, height, format, type, bufSize, length, columns, - rows, pixels); - } - ANGLE_CAPTURE(ReadPixelsRobustANGLE, isCallValid, context, x, y, width, height, format, - type, bufSize, length, columns, rows, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage2DRobustANGLE, - "context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, " - "border = %d, format = %s, type = %s, bufSize = %d, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, internalformat, - width, height, border, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage2DRobustANGLE(context, targetPacked, level, internalformat, width, - height, border, format, type, bufSize, pixels)); - if (isCallValid) - { - context->texImage2DRobust(targetPacked, level, internalformat, width, height, border, - format, type, bufSize, pixels); - } - ANGLE_CAPTURE(TexImage2DRobustANGLE, isCallValid, context, targetPacked, level, - internalformat, width, height, border, format, type, bufSize, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterfvRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterfvRobustANGLE(context, targetPacked, pname, bufSize, params)); - if (isCallValid) - { - context->texParameterfvRobust(targetPacked, pname, bufSize, params); - } - ANGLE_CAPTURE(TexParameterfvRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterivRobustANGLE(context, targetPacked, pname, bufSize, params)); - if (isCallValid) - { - context->texParameterivRobust(targetPacked, pname, bufSize, params); - } - ANGLE_CAPTURE(TexParameterivRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexSubImage2DRobustANGLE, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = " - "%d, format = %s, type = %s, bufSize = %d, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, xoffset, yoffset, - width, height, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexSubImage2DRobustANGLE(context, targetPacked, level, xoffset, yoffset, width, - height, format, type, bufSize, pixels)); - if (isCallValid) - { - context->texSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, height, - format, type, bufSize, pixels); - } - ANGLE_CAPTURE(TexSubImage2DRobustANGLE, isCallValid, context, targetPacked, level, xoffset, - yoffset, width, height, format, type, bufSize, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage3DRobustANGLE, - "context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, " - "depth = %d, border = %d, format = %s, type = %s, bufSize = %d, pixels = 0x%016" PRIxPTR - "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, internalformat, - width, height, depth, border, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage3DRobustANGLE(context, targetPacked, level, internalformat, width, - height, depth, border, format, type, bufSize, pixels)); - if (isCallValid) - { - context->texImage3DRobust(targetPacked, level, internalformat, width, height, depth, - border, format, type, bufSize, pixels); - } - ANGLE_CAPTURE(TexImage3DRobustANGLE, isCallValid, context, targetPacked, level, - internalformat, width, height, depth, border, format, type, bufSize, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - Context *context = static_cast(ctx); - EVENT( - context, GLTexSubImage3DRobustANGLE, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width = " - "%d, height = %d, depth = %d, format = %s, type = %s, bufSize = %d, pixels = 0x%016" PRIxPTR - "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexSubImage3DRobustANGLE(context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, - format, type, bufSize, pixels)); - if (isCallValid) - { - context->texSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, type, bufSize, pixels); - } - ANGLE_CAPTURE(TexSubImage3DRobustANGLE, isCallValid, context, targetPacked, level, xoffset, - yoffset, zoffset, width, height, depth, format, type, bufSize, pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexImage2DRobustANGLE, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "border = %d, imageSize = %d, dataSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, - GLenumToString(GLenumGroup::DefaultGroup, internalformat), width, height, border, - imageSize, dataSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCompressedTexImage2DRobustANGLE( - context, targetPacked, level, internalformat, width, - height, border, imageSize, dataSize, data)); - if (isCallValid) - { - context->compressedTexImage2DRobust(targetPacked, level, internalformat, width, height, - border, imageSize, dataSize, data); - } - ANGLE_CAPTURE(CompressedTexImage2DRobustANGLE, isCallValid, context, targetPacked, level, - internalformat, width, height, border, imageSize, dataSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLsizei xoffset, - GLsizei yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexSubImage2DRobustANGLE, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = " - "%d, format = %s, imageSize = %d, dataSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, xoffset, yoffset, - width, height, GLenumToString(GLenumGroup::DefaultGroup, format), imageSize, dataSize, - (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCompressedTexSubImage2DRobustANGLE( - context, targetPacked, level, xoffset, yoffset, width, - height, format, imageSize, dataSize, data)); - if (isCallValid) - { - context->compressedTexSubImage2DRobust(targetPacked, level, xoffset, yoffset, width, - height, format, imageSize, dataSize, data); - } - ANGLE_CAPTURE(CompressedTexSubImage2DRobustANGLE, isCallValid, context, targetPacked, level, - xoffset, yoffset, width, height, format, imageSize, dataSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexImage3DRobustANGLE, - "context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, " - "depth = %d, border = %d, imageSize = %d, dataSize = %d, data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, - GLenumToString(GLenumGroup::DefaultGroup, internalformat), width, height, depth, border, - imageSize, dataSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateCompressedTexImage3DRobustANGLE( - context, targetPacked, level, internalformat, width, - height, depth, border, imageSize, dataSize, data)); - if (isCallValid) - { - context->compressedTexImage3DRobust(targetPacked, level, internalformat, width, height, - depth, border, imageSize, dataSize, data); - } - ANGLE_CAPTURE(CompressedTexImage3DRobustANGLE, isCallValid, context, targetPacked, level, - internalformat, width, height, depth, border, imageSize, dataSize, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CompressedTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCompressedTexSubImage3DRobustANGLE, - "context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width " - "= %d, height = %d, depth = %d, format = %s, imageSize = %d, dataSize = %d, data = " - "0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, xoffset, yoffset, - zoffset, width, height, depth, GLenumToString(GLenumGroup::DefaultGroup, format), - imageSize, dataSize, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCompressedTexSubImage3DRobustANGLE( - context, targetPacked, level, xoffset, yoffset, zoffset, width, - height, depth, format, imageSize, dataSize, data)); - if (isCallValid) - { - context->compressedTexSubImage3DRobust(targetPacked, level, xoffset, yoffset, zoffset, - width, height, depth, format, imageSize, - dataSize, data); - } - ANGLE_CAPTURE(CompressedTexSubImage3DRobustANGLE, isCallValid, context, targetPacked, level, - xoffset, yoffset, zoffset, width, height, depth, format, imageSize, dataSize, - data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetQueryivRobustANGLE(context, targetPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getQueryivRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetQueryivRobustANGLE, isCallValid, context, targetPacked, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryObjectuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectuivRobustANGLE, - "context = %d, id = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), id, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectuivRobustANGLE( - context, idPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getQueryObjectuivRobust(idPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetQueryObjectuivRobustANGLE, isCallValid, context, idPacked, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferPointervRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferPointervRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getBufferPointervRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetBufferPointervRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetIntegeri_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetIntegeri_vRobustANGLE, - "context = %d, target = %s, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), index, bufSize, - (uintptr_t)length, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetIntegeri_vRobustANGLE(context, target, index, bufSize, length, data)); - if (isCallValid) - { - context->getIntegeri_vRobust(target, index, bufSize, length, data); - } - ANGLE_CAPTURE(GetIntegeri_vRobustANGLE, isCallValid, context, target, index, bufSize, - length, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInternalformativRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInternalformativRobustANGLE, - "context = %d, target = %s, internalformat = %s, pname = %s, bufSize = %d, length = " - "0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, internalformat), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetInternalformativRobustANGLE(context, target, internalformat, - pname, bufSize, length, params)); - if (isCallValid) - { - context->getInternalformativRobust(target, internalformat, pname, bufSize, length, - params); - } - ANGLE_CAPTURE(GetInternalformativRobustANGLE, isCallValid, context, target, internalformat, - pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribIivRobustANGLE, - "context = %d, index = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), index, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetVertexAttribIivRobustANGLE(context, index, pname, bufSize, length, params)); - if (isCallValid) - { - context->getVertexAttribIivRobust(index, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetVertexAttribIivRobustANGLE, isCallValid, context, index, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetVertexAttribIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetVertexAttribIuivRobustANGLE, - "context = %d, index = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), index, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetVertexAttribIuivRobustANGLE( - context, index, pname, bufSize, length, params)); - if (isCallValid) - { - context->getVertexAttribIuivRobust(index, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetVertexAttribIuivRobustANGLE, isCallValid, context, index, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetUniformuivRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetUniformuivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); - if (isCallValid) - { - context->getUniformuivRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetUniformuivRobustANGLE, isCallValid, context, programPacked, locationPacked, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetActiveUniformBlockivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetActiveUniformBlockivRobustANGLE, - "context = %d, program = %u, uniformBlockIndex = %u, pname = %s, bufSize = %d, length = " - "0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "", - CID(context), program, uniformBlockIndex, - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformBlockIndex uniformBlockIndexPacked = PackParam(uniformBlockIndex); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetActiveUniformBlockivRobustANGLE( - context, programPacked, uniformBlockIndexPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getActiveUniformBlockivRobust(programPacked, uniformBlockIndexPacked, pname, - bufSize, length, params); - } - ANGLE_CAPTURE(GetActiveUniformBlockivRobustANGLE, isCallValid, context, programPacked, - uniformBlockIndexPacked, pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInteger64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInteger64vRobustANGLE, - "context = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetInteger64vRobustANGLE(context, pname, bufSize, length, data)); - if (isCallValid) - { - context->getInteger64vRobust(pname, bufSize, length, data); - } - ANGLE_CAPTURE(GetInteger64vRobustANGLE, isCallValid, context, pname, bufSize, length, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetInteger64i_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint64 *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetInteger64i_vRobustANGLE, - "context = %d, target = %s, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), index, bufSize, - (uintptr_t)length, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetInteger64i_vRobustANGLE(context, target, index, bufSize, length, data)); - if (isCallValid) - { - context->getInteger64i_vRobust(target, index, bufSize, length, data); - } - ANGLE_CAPTURE(GetInteger64i_vRobustANGLE, isCallValid, context, target, index, bufSize, - length, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBufferParameteri64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBufferParameteri64vRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - BufferBinding targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetBufferParameteri64vRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getBufferParameteri64vRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetBufferParameteri64vRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLuint pname, - GLsizei bufSize, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterivRobustANGLE, - "context = %d, sampler = %u, pname = %u, bufSize = %d, param = 0x%016" PRIxPTR "", - CID(context), sampler, pname, bufSize, (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterivRobustANGLE(context, samplerPacked, pname, bufSize, param)); - if (isCallValid) - { - context->samplerParameterivRobust(samplerPacked, pname, bufSize, param); - } - ANGLE_CAPTURE(SamplerParameterivRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLfloat *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterfvRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, param = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterfvRobustANGLE(context, samplerPacked, pname, bufSize, param)); - if (isCallValid) - { - context->samplerParameterfvRobust(samplerPacked, pname, bufSize, param); - } - ANGLE_CAPTURE(SamplerParameterfvRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterivRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterivRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getSamplerParameterivRobust(samplerPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetSamplerParameterivRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterfvRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterfvRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getSamplerParameterfvRobust(samplerPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetSamplerParameterfvRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetFramebufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetFramebufferParameterivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetFramebufferParameterivRobustANGLE( - context, target, pname, bufSize, length, params)); - if (isCallValid) - { - context->getFramebufferParameterivRobust(target, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetFramebufferParameterivRobustANGLE, isCallValid, context, target, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetProgramInterfaceivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetProgramInterfaceivRobustANGLE, - "context = %d, program = %u, programInterface = %s, pname = %s, bufSize = %d, length = " - "0x%016" PRIxPTR ", params = 0x%016" PRIxPTR "", - CID(context), program, GLenumToString(GLenumGroup::DefaultGroup, programInterface), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetProgramInterfaceivRobustANGLE(context, programPacked, programInterface, - pname, bufSize, length, params)); - if (isCallValid) - { - context->getProgramInterfaceivRobust(programPacked, programInterface, pname, bufSize, - length, params); - } - ANGLE_CAPTURE(GetProgramInterfaceivRobustANGLE, isCallValid, context, programPacked, - programInterface, pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetBooleani_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLboolean *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetBooleani_vRobustANGLE, - "context = %d, target = %s, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), index, bufSize, - (uintptr_t)length, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetBooleani_vRobustANGLE(context, target, index, bufSize, length, data)); - if (isCallValid) - { - context->getBooleani_vRobust(target, index, bufSize, length, data); - } - ANGLE_CAPTURE(GetBooleani_vRobustANGLE, isCallValid, context, target, index, bufSize, - length, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMultisamplefvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLfloat *val) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMultisamplefvRobustANGLE, - "context = %d, pname = %s, index = %u, bufSize = %d, length = 0x%016" PRIxPTR - ", val = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), index, bufSize, - (uintptr_t)length, (uintptr_t)val); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetMultisamplefvRobustANGLE(context, pname, index, bufSize, length, val)); - if (isCallValid) - { - context->getMultisamplefvRobust(pname, index, bufSize, length, val); - } - ANGLE_CAPTURE(GetMultisamplefvRobustANGLE, isCallValid, context, pname, index, bufSize, - length, val); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameterivRobustANGLE, - "context = %d, target = %s, level = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexLevelParameterivRobustANGLE( - context, targetPacked, level, pname, bufSize, length, params)); - if (isCallValid) - { - context->getTexLevelParameterivRobust(targetPacked, level, pname, bufSize, length, - params); - } - ANGLE_CAPTURE(GetTexLevelParameterivRobustANGLE, isCallValid, context, targetPacked, level, - pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameterfvRobustANGLE, - "context = %d, target = %s, level = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexLevelParameterfvRobustANGLE( - context, targetPacked, level, pname, bufSize, length, params)); - if (isCallValid) - { - context->getTexLevelParameterfvRobust(targetPacked, level, pname, bufSize, length, - params); - } - ANGLE_CAPTURE(GetTexLevelParameterfvRobustANGLE, isCallValid, context, targetPacked, level, - pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetPointervRobustANGLERobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetPointervRobustANGLERobustANGLE, - "context = %d, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetPointervRobustANGLERobustANGLE(context, pname, bufSize, length, params)); - if (isCallValid) - { - context->getPointervRobustANGLERobust(pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetPointervRobustANGLERobustANGLE, isCallValid, context, pname, bufSize, - length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ReadnPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *data) -{ - Context *context = static_cast(ctx); - EVENT(context, GLReadnPixelsRobustANGLE, - "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize " - "= %d, length = 0x%016" PRIxPTR ", columns = 0x%016" PRIxPTR ", rows = 0x%016" PRIxPTR - ", data = 0x%016" PRIxPTR "", - CID(context), x, y, width, height, GLenumToString(GLenumGroup::DefaultGroup, format), - GLenumToString(GLenumGroup::DefaultGroup, type), bufSize, (uintptr_t)length, - (uintptr_t)columns, (uintptr_t)rows, (uintptr_t)data); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateReadnPixelsRobustANGLE(context, x, y, width, height, format, type, bufSize, - length, columns, rows, data)); - if (isCallValid) - { - context->readnPixelsRobust(x, y, width, height, format, type, bufSize, length, columns, - rows, data); - } - ANGLE_CAPTURE(ReadnPixelsRobustANGLE, isCallValid, context, x, y, width, height, format, - type, bufSize, length, columns, rows, data); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformfvRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetnUniformfvRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); - if (isCallValid) - { - context->getnUniformfvRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetnUniformfvRobustANGLE, isCallValid, context, programPacked, locationPacked, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformivRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetnUniformivRobustANGLE(context, programPacked, locationPacked, - bufSize, length, params)); - if (isCallValid) - { - context->getnUniformivRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetnUniformivRobustANGLE, isCallValid, context, programPacked, locationPacked, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetnUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetnUniformuivRobustANGLE, - "context = %d, program = %u, location = %d, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), program, location, bufSize, (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ShaderProgramID programPacked = PackParam(program); - UniformLocation locationPacked = PackParam(location); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetnUniformuivRobustANGLE( - context, programPacked, locationPacked, bufSize, length, params)); - if (isCallValid) - { - context->getnUniformuivRobust(programPacked, locationPacked, bufSize, length, params); - } - ANGLE_CAPTURE(GetnUniformuivRobustANGLE, isCallValid, context, programPacked, - locationPacked, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterIivRobustANGLE(context, targetPacked, pname, bufSize, params)); - if (isCallValid) - { - context->texParameterIivRobust(targetPacked, pname, bufSize, params); - } - ANGLE_CAPTURE(TexParameterIivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexParameterIuivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexParameterIuivRobustANGLE(context, targetPacked, pname, bufSize, params)); - if (isCallValid) - { - context->texParameterIuivRobust(targetPacked, pname, bufSize, params); - } - ANGLE_CAPTURE(TexParameterIuivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getTexParameterIivRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetTexParameterIivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexParameterIuivRobustANGLE, - "context = %d, target = %s, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), - GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, (uintptr_t)length, - (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetTexParameterIuivRobustANGLE(context, targetPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getTexParameterIuivRobust(targetPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetTexParameterIuivRobustANGLE, isCallValid, context, targetPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIivRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, param = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateSamplerParameterIivRobustANGLE(context, samplerPacked, pname, bufSize, param)); - if (isCallValid) - { - context->samplerParameterIivRobust(samplerPacked, pname, bufSize, param); - } - ANGLE_CAPTURE(SamplerParameterIivRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLuint *param) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSamplerParameterIuivRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, param = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)param); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSamplerParameterIuivRobustANGLE( - context, samplerPacked, pname, bufSize, param)); - if (isCallValid) - { - context->samplerParameterIuivRobust(samplerPacked, pname, bufSize, param); - } - ANGLE_CAPTURE(SamplerParameterIuivRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, param); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIivRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIivRobustANGLE(context, samplerPacked, pname, - bufSize, length, params)); - if (isCallValid) - { - context->getSamplerParameterIivRobust(samplerPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetSamplerParameterIivRobustANGLE, isCallValid, context, samplerPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetSamplerParameterIuivRobustANGLE, - "context = %d, sampler = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), sampler, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SamplerID samplerPacked = PackParam(sampler); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetSamplerParameterIuivRobustANGLE( - context, samplerPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getSamplerParameterIuivRobust(samplerPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetSamplerParameterIuivRobustANGLE, isCallValid, context, samplerPacked, - pname, bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetQueryObjectivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectivRobustANGLE, - "context = %d, id = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), id, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectivRobustANGLE( - context, idPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getQueryObjectivRobust(idPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetQueryObjectivRobustANGLE, isCallValid, context, idPacked, pname, bufSize, - length, params); - } - else - {} -} - -void GL_APIENTRY GL_GetQueryObjecti64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjecti64vRobustANGLE, - "context = %d, id = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), id, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjecti64vRobustANGLE( - context, idPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getQueryObjecti64vRobust(idPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetQueryObjecti64vRobustANGLE, isCallValid, context, idPacked, pname, bufSize, - length, params); - } - else - {} -} - -void GL_APIENTRY GL_GetQueryObjectui64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint64 *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetQueryObjectui64vRobustANGLE, - "context = %d, id = %u, pname = %s, bufSize = %d, length = 0x%016" PRIxPTR - ", params = 0x%016" PRIxPTR "", - CID(context), id, GLenumToString(GLenumGroup::DefaultGroup, pname), bufSize, - (uintptr_t)length, (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - QueryID idPacked = PackParam(id); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateGetQueryObjectui64vRobustANGLE( - context, idPacked, pname, bufSize, length, params)); - if (isCallValid) - { - context->getQueryObjectui64vRobust(idPacked, pname, bufSize, length, params); - } - ANGLE_CAPTURE(GetQueryObjectui64vRobustANGLE, isCallValid, context, idPacked, pname, - bufSize, length, params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopyTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopyTexture3DANGLE, - "context = %d, sourceId = %u, sourceLevel = %d, destTarget = %s, destId = %u, destLevel " - "= %d, internalFormat = %d, destType = %s, unpackFlipY = %s, unpackPremultiplyAlpha = " - "%s, unpackUnmultiplyAlpha = %s", - CID(context), sourceId, sourceLevel, - GLenumToString(GLenumGroup::DefaultGroup, destTarget), destId, destLevel, internalFormat, - GLenumToString(GLenumGroup::DefaultGroup, destType), GLbooleanToString(unpackFlipY), - GLbooleanToString(unpackPremultiplyAlpha), GLbooleanToString(unpackUnmultiplyAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID sourceIdPacked = PackParam(sourceId); - TextureTarget destTargetPacked = PackParam(destTarget); - TextureID destIdPacked = PackParam(destId); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateCopyTexture3DANGLE( - context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); - if (isCallValid) - { - context->copyTexture3D(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, - destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - ANGLE_CAPTURE(CopyTexture3DANGLE, isCallValid, context, sourceIdPacked, sourceLevel, - destTargetPacked, destIdPacked, destLevel, internalFormat, destType, - unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_CopySubTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLint z, - GLint width, - GLint height, - GLint depth, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - Context *context = static_cast(ctx); - EVENT(context, GLCopySubTexture3DANGLE, - "context = %d, sourceId = %u, sourceLevel = %d, destTarget = %s, destId = %u, destLevel " - "= %d, xoffset = %d, yoffset = %d, zoffset = %d, x = %d, y = %d, z = %d, width = %d, " - "height = %d, depth = %d, unpackFlipY = %s, unpackPremultiplyAlpha = %s, " - "unpackUnmultiplyAlpha = %s", - CID(context), sourceId, sourceLevel, - GLenumToString(GLenumGroup::DefaultGroup, destTarget), destId, destLevel, xoffset, - yoffset, zoffset, x, y, z, width, height, depth, GLbooleanToString(unpackFlipY), - GLbooleanToString(unpackPremultiplyAlpha), GLbooleanToString(unpackUnmultiplyAlpha)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureID sourceIdPacked = PackParam(sourceId); - TextureTarget destTargetPacked = PackParam(destTarget); - TextureID destIdPacked = PackParam(destId); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateCopySubTexture3DANGLE(context, sourceIdPacked, sourceLevel, destTargetPacked, - destIdPacked, destLevel, xoffset, yoffset, zoffset, x, y, - z, width, height, depth, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha)); - if (isCallValid) - { - context->copySubTexture3D(sourceIdPacked, sourceLevel, destTargetPacked, destIdPacked, - destLevel, xoffset, yoffset, zoffset, x, y, z, width, height, - depth, unpackFlipY, unpackPremultiplyAlpha, - unpackUnmultiplyAlpha); - } - ANGLE_CAPTURE(CopySubTexture3DANGLE, isCallValid, context, sourceIdPacked, sourceLevel, - destTargetPacked, destIdPacked, destLevel, xoffset, yoffset, zoffset, x, y, z, - width, height, depth, unpackFlipY, unpackPremultiplyAlpha, - unpackUnmultiplyAlpha); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorage2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorage2DMultisampleANGLE, - "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, " - "fixedsamplelocations = %s", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), samples, - GLenumToString(GLenumGroup::DefaultGroup, internalformat), width, height, - GLbooleanToString(fixedsamplelocations)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorage2DMultisampleANGLE(context, targetPacked, samples, internalformat, - width, height, fixedsamplelocations)); - if (isCallValid) - { - context->texStorage2DMultisample(targetPacked, samples, internalformat, width, height, - fixedsamplelocations); - } - ANGLE_CAPTURE(TexStorage2DMultisampleANGLE, isCallValid, context, targetPacked, samples, - internalformat, width, height, fixedsamplelocations); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterivANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameterivANGLE, - "context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameterivANGLE(context, targetPacked, level, pname, params)); - if (isCallValid) - { - context->getTexLevelParameteriv(targetPacked, level, pname, params); - } - ANGLE_CAPTURE(GetTexLevelParameterivANGLE, isCallValid, context, targetPacked, level, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexLevelParameterfvANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexLevelParameterfvANGLE, - "context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::DefaultGroup, target), level, - GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexLevelParameterfvANGLE(context, targetPacked, level, pname, params)); - if (isCallValid) - { - context->getTexLevelParameterfv(targetPacked, level, pname, params); - } - ANGLE_CAPTURE(GetTexLevelParameterfvANGLE, isCallValid, context, targetPacked, level, pname, - params); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiDrawArraysANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawArraysANGLE, - "context = %d, mode = %s, firsts = 0x%016" PRIxPTR ", counts = 0x%016" PRIxPTR - ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)firsts, - (uintptr_t)counts, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMultiDrawArraysANGLE(context, modePacked, firsts, counts, drawcount)); - if (isCallValid) - { - context->multiDrawArrays(modePacked, firsts, counts, drawcount); - } - ANGLE_CAPTURE(MultiDrawArraysANGLE, isCallValid, context, modePacked, firsts, counts, - drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawArraysInstancedANGLE, - "context = %d, mode = %s, firsts = 0x%016" PRIxPTR ", counts = 0x%016" PRIxPTR - ", instanceCounts = 0x%016" PRIxPTR ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)firsts, - (uintptr_t)counts, (uintptr_t)instanceCounts, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMultiDrawArraysInstancedANGLE( - context, modePacked, firsts, counts, instanceCounts, drawcount)); - if (isCallValid) - { - context->multiDrawArraysInstanced(modePacked, firsts, counts, instanceCounts, - drawcount); - } - ANGLE_CAPTURE(MultiDrawArraysInstancedANGLE, isCallValid, context, modePacked, firsts, - counts, instanceCounts, drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiDrawElementsANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawElementsANGLE, - "context = %d, mode = %s, counts = 0x%016" PRIxPTR ", type = %s, indices = 0x%016" PRIxPTR - ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)counts, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMultiDrawElementsANGLE(context, modePacked, counts, typePacked, - indices, drawcount)); - if (isCallValid) - { - context->multiDrawElements(modePacked, counts, typePacked, indices, drawcount); - } - ANGLE_CAPTURE(MultiDrawElementsANGLE, isCallValid, context, modePacked, counts, typePacked, - indices, drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_MultiDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawElementsInstancedANGLE, - "context = %d, mode = %s, counts = 0x%016" PRIxPTR ", type = %s, indices = 0x%016" PRIxPTR - ", instanceCounts = 0x%016" PRIxPTR ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)counts, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, - (uintptr_t)instanceCounts, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMultiDrawElementsInstancedANGLE(context, modePacked, counts, typePacked, - indices, instanceCounts, drawcount)); - if (isCallValid) - { - context->multiDrawElementsInstanced(modePacked, counts, typePacked, indices, - instanceCounts, drawcount); - } - ANGLE_CAPTURE(MultiDrawElementsInstancedANGLE, isCallValid, context, modePacked, counts, - typePacked, indices, instanceCounts, drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_DrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instanceCount, - GLuint baseInstance) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawArraysInstancedBaseInstanceANGLE, - "context = %d, mode = %s, first = %d, count = %d, instanceCount = %d, baseInstance = %u", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, - instanceCount, baseInstance); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateDrawArraysInstancedBaseInstanceANGLE( - context, modePacked, first, count, instanceCount, baseInstance)); - if (isCallValid) - { - context->drawArraysInstancedBaseInstance(modePacked, first, count, instanceCount, - baseInstance); - } - ANGLE_CAPTURE(DrawArraysInstancedBaseInstanceANGLE, isCallValid, context, modePacked, first, - count, instanceCount, baseInstance); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_DrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const GLvoid *indices, - GLsizei instanceCounts, - GLint baseVertex, - GLuint baseInstance) -{ - Context *context = static_cast(ctx); - EVENT(context, GLDrawElementsInstancedBaseVertexBaseInstanceANGLE, - "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR - ", instanceCounts = %d, baseVertex = %d, baseInstance = %u", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instanceCounts, - baseVertex, baseInstance); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexBaseInstanceANGLE( - context, modePacked, count, typePacked, indices, - instanceCounts, baseVertex, baseInstance)); - if (isCallValid) - { - context->drawElementsInstancedBaseVertexBaseInstance( - modePacked, count, typePacked, indices, instanceCounts, baseVertex, baseInstance); - } - ANGLE_CAPTURE(DrawElementsInstancedBaseVertexBaseInstanceANGLE, isCallValid, context, - modePacked, count, typePacked, indices, instanceCounts, baseVertex, - baseInstance); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_MultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - const GLuint *baseInstances, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawArraysInstancedBaseInstanceANGLE, - "context = %d, mode = %s, firsts = 0x%016" PRIxPTR ", counts = 0x%016" PRIxPTR - ", instanceCounts = 0x%016" PRIxPTR ", baseInstances = 0x%016" PRIxPTR ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)firsts, - (uintptr_t)counts, (uintptr_t)instanceCounts, (uintptr_t)baseInstances, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateMultiDrawArraysInstancedBaseInstanceANGLE( - context, modePacked, firsts, counts, instanceCounts, baseInstances, drawcount)); - if (isCallValid) - { - context->multiDrawArraysInstancedBaseInstance(modePacked, firsts, counts, - instanceCounts, baseInstances, drawcount); - } - ANGLE_CAPTURE(MultiDrawArraysInstancedBaseInstanceANGLE, isCallValid, context, modePacked, - firsts, counts, instanceCounts, baseInstances, drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY -GL_MultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - const GLint *baseVertices, - const GLuint *baseInstances, - GLsizei drawcount) -{ - Context *context = static_cast(ctx); - EVENT(context, GLMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE, - "context = %d, mode = %s, counts = 0x%016" PRIxPTR ", type = %s, indices = 0x%016" PRIxPTR - ", instanceCounts = 0x%016" PRIxPTR ", baseVertices = 0x%016" PRIxPTR - ", baseInstances = 0x%016" PRIxPTR ", drawcount = %d", - CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)counts, - GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, - (uintptr_t)instanceCounts, (uintptr_t)baseVertices, (uintptr_t)baseInstances, drawcount); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - PrimitiveMode modePacked = PackParam(mode); - DrawElementsType typePacked = PackParam(type); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE( - context, modePacked, counts, typePacked, indices, instanceCounts, - baseVertices, baseInstances, drawcount)); - if (isCallValid) - { - context->multiDrawElementsInstancedBaseVertexBaseInstance( - modePacked, counts, typePacked, indices, instanceCounts, baseVertices, - baseInstances, drawcount); - } - ANGLE_CAPTURE(MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE, isCallValid, context, - modePacked, counts, typePacked, indices, instanceCounts, baseVertices, - baseInstances, drawcount); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetMultisamplefvANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetMultisamplefvANGLE, - "context = %d, pname = %s, index = %u, val = 0x%016" PRIxPTR "", CID(context), - GLenumToString(GLenumGroup::DefaultGroup, pname), index, (uintptr_t)val); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateGetMultisamplefvANGLE(context, pname, index, val)); - if (isCallValid) - { - context->getMultisamplefv(pname, index, val); - } - ANGLE_CAPTURE(GetMultisamplefvANGLE, isCallValid, context, pname, index, val); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_SampleMaskiANGLEContextANGLE(GLeglContext ctx, - GLuint maskNumber, - GLbitfield mask) -{ - Context *context = static_cast(ctx); - EVENT(context, GLSampleMaskiANGLE, "context = %d, maskNumber = %u, mask = %s", CID(context), - maskNumber, GLbitfieldToString(GLenumGroup::DefaultGroup, mask).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateSampleMaskiANGLE(context, maskNumber, mask)); - if (isCallValid) - { - context->sampleMaski(maskNumber, mask); - } - ANGLE_CAPTURE(SampleMaskiANGLE, isCallValid, context, maskNumber, mask); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ProvokingVertexANGLEContextANGLE(GLeglContext ctx, GLenum mode) -{ - Context *context = static_cast(ctx); - EVENT(context, GLProvokingVertexANGLE, "context = %d, mode = %s", CID(context), - GLenumToString(GLenumGroup::VertexProvokingMode, mode)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - ProvokingVertexConvention modePacked = PackParam(mode); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateProvokingVertexANGLE(context, modePacked)); - if (isCallValid) - { - context->provokingVertex(modePacked); - } - ANGLE_CAPTURE(ProvokingVertexANGLE, isCallValid, context, modePacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_LoseContextCHROMIUMContextANGLE(GLeglContext ctx, GLenum current, GLenum other) -{ - Context *context = static_cast(ctx); - EVENT(context, GLLoseContextCHROMIUM, "context = %d, current = %s, other = %s", CID(context), - GLenumToString(GLenumGroup::GraphicsResetStatus, current), - GLenumToString(GLenumGroup::GraphicsResetStatus, other)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - GraphicsResetStatus currentPacked = PackParam(current); - GraphicsResetStatus otherPacked = PackParam(other); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateLoseContextCHROMIUM(context, currentPacked, otherPacked)); - if (isCallValid) - { - context->loseContext(currentPacked, otherPacked); - } - ANGLE_CAPTURE(LoseContextCHROMIUM, isCallValid, context, currentPacked, otherPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexImage2DExternalANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexImage2DExternalANGLE, - "context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, " - "border = %d, format = %s, type = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat, - width, height, border, GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexImage2DExternalANGLE(context, targetPacked, level, internalformat, width, - height, border, format, type)); - if (isCallValid) - { - context->texImage2DExternal(targetPacked, level, internalformat, width, height, border, - format, type); - } - ANGLE_CAPTURE(TexImage2DExternalANGLE, isCallValid, context, targetPacked, level, - internalformat, width, height, border, format, type); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_InvalidateTextureANGLEContextANGLE(GLeglContext ctx, GLenum target) -{ - Context *context = static_cast(ctx); - EVENT(context, GLInvalidateTextureANGLE, "context = %d, target = %s", CID(context), - GLenumToString(GLenumGroup::TextureTarget, target)); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateInvalidateTextureANGLE(context, targetPacked)); - if (isCallValid) - { - context->invalidateTexture(targetPacked); - } - ANGLE_CAPTURE(InvalidateTextureANGLE, isCallValid, context, targetPacked); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetTexImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum format, - GLenum type, - void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetTexImageANGLE, - "context = %d, target = %s, level = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR - "", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, - GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureTarget targetPacked = PackParam(target); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetTexImageANGLE(context, targetPacked, level, format, type, pixels)); - if (isCallValid) - { - context->getTexImage(targetPacked, level, format, type, pixels); - } - ANGLE_CAPTURE(GetTexImageANGLE, isCallValid, context, targetPacked, level, format, type, - pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_GetRenderbufferImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum format, - GLenum type, - void *pixels) -{ - Context *context = static_cast(ctx); - EVENT(context, GLGetRenderbufferImageANGLE, - "context = %d, target = %s, format = %s, type = %s, pixels = 0x%016" PRIxPTR "", - CID(context), GLenumToString(GLenumGroup::RenderbufferTarget, target), - GLenumToString(GLenumGroup::PixelFormat, format), - GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateGetRenderbufferImageANGLE(context, target, format, type, pixels)); - if (isCallValid) - { - context->getRenderbufferImage(target, format, type, pixels); - } - ANGLE_CAPTURE(GetRenderbufferImageANGLE, isCallValid, context, target, format, type, - pixels); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMemFlags2DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMemFlags2DANGLE, - "context = %d, target = %s, levels = %d, internalFormat = %s, width = %d, height = %d, " - "memory = %u, offset = %llu, createFlags = %s, usageFlags = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, memory, - static_cast(offset), - GLbitfieldToString(GLenumGroup::DefaultGroup, createFlags).c_str(), - GLbitfieldToString(GLenumGroup::DefaultGroup, usageFlags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorageMemFlags2DANGLE( - context, targetPacked, levels, internalFormat, width, height, - memoryPacked, offset, createFlags, usageFlags)); - if (isCallValid) - { - context->texStorageMemFlags2D(targetPacked, levels, internalFormat, width, height, - memoryPacked, offset, createFlags, usageFlags); - } - ANGLE_CAPTURE(TexStorageMemFlags2DANGLE, isCallValid, context, targetPacked, levels, - internalFormat, width, height, memoryPacked, offset, createFlags, usageFlags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMemFlags2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - Context *context = static_cast(ctx); - EVENT( - context, GLTexStorageMemFlags2DMultisampleANGLE, - "context = %d, target = %s, samples = %d, internalFormat = %s, width = %d, height = %d, " - "fixedSampleLocations = %s, memory = %u, offset = %llu, createFlags = %s, usageFlags = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, - GLbooleanToString(fixedSampleLocations), memory, static_cast(offset), - GLbitfieldToString(GLenumGroup::DefaultGroup, createFlags).c_str(), - GLbitfieldToString(GLenumGroup::DefaultGroup, usageFlags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorageMemFlags2DMultisampleANGLE( - context, targetPacked, samples, internalFormat, width, height, - fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags)); - if (isCallValid) - { - context->texStorageMemFlags2DMultisample(targetPacked, samples, internalFormat, width, - height, fixedSampleLocations, memoryPacked, - offset, createFlags, usageFlags); - } - ANGLE_CAPTURE(TexStorageMemFlags2DMultisampleANGLE, isCallValid, context, targetPacked, - samples, internalFormat, width, height, fixedSampleLocations, memoryPacked, - offset, createFlags, usageFlags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMemFlags3DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMemFlags3DANGLE, - "context = %d, target = %s, levels = %d, internalFormat = %s, width = %d, height = %d, " - "depth = %d, memory = %u, offset = %llu, createFlags = %s, usageFlags = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, depth, memory, - static_cast(offset), - GLbitfieldToString(GLenumGroup::DefaultGroup, createFlags).c_str(), - GLbitfieldToString(GLenumGroup::DefaultGroup, usageFlags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateTexStorageMemFlags3DANGLE( - context, targetPacked, levels, internalFormat, width, height, depth, - memoryPacked, offset, createFlags, usageFlags)); - if (isCallValid) - { - context->texStorageMemFlags3D(targetPacked, levels, internalFormat, width, height, - depth, memoryPacked, offset, createFlags, usageFlags); - } - ANGLE_CAPTURE(TexStorageMemFlags3DANGLE, isCallValid, context, targetPacked, levels, - internalFormat, width, height, depth, memoryPacked, offset, createFlags, - usageFlags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_TexStorageMemFlags3DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - Context *context = static_cast(ctx); - EVENT(context, GLTexStorageMemFlags3DMultisampleANGLE, - "context = %d, target = %s, samples = %d, internalFormat = %s, width = %d, height = %d, " - "depth = %d, fixedSampleLocations = %s, memory = %u, offset = %llu, createFlags = %s, " - "usageFlags = %s", - CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples, - GLenumToString(GLenumGroup::DefaultGroup, internalFormat), width, height, depth, - GLbooleanToString(fixedSampleLocations), memory, static_cast(offset), - GLbitfieldToString(GLenumGroup::DefaultGroup, createFlags).c_str(), - GLbitfieldToString(GLenumGroup::DefaultGroup, usageFlags).c_str()); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - TextureType targetPacked = PackParam(target); - MemoryObjectID memoryPacked = PackParam(memory); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || - ValidateTexStorageMemFlags3DMultisampleANGLE( - context, targetPacked, samples, internalFormat, width, height, depth, - fixedSampleLocations, memoryPacked, offset, createFlags, usageFlags)); - if (isCallValid) - { - context->texStorageMemFlags3DMultisample(targetPacked, samples, internalFormat, width, - height, depth, fixedSampleLocations, - memoryPacked, offset, createFlags, usageFlags); - } - ANGLE_CAPTURE(TexStorageMemFlags3DMultisampleANGLE, isCallValid, context, targetPacked, - samples, internalFormat, width, height, depth, fixedSampleLocations, - memoryPacked, offset, createFlags, usageFlags); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ImportMemoryZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLuint handle) -{ - Context *context = static_cast(ctx); - EVENT(context, GLImportMemoryZirconHandleANGLE, - "context = %d, memory = %u, size = %llu, handleType = %s, handle = %u", CID(context), - memory, static_cast(size), - GLenumToString(GLenumGroup::ExternalHandleType, handleType), handle); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - MemoryObjectID memoryPacked = PackParam(memory); - HandleType handleTypePacked = PackParam(handleType); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = (context->skipValidation() || - ValidateImportMemoryZirconHandleANGLE(context, memoryPacked, size, - handleTypePacked, handle)); - if (isCallValid) - { - context->importMemoryZirconHandle(memoryPacked, size, handleTypePacked, handle); - } - ANGLE_CAPTURE(ImportMemoryZirconHandleANGLE, isCallValid, context, memoryPacked, size, - handleTypePacked, handle); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - -void GL_APIENTRY GL_ImportSemaphoreZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLuint handle) -{ - Context *context = static_cast(ctx); - EVENT(context, GLImportSemaphoreZirconHandleANGLE, - "context = %d, semaphore = %u, handleType = %s, handle = %u", CID(context), semaphore, - GLenumToString(GLenumGroup::ExternalHandleType, handleType), handle); - - if (context && !context->isContextLost()) - { - ASSERT(context == GetValidGlobalContext()); - SemaphoreID semaphorePacked = PackParam(semaphore); - HandleType handleTypePacked = PackParam(handleType); - std::unique_lock shareContextLock = GetContextLock(context); - bool isCallValid = - (context->skipValidation() || ValidateImportSemaphoreZirconHandleANGLE( - context, semaphorePacked, handleTypePacked, handle)); - if (isCallValid) - { - context->importSemaphoreZirconHandle(semaphorePacked, handleTypePacked, handle); - } - ANGLE_CAPTURE(ImportSemaphoreZirconHandleANGLE, isCallValid, context, semaphorePacked, - handleTypePacked, handle); - } - else - { - GenerateContextLostErrorOnContext(context); - } -} - } // extern "C" diff --git a/gfx/angle/checkout/src/libGLESv2/global_state.h b/gfx/angle/checkout/src/libGLESv2/global_state.h --- a/gfx/angle/checkout/src/libGLESv2/global_state.h +++ b/gfx/angle/checkout/src/libGLESv2/global_state.h @@ -12,10 +12,14 @@ #include "libANGLE/Context.h" #include "libANGLE/Debug.h" #include "libANGLE/Thread.h" #include "libANGLE/features.h" +#if defined(ANGLE_PLATFORM_APPLE) +# include "common/tls.h" +#endif + #include namespace angle { using GlobalMutex = std::recursive_mutex; @@ -87,18 +91,34 @@ namespace egl { class Debug; class Thread; +#if defined(ANGLE_PLATFORM_APPLE) +extern Thread *GetCurrentThreadTLS(); +extern void SetCurrentThreadTLS(Thread *thread); +#else extern thread_local Thread *gCurrentThread; +#endif angle::GlobalMutex &GetGlobalMutex(); gl::Context *GetGlobalLastContext(); void SetGlobalLastContext(gl::Context *context); Thread *GetCurrentThread(); Debug *GetDebug(); -void SetContextCurrent(Thread *thread, gl::Context *context); + +// Sync the current context from Thread to global state. +class ScopedSyncCurrentContextFromThread +{ + public: + ScopedSyncCurrentContextFromThread(egl::Thread *thread); + ~ScopedSyncCurrentContextFromThread(); + + private: + egl::Thread *const mThread; +}; + } // namespace egl #define ANGLE_SCOPED_GLOBAL_LOCK() \ std::lock_guard globalMutexLock(egl::GetGlobalMutex()) @@ -112,12 +132,17 @@ { return static_cast(ANGLE_ANDROID_GET_GL_TLS()[angle::kAndroidOpenGLTlsSlot]); } #endif - ASSERT(egl::gCurrentThread); - return egl::gCurrentThread->getContext(); +#if defined(ANGLE_PLATFORM_APPLE) + egl::Thread *currentThread = egl::GetCurrentThreadTLS(); +#else + egl::Thread *currentThread = egl::gCurrentThread; +#endif + ASSERT(currentThread); + return currentThread->getContext(); } ANGLE_INLINE Context *GetValidGlobalContext() { #if defined(ANGLE_PLATFORM_ANDROID) @@ -131,11 +156,15 @@ return context; } } #endif +#if defined(ANGLE_PLATFORM_APPLE) + return GetCurrentValidContextTLS(); +#else return gCurrentValidContext; +#endif } // Generate a context lost error on the context if it is non-null and lost. void GenerateContextLostErrorOnContext(Context *context); void GenerateContextLostErrorOnCurrentGlobalContext(); diff --git a/gfx/angle/checkout/src/libGLESv2/global_state.cpp b/gfx/angle/checkout/src/libGLESv2/global_state.cpp --- a/gfx/angle/checkout/src/libGLESv2/global_state.cpp +++ b/gfx/angle/checkout/src/libGLESv2/global_state.cpp @@ -14,11 +14,13 @@ #include "libANGLE/ErrorStrings.h" #include "libANGLE/Thread.h" #include "libGLESv2/resource.h" #include - +#if defined(ANGLE_PLATFORM_APPLE) +# include +#endif namespace egl { namespace { ANGLE_REQUIRE_CONSTANT_INIT std::atomic g_Mutex(nullptr); @@ -39,21 +41,32 @@ #endif } Thread *AllocateCurrentThread() { + Thread *thread; { // Global thread intentionally leaked ANGLE_SCOPED_DISABLE_LSAN(); - gCurrentThread = new Thread(); + thread = new Thread(); +#if defined(ANGLE_PLATFORM_APPLE) + SetCurrentThreadTLS(thread); +#else + gCurrentThread = thread; +#endif } // Initialize fast TLS slot SetContextToAndroidOpenGLTLSSlot(nullptr); + +#if defined(ANGLE_PLATFORM_APPLE) + gl::SetCurrentValidContextTLS(nullptr); +#else gl::gCurrentValidContext = nullptr; - - return gCurrentThread; +#endif + ASSERT(thread); + return thread; } void AllocateMutex() { if (g_Mutex == nullptr) @@ -67,11 +80,41 @@ } } } // anonymous namespace +#if defined(ANGLE_PLATFORM_APPLE) +// TODO(angleproject:6479): Due to a bug in Apple's dyld loader, `thread_local` will cause +// excessive memory use. Temporarily avoid it by using pthread's thread +// local storage instead. +// https://bugs.webkit.org/show_bug.cgi?id=228240 + +static TLSIndex GetCurrentThreadTLSIndex() +{ + static TLSIndex CurrentThreadIndex = TLS_INVALID_INDEX; + static dispatch_once_t once; + dispatch_once(&once, ^{ + ASSERT(CurrentThreadIndex == TLS_INVALID_INDEX); + CurrentThreadIndex = CreateTLSIndex(); + }); + return CurrentThreadIndex; +} +Thread *GetCurrentThreadTLS() +{ + TLSIndex CurrentThreadIndex = GetCurrentThreadTLSIndex(); + ASSERT(CurrentThreadIndex != TLS_INVALID_INDEX); + return static_cast(GetTLSValue(CurrentThreadIndex)); +} +void SetCurrentThreadTLS(Thread *thread) +{ + TLSIndex CurrentThreadIndex = GetCurrentThreadTLSIndex(); + ASSERT(CurrentThreadIndex != TLS_INVALID_INDEX); + SetTLSValue(CurrentThreadIndex, thread); +} +#else thread_local Thread *gCurrentThread = nullptr; +#endif angle::GlobalMutex &GetGlobalMutex() { AllocateMutex(); return *g_Mutex; @@ -85,36 +128,64 @@ void SetGlobalLastContext(gl::Context *context) { g_LastContext = context; } -Thread *GetCurrentThread() +// This function causes an MSAN false positive, which is muted. See https://crbug.com/1211047 +// It also causes a flaky false positive in TSAN. http://crbug.com/1223970 +ANGLE_NO_SANITIZE_MEMORY ANGLE_NO_SANITIZE_THREAD Thread *GetCurrentThread() { +#if defined(ANGLE_PLATFORM_APPLE) + Thread *current = GetCurrentThreadTLS(); +#else Thread *current = gCurrentThread; +#endif return (current ? current : AllocateCurrentThread()); } void SetContextCurrent(Thread *thread, gl::Context *context) { - ASSERT(gCurrentThread); - gCurrentThread->setCurrent(context); +#if defined(ANGLE_PLATFORM_APPLE) + Thread *currentThread = GetCurrentThreadTLS(); +#else + Thread *currentThread = gCurrentThread; +#endif + ASSERT(currentThread); + currentThread->setCurrent(context); SetContextToAndroidOpenGLTLSSlot(context); + +#if defined(ANGLE_PLATFORM_APPLE) + gl::SetCurrentValidContextTLS(context); +#else gl::gCurrentValidContext = context; +#endif + #if defined(ANGLE_FORCE_CONTEXT_CHECK_EVERY_CALL) DirtyContextIfNeeded(context); #endif } +ScopedSyncCurrentContextFromThread::ScopedSyncCurrentContextFromThread(egl::Thread *thread) + : mThread(thread) +{ + ASSERT(mThread); +} + +ScopedSyncCurrentContextFromThread::~ScopedSyncCurrentContextFromThread() +{ + SetContextCurrent(mThread, mThread->getContext()); +} + } // namespace egl namespace gl { void GenerateContextLostErrorOnContext(Context *context) { if (context && context->isContextLost()) { - context->validationError(GL_CONTEXT_LOST, err::kContextLost); + context->validationError(angle::EntryPoint::GLInvalid, GL_CONTEXT_LOST, err::kContextLost); } } void GenerateContextLostErrorOnCurrentGlobalContext() { diff --git a/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.cpp @@ -2798,10 +2798,12 @@ return GL_CopySubTexture3DANGLE(sourceId, sourceLevel, destTarget, destId, destLevel, xoffset, yoffset, zoffset, x, y, z, width, height, depth, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); } +// GL_ANGLE_depth_texture + // GL_ANGLE_framebuffer_blit void GL_APIENTRY glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, @@ -2831,10 +2833,15 @@ glGetTexImageANGLE(GLenum target, GLint level, GLenum format, GLenum type, void *pixels) { return GL_GetTexImageANGLE(target, level, format, type, pixels); } +void GL_APIENTRY glGetCompressedTexImageANGLE(GLenum target, GLint level, void *pixels) +{ + return GL_GetCompressedTexImageANGLE(target, level, pixels); +} + void GL_APIENTRY glGetRenderbufferImageANGLE(GLenum target, GLenum format, GLenum type, void *pixels) { @@ -2989,10 +2996,12 @@ { return GL_MultiDrawElementsInstancedANGLE(mode, counts, type, indices, instanceCounts, drawcount); } +// GL_ANGLE_pack_reverse_row_order + // GL_ANGLE_program_binary // GL_ANGLE_provoking_vertex void GL_APIENTRY glProvokingVertexANGLE(GLenum mode) { @@ -3656,10 +3665,14 @@ GLuint handle) { return GL_ImportSemaphoreZirconHandleANGLE(semaphore, handleType, handle); } +// GL_ANGLE_texture_compression_dxt3 + +// GL_ANGLE_texture_compression_dxt5 + // GL_ANGLE_texture_external_update void GL_APIENTRY glTexImage2DExternalANGLE(GLenum target, GLint level, GLint internalformat, GLsizei width, @@ -3697,19 +3710,25 @@ void GL_APIENTRY glSampleMaskiANGLE(GLuint maskNumber, GLbitfield mask) { return GL_SampleMaskiANGLE(maskNumber, mask); } +// GL_ANGLE_texture_usage + // GL_ANGLE_translated_shader_source void GL_APIENTRY glGetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source) { return GL_GetTranslatedShaderSourceANGLE(shader, bufsize, length, source); } +// GL_APPLE_clip_distance + +// GL_ARB_sync + // GL_CHROMIUM_bind_uniform_location void GL_APIENTRY glBindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name) { return GL_BindUniformLocationCHROMIUM(program, location, name); } @@ -3769,10 +3788,25 @@ return GL_LoseContextCHROMIUM(current, other); } // GL_EXT_EGL_image_array +// GL_EXT_EGL_image_storage +void GL_APIENTRY glEGLImageTargetTexStorageEXT(GLenum target, + GLeglImageOES image, + const GLint *attrib_list) +{ + return GL_EGLImageTargetTexStorageEXT(target, image, attrib_list); +} + +void GL_APIENTRY glEGLImageTargetTextureStorageEXT(GLuint texture, + GLeglImageOES image, + const GLint *attrib_list) +{ + return GL_EGLImageTargetTextureStorageEXT(texture, image, attrib_list); +} + // GL_EXT_YUV_target // GL_EXT_blend_func_extended void GL_APIENTRY glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name) { @@ -3797,10 +3831,12 @@ const GLchar *name) { return GL_GetProgramResourceLocationIndexEXT(program, programInterface, name); } +// GL_EXT_blend_minmax + // GL_EXT_buffer_storage void GL_APIENTRY glBufferStorageEXT(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags) @@ -3812,10 +3848,16 @@ void GL_APIENTRY glClipControlEXT(GLenum origin, GLenum depth) { return GL_ClipControlEXT(origin, depth); } +// GL_EXT_clip_cull_distance + +// GL_EXT_color_buffer_float + +// GL_EXT_color_buffer_half_float + // GL_EXT_copy_image void GL_APIENTRY glCopyImageSubDataEXT(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, @@ -4040,19 +4082,23 @@ GLbitfield flags) { return GL_NamedBufferStorageExternalEXT(buffer, offset, size, clientBuffer, flags); } +// GL_EXT_float_blend + // GL_EXT_geometry_shader void GL_APIENTRY glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level) { return GL_FramebufferTextureEXT(target, attachment, texture, level); } +// GL_EXT_gpu_shader5 + // GL_EXT_instanced_arrays void GL_APIENTRY glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount) @@ -4225,10 +4271,14 @@ GLfloat maxW) { return GL_PrimitiveBoundingBoxEXT(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); } +// GL_EXT_protected_textures + +// GL_EXT_pvrtc_sRGB + // GL_EXT_read_format_bgra // GL_EXT_robustness GLenum GL_APIENTRY glGetGraphicsResetStatusEXT() { @@ -4260,10 +4310,12 @@ return GL_ReadnPixelsEXT(x, y, width, height, format, type, bufSize, data); } // GL_EXT_sRGB +// GL_EXT_sRGB_write_control + // GL_EXT_semaphore void GL_APIENTRY glDeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores) { return GL_DeleteSemaphoresEXT(n, semaphores); } @@ -4629,10 +4681,16 @@ return GL_FramebufferFetchBarrierEXT(); } // GL_EXT_shader_io_blocks +// GL_EXT_shader_non_constant_global_initializers + +// GL_EXT_shader_texture_lod + +// GL_EXT_shadow_samplers + // GL_EXT_tessellation_shader void GL_APIENTRY glPatchParameteriEXT(GLenum pname, GLint value) { return GL_PatchParameteriEXT(pname, value); } @@ -4707,14 +4765,22 @@ // GL_EXT_texture_filter_anisotropic // GL_EXT_texture_format_BGRA8888 +// GL_EXT_texture_format_sRGB_override + +// GL_EXT_texture_norm16 + +// GL_EXT_texture_rg + // GL_EXT_texture_sRGB_R8 // GL_EXT_texture_sRGB_RG8 +// GL_EXT_texture_sRGB_decode + // GL_EXT_texture_storage void GL_APIENTRY glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) @@ -4739,10 +4805,18 @@ GLsizei depth) { return GL_TexStorage3DEXT(target, levels, internalformat, width, height, depth); } +// GL_EXT_texture_type_2_10_10_10_REV + +// GL_EXT_unpack_subimage + +// GL_IMG_texture_compression_pvrtc + +// GL_IMG_texture_compression_pvrtc2 + // GL_KHR_blend_equation_advanced void GL_APIENTRY glBlendBarrierKHR() { return GL_BlendBarrierKHR(); } @@ -4829,16 +4903,26 @@ const GLchar *message) { return GL_PushDebugGroupKHR(source, id, length, message); } +// GL_KHR_no_error + // GL_KHR_parallel_shader_compile void GL_APIENTRY glMaxShaderCompilerThreadsKHR(GLuint count) { return GL_MaxShaderCompilerThreadsKHR(count); } +// GL_KHR_robust_buffer_access_behavior + +// GL_KHR_texture_compression_astc_hdr + +// GL_KHR_texture_compression_astc_ldr + +// GL_KHR_texture_compression_astc_sliced_3d + // GL_NV_fence void GL_APIENTRY glDeleteFencesNV(GLsizei n, const GLuint *fences) { return GL_DeleteFencesNV(n, fences); } @@ -4887,10 +4971,20 @@ { return GL_BlitFramebufferNV(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } +// GL_NV_pixel_buffer_object + +// GL_NV_read_depth + +// GL_NV_read_stencil + +// GL_NV_robustness_video_memory_purge + +// GL_NV_shader_noperspective_interpolation + // GL_OES_EGL_image void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) { return GL_EGLImageTargetRenderbufferStorageOES(target, image); } @@ -4898,10 +4992,14 @@ void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) { return GL_EGLImageTargetTexture2DOES(target, image); } +// GL_OES_EGL_image_external + +// GL_OES_EGL_image_external_essl3 + // GL_OES_compressed_ETC1_RGB8_texture // GL_OES_copy_image void GL_APIENTRY glCopyImageSubDataOES(GLuint srcName, GLenum srcTarget, @@ -4922,12 +5020,16 @@ return GL_CopyImageSubDataOES(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth); } +// GL_OES_depth24 + // GL_OES_depth32 +// GL_OES_depth_texture + // GL_OES_draw_buffers_indexed void GL_APIENTRY glBlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha) { return GL_BlendEquationSeparateiOES(buf, modeRGB, modeAlpha); } @@ -5039,10 +5141,14 @@ void GL_APIENTRY glDrawTexxvOES(const GLfixed *coords) { return GL_DrawTexxvOES(coords); } +// GL_OES_element_index_uint + +// GL_OES_fbo_render_mipmap + // GL_OES_framebuffer_object void GL_APIENTRY glBindFramebufferOES(GLenum target, GLuint framebuffer) { return GL_BindFramebufferOES(target, framebuffer); } @@ -5128,10 +5234,19 @@ GLsizei height) { return GL_RenderbufferStorageOES(target, internalformat, width, height); } +// GL_OES_geometry_shader +void GL_APIENTRY glFramebufferTextureOES(GLenum target, + GLenum attachment, + GLuint texture, + GLint level) +{ + return GL_FramebufferTextureOES(target, attachment, texture, level); +} + // GL_OES_get_program_binary void GL_APIENTRY glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, @@ -5186,30 +5301,46 @@ void GL_APIENTRY glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer) { return GL_WeightPointerOES(size, type, stride, pointer); } +// GL_OES_packed_depth_stencil + // GL_OES_point_size_array void GL_APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const void *pointer) { return GL_PointSizePointerOES(type, stride, pointer); } +// GL_OES_point_sprite + // GL_OES_query_matrix GLbitfield GL_APIENTRY glQueryMatrixxOES(GLfixed *mantissa, GLint *exponent) { return GL_QueryMatrixxOES(mantissa, exponent); } +// GL_OES_rgb8_rgba8 + // GL_OES_sample_shading void GL_APIENTRY glMinSampleShadingOES(GLfloat value) { return GL_MinSampleShadingOES(value); } +// GL_OES_sample_variables + +// GL_OES_shader_image_atomic + // GL_OES_shader_io_blocks +// GL_OES_shader_multisample_interpolation + +// GL_OES_standard_derivatives + +// GL_OES_surfaceless_context + // GL_OES_texture_3D void GL_APIENTRY glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, @@ -5347,10 +5478,12 @@ GLsizeiptr size) { return GL_TexBufferRangeOES(target, internalformat, buffer, offset, size); } +// GL_OES_texture_compression_astc + // GL_OES_texture_cube_map void GL_APIENTRY glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params) { return GL_GetTexGenfvOES(coord, pname, params); } @@ -5395,12 +5528,20 @@ return GL_TexGenxvOES(coord, pname, params); } // GL_OES_texture_cube_map_array +// GL_OES_texture_float + +// GL_OES_texture_float_linear + // GL_OES_texture_half_float +// GL_OES_texture_half_float_linear + +// GL_OES_texture_npot + // GL_OES_texture_stencil8 // GL_OES_texture_storage_multisample_2d_array void GL_APIENTRY glTexStorage3DMultisampleOES(GLenum target, GLsizei samples, @@ -5433,10 +5574,14 @@ GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array) { return GL_IsVertexArrayOES(array); } +// GL_OES_vertex_half_float + +// GL_OES_vertex_type_10_10_10_2 + // GL_OVR_multiview void GL_APIENTRY glFramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, @@ -5446,6485 +5591,6 @@ return GL_FramebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews); } // GL_OVR_multiview2 - -// EGL_ANGLE_explicit_context -void GL_APIENTRY glActiveShaderProgramContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program) -{ - return GL_ActiveShaderProgramContextANGLE(ctx, pipeline, program); -} - -void GL_APIENTRY glActiveShaderProgramEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLuint program) -{ - return GL_ActiveShaderProgramEXTContextANGLE(ctx, pipeline, program); -} - -void GL_APIENTRY glActiveTextureContextANGLE(GLeglContext ctx, GLenum texture) -{ - return GL_ActiveTextureContextANGLE(ctx, texture); -} - -void GL_APIENTRY glAlphaFuncContextANGLE(GLeglContext ctx, GLenum func, GLfloat ref) -{ - return GL_AlphaFuncContextANGLE(ctx, func, ref); -} - -void GL_APIENTRY glAlphaFuncxContextANGLE(GLeglContext ctx, GLenum func, GLfixed ref) -{ - return GL_AlphaFuncxContextANGLE(ctx, func, ref); -} - -void GL_APIENTRY glAttachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader) -{ - return GL_AttachShaderContextANGLE(ctx, program, shader); -} - -void GL_APIENTRY glBeginQueryContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - return GL_BeginQueryContextANGLE(ctx, target, id); -} - -void GL_APIENTRY glBeginQueryEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - return GL_BeginQueryEXTContextANGLE(ctx, target, id); -} - -void GL_APIENTRY glBeginTransformFeedbackContextANGLE(GLeglContext ctx, GLenum primitiveMode) -{ - return GL_BeginTransformFeedbackContextANGLE(ctx, primitiveMode); -} - -void GL_APIENTRY glBindAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - const GLchar *name) -{ - return GL_BindAttribLocationContextANGLE(ctx, program, index, name); -} - -void GL_APIENTRY glBindBufferContextANGLE(GLeglContext ctx, GLenum target, GLuint buffer) -{ - return GL_BindBufferContextANGLE(ctx, target, buffer); -} - -void GL_APIENTRY glBindBufferBaseContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer) -{ - return GL_BindBufferBaseContextANGLE(ctx, target, index, buffer); -} - -void GL_APIENTRY glBindBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - return GL_BindBufferRangeContextANGLE(ctx, target, index, buffer, offset, size); -} - -void GL_APIENTRY glBindFragDataLocationEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint color, - const GLchar *name) -{ - return GL_BindFragDataLocationEXTContextANGLE(ctx, program, color, name); -} - -void GL_APIENTRY glBindFragDataLocationIndexedEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLuint colorNumber, - GLuint index, - const GLchar *name) -{ - return GL_BindFragDataLocationIndexedEXTContextANGLE(ctx, program, colorNumber, index, name); -} - -void GL_APIENTRY glBindFramebufferContextANGLE(GLeglContext ctx, GLenum target, GLuint framebuffer) -{ - return GL_BindFramebufferContextANGLE(ctx, target, framebuffer); -} - -void GL_APIENTRY glBindFramebufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint framebuffer) -{ - return GL_BindFramebufferOESContextANGLE(ctx, target, framebuffer); -} - -void GL_APIENTRY glBindImageTextureContextANGLE(GLeglContext ctx, - GLuint unit, - GLuint texture, - GLint level, - GLboolean layered, - GLint layer, - GLenum access, - GLenum format) -{ - return GL_BindImageTextureContextANGLE(ctx, unit, texture, level, layered, layer, access, - format); -} - -void GL_APIENTRY glBindProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_BindProgramPipelineContextANGLE(ctx, pipeline); -} - -void GL_APIENTRY glBindProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_BindProgramPipelineEXTContextANGLE(ctx, pipeline); -} - -void GL_APIENTRY glBindRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer) -{ - return GL_BindRenderbufferContextANGLE(ctx, target, renderbuffer); -} - -void GL_APIENTRY glBindRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLuint renderbuffer) -{ - return GL_BindRenderbufferOESContextANGLE(ctx, target, renderbuffer); -} - -void GL_APIENTRY glBindSamplerContextANGLE(GLeglContext ctx, GLuint unit, GLuint sampler) -{ - return GL_BindSamplerContextANGLE(ctx, unit, sampler); -} - -void GL_APIENTRY glBindTextureContextANGLE(GLeglContext ctx, GLenum target, GLuint texture) -{ - return GL_BindTextureContextANGLE(ctx, target, texture); -} - -void GL_APIENTRY glBindTransformFeedbackContextANGLE(GLeglContext ctx, GLenum target, GLuint id) -{ - return GL_BindTransformFeedbackContextANGLE(ctx, target, id); -} - -void GL_APIENTRY glBindVertexArrayContextANGLE(GLeglContext ctx, GLuint array) -{ - return GL_BindVertexArrayContextANGLE(ctx, array); -} - -void GL_APIENTRY glBindVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array) -{ - return GL_BindVertexArrayOESContextANGLE(ctx, array); -} - -void GL_APIENTRY glBindVertexBufferContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint buffer, - GLintptr offset, - GLsizei stride) -{ - return GL_BindVertexBufferContextANGLE(ctx, bindingindex, buffer, offset, stride); -} - -void GL_APIENTRY glBlendBarrierContextANGLE(GLeglContext ctx) -{ - return GL_BlendBarrierContextANGLE(ctx); -} - -void GL_APIENTRY glBlendBarrierKHRContextANGLE(GLeglContext ctx) -{ - return GL_BlendBarrierKHRContextANGLE(ctx); -} - -void GL_APIENTRY -glBlendColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - return GL_BlendColorContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY glBlendEquationContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_BlendEquationContextANGLE(ctx, mode); -} - -void GL_APIENTRY glBlendEquationSeparateContextANGLE(GLeglContext ctx, - GLenum modeRGB, - GLenum modeAlpha) -{ - return GL_BlendEquationSeparateContextANGLE(ctx, modeRGB, modeAlpha); -} - -void GL_APIENTRY glBlendEquationSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - return GL_BlendEquationSeparateiContextANGLE(ctx, buf, modeRGB, modeAlpha); -} - -void GL_APIENTRY glBlendEquationSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - return GL_BlendEquationSeparateiEXTContextANGLE(ctx, buf, modeRGB, modeAlpha); -} - -void GL_APIENTRY glBlendEquationSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum modeRGB, - GLenum modeAlpha) -{ - return GL_BlendEquationSeparateiOESContextANGLE(ctx, buf, modeRGB, modeAlpha); -} - -void GL_APIENTRY glBlendEquationiContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - return GL_BlendEquationiContextANGLE(ctx, buf, mode); -} - -void GL_APIENTRY glBlendEquationiEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - return GL_BlendEquationiEXTContextANGLE(ctx, buf, mode); -} - -void GL_APIENTRY glBlendEquationiOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum mode) -{ - return GL_BlendEquationiOESContextANGLE(ctx, buf, mode); -} - -void GL_APIENTRY glBlendFuncContextANGLE(GLeglContext ctx, GLenum sfactor, GLenum dfactor) -{ - return GL_BlendFuncContextANGLE(ctx, sfactor, dfactor); -} - -void GL_APIENTRY glBlendFuncSeparateContextANGLE(GLeglContext ctx, - GLenum sfactorRGB, - GLenum dfactorRGB, - GLenum sfactorAlpha, - GLenum dfactorAlpha) -{ - return GL_BlendFuncSeparateContextANGLE(ctx, sfactorRGB, dfactorRGB, sfactorAlpha, - dfactorAlpha); -} - -void GL_APIENTRY glBlendFuncSeparateiContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - return GL_BlendFuncSeparateiContextANGLE(ctx, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); -} - -void GL_APIENTRY glBlendFuncSeparateiEXTContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - return GL_BlendFuncSeparateiEXTContextANGLE(ctx, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); -} - -void GL_APIENTRY glBlendFuncSeparateiOESContextANGLE(GLeglContext ctx, - GLuint buf, - GLenum srcRGB, - GLenum dstRGB, - GLenum srcAlpha, - GLenum dstAlpha) -{ - return GL_BlendFuncSeparateiOESContextANGLE(ctx, buf, srcRGB, dstRGB, srcAlpha, dstAlpha); -} - -void GL_APIENTRY glBlendFunciContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - return GL_BlendFunciContextANGLE(ctx, buf, src, dst); -} - -void GL_APIENTRY glBlendFunciEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - return GL_BlendFunciEXTContextANGLE(ctx, buf, src, dst); -} - -void GL_APIENTRY glBlendFunciOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst) -{ - return GL_BlendFunciOESContextANGLE(ctx, buf, src, dst); -} - -void GL_APIENTRY glBlitFramebufferContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - return GL_BlitFramebufferContextANGLE(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, - dstY1, mask, filter); -} - -void GL_APIENTRY glBlitFramebufferANGLEContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - return GL_BlitFramebufferANGLEContextANGLE(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, - dstY1, mask, filter); -} - -void GL_APIENTRY glBlitFramebufferNVContextANGLE(GLeglContext ctx, - GLint srcX0, - GLint srcY0, - GLint srcX1, - GLint srcY1, - GLint dstX0, - GLint dstY0, - GLint dstX1, - GLint dstY1, - GLbitfield mask, - GLenum filter) -{ - return GL_BlitFramebufferNVContextANGLE(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, - dstY1, mask, filter); -} - -void GL_APIENTRY glBufferDataContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLenum usage) -{ - return GL_BufferDataContextANGLE(ctx, target, size, data, usage); -} - -void GL_APIENTRY glBufferStorageEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - const void *data, - GLbitfield flags) -{ - return GL_BufferStorageEXTContextANGLE(ctx, target, size, data, flags); -} - -void GL_APIENTRY glBufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags) -{ - return GL_BufferStorageExternalEXTContextANGLE(ctx, target, offset, size, clientBuffer, flags); -} - -void GL_APIENTRY glBufferStorageMemEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizeiptr size, - GLuint memory, - GLuint64 offset) -{ - return GL_BufferStorageMemEXTContextANGLE(ctx, target, size, memory, offset); -} - -void GL_APIENTRY glBufferSubDataContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr size, - const void *data) -{ - return GL_BufferSubDataContextANGLE(ctx, target, offset, size, data); -} - -GLenum GL_APIENTRY glCheckFramebufferStatusContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_CheckFramebufferStatusContextANGLE(ctx, target); -} - -GLenum GL_APIENTRY glCheckFramebufferStatusOESContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_CheckFramebufferStatusOESContextANGLE(ctx, target); -} - -void GL_APIENTRY glClearContextANGLE(GLeglContext ctx, GLbitfield mask) -{ - return GL_ClearContextANGLE(ctx, mask); -} - -void GL_APIENTRY glClearBufferfiContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - GLfloat depth, - GLint stencil) -{ - return GL_ClearBufferfiContextANGLE(ctx, buffer, drawbuffer, depth, stencil); -} - -void GL_APIENTRY glClearBufferfvContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLfloat *value) -{ - return GL_ClearBufferfvContextANGLE(ctx, buffer, drawbuffer, value); -} - -void GL_APIENTRY glClearBufferivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLint *value) -{ - return GL_ClearBufferivContextANGLE(ctx, buffer, drawbuffer, value); -} - -void GL_APIENTRY glClearBufferuivContextANGLE(GLeglContext ctx, - GLenum buffer, - GLint drawbuffer, - const GLuint *value) -{ - return GL_ClearBufferuivContextANGLE(ctx, buffer, drawbuffer, value); -} - -void GL_APIENTRY -glClearColorContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - return GL_ClearColorContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY -glClearColorxContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) -{ - return GL_ClearColorxContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY glClearDepthfContextANGLE(GLeglContext ctx, GLfloat d) -{ - return GL_ClearDepthfContextANGLE(ctx, d); -} - -void GL_APIENTRY glClearDepthxContextANGLE(GLeglContext ctx, GLfixed depth) -{ - return GL_ClearDepthxContextANGLE(ctx, depth); -} - -void GL_APIENTRY glClearStencilContextANGLE(GLeglContext ctx, GLint s) -{ - return GL_ClearStencilContextANGLE(ctx, s); -} - -void GL_APIENTRY glClientActiveTextureContextANGLE(GLeglContext ctx, GLenum texture) -{ - return GL_ClientActiveTextureContextANGLE(ctx, texture); -} - -GLenum GL_APIENTRY glClientWaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout) -{ - return GL_ClientWaitSyncContextANGLE(ctx, sync, flags, timeout); -} - -void GL_APIENTRY glClipControlEXTContextANGLE(GLeglContext ctx, GLenum origin, GLenum depth) -{ - return GL_ClipControlEXTContextANGLE(ctx, origin, depth); -} - -void GL_APIENTRY glClipPlanefContextANGLE(GLeglContext ctx, GLenum p, const GLfloat *eqn) -{ - return GL_ClipPlanefContextANGLE(ctx, p, eqn); -} - -void GL_APIENTRY glClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, const GLfixed *equation) -{ - return GL_ClipPlanexContextANGLE(ctx, plane, equation); -} - -void GL_APIENTRY -glColor4fContextANGLE(GLeglContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - return GL_Color4fContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY -glColor4ubContextANGLE(GLeglContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) -{ - return GL_Color4ubContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY -glColor4xContextANGLE(GLeglContext ctx, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) -{ - return GL_Color4xContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY glColorMaskContextANGLE(GLeglContext ctx, - GLboolean red, - GLboolean green, - GLboolean blue, - GLboolean alpha) -{ - return GL_ColorMaskContextANGLE(ctx, red, green, blue, alpha); -} - -void GL_APIENTRY glColorMaskiContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - return GL_ColorMaskiContextANGLE(ctx, index, r, g, b, a); -} - -void GL_APIENTRY glColorMaskiEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - return GL_ColorMaskiEXTContextANGLE(ctx, index, r, g, b, a); -} - -void GL_APIENTRY glColorMaskiOESContextANGLE(GLeglContext ctx, - GLuint index, - GLboolean r, - GLboolean g, - GLboolean b, - GLboolean a) -{ - return GL_ColorMaskiOESContextANGLE(ctx, index, r, g, b, a); -} - -void GL_APIENTRY glColorPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_ColorPointerContextANGLE(ctx, size, type, stride, pointer); -} - -void GL_APIENTRY glCompileShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - return GL_CompileShaderContextANGLE(ctx, shader); -} - -void GL_APIENTRY glCompressedTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexImage2DContextANGLE(ctx, target, level, internalformat, width, height, - border, imageSize, data); -} - -void GL_APIENTRY glCompressedTexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexImage3DContextANGLE(ctx, target, level, internalformat, width, height, - depth, border, imageSize, data); -} - -void GL_APIENTRY glCompressedTexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexImage3DOESContextANGLE(ctx, target, level, internalformat, width, height, - depth, border, imageSize, data); -} - -void GL_APIENTRY glCompressedTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexSubImage2DContextANGLE(ctx, target, level, xoffset, yoffset, width, - height, format, imageSize, data); -} - -void GL_APIENTRY glCompressedTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexSubImage3DContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, - width, height, depth, format, imageSize, data); -} - -void GL_APIENTRY glCompressedTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - const void *data) -{ - return GL_CompressedTexSubImage3DOESContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, - width, height, depth, format, imageSize, data); -} - -void GL_APIENTRY glCopyBufferSubDataContextANGLE(GLeglContext ctx, - GLenum readTarget, - GLenum writeTarget, - GLintptr readOffset, - GLintptr writeOffset, - GLsizeiptr size) -{ - return GL_CopyBufferSubDataContextANGLE(ctx, readTarget, writeTarget, readOffset, writeOffset, - size); -} - -void GL_APIENTRY glCopyImageSubDataContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - return GL_CopyImageSubDataContextANGLE(ctx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, - srcHeight, srcDepth); -} - -void GL_APIENTRY glCopyImageSubDataEXTContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - return GL_CopyImageSubDataEXTContextANGLE(ctx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, - srcWidth, srcHeight, srcDepth); -} - -void GL_APIENTRY glCopyImageSubDataOESContextANGLE(GLeglContext ctx, - GLuint srcName, - GLenum srcTarget, - GLint srcLevel, - GLint srcX, - GLint srcY, - GLint srcZ, - GLuint dstName, - GLenum dstTarget, - GLint dstLevel, - GLint dstX, - GLint dstY, - GLint dstZ, - GLsizei srcWidth, - GLsizei srcHeight, - GLsizei srcDepth) -{ - return GL_CopyImageSubDataOESContextANGLE(ctx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, - dstName, dstTarget, dstLevel, dstX, dstY, dstZ, - srcWidth, srcHeight, srcDepth); -} - -void GL_APIENTRY glCopyTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLint border) -{ - return GL_CopyTexImage2DContextANGLE(ctx, target, level, internalformat, x, y, width, height, - border); -} - -void GL_APIENTRY glCopyTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - return GL_CopyTexSubImage2DContextANGLE(ctx, target, level, xoffset, yoffset, x, y, width, - height); -} - -void GL_APIENTRY glCopyTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - return GL_CopyTexSubImage3DContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, x, y, - width, height); -} - -void GL_APIENTRY glCopyTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - return GL_CopyTexSubImage3DOESContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, x, y, - width, height); -} - -void GL_APIENTRY glCreateMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *memoryObjects) -{ - return GL_CreateMemoryObjectsEXTContextANGLE(ctx, n, memoryObjects); -} - -GLuint GL_APIENTRY glCreateProgramContextANGLE(GLeglContext ctx) -{ - return GL_CreateProgramContextANGLE(ctx); -} - -GLuint GL_APIENTRY glCreateShaderContextANGLE(GLeglContext ctx, GLenum type) -{ - return GL_CreateShaderContextANGLE(ctx, type); -} - -GLuint GL_APIENTRY glCreateShaderProgramvContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar *const *strings) -{ - return GL_CreateShaderProgramvContextANGLE(ctx, type, count, strings); -} - -GLuint GL_APIENTRY glCreateShaderProgramvEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei count, - const GLchar **strings) -{ - return GL_CreateShaderProgramvEXTContextANGLE(ctx, type, count, strings); -} - -void GL_APIENTRY glCullFaceContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_CullFaceContextANGLE(ctx, mode); -} - -void GL_APIENTRY glCurrentPaletteMatrixOESContextANGLE(GLeglContext ctx, GLuint matrixpaletteindex) -{ - return GL_CurrentPaletteMatrixOESContextANGLE(ctx, matrixpaletteindex); -} - -void GL_APIENTRY glDebugMessageCallbackContextANGLE(GLeglContext ctx, - GLDEBUGPROC callback, - const void *userParam) -{ - return GL_DebugMessageCallbackContextANGLE(ctx, callback, userParam); -} - -void GL_APIENTRY glDebugMessageCallbackKHRContextANGLE(GLeglContext ctx, - GLDEBUGPROCKHR callback, - const void *userParam) -{ - return GL_DebugMessageCallbackKHRContextANGLE(ctx, callback, userParam); -} - -void GL_APIENTRY glDebugMessageControlContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled) -{ - return GL_DebugMessageControlContextANGLE(ctx, source, type, severity, count, ids, enabled); -} - -void GL_APIENTRY glDebugMessageControlKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLenum severity, - GLsizei count, - const GLuint *ids, - GLboolean enabled) -{ - return GL_DebugMessageControlKHRContextANGLE(ctx, source, type, severity, count, ids, enabled); -} - -void GL_APIENTRY glDebugMessageInsertContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf) -{ - return GL_DebugMessageInsertContextANGLE(ctx, source, type, id, severity, length, buf); -} - -void GL_APIENTRY glDebugMessageInsertKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *buf) -{ - return GL_DebugMessageInsertKHRContextANGLE(ctx, source, type, id, severity, length, buf); -} - -void GL_APIENTRY glDeleteBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *buffers) -{ - return GL_DeleteBuffersContextANGLE(ctx, n, buffers); -} - -void GL_APIENTRY glDeleteFencesNVContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *fences) -{ - return GL_DeleteFencesNVContextANGLE(ctx, n, fences); -} - -void GL_APIENTRY glDeleteFramebuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers) -{ - return GL_DeleteFramebuffersContextANGLE(ctx, n, framebuffers); -} - -void GL_APIENTRY glDeleteFramebuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *framebuffers) -{ - return GL_DeleteFramebuffersOESContextANGLE(ctx, n, framebuffers); -} - -void GL_APIENTRY glDeleteMemoryObjectsEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *memoryObjects) -{ - return GL_DeleteMemoryObjectsEXTContextANGLE(ctx, n, memoryObjects); -} - -void GL_APIENTRY glDeleteProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - return GL_DeleteProgramContextANGLE(ctx, program); -} - -void GL_APIENTRY glDeleteProgramPipelinesContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines) -{ - return GL_DeleteProgramPipelinesContextANGLE(ctx, n, pipelines); -} - -void GL_APIENTRY glDeleteProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *pipelines) -{ - return GL_DeleteProgramPipelinesEXTContextANGLE(ctx, n, pipelines); -} - -void GL_APIENTRY glDeleteQueriesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids) -{ - return GL_DeleteQueriesContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glDeleteQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *ids) -{ - return GL_DeleteQueriesEXTContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glDeleteRenderbuffersContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers) -{ - return GL_DeleteRenderbuffersContextANGLE(ctx, n, renderbuffers); -} - -void GL_APIENTRY glDeleteRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *renderbuffers) -{ - return GL_DeleteRenderbuffersOESContextANGLE(ctx, n, renderbuffers); -} - -void GL_APIENTRY glDeleteSamplersContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *samplers) -{ - return GL_DeleteSamplersContextANGLE(ctx, count, samplers); -} - -void GL_APIENTRY glDeleteSemaphoresEXTContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *semaphores) -{ - return GL_DeleteSemaphoresEXTContextANGLE(ctx, n, semaphores); -} - -void GL_APIENTRY glDeleteShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - return GL_DeleteShaderContextANGLE(ctx, shader); -} - -void GL_APIENTRY glDeleteSyncContextANGLE(GLeglContext ctx, GLsync sync) -{ - return GL_DeleteSyncContextANGLE(ctx, sync); -} - -void GL_APIENTRY glDeleteTexturesContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *textures) -{ - return GL_DeleteTexturesContextANGLE(ctx, n, textures); -} - -void GL_APIENTRY glDeleteTransformFeedbacksContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *ids) -{ - return GL_DeleteTransformFeedbacksContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glDeleteVertexArraysContextANGLE(GLeglContext ctx, GLsizei n, const GLuint *arrays) -{ - return GL_DeleteVertexArraysContextANGLE(ctx, n, arrays); -} - -void GL_APIENTRY glDeleteVertexArraysOESContextANGLE(GLeglContext ctx, - GLsizei n, - const GLuint *arrays) -{ - return GL_DeleteVertexArraysOESContextANGLE(ctx, n, arrays); -} - -void GL_APIENTRY glDepthFuncContextANGLE(GLeglContext ctx, GLenum func) -{ - return GL_DepthFuncContextANGLE(ctx, func); -} - -void GL_APIENTRY glDepthMaskContextANGLE(GLeglContext ctx, GLboolean flag) -{ - return GL_DepthMaskContextANGLE(ctx, flag); -} - -void GL_APIENTRY glDepthRangefContextANGLE(GLeglContext ctx, GLfloat n, GLfloat f) -{ - return GL_DepthRangefContextANGLE(ctx, n, f); -} - -void GL_APIENTRY glDepthRangexContextANGLE(GLeglContext ctx, GLfixed n, GLfixed f) -{ - return GL_DepthRangexContextANGLE(ctx, n, f); -} - -void GL_APIENTRY glDetachShaderContextANGLE(GLeglContext ctx, GLuint program, GLuint shader) -{ - return GL_DetachShaderContextANGLE(ctx, program, shader); -} - -void GL_APIENTRY glDisableContextANGLE(GLeglContext ctx, GLenum cap) -{ - return GL_DisableContextANGLE(ctx, cap); -} - -void GL_APIENTRY glDisableClientStateContextANGLE(GLeglContext ctx, GLenum array) -{ - return GL_DisableClientStateContextANGLE(ctx, array); -} - -void GL_APIENTRY glDisableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index) -{ - return GL_DisableVertexAttribArrayContextANGLE(ctx, index); -} - -void GL_APIENTRY glDisableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_DisableiContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glDisableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_DisableiEXTContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glDisableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_DisableiOESContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glDiscardFramebufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments) -{ - return GL_DiscardFramebufferEXTContextANGLE(ctx, target, numAttachments, attachments); -} - -void GL_APIENTRY glDispatchComputeContextANGLE(GLeglContext ctx, - GLuint num_groups_x, - GLuint num_groups_y, - GLuint num_groups_z) -{ - return GL_DispatchComputeContextANGLE(ctx, num_groups_x, num_groups_y, num_groups_z); -} - -void GL_APIENTRY glDispatchComputeIndirectContextANGLE(GLeglContext ctx, GLintptr indirect) -{ - return GL_DispatchComputeIndirectContextANGLE(ctx, indirect); -} - -void GL_APIENTRY glDrawArraysContextANGLE(GLeglContext ctx, GLenum mode, GLint first, GLsizei count) -{ - return GL_DrawArraysContextANGLE(ctx, mode, first, count); -} - -void GL_APIENTRY glDrawArraysIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - const void *indirect) -{ - return GL_DrawArraysIndirectContextANGLE(ctx, mode, indirect); -} - -void GL_APIENTRY glDrawArraysInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instancecount) -{ - return GL_DrawArraysInstancedContextANGLE(ctx, mode, first, count, instancecount); -} - -void GL_APIENTRY glDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei primcount) -{ - return GL_DrawArraysInstancedANGLEContextANGLE(ctx, mode, first, count, primcount); -} - -void GL_APIENTRY glDrawArraysInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLint start, - GLsizei count, - GLsizei primcount) -{ - return GL_DrawArraysInstancedEXTContextANGLE(ctx, mode, start, count, primcount); -} - -void GL_APIENTRY glDrawBuffersContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs) -{ - return GL_DrawBuffersContextANGLE(ctx, n, bufs); -} - -void GL_APIENTRY glDrawBuffersEXTContextANGLE(GLeglContext ctx, GLsizei n, const GLenum *bufs) -{ - return GL_DrawBuffersEXTContextANGLE(ctx, n, bufs); -} - -void GL_APIENTRY glDrawElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices) -{ - return GL_DrawElementsContextANGLE(ctx, mode, count, type, indices); -} - -void GL_APIENTRY glDrawElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawElementsBaseVertexContextANGLE(ctx, mode, count, type, indices, basevertex); -} - -void GL_APIENTRY glDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawElementsBaseVertexEXTContextANGLE(ctx, mode, count, type, indices, basevertex); -} - -void GL_APIENTRY glDrawElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawElementsBaseVertexOESContextANGLE(ctx, mode, count, type, indices, basevertex); -} - -void GL_APIENTRY glDrawElementsIndirectContextANGLE(GLeglContext ctx, - GLenum mode, - GLenum type, - const void *indirect) -{ - return GL_DrawElementsIndirectContextANGLE(ctx, mode, type, indirect); -} - -void GL_APIENTRY glDrawElementsInstancedContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount) -{ - return GL_DrawElementsInstancedContextANGLE(ctx, mode, count, type, indices, instancecount); -} - -void GL_APIENTRY glDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount) -{ - return GL_DrawElementsInstancedANGLEContextANGLE(ctx, mode, count, type, indices, primcount); -} - -void GL_APIENTRY glDrawElementsInstancedBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - return GL_DrawElementsInstancedBaseVertexContextANGLE(ctx, mode, count, type, indices, - instancecount, basevertex); -} - -void GL_APIENTRY glDrawElementsInstancedBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - return GL_DrawElementsInstancedBaseVertexEXTContextANGLE(ctx, mode, count, type, indices, - instancecount, basevertex); -} - -void GL_APIENTRY glDrawElementsInstancedBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei instancecount, - GLint basevertex) -{ - return GL_DrawElementsInstancedBaseVertexOESContextANGLE(ctx, mode, count, type, indices, - instancecount, basevertex); -} - -void GL_APIENTRY glDrawElementsInstancedEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const void *indices, - GLsizei primcount) -{ - return GL_DrawElementsInstancedEXTContextANGLE(ctx, mode, count, type, indices, primcount); -} - -void GL_APIENTRY glDrawRangeElementsContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices) -{ - return GL_DrawRangeElementsContextANGLE(ctx, mode, start, end, count, type, indices); -} - -void GL_APIENTRY glDrawRangeElementsBaseVertexContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawRangeElementsBaseVertexContextANGLE(ctx, mode, start, end, count, type, indices, - basevertex); -} - -void GL_APIENTRY glDrawRangeElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawRangeElementsBaseVertexEXTContextANGLE(ctx, mode, start, end, count, type, - indices, basevertex); -} - -void GL_APIENTRY glDrawRangeElementsBaseVertexOESContextANGLE(GLeglContext ctx, - GLenum mode, - GLuint start, - GLuint end, - GLsizei count, - GLenum type, - const void *indices, - GLint basevertex) -{ - return GL_DrawRangeElementsBaseVertexOESContextANGLE(ctx, mode, start, end, count, type, - indices, basevertex); -} - -void GL_APIENTRY glDrawTexfOESContextANGLE(GLeglContext ctx, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat width, - GLfloat height) -{ - return GL_DrawTexfOESContextANGLE(ctx, x, y, z, width, height); -} - -void GL_APIENTRY glDrawTexfvOESContextANGLE(GLeglContext ctx, const GLfloat *coords) -{ - return GL_DrawTexfvOESContextANGLE(ctx, coords); -} - -void GL_APIENTRY -glDrawTexiOESContextANGLE(GLeglContext ctx, GLint x, GLint y, GLint z, GLint width, GLint height) -{ - return GL_DrawTexiOESContextANGLE(ctx, x, y, z, width, height); -} - -void GL_APIENTRY glDrawTexivOESContextANGLE(GLeglContext ctx, const GLint *coords) -{ - return GL_DrawTexivOESContextANGLE(ctx, coords); -} - -void GL_APIENTRY glDrawTexsOESContextANGLE(GLeglContext ctx, - GLshort x, - GLshort y, - GLshort z, - GLshort width, - GLshort height) -{ - return GL_DrawTexsOESContextANGLE(ctx, x, y, z, width, height); -} - -void GL_APIENTRY glDrawTexsvOESContextANGLE(GLeglContext ctx, const GLshort *coords) -{ - return GL_DrawTexsvOESContextANGLE(ctx, coords); -} - -void GL_APIENTRY glDrawTexxOESContextANGLE(GLeglContext ctx, - GLfixed x, - GLfixed y, - GLfixed z, - GLfixed width, - GLfixed height) -{ - return GL_DrawTexxOESContextANGLE(ctx, x, y, z, width, height); -} - -void GL_APIENTRY glDrawTexxvOESContextANGLE(GLeglContext ctx, const GLfixed *coords) -{ - return GL_DrawTexxvOESContextANGLE(ctx, coords); -} - -void GL_APIENTRY glEGLImageTargetRenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image) -{ - return GL_EGLImageTargetRenderbufferStorageOESContextANGLE(ctx, target, image); -} - -void GL_APIENTRY glEGLImageTargetTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLeglImageOES image) -{ - return GL_EGLImageTargetTexture2DOESContextANGLE(ctx, target, image); -} - -void GL_APIENTRY glEnableContextANGLE(GLeglContext ctx, GLenum cap) -{ - return GL_EnableContextANGLE(ctx, cap); -} - -void GL_APIENTRY glEnableClientStateContextANGLE(GLeglContext ctx, GLenum array) -{ - return GL_EnableClientStateContextANGLE(ctx, array); -} - -void GL_APIENTRY glEnableVertexAttribArrayContextANGLE(GLeglContext ctx, GLuint index) -{ - return GL_EnableVertexAttribArrayContextANGLE(ctx, index); -} - -void GL_APIENTRY glEnableiContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_EnableiContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glEnableiEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_EnableiEXTContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glEnableiOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_EnableiOESContextANGLE(ctx, target, index); -} - -void GL_APIENTRY glEndQueryContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_EndQueryContextANGLE(ctx, target); -} - -void GL_APIENTRY glEndQueryEXTContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_EndQueryEXTContextANGLE(ctx, target); -} - -void GL_APIENTRY glEndTransformFeedbackContextANGLE(GLeglContext ctx) -{ - return GL_EndTransformFeedbackContextANGLE(ctx); -} - -GLsync GL_APIENTRY glFenceSyncContextANGLE(GLeglContext ctx, GLenum condition, GLbitfield flags) -{ - return GL_FenceSyncContextANGLE(ctx, condition, flags); -} - -void GL_APIENTRY glFinishContextANGLE(GLeglContext ctx) -{ - return GL_FinishContextANGLE(ctx); -} - -void GL_APIENTRY glFinishFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - return GL_FinishFenceNVContextANGLE(ctx, fence); -} - -void GL_APIENTRY glFlushContextANGLE(GLeglContext ctx) -{ - return GL_FlushContextANGLE(ctx); -} - -void GL_APIENTRY glFlushMappedBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length) -{ - return GL_FlushMappedBufferRangeContextANGLE(ctx, target, offset, length); -} - -void GL_APIENTRY glFlushMappedBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length) -{ - return GL_FlushMappedBufferRangeEXTContextANGLE(ctx, target, offset, length); -} - -void GL_APIENTRY glFogfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - return GL_FogfContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glFogfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params) -{ - return GL_FogfvContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glFogxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - return GL_FogxContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glFogxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param) -{ - return GL_FogxvContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glFramebufferFetchBarrierEXTContextANGLE(GLeglContext ctx) -{ - return GL_FramebufferFetchBarrierEXTContextANGLE(ctx); -} - -void GL_APIENTRY glFramebufferParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param) -{ - return GL_FramebufferParameteriContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glFramebufferRenderbufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer) -{ - return GL_FramebufferRenderbufferContextANGLE(ctx, target, attachment, renderbuffertarget, - renderbuffer); -} - -void GL_APIENTRY glFramebufferRenderbufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer) -{ - return GL_FramebufferRenderbufferOESContextANGLE(ctx, target, attachment, renderbuffertarget, - renderbuffer); -} - -void GL_APIENTRY glFramebufferTextureContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level) -{ - return GL_FramebufferTextureContextANGLE(ctx, target, attachment, texture, level); -} - -void GL_APIENTRY glFramebufferTexture2DContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level) -{ - return GL_FramebufferTexture2DContextANGLE(ctx, target, attachment, textarget, texture, level); -} - -void GL_APIENTRY glFramebufferTexture2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLsizei samples) -{ - return GL_FramebufferTexture2DMultisampleEXTContextANGLE(ctx, target, attachment, textarget, - texture, level, samples); -} - -void GL_APIENTRY glFramebufferTexture2DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level) -{ - return GL_FramebufferTexture2DOESContextANGLE(ctx, target, attachment, textarget, texture, - level); -} - -void GL_APIENTRY glFramebufferTexture3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum textarget, - GLuint texture, - GLint level, - GLint zoffset) -{ - return GL_FramebufferTexture3DOESContextANGLE(ctx, target, attachment, textarget, texture, - level, zoffset); -} - -void GL_APIENTRY glFramebufferTextureEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level) -{ - return GL_FramebufferTextureEXTContextANGLE(ctx, target, attachment, texture, level); -} - -void GL_APIENTRY glFramebufferTextureLayerContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint layer) -{ - return GL_FramebufferTextureLayerContextANGLE(ctx, target, attachment, texture, level, layer); -} - -void GL_APIENTRY glFramebufferTextureMultiviewOVRContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLuint texture, - GLint level, - GLint baseViewIndex, - GLsizei numViews) -{ - return GL_FramebufferTextureMultiviewOVRContextANGLE(ctx, target, attachment, texture, level, - baseViewIndex, numViews); -} - -void GL_APIENTRY glFrontFaceContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_FrontFaceContextANGLE(ctx, mode); -} - -void GL_APIENTRY glFrustumfContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f) -{ - return GL_FrustumfContextANGLE(ctx, l, r, b, t, n, f); -} - -void GL_APIENTRY glFrustumxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f) -{ - return GL_FrustumxContextANGLE(ctx, l, r, b, t, n, f); -} - -void GL_APIENTRY glGenBuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *buffers) -{ - return GL_GenBuffersContextANGLE(ctx, n, buffers); -} - -void GL_APIENTRY glGenFencesNVContextANGLE(GLeglContext ctx, GLsizei n, GLuint *fences) -{ - return GL_GenFencesNVContextANGLE(ctx, n, fences); -} - -void GL_APIENTRY glGenFramebuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *framebuffers) -{ - return GL_GenFramebuffersContextANGLE(ctx, n, framebuffers); -} - -void GL_APIENTRY glGenFramebuffersOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *framebuffers) -{ - return GL_GenFramebuffersOESContextANGLE(ctx, n, framebuffers); -} - -void GL_APIENTRY glGenProgramPipelinesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *pipelines) -{ - return GL_GenProgramPipelinesContextANGLE(ctx, n, pipelines); -} - -void GL_APIENTRY glGenProgramPipelinesEXTContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *pipelines) -{ - return GL_GenProgramPipelinesEXTContextANGLE(ctx, n, pipelines); -} - -void GL_APIENTRY glGenQueriesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - return GL_GenQueriesContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glGenQueriesEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - return GL_GenQueriesEXTContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glGenRenderbuffersContextANGLE(GLeglContext ctx, GLsizei n, GLuint *renderbuffers) -{ - return GL_GenRenderbuffersContextANGLE(ctx, n, renderbuffers); -} - -void GL_APIENTRY glGenRenderbuffersOESContextANGLE(GLeglContext ctx, - GLsizei n, - GLuint *renderbuffers) -{ - return GL_GenRenderbuffersOESContextANGLE(ctx, n, renderbuffers); -} - -void GL_APIENTRY glGenSamplersContextANGLE(GLeglContext ctx, GLsizei count, GLuint *samplers) -{ - return GL_GenSamplersContextANGLE(ctx, count, samplers); -} - -void GL_APIENTRY glGenSemaphoresEXTContextANGLE(GLeglContext ctx, GLsizei n, GLuint *semaphores) -{ - return GL_GenSemaphoresEXTContextANGLE(ctx, n, semaphores); -} - -void GL_APIENTRY glGenTexturesContextANGLE(GLeglContext ctx, GLsizei n, GLuint *textures) -{ - return GL_GenTexturesContextANGLE(ctx, n, textures); -} - -void GL_APIENTRY glGenTransformFeedbacksContextANGLE(GLeglContext ctx, GLsizei n, GLuint *ids) -{ - return GL_GenTransformFeedbacksContextANGLE(ctx, n, ids); -} - -void GL_APIENTRY glGenVertexArraysContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays) -{ - return GL_GenVertexArraysContextANGLE(ctx, n, arrays); -} - -void GL_APIENTRY glGenVertexArraysOESContextANGLE(GLeglContext ctx, GLsizei n, GLuint *arrays) -{ - return GL_GenVertexArraysOESContextANGLE(ctx, n, arrays); -} - -void GL_APIENTRY glGenerateMipmapContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_GenerateMipmapContextANGLE(ctx, target); -} - -void GL_APIENTRY glGenerateMipmapOESContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_GenerateMipmapOESContextANGLE(ctx, target); -} - -void GL_APIENTRY glGetActiveAttribContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name) -{ - return GL_GetActiveAttribContextANGLE(ctx, program, index, bufSize, length, size, type, name); -} - -void GL_APIENTRY glGetActiveUniformContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *size, - GLenum *type, - GLchar *name) -{ - return GL_GetActiveUniformContextANGLE(ctx, program, index, bufSize, length, size, type, name); -} - -void GL_APIENTRY glGetActiveUniformBlockNameContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLsizei bufSize, - GLsizei *length, - GLchar *uniformBlockName) -{ - return GL_GetActiveUniformBlockNameContextANGLE(ctx, program, uniformBlockIndex, bufSize, - length, uniformBlockName); -} - -void GL_APIENTRY glGetActiveUniformBlockivContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLint *params) -{ - return GL_GetActiveUniformBlockivContextANGLE(ctx, program, uniformBlockIndex, pname, params); -} - -void GL_APIENTRY glGetActiveUniformsivContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLuint *uniformIndices, - GLenum pname, - GLint *params) -{ - return GL_GetActiveUniformsivContextANGLE(ctx, program, uniformCount, uniformIndices, pname, - params); -} - -void GL_APIENTRY glGetAttachedShadersContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei maxCount, - GLsizei *count, - GLuint *shaders) -{ - return GL_GetAttachedShadersContextANGLE(ctx, program, maxCount, count, shaders); -} - -GLint GL_APIENTRY glGetAttribLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - return GL_GetAttribLocationContextANGLE(ctx, program, name); -} - -void GL_APIENTRY glGetBooleani_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLboolean *data) -{ - return GL_GetBooleani_vContextANGLE(ctx, target, index, data); -} - -void GL_APIENTRY glGetBooleanvContextANGLE(GLeglContext ctx, GLenum pname, GLboolean *data) -{ - return GL_GetBooleanvContextANGLE(ctx, pname, data); -} - -void GL_APIENTRY glGetBufferParameteri64vContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint64 *params) -{ - return GL_GetBufferParameteri64vContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetBufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetBufferParameterivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetBufferPointervContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params) -{ - return GL_GetBufferPointervContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetBufferPointervOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - void **params) -{ - return GL_GetBufferPointervOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetClipPlanefContextANGLE(GLeglContext ctx, GLenum plane, GLfloat *equation) -{ - return GL_GetClipPlanefContextANGLE(ctx, plane, equation); -} - -void GL_APIENTRY glGetClipPlanexContextANGLE(GLeglContext ctx, GLenum plane, GLfixed *equation) -{ - return GL_GetClipPlanexContextANGLE(ctx, plane, equation); -} - -GLuint GL_APIENTRY glGetDebugMessageLogContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog) -{ - return GL_GetDebugMessageLogContextANGLE(ctx, count, bufSize, sources, types, ids, severities, - lengths, messageLog); -} - -GLuint GL_APIENTRY glGetDebugMessageLogKHRContextANGLE(GLeglContext ctx, - GLuint count, - GLsizei bufSize, - GLenum *sources, - GLenum *types, - GLuint *ids, - GLenum *severities, - GLsizei *lengths, - GLchar *messageLog) -{ - return GL_GetDebugMessageLogKHRContextANGLE(ctx, count, bufSize, sources, types, ids, - severities, lengths, messageLog); -} - -GLenum GL_APIENTRY glGetErrorContextANGLE(GLeglContext ctx) -{ - return GL_GetErrorContextANGLE(ctx); -} - -void GL_APIENTRY glGetFenceivNVContextANGLE(GLeglContext ctx, - GLuint fence, - GLenum pname, - GLint *params) -{ - return GL_GetFenceivNVContextANGLE(ctx, fence, pname, params); -} - -void GL_APIENTRY glGetFixedvContextANGLE(GLeglContext ctx, GLenum pname, GLfixed *params) -{ - return GL_GetFixedvContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glGetFloatvContextANGLE(GLeglContext ctx, GLenum pname, GLfloat *data) -{ - return GL_GetFloatvContextANGLE(ctx, pname, data); -} - -GLint GL_APIENTRY glGetFragDataIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - return GL_GetFragDataIndexEXTContextANGLE(ctx, program, name); -} - -GLint GL_APIENTRY glGetFragDataLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - return GL_GetFragDataLocationContextANGLE(ctx, program, name); -} - -void GL_APIENTRY glGetFramebufferAttachmentParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params) -{ - return GL_GetFramebufferAttachmentParameterivContextANGLE(ctx, target, attachment, pname, - params); -} - -void GL_APIENTRY glGetFramebufferAttachmentParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLint *params) -{ - return GL_GetFramebufferAttachmentParameterivOESContextANGLE(ctx, target, attachment, pname, - params); -} - -void GL_APIENTRY glGetFramebufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetFramebufferParameterivContextANGLE(ctx, target, pname, params); -} - -GLenum GL_APIENTRY glGetGraphicsResetStatusContextANGLE(GLeglContext ctx) -{ - return GL_GetGraphicsResetStatusContextANGLE(ctx); -} - -GLenum GL_APIENTRY glGetGraphicsResetStatusEXTContextANGLE(GLeglContext ctx) -{ - return GL_GetGraphicsResetStatusEXTContextANGLE(ctx); -} - -void GL_APIENTRY glGetInteger64i_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint64 *data) -{ - return GL_GetInteger64i_vContextANGLE(ctx, target, index, data); -} - -void GL_APIENTRY glGetInteger64vContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data) -{ - return GL_GetInteger64vContextANGLE(ctx, pname, data); -} - -void GL_APIENTRY glGetInteger64vEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint64 *data) -{ - return GL_GetInteger64vEXTContextANGLE(ctx, pname, data); -} - -void GL_APIENTRY glGetIntegeri_vContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLint *data) -{ - return GL_GetIntegeri_vContextANGLE(ctx, target, index, data); -} - -void GL_APIENTRY glGetIntegervContextANGLE(GLeglContext ctx, GLenum pname, GLint *data) -{ - return GL_GetIntegervContextANGLE(ctx, pname, data); -} - -void GL_APIENTRY glGetInternalformativContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLint *params) -{ - return GL_GetInternalformativContextANGLE(ctx, target, internalformat, pname, bufSize, params); -} - -void GL_APIENTRY glGetLightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfloat *params) -{ - return GL_GetLightfvContextANGLE(ctx, light, pname, params); -} - -void GL_APIENTRY glGetLightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - GLfixed *params) -{ - return GL_GetLightxvContextANGLE(ctx, light, pname, params); -} - -void GL_APIENTRY glGetMaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfloat *params) -{ - return GL_GetMaterialfvContextANGLE(ctx, face, pname, params); -} - -void GL_APIENTRY glGetMaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - GLfixed *params) -{ - return GL_GetMaterialxvContextANGLE(ctx, face, pname, params); -} - -void GL_APIENTRY glGetMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - GLint *params) -{ - return GL_GetMemoryObjectParameterivEXTContextANGLE(ctx, memoryObject, pname, params); -} - -void GL_APIENTRY glGetMultisamplefvContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val) -{ - return GL_GetMultisamplefvContextANGLE(ctx, pname, index, val); -} - -void GL_APIENTRY glGetObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - return GL_GetObjectLabelContextANGLE(ctx, identifier, name, bufSize, length, label); -} - -void GL_APIENTRY glGetObjectLabelEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - return GL_GetObjectLabelEXTContextANGLE(ctx, type, object, bufSize, length, label); -} - -void GL_APIENTRY glGetObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - return GL_GetObjectLabelKHRContextANGLE(ctx, identifier, name, bufSize, length, label); -} - -void GL_APIENTRY glGetObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - return GL_GetObjectPtrLabelContextANGLE(ctx, ptr, bufSize, length, label); -} - -void GL_APIENTRY glGetObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei bufSize, - GLsizei *length, - GLchar *label) -{ - return GL_GetObjectPtrLabelKHRContextANGLE(ctx, ptr, bufSize, length, label); -} - -void GL_APIENTRY glGetPointervContextANGLE(GLeglContext ctx, GLenum pname, void **params) -{ - return GL_GetPointervContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glGetPointervKHRContextANGLE(GLeglContext ctx, GLenum pname, void **params) -{ - return GL_GetPointervKHRContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glGetProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary) -{ - return GL_GetProgramBinaryContextANGLE(ctx, program, bufSize, length, binaryFormat, binary); -} - -void GL_APIENTRY glGetProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLenum *binaryFormat, - void *binary) -{ - return GL_GetProgramBinaryOESContextANGLE(ctx, program, bufSize, length, binaryFormat, binary); -} - -void GL_APIENTRY glGetProgramInfoLogContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - return GL_GetProgramInfoLogContextANGLE(ctx, program, bufSize, length, infoLog); -} - -void GL_APIENTRY glGetProgramInterfaceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLint *params) -{ - return GL_GetProgramInterfaceivContextANGLE(ctx, program, programInterface, pname, params); -} - -void GL_APIENTRY glGetProgramPipelineInfoLogContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - return GL_GetProgramPipelineInfoLogContextANGLE(ctx, pipeline, bufSize, length, infoLog); -} - -void GL_APIENTRY glGetProgramPipelineInfoLogEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - return GL_GetProgramPipelineInfoLogEXTContextANGLE(ctx, pipeline, bufSize, length, infoLog); -} - -void GL_APIENTRY glGetProgramPipelineivContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params) -{ - return GL_GetProgramPipelineivContextANGLE(ctx, pipeline, pname, params); -} - -void GL_APIENTRY glGetProgramPipelineivEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLenum pname, - GLint *params) -{ - return GL_GetProgramPipelineivEXTContextANGLE(ctx, pipeline, pname, params); -} - -GLuint GL_APIENTRY glGetProgramResourceIndexContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - return GL_GetProgramResourceIndexContextANGLE(ctx, program, programInterface, name); -} - -GLint GL_APIENTRY glGetProgramResourceLocationContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - return GL_GetProgramResourceLocationContextANGLE(ctx, program, programInterface, name); -} - -GLint GL_APIENTRY glGetProgramResourceLocationIndexEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - const GLchar *name) -{ - return GL_GetProgramResourceLocationIndexEXTContextANGLE(ctx, program, programInterface, name); -} - -void GL_APIENTRY glGetProgramResourceNameContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLchar *name) -{ - return GL_GetProgramResourceNameContextANGLE(ctx, program, programInterface, index, bufSize, - length, name); -} - -void GL_APIENTRY glGetProgramResourceivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLuint index, - GLsizei propCount, - const GLenum *props, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetProgramResourceivContextANGLE(ctx, program, programInterface, index, propCount, - props, bufSize, length, params); -} - -void GL_APIENTRY glGetProgramivContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint *params) -{ - return GL_GetProgramivContextANGLE(ctx, program, pname, params); -} - -void GL_APIENTRY glGetQueryObjecti64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint64 *params) -{ - return GL_GetQueryObjecti64vEXTContextANGLE(ctx, id, pname, params); -} - -void GL_APIENTRY glGetQueryObjectivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLint *params) -{ - return GL_GetQueryObjectivEXTContextANGLE(ctx, id, pname, params); -} - -void GL_APIENTRY glGetQueryObjectui64vEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint64 *params) -{ - return GL_GetQueryObjectui64vEXTContextANGLE(ctx, id, pname, params); -} - -void GL_APIENTRY glGetQueryObjectuivContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params) -{ - return GL_GetQueryObjectuivContextANGLE(ctx, id, pname, params); -} - -void GL_APIENTRY glGetQueryObjectuivEXTContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLuint *params) -{ - return GL_GetQueryObjectuivEXTContextANGLE(ctx, id, pname, params); -} - -void GL_APIENTRY glGetQueryivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetQueryivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetQueryivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetQueryivEXTContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetRenderbufferParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetRenderbufferParameterivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetRenderbufferParameterivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetRenderbufferParameterivOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - return GL_GetSamplerParameterIivContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - return GL_GetSamplerParameterIivEXTContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - return GL_GetSamplerParameterIivOESContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - return GL_GetSamplerParameterIuivContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - return GL_GetSamplerParameterIuivEXTContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLuint *params) -{ - return GL_GetSamplerParameterIuivOESContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat *params) -{ - return GL_GetSamplerParameterfvContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint *params) -{ - return GL_GetSamplerParameterivContextANGLE(ctx, sampler, pname, params); -} - -void GL_APIENTRY glGetSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - GLuint64 *params) -{ - return GL_GetSemaphoreParameterui64vEXTContextANGLE(ctx, semaphore, pname, params); -} - -void GL_APIENTRY glGetShaderInfoLogContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *infoLog) -{ - return GL_GetShaderInfoLogContextANGLE(ctx, shader, bufSize, length, infoLog); -} - -void GL_APIENTRY glGetShaderPrecisionFormatContextANGLE(GLeglContext ctx, - GLenum shadertype, - GLenum precisiontype, - GLint *range, - GLint *precision) -{ - return GL_GetShaderPrecisionFormatContextANGLE(ctx, shadertype, precisiontype, range, - precision); -} - -void GL_APIENTRY glGetShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufSize, - GLsizei *length, - GLchar *source) -{ - return GL_GetShaderSourceContextANGLE(ctx, shader, bufSize, length, source); -} - -void GL_APIENTRY glGetShaderivContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLint *params) -{ - return GL_GetShaderivContextANGLE(ctx, shader, pname, params); -} - -const GLubyte *GL_APIENTRY glGetStringContextANGLE(GLeglContext ctx, GLenum name) -{ - return GL_GetStringContextANGLE(ctx, name); -} - -const GLubyte *GL_APIENTRY glGetStringiContextANGLE(GLeglContext ctx, GLenum name, GLuint index) -{ - return GL_GetStringiContextANGLE(ctx, name, index); -} - -void GL_APIENTRY glGetSyncivContextANGLE(GLeglContext ctx, - GLsync sync, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *values) -{ - return GL_GetSyncivContextANGLE(ctx, sync, pname, bufSize, length, values); -} - -void GL_APIENTRY glGetTexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params) -{ - return GL_GetTexEnvfvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetTexEnvivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params) -{ - return GL_GetTexEnvxvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat *params) -{ - return GL_GetTexGenfvOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glGetTexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLint *params) -{ - return GL_GetTexGenivOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glGetTexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed *params) -{ - return GL_GetTexGenxvOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glGetTexLevelParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params) -{ - return GL_GetTexLevelParameterfvContextANGLE(ctx, target, level, pname, params); -} - -void GL_APIENTRY glGetTexLevelParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params) -{ - return GL_GetTexLevelParameterivContextANGLE(ctx, target, level, pname, params); -} - -void GL_APIENTRY glGetTexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetTexParameterIivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetTexParameterIivEXTContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetTexParameterIivOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - return GL_GetTexParameterIuivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - return GL_GetTexParameterIuivEXTContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLuint *params) -{ - return GL_GetTexParameterIuivOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat *params) -{ - return GL_GetTexParameterfvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint *params) -{ - return GL_GetTexParameterivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed *params) -{ - return GL_GetTexParameterxvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glGetTransformFeedbackVaryingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLsizei *size, - GLenum *type, - GLchar *name) -{ - return GL_GetTransformFeedbackVaryingContextANGLE(ctx, program, index, bufSize, length, size, - type, name); -} - -void GL_APIENTRY glGetTranslatedShaderSourceANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei bufsize, - GLsizei *length, - GLchar *source) -{ - return GL_GetTranslatedShaderSourceANGLEContextANGLE(ctx, shader, bufsize, length, source); -} - -GLuint GL_APIENTRY glGetUniformBlockIndexContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *uniformBlockName) -{ - return GL_GetUniformBlockIndexContextANGLE(ctx, program, uniformBlockName); -} - -void GL_APIENTRY glGetUniformIndicesContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei uniformCount, - const GLchar *const *uniformNames, - GLuint *uniformIndices) -{ - return GL_GetUniformIndicesContextANGLE(ctx, program, uniformCount, uniformNames, - uniformIndices); -} - -GLint GL_APIENTRY glGetUniformLocationContextANGLE(GLeglContext ctx, - GLuint program, - const GLchar *name) -{ - return GL_GetUniformLocationContextANGLE(ctx, program, name); -} - -void GL_APIENTRY glGetUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat *params) -{ - return GL_GetUniformfvContextANGLE(ctx, program, location, params); -} - -void GL_APIENTRY glGetUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint *params) -{ - return GL_GetUniformivContextANGLE(ctx, program, location, params); -} - -void GL_APIENTRY glGetUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint *params) -{ - return GL_GetUniformuivContextANGLE(ctx, program, location, params); -} - -void GL_APIENTRY glGetUnsignedBytevEXTContextANGLE(GLeglContext ctx, GLenum pname, GLubyte *data) -{ - return GL_GetUnsignedBytevEXTContextANGLE(ctx, pname, data); -} - -void GL_APIENTRY glGetUnsignedBytei_vEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLubyte *data) -{ - return GL_GetUnsignedBytei_vEXTContextANGLE(ctx, target, index, data); -} - -void GL_APIENTRY glGetVertexAttribIivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params) -{ - return GL_GetVertexAttribIivContextANGLE(ctx, index, pname, params); -} - -void GL_APIENTRY glGetVertexAttribIuivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLuint *params) -{ - return GL_GetVertexAttribIuivContextANGLE(ctx, index, pname, params); -} - -void GL_APIENTRY glGetVertexAttribPointervContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - void **pointer) -{ - return GL_GetVertexAttribPointervContextANGLE(ctx, index, pname, pointer); -} - -void GL_APIENTRY glGetVertexAttribfvContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLfloat *params) -{ - return GL_GetVertexAttribfvContextANGLE(ctx, index, pname, params); -} - -void GL_APIENTRY glGetVertexAttribivContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLint *params) -{ - return GL_GetVertexAttribivContextANGLE(ctx, index, pname, params); -} - -void GL_APIENTRY glGetnUniformfvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params) -{ - return GL_GetnUniformfvContextANGLE(ctx, program, location, bufSize, params); -} - -void GL_APIENTRY glGetnUniformfvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLfloat *params) -{ - return GL_GetnUniformfvEXTContextANGLE(ctx, program, location, bufSize, params); -} - -void GL_APIENTRY glGetnUniformivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params) -{ - return GL_GetnUniformivContextANGLE(ctx, program, location, bufSize, params); -} - -void GL_APIENTRY glGetnUniformivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLint *params) -{ - return GL_GetnUniformivEXTContextANGLE(ctx, program, location, bufSize, params); -} - -void GL_APIENTRY glGetnUniformuivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLuint *params) -{ - return GL_GetnUniformuivContextANGLE(ctx, program, location, bufSize, params); -} - -void GL_APIENTRY glHintContextANGLE(GLeglContext ctx, GLenum target, GLenum mode) -{ - return GL_HintContextANGLE(ctx, target, mode); -} - -void GL_APIENTRY glImportMemoryFdEXTContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLint fd) -{ - return GL_ImportMemoryFdEXTContextANGLE(ctx, memory, size, handleType, fd); -} - -void GL_APIENTRY glImportSemaphoreFdEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLint fd) -{ - return GL_ImportSemaphoreFdEXTContextANGLE(ctx, semaphore, handleType, fd); -} - -void GL_APIENTRY glInsertEventMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker) -{ - return GL_InsertEventMarkerEXTContextANGLE(ctx, length, marker); -} - -void GL_APIENTRY glInvalidateFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments) -{ - return GL_InvalidateFramebufferContextANGLE(ctx, target, numAttachments, attachments); -} - -void GL_APIENTRY glInvalidateSubFramebufferContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei numAttachments, - const GLenum *attachments, - GLint x, - GLint y, - GLsizei width, - GLsizei height) -{ - return GL_InvalidateSubFramebufferContextANGLE(ctx, target, numAttachments, attachments, x, y, - width, height); -} - -GLboolean GL_APIENTRY glIsBufferContextANGLE(GLeglContext ctx, GLuint buffer) -{ - return GL_IsBufferContextANGLE(ctx, buffer); -} - -GLboolean GL_APIENTRY glIsEnabledContextANGLE(GLeglContext ctx, GLenum cap) -{ - return GL_IsEnabledContextANGLE(ctx, cap); -} - -GLboolean GL_APIENTRY glIsEnablediContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_IsEnablediContextANGLE(ctx, target, index); -} - -GLboolean GL_APIENTRY glIsEnablediEXTContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_IsEnablediEXTContextANGLE(ctx, target, index); -} - -GLboolean GL_APIENTRY glIsEnablediOESContextANGLE(GLeglContext ctx, GLenum target, GLuint index) -{ - return GL_IsEnablediOESContextANGLE(ctx, target, index); -} - -GLboolean GL_APIENTRY glIsFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - return GL_IsFenceNVContextANGLE(ctx, fence); -} - -GLboolean GL_APIENTRY glIsFramebufferContextANGLE(GLeglContext ctx, GLuint framebuffer) -{ - return GL_IsFramebufferContextANGLE(ctx, framebuffer); -} - -GLboolean GL_APIENTRY glIsFramebufferOESContextANGLE(GLeglContext ctx, GLuint framebuffer) -{ - return GL_IsFramebufferOESContextANGLE(ctx, framebuffer); -} - -GLboolean GL_APIENTRY glIsMemoryObjectEXTContextANGLE(GLeglContext ctx, GLuint memoryObject) -{ - return GL_IsMemoryObjectEXTContextANGLE(ctx, memoryObject); -} - -GLboolean GL_APIENTRY glIsProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - return GL_IsProgramContextANGLE(ctx, program); -} - -GLboolean GL_APIENTRY glIsProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_IsProgramPipelineContextANGLE(ctx, pipeline); -} - -GLboolean GL_APIENTRY glIsProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_IsProgramPipelineEXTContextANGLE(ctx, pipeline); -} - -GLboolean GL_APIENTRY glIsQueryContextANGLE(GLeglContext ctx, GLuint id) -{ - return GL_IsQueryContextANGLE(ctx, id); -} - -GLboolean GL_APIENTRY glIsQueryEXTContextANGLE(GLeglContext ctx, GLuint id) -{ - return GL_IsQueryEXTContextANGLE(ctx, id); -} - -GLboolean GL_APIENTRY glIsRenderbufferContextANGLE(GLeglContext ctx, GLuint renderbuffer) -{ - return GL_IsRenderbufferContextANGLE(ctx, renderbuffer); -} - -GLboolean GL_APIENTRY glIsRenderbufferOESContextANGLE(GLeglContext ctx, GLuint renderbuffer) -{ - return GL_IsRenderbufferOESContextANGLE(ctx, renderbuffer); -} - -GLboolean GL_APIENTRY glIsSemaphoreEXTContextANGLE(GLeglContext ctx, GLuint semaphore) -{ - return GL_IsSemaphoreEXTContextANGLE(ctx, semaphore); -} - -GLboolean GL_APIENTRY glIsSamplerContextANGLE(GLeglContext ctx, GLuint sampler) -{ - return GL_IsSamplerContextANGLE(ctx, sampler); -} - -GLboolean GL_APIENTRY glIsShaderContextANGLE(GLeglContext ctx, GLuint shader) -{ - return GL_IsShaderContextANGLE(ctx, shader); -} - -GLboolean GL_APIENTRY glIsSyncContextANGLE(GLeglContext ctx, GLsync sync) -{ - return GL_IsSyncContextANGLE(ctx, sync); -} - -GLboolean GL_APIENTRY glIsTextureContextANGLE(GLeglContext ctx, GLuint texture) -{ - return GL_IsTextureContextANGLE(ctx, texture); -} - -GLboolean GL_APIENTRY glIsTransformFeedbackContextANGLE(GLeglContext ctx, GLuint id) -{ - return GL_IsTransformFeedbackContextANGLE(ctx, id); -} - -GLboolean GL_APIENTRY glIsVertexArrayContextANGLE(GLeglContext ctx, GLuint array) -{ - return GL_IsVertexArrayContextANGLE(ctx, array); -} - -GLboolean GL_APIENTRY glIsVertexArrayOESContextANGLE(GLeglContext ctx, GLuint array) -{ - return GL_IsVertexArrayOESContextANGLE(ctx, array); -} - -void GL_APIENTRY glLabelObjectEXTContextANGLE(GLeglContext ctx, - GLenum type, - GLuint object, - GLsizei length, - const GLchar *label) -{ - return GL_LabelObjectEXTContextANGLE(ctx, type, object, length, label); -} - -void GL_APIENTRY glLightModelfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - return GL_LightModelfContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glLightModelfvContextANGLE(GLeglContext ctx, GLenum pname, const GLfloat *params) -{ - return GL_LightModelfvContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glLightModelxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - return GL_LightModelxContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glLightModelxvContextANGLE(GLeglContext ctx, GLenum pname, const GLfixed *param) -{ - return GL_LightModelxvContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glLightfContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfloat param) -{ - return GL_LightfContextANGLE(ctx, light, pname, param); -} - -void GL_APIENTRY glLightfvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfloat *params) -{ - return GL_LightfvContextANGLE(ctx, light, pname, params); -} - -void GL_APIENTRY glLightxContextANGLE(GLeglContext ctx, GLenum light, GLenum pname, GLfixed param) -{ - return GL_LightxContextANGLE(ctx, light, pname, param); -} - -void GL_APIENTRY glLightxvContextANGLE(GLeglContext ctx, - GLenum light, - GLenum pname, - const GLfixed *params) -{ - return GL_LightxvContextANGLE(ctx, light, pname, params); -} - -void GL_APIENTRY glLineWidthContextANGLE(GLeglContext ctx, GLfloat width) -{ - return GL_LineWidthContextANGLE(ctx, width); -} - -void GL_APIENTRY glLineWidthxContextANGLE(GLeglContext ctx, GLfixed width) -{ - return GL_LineWidthxContextANGLE(ctx, width); -} - -void GL_APIENTRY glLinkProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - return GL_LinkProgramContextANGLE(ctx, program); -} - -void GL_APIENTRY glLoadIdentityContextANGLE(GLeglContext ctx) -{ - return GL_LoadIdentityContextANGLE(ctx); -} - -void GL_APIENTRY glLoadMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m) -{ - return GL_LoadMatrixfContextANGLE(ctx, m); -} - -void GL_APIENTRY glLoadMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m) -{ - return GL_LoadMatrixxContextANGLE(ctx, m); -} - -void GL_APIENTRY glLoadPaletteFromModelViewMatrixOESContextANGLE(GLeglContext ctx) -{ - return GL_LoadPaletteFromModelViewMatrixOESContextANGLE(ctx); -} - -void GL_APIENTRY glLogicOpContextANGLE(GLeglContext ctx, GLenum opcode) -{ - return GL_LogicOpContextANGLE(ctx, opcode); -} - -void *GL_APIENTRY glMapBufferOESContextANGLE(GLeglContext ctx, GLenum target, GLenum access) -{ - return GL_MapBufferOESContextANGLE(ctx, target, access); -} - -void *GL_APIENTRY glMapBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access) -{ - return GL_MapBufferRangeContextANGLE(ctx, target, offset, length, access); -} - -void *GL_APIENTRY glMapBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLintptr offset, - GLsizeiptr length, - GLbitfield access) -{ - return GL_MapBufferRangeEXTContextANGLE(ctx, target, offset, length, access); -} - -void GL_APIENTRY glMaterialfContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfloat param) -{ - return GL_MaterialfContextANGLE(ctx, face, pname, param); -} - -void GL_APIENTRY glMaterialfvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfloat *params) -{ - return GL_MaterialfvContextANGLE(ctx, face, pname, params); -} - -void GL_APIENTRY glMaterialxContextANGLE(GLeglContext ctx, GLenum face, GLenum pname, GLfixed param) -{ - return GL_MaterialxContextANGLE(ctx, face, pname, param); -} - -void GL_APIENTRY glMaterialxvContextANGLE(GLeglContext ctx, - GLenum face, - GLenum pname, - const GLfixed *param) -{ - return GL_MaterialxvContextANGLE(ctx, face, pname, param); -} - -void GL_APIENTRY glMatrixIndexPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_MatrixIndexPointerOESContextANGLE(ctx, size, type, stride, pointer); -} - -void GL_APIENTRY glMatrixModeContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_MatrixModeContextANGLE(ctx, mode); -} - -void GL_APIENTRY glMaxShaderCompilerThreadsKHRContextANGLE(GLeglContext ctx, GLuint count) -{ - return GL_MaxShaderCompilerThreadsKHRContextANGLE(ctx, count); -} - -void GL_APIENTRY glMemoryBarrierContextANGLE(GLeglContext ctx, GLbitfield barriers) -{ - return GL_MemoryBarrierContextANGLE(ctx, barriers); -} - -void GL_APIENTRY glMemoryBarrierByRegionContextANGLE(GLeglContext ctx, GLbitfield barriers) -{ - return GL_MemoryBarrierByRegionContextANGLE(ctx, barriers); -} - -void GL_APIENTRY glMemoryObjectParameterivEXTContextANGLE(GLeglContext ctx, - GLuint memoryObject, - GLenum pname, - const GLint *params) -{ - return GL_MemoryObjectParameterivEXTContextANGLE(ctx, memoryObject, pname, params); -} - -void GL_APIENTRY glMinSampleShadingContextANGLE(GLeglContext ctx, GLfloat value) -{ - return GL_MinSampleShadingContextANGLE(ctx, value); -} - -void GL_APIENTRY glMinSampleShadingOESContextANGLE(GLeglContext ctx, GLfloat value) -{ - return GL_MinSampleShadingOESContextANGLE(ctx, value); -} - -void GL_APIENTRY glMultMatrixfContextANGLE(GLeglContext ctx, const GLfloat *m) -{ - return GL_MultMatrixfContextANGLE(ctx, m); -} - -void GL_APIENTRY glMultMatrixxContextANGLE(GLeglContext ctx, const GLfixed *m) -{ - return GL_MultMatrixxContextANGLE(ctx, m); -} - -void GL_APIENTRY glMultiDrawElementsBaseVertexEXTContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *count, - GLenum type, - const void *const *indices, - GLsizei primcount, - const GLint *basevertex) -{ - return GL_MultiDrawElementsBaseVertexEXTContextANGLE(ctx, mode, count, type, indices, primcount, - basevertex); -} - -void GL_APIENTRY glMultiTexCoord4fContextANGLE(GLeglContext ctx, - GLenum target, - GLfloat s, - GLfloat t, - GLfloat r, - GLfloat q) -{ - return GL_MultiTexCoord4fContextANGLE(ctx, target, s, t, r, q); -} - -void GL_APIENTRY glMultiTexCoord4xContextANGLE(GLeglContext ctx, - GLenum texture, - GLfixed s, - GLfixed t, - GLfixed r, - GLfixed q) -{ - return GL_MultiTexCoord4xContextANGLE(ctx, texture, s, t, r, q); -} - -void GL_APIENTRY glNamedBufferStorageExternalEXTContextANGLE(GLeglContext ctx, - GLuint buffer, - GLintptr offset, - GLsizeiptr size, - GLeglClientBufferEXT clientBuffer, - GLbitfield flags) -{ - return GL_NamedBufferStorageExternalEXTContextANGLE(ctx, buffer, offset, size, clientBuffer, - flags); -} - -void GL_APIENTRY glNormal3fContextANGLE(GLeglContext ctx, GLfloat nx, GLfloat ny, GLfloat nz) -{ - return GL_Normal3fContextANGLE(ctx, nx, ny, nz); -} - -void GL_APIENTRY glNormal3xContextANGLE(GLeglContext ctx, GLfixed nx, GLfixed ny, GLfixed nz) -{ - return GL_Normal3xContextANGLE(ctx, nx, ny, nz); -} - -void GL_APIENTRY glNormalPointerContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_NormalPointerContextANGLE(ctx, type, stride, pointer); -} - -void GL_APIENTRY glObjectLabelContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label) -{ - return GL_ObjectLabelContextANGLE(ctx, identifier, name, length, label); -} - -void GL_APIENTRY glObjectLabelKHRContextANGLE(GLeglContext ctx, - GLenum identifier, - GLuint name, - GLsizei length, - const GLchar *label) -{ - return GL_ObjectLabelKHRContextANGLE(ctx, identifier, name, length, label); -} - -void GL_APIENTRY glObjectPtrLabelContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label) -{ - return GL_ObjectPtrLabelContextANGLE(ctx, ptr, length, label); -} - -void GL_APIENTRY glObjectPtrLabelKHRContextANGLE(GLeglContext ctx, - const void *ptr, - GLsizei length, - const GLchar *label) -{ - return GL_ObjectPtrLabelKHRContextANGLE(ctx, ptr, length, label); -} - -void GL_APIENTRY glOrthofContextANGLE(GLeglContext ctx, - GLfloat l, - GLfloat r, - GLfloat b, - GLfloat t, - GLfloat n, - GLfloat f) -{ - return GL_OrthofContextANGLE(ctx, l, r, b, t, n, f); -} - -void GL_APIENTRY glOrthoxContextANGLE(GLeglContext ctx, - GLfixed l, - GLfixed r, - GLfixed b, - GLfixed t, - GLfixed n, - GLfixed f) -{ - return GL_OrthoxContextANGLE(ctx, l, r, b, t, n, f); -} - -void GL_APIENTRY glPatchParameteriContextANGLE(GLeglContext ctx, GLenum pname, GLint value) -{ - return GL_PatchParameteriContextANGLE(ctx, pname, value); -} - -void GL_APIENTRY glPatchParameteriEXTContextANGLE(GLeglContext ctx, GLenum pname, GLint value) -{ - return GL_PatchParameteriEXTContextANGLE(ctx, pname, value); -} - -void GL_APIENTRY glPauseTransformFeedbackContextANGLE(GLeglContext ctx) -{ - return GL_PauseTransformFeedbackContextANGLE(ctx); -} - -void GL_APIENTRY glPixelStoreiContextANGLE(GLeglContext ctx, GLenum pname, GLint param) -{ - return GL_PixelStoreiContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glPointParameterfContextANGLE(GLeglContext ctx, GLenum pname, GLfloat param) -{ - return GL_PointParameterfContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glPointParameterfvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfloat *params) -{ - return GL_PointParameterfvContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glPointParameterxContextANGLE(GLeglContext ctx, GLenum pname, GLfixed param) -{ - return GL_PointParameterxContextANGLE(ctx, pname, param); -} - -void GL_APIENTRY glPointParameterxvContextANGLE(GLeglContext ctx, - GLenum pname, - const GLfixed *params) -{ - return GL_PointParameterxvContextANGLE(ctx, pname, params); -} - -void GL_APIENTRY glPointSizeContextANGLE(GLeglContext ctx, GLfloat size) -{ - return GL_PointSizeContextANGLE(ctx, size); -} - -void GL_APIENTRY glPointSizePointerOESContextANGLE(GLeglContext ctx, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_PointSizePointerOESContextANGLE(ctx, type, stride, pointer); -} - -void GL_APIENTRY glPointSizexContextANGLE(GLeglContext ctx, GLfixed size) -{ - return GL_PointSizexContextANGLE(ctx, size); -} - -void GL_APIENTRY glPolygonOffsetContextANGLE(GLeglContext ctx, GLfloat factor, GLfloat units) -{ - return GL_PolygonOffsetContextANGLE(ctx, factor, units); -} - -void GL_APIENTRY glPolygonOffsetxContextANGLE(GLeglContext ctx, GLfixed factor, GLfixed units) -{ - return GL_PolygonOffsetxContextANGLE(ctx, factor, units); -} - -void GL_APIENTRY glPopDebugGroupContextANGLE(GLeglContext ctx) -{ - return GL_PopDebugGroupContextANGLE(ctx); -} - -void GL_APIENTRY glPopDebugGroupKHRContextANGLE(GLeglContext ctx) -{ - return GL_PopDebugGroupKHRContextANGLE(ctx); -} - -void GL_APIENTRY glPopGroupMarkerEXTContextANGLE(GLeglContext ctx) -{ - return GL_PopGroupMarkerEXTContextANGLE(ctx); -} - -void GL_APIENTRY glPopMatrixContextANGLE(GLeglContext ctx) -{ - return GL_PopMatrixContextANGLE(ctx); -} - -void GL_APIENTRY glPrimitiveBoundingBoxContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW) -{ - return GL_PrimitiveBoundingBoxContextANGLE(ctx, minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); -} - -void GL_APIENTRY glPrimitiveBoundingBoxEXTContextANGLE(GLeglContext ctx, - GLfloat minX, - GLfloat minY, - GLfloat minZ, - GLfloat minW, - GLfloat maxX, - GLfloat maxY, - GLfloat maxZ, - GLfloat maxW) -{ - return GL_PrimitiveBoundingBoxEXTContextANGLE(ctx, minX, minY, minZ, minW, maxX, maxY, maxZ, - maxW); -} - -void GL_APIENTRY glProgramBinaryContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLsizei length) -{ - return GL_ProgramBinaryContextANGLE(ctx, program, binaryFormat, binary, length); -} - -void GL_APIENTRY glProgramBinaryOESContextANGLE(GLeglContext ctx, - GLuint program, - GLenum binaryFormat, - const void *binary, - GLint length) -{ - return GL_ProgramBinaryOESContextANGLE(ctx, program, binaryFormat, binary, length); -} - -void GL_APIENTRY glProgramParameteriContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value) -{ - return GL_ProgramParameteriContextANGLE(ctx, program, pname, value); -} - -void GL_APIENTRY glProgramParameteriEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLint value) -{ - return GL_ProgramParameteriEXTContextANGLE(ctx, program, pname, value); -} - -void GL_APIENTRY glProgramUniform1fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0) -{ - return GL_ProgramUniform1fContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0) -{ - return GL_ProgramUniform1fEXTContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform1fvContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform1fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform1fvEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform1iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0) -{ - return GL_ProgramUniform1iContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0) -{ - return GL_ProgramUniform1iEXTContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform1ivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform1ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform1ivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform1uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0) -{ - return GL_ProgramUniform1uiContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0) -{ - return GL_ProgramUniform1uiEXTContextANGLE(ctx, program, location, v0); -} - -void GL_APIENTRY glProgramUniform1uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform1uivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform1uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform1uivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform2fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1) -{ - return GL_ProgramUniform2fContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1) -{ - return GL_ProgramUniform2fEXTContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform2fvContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform2fvEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY -glProgramUniform2iContextANGLE(GLeglContext ctx, GLuint program, GLint location, GLint v0, GLint v1) -{ - return GL_ProgramUniform2iContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1) -{ - return GL_ProgramUniform2iEXTContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform2ivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform2ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform2ivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform2uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1) -{ - return GL_ProgramUniform2uiContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1) -{ - return GL_ProgramUniform2uiEXTContextANGLE(ctx, program, location, v0, v1); -} - -void GL_APIENTRY glProgramUniform2uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform2uivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform2uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform2uivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2) -{ - return GL_ProgramUniform3fContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2) -{ - return GL_ProgramUniform3fEXTContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform3fvContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform3fvEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2) -{ - return GL_ProgramUniform3iContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2) -{ - return GL_ProgramUniform3iEXTContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform3ivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform3ivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2) -{ - return GL_ProgramUniform3uiContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2) -{ - return GL_ProgramUniform3uiEXTContextANGLE(ctx, program, location, v0, v1, v2); -} - -void GL_APIENTRY glProgramUniform3uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform3uivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform3uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform3uivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4fContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - return GL_ProgramUniform4fContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4fEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - return GL_ProgramUniform4fEXTContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform4fvContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_ProgramUniform4fvEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4iContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3) -{ - return GL_ProgramUniform4iContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4iEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLint v0, - GLint v1, - GLint v2, - GLint v3) -{ - return GL_ProgramUniform4iEXTContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4ivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform4ivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4ivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_ProgramUniform4ivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4uiContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - return GL_ProgramUniform4uiContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4uiEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - return GL_ProgramUniform4uiEXTContextANGLE(ctx, program, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glProgramUniform4uivContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform4uivContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniform4uivEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_ProgramUniform4uivEXTContextANGLE(ctx, program, location, count, value); -} - -void GL_APIENTRY glProgramUniformMatrix2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2fvContextANGLE(ctx, program, location, count, transpose, value); -} - -void GL_APIENTRY glProgramUniformMatrix2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2x3fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix2x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2x3fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2x4fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix2x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix2x4fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3fvContextANGLE(ctx, program, location, count, transpose, value); -} - -void GL_APIENTRY glProgramUniformMatrix3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3x2fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix3x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3x2fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3x4fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix3x4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix3x4fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix4fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4fvContextANGLE(ctx, program, location, count, transpose, value); -} - -void GL_APIENTRY glProgramUniformMatrix4fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4x2fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix4x2fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4x2fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4x3fvContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glProgramUniformMatrix4x3fvEXTContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_ProgramUniformMatrix4x3fvEXTContextANGLE(ctx, program, location, count, transpose, - value); -} - -void GL_APIENTRY glPushDebugGroupContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message) -{ - return GL_PushDebugGroupContextANGLE(ctx, source, id, length, message); -} - -void GL_APIENTRY glPushDebugGroupKHRContextANGLE(GLeglContext ctx, - GLenum source, - GLuint id, - GLsizei length, - const GLchar *message) -{ - return GL_PushDebugGroupKHRContextANGLE(ctx, source, id, length, message); -} - -void GL_APIENTRY glPushGroupMarkerEXTContextANGLE(GLeglContext ctx, - GLsizei length, - const GLchar *marker) -{ - return GL_PushGroupMarkerEXTContextANGLE(ctx, length, marker); -} - -void GL_APIENTRY glPushMatrixContextANGLE(GLeglContext ctx) -{ - return GL_PushMatrixContextANGLE(ctx); -} - -void GL_APIENTRY glQueryCounterEXTContextANGLE(GLeglContext ctx, GLuint id, GLenum target) -{ - return GL_QueryCounterEXTContextANGLE(ctx, id, target); -} - -GLbitfield GL_APIENTRY glQueryMatrixxOESContextANGLE(GLeglContext ctx, - GLfixed *mantissa, - GLint *exponent) -{ - return GL_QueryMatrixxOESContextANGLE(ctx, mantissa, exponent); -} - -void GL_APIENTRY glReadBufferContextANGLE(GLeglContext ctx, GLenum src) -{ - return GL_ReadBufferContextANGLE(ctx, src); -} - -void GL_APIENTRY glReadPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - void *pixels) -{ - return GL_ReadPixelsContextANGLE(ctx, x, y, width, height, format, type, pixels); -} - -void GL_APIENTRY glReadnPixelsContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data) -{ - return GL_ReadnPixelsContextANGLE(ctx, x, y, width, height, format, type, bufSize, data); -} - -void GL_APIENTRY glReadnPixelsEXTContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - void *data) -{ - return GL_ReadnPixelsEXTContextANGLE(ctx, x, y, width, height, format, type, bufSize, data); -} - -void GL_APIENTRY glReleaseShaderCompilerContextANGLE(GLeglContext ctx) -{ - return GL_ReleaseShaderCompilerContextANGLE(ctx); -} - -void GL_APIENTRY glRenderbufferStorageContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_RenderbufferStorageContextANGLE(ctx, target, internalformat, width, height); -} - -void GL_APIENTRY glRenderbufferStorageMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_RenderbufferStorageMultisampleContextANGLE(ctx, target, samples, internalformat, - width, height); -} - -void GL_APIENTRY glRenderbufferStorageMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_RenderbufferStorageMultisampleANGLEContextANGLE(ctx, target, samples, internalformat, - width, height); -} - -void GL_APIENTRY glRenderbufferStorageMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_RenderbufferStorageMultisampleEXTContextANGLE(ctx, target, samples, internalformat, - width, height); -} - -void GL_APIENTRY glRenderbufferStorageOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_RenderbufferStorageOESContextANGLE(ctx, target, internalformat, width, height); -} - -void GL_APIENTRY glResumeTransformFeedbackContextANGLE(GLeglContext ctx) -{ - return GL_ResumeTransformFeedbackContextANGLE(ctx); -} - -void GL_APIENTRY -glRotatefContextANGLE(GLeglContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) -{ - return GL_RotatefContextANGLE(ctx, angle, x, y, z); -} - -void GL_APIENTRY -glRotatexContextANGLE(GLeglContext ctx, GLfixed angle, GLfixed x, GLfixed y, GLfixed z) -{ - return GL_RotatexContextANGLE(ctx, angle, x, y, z); -} - -void GL_APIENTRY glSampleCoverageContextANGLE(GLeglContext ctx, GLfloat value, GLboolean invert) -{ - return GL_SampleCoverageContextANGLE(ctx, value, invert); -} - -void GL_APIENTRY glSampleCoveragexContextANGLE(GLeglContext ctx, GLclampx value, GLboolean invert) -{ - return GL_SampleCoveragexContextANGLE(ctx, value, invert); -} - -void GL_APIENTRY glSampleMaskiContextANGLE(GLeglContext ctx, GLuint maskNumber, GLbitfield mask) -{ - return GL_SampleMaskiContextANGLE(ctx, maskNumber, mask); -} - -void GL_APIENTRY glSamplerParameterIivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - return GL_SamplerParameterIivContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterIivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - return GL_SamplerParameterIivEXTContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterIivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - return GL_SamplerParameterIivOESContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterIuivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - return GL_SamplerParameterIuivContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterIuivEXTContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - return GL_SamplerParameterIuivEXTContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterIuivOESContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLuint *param) -{ - return GL_SamplerParameterIuivOESContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterfContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLfloat param) -{ - return GL_SamplerParameterfContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterfvContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLfloat *param) -{ - return GL_SamplerParameterfvContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameteriContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLint param) -{ - return GL_SamplerParameteriContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glSamplerParameterivContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - const GLint *param) -{ - return GL_SamplerParameterivContextANGLE(ctx, sampler, pname, param); -} - -void GL_APIENTRY glScalefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z) -{ - return GL_ScalefContextANGLE(ctx, x, y, z); -} - -void GL_APIENTRY glScalexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z) -{ - return GL_ScalexContextANGLE(ctx, x, y, z); -} - -void GL_APIENTRY -glScissorContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height) -{ - return GL_ScissorContextANGLE(ctx, x, y, width, height); -} - -void GL_APIENTRY glSemaphoreParameterui64vEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum pname, - const GLuint64 *params) -{ - return GL_SemaphoreParameterui64vEXTContextANGLE(ctx, semaphore, pname, params); -} - -void GL_APIENTRY glSetFenceNVContextANGLE(GLeglContext ctx, GLuint fence, GLenum condition) -{ - return GL_SetFenceNVContextANGLE(ctx, fence, condition); -} - -void GL_APIENTRY glShadeModelContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_ShadeModelContextANGLE(ctx, mode); -} - -void GL_APIENTRY glShaderBinaryContextANGLE(GLeglContext ctx, - GLsizei count, - const GLuint *shaders, - GLenum binaryformat, - const void *binary, - GLsizei length) -{ - return GL_ShaderBinaryContextANGLE(ctx, count, shaders, binaryformat, binary, length); -} - -void GL_APIENTRY glShaderSourceContextANGLE(GLeglContext ctx, - GLuint shader, - GLsizei count, - const GLchar *const *string, - const GLint *length) -{ - return GL_ShaderSourceContextANGLE(ctx, shader, count, string, length); -} - -void GL_APIENTRY glSignalSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *dstLayouts) -{ - return GL_SignalSemaphoreEXTContextANGLE(ctx, semaphore, numBufferBarriers, buffers, - numTextureBarriers, textures, dstLayouts); -} - -void GL_APIENTRY glStencilFuncContextANGLE(GLeglContext ctx, GLenum func, GLint ref, GLuint mask) -{ - return GL_StencilFuncContextANGLE(ctx, func, ref, mask); -} - -void GL_APIENTRY glStencilFuncSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum func, - GLint ref, - GLuint mask) -{ - return GL_StencilFuncSeparateContextANGLE(ctx, face, func, ref, mask); -} - -void GL_APIENTRY glStencilMaskContextANGLE(GLeglContext ctx, GLuint mask) -{ - return GL_StencilMaskContextANGLE(ctx, mask); -} - -void GL_APIENTRY glStencilMaskSeparateContextANGLE(GLeglContext ctx, GLenum face, GLuint mask) -{ - return GL_StencilMaskSeparateContextANGLE(ctx, face, mask); -} - -void GL_APIENTRY glStencilOpContextANGLE(GLeglContext ctx, GLenum fail, GLenum zfail, GLenum zpass) -{ - return GL_StencilOpContextANGLE(ctx, fail, zfail, zpass); -} - -void GL_APIENTRY glStencilOpSeparateContextANGLE(GLeglContext ctx, - GLenum face, - GLenum sfail, - GLenum dpfail, - GLenum dppass) -{ - return GL_StencilOpSeparateContextANGLE(ctx, face, sfail, dpfail, dppass); -} - -GLboolean GL_APIENTRY glTestFenceNVContextANGLE(GLeglContext ctx, GLuint fence) -{ - return GL_TestFenceNVContextANGLE(ctx, fence); -} - -void GL_APIENTRY glTexBufferContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - return GL_TexBufferContextANGLE(ctx, target, internalformat, buffer); -} - -void GL_APIENTRY glTexBufferEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - return GL_TexBufferEXTContextANGLE(ctx, target, internalformat, buffer); -} - -void GL_APIENTRY glTexBufferOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer) -{ - return GL_TexBufferOESContextANGLE(ctx, target, internalformat, buffer); -} - -void GL_APIENTRY glTexBufferRangeContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - return GL_TexBufferRangeContextANGLE(ctx, target, internalformat, buffer, offset, size); -} - -void GL_APIENTRY glTexBufferRangeEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - return GL_TexBufferRangeEXTContextANGLE(ctx, target, internalformat, buffer, offset, size); -} - -void GL_APIENTRY glTexBufferRangeOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLuint buffer, - GLintptr offset, - GLsizeiptr size) -{ - return GL_TexBufferRangeOESContextANGLE(ctx, target, internalformat, buffer, offset, size); -} - -void GL_APIENTRY glTexCoordPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_TexCoordPointerContextANGLE(ctx, size, type, stride, pointer); -} - -void GL_APIENTRY glTexEnvfContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfloat param) -{ - return GL_TexEnvfContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexEnvfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params) -{ - return GL_TexEnvfvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexEnviContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLint param) -{ - return GL_TexEnviContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexEnvivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - return GL_TexEnvivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexEnvxContextANGLE(GLeglContext ctx, GLenum target, GLenum pname, GLfixed param) -{ - return GL_TexEnvxContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexEnvxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params) -{ - return GL_TexEnvxvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexGenfOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfloat param) -{ - return GL_TexGenfOESContextANGLE(ctx, coord, pname, param); -} - -void GL_APIENTRY glTexGenfvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfloat *params) -{ - return GL_TexGenfvOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glTexGeniOESContextANGLE(GLeglContext ctx, GLenum coord, GLenum pname, GLint param) -{ - return GL_TexGeniOESContextANGLE(ctx, coord, pname, param); -} - -void GL_APIENTRY glTexGenivOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLint *params) -{ - return GL_TexGenivOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glTexGenxOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - GLfixed param) -{ - return GL_TexGenxOESContextANGLE(ctx, coord, pname, param); -} - -void GL_APIENTRY glTexGenxvOESContextANGLE(GLeglContext ctx, - GLenum coord, - GLenum pname, - const GLfixed *params) -{ - return GL_TexGenxvOESContextANGLE(ctx, coord, pname, params); -} - -void GL_APIENTRY glTexImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexImage2DContextANGLE(ctx, target, level, internalformat, width, height, border, - format, type, pixels); -} - -void GL_APIENTRY glTexImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexImage3DContextANGLE(ctx, target, level, internalformat, width, height, depth, - border, format, type, pixels); -} - -void GL_APIENTRY glTexImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexImage3DOESContextANGLE(ctx, target, level, internalformat, width, height, depth, - border, format, type, pixels); -} - -void GL_APIENTRY glTexParameterIivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - return GL_TexParameterIivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterIivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - return GL_TexParameterIivEXTContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterIivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - return GL_TexParameterIivOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterIuivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - return GL_TexParameterIuivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterIuivEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - return GL_TexParameterIuivEXTContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterIuivOESContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLuint *params) -{ - return GL_TexParameterIuivOESContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterfContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfloat param) -{ - return GL_TexParameterfContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexParameterfvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfloat *params) -{ - return GL_TexParameterfvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameteriContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLint param) -{ - return GL_TexParameteriContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexParameterivContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLint *params) -{ - return GL_TexParameterivContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexParameterxContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLfixed param) -{ - return GL_TexParameterxContextANGLE(ctx, target, pname, param); -} - -void GL_APIENTRY glTexParameterxvContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - const GLfixed *params) -{ - return GL_TexParameterxvContextANGLE(ctx, target, pname, params); -} - -void GL_APIENTRY glTexStorage1DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width) -{ - return GL_TexStorage1DEXTContextANGLE(ctx, target, levels, internalformat, width); -} - -void GL_APIENTRY glTexStorage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_TexStorage2DContextANGLE(ctx, target, levels, internalformat, width, height); -} - -void GL_APIENTRY glTexStorage2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height) -{ - return GL_TexStorage2DEXTContextANGLE(ctx, target, levels, internalformat, width, height); -} - -void GL_APIENTRY glTexStorage2DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations) -{ - return GL_TexStorage2DMultisampleContextANGLE(ctx, target, samples, internalformat, width, - height, fixedsamplelocations); -} - -void GL_APIENTRY glTexStorage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth) -{ - return GL_TexStorage3DContextANGLE(ctx, target, levels, internalformat, width, height, depth); -} - -void GL_APIENTRY glTexStorage3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth) -{ - return GL_TexStorage3DEXTContextANGLE(ctx, target, levels, internalformat, width, height, - depth); -} - -void GL_APIENTRY glTexStorage3DMultisampleContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations) -{ - return GL_TexStorage3DMultisampleContextANGLE(ctx, target, samples, internalformat, width, - height, depth, fixedsamplelocations); -} - -void GL_APIENTRY glTexStorage3DMultisampleOESContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedsamplelocations) -{ - return GL_TexStorage3DMultisampleOESContextANGLE(ctx, target, samples, internalformat, width, - height, depth, fixedsamplelocations); -} - -void GL_APIENTRY glTexStorageMem2DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset) -{ - return GL_TexStorageMem2DEXTContextANGLE(ctx, target, levels, internalFormat, width, height, - memory, offset); -} - -void GL_APIENTRY glTexStorageMem2DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset) -{ - return GL_TexStorageMem2DMultisampleEXTContextANGLE( - ctx, target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset); -} - -void GL_APIENTRY glTexStorageMem3DEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset) -{ - return GL_TexStorageMem3DEXTContextANGLE(ctx, target, levels, internalFormat, width, height, - depth, memory, offset); -} - -void GL_APIENTRY glTexStorageMem3DMultisampleEXTContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset) -{ - return GL_TexStorageMem3DMultisampleEXTContextANGLE(ctx, target, samples, internalFormat, width, - height, depth, fixedSampleLocations, memory, - offset); -} - -void GL_APIENTRY glTexSubImage2DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexSubImage2DContextANGLE(ctx, target, level, xoffset, yoffset, width, height, format, - type, pixels); -} - -void GL_APIENTRY glTexSubImage3DContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexSubImage3DContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, width, - height, depth, format, type, pixels); -} - -void GL_APIENTRY glTexSubImage3DOESContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - const void *pixels) -{ - return GL_TexSubImage3DOESContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, width, - height, depth, format, type, pixels); -} - -void GL_APIENTRY glTransformFeedbackVaryingsContextANGLE(GLeglContext ctx, - GLuint program, - GLsizei count, - const GLchar *const *varyings, - GLenum bufferMode) -{ - return GL_TransformFeedbackVaryingsContextANGLE(ctx, program, count, varyings, bufferMode); -} - -void GL_APIENTRY glTranslatefContextANGLE(GLeglContext ctx, GLfloat x, GLfloat y, GLfloat z) -{ - return GL_TranslatefContextANGLE(ctx, x, y, z); -} - -void GL_APIENTRY glTranslatexContextANGLE(GLeglContext ctx, GLfixed x, GLfixed y, GLfixed z) -{ - return GL_TranslatexContextANGLE(ctx, x, y, z); -} - -void GL_APIENTRY glUniform1fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0) -{ - return GL_Uniform1fContextANGLE(ctx, location, v0); -} - -void GL_APIENTRY glUniform1fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_Uniform1fvContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform1iContextANGLE(GLeglContext ctx, GLint location, GLint v0) -{ - return GL_Uniform1iContextANGLE(ctx, location, v0); -} - -void GL_APIENTRY glUniform1ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_Uniform1ivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform1uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0) -{ - return GL_Uniform1uiContextANGLE(ctx, location, v0); -} - -void GL_APIENTRY glUniform1uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_Uniform1uivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform2fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1) -{ - return GL_Uniform2fContextANGLE(ctx, location, v0, v1); -} - -void GL_APIENTRY glUniform2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_Uniform2fvContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform2iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1) -{ - return GL_Uniform2iContextANGLE(ctx, location, v0, v1); -} - -void GL_APIENTRY glUniform2ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_Uniform2ivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform2uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1) -{ - return GL_Uniform2uiContextANGLE(ctx, location, v0, v1); -} - -void GL_APIENTRY glUniform2uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_Uniform2uivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY -glUniform3fContextANGLE(GLeglContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) -{ - return GL_Uniform3fContextANGLE(ctx, location, v0, v1, v2); -} - -void GL_APIENTRY glUniform3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_Uniform3fvContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY -glUniform3iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2) -{ - return GL_Uniform3iContextANGLE(ctx, location, v0, v1, v2); -} - -void GL_APIENTRY glUniform3ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_Uniform3ivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY -glUniform3uiContextANGLE(GLeglContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2) -{ - return GL_Uniform3uiContextANGLE(ctx, location, v0, v1, v2); -} - -void GL_APIENTRY glUniform3uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_Uniform3uivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform4fContextANGLE(GLeglContext ctx, - GLint location, - GLfloat v0, - GLfloat v1, - GLfloat v2, - GLfloat v3) -{ - return GL_Uniform4fContextANGLE(ctx, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glUniform4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLfloat *value) -{ - return GL_Uniform4fvContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY -glUniform4iContextANGLE(GLeglContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) -{ - return GL_Uniform4iContextANGLE(ctx, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glUniform4ivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLint *value) -{ - return GL_Uniform4ivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniform4uiContextANGLE(GLeglContext ctx, - GLint location, - GLuint v0, - GLuint v1, - GLuint v2, - GLuint v3) -{ - return GL_Uniform4uiContextANGLE(ctx, location, v0, v1, v2, v3); -} - -void GL_APIENTRY glUniform4uivContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - const GLuint *value) -{ - return GL_Uniform4uivContextANGLE(ctx, location, count, value); -} - -void GL_APIENTRY glUniformBlockBindingContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLuint uniformBlockBinding) -{ - return GL_UniformBlockBindingContextANGLE(ctx, program, uniformBlockIndex, uniformBlockBinding); -} - -void GL_APIENTRY glUniformMatrix2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix2fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix2x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix2x3fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix2x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix2x4fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix3fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix3x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix3x2fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix3x4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix3x4fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix4fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix4fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix4x2fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix4x2fvContextANGLE(ctx, location, count, transpose, value); -} - -void GL_APIENTRY glUniformMatrix4x3fvContextANGLE(GLeglContext ctx, - GLint location, - GLsizei count, - GLboolean transpose, - const GLfloat *value) -{ - return GL_UniformMatrix4x3fvContextANGLE(ctx, location, count, transpose, value); -} - -GLboolean GL_APIENTRY glUnmapBufferContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_UnmapBufferContextANGLE(ctx, target); -} - -GLboolean GL_APIENTRY glUnmapBufferOESContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_UnmapBufferOESContextANGLE(ctx, target); -} - -void GL_APIENTRY glUseProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - return GL_UseProgramContextANGLE(ctx, program); -} - -void GL_APIENTRY glUseProgramStagesContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program) -{ - return GL_UseProgramStagesContextANGLE(ctx, pipeline, stages, program); -} - -void GL_APIENTRY glUseProgramStagesEXTContextANGLE(GLeglContext ctx, - GLuint pipeline, - GLbitfield stages, - GLuint program) -{ - return GL_UseProgramStagesEXTContextANGLE(ctx, pipeline, stages, program); -} - -void GL_APIENTRY glValidateProgramContextANGLE(GLeglContext ctx, GLuint program) -{ - return GL_ValidateProgramContextANGLE(ctx, program); -} - -void GL_APIENTRY glValidateProgramPipelineContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_ValidateProgramPipelineContextANGLE(ctx, pipeline); -} - -void GL_APIENTRY glValidateProgramPipelineEXTContextANGLE(GLeglContext ctx, GLuint pipeline) -{ - return GL_ValidateProgramPipelineEXTContextANGLE(ctx, pipeline); -} - -void GL_APIENTRY glVertexAttrib1fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x) -{ - return GL_VertexAttrib1fContextANGLE(ctx, index, x); -} - -void GL_APIENTRY glVertexAttrib1fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - return GL_VertexAttrib1fvContextANGLE(ctx, index, v); -} - -void GL_APIENTRY glVertexAttrib2fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y) -{ - return GL_VertexAttrib2fContextANGLE(ctx, index, x, y); -} - -void GL_APIENTRY glVertexAttrib2fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - return GL_VertexAttrib2fvContextANGLE(ctx, index, v); -} - -void GL_APIENTRY -glVertexAttrib3fContextANGLE(GLeglContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - return GL_VertexAttrib3fContextANGLE(ctx, index, x, y, z); -} - -void GL_APIENTRY glVertexAttrib3fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - return GL_VertexAttrib3fvContextANGLE(ctx, index, v); -} - -void GL_APIENTRY glVertexAttrib4fContextANGLE(GLeglContext ctx, - GLuint index, - GLfloat x, - GLfloat y, - GLfloat z, - GLfloat w) -{ - return GL_VertexAttrib4fContextANGLE(ctx, index, x, y, z, w); -} - -void GL_APIENTRY glVertexAttrib4fvContextANGLE(GLeglContext ctx, GLuint index, const GLfloat *v) -{ - return GL_VertexAttrib4fvContextANGLE(ctx, index, v); -} - -void GL_APIENTRY glVertexAttribBindingContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLuint bindingindex) -{ - return GL_VertexAttribBindingContextANGLE(ctx, attribindex, bindingindex); -} - -void GL_APIENTRY glVertexAttribDivisorContextANGLE(GLeglContext ctx, GLuint index, GLuint divisor) -{ - return GL_VertexAttribDivisorContextANGLE(ctx, index, divisor); -} - -void GL_APIENTRY glVertexAttribDivisorANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor) -{ - return GL_VertexAttribDivisorANGLEContextANGLE(ctx, index, divisor); -} - -void GL_APIENTRY glVertexAttribDivisorEXTContextANGLE(GLeglContext ctx, - GLuint index, - GLuint divisor) -{ - return GL_VertexAttribDivisorEXTContextANGLE(ctx, index, divisor); -} - -void GL_APIENTRY glVertexAttribFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLboolean normalized, - GLuint relativeoffset) -{ - return GL_VertexAttribFormatContextANGLE(ctx, attribindex, size, type, normalized, - relativeoffset); -} - -void GL_APIENTRY -glVertexAttribI4iContextANGLE(GLeglContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w) -{ - return GL_VertexAttribI4iContextANGLE(ctx, index, x, y, z, w); -} - -void GL_APIENTRY glVertexAttribI4ivContextANGLE(GLeglContext ctx, GLuint index, const GLint *v) -{ - return GL_VertexAttribI4ivContextANGLE(ctx, index, v); -} - -void GL_APIENTRY glVertexAttribI4uiContextANGLE(GLeglContext ctx, - GLuint index, - GLuint x, - GLuint y, - GLuint z, - GLuint w) -{ - return GL_VertexAttribI4uiContextANGLE(ctx, index, x, y, z, w); -} - -void GL_APIENTRY glVertexAttribI4uivContextANGLE(GLeglContext ctx, GLuint index, const GLuint *v) -{ - return GL_VertexAttribI4uivContextANGLE(ctx, index, v); -} - -void GL_APIENTRY glVertexAttribIFormatContextANGLE(GLeglContext ctx, - GLuint attribindex, - GLint size, - GLenum type, - GLuint relativeoffset) -{ - return GL_VertexAttribIFormatContextANGLE(ctx, attribindex, size, type, relativeoffset); -} - -void GL_APIENTRY glVertexAttribIPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_VertexAttribIPointerContextANGLE(ctx, index, size, type, stride, pointer); -} - -void GL_APIENTRY glVertexAttribPointerContextANGLE(GLeglContext ctx, - GLuint index, - GLint size, - GLenum type, - GLboolean normalized, - GLsizei stride, - const void *pointer) -{ - return GL_VertexAttribPointerContextANGLE(ctx, index, size, type, normalized, stride, pointer); -} - -void GL_APIENTRY glVertexBindingDivisorContextANGLE(GLeglContext ctx, - GLuint bindingindex, - GLuint divisor) -{ - return GL_VertexBindingDivisorContextANGLE(ctx, bindingindex, divisor); -} - -void GL_APIENTRY glVertexPointerContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_VertexPointerContextANGLE(ctx, size, type, stride, pointer); -} - -void GL_APIENTRY -glViewportContextANGLE(GLeglContext ctx, GLint x, GLint y, GLsizei width, GLsizei height) -{ - return GL_ViewportContextANGLE(ctx, x, y, width, height); -} - -void GL_APIENTRY glWaitSemaphoreEXTContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLuint numBufferBarriers, - const GLuint *buffers, - GLuint numTextureBarriers, - const GLuint *textures, - const GLenum *srcLayouts) -{ - return GL_WaitSemaphoreEXTContextANGLE(ctx, semaphore, numBufferBarriers, buffers, - numTextureBarriers, textures, srcLayouts); -} - -void GL_APIENTRY glWaitSyncContextANGLE(GLeglContext ctx, - GLsync sync, - GLbitfield flags, - GLuint64 timeout) -{ - return GL_WaitSyncContextANGLE(ctx, sync, flags, timeout); -} - -void GL_APIENTRY glWeightPointerOESContextANGLE(GLeglContext ctx, - GLint size, - GLenum type, - GLsizei stride, - const void *pointer) -{ - return GL_WeightPointerOESContextANGLE(ctx, size, type, stride, pointer); -} - -void GL_APIENTRY glBindUniformLocationCHROMIUMContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - const GLchar *name) -{ - return GL_BindUniformLocationCHROMIUMContextANGLE(ctx, program, location, name); -} - -void GL_APIENTRY glCoverageModulationCHROMIUMContextANGLE(GLeglContext ctx, GLenum components) -{ - return GL_CoverageModulationCHROMIUMContextANGLE(ctx, components); -} - -void GL_APIENTRY glCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - return GL_CopyTextureCHROMIUMContextANGLE(ctx, sourceId, sourceLevel, destTarget, destId, - destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha); -} - -void GL_APIENTRY glCopySubTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLint width, - GLint height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - return GL_CopySubTextureCHROMIUMContextANGLE( - ctx, sourceId, sourceLevel, destTarget, destId, destLevel, xoffset, yoffset, x, y, width, - height, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); -} - -void GL_APIENTRY glCompressedCopyTextureCHROMIUMContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLuint destId) -{ - return GL_CompressedCopyTextureCHROMIUMContextANGLE(ctx, sourceId, destId); -} - -void GL_APIENTRY glRequestExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar *name) -{ - return GL_RequestExtensionANGLEContextANGLE(ctx, name); -} - -void GL_APIENTRY glDisableExtensionANGLEContextANGLE(GLeglContext ctx, const GLchar *name) -{ - return GL_DisableExtensionANGLEContextANGLE(ctx, name); -} - -void GL_APIENTRY glGetBooleanvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLboolean *params) -{ - return GL_GetBooleanvRobustANGLEContextANGLE(ctx, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetBufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetBufferParameterivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetFloatvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetFloatvRobustANGLEContextANGLE(ctx, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetFramebufferAttachmentParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum attachment, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetFramebufferAttachmentParameterivRobustANGLEContextANGLE( - ctx, target, attachment, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetIntegervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *data) -{ - return GL_GetIntegervRobustANGLEContextANGLE(ctx, pname, bufSize, length, data); -} - -void GL_APIENTRY glGetProgramivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetProgramivRobustANGLEContextANGLE(ctx, program, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetRenderbufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetRenderbufferParameterivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetShaderivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint shader, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetShaderivRobustANGLEContextANGLE(ctx, shader, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetTexParameterfvRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetTexParameterivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetUniformfvRobustANGLEContextANGLE(ctx, program, location, bufSize, length, params); -} - -void GL_APIENTRY glGetUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetUniformivRobustANGLEContextANGLE(ctx, program, location, bufSize, length, params); -} - -void GL_APIENTRY glGetVertexAttribfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetVertexAttribfvRobustANGLEContextANGLE(ctx, index, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetVertexAttribivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetVertexAttribivRobustANGLEContextANGLE(ctx, index, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetVertexAttribPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **pointer) -{ - return GL_GetVertexAttribPointervRobustANGLEContextANGLE(ctx, index, pname, bufSize, length, - pointer); -} - -void GL_APIENTRY glReadPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *pixels) -{ - return GL_ReadPixelsRobustANGLEContextANGLE(ctx, x, y, width, height, format, type, bufSize, - length, columns, rows, pixels); -} - -void GL_APIENTRY glTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - return GL_TexImage2DRobustANGLEContextANGLE(ctx, target, level, internalformat, width, height, - border, format, type, bufSize, pixels); -} - -void GL_APIENTRY glTexParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLfloat *params) -{ - return GL_TexParameterfvRobustANGLEContextANGLE(ctx, target, pname, bufSize, params); -} - -void GL_APIENTRY glTexParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params) -{ - return GL_TexParameterivRobustANGLEContextANGLE(ctx, target, pname, bufSize, params); -} - -void GL_APIENTRY glTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - return GL_TexSubImage2DRobustANGLEContextANGLE(ctx, target, level, xoffset, yoffset, width, - height, format, type, bufSize, pixels); -} - -void GL_APIENTRY glTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - return GL_TexImage3DRobustANGLEContextANGLE(ctx, target, level, internalformat, width, height, - depth, border, format, type, bufSize, pixels); -} - -void GL_APIENTRY glTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLenum type, - GLsizei bufSize, - const void *pixels) -{ - return GL_TexSubImage3DRobustANGLEContextANGLE(ctx, target, level, xoffset, yoffset, zoffset, - width, height, depth, format, type, bufSize, - pixels); -} - -void GL_APIENTRY glCompressedTexImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - return GL_CompressedTexImage2DRobustANGLEContextANGLE( - ctx, target, level, internalformat, width, height, border, imageSize, dataSize, data); -} - -void GL_APIENTRY glCompressedTexSubImage2DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLsizei xoffset, - GLsizei yoffset, - GLsizei width, - GLsizei height, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - return GL_CompressedTexSubImage2DRobustANGLEContextANGLE( - ctx, target, level, xoffset, yoffset, width, height, format, imageSize, dataSize, data); -} - -void GL_APIENTRY glCompressedTexImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLint border, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - return GL_CompressedTexImage3DRobustANGLEContextANGLE(ctx, target, level, internalformat, width, - height, depth, border, imageSize, - dataSize, data); -} - -void GL_APIENTRY glCompressedTexSubImage3DRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLsizei width, - GLsizei height, - GLsizei depth, - GLenum format, - GLsizei imageSize, - GLsizei dataSize, - const GLvoid *data) -{ - return GL_CompressedTexSubImage3DRobustANGLEContextANGLE(ctx, target, level, xoffset, yoffset, - zoffset, width, height, depth, format, - imageSize, dataSize, data); -} - -void GL_APIENTRY glGetQueryivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetQueryivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetQueryObjectuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetQueryObjectuivRobustANGLEContextANGLE(ctx, id, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetBufferPointervRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params) -{ - return GL_GetBufferPointervRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetIntegeri_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint *data) -{ - return GL_GetIntegeri_vRobustANGLEContextANGLE(ctx, target, index, bufSize, length, data); -} - -void GL_APIENTRY glGetInternalformativRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum internalformat, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetInternalformativRobustANGLEContextANGLE(ctx, target, internalformat, pname, - bufSize, length, params); -} - -void GL_APIENTRY glGetVertexAttribIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetVertexAttribIivRobustANGLEContextANGLE(ctx, index, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetVertexAttribIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint index, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetVertexAttribIuivRobustANGLEContextANGLE(ctx, index, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetUniformuivRobustANGLEContextANGLE(ctx, program, location, bufSize, length, params); -} - -void GL_APIENTRY glGetActiveUniformBlockivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLuint uniformBlockIndex, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetActiveUniformBlockivRobustANGLEContextANGLE(ctx, program, uniformBlockIndex, pname, - bufSize, length, params); -} - -void GL_APIENTRY glGetInteger64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *data) -{ - return GL_GetInteger64vRobustANGLEContextANGLE(ctx, pname, bufSize, length, data); -} - -void GL_APIENTRY glGetInteger64i_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLint64 *data) -{ - return GL_GetInteger64i_vRobustANGLEContextANGLE(ctx, target, index, bufSize, length, data); -} - -void GL_APIENTRY glGetBufferParameteri64vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params) -{ - return GL_GetBufferParameteri64vRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLuint pname, - GLsizei bufSize, - const GLint *param) -{ - return GL_SamplerParameterivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, param); -} - -void GL_APIENTRY glSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLfloat *param) -{ - return GL_SamplerParameterfvRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, param); -} - -void GL_APIENTRY glGetSamplerParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetSamplerParameterivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetSamplerParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetSamplerParameterfvRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetFramebufferParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetFramebufferParameterivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetProgramInterfaceivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLenum programInterface, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetProgramInterfaceivRobustANGLEContextANGLE(ctx, program, programInterface, pname, - bufSize, length, params); -} - -void GL_APIENTRY glGetBooleani_vRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLboolean *data) -{ - return GL_GetBooleani_vRobustANGLEContextANGLE(ctx, target, index, bufSize, length, data); -} - -void GL_APIENTRY glGetMultisamplefvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLsizei bufSize, - GLsizei *length, - GLfloat *val) -{ - return GL_GetMultisamplefvRobustANGLEContextANGLE(ctx, pname, index, bufSize, length, val); -} - -void GL_APIENTRY glGetTexLevelParameterivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetTexLevelParameterivRobustANGLEContextANGLE(ctx, target, level, pname, bufSize, - length, params); -} - -void GL_APIENTRY glGetTexLevelParameterfvRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetTexLevelParameterfvRobustANGLEContextANGLE(ctx, target, level, pname, bufSize, - length, params); -} - -void GL_APIENTRY glGetPointervRobustANGLERobustANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - void **params) -{ - return GL_GetPointervRobustANGLERobustANGLEContextANGLE(ctx, pname, bufSize, length, params); -} - -void GL_APIENTRY glReadnPixelsRobustANGLEContextANGLE(GLeglContext ctx, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLenum format, - GLenum type, - GLsizei bufSize, - GLsizei *length, - GLsizei *columns, - GLsizei *rows, - void *data) -{ - return GL_ReadnPixelsRobustANGLEContextANGLE(ctx, x, y, width, height, format, type, bufSize, - length, columns, rows, data); -} - -void GL_APIENTRY glGetnUniformfvRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLfloat *params) -{ - return GL_GetnUniformfvRobustANGLEContextANGLE(ctx, program, location, bufSize, length, params); -} - -void GL_APIENTRY glGetnUniformivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetnUniformivRobustANGLEContextANGLE(ctx, program, location, bufSize, length, params); -} - -void GL_APIENTRY glGetnUniformuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint program, - GLint location, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetnUniformuivRobustANGLEContextANGLE(ctx, program, location, bufSize, length, - params); -} - -void GL_APIENTRY glTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLint *params) -{ - return GL_TexParameterIivRobustANGLEContextANGLE(ctx, target, pname, bufSize, params); -} - -void GL_APIENTRY glTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - const GLuint *params) -{ - return GL_TexParameterIuivRobustANGLEContextANGLE(ctx, target, pname, bufSize, params); -} - -void GL_APIENTRY glGetTexParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetTexParameterIivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetTexParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetTexParameterIuivRobustANGLEContextANGLE(ctx, target, pname, bufSize, length, - params); -} - -void GL_APIENTRY glSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLint *param) -{ - return GL_SamplerParameterIivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, param); -} - -void GL_APIENTRY glSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - const GLuint *param) -{ - return GL_SamplerParameterIuivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, param); -} - -void GL_APIENTRY glGetSamplerParameterIivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetSamplerParameterIivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetSamplerParameterIuivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint sampler, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint *params) -{ - return GL_GetSamplerParameterIuivRobustANGLEContextANGLE(ctx, sampler, pname, bufSize, length, - params); -} - -void GL_APIENTRY glGetQueryObjectivRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint *params) -{ - return GL_GetQueryObjectivRobustANGLEContextANGLE(ctx, id, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetQueryObjecti64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLint64 *params) -{ - return GL_GetQueryObjecti64vRobustANGLEContextANGLE(ctx, id, pname, bufSize, length, params); -} - -void GL_APIENTRY glGetQueryObjectui64vRobustANGLEContextANGLE(GLeglContext ctx, - GLuint id, - GLenum pname, - GLsizei bufSize, - GLsizei *length, - GLuint64 *params) -{ - return GL_GetQueryObjectui64vRobustANGLEContextANGLE(ctx, id, pname, bufSize, length, params); -} - -void GL_APIENTRY glCopyTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - return GL_CopyTexture3DANGLEContextANGLE(ctx, sourceId, sourceLevel, destTarget, destId, - destLevel, internalFormat, destType, unpackFlipY, - unpackPremultiplyAlpha, unpackUnmultiplyAlpha); -} - -void GL_APIENTRY glCopySubTexture3DANGLEContextANGLE(GLeglContext ctx, - GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLint z, - GLint width, - GLint height, - GLint depth, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha) -{ - return GL_CopySubTexture3DANGLEContextANGLE( - ctx, sourceId, sourceLevel, destTarget, destId, destLevel, xoffset, yoffset, zoffset, x, y, - z, width, height, depth, unpackFlipY, unpackPremultiplyAlpha, unpackUnmultiplyAlpha); -} - -void GL_APIENTRY glTexStorage2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalformat, - GLsizei width, - GLsizei height, - GLboolean fixedsamplelocations) -{ - return GL_TexStorage2DMultisampleANGLEContextANGLE(ctx, target, samples, internalformat, width, - height, fixedsamplelocations); -} - -void GL_APIENTRY glGetTexLevelParameterivANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLint *params) -{ - return GL_GetTexLevelParameterivANGLEContextANGLE(ctx, target, level, pname, params); -} - -void GL_APIENTRY glGetTexLevelParameterfvANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum pname, - GLfloat *params) -{ - return GL_GetTexLevelParameterfvANGLEContextANGLE(ctx, target, level, pname, params); -} - -void GL_APIENTRY glMultiDrawArraysANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - GLsizei drawcount) -{ - return GL_MultiDrawArraysANGLEContextANGLE(ctx, mode, firsts, counts, drawcount); -} - -void GL_APIENTRY glMultiDrawArraysInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - GLsizei drawcount) -{ - return GL_MultiDrawArraysInstancedANGLEContextANGLE(ctx, mode, firsts, counts, instanceCounts, - drawcount); -} - -void GL_APIENTRY glMultiDrawElementsANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - GLsizei drawcount) -{ - return GL_MultiDrawElementsANGLEContextANGLE(ctx, mode, counts, type, indices, drawcount); -} - -void GL_APIENTRY glMultiDrawElementsInstancedANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - GLsizei drawcount) -{ - return GL_MultiDrawElementsInstancedANGLEContextANGLE(ctx, mode, counts, type, indices, - instanceCounts, drawcount); -} - -void GL_APIENTRY glDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLint first, - GLsizei count, - GLsizei instanceCount, - GLuint baseInstance) -{ - return GL_DrawArraysInstancedBaseInstanceANGLEContextANGLE(ctx, mode, first, count, - instanceCount, baseInstance); -} - -void GL_APIENTRY -glDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - GLsizei count, - GLenum type, - const GLvoid *indices, - GLsizei instanceCounts, - GLint baseVertex, - GLuint baseInstance) -{ - return GL_DrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE( - ctx, mode, count, type, indices, instanceCounts, baseVertex, baseInstance); -} - -void GL_APIENTRY -glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLint *firsts, - const GLsizei *counts, - const GLsizei *instanceCounts, - const GLuint *baseInstances, - GLsizei drawcount) -{ - return GL_MultiDrawArraysInstancedBaseInstanceANGLEContextANGLE( - ctx, mode, firsts, counts, instanceCounts, baseInstances, drawcount); -} - -void GL_APIENTRY -glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE(GLeglContext ctx, - GLenum mode, - const GLsizei *counts, - GLenum type, - const GLvoid *const *indices, - const GLsizei *instanceCounts, - const GLint *baseVertices, - const GLuint *baseInstances, - GLsizei drawcount) -{ - return GL_MultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE( - ctx, mode, counts, type, indices, instanceCounts, baseVertices, baseInstances, drawcount); -} - -void GL_APIENTRY glGetMultisamplefvANGLEContextANGLE(GLeglContext ctx, - GLenum pname, - GLuint index, - GLfloat *val) -{ - return GL_GetMultisamplefvANGLEContextANGLE(ctx, pname, index, val); -} - -void GL_APIENTRY glSampleMaskiANGLEContextANGLE(GLeglContext ctx, - GLuint maskNumber, - GLbitfield mask) -{ - return GL_SampleMaskiANGLEContextANGLE(ctx, maskNumber, mask); -} - -void GL_APIENTRY glProvokingVertexANGLEContextANGLE(GLeglContext ctx, GLenum mode) -{ - return GL_ProvokingVertexANGLEContextANGLE(ctx, mode); -} - -void GL_APIENTRY glLoseContextCHROMIUMContextANGLE(GLeglContext ctx, GLenum current, GLenum other) -{ - return GL_LoseContextCHROMIUMContextANGLE(ctx, current, other); -} - -void GL_APIENTRY glTexImage2DExternalANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLint internalformat, - GLsizei width, - GLsizei height, - GLint border, - GLenum format, - GLenum type) -{ - return GL_TexImage2DExternalANGLEContextANGLE(ctx, target, level, internalformat, width, height, - border, format, type); -} - -void GL_APIENTRY glInvalidateTextureANGLEContextANGLE(GLeglContext ctx, GLenum target) -{ - return GL_InvalidateTextureANGLEContextANGLE(ctx, target); -} - -void GL_APIENTRY glGetTexImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLint level, - GLenum format, - GLenum type, - void *pixels) -{ - return GL_GetTexImageANGLEContextANGLE(ctx, target, level, format, type, pixels); -} - -void GL_APIENTRY glGetRenderbufferImageANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLenum format, - GLenum type, - void *pixels) -{ - return GL_GetRenderbufferImageANGLEContextANGLE(ctx, target, format, type, pixels); -} - -void GL_APIENTRY glTexStorageMemFlags2DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - return GL_TexStorageMemFlags2DANGLEContextANGLE(ctx, target, levels, internalFormat, width, - height, memory, offset, createFlags, - usageFlags); -} - -void GL_APIENTRY glTexStorageMemFlags2DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - return GL_TexStorageMemFlags2DMultisampleANGLEContextANGLE( - ctx, target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset, - createFlags, usageFlags); -} - -void GL_APIENTRY glTexStorageMemFlags3DANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei levels, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - return GL_TexStorageMemFlags3DANGLEContextANGLE(ctx, target, levels, internalFormat, width, - height, depth, memory, offset, createFlags, - usageFlags); -} - -void GL_APIENTRY glTexStorageMemFlags3DMultisampleANGLEContextANGLE(GLeglContext ctx, - GLenum target, - GLsizei samples, - GLenum internalFormat, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean fixedSampleLocations, - GLuint memory, - GLuint64 offset, - GLbitfield createFlags, - GLbitfield usageFlags) -{ - return GL_TexStorageMemFlags3DMultisampleANGLEContextANGLE( - ctx, target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, - offset, createFlags, usageFlags); -} - -void GL_APIENTRY glImportMemoryZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint memory, - GLuint64 size, - GLenum handleType, - GLuint handle) -{ - return GL_ImportMemoryZirconHandleANGLEContextANGLE(ctx, memory, size, handleType, handle); -} - -void GL_APIENTRY glImportSemaphoreZirconHandleANGLEContextANGLE(GLeglContext ctx, - GLuint semaphore, - GLenum handleType, - GLuint handle) -{ - return GL_ImportSemaphoreZirconHandleANGLEContextANGLE(ctx, semaphore, handleType, handle); -} - } // extern "C" diff --git a/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.def b/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.def --- a/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.def +++ b/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.def @@ -468,17 +468,20 @@ ; GL_ANGLE_copy_texture_3d glCopySubTexture3DANGLE glCopyTexture3DANGLE + ; GL_ANGLE_depth_texture + ; GL_ANGLE_framebuffer_blit glBlitFramebufferANGLE ; GL_ANGLE_framebuffer_multisample glRenderbufferStorageMultisampleANGLE ; GL_ANGLE_get_image + glGetCompressedTexImageANGLE glGetRenderbufferImageANGLE glGetTexImageANGLE ; GL_ANGLE_get_tex_level_parameter glGetTexLevelParameterfvANGLE @@ -502,10 +505,12 @@ glMultiDrawArraysANGLE glMultiDrawArraysInstancedANGLE glMultiDrawElementsANGLE glMultiDrawElementsInstancedANGLE + ; GL_ANGLE_pack_reverse_row_order + ; GL_ANGLE_program_binary ; GL_ANGLE_provoking_vertex glProvokingVertexANGLE @@ -580,22 +585,32 @@ glTexSubImage3DRobustANGLE ; GL_ANGLE_semaphore_fuchsia glImportSemaphoreZirconHandleANGLE + ; GL_ANGLE_texture_compression_dxt3 + + ; GL_ANGLE_texture_compression_dxt5 + ; GL_ANGLE_texture_external_update glInvalidateTextureANGLE glTexImage2DExternalANGLE ; GL_ANGLE_texture_multisample glGetMultisamplefvANGLE glSampleMaskiANGLE glTexStorage2DMultisampleANGLE + ; GL_ANGLE_texture_usage + ; GL_ANGLE_translated_shader_source glGetTranslatedShaderSourceANGLE + ; GL_APPLE_clip_distance + + ; GL_ARB_sync + ; GL_CHROMIUM_bind_uniform_location glBindUniformLocationCHROMIUM ; GL_CHROMIUM_copy_compressed_texture glCompressedCopyTextureCHROMIUM @@ -610,24 +625,36 @@ ; GL_CHROMIUM_lose_context glLoseContextCHROMIUM ; GL_EXT_EGL_image_array + ; GL_EXT_EGL_image_storage + glEGLImageTargetTexStorageEXT + glEGLImageTargetTextureStorageEXT + ; GL_EXT_YUV_target ; GL_EXT_blend_func_extended glBindFragDataLocationEXT glBindFragDataLocationIndexedEXT glGetFragDataIndexEXT glGetProgramResourceLocationIndexEXT + ; GL_EXT_blend_minmax + ; GL_EXT_buffer_storage glBufferStorageEXT ; GL_EXT_clip_control glClipControlEXT + ; GL_EXT_clip_cull_distance + + ; GL_EXT_color_buffer_float + + ; GL_EXT_color_buffer_half_float + ; GL_EXT_copy_image glCopyImageSubDataEXT ; GL_EXT_debug_label glGetObjectLabelEXT @@ -676,13 +703,17 @@ ; GL_EXT_external_buffer glBufferStorageExternalEXT glNamedBufferStorageExternalEXT + ; GL_EXT_float_blend + ; GL_EXT_geometry_shader glFramebufferTextureEXT + ; GL_EXT_gpu_shader5 + ; GL_EXT_instanced_arrays glDrawArraysInstancedEXT glDrawElementsInstancedEXT glVertexAttribDivisorEXT @@ -714,20 +745,26 @@ ; GL_EXT_occlusion_query_boolean ; GL_EXT_primitive_bounding_box glPrimitiveBoundingBoxEXT + ; GL_EXT_protected_textures + + ; GL_EXT_pvrtc_sRGB + ; GL_EXT_read_format_bgra ; GL_EXT_robustness glGetGraphicsResetStatusEXT glGetnUniformfvEXT glGetnUniformivEXT glReadnPixelsEXT ; GL_EXT_sRGB + ; GL_EXT_sRGB_write_control + ; GL_EXT_semaphore glDeleteSemaphoresEXT glGenSemaphoresEXT glGetSemaphoreParameterui64vEXT glIsSemaphoreEXT @@ -787,10 +824,16 @@ ; GL_EXT_shader_framebuffer_fetch_non_coherent glFramebufferFetchBarrierEXT ; GL_EXT_shader_io_blocks + ; GL_EXT_shader_non_constant_global_initializers + + ; GL_EXT_shader_texture_lod + + ; GL_EXT_shadow_samplers + ; GL_EXT_tessellation_shader glPatchParameteriEXT ; GL_EXT_texture_border_clamp glGetSamplerParameterIivEXT @@ -820,19 +863,35 @@ ; GL_EXT_texture_filter_anisotropic ; GL_EXT_texture_format_BGRA8888 + ; GL_EXT_texture_format_sRGB_override + + ; GL_EXT_texture_norm16 + + ; GL_EXT_texture_rg + ; GL_EXT_texture_sRGB_R8 ; GL_EXT_texture_sRGB_RG8 + ; GL_EXT_texture_sRGB_decode + ; GL_EXT_texture_storage glTexStorage1DEXT glTexStorage2DEXT glTexStorage3DEXT + ; GL_EXT_texture_type_2_10_10_10_REV + + ; GL_EXT_unpack_subimage + + ; GL_IMG_texture_compression_pvrtc + + ; GL_IMG_texture_compression_pvrtc2 + ; GL_KHR_blend_equation_advanced glBlendBarrierKHR ; GL_KHR_debug glDebugMessageCallbackKHR @@ -845,13 +904,23 @@ glObjectLabelKHR glObjectPtrLabelKHR glPopDebugGroupKHR glPushDebugGroupKHR + ; GL_KHR_no_error + ; GL_KHR_parallel_shader_compile glMaxShaderCompilerThreadsKHR + ; GL_KHR_robust_buffer_access_behavior + + ; GL_KHR_texture_compression_astc_hdr + + ; GL_KHR_texture_compression_astc_ldr + + ; GL_KHR_texture_compression_astc_sliced_3d + ; GL_NV_fence glDeleteFencesNV glFinishFenceNV glGenFencesNV glGetFenceivNV @@ -860,21 +929,39 @@ glTestFenceNV ; GL_NV_framebuffer_blit glBlitFramebufferNV + ; GL_NV_pixel_buffer_object + + ; GL_NV_read_depth + + ; GL_NV_read_stencil + + ; GL_NV_robustness_video_memory_purge + + ; GL_NV_shader_noperspective_interpolation + ; GL_OES_EGL_image glEGLImageTargetRenderbufferStorageOES glEGLImageTargetTexture2DOES + ; GL_OES_EGL_image_external + + ; GL_OES_EGL_image_external_essl3 + ; GL_OES_compressed_ETC1_RGB8_texture ; GL_OES_copy_image glCopyImageSubDataOES + ; GL_OES_depth24 + ; GL_OES_depth32 + ; GL_OES_depth_texture + ; GL_OES_draw_buffers_indexed glBlendEquationSeparateiOES glBlendEquationiOES glBlendFuncSeparateiOES glBlendFunciOES @@ -896,10 +983,14 @@ glDrawTexsOES glDrawTexsvOES glDrawTexxOES glDrawTexxvOES + ; GL_OES_element_index_uint + + ; GL_OES_fbo_render_mipmap + ; GL_OES_framebuffer_object glBindFramebufferOES glBindRenderbufferOES glCheckFramebufferStatusOES glDeleteFramebuffersOES @@ -913,10 +1004,13 @@ glGetRenderbufferParameterivOES glIsFramebufferOES glIsRenderbufferOES glRenderbufferStorageOES + ; GL_OES_geometry_shader + glFramebufferTextureOES + ; GL_OES_get_program_binary glGetProgramBinaryOES glProgramBinaryOES ; GL_OES_mapbuffer @@ -928,21 +1022,37 @@ glCurrentPaletteMatrixOES glLoadPaletteFromModelViewMatrixOES glMatrixIndexPointerOES glWeightPointerOES + ; GL_OES_packed_depth_stencil + ; GL_OES_point_size_array glPointSizePointerOES + ; GL_OES_point_sprite + ; GL_OES_query_matrix glQueryMatrixxOES + ; GL_OES_rgb8_rgba8 + ; GL_OES_sample_shading glMinSampleShadingOES + ; GL_OES_sample_variables + + ; GL_OES_shader_image_atomic + ; GL_OES_shader_io_blocks + ; GL_OES_shader_multisample_interpolation + + ; GL_OES_standard_derivatives + + ; GL_OES_surfaceless_context + ; GL_OES_texture_3D glCompressedTexImage3DOES glCompressedTexSubImage3DOES glCopyTexSubImage3DOES glFramebufferTexture3DOES @@ -961,10 +1071,12 @@ ; GL_OES_texture_buffer glTexBufferOES glTexBufferRangeOES + ; GL_OES_texture_compression_astc + ; GL_OES_texture_cube_map glGetTexGenfvOES glGetTexGenivOES glGetTexGenxvOES glTexGenfOES @@ -974,12 +1086,20 @@ glTexGenxOES glTexGenxvOES ; GL_OES_texture_cube_map_array + ; GL_OES_texture_float + + ; GL_OES_texture_float_linear + ; GL_OES_texture_half_float + ; GL_OES_texture_half_float_linear + + ; GL_OES_texture_npot + ; GL_OES_texture_stencil8 ; GL_OES_texture_storage_multisample_2d_array glTexStorage3DMultisampleOES @@ -987,798 +1107,19 @@ glBindVertexArrayOES glDeleteVertexArraysOES glGenVertexArraysOES glIsVertexArrayOES + ; GL_OES_vertex_half_float + + ; GL_OES_vertex_type_10_10_10_2 + ; GL_OVR_multiview glFramebufferTextureMultiviewOVR ; GL_OVR_multiview2 - ; EGL_ANGLE_explicit_context - glActiveShaderProgramContextANGLE - glActiveShaderProgramEXTContextANGLE - glActiveTextureContextANGLE - glAlphaFuncContextANGLE - glAlphaFuncxContextANGLE - glAttachShaderContextANGLE - glBeginQueryContextANGLE - glBeginQueryEXTContextANGLE - glBeginTransformFeedbackContextANGLE - glBindAttribLocationContextANGLE - glBindBufferContextANGLE - glBindBufferBaseContextANGLE - glBindBufferRangeContextANGLE - glBindFragDataLocationEXTContextANGLE - glBindFragDataLocationIndexedEXTContextANGLE - glBindFramebufferContextANGLE - glBindFramebufferOESContextANGLE - glBindImageTextureContextANGLE - glBindProgramPipelineContextANGLE - glBindProgramPipelineEXTContextANGLE - glBindRenderbufferContextANGLE - glBindRenderbufferOESContextANGLE - glBindSamplerContextANGLE - glBindTextureContextANGLE - glBindTransformFeedbackContextANGLE - glBindUniformLocationCHROMIUMContextANGLE - glBindVertexArrayContextANGLE - glBindVertexArrayOESContextANGLE - glBindVertexBufferContextANGLE - glBlendBarrierContextANGLE - glBlendBarrierKHRContextANGLE - glBlendColorContextANGLE - glBlendEquationContextANGLE - glBlendEquationSeparateContextANGLE - glBlendEquationSeparateiContextANGLE - glBlendEquationSeparateiEXTContextANGLE - glBlendEquationSeparateiOESContextANGLE - glBlendEquationiContextANGLE - glBlendEquationiEXTContextANGLE - glBlendEquationiOESContextANGLE - glBlendFuncContextANGLE - glBlendFuncSeparateContextANGLE - glBlendFuncSeparateiContextANGLE - glBlendFuncSeparateiEXTContextANGLE - glBlendFuncSeparateiOESContextANGLE - glBlendFunciContextANGLE - glBlendFunciEXTContextANGLE - glBlendFunciOESContextANGLE - glBlitFramebufferContextANGLE - glBlitFramebufferANGLEContextANGLE - glBlitFramebufferNVContextANGLE - glBufferDataContextANGLE - glBufferStorageEXTContextANGLE - glBufferStorageExternalEXTContextANGLE - glBufferStorageMemEXTContextANGLE - glBufferSubDataContextANGLE - glCheckFramebufferStatusContextANGLE - glCheckFramebufferStatusOESContextANGLE - glClearContextANGLE - glClearBufferfiContextANGLE - glClearBufferfvContextANGLE - glClearBufferivContextANGLE - glClearBufferuivContextANGLE - glClearColorContextANGLE - glClearColorxContextANGLE - glClearDepthfContextANGLE - glClearDepthxContextANGLE - glClearStencilContextANGLE - glClientActiveTextureContextANGLE - glClientWaitSyncContextANGLE - glClipControlEXTContextANGLE - glClipPlanefContextANGLE - glClipPlanexContextANGLE - glColor4fContextANGLE - glColor4ubContextANGLE - glColor4xContextANGLE - glColorMaskContextANGLE - glColorMaskiContextANGLE - glColorMaskiEXTContextANGLE - glColorMaskiOESContextANGLE - glColorPointerContextANGLE - glCompileShaderContextANGLE - glCompressedCopyTextureCHROMIUMContextANGLE - glCompressedTexImage2DContextANGLE - glCompressedTexImage2DRobustANGLEContextANGLE - glCompressedTexImage3DContextANGLE - glCompressedTexImage3DOESContextANGLE - glCompressedTexImage3DRobustANGLEContextANGLE - glCompressedTexSubImage2DContextANGLE - glCompressedTexSubImage2DRobustANGLEContextANGLE - glCompressedTexSubImage3DContextANGLE - glCompressedTexSubImage3DOESContextANGLE - glCompressedTexSubImage3DRobustANGLEContextANGLE - glCopyBufferSubDataContextANGLE - glCopyImageSubDataContextANGLE - glCopyImageSubDataEXTContextANGLE - glCopyImageSubDataOESContextANGLE - glCopySubTexture3DANGLEContextANGLE - glCopySubTextureCHROMIUMContextANGLE - glCopyTexImage2DContextANGLE - glCopyTexSubImage2DContextANGLE - glCopyTexSubImage3DContextANGLE - glCopyTexSubImage3DOESContextANGLE - glCopyTexture3DANGLEContextANGLE - glCopyTextureCHROMIUMContextANGLE - glCoverageModulationCHROMIUMContextANGLE - glCreateMemoryObjectsEXTContextANGLE - glCreateProgramContextANGLE - glCreateShaderContextANGLE - glCreateShaderProgramvContextANGLE - glCreateShaderProgramvEXTContextANGLE - glCullFaceContextANGLE - glCurrentPaletteMatrixOESContextANGLE - glDebugMessageCallbackContextANGLE - glDebugMessageCallbackKHRContextANGLE - glDebugMessageControlContextANGLE - glDebugMessageControlKHRContextANGLE - glDebugMessageInsertContextANGLE - glDebugMessageInsertKHRContextANGLE - glDeleteBuffersContextANGLE - glDeleteFencesNVContextANGLE - glDeleteFramebuffersContextANGLE - glDeleteFramebuffersOESContextANGLE - glDeleteMemoryObjectsEXTContextANGLE - glDeleteProgramContextANGLE - glDeleteProgramPipelinesContextANGLE - glDeleteProgramPipelinesEXTContextANGLE - glDeleteQueriesContextANGLE - glDeleteQueriesEXTContextANGLE - glDeleteRenderbuffersContextANGLE - glDeleteRenderbuffersOESContextANGLE - glDeleteSamplersContextANGLE - glDeleteSemaphoresEXTContextANGLE - glDeleteShaderContextANGLE - glDeleteSyncContextANGLE - glDeleteTexturesContextANGLE - glDeleteTransformFeedbacksContextANGLE - glDeleteVertexArraysContextANGLE - glDeleteVertexArraysOESContextANGLE - glDepthFuncContextANGLE - glDepthMaskContextANGLE - glDepthRangefContextANGLE - glDepthRangexContextANGLE - glDetachShaderContextANGLE - glDisableContextANGLE - glDisableClientStateContextANGLE - glDisableExtensionANGLEContextANGLE - glDisableVertexAttribArrayContextANGLE - glDisableiContextANGLE - glDisableiEXTContextANGLE - glDisableiOESContextANGLE - glDiscardFramebufferEXTContextANGLE - glDispatchComputeContextANGLE - glDispatchComputeIndirectContextANGLE - glDrawArraysContextANGLE - glDrawArraysIndirectContextANGLE - glDrawArraysInstancedContextANGLE - glDrawArraysInstancedANGLEContextANGLE - glDrawArraysInstancedBaseInstanceANGLEContextANGLE - glDrawArraysInstancedEXTContextANGLE - glDrawBuffersContextANGLE - glDrawBuffersEXTContextANGLE - glDrawElementsContextANGLE - glDrawElementsBaseVertexContextANGLE - glDrawElementsBaseVertexEXTContextANGLE - glDrawElementsBaseVertexOESContextANGLE - glDrawElementsIndirectContextANGLE - glDrawElementsInstancedContextANGLE - glDrawElementsInstancedANGLEContextANGLE - glDrawElementsInstancedBaseVertexContextANGLE - glDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE - glDrawElementsInstancedBaseVertexEXTContextANGLE - glDrawElementsInstancedBaseVertexOESContextANGLE - glDrawElementsInstancedEXTContextANGLE - glDrawRangeElementsContextANGLE - glDrawRangeElementsBaseVertexContextANGLE - glDrawRangeElementsBaseVertexEXTContextANGLE - glDrawRangeElementsBaseVertexOESContextANGLE - glDrawTexfOESContextANGLE - glDrawTexfvOESContextANGLE - glDrawTexiOESContextANGLE - glDrawTexivOESContextANGLE - glDrawTexsOESContextANGLE - glDrawTexsvOESContextANGLE - glDrawTexxOESContextANGLE - glDrawTexxvOESContextANGLE - glEGLImageTargetRenderbufferStorageOESContextANGLE - glEGLImageTargetTexture2DOESContextANGLE - glEnableContextANGLE - glEnableClientStateContextANGLE - glEnableVertexAttribArrayContextANGLE - glEnableiContextANGLE - glEnableiEXTContextANGLE - glEnableiOESContextANGLE - glEndQueryContextANGLE - glEndQueryEXTContextANGLE - glEndTransformFeedbackContextANGLE - glFenceSyncContextANGLE - glFinishContextANGLE - glFinishFenceNVContextANGLE - glFlushContextANGLE - glFlushMappedBufferRangeContextANGLE - glFlushMappedBufferRangeEXTContextANGLE - glFogfContextANGLE - glFogfvContextANGLE - glFogxContextANGLE - glFogxvContextANGLE - glFramebufferFetchBarrierEXTContextANGLE - glFramebufferParameteriContextANGLE - glFramebufferRenderbufferContextANGLE - glFramebufferRenderbufferOESContextANGLE - glFramebufferTextureContextANGLE - glFramebufferTexture2DContextANGLE - glFramebufferTexture2DMultisampleEXTContextANGLE - glFramebufferTexture2DOESContextANGLE - glFramebufferTexture3DOESContextANGLE - glFramebufferTextureEXTContextANGLE - glFramebufferTextureLayerContextANGLE - glFramebufferTextureMultiviewOVRContextANGLE - glFrontFaceContextANGLE - glFrustumfContextANGLE - glFrustumxContextANGLE - glGenBuffersContextANGLE - glGenFencesNVContextANGLE - glGenFramebuffersContextANGLE - glGenFramebuffersOESContextANGLE - glGenProgramPipelinesContextANGLE - glGenProgramPipelinesEXTContextANGLE - glGenQueriesContextANGLE - glGenQueriesEXTContextANGLE - glGenRenderbuffersContextANGLE - glGenRenderbuffersOESContextANGLE - glGenSamplersContextANGLE - glGenSemaphoresEXTContextANGLE - glGenTexturesContextANGLE - glGenTransformFeedbacksContextANGLE - glGenVertexArraysContextANGLE - glGenVertexArraysOESContextANGLE - glGenerateMipmapContextANGLE - glGenerateMipmapOESContextANGLE - glGetActiveAttribContextANGLE - glGetActiveUniformContextANGLE - glGetActiveUniformBlockNameContextANGLE - glGetActiveUniformBlockivContextANGLE - glGetActiveUniformBlockivRobustANGLEContextANGLE - glGetActiveUniformsivContextANGLE - glGetAttachedShadersContextANGLE - glGetAttribLocationContextANGLE - glGetBooleani_vContextANGLE - glGetBooleani_vRobustANGLEContextANGLE - glGetBooleanvContextANGLE - glGetBooleanvRobustANGLEContextANGLE - glGetBufferParameteri64vContextANGLE - glGetBufferParameteri64vRobustANGLEContextANGLE - glGetBufferParameterivContextANGLE - glGetBufferParameterivRobustANGLEContextANGLE - glGetBufferPointervContextANGLE - glGetBufferPointervOESContextANGLE - glGetBufferPointervRobustANGLEContextANGLE - glGetClipPlanefContextANGLE - glGetClipPlanexContextANGLE - glGetDebugMessageLogContextANGLE - glGetDebugMessageLogKHRContextANGLE - glGetErrorContextANGLE - glGetFenceivNVContextANGLE - glGetFixedvContextANGLE - glGetFloatvContextANGLE - glGetFloatvRobustANGLEContextANGLE - glGetFragDataIndexEXTContextANGLE - glGetFragDataLocationContextANGLE - glGetFramebufferAttachmentParameterivContextANGLE - glGetFramebufferAttachmentParameterivOESContextANGLE - glGetFramebufferAttachmentParameterivRobustANGLEContextANGLE - glGetFramebufferParameterivContextANGLE - glGetFramebufferParameterivRobustANGLEContextANGLE - glGetGraphicsResetStatusContextANGLE - glGetGraphicsResetStatusEXTContextANGLE - glGetInteger64i_vContextANGLE - glGetInteger64i_vRobustANGLEContextANGLE - glGetInteger64vContextANGLE - glGetInteger64vEXTContextANGLE - glGetInteger64vRobustANGLEContextANGLE - glGetIntegeri_vContextANGLE - glGetIntegeri_vRobustANGLEContextANGLE - glGetIntegervContextANGLE - glGetIntegervRobustANGLEContextANGLE - glGetInternalformativContextANGLE - glGetInternalformativRobustANGLEContextANGLE - glGetLightfvContextANGLE - glGetLightxvContextANGLE - glGetMaterialfvContextANGLE - glGetMaterialxvContextANGLE - glGetMemoryObjectParameterivEXTContextANGLE - glGetMultisamplefvContextANGLE - glGetMultisamplefvANGLEContextANGLE - glGetMultisamplefvRobustANGLEContextANGLE - glGetObjectLabelContextANGLE - glGetObjectLabelEXTContextANGLE - glGetObjectLabelKHRContextANGLE - glGetObjectPtrLabelContextANGLE - glGetObjectPtrLabelKHRContextANGLE - glGetPointervContextANGLE - glGetPointervKHRContextANGLE - glGetPointervRobustANGLERobustANGLEContextANGLE - glGetProgramBinaryContextANGLE - glGetProgramBinaryOESContextANGLE - glGetProgramInfoLogContextANGLE - glGetProgramInterfaceivContextANGLE - glGetProgramInterfaceivRobustANGLEContextANGLE - glGetProgramPipelineInfoLogContextANGLE - glGetProgramPipelineInfoLogEXTContextANGLE - glGetProgramPipelineivContextANGLE - glGetProgramPipelineivEXTContextANGLE - glGetProgramResourceIndexContextANGLE - glGetProgramResourceLocationContextANGLE - glGetProgramResourceLocationIndexEXTContextANGLE - glGetProgramResourceNameContextANGLE - glGetProgramResourceivContextANGLE - glGetProgramivContextANGLE - glGetProgramivRobustANGLEContextANGLE - glGetQueryObjecti64vEXTContextANGLE - glGetQueryObjecti64vRobustANGLEContextANGLE - glGetQueryObjectivEXTContextANGLE - glGetQueryObjectivRobustANGLEContextANGLE - glGetQueryObjectui64vEXTContextANGLE - glGetQueryObjectui64vRobustANGLEContextANGLE - glGetQueryObjectuivContextANGLE - glGetQueryObjectuivEXTContextANGLE - glGetQueryObjectuivRobustANGLEContextANGLE - glGetQueryivContextANGLE - glGetQueryivEXTContextANGLE - glGetQueryivRobustANGLEContextANGLE - glGetRenderbufferImageANGLEContextANGLE - glGetRenderbufferParameterivContextANGLE - glGetRenderbufferParameterivOESContextANGLE - glGetRenderbufferParameterivRobustANGLEContextANGLE - glGetSamplerParameterIivContextANGLE - glGetSamplerParameterIivEXTContextANGLE - glGetSamplerParameterIivOESContextANGLE - glGetSamplerParameterIivRobustANGLEContextANGLE - glGetSamplerParameterIuivContextANGLE - glGetSamplerParameterIuivEXTContextANGLE - glGetSamplerParameterIuivOESContextANGLE - glGetSamplerParameterIuivRobustANGLEContextANGLE - glGetSamplerParameterfvContextANGLE - glGetSamplerParameterfvRobustANGLEContextANGLE - glGetSamplerParameterivContextANGLE - glGetSamplerParameterivRobustANGLEContextANGLE - glGetSemaphoreParameterui64vEXTContextANGLE - glGetShaderInfoLogContextANGLE - glGetShaderPrecisionFormatContextANGLE - glGetShaderSourceContextANGLE - glGetShaderivContextANGLE - glGetShaderivRobustANGLEContextANGLE - glGetStringContextANGLE - glGetStringiContextANGLE - glGetSyncivContextANGLE - glGetTexEnvfvContextANGLE - glGetTexEnvivContextANGLE - glGetTexEnvxvContextANGLE - glGetTexGenfvOESContextANGLE - glGetTexGenivOESContextANGLE - glGetTexGenxvOESContextANGLE - glGetTexImageANGLEContextANGLE - glGetTexLevelParameterfvContextANGLE - glGetTexLevelParameterfvANGLEContextANGLE - glGetTexLevelParameterfvRobustANGLEContextANGLE - glGetTexLevelParameterivContextANGLE - glGetTexLevelParameterivANGLEContextANGLE - glGetTexLevelParameterivRobustANGLEContextANGLE - glGetTexParameterIivContextANGLE - glGetTexParameterIivEXTContextANGLE - glGetTexParameterIivOESContextANGLE - glGetTexParameterIivRobustANGLEContextANGLE - glGetTexParameterIuivContextANGLE - glGetTexParameterIuivEXTContextANGLE - glGetTexParameterIuivOESContextANGLE - glGetTexParameterIuivRobustANGLEContextANGLE - glGetTexParameterfvContextANGLE - glGetTexParameterfvRobustANGLEContextANGLE - glGetTexParameterivContextANGLE - glGetTexParameterivRobustANGLEContextANGLE - glGetTexParameterxvContextANGLE - glGetTransformFeedbackVaryingContextANGLE - glGetTranslatedShaderSourceANGLEContextANGLE - glGetUniformBlockIndexContextANGLE - glGetUniformIndicesContextANGLE - glGetUniformLocationContextANGLE - glGetUniformfvContextANGLE - glGetUniformfvRobustANGLEContextANGLE - glGetUniformivContextANGLE - glGetUniformivRobustANGLEContextANGLE - glGetUniformuivContextANGLE - glGetUniformuivRobustANGLEContextANGLE - glGetUnsignedBytei_vEXTContextANGLE - glGetUnsignedBytevEXTContextANGLE - glGetVertexAttribIivContextANGLE - glGetVertexAttribIivRobustANGLEContextANGLE - glGetVertexAttribIuivContextANGLE - glGetVertexAttribIuivRobustANGLEContextANGLE - glGetVertexAttribPointervContextANGLE - glGetVertexAttribPointervRobustANGLEContextANGLE - glGetVertexAttribfvContextANGLE - glGetVertexAttribfvRobustANGLEContextANGLE - glGetVertexAttribivContextANGLE - glGetVertexAttribivRobustANGLEContextANGLE - glGetnUniformfvContextANGLE - glGetnUniformfvEXTContextANGLE - glGetnUniformfvRobustANGLEContextANGLE - glGetnUniformivContextANGLE - glGetnUniformivEXTContextANGLE - glGetnUniformivRobustANGLEContextANGLE - glGetnUniformuivContextANGLE - glGetnUniformuivRobustANGLEContextANGLE - glHintContextANGLE - glImportMemoryFdEXTContextANGLE - glImportMemoryZirconHandleANGLEContextANGLE - glImportSemaphoreFdEXTContextANGLE - glImportSemaphoreZirconHandleANGLEContextANGLE - glInsertEventMarkerEXTContextANGLE - glInvalidateFramebufferContextANGLE - glInvalidateSubFramebufferContextANGLE - glInvalidateTextureANGLEContextANGLE - glIsBufferContextANGLE - glIsEnabledContextANGLE - glIsEnablediContextANGLE - glIsEnablediEXTContextANGLE - glIsEnablediOESContextANGLE - glIsFenceNVContextANGLE - glIsFramebufferContextANGLE - glIsFramebufferOESContextANGLE - glIsMemoryObjectEXTContextANGLE - glIsProgramContextANGLE - glIsProgramPipelineContextANGLE - glIsProgramPipelineEXTContextANGLE - glIsQueryContextANGLE - glIsQueryEXTContextANGLE - glIsRenderbufferContextANGLE - glIsRenderbufferOESContextANGLE - glIsSamplerContextANGLE - glIsSemaphoreEXTContextANGLE - glIsShaderContextANGLE - glIsSyncContextANGLE - glIsTextureContextANGLE - glIsTransformFeedbackContextANGLE - glIsVertexArrayContextANGLE - glIsVertexArrayOESContextANGLE - glLabelObjectEXTContextANGLE - glLightModelfContextANGLE - glLightModelfvContextANGLE - glLightModelxContextANGLE - glLightModelxvContextANGLE - glLightfContextANGLE - glLightfvContextANGLE - glLightxContextANGLE - glLightxvContextANGLE - glLineWidthContextANGLE - glLineWidthxContextANGLE - glLinkProgramContextANGLE - glLoadIdentityContextANGLE - glLoadMatrixfContextANGLE - glLoadMatrixxContextANGLE - glLoadPaletteFromModelViewMatrixOESContextANGLE - glLogicOpContextANGLE - glLoseContextCHROMIUMContextANGLE - glMapBufferOESContextANGLE - glMapBufferRangeContextANGLE - glMapBufferRangeEXTContextANGLE - glMaterialfContextANGLE - glMaterialfvContextANGLE - glMaterialxContextANGLE - glMaterialxvContextANGLE - glMatrixIndexPointerOESContextANGLE - glMatrixModeContextANGLE - glMaxShaderCompilerThreadsKHRContextANGLE - glMemoryBarrierContextANGLE - glMemoryBarrierByRegionContextANGLE - glMemoryObjectParameterivEXTContextANGLE - glMinSampleShadingContextANGLE - glMinSampleShadingOESContextANGLE - glMultMatrixfContextANGLE - glMultMatrixxContextANGLE - glMultiDrawArraysANGLEContextANGLE - glMultiDrawArraysInstancedANGLEContextANGLE - glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE - glMultiDrawElementsANGLEContextANGLE - glMultiDrawElementsBaseVertexEXTContextANGLE - glMultiDrawElementsInstancedANGLEContextANGLE - glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE - glMultiTexCoord4fContextANGLE - glMultiTexCoord4xContextANGLE - glNamedBufferStorageExternalEXTContextANGLE - glNormal3fContextANGLE - glNormal3xContextANGLE - glNormalPointerContextANGLE - glObjectLabelContextANGLE - glObjectLabelKHRContextANGLE - glObjectPtrLabelContextANGLE - glObjectPtrLabelKHRContextANGLE - glOrthofContextANGLE - glOrthoxContextANGLE - glPatchParameteriContextANGLE - glPatchParameteriEXTContextANGLE - glPauseTransformFeedbackContextANGLE - glPixelStoreiContextANGLE - glPointParameterfContextANGLE - glPointParameterfvContextANGLE - glPointParameterxContextANGLE - glPointParameterxvContextANGLE - glPointSizeContextANGLE - glPointSizePointerOESContextANGLE - glPointSizexContextANGLE - glPolygonOffsetContextANGLE - glPolygonOffsetxContextANGLE - glPopDebugGroupContextANGLE - glPopDebugGroupKHRContextANGLE - glPopGroupMarkerEXTContextANGLE - glPopMatrixContextANGLE - glPrimitiveBoundingBoxContextANGLE - glPrimitiveBoundingBoxEXTContextANGLE - glProgramBinaryContextANGLE - glProgramBinaryOESContextANGLE - glProgramParameteriContextANGLE - glProgramParameteriEXTContextANGLE - glProgramUniform1fContextANGLE - glProgramUniform1fEXTContextANGLE - glProgramUniform1fvContextANGLE - glProgramUniform1fvEXTContextANGLE - glProgramUniform1iContextANGLE - glProgramUniform1iEXTContextANGLE - glProgramUniform1ivContextANGLE - glProgramUniform1ivEXTContextANGLE - glProgramUniform1uiContextANGLE - glProgramUniform1uiEXTContextANGLE - glProgramUniform1uivContextANGLE - glProgramUniform1uivEXTContextANGLE - glProgramUniform2fContextANGLE - glProgramUniform2fEXTContextANGLE - glProgramUniform2fvContextANGLE - glProgramUniform2fvEXTContextANGLE - glProgramUniform2iContextANGLE - glProgramUniform2iEXTContextANGLE - glProgramUniform2ivContextANGLE - glProgramUniform2ivEXTContextANGLE - glProgramUniform2uiContextANGLE - glProgramUniform2uiEXTContextANGLE - glProgramUniform2uivContextANGLE - glProgramUniform2uivEXTContextANGLE - glProgramUniform3fContextANGLE - glProgramUniform3fEXTContextANGLE - glProgramUniform3fvContextANGLE - glProgramUniform3fvEXTContextANGLE - glProgramUniform3iContextANGLE - glProgramUniform3iEXTContextANGLE - glProgramUniform3ivContextANGLE - glProgramUniform3ivEXTContextANGLE - glProgramUniform3uiContextANGLE - glProgramUniform3uiEXTContextANGLE - glProgramUniform3uivContextANGLE - glProgramUniform3uivEXTContextANGLE - glProgramUniform4fContextANGLE - glProgramUniform4fEXTContextANGLE - glProgramUniform4fvContextANGLE - glProgramUniform4fvEXTContextANGLE - glProgramUniform4iContextANGLE - glProgramUniform4iEXTContextANGLE - glProgramUniform4ivContextANGLE - glProgramUniform4ivEXTContextANGLE - glProgramUniform4uiContextANGLE - glProgramUniform4uiEXTContextANGLE - glProgramUniform4uivContextANGLE - glProgramUniform4uivEXTContextANGLE - glProgramUniformMatrix2fvContextANGLE - glProgramUniformMatrix2fvEXTContextANGLE - glProgramUniformMatrix2x3fvContextANGLE - glProgramUniformMatrix2x3fvEXTContextANGLE - glProgramUniformMatrix2x4fvContextANGLE - glProgramUniformMatrix2x4fvEXTContextANGLE - glProgramUniformMatrix3fvContextANGLE - glProgramUniformMatrix3fvEXTContextANGLE - glProgramUniformMatrix3x2fvContextANGLE - glProgramUniformMatrix3x2fvEXTContextANGLE - glProgramUniformMatrix3x4fvContextANGLE - glProgramUniformMatrix3x4fvEXTContextANGLE - glProgramUniformMatrix4fvContextANGLE - glProgramUniformMatrix4fvEXTContextANGLE - glProgramUniformMatrix4x2fvContextANGLE - glProgramUniformMatrix4x2fvEXTContextANGLE - glProgramUniformMatrix4x3fvContextANGLE - glProgramUniformMatrix4x3fvEXTContextANGLE - glProvokingVertexANGLEContextANGLE - glPushDebugGroupContextANGLE - glPushDebugGroupKHRContextANGLE - glPushGroupMarkerEXTContextANGLE - glPushMatrixContextANGLE - glQueryCounterEXTContextANGLE - glQueryMatrixxOESContextANGLE - glReadBufferContextANGLE - glReadPixelsContextANGLE - glReadPixelsRobustANGLEContextANGLE - glReadnPixelsContextANGLE - glReadnPixelsEXTContextANGLE - glReadnPixelsRobustANGLEContextANGLE - glReleaseShaderCompilerContextANGLE - glRenderbufferStorageContextANGLE - glRenderbufferStorageMultisampleContextANGLE - glRenderbufferStorageMultisampleANGLEContextANGLE - glRenderbufferStorageMultisampleEXTContextANGLE - glRenderbufferStorageOESContextANGLE - glRequestExtensionANGLEContextANGLE - glResumeTransformFeedbackContextANGLE - glRotatefContextANGLE - glRotatexContextANGLE - glSampleCoverageContextANGLE - glSampleCoveragexContextANGLE - glSampleMaskiContextANGLE - glSampleMaskiANGLEContextANGLE - glSamplerParameterIivContextANGLE - glSamplerParameterIivEXTContextANGLE - glSamplerParameterIivOESContextANGLE - glSamplerParameterIivRobustANGLEContextANGLE - glSamplerParameterIuivContextANGLE - glSamplerParameterIuivEXTContextANGLE - glSamplerParameterIuivOESContextANGLE - glSamplerParameterIuivRobustANGLEContextANGLE - glSamplerParameterfContextANGLE - glSamplerParameterfvContextANGLE - glSamplerParameterfvRobustANGLEContextANGLE - glSamplerParameteriContextANGLE - glSamplerParameterivContextANGLE - glSamplerParameterivRobustANGLEContextANGLE - glScalefContextANGLE - glScalexContextANGLE - glScissorContextANGLE - glSemaphoreParameterui64vEXTContextANGLE - glSetFenceNVContextANGLE - glShadeModelContextANGLE - glShaderBinaryContextANGLE - glShaderSourceContextANGLE - glSignalSemaphoreEXTContextANGLE - glStencilFuncContextANGLE - glStencilFuncSeparateContextANGLE - glStencilMaskContextANGLE - glStencilMaskSeparateContextANGLE - glStencilOpContextANGLE - glStencilOpSeparateContextANGLE - glTestFenceNVContextANGLE - glTexBufferContextANGLE - glTexBufferEXTContextANGLE - glTexBufferOESContextANGLE - glTexBufferRangeContextANGLE - glTexBufferRangeEXTContextANGLE - glTexBufferRangeOESContextANGLE - glTexCoordPointerContextANGLE - glTexEnvfContextANGLE - glTexEnvfvContextANGLE - glTexEnviContextANGLE - glTexEnvivContextANGLE - glTexEnvxContextANGLE - glTexEnvxvContextANGLE - glTexGenfOESContextANGLE - glTexGenfvOESContextANGLE - glTexGeniOESContextANGLE - glTexGenivOESContextANGLE - glTexGenxOESContextANGLE - glTexGenxvOESContextANGLE - glTexImage2DContextANGLE - glTexImage2DExternalANGLEContextANGLE - glTexImage2DRobustANGLEContextANGLE - glTexImage3DContextANGLE - glTexImage3DOESContextANGLE - glTexImage3DRobustANGLEContextANGLE - glTexParameterIivContextANGLE - glTexParameterIivEXTContextANGLE - glTexParameterIivOESContextANGLE - glTexParameterIivRobustANGLEContextANGLE - glTexParameterIuivContextANGLE - glTexParameterIuivEXTContextANGLE - glTexParameterIuivOESContextANGLE - glTexParameterIuivRobustANGLEContextANGLE - glTexParameterfContextANGLE - glTexParameterfvContextANGLE - glTexParameterfvRobustANGLEContextANGLE - glTexParameteriContextANGLE - glTexParameterivContextANGLE - glTexParameterivRobustANGLEContextANGLE - glTexParameterxContextANGLE - glTexParameterxvContextANGLE - glTexStorage1DEXTContextANGLE - glTexStorage2DContextANGLE - glTexStorage2DEXTContextANGLE - glTexStorage2DMultisampleContextANGLE - glTexStorage2DMultisampleANGLEContextANGLE - glTexStorage3DContextANGLE - glTexStorage3DEXTContextANGLE - glTexStorage3DMultisampleContextANGLE - glTexStorage3DMultisampleOESContextANGLE - glTexStorageMem2DEXTContextANGLE - glTexStorageMem2DMultisampleEXTContextANGLE - glTexStorageMem3DEXTContextANGLE - glTexStorageMem3DMultisampleEXTContextANGLE - glTexStorageMemFlags2DANGLEContextANGLE - glTexStorageMemFlags2DMultisampleANGLEContextANGLE - glTexStorageMemFlags3DANGLEContextANGLE - glTexStorageMemFlags3DMultisampleANGLEContextANGLE - glTexSubImage2DContextANGLE - glTexSubImage2DRobustANGLEContextANGLE - glTexSubImage3DContextANGLE - glTexSubImage3DOESContextANGLE - glTexSubImage3DRobustANGLEContextANGLE - glTransformFeedbackVaryingsContextANGLE - glTranslatefContextANGLE - glTranslatexContextANGLE - glUniform1fContextANGLE - glUniform1fvContextANGLE - glUniform1iContextANGLE - glUniform1ivContextANGLE - glUniform1uiContextANGLE - glUniform1uivContextANGLE - glUniform2fContextANGLE - glUniform2fvContextANGLE - glUniform2iContextANGLE - glUniform2ivContextANGLE - glUniform2uiContextANGLE - glUniform2uivContextANGLE - glUniform3fContextANGLE - glUniform3fvContextANGLE - glUniform3iContextANGLE - glUniform3ivContextANGLE - glUniform3uiContextANGLE - glUniform3uivContextANGLE - glUniform4fContextANGLE - glUniform4fvContextANGLE - glUniform4iContextANGLE - glUniform4ivContextANGLE - glUniform4uiContextANGLE - glUniform4uivContextANGLE - glUniformBlockBindingContextANGLE - glUniformMatrix2fvContextANGLE - glUniformMatrix2x3fvContextANGLE - glUniformMatrix2x4fvContextANGLE - glUniformMatrix3fvContextANGLE - glUniformMatrix3x2fvContextANGLE - glUniformMatrix3x4fvContextANGLE - glUniformMatrix4fvContextANGLE - glUniformMatrix4x2fvContextANGLE - glUniformMatrix4x3fvContextANGLE - glUnmapBufferContextANGLE - glUnmapBufferOESContextANGLE - glUseProgramContextANGLE - glUseProgramStagesContextANGLE - glUseProgramStagesEXTContextANGLE - glValidateProgramContextANGLE - glValidateProgramPipelineContextANGLE - glValidateProgramPipelineEXTContextANGLE - glVertexAttrib1fContextANGLE - glVertexAttrib1fvContextANGLE - glVertexAttrib2fContextANGLE - glVertexAttrib2fvContextANGLE - glVertexAttrib3fContextANGLE - glVertexAttrib3fvContextANGLE - glVertexAttrib4fContextANGLE - glVertexAttrib4fvContextANGLE - glVertexAttribBindingContextANGLE - glVertexAttribDivisorContextANGLE - glVertexAttribDivisorANGLEContextANGLE - glVertexAttribDivisorEXTContextANGLE - glVertexAttribFormatContextANGLE - glVertexAttribI4iContextANGLE - glVertexAttribI4ivContextANGLE - glVertexAttribI4uiContextANGLE - glVertexAttribI4uivContextANGLE - glVertexAttribIFormatContextANGLE - glVertexAttribIPointerContextANGLE - glVertexAttribPointerContextANGLE - glVertexBindingDivisorContextANGLE - glVertexPointerContextANGLE - glViewportContextANGLE - glWaitSemaphoreEXTContextANGLE - glWaitSyncContextANGLE - glWeightPointerOESContextANGLE - ; EGL 1.0 EGL_ChooseConfig EGL_CopyBuffers EGL_CreateContext EGL_CreatePbufferSurface diff --git a/gfx/angle/checkout/src/libGLESv2/proc_table_egl_autogen.cpp b/gfx/angle/checkout/src/libGLESv2/proc_table_egl_autogen.cpp --- a/gfx/angle/checkout/src/libGLESv2/proc_table_egl_autogen.cpp +++ b/gfx/angle/checkout/src/libGLESv2/proc_table_egl_autogen.cpp @@ -128,1638 +128,796 @@ {"eglWaitGL", P(EGL_WaitGL)}, {"eglWaitNative", P(EGL_WaitNative)}, {"eglWaitSync", P(EGL_WaitSync)}, {"eglWaitSyncKHR", P(EGL_WaitSyncKHR)}, {"glActiveShaderProgram", P(GL_ActiveShaderProgram)}, - {"glActiveShaderProgramContextANGLE", P(GL_ActiveShaderProgramContextANGLE)}, {"glActiveShaderProgramEXT", P(GL_ActiveShaderProgramEXT)}, - {"glActiveShaderProgramEXTContextANGLE", P(GL_ActiveShaderProgramEXTContextANGLE)}, {"glActiveTexture", P(GL_ActiveTexture)}, - {"glActiveTextureContextANGLE", P(GL_ActiveTextureContextANGLE)}, {"glAlphaFunc", P(GL_AlphaFunc)}, - {"glAlphaFuncContextANGLE", P(GL_AlphaFuncContextANGLE)}, {"glAlphaFuncx", P(GL_AlphaFuncx)}, - {"glAlphaFuncxContextANGLE", P(GL_AlphaFuncxContextANGLE)}, {"glAttachShader", P(GL_AttachShader)}, - {"glAttachShaderContextANGLE", P(GL_AttachShaderContextANGLE)}, {"glBeginQuery", P(GL_BeginQuery)}, - {"glBeginQueryContextANGLE", P(GL_BeginQueryContextANGLE)}, {"glBeginQueryEXT", P(GL_BeginQueryEXT)}, - {"glBeginQueryEXTContextANGLE", P(GL_BeginQueryEXTContextANGLE)}, {"glBeginTransformFeedback", P(GL_BeginTransformFeedback)}, - {"glBeginTransformFeedbackContextANGLE", P(GL_BeginTransformFeedbackContextANGLE)}, {"glBindAttribLocation", P(GL_BindAttribLocation)}, - {"glBindAttribLocationContextANGLE", P(GL_BindAttribLocationContextANGLE)}, {"glBindBuffer", P(GL_BindBuffer)}, {"glBindBufferBase", P(GL_BindBufferBase)}, - {"glBindBufferBaseContextANGLE", P(GL_BindBufferBaseContextANGLE)}, - {"glBindBufferContextANGLE", P(GL_BindBufferContextANGLE)}, {"glBindBufferRange", P(GL_BindBufferRange)}, - {"glBindBufferRangeContextANGLE", P(GL_BindBufferRangeContextANGLE)}, {"glBindFragDataLocationEXT", P(GL_BindFragDataLocationEXT)}, - {"glBindFragDataLocationEXTContextANGLE", P(GL_BindFragDataLocationEXTContextANGLE)}, {"glBindFragDataLocationIndexedEXT", P(GL_BindFragDataLocationIndexedEXT)}, - {"glBindFragDataLocationIndexedEXTContextANGLE", - P(GL_BindFragDataLocationIndexedEXTContextANGLE)}, {"glBindFramebuffer", P(GL_BindFramebuffer)}, - {"glBindFramebufferContextANGLE", P(GL_BindFramebufferContextANGLE)}, {"glBindFramebufferOES", P(GL_BindFramebufferOES)}, - {"glBindFramebufferOESContextANGLE", P(GL_BindFramebufferOESContextANGLE)}, {"glBindImageTexture", P(GL_BindImageTexture)}, - {"glBindImageTextureContextANGLE", P(GL_BindImageTextureContextANGLE)}, {"glBindProgramPipeline", P(GL_BindProgramPipeline)}, - {"glBindProgramPipelineContextANGLE", P(GL_BindProgramPipelineContextANGLE)}, {"glBindProgramPipelineEXT", P(GL_BindProgramPipelineEXT)}, - {"glBindProgramPipelineEXTContextANGLE", P(GL_BindProgramPipelineEXTContextANGLE)}, {"glBindRenderbuffer", P(GL_BindRenderbuffer)}, - {"glBindRenderbufferContextANGLE", P(GL_BindRenderbufferContextANGLE)}, {"glBindRenderbufferOES", P(GL_BindRenderbufferOES)}, - {"glBindRenderbufferOESContextANGLE", P(GL_BindRenderbufferOESContextANGLE)}, {"glBindSampler", P(GL_BindSampler)}, - {"glBindSamplerContextANGLE", P(GL_BindSamplerContextANGLE)}, {"glBindTexture", P(GL_BindTexture)}, - {"glBindTextureContextANGLE", P(GL_BindTextureContextANGLE)}, {"glBindTransformFeedback", P(GL_BindTransformFeedback)}, - {"glBindTransformFeedbackContextANGLE", P(GL_BindTransformFeedbackContextANGLE)}, {"glBindUniformLocationCHROMIUM", P(GL_BindUniformLocationCHROMIUM)}, - {"glBindUniformLocationCHROMIUMContextANGLE", P(GL_BindUniformLocationCHROMIUMContextANGLE)}, {"glBindVertexArray", P(GL_BindVertexArray)}, - {"glBindVertexArrayContextANGLE", P(GL_BindVertexArrayContextANGLE)}, {"glBindVertexArrayOES", P(GL_BindVertexArrayOES)}, - {"glBindVertexArrayOESContextANGLE", P(GL_BindVertexArrayOESContextANGLE)}, {"glBindVertexBuffer", P(GL_BindVertexBuffer)}, - {"glBindVertexBufferContextANGLE", P(GL_BindVertexBufferContextANGLE)}, {"glBlendBarrier", P(GL_BlendBarrier)}, - {"glBlendBarrierContextANGLE", P(GL_BlendBarrierContextANGLE)}, {"glBlendBarrierKHR", P(GL_BlendBarrierKHR)}, - {"glBlendBarrierKHRContextANGLE", P(GL_BlendBarrierKHRContextANGLE)}, {"glBlendColor", P(GL_BlendColor)}, - {"glBlendColorContextANGLE", P(GL_BlendColorContextANGLE)}, {"glBlendEquation", P(GL_BlendEquation)}, - {"glBlendEquationContextANGLE", P(GL_BlendEquationContextANGLE)}, {"glBlendEquationSeparate", P(GL_BlendEquationSeparate)}, - {"glBlendEquationSeparateContextANGLE", P(GL_BlendEquationSeparateContextANGLE)}, {"glBlendEquationSeparatei", P(GL_BlendEquationSeparatei)}, - {"glBlendEquationSeparateiContextANGLE", P(GL_BlendEquationSeparateiContextANGLE)}, {"glBlendEquationSeparateiEXT", P(GL_BlendEquationSeparateiEXT)}, - {"glBlendEquationSeparateiEXTContextANGLE", P(GL_BlendEquationSeparateiEXTContextANGLE)}, {"glBlendEquationSeparateiOES", P(GL_BlendEquationSeparateiOES)}, - {"glBlendEquationSeparateiOESContextANGLE", P(GL_BlendEquationSeparateiOESContextANGLE)}, {"glBlendEquationi", P(GL_BlendEquationi)}, - {"glBlendEquationiContextANGLE", P(GL_BlendEquationiContextANGLE)}, {"glBlendEquationiEXT", P(GL_BlendEquationiEXT)}, - {"glBlendEquationiEXTContextANGLE", P(GL_BlendEquationiEXTContextANGLE)}, {"glBlendEquationiOES", P(GL_BlendEquationiOES)}, - {"glBlendEquationiOESContextANGLE", P(GL_BlendEquationiOESContextANGLE)}, {"glBlendFunc", P(GL_BlendFunc)}, - {"glBlendFuncContextANGLE", P(GL_BlendFuncContextANGLE)}, {"glBlendFuncSeparate", P(GL_BlendFuncSeparate)}, - {"glBlendFuncSeparateContextANGLE", P(GL_BlendFuncSeparateContextANGLE)}, {"glBlendFuncSeparatei", P(GL_BlendFuncSeparatei)}, - {"glBlendFuncSeparateiContextANGLE", P(GL_BlendFuncSeparateiContextANGLE)}, {"glBlendFuncSeparateiEXT", P(GL_BlendFuncSeparateiEXT)}, - {"glBlendFuncSeparateiEXTContextANGLE", P(GL_BlendFuncSeparateiEXTContextANGLE)}, {"glBlendFuncSeparateiOES", P(GL_BlendFuncSeparateiOES)}, - {"glBlendFuncSeparateiOESContextANGLE", P(GL_BlendFuncSeparateiOESContextANGLE)}, {"glBlendFunci", P(GL_BlendFunci)}, - {"glBlendFunciContextANGLE", P(GL_BlendFunciContextANGLE)}, {"glBlendFunciEXT", P(GL_BlendFunciEXT)}, - {"glBlendFunciEXTContextANGLE", P(GL_BlendFunciEXTContextANGLE)}, {"glBlendFunciOES", P(GL_BlendFunciOES)}, - {"glBlendFunciOESContextANGLE", P(GL_BlendFunciOESContextANGLE)}, {"glBlitFramebuffer", P(GL_BlitFramebuffer)}, {"glBlitFramebufferANGLE", P(GL_BlitFramebufferANGLE)}, - {"glBlitFramebufferANGLEContextANGLE", P(GL_BlitFramebufferANGLEContextANGLE)}, - {"glBlitFramebufferContextANGLE", P(GL_BlitFramebufferContextANGLE)}, {"glBlitFramebufferNV", P(GL_BlitFramebufferNV)}, - {"glBlitFramebufferNVContextANGLE", P(GL_BlitFramebufferNVContextANGLE)}, {"glBufferData", P(GL_BufferData)}, - {"glBufferDataContextANGLE", P(GL_BufferDataContextANGLE)}, {"glBufferStorageEXT", P(GL_BufferStorageEXT)}, - {"glBufferStorageEXTContextANGLE", P(GL_BufferStorageEXTContextANGLE)}, {"glBufferStorageExternalEXT", P(GL_BufferStorageExternalEXT)}, - {"glBufferStorageExternalEXTContextANGLE", P(GL_BufferStorageExternalEXTContextANGLE)}, {"glBufferStorageMemEXT", P(GL_BufferStorageMemEXT)}, - {"glBufferStorageMemEXTContextANGLE", P(GL_BufferStorageMemEXTContextANGLE)}, {"glBufferSubData", P(GL_BufferSubData)}, - {"glBufferSubDataContextANGLE", P(GL_BufferSubDataContextANGLE)}, {"glCheckFramebufferStatus", P(GL_CheckFramebufferStatus)}, - {"glCheckFramebufferStatusContextANGLE", P(GL_CheckFramebufferStatusContextANGLE)}, {"glCheckFramebufferStatusOES", P(GL_CheckFramebufferStatusOES)}, - {"glCheckFramebufferStatusOESContextANGLE", P(GL_CheckFramebufferStatusOESContextANGLE)}, {"glClear", P(GL_Clear)}, {"glClearBufferfi", P(GL_ClearBufferfi)}, - {"glClearBufferfiContextANGLE", P(GL_ClearBufferfiContextANGLE)}, {"glClearBufferfv", P(GL_ClearBufferfv)}, - {"glClearBufferfvContextANGLE", P(GL_ClearBufferfvContextANGLE)}, {"glClearBufferiv", P(GL_ClearBufferiv)}, - {"glClearBufferivContextANGLE", P(GL_ClearBufferivContextANGLE)}, {"glClearBufferuiv", P(GL_ClearBufferuiv)}, - {"glClearBufferuivContextANGLE", P(GL_ClearBufferuivContextANGLE)}, {"glClearColor", P(GL_ClearColor)}, - {"glClearColorContextANGLE", P(GL_ClearColorContextANGLE)}, {"glClearColorx", P(GL_ClearColorx)}, - {"glClearColorxContextANGLE", P(GL_ClearColorxContextANGLE)}, - {"glClearContextANGLE", P(GL_ClearContextANGLE)}, {"glClearDepthf", P(GL_ClearDepthf)}, - {"glClearDepthfContextANGLE", P(GL_ClearDepthfContextANGLE)}, {"glClearDepthx", P(GL_ClearDepthx)}, - {"glClearDepthxContextANGLE", P(GL_ClearDepthxContextANGLE)}, {"glClearStencil", P(GL_ClearStencil)}, - {"glClearStencilContextANGLE", P(GL_ClearStencilContextANGLE)}, {"glClientActiveTexture", P(GL_ClientActiveTexture)}, - {"glClientActiveTextureContextANGLE", P(GL_ClientActiveTextureContextANGLE)}, {"glClientWaitSync", P(GL_ClientWaitSync)}, - {"glClientWaitSyncContextANGLE", P(GL_ClientWaitSyncContextANGLE)}, {"glClipControlEXT", P(GL_ClipControlEXT)}, - {"glClipControlEXTContextANGLE", P(GL_ClipControlEXTContextANGLE)}, {"glClipPlanef", P(GL_ClipPlanef)}, - {"glClipPlanefContextANGLE", P(GL_ClipPlanefContextANGLE)}, {"glClipPlanex", P(GL_ClipPlanex)}, - {"glClipPlanexContextANGLE", P(GL_ClipPlanexContextANGLE)}, {"glColor4f", P(GL_Color4f)}, - {"glColor4fContextANGLE", P(GL_Color4fContextANGLE)}, {"glColor4ub", P(GL_Color4ub)}, - {"glColor4ubContextANGLE", P(GL_Color4ubContextANGLE)}, {"glColor4x", P(GL_Color4x)}, - {"glColor4xContextANGLE", P(GL_Color4xContextANGLE)}, {"glColorMask", P(GL_ColorMask)}, - {"glColorMaskContextANGLE", P(GL_ColorMaskContextANGLE)}, {"glColorMaski", P(GL_ColorMaski)}, - {"glColorMaskiContextANGLE", P(GL_ColorMaskiContextANGLE)}, {"glColorMaskiEXT", P(GL_ColorMaskiEXT)}, - {"glColorMaskiEXTContextANGLE", P(GL_ColorMaskiEXTContextANGLE)}, {"glColorMaskiOES", P(GL_ColorMaskiOES)}, - {"glColorMaskiOESContextANGLE", P(GL_ColorMaskiOESContextANGLE)}, {"glColorPointer", P(GL_ColorPointer)}, - {"glColorPointerContextANGLE", P(GL_ColorPointerContextANGLE)}, {"glCompileShader", P(GL_CompileShader)}, - {"glCompileShaderContextANGLE", P(GL_CompileShaderContextANGLE)}, {"glCompressedCopyTextureCHROMIUM", P(GL_CompressedCopyTextureCHROMIUM)}, - {"glCompressedCopyTextureCHROMIUMContextANGLE", - P(GL_CompressedCopyTextureCHROMIUMContextANGLE)}, {"glCompressedTexImage2D", P(GL_CompressedTexImage2D)}, - {"glCompressedTexImage2DContextANGLE", P(GL_CompressedTexImage2DContextANGLE)}, {"glCompressedTexImage2DRobustANGLE", P(GL_CompressedTexImage2DRobustANGLE)}, - {"glCompressedTexImage2DRobustANGLEContextANGLE", - P(GL_CompressedTexImage2DRobustANGLEContextANGLE)}, {"glCompressedTexImage3D", P(GL_CompressedTexImage3D)}, - {"glCompressedTexImage3DContextANGLE", P(GL_CompressedTexImage3DContextANGLE)}, {"glCompressedTexImage3DOES", P(GL_CompressedTexImage3DOES)}, - {"glCompressedTexImage3DOESContextANGLE", P(GL_CompressedTexImage3DOESContextANGLE)}, {"glCompressedTexImage3DRobustANGLE", P(GL_CompressedTexImage3DRobustANGLE)}, - {"glCompressedTexImage3DRobustANGLEContextANGLE", - P(GL_CompressedTexImage3DRobustANGLEContextANGLE)}, {"glCompressedTexSubImage2D", P(GL_CompressedTexSubImage2D)}, - {"glCompressedTexSubImage2DContextANGLE", P(GL_CompressedTexSubImage2DContextANGLE)}, {"glCompressedTexSubImage2DRobustANGLE", P(GL_CompressedTexSubImage2DRobustANGLE)}, - {"glCompressedTexSubImage2DRobustANGLEContextANGLE", - P(GL_CompressedTexSubImage2DRobustANGLEContextANGLE)}, {"glCompressedTexSubImage3D", P(GL_CompressedTexSubImage3D)}, - {"glCompressedTexSubImage3DContextANGLE", P(GL_CompressedTexSubImage3DContextANGLE)}, {"glCompressedTexSubImage3DOES", P(GL_CompressedTexSubImage3DOES)}, - {"glCompressedTexSubImage3DOESContextANGLE", P(GL_CompressedTexSubImage3DOESContextANGLE)}, {"glCompressedTexSubImage3DRobustANGLE", P(GL_CompressedTexSubImage3DRobustANGLE)}, - {"glCompressedTexSubImage3DRobustANGLEContextANGLE", - P(GL_CompressedTexSubImage3DRobustANGLEContextANGLE)}, {"glCopyBufferSubData", P(GL_CopyBufferSubData)}, - {"glCopyBufferSubDataContextANGLE", P(GL_CopyBufferSubDataContextANGLE)}, {"glCopyImageSubData", P(GL_CopyImageSubData)}, - {"glCopyImageSubDataContextANGLE", P(GL_CopyImageSubDataContextANGLE)}, {"glCopyImageSubDataEXT", P(GL_CopyImageSubDataEXT)}, - {"glCopyImageSubDataEXTContextANGLE", P(GL_CopyImageSubDataEXTContextANGLE)}, {"glCopyImageSubDataOES", P(GL_CopyImageSubDataOES)}, - {"glCopyImageSubDataOESContextANGLE", P(GL_CopyImageSubDataOESContextANGLE)}, {"glCopySubTexture3DANGLE", P(GL_CopySubTexture3DANGLE)}, - {"glCopySubTexture3DANGLEContextANGLE", P(GL_CopySubTexture3DANGLEContextANGLE)}, {"glCopySubTextureCHROMIUM", P(GL_CopySubTextureCHROMIUM)}, - {"glCopySubTextureCHROMIUMContextANGLE", P(GL_CopySubTextureCHROMIUMContextANGLE)}, {"glCopyTexImage2D", P(GL_CopyTexImage2D)}, - {"glCopyTexImage2DContextANGLE", P(GL_CopyTexImage2DContextANGLE)}, {"glCopyTexSubImage2D", P(GL_CopyTexSubImage2D)}, - {"glCopyTexSubImage2DContextANGLE", P(GL_CopyTexSubImage2DContextANGLE)}, {"glCopyTexSubImage3D", P(GL_CopyTexSubImage3D)}, - {"glCopyTexSubImage3DContextANGLE", P(GL_CopyTexSubImage3DContextANGLE)}, {"glCopyTexSubImage3DOES", P(GL_CopyTexSubImage3DOES)}, - {"glCopyTexSubImage3DOESContextANGLE", P(GL_CopyTexSubImage3DOESContextANGLE)}, {"glCopyTexture3DANGLE", P(GL_CopyTexture3DANGLE)}, - {"glCopyTexture3DANGLEContextANGLE", P(GL_CopyTexture3DANGLEContextANGLE)}, {"glCopyTextureCHROMIUM", P(GL_CopyTextureCHROMIUM)}, - {"glCopyTextureCHROMIUMContextANGLE", P(GL_CopyTextureCHROMIUMContextANGLE)}, {"glCoverageModulationCHROMIUM", P(GL_CoverageModulationCHROMIUM)}, - {"glCoverageModulationCHROMIUMContextANGLE", P(GL_CoverageModulationCHROMIUMContextANGLE)}, {"glCreateMemoryObjectsEXT", P(GL_CreateMemoryObjectsEXT)}, - {"glCreateMemoryObjectsEXTContextANGLE", P(GL_CreateMemoryObjectsEXTContextANGLE)}, {"glCreateProgram", P(GL_CreateProgram)}, - {"glCreateProgramContextANGLE", P(GL_CreateProgramContextANGLE)}, {"glCreateShader", P(GL_CreateShader)}, - {"glCreateShaderContextANGLE", P(GL_CreateShaderContextANGLE)}, {"glCreateShaderProgramv", P(GL_CreateShaderProgramv)}, - {"glCreateShaderProgramvContextANGLE", P(GL_CreateShaderProgramvContextANGLE)}, {"glCreateShaderProgramvEXT", P(GL_CreateShaderProgramvEXT)}, - {"glCreateShaderProgramvEXTContextANGLE", P(GL_CreateShaderProgramvEXTContextANGLE)}, {"glCullFace", P(GL_CullFace)}, - {"glCullFaceContextANGLE", P(GL_CullFaceContextANGLE)}, {"glCurrentPaletteMatrixOES", P(GL_CurrentPaletteMatrixOES)}, - {"glCurrentPaletteMatrixOESContextANGLE", P(GL_CurrentPaletteMatrixOESContextANGLE)}, {"glDebugMessageCallback", P(GL_DebugMessageCallback)}, - {"glDebugMessageCallbackContextANGLE", P(GL_DebugMessageCallbackContextANGLE)}, {"glDebugMessageCallbackKHR", P(GL_DebugMessageCallbackKHR)}, - {"glDebugMessageCallbackKHRContextANGLE", P(GL_DebugMessageCallbackKHRContextANGLE)}, {"glDebugMessageControl", P(GL_DebugMessageControl)}, - {"glDebugMessageControlContextANGLE", P(GL_DebugMessageControlContextANGLE)}, {"glDebugMessageControlKHR", P(GL_DebugMessageControlKHR)}, - {"glDebugMessageControlKHRContextANGLE", P(GL_DebugMessageControlKHRContextANGLE)}, {"glDebugMessageInsert", P(GL_DebugMessageInsert)}, - {"glDebugMessageInsertContextANGLE", P(GL_DebugMessageInsertContextANGLE)}, {"glDebugMessageInsertKHR", P(GL_DebugMessageInsertKHR)}, - {"glDebugMessageInsertKHRContextANGLE", P(GL_DebugMessageInsertKHRContextANGLE)}, {"glDeleteBuffers", P(GL_DeleteBuffers)}, - {"glDeleteBuffersContextANGLE", P(GL_DeleteBuffersContextANGLE)}, {"glDeleteFencesNV", P(GL_DeleteFencesNV)}, - {"glDeleteFencesNVContextANGLE", P(GL_DeleteFencesNVContextANGLE)}, {"glDeleteFramebuffers", P(GL_DeleteFramebuffers)}, - {"glDeleteFramebuffersContextANGLE", P(GL_DeleteFramebuffersContextANGLE)}, {"glDeleteFramebuffersOES", P(GL_DeleteFramebuffersOES)}, - {"glDeleteFramebuffersOESContextANGLE", P(GL_DeleteFramebuffersOESContextANGLE)}, {"glDeleteMemoryObjectsEXT", P(GL_DeleteMemoryObjectsEXT)}, - {"glDeleteMemoryObjectsEXTContextANGLE", P(GL_DeleteMemoryObjectsEXTContextANGLE)}, {"glDeleteProgram", P(GL_DeleteProgram)}, - {"glDeleteProgramContextANGLE", P(GL_DeleteProgramContextANGLE)}, {"glDeleteProgramPipelines", P(GL_DeleteProgramPipelines)}, - {"glDeleteProgramPipelinesContextANGLE", P(GL_DeleteProgramPipelinesContextANGLE)}, {"glDeleteProgramPipelinesEXT", P(GL_DeleteProgramPipelinesEXT)}, - {"glDeleteProgramPipelinesEXTContextANGLE", P(GL_DeleteProgramPipelinesEXTContextANGLE)}, {"glDeleteQueries", P(GL_DeleteQueries)}, - {"glDeleteQueriesContextANGLE", P(GL_DeleteQueriesContextANGLE)}, {"glDeleteQueriesEXT", P(GL_DeleteQueriesEXT)}, - {"glDeleteQueriesEXTContextANGLE", P(GL_DeleteQueriesEXTContextANGLE)}, {"glDeleteRenderbuffers", P(GL_DeleteRenderbuffers)}, - {"glDeleteRenderbuffersContextANGLE", P(GL_DeleteRenderbuffersContextANGLE)}, {"glDeleteRenderbuffersOES", P(GL_DeleteRenderbuffersOES)}, - {"glDeleteRenderbuffersOESContextANGLE", P(GL_DeleteRenderbuffersOESContextANGLE)}, {"glDeleteSamplers", P(GL_DeleteSamplers)}, - {"glDeleteSamplersContextANGLE", P(GL_DeleteSamplersContextANGLE)}, {"glDeleteSemaphoresEXT", P(GL_DeleteSemaphoresEXT)}, - {"glDeleteSemaphoresEXTContextANGLE", P(GL_DeleteSemaphoresEXTContextANGLE)}, {"glDeleteShader", P(GL_DeleteShader)}, - {"glDeleteShaderContextANGLE", P(GL_DeleteShaderContextANGLE)}, {"glDeleteSync", P(GL_DeleteSync)}, - {"glDeleteSyncContextANGLE", P(GL_DeleteSyncContextANGLE)}, {"glDeleteTextures", P(GL_DeleteTextures)}, - {"glDeleteTexturesContextANGLE", P(GL_DeleteTexturesContextANGLE)}, {"glDeleteTransformFeedbacks", P(GL_DeleteTransformFeedbacks)}, - {"glDeleteTransformFeedbacksContextANGLE", P(GL_DeleteTransformFeedbacksContextANGLE)}, {"glDeleteVertexArrays", P(GL_DeleteVertexArrays)}, - {"glDeleteVertexArraysContextANGLE", P(GL_DeleteVertexArraysContextANGLE)}, {"glDeleteVertexArraysOES", P(GL_DeleteVertexArraysOES)}, - {"glDeleteVertexArraysOESContextANGLE", P(GL_DeleteVertexArraysOESContextANGLE)}, {"glDepthFunc", P(GL_DepthFunc)}, - {"glDepthFuncContextANGLE", P(GL_DepthFuncContextANGLE)}, {"glDepthMask", P(GL_DepthMask)}, - {"glDepthMaskContextANGLE", P(GL_DepthMaskContextANGLE)}, {"glDepthRangef", P(GL_DepthRangef)}, - {"glDepthRangefContextANGLE", P(GL_DepthRangefContextANGLE)}, {"glDepthRangex", P(GL_DepthRangex)}, - {"glDepthRangexContextANGLE", P(GL_DepthRangexContextANGLE)}, {"glDetachShader", P(GL_DetachShader)}, - {"glDetachShaderContextANGLE", P(GL_DetachShaderContextANGLE)}, {"glDisable", P(GL_Disable)}, {"glDisableClientState", P(GL_DisableClientState)}, - {"glDisableClientStateContextANGLE", P(GL_DisableClientStateContextANGLE)}, - {"glDisableContextANGLE", P(GL_DisableContextANGLE)}, {"glDisableExtensionANGLE", P(GL_DisableExtensionANGLE)}, - {"glDisableExtensionANGLEContextANGLE", P(GL_DisableExtensionANGLEContextANGLE)}, {"glDisableVertexAttribArray", P(GL_DisableVertexAttribArray)}, - {"glDisableVertexAttribArrayContextANGLE", P(GL_DisableVertexAttribArrayContextANGLE)}, {"glDisablei", P(GL_Disablei)}, - {"glDisableiContextANGLE", P(GL_DisableiContextANGLE)}, {"glDisableiEXT", P(GL_DisableiEXT)}, - {"glDisableiEXTContextANGLE", P(GL_DisableiEXTContextANGLE)}, {"glDisableiOES", P(GL_DisableiOES)}, - {"glDisableiOESContextANGLE", P(GL_DisableiOESContextANGLE)}, {"glDiscardFramebufferEXT", P(GL_DiscardFramebufferEXT)}, - {"glDiscardFramebufferEXTContextANGLE", P(GL_DiscardFramebufferEXTContextANGLE)}, {"glDispatchCompute", P(GL_DispatchCompute)}, - {"glDispatchComputeContextANGLE", P(GL_DispatchComputeContextANGLE)}, {"glDispatchComputeIndirect", P(GL_DispatchComputeIndirect)}, - {"glDispatchComputeIndirectContextANGLE", P(GL_DispatchComputeIndirectContextANGLE)}, {"glDrawArrays", P(GL_DrawArrays)}, - {"glDrawArraysContextANGLE", P(GL_DrawArraysContextANGLE)}, {"glDrawArraysIndirect", P(GL_DrawArraysIndirect)}, - {"glDrawArraysIndirectContextANGLE", P(GL_DrawArraysIndirectContextANGLE)}, {"glDrawArraysInstanced", P(GL_DrawArraysInstanced)}, {"glDrawArraysInstancedANGLE", P(GL_DrawArraysInstancedANGLE)}, - {"glDrawArraysInstancedANGLEContextANGLE", P(GL_DrawArraysInstancedANGLEContextANGLE)}, {"glDrawArraysInstancedBaseInstanceANGLE", P(GL_DrawArraysInstancedBaseInstanceANGLE)}, - {"glDrawArraysInstancedBaseInstanceANGLEContextANGLE", - P(GL_DrawArraysInstancedBaseInstanceANGLEContextANGLE)}, - {"glDrawArraysInstancedContextANGLE", P(GL_DrawArraysInstancedContextANGLE)}, {"glDrawArraysInstancedEXT", P(GL_DrawArraysInstancedEXT)}, - {"glDrawArraysInstancedEXTContextANGLE", P(GL_DrawArraysInstancedEXTContextANGLE)}, {"glDrawBuffers", P(GL_DrawBuffers)}, - {"glDrawBuffersContextANGLE", P(GL_DrawBuffersContextANGLE)}, {"glDrawBuffersEXT", P(GL_DrawBuffersEXT)}, - {"glDrawBuffersEXTContextANGLE", P(GL_DrawBuffersEXTContextANGLE)}, {"glDrawElements", P(GL_DrawElements)}, {"glDrawElementsBaseVertex", P(GL_DrawElementsBaseVertex)}, - {"glDrawElementsBaseVertexContextANGLE", P(GL_DrawElementsBaseVertexContextANGLE)}, {"glDrawElementsBaseVertexEXT", P(GL_DrawElementsBaseVertexEXT)}, - {"glDrawElementsBaseVertexEXTContextANGLE", P(GL_DrawElementsBaseVertexEXTContextANGLE)}, {"glDrawElementsBaseVertexOES", P(GL_DrawElementsBaseVertexOES)}, - {"glDrawElementsBaseVertexOESContextANGLE", P(GL_DrawElementsBaseVertexOESContextANGLE)}, - {"glDrawElementsContextANGLE", P(GL_DrawElementsContextANGLE)}, {"glDrawElementsIndirect", P(GL_DrawElementsIndirect)}, - {"glDrawElementsIndirectContextANGLE", P(GL_DrawElementsIndirectContextANGLE)}, {"glDrawElementsInstanced", P(GL_DrawElementsInstanced)}, {"glDrawElementsInstancedANGLE", P(GL_DrawElementsInstancedANGLE)}, - {"glDrawElementsInstancedANGLEContextANGLE", P(GL_DrawElementsInstancedANGLEContextANGLE)}, {"glDrawElementsInstancedBaseVertex", P(GL_DrawElementsInstancedBaseVertex)}, {"glDrawElementsInstancedBaseVertexBaseInstanceANGLE", P(GL_DrawElementsInstancedBaseVertexBaseInstanceANGLE)}, - {"glDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE", - P(GL_DrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE)}, - {"glDrawElementsInstancedBaseVertexContextANGLE", - P(GL_DrawElementsInstancedBaseVertexContextANGLE)}, {"glDrawElementsInstancedBaseVertexEXT", P(GL_DrawElementsInstancedBaseVertexEXT)}, - {"glDrawElementsInstancedBaseVertexEXTContextANGLE", - P(GL_DrawElementsInstancedBaseVertexEXTContextANGLE)}, {"glDrawElementsInstancedBaseVertexOES", P(GL_DrawElementsInstancedBaseVertexOES)}, - {"glDrawElementsInstancedBaseVertexOESContextANGLE", - P(GL_DrawElementsInstancedBaseVertexOESContextANGLE)}, - {"glDrawElementsInstancedContextANGLE", P(GL_DrawElementsInstancedContextANGLE)}, {"glDrawElementsInstancedEXT", P(GL_DrawElementsInstancedEXT)}, - {"glDrawElementsInstancedEXTContextANGLE", P(GL_DrawElementsInstancedEXTContextANGLE)}, {"glDrawRangeElements", P(GL_DrawRangeElements)}, {"glDrawRangeElementsBaseVertex", P(GL_DrawRangeElementsBaseVertex)}, - {"glDrawRangeElementsBaseVertexContextANGLE", P(GL_DrawRangeElementsBaseVertexContextANGLE)}, {"glDrawRangeElementsBaseVertexEXT", P(GL_DrawRangeElementsBaseVertexEXT)}, - {"glDrawRangeElementsBaseVertexEXTContextANGLE", - P(GL_DrawRangeElementsBaseVertexEXTContextANGLE)}, {"glDrawRangeElementsBaseVertexOES", P(GL_DrawRangeElementsBaseVertexOES)}, - {"glDrawRangeElementsBaseVertexOESContextANGLE", - P(GL_DrawRangeElementsBaseVertexOESContextANGLE)}, - {"glDrawRangeElementsContextANGLE", P(GL_DrawRangeElementsContextANGLE)}, {"glDrawTexfOES", P(GL_DrawTexfOES)}, - {"glDrawTexfOESContextANGLE", P(GL_DrawTexfOESContextANGLE)}, {"glDrawTexfvOES", P(GL_DrawTexfvOES)}, - {"glDrawTexfvOESContextANGLE", P(GL_DrawTexfvOESContextANGLE)}, {"glDrawTexiOES", P(GL_DrawTexiOES)}, - {"glDrawTexiOESContextANGLE", P(GL_DrawTexiOESContextANGLE)}, {"glDrawTexivOES", P(GL_DrawTexivOES)}, - {"glDrawTexivOESContextANGLE", P(GL_DrawTexivOESContextANGLE)}, {"glDrawTexsOES", P(GL_DrawTexsOES)}, - {"glDrawTexsOESContextANGLE", P(GL_DrawTexsOESContextANGLE)}, {"glDrawTexsvOES", P(GL_DrawTexsvOES)}, - {"glDrawTexsvOESContextANGLE", P(GL_DrawTexsvOESContextANGLE)}, {"glDrawTexxOES", P(GL_DrawTexxOES)}, - {"glDrawTexxOESContextANGLE", P(GL_DrawTexxOESContextANGLE)}, {"glDrawTexxvOES", P(GL_DrawTexxvOES)}, - {"glDrawTexxvOESContextANGLE", P(GL_DrawTexxvOESContextANGLE)}, {"glEGLImageTargetRenderbufferStorageOES", P(GL_EGLImageTargetRenderbufferStorageOES)}, - {"glEGLImageTargetRenderbufferStorageOESContextANGLE", - P(GL_EGLImageTargetRenderbufferStorageOESContextANGLE)}, + {"glEGLImageTargetTexStorageEXT", P(GL_EGLImageTargetTexStorageEXT)}, {"glEGLImageTargetTexture2DOES", P(GL_EGLImageTargetTexture2DOES)}, - {"glEGLImageTargetTexture2DOESContextANGLE", P(GL_EGLImageTargetTexture2DOESContextANGLE)}, + {"glEGLImageTargetTextureStorageEXT", P(GL_EGLImageTargetTextureStorageEXT)}, {"glEnable", P(GL_Enable)}, {"glEnableClientState", P(GL_EnableClientState)}, - {"glEnableClientStateContextANGLE", P(GL_EnableClientStateContextANGLE)}, - {"glEnableContextANGLE", P(GL_EnableContextANGLE)}, {"glEnableVertexAttribArray", P(GL_EnableVertexAttribArray)}, - {"glEnableVertexAttribArrayContextANGLE", P(GL_EnableVertexAttribArrayContextANGLE)}, {"glEnablei", P(GL_Enablei)}, - {"glEnableiContextANGLE", P(GL_EnableiContextANGLE)}, {"glEnableiEXT", P(GL_EnableiEXT)}, - {"glEnableiEXTContextANGLE", P(GL_EnableiEXTContextANGLE)}, {"glEnableiOES", P(GL_EnableiOES)}, - {"glEnableiOESContextANGLE", P(GL_EnableiOESContextANGLE)}, {"glEndQuery", P(GL_EndQuery)}, - {"glEndQueryContextANGLE", P(GL_EndQueryContextANGLE)}, {"glEndQueryEXT", P(GL_EndQueryEXT)}, - {"glEndQueryEXTContextANGLE", P(GL_EndQueryEXTContextANGLE)}, {"glEndTransformFeedback", P(GL_EndTransformFeedback)}, - {"glEndTransformFeedbackContextANGLE", P(GL_EndTransformFeedbackContextANGLE)}, {"glFenceSync", P(GL_FenceSync)}, - {"glFenceSyncContextANGLE", P(GL_FenceSyncContextANGLE)}, {"glFinish", P(GL_Finish)}, - {"glFinishContextANGLE", P(GL_FinishContextANGLE)}, {"glFinishFenceNV", P(GL_FinishFenceNV)}, - {"glFinishFenceNVContextANGLE", P(GL_FinishFenceNVContextANGLE)}, {"glFlush", P(GL_Flush)}, - {"glFlushContextANGLE", P(GL_FlushContextANGLE)}, {"glFlushMappedBufferRange", P(GL_FlushMappedBufferRange)}, - {"glFlushMappedBufferRangeContextANGLE", P(GL_FlushMappedBufferRangeContextANGLE)}, {"glFlushMappedBufferRangeEXT", P(GL_FlushMappedBufferRangeEXT)}, - {"glFlushMappedBufferRangeEXTContextANGLE", P(GL_FlushMappedBufferRangeEXTContextANGLE)}, {"glFogf", P(GL_Fogf)}, - {"glFogfContextANGLE", P(GL_FogfContextANGLE)}, {"glFogfv", P(GL_Fogfv)}, - {"glFogfvContextANGLE", P(GL_FogfvContextANGLE)}, {"glFogx", P(GL_Fogx)}, - {"glFogxContextANGLE", P(GL_FogxContextANGLE)}, {"glFogxv", P(GL_Fogxv)}, - {"glFogxvContextANGLE", P(GL_FogxvContextANGLE)}, {"glFramebufferFetchBarrierEXT", P(GL_FramebufferFetchBarrierEXT)}, - {"glFramebufferFetchBarrierEXTContextANGLE", P(GL_FramebufferFetchBarrierEXTContextANGLE)}, {"glFramebufferParameteri", P(GL_FramebufferParameteri)}, - {"glFramebufferParameteriContextANGLE", P(GL_FramebufferParameteriContextANGLE)}, {"glFramebufferRenderbuffer", P(GL_FramebufferRenderbuffer)}, - {"glFramebufferRenderbufferContextANGLE", P(GL_FramebufferRenderbufferContextANGLE)}, {"glFramebufferRenderbufferOES", P(GL_FramebufferRenderbufferOES)}, - {"glFramebufferRenderbufferOESContextANGLE", P(GL_FramebufferRenderbufferOESContextANGLE)}, {"glFramebufferTexture", P(GL_FramebufferTexture)}, {"glFramebufferTexture2D", P(GL_FramebufferTexture2D)}, - {"glFramebufferTexture2DContextANGLE", P(GL_FramebufferTexture2DContextANGLE)}, {"glFramebufferTexture2DMultisampleEXT", P(GL_FramebufferTexture2DMultisampleEXT)}, - {"glFramebufferTexture2DMultisampleEXTContextANGLE", - P(GL_FramebufferTexture2DMultisampleEXTContextANGLE)}, {"glFramebufferTexture2DOES", P(GL_FramebufferTexture2DOES)}, - {"glFramebufferTexture2DOESContextANGLE", P(GL_FramebufferTexture2DOESContextANGLE)}, {"glFramebufferTexture3DOES", P(GL_FramebufferTexture3DOES)}, - {"glFramebufferTexture3DOESContextANGLE", P(GL_FramebufferTexture3DOESContextANGLE)}, - {"glFramebufferTextureContextANGLE", P(GL_FramebufferTextureContextANGLE)}, {"glFramebufferTextureEXT", P(GL_FramebufferTextureEXT)}, - {"glFramebufferTextureEXTContextANGLE", P(GL_FramebufferTextureEXTContextANGLE)}, {"glFramebufferTextureLayer", P(GL_FramebufferTextureLayer)}, - {"glFramebufferTextureLayerContextANGLE", P(GL_FramebufferTextureLayerContextANGLE)}, {"glFramebufferTextureMultiviewOVR", P(GL_FramebufferTextureMultiviewOVR)}, - {"glFramebufferTextureMultiviewOVRContextANGLE", - P(GL_FramebufferTextureMultiviewOVRContextANGLE)}, + {"glFramebufferTextureOES", P(GL_FramebufferTextureOES)}, {"glFrontFace", P(GL_FrontFace)}, - {"glFrontFaceContextANGLE", P(GL_FrontFaceContextANGLE)}, {"glFrustumf", P(GL_Frustumf)}, - {"glFrustumfContextANGLE", P(GL_FrustumfContextANGLE)}, {"glFrustumx", P(GL_Frustumx)}, - {"glFrustumxContextANGLE", P(GL_FrustumxContextANGLE)}, {"glGenBuffers", P(GL_GenBuffers)}, - {"glGenBuffersContextANGLE", P(GL_GenBuffersContextANGLE)}, {"glGenFencesNV", P(GL_GenFencesNV)}, - {"glGenFencesNVContextANGLE", P(GL_GenFencesNVContextANGLE)}, {"glGenFramebuffers", P(GL_GenFramebuffers)}, - {"glGenFramebuffersContextANGLE", P(GL_GenFramebuffersContextANGLE)}, {"glGenFramebuffersOES", P(GL_GenFramebuffersOES)}, - {"glGenFramebuffersOESContextANGLE", P(GL_GenFramebuffersOESContextANGLE)}, {"glGenProgramPipelines", P(GL_GenProgramPipelines)}, - {"glGenProgramPipelinesContextANGLE", P(GL_GenProgramPipelinesContextANGLE)}, {"glGenProgramPipelinesEXT", P(GL_GenProgramPipelinesEXT)}, - {"glGenProgramPipelinesEXTContextANGLE", P(GL_GenProgramPipelinesEXTContextANGLE)}, {"glGenQueries", P(GL_GenQueries)}, - {"glGenQueriesContextANGLE", P(GL_GenQueriesContextANGLE)}, {"glGenQueriesEXT", P(GL_GenQueriesEXT)}, - {"glGenQueriesEXTContextANGLE", P(GL_GenQueriesEXTContextANGLE)}, {"glGenRenderbuffers", P(GL_GenRenderbuffers)}, - {"glGenRenderbuffersContextANGLE", P(GL_GenRenderbuffersContextANGLE)}, {"glGenRenderbuffersOES", P(GL_GenRenderbuffersOES)}, - {"glGenRenderbuffersOESContextANGLE", P(GL_GenRenderbuffersOESContextANGLE)}, {"glGenSamplers", P(GL_GenSamplers)}, - {"glGenSamplersContextANGLE", P(GL_GenSamplersContextANGLE)}, {"glGenSemaphoresEXT", P(GL_GenSemaphoresEXT)}, - {"glGenSemaphoresEXTContextANGLE", P(GL_GenSemaphoresEXTContextANGLE)}, {"glGenTextures", P(GL_GenTextures)}, - {"glGenTexturesContextANGLE", P(GL_GenTexturesContextANGLE)}, {"glGenTransformFeedbacks", P(GL_GenTransformFeedbacks)}, - {"glGenTransformFeedbacksContextANGLE", P(GL_GenTransformFeedbacksContextANGLE)}, {"glGenVertexArrays", P(GL_GenVertexArrays)}, - {"glGenVertexArraysContextANGLE", P(GL_GenVertexArraysContextANGLE)}, {"glGenVertexArraysOES", P(GL_GenVertexArraysOES)}, - {"glGenVertexArraysOESContextANGLE", P(GL_GenVertexArraysOESContextANGLE)}, {"glGenerateMipmap", P(GL_GenerateMipmap)}, - {"glGenerateMipmapContextANGLE", P(GL_GenerateMipmapContextANGLE)}, {"glGenerateMipmapOES", P(GL_GenerateMipmapOES)}, - {"glGenerateMipmapOESContextANGLE", P(GL_GenerateMipmapOESContextANGLE)}, {"glGetActiveAttrib", P(GL_GetActiveAttrib)}, - {"glGetActiveAttribContextANGLE", P(GL_GetActiveAttribContextANGLE)}, {"glGetActiveUniform", P(GL_GetActiveUniform)}, {"glGetActiveUniformBlockName", P(GL_GetActiveUniformBlockName)}, - {"glGetActiveUniformBlockNameContextANGLE", P(GL_GetActiveUniformBlockNameContextANGLE)}, {"glGetActiveUniformBlockiv", P(GL_GetActiveUniformBlockiv)}, - {"glGetActiveUniformBlockivContextANGLE", P(GL_GetActiveUniformBlockivContextANGLE)}, {"glGetActiveUniformBlockivRobustANGLE", P(GL_GetActiveUniformBlockivRobustANGLE)}, - {"glGetActiveUniformBlockivRobustANGLEContextANGLE", - P(GL_GetActiveUniformBlockivRobustANGLEContextANGLE)}, - {"glGetActiveUniformContextANGLE", P(GL_GetActiveUniformContextANGLE)}, {"glGetActiveUniformsiv", P(GL_GetActiveUniformsiv)}, - {"glGetActiveUniformsivContextANGLE", P(GL_GetActiveUniformsivContextANGLE)}, {"glGetAttachedShaders", P(GL_GetAttachedShaders)}, - {"glGetAttachedShadersContextANGLE", P(GL_GetAttachedShadersContextANGLE)}, {"glGetAttribLocation", P(GL_GetAttribLocation)}, - {"glGetAttribLocationContextANGLE", P(GL_GetAttribLocationContextANGLE)}, {"glGetBooleani_v", P(GL_GetBooleani_v)}, - {"glGetBooleani_vContextANGLE", P(GL_GetBooleani_vContextANGLE)}, {"glGetBooleani_vRobustANGLE", P(GL_GetBooleani_vRobustANGLE)}, - {"glGetBooleani_vRobustANGLEContextANGLE", P(GL_GetBooleani_vRobustANGLEContextANGLE)}, {"glGetBooleanv", P(GL_GetBooleanv)}, - {"glGetBooleanvContextANGLE", P(GL_GetBooleanvContextANGLE)}, {"glGetBooleanvRobustANGLE", P(GL_GetBooleanvRobustANGLE)}, - {"glGetBooleanvRobustANGLEContextANGLE", P(GL_GetBooleanvRobustANGLEContextANGLE)}, {"glGetBufferParameteri64v", P(GL_GetBufferParameteri64v)}, - {"glGetBufferParameteri64vContextANGLE", P(GL_GetBufferParameteri64vContextANGLE)}, {"glGetBufferParameteri64vRobustANGLE", P(GL_GetBufferParameteri64vRobustANGLE)}, - {"glGetBufferParameteri64vRobustANGLEContextANGLE", - P(GL_GetBufferParameteri64vRobustANGLEContextANGLE)}, {"glGetBufferParameteriv", P(GL_GetBufferParameteriv)}, - {"glGetBufferParameterivContextANGLE", P(GL_GetBufferParameterivContextANGLE)}, {"glGetBufferParameterivRobustANGLE", P(GL_GetBufferParameterivRobustANGLE)}, - {"glGetBufferParameterivRobustANGLEContextANGLE", - P(GL_GetBufferParameterivRobustANGLEContextANGLE)}, {"glGetBufferPointerv", P(GL_GetBufferPointerv)}, - {"glGetBufferPointervContextANGLE", P(GL_GetBufferPointervContextANGLE)}, {"glGetBufferPointervOES", P(GL_GetBufferPointervOES)}, - {"glGetBufferPointervOESContextANGLE", P(GL_GetBufferPointervOESContextANGLE)}, {"glGetBufferPointervRobustANGLE", P(GL_GetBufferPointervRobustANGLE)}, - {"glGetBufferPointervRobustANGLEContextANGLE", P(GL_GetBufferPointervRobustANGLEContextANGLE)}, {"glGetClipPlanef", P(GL_GetClipPlanef)}, - {"glGetClipPlanefContextANGLE", P(GL_GetClipPlanefContextANGLE)}, {"glGetClipPlanex", P(GL_GetClipPlanex)}, - {"glGetClipPlanexContextANGLE", P(GL_GetClipPlanexContextANGLE)}, + {"glGetCompressedTexImageANGLE", P(GL_GetCompressedTexImageANGLE)}, {"glGetDebugMessageLog", P(GL_GetDebugMessageLog)}, - {"glGetDebugMessageLogContextANGLE", P(GL_GetDebugMessageLogContextANGLE)}, {"glGetDebugMessageLogKHR", P(GL_GetDebugMessageLogKHR)}, - {"glGetDebugMessageLogKHRContextANGLE", P(GL_GetDebugMessageLogKHRContextANGLE)}, {"glGetError", P(GL_GetError)}, - {"glGetErrorContextANGLE", P(GL_GetErrorContextANGLE)}, {"glGetFenceivNV", P(GL_GetFenceivNV)}, - {"glGetFenceivNVContextANGLE", P(GL_GetFenceivNVContextANGLE)}, {"glGetFixedv", P(GL_GetFixedv)}, - {"glGetFixedvContextANGLE", P(GL_GetFixedvContextANGLE)}, {"glGetFloatv", P(GL_GetFloatv)}, - {"glGetFloatvContextANGLE", P(GL_GetFloatvContextANGLE)}, {"glGetFloatvRobustANGLE", P(GL_GetFloatvRobustANGLE)}, - {"glGetFloatvRobustANGLEContextANGLE", P(GL_GetFloatvRobustANGLEContextANGLE)}, {"glGetFragDataIndexEXT", P(GL_GetFragDataIndexEXT)}, - {"glGetFragDataIndexEXTContextANGLE", P(GL_GetFragDataIndexEXTContextANGLE)}, {"glGetFragDataLocation", P(GL_GetFragDataLocation)}, - {"glGetFragDataLocationContextANGLE", P(GL_GetFragDataLocationContextANGLE)}, {"glGetFramebufferAttachmentParameteriv", P(GL_GetFramebufferAttachmentParameteriv)}, - {"glGetFramebufferAttachmentParameterivContextANGLE", - P(GL_GetFramebufferAttachmentParameterivContextANGLE)}, {"glGetFramebufferAttachmentParameterivOES", P(GL_GetFramebufferAttachmentParameterivOES)}, - {"glGetFramebufferAttachmentParameterivOESContextANGLE", - P(GL_GetFramebufferAttachmentParameterivOESContextANGLE)}, {"glGetFramebufferAttachmentParameterivRobustANGLE", P(GL_GetFramebufferAttachmentParameterivRobustANGLE)}, - {"glGetFramebufferAttachmentParameterivRobustANGLEContextANGLE", - P(GL_GetFramebufferAttachmentParameterivRobustANGLEContextANGLE)}, {"glGetFramebufferParameteriv", P(GL_GetFramebufferParameteriv)}, - {"glGetFramebufferParameterivContextANGLE", P(GL_GetFramebufferParameterivContextANGLE)}, {"glGetFramebufferParameterivRobustANGLE", P(GL_GetFramebufferParameterivRobustANGLE)}, - {"glGetFramebufferParameterivRobustANGLEContextANGLE", - P(GL_GetFramebufferParameterivRobustANGLEContextANGLE)}, {"glGetGraphicsResetStatus", P(GL_GetGraphicsResetStatus)}, - {"glGetGraphicsResetStatusContextANGLE", P(GL_GetGraphicsResetStatusContextANGLE)}, {"glGetGraphicsResetStatusEXT", P(GL_GetGraphicsResetStatusEXT)}, - {"glGetGraphicsResetStatusEXTContextANGLE", P(GL_GetGraphicsResetStatusEXTContextANGLE)}, {"glGetInteger64i_v", P(GL_GetInteger64i_v)}, - {"glGetInteger64i_vContextANGLE", P(GL_GetInteger64i_vContextANGLE)}, {"glGetInteger64i_vRobustANGLE", P(GL_GetInteger64i_vRobustANGLE)}, - {"glGetInteger64i_vRobustANGLEContextANGLE", P(GL_GetInteger64i_vRobustANGLEContextANGLE)}, {"glGetInteger64v", P(GL_GetInteger64v)}, - {"glGetInteger64vContextANGLE", P(GL_GetInteger64vContextANGLE)}, {"glGetInteger64vEXT", P(GL_GetInteger64vEXT)}, - {"glGetInteger64vEXTContextANGLE", P(GL_GetInteger64vEXTContextANGLE)}, {"glGetInteger64vRobustANGLE", P(GL_GetInteger64vRobustANGLE)}, - {"glGetInteger64vRobustANGLEContextANGLE", P(GL_GetInteger64vRobustANGLEContextANGLE)}, {"glGetIntegeri_v", P(GL_GetIntegeri_v)}, - {"glGetIntegeri_vContextANGLE", P(GL_GetIntegeri_vContextANGLE)}, {"glGetIntegeri_vRobustANGLE", P(GL_GetIntegeri_vRobustANGLE)}, - {"glGetIntegeri_vRobustANGLEContextANGLE", P(GL_GetIntegeri_vRobustANGLEContextANGLE)}, {"glGetIntegerv", P(GL_GetIntegerv)}, - {"glGetIntegervContextANGLE", P(GL_GetIntegervContextANGLE)}, {"glGetIntegervRobustANGLE", P(GL_GetIntegervRobustANGLE)}, - {"glGetIntegervRobustANGLEContextANGLE", P(GL_GetIntegervRobustANGLEContextANGLE)}, {"glGetInternalformativ", P(GL_GetInternalformativ)}, - {"glGetInternalformativContextANGLE", P(GL_GetInternalformativContextANGLE)}, {"glGetInternalformativRobustANGLE", P(GL_GetInternalformativRobustANGLE)}, - {"glGetInternalformativRobustANGLEContextANGLE", - P(GL_GetInternalformativRobustANGLEContextANGLE)}, {"glGetLightfv", P(GL_GetLightfv)}, - {"glGetLightfvContextANGLE", P(GL_GetLightfvContextANGLE)}, {"glGetLightxv", P(GL_GetLightxv)}, - {"glGetLightxvContextANGLE", P(GL_GetLightxvContextANGLE)}, {"glGetMaterialfv", P(GL_GetMaterialfv)}, - {"glGetMaterialfvContextANGLE", P(GL_GetMaterialfvContextANGLE)}, {"glGetMaterialxv", P(GL_GetMaterialxv)}, - {"glGetMaterialxvContextANGLE", P(GL_GetMaterialxvContextANGLE)}, {"glGetMemoryObjectParameterivEXT", P(GL_GetMemoryObjectParameterivEXT)}, - {"glGetMemoryObjectParameterivEXTContextANGLE", - P(GL_GetMemoryObjectParameterivEXTContextANGLE)}, {"glGetMultisamplefv", P(GL_GetMultisamplefv)}, {"glGetMultisamplefvANGLE", P(GL_GetMultisamplefvANGLE)}, - {"glGetMultisamplefvANGLEContextANGLE", P(GL_GetMultisamplefvANGLEContextANGLE)}, - {"glGetMultisamplefvContextANGLE", P(GL_GetMultisamplefvContextANGLE)}, {"glGetMultisamplefvRobustANGLE", P(GL_GetMultisamplefvRobustANGLE)}, - {"glGetMultisamplefvRobustANGLEContextANGLE", P(GL_GetMultisamplefvRobustANGLEContextANGLE)}, {"glGetObjectLabel", P(GL_GetObjectLabel)}, - {"glGetObjectLabelContextANGLE", P(GL_GetObjectLabelContextANGLE)}, {"glGetObjectLabelEXT", P(GL_GetObjectLabelEXT)}, - {"glGetObjectLabelEXTContextANGLE", P(GL_GetObjectLabelEXTContextANGLE)}, {"glGetObjectLabelKHR", P(GL_GetObjectLabelKHR)}, - {"glGetObjectLabelKHRContextANGLE", P(GL_GetObjectLabelKHRContextANGLE)}, {"glGetObjectPtrLabel", P(GL_GetObjectPtrLabel)}, - {"glGetObjectPtrLabelContextANGLE", P(GL_GetObjectPtrLabelContextANGLE)}, {"glGetObjectPtrLabelKHR", P(GL_GetObjectPtrLabelKHR)}, - {"glGetObjectPtrLabelKHRContextANGLE", P(GL_GetObjectPtrLabelKHRContextANGLE)}, {"glGetPointerv", P(GL_GetPointerv)}, - {"glGetPointervContextANGLE", P(GL_GetPointervContextANGLE)}, {"glGetPointervKHR", P(GL_GetPointervKHR)}, - {"glGetPointervKHRContextANGLE", P(GL_GetPointervKHRContextANGLE)}, {"glGetPointervRobustANGLERobustANGLE", P(GL_GetPointervRobustANGLERobustANGLE)}, - {"glGetPointervRobustANGLERobustANGLEContextANGLE", - P(GL_GetPointervRobustANGLERobustANGLEContextANGLE)}, {"glGetProgramBinary", P(GL_GetProgramBinary)}, - {"glGetProgramBinaryContextANGLE", P(GL_GetProgramBinaryContextANGLE)}, {"glGetProgramBinaryOES", P(GL_GetProgramBinaryOES)}, - {"glGetProgramBinaryOESContextANGLE", P(GL_GetProgramBinaryOESContextANGLE)}, {"glGetProgramInfoLog", P(GL_GetProgramInfoLog)}, - {"glGetProgramInfoLogContextANGLE", P(GL_GetProgramInfoLogContextANGLE)}, {"glGetProgramInterfaceiv", P(GL_GetProgramInterfaceiv)}, - {"glGetProgramInterfaceivContextANGLE", P(GL_GetProgramInterfaceivContextANGLE)}, {"glGetProgramInterfaceivRobustANGLE", P(GL_GetProgramInterfaceivRobustANGLE)}, - {"glGetProgramInterfaceivRobustANGLEContextANGLE", - P(GL_GetProgramInterfaceivRobustANGLEContextANGLE)}, {"glGetProgramPipelineInfoLog", P(GL_GetProgramPipelineInfoLog)}, - {"glGetProgramPipelineInfoLogContextANGLE", P(GL_GetProgramPipelineInfoLogContextANGLE)}, {"glGetProgramPipelineInfoLogEXT", P(GL_GetProgramPipelineInfoLogEXT)}, - {"glGetProgramPipelineInfoLogEXTContextANGLE", P(GL_GetProgramPipelineInfoLogEXTContextANGLE)}, {"glGetProgramPipelineiv", P(GL_GetProgramPipelineiv)}, - {"glGetProgramPipelineivContextANGLE", P(GL_GetProgramPipelineivContextANGLE)}, {"glGetProgramPipelineivEXT", P(GL_GetProgramPipelineivEXT)}, - {"glGetProgramPipelineivEXTContextANGLE", P(GL_GetProgramPipelineivEXTContextANGLE)}, {"glGetProgramResourceIndex", P(GL_GetProgramResourceIndex)}, - {"glGetProgramResourceIndexContextANGLE", P(GL_GetProgramResourceIndexContextANGLE)}, {"glGetProgramResourceLocation", P(GL_GetProgramResourceLocation)}, - {"glGetProgramResourceLocationContextANGLE", P(GL_GetProgramResourceLocationContextANGLE)}, {"glGetProgramResourceLocationIndexEXT", P(GL_GetProgramResourceLocationIndexEXT)}, - {"glGetProgramResourceLocationIndexEXTContextANGLE", - P(GL_GetProgramResourceLocationIndexEXTContextANGLE)}, {"glGetProgramResourceName", P(GL_GetProgramResourceName)}, - {"glGetProgramResourceNameContextANGLE", P(GL_GetProgramResourceNameContextANGLE)}, {"glGetProgramResourceiv", P(GL_GetProgramResourceiv)}, - {"glGetProgramResourceivContextANGLE", P(GL_GetProgramResourceivContextANGLE)}, {"glGetProgramiv", P(GL_GetProgramiv)}, - {"glGetProgramivContextANGLE", P(GL_GetProgramivContextANGLE)}, {"glGetProgramivRobustANGLE", P(GL_GetProgramivRobustANGLE)}, - {"glGetProgramivRobustANGLEContextANGLE", P(GL_GetProgramivRobustANGLEContextANGLE)}, {"glGetQueryObjecti64vEXT", P(GL_GetQueryObjecti64vEXT)}, - {"glGetQueryObjecti64vEXTContextANGLE", P(GL_GetQueryObjecti64vEXTContextANGLE)}, {"glGetQueryObjecti64vRobustANGLE", P(GL_GetQueryObjecti64vRobustANGLE)}, - {"glGetQueryObjecti64vRobustANGLEContextANGLE", - P(GL_GetQueryObjecti64vRobustANGLEContextANGLE)}, {"glGetQueryObjectivEXT", P(GL_GetQueryObjectivEXT)}, - {"glGetQueryObjectivEXTContextANGLE", P(GL_GetQueryObjectivEXTContextANGLE)}, {"glGetQueryObjectivRobustANGLE", P(GL_GetQueryObjectivRobustANGLE)}, - {"glGetQueryObjectivRobustANGLEContextANGLE", P(GL_GetQueryObjectivRobustANGLEContextANGLE)}, {"glGetQueryObjectui64vEXT", P(GL_GetQueryObjectui64vEXT)}, - {"glGetQueryObjectui64vEXTContextANGLE", P(GL_GetQueryObjectui64vEXTContextANGLE)}, {"glGetQueryObjectui64vRobustANGLE", P(GL_GetQueryObjectui64vRobustANGLE)}, - {"glGetQueryObjectui64vRobustANGLEContextANGLE", - P(GL_GetQueryObjectui64vRobustANGLEContextANGLE)}, {"glGetQueryObjectuiv", P(GL_GetQueryObjectuiv)}, - {"glGetQueryObjectuivContextANGLE", P(GL_GetQueryObjectuivContextANGLE)}, {"glGetQueryObjectuivEXT", P(GL_GetQueryObjectuivEXT)}, - {"glGetQueryObjectuivEXTContextANGLE", P(GL_GetQueryObjectuivEXTContextANGLE)}, {"glGetQueryObjectuivRobustANGLE", P(GL_GetQueryObjectuivRobustANGLE)}, - {"glGetQueryObjectuivRobustANGLEContextANGLE", P(GL_GetQueryObjectuivRobustANGLEContextANGLE)}, {"glGetQueryiv", P(GL_GetQueryiv)}, - {"glGetQueryivContextANGLE", P(GL_GetQueryivContextANGLE)}, {"glGetQueryivEXT", P(GL_GetQueryivEXT)}, - {"glGetQueryivEXTContextANGLE", P(GL_GetQueryivEXTContextANGLE)}, {"glGetQueryivRobustANGLE", P(GL_GetQueryivRobustANGLE)}, - {"glGetQueryivRobustANGLEContextANGLE", P(GL_GetQueryivRobustANGLEContextANGLE)}, {"glGetRenderbufferImageANGLE", P(GL_GetRenderbufferImageANGLE)}, - {"glGetRenderbufferImageANGLEContextANGLE", P(GL_GetRenderbufferImageANGLEContextANGLE)}, {"glGetRenderbufferParameteriv", P(GL_GetRenderbufferParameteriv)}, - {"glGetRenderbufferParameterivContextANGLE", P(GL_GetRenderbufferParameterivContextANGLE)}, {"glGetRenderbufferParameterivOES", P(GL_GetRenderbufferParameterivOES)}, - {"glGetRenderbufferParameterivOESContextANGLE", - P(GL_GetRenderbufferParameterivOESContextANGLE)}, {"glGetRenderbufferParameterivRobustANGLE", P(GL_GetRenderbufferParameterivRobustANGLE)}, - {"glGetRenderbufferParameterivRobustANGLEContextANGLE", - P(GL_GetRenderbufferParameterivRobustANGLEContextANGLE)}, {"glGetSamplerParameterIiv", P(GL_GetSamplerParameterIiv)}, - {"glGetSamplerParameterIivContextANGLE", P(GL_GetSamplerParameterIivContextANGLE)}, {"glGetSamplerParameterIivEXT", P(GL_GetSamplerParameterIivEXT)}, - {"glGetSamplerParameterIivEXTContextANGLE", P(GL_GetSamplerParameterIivEXTContextANGLE)}, {"glGetSamplerParameterIivOES", P(GL_GetSamplerParameterIivOES)}, - {"glGetSamplerParameterIivOESContextANGLE", P(GL_GetSamplerParameterIivOESContextANGLE)}, {"glGetSamplerParameterIivRobustANGLE", P(GL_GetSamplerParameterIivRobustANGLE)}, - {"glGetSamplerParameterIivRobustANGLEContextANGLE", - P(GL_GetSamplerParameterIivRobustANGLEContextANGLE)}, {"glGetSamplerParameterIuiv", P(GL_GetSamplerParameterIuiv)}, - {"glGetSamplerParameterIuivContextANGLE", P(GL_GetSamplerParameterIuivContextANGLE)}, {"glGetSamplerParameterIuivEXT", P(GL_GetSamplerParameterIuivEXT)}, - {"glGetSamplerParameterIuivEXTContextANGLE", P(GL_GetSamplerParameterIuivEXTContextANGLE)}, {"glGetSamplerParameterIuivOES", P(GL_GetSamplerParameterIuivOES)}, - {"glGetSamplerParameterIuivOESContextANGLE", P(GL_GetSamplerParameterIuivOESContextANGLE)}, {"glGetSamplerParameterIuivRobustANGLE", P(GL_GetSamplerParameterIuivRobustANGLE)}, - {"glGetSamplerParameterIuivRobustANGLEContextANGLE", - P(GL_GetSamplerParameterIuivRobustANGLEContextANGLE)}, {"glGetSamplerParameterfv", P(GL_GetSamplerParameterfv)}, - {"glGetSamplerParameterfvContextANGLE", P(GL_GetSamplerParameterfvContextANGLE)}, {"glGetSamplerParameterfvRobustANGLE", P(GL_GetSamplerParameterfvRobustANGLE)}, - {"glGetSamplerParameterfvRobustANGLEContextANGLE", - P(GL_GetSamplerParameterfvRobustANGLEContextANGLE)}, {"glGetSamplerParameteriv", P(GL_GetSamplerParameteriv)}, - {"glGetSamplerParameterivContextANGLE", P(GL_GetSamplerParameterivContextANGLE)}, {"glGetSamplerParameterivRobustANGLE", P(GL_GetSamplerParameterivRobustANGLE)}, - {"glGetSamplerParameterivRobustANGLEContextANGLE", - P(GL_GetSamplerParameterivRobustANGLEContextANGLE)}, {"glGetSemaphoreParameterui64vEXT", P(GL_GetSemaphoreParameterui64vEXT)}, - {"glGetSemaphoreParameterui64vEXTContextANGLE", - P(GL_GetSemaphoreParameterui64vEXTContextANGLE)}, {"glGetShaderInfoLog", P(GL_GetShaderInfoLog)}, - {"glGetShaderInfoLogContextANGLE", P(GL_GetShaderInfoLogContextANGLE)}, {"glGetShaderPrecisionFormat", P(GL_GetShaderPrecisionFormat)}, - {"glGetShaderPrecisionFormatContextANGLE", P(GL_GetShaderPrecisionFormatContextANGLE)}, {"glGetShaderSource", P(GL_GetShaderSource)}, - {"glGetShaderSourceContextANGLE", P(GL_GetShaderSourceContextANGLE)}, {"glGetShaderiv", P(GL_GetShaderiv)}, - {"glGetShaderivContextANGLE", P(GL_GetShaderivContextANGLE)}, {"glGetShaderivRobustANGLE", P(GL_GetShaderivRobustANGLE)}, - {"glGetShaderivRobustANGLEContextANGLE", P(GL_GetShaderivRobustANGLEContextANGLE)}, {"glGetString", P(GL_GetString)}, - {"glGetStringContextANGLE", P(GL_GetStringContextANGLE)}, {"glGetStringi", P(GL_GetStringi)}, - {"glGetStringiContextANGLE", P(GL_GetStringiContextANGLE)}, {"glGetSynciv", P(GL_GetSynciv)}, - {"glGetSyncivContextANGLE", P(GL_GetSyncivContextANGLE)}, {"glGetTexEnvfv", P(GL_GetTexEnvfv)}, - {"glGetTexEnvfvContextANGLE", P(GL_GetTexEnvfvContextANGLE)}, {"glGetTexEnviv", P(GL_GetTexEnviv)}, - {"glGetTexEnvivContextANGLE", P(GL_GetTexEnvivContextANGLE)}, {"glGetTexEnvxv", P(GL_GetTexEnvxv)}, - {"glGetTexEnvxvContextANGLE", P(GL_GetTexEnvxvContextANGLE)}, {"glGetTexGenfvOES", P(GL_GetTexGenfvOES)}, - {"glGetTexGenfvOESContextANGLE", P(GL_GetTexGenfvOESContextANGLE)}, {"glGetTexGenivOES", P(GL_GetTexGenivOES)}, - {"glGetTexGenivOESContextANGLE", P(GL_GetTexGenivOESContextANGLE)}, {"glGetTexGenxvOES", P(GL_GetTexGenxvOES)}, - {"glGetTexGenxvOESContextANGLE", P(GL_GetTexGenxvOESContextANGLE)}, {"glGetTexImageANGLE", P(GL_GetTexImageANGLE)}, - {"glGetTexImageANGLEContextANGLE", P(GL_GetTexImageANGLEContextANGLE)}, {"glGetTexLevelParameterfv", P(GL_GetTexLevelParameterfv)}, {"glGetTexLevelParameterfvANGLE", P(GL_GetTexLevelParameterfvANGLE)}, - {"glGetTexLevelParameterfvANGLEContextANGLE", P(GL_GetTexLevelParameterfvANGLEContextANGLE)}, - {"glGetTexLevelParameterfvContextANGLE", P(GL_GetTexLevelParameterfvContextANGLE)}, {"glGetTexLevelParameterfvRobustANGLE", P(GL_GetTexLevelParameterfvRobustANGLE)}, - {"glGetTexLevelParameterfvRobustANGLEContextANGLE", - P(GL_GetTexLevelParameterfvRobustANGLEContextANGLE)}, {"glGetTexLevelParameteriv", P(GL_GetTexLevelParameteriv)}, {"glGetTexLevelParameterivANGLE", P(GL_GetTexLevelParameterivANGLE)}, - {"glGetTexLevelParameterivANGLEContextANGLE", P(GL_GetTexLevelParameterivANGLEContextANGLE)}, - {"glGetTexLevelParameterivContextANGLE", P(GL_GetTexLevelParameterivContextANGLE)}, {"glGetTexLevelParameterivRobustANGLE", P(GL_GetTexLevelParameterivRobustANGLE)}, - {"glGetTexLevelParameterivRobustANGLEContextANGLE", - P(GL_GetTexLevelParameterivRobustANGLEContextANGLE)}, {"glGetTexParameterIiv", P(GL_GetTexParameterIiv)}, - {"glGetTexParameterIivContextANGLE", P(GL_GetTexParameterIivContextANGLE)}, {"glGetTexParameterIivEXT", P(GL_GetTexParameterIivEXT)}, - {"glGetTexParameterIivEXTContextANGLE", P(GL_GetTexParameterIivEXTContextANGLE)}, {"glGetTexParameterIivOES", P(GL_GetTexParameterIivOES)}, - {"glGetTexParameterIivOESContextANGLE", P(GL_GetTexParameterIivOESContextANGLE)}, {"glGetTexParameterIivRobustANGLE", P(GL_GetTexParameterIivRobustANGLE)}, - {"glGetTexParameterIivRobustANGLEContextANGLE", - P(GL_GetTexParameterIivRobustANGLEContextANGLE)}, {"glGetTexParameterIuiv", P(GL_GetTexParameterIuiv)}, - {"glGetTexParameterIuivContextANGLE", P(GL_GetTexParameterIuivContextANGLE)}, {"glGetTexParameterIuivEXT", P(GL_GetTexParameterIuivEXT)}, - {"glGetTexParameterIuivEXTContextANGLE", P(GL_GetTexParameterIuivEXTContextANGLE)}, {"glGetTexParameterIuivOES", P(GL_GetTexParameterIuivOES)}, - {"glGetTexParameterIuivOESContextANGLE", P(GL_GetTexParameterIuivOESContextANGLE)}, {"glGetTexParameterIuivRobustANGLE", P(GL_GetTexParameterIuivRobustANGLE)}, - {"glGetTexParameterIuivRobustANGLEContextANGLE", - P(GL_GetTexParameterIuivRobustANGLEContextANGLE)}, {"glGetTexParameterfv", P(GL_GetTexParameterfv)}, - {"glGetTexParameterfvContextANGLE", P(GL_GetTexParameterfvContextANGLE)}, {"glGetTexParameterfvRobustANGLE", P(GL_GetTexParameterfvRobustANGLE)}, - {"glGetTexParameterfvRobustANGLEContextANGLE", P(GL_GetTexParameterfvRobustANGLEContextANGLE)}, {"glGetTexParameteriv", P(GL_GetTexParameteriv)}, - {"glGetTexParameterivContextANGLE", P(GL_GetTexParameterivContextANGLE)}, {"glGetTexParameterivRobustANGLE", P(GL_GetTexParameterivRobustANGLE)}, - {"glGetTexParameterivRobustANGLEContextANGLE", P(GL_GetTexParameterivRobustANGLEContextANGLE)}, {"glGetTexParameterxv", P(GL_GetTexParameterxv)}, - {"glGetTexParameterxvContextANGLE", P(GL_GetTexParameterxvContextANGLE)}, {"glGetTransformFeedbackVarying", P(GL_GetTransformFeedbackVarying)}, - {"glGetTransformFeedbackVaryingContextANGLE", P(GL_GetTransformFeedbackVaryingContextANGLE)}, {"glGetTranslatedShaderSourceANGLE", P(GL_GetTranslatedShaderSourceANGLE)}, - {"glGetTranslatedShaderSourceANGLEContextANGLE", - P(GL_GetTranslatedShaderSourceANGLEContextANGLE)}, {"glGetUniformBlockIndex", P(GL_GetUniformBlockIndex)}, - {"glGetUniformBlockIndexContextANGLE", P(GL_GetUniformBlockIndexContextANGLE)}, {"glGetUniformIndices", P(GL_GetUniformIndices)}, - {"glGetUniformIndicesContextANGLE", P(GL_GetUniformIndicesContextANGLE)}, {"glGetUniformLocation", P(GL_GetUniformLocation)}, - {"glGetUniformLocationContextANGLE", P(GL_GetUniformLocationContextANGLE)}, {"glGetUniformfv", P(GL_GetUniformfv)}, - {"glGetUniformfvContextANGLE", P(GL_GetUniformfvContextANGLE)}, {"glGetUniformfvRobustANGLE", P(GL_GetUniformfvRobustANGLE)}, - {"glGetUniformfvRobustANGLEContextANGLE", P(GL_GetUniformfvRobustANGLEContextANGLE)}, {"glGetUniformiv", P(GL_GetUniformiv)}, - {"glGetUniformivContextANGLE", P(GL_GetUniformivContextANGLE)}, {"glGetUniformivRobustANGLE", P(GL_GetUniformivRobustANGLE)}, - {"glGetUniformivRobustANGLEContextANGLE", P(GL_GetUniformivRobustANGLEContextANGLE)}, {"glGetUniformuiv", P(GL_GetUniformuiv)}, - {"glGetUniformuivContextANGLE", P(GL_GetUniformuivContextANGLE)}, {"glGetUniformuivRobustANGLE", P(GL_GetUniformuivRobustANGLE)}, - {"glGetUniformuivRobustANGLEContextANGLE", P(GL_GetUniformuivRobustANGLEContextANGLE)}, {"glGetUnsignedBytei_vEXT", P(GL_GetUnsignedBytei_vEXT)}, - {"glGetUnsignedBytei_vEXTContextANGLE", P(GL_GetUnsignedBytei_vEXTContextANGLE)}, {"glGetUnsignedBytevEXT", P(GL_GetUnsignedBytevEXT)}, - {"glGetUnsignedBytevEXTContextANGLE", P(GL_GetUnsignedBytevEXTContextANGLE)}, {"glGetVertexAttribIiv", P(GL_GetVertexAttribIiv)}, - {"glGetVertexAttribIivContextANGLE", P(GL_GetVertexAttribIivContextANGLE)}, {"glGetVertexAttribIivRobustANGLE", P(GL_GetVertexAttribIivRobustANGLE)}, - {"glGetVertexAttribIivRobustANGLEContextANGLE", - P(GL_GetVertexAttribIivRobustANGLEContextANGLE)}, {"glGetVertexAttribIuiv", P(GL_GetVertexAttribIuiv)}, - {"glGetVertexAttribIuivContextANGLE", P(GL_GetVertexAttribIuivContextANGLE)}, {"glGetVertexAttribIuivRobustANGLE", P(GL_GetVertexAttribIuivRobustANGLE)}, - {"glGetVertexAttribIuivRobustANGLEContextANGLE", - P(GL_GetVertexAttribIuivRobustANGLEContextANGLE)}, {"glGetVertexAttribPointerv", P(GL_GetVertexAttribPointerv)}, - {"glGetVertexAttribPointervContextANGLE", P(GL_GetVertexAttribPointervContextANGLE)}, {"glGetVertexAttribPointervRobustANGLE", P(GL_GetVertexAttribPointervRobustANGLE)}, - {"glGetVertexAttribPointervRobustANGLEContextANGLE", - P(GL_GetVertexAttribPointervRobustANGLEContextANGLE)}, {"glGetVertexAttribfv", P(GL_GetVertexAttribfv)}, - {"glGetVertexAttribfvContextANGLE", P(GL_GetVertexAttribfvContextANGLE)}, {"glGetVertexAttribfvRobustANGLE", P(GL_GetVertexAttribfvRobustANGLE)}, - {"glGetVertexAttribfvRobustANGLEContextANGLE", P(GL_GetVertexAttribfvRobustANGLEContextANGLE)}, {"glGetVertexAttribiv", P(GL_GetVertexAttribiv)}, - {"glGetVertexAttribivContextANGLE", P(GL_GetVertexAttribivContextANGLE)}, {"glGetVertexAttribivRobustANGLE", P(GL_GetVertexAttribivRobustANGLE)}, - {"glGetVertexAttribivRobustANGLEContextANGLE", P(GL_GetVertexAttribivRobustANGLEContextANGLE)}, {"glGetnUniformfv", P(GL_GetnUniformfv)}, - {"glGetnUniformfvContextANGLE", P(GL_GetnUniformfvContextANGLE)}, {"glGetnUniformfvEXT", P(GL_GetnUniformfvEXT)}, - {"glGetnUniformfvEXTContextANGLE", P(GL_GetnUniformfvEXTContextANGLE)}, {"glGetnUniformfvRobustANGLE", P(GL_GetnUniformfvRobustANGLE)}, - {"glGetnUniformfvRobustANGLEContextANGLE", P(GL_GetnUniformfvRobustANGLEContextANGLE)}, {"glGetnUniformiv", P(GL_GetnUniformiv)}, - {"glGetnUniformivContextANGLE", P(GL_GetnUniformivContextANGLE)}, {"glGetnUniformivEXT", P(GL_GetnUniformivEXT)}, - {"glGetnUniformivEXTContextANGLE", P(GL_GetnUniformivEXTContextANGLE)}, {"glGetnUniformivRobustANGLE", P(GL_GetnUniformivRobustANGLE)}, - {"glGetnUniformivRobustANGLEContextANGLE", P(GL_GetnUniformivRobustANGLEContextANGLE)}, {"glGetnUniformuiv", P(GL_GetnUniformuiv)}, - {"glGetnUniformuivContextANGLE", P(GL_GetnUniformuivContextANGLE)}, {"glGetnUniformuivRobustANGLE", P(GL_GetnUniformuivRobustANGLE)}, - {"glGetnUniformuivRobustANGLEContextANGLE", P(GL_GetnUniformuivRobustANGLEContextANGLE)}, {"glHint", P(GL_Hint)}, - {"glHintContextANGLE", P(GL_HintContextANGLE)}, {"glImportMemoryFdEXT", P(GL_ImportMemoryFdEXT)}, - {"glImportMemoryFdEXTContextANGLE", P(GL_ImportMemoryFdEXTContextANGLE)}, {"glImportMemoryZirconHandleANGLE", P(GL_ImportMemoryZirconHandleANGLE)}, - {"glImportMemoryZirconHandleANGLEContextANGLE", - P(GL_ImportMemoryZirconHandleANGLEContextANGLE)}, {"glImportSemaphoreFdEXT", P(GL_ImportSemaphoreFdEXT)}, - {"glImportSemaphoreFdEXTContextANGLE", P(GL_ImportSemaphoreFdEXTContextANGLE)}, {"glImportSemaphoreZirconHandleANGLE", P(GL_ImportSemaphoreZirconHandleANGLE)}, - {"glImportSemaphoreZirconHandleANGLEContextANGLE", - P(GL_ImportSemaphoreZirconHandleANGLEContextANGLE)}, {"glInsertEventMarkerEXT", P(GL_InsertEventMarkerEXT)}, - {"glInsertEventMarkerEXTContextANGLE", P(GL_InsertEventMarkerEXTContextANGLE)}, {"glInvalidateFramebuffer", P(GL_InvalidateFramebuffer)}, - {"glInvalidateFramebufferContextANGLE", P(GL_InvalidateFramebufferContextANGLE)}, {"glInvalidateSubFramebuffer", P(GL_InvalidateSubFramebuffer)}, - {"glInvalidateSubFramebufferContextANGLE", P(GL_InvalidateSubFramebufferContextANGLE)}, {"glInvalidateTextureANGLE", P(GL_InvalidateTextureANGLE)}, - {"glInvalidateTextureANGLEContextANGLE", P(GL_InvalidateTextureANGLEContextANGLE)}, {"glIsBuffer", P(GL_IsBuffer)}, - {"glIsBufferContextANGLE", P(GL_IsBufferContextANGLE)}, {"glIsEnabled", P(GL_IsEnabled)}, - {"glIsEnabledContextANGLE", P(GL_IsEnabledContextANGLE)}, {"glIsEnabledi", P(GL_IsEnabledi)}, - {"glIsEnablediContextANGLE", P(GL_IsEnablediContextANGLE)}, {"glIsEnablediEXT", P(GL_IsEnablediEXT)}, - {"glIsEnablediEXTContextANGLE", P(GL_IsEnablediEXTContextANGLE)}, {"glIsEnablediOES", P(GL_IsEnablediOES)}, - {"glIsEnablediOESContextANGLE", P(GL_IsEnablediOESContextANGLE)}, {"glIsFenceNV", P(GL_IsFenceNV)}, - {"glIsFenceNVContextANGLE", P(GL_IsFenceNVContextANGLE)}, {"glIsFramebuffer", P(GL_IsFramebuffer)}, - {"glIsFramebufferContextANGLE", P(GL_IsFramebufferContextANGLE)}, {"glIsFramebufferOES", P(GL_IsFramebufferOES)}, - {"glIsFramebufferOESContextANGLE", P(GL_IsFramebufferOESContextANGLE)}, {"glIsMemoryObjectEXT", P(GL_IsMemoryObjectEXT)}, - {"glIsMemoryObjectEXTContextANGLE", P(GL_IsMemoryObjectEXTContextANGLE)}, {"glIsProgram", P(GL_IsProgram)}, - {"glIsProgramContextANGLE", P(GL_IsProgramContextANGLE)}, {"glIsProgramPipeline", P(GL_IsProgramPipeline)}, - {"glIsProgramPipelineContextANGLE", P(GL_IsProgramPipelineContextANGLE)}, {"glIsProgramPipelineEXT", P(GL_IsProgramPipelineEXT)}, - {"glIsProgramPipelineEXTContextANGLE", P(GL_IsProgramPipelineEXTContextANGLE)}, {"glIsQuery", P(GL_IsQuery)}, - {"glIsQueryContextANGLE", P(GL_IsQueryContextANGLE)}, {"glIsQueryEXT", P(GL_IsQueryEXT)}, - {"glIsQueryEXTContextANGLE", P(GL_IsQueryEXTContextANGLE)}, {"glIsRenderbuffer", P(GL_IsRenderbuffer)}, - {"glIsRenderbufferContextANGLE", P(GL_IsRenderbufferContextANGLE)}, {"glIsRenderbufferOES", P(GL_IsRenderbufferOES)}, - {"glIsRenderbufferOESContextANGLE", P(GL_IsRenderbufferOESContextANGLE)}, {"glIsSampler", P(GL_IsSampler)}, - {"glIsSamplerContextANGLE", P(GL_IsSamplerContextANGLE)}, {"glIsSemaphoreEXT", P(GL_IsSemaphoreEXT)}, - {"glIsSemaphoreEXTContextANGLE", P(GL_IsSemaphoreEXTContextANGLE)}, {"glIsShader", P(GL_IsShader)}, - {"glIsShaderContextANGLE", P(GL_IsShaderContextANGLE)}, {"glIsSync", P(GL_IsSync)}, - {"glIsSyncContextANGLE", P(GL_IsSyncContextANGLE)}, {"glIsTexture", P(GL_IsTexture)}, - {"glIsTextureContextANGLE", P(GL_IsTextureContextANGLE)}, {"glIsTransformFeedback", P(GL_IsTransformFeedback)}, - {"glIsTransformFeedbackContextANGLE", P(GL_IsTransformFeedbackContextANGLE)}, {"glIsVertexArray", P(GL_IsVertexArray)}, - {"glIsVertexArrayContextANGLE", P(GL_IsVertexArrayContextANGLE)}, {"glIsVertexArrayOES", P(GL_IsVertexArrayOES)}, - {"glIsVertexArrayOESContextANGLE", P(GL_IsVertexArrayOESContextANGLE)}, {"glLabelObjectEXT", P(GL_LabelObjectEXT)}, - {"glLabelObjectEXTContextANGLE", P(GL_LabelObjectEXTContextANGLE)}, {"glLightModelf", P(GL_LightModelf)}, - {"glLightModelfContextANGLE", P(GL_LightModelfContextANGLE)}, {"glLightModelfv", P(GL_LightModelfv)}, - {"glLightModelfvContextANGLE", P(GL_LightModelfvContextANGLE)}, {"glLightModelx", P(GL_LightModelx)}, - {"glLightModelxContextANGLE", P(GL_LightModelxContextANGLE)}, {"glLightModelxv", P(GL_LightModelxv)}, - {"glLightModelxvContextANGLE", P(GL_LightModelxvContextANGLE)}, {"glLightf", P(GL_Lightf)}, - {"glLightfContextANGLE", P(GL_LightfContextANGLE)}, {"glLightfv", P(GL_Lightfv)}, - {"glLightfvContextANGLE", P(GL_LightfvContextANGLE)}, {"glLightx", P(GL_Lightx)}, - {"glLightxContextANGLE", P(GL_LightxContextANGLE)}, {"glLightxv", P(GL_Lightxv)}, - {"glLightxvContextANGLE", P(GL_LightxvContextANGLE)}, {"glLineWidth", P(GL_LineWidth)}, - {"glLineWidthContextANGLE", P(GL_LineWidthContextANGLE)}, {"glLineWidthx", P(GL_LineWidthx)}, - {"glLineWidthxContextANGLE", P(GL_LineWidthxContextANGLE)}, {"glLinkProgram", P(GL_LinkProgram)}, - {"glLinkProgramContextANGLE", P(GL_LinkProgramContextANGLE)}, {"glLoadIdentity", P(GL_LoadIdentity)}, - {"glLoadIdentityContextANGLE", P(GL_LoadIdentityContextANGLE)}, {"glLoadMatrixf", P(GL_LoadMatrixf)}, - {"glLoadMatrixfContextANGLE", P(GL_LoadMatrixfContextANGLE)}, {"glLoadMatrixx", P(GL_LoadMatrixx)}, - {"glLoadMatrixxContextANGLE", P(GL_LoadMatrixxContextANGLE)}, {"glLoadPaletteFromModelViewMatrixOES", P(GL_LoadPaletteFromModelViewMatrixOES)}, - {"glLoadPaletteFromModelViewMatrixOESContextANGLE", - P(GL_LoadPaletteFromModelViewMatrixOESContextANGLE)}, {"glLogicOp", P(GL_LogicOp)}, - {"glLogicOpContextANGLE", P(GL_LogicOpContextANGLE)}, {"glLoseContextCHROMIUM", P(GL_LoseContextCHROMIUM)}, - {"glLoseContextCHROMIUMContextANGLE", P(GL_LoseContextCHROMIUMContextANGLE)}, {"glMapBufferOES", P(GL_MapBufferOES)}, - {"glMapBufferOESContextANGLE", P(GL_MapBufferOESContextANGLE)}, {"glMapBufferRange", P(GL_MapBufferRange)}, - {"glMapBufferRangeContextANGLE", P(GL_MapBufferRangeContextANGLE)}, {"glMapBufferRangeEXT", P(GL_MapBufferRangeEXT)}, - {"glMapBufferRangeEXTContextANGLE", P(GL_MapBufferRangeEXTContextANGLE)}, {"glMaterialf", P(GL_Materialf)}, - {"glMaterialfContextANGLE", P(GL_MaterialfContextANGLE)}, {"glMaterialfv", P(GL_Materialfv)}, - {"glMaterialfvContextANGLE", P(GL_MaterialfvContextANGLE)}, {"glMaterialx", P(GL_Materialx)}, - {"glMaterialxContextANGLE", P(GL_MaterialxContextANGLE)}, {"glMaterialxv", P(GL_Materialxv)}, - {"glMaterialxvContextANGLE", P(GL_MaterialxvContextANGLE)}, {"glMatrixIndexPointerOES", P(GL_MatrixIndexPointerOES)}, - {"glMatrixIndexPointerOESContextANGLE", P(GL_MatrixIndexPointerOESContextANGLE)}, {"glMatrixMode", P(GL_MatrixMode)}, - {"glMatrixModeContextANGLE", P(GL_MatrixModeContextANGLE)}, {"glMaxShaderCompilerThreadsKHR", P(GL_MaxShaderCompilerThreadsKHR)}, - {"glMaxShaderCompilerThreadsKHRContextANGLE", P(GL_MaxShaderCompilerThreadsKHRContextANGLE)}, {"glMemoryBarrier", P(GL_MemoryBarrier)}, {"glMemoryBarrierByRegion", P(GL_MemoryBarrierByRegion)}, - {"glMemoryBarrierByRegionContextANGLE", P(GL_MemoryBarrierByRegionContextANGLE)}, - {"glMemoryBarrierContextANGLE", P(GL_MemoryBarrierContextANGLE)}, {"glMemoryObjectParameterivEXT", P(GL_MemoryObjectParameterivEXT)}, - {"glMemoryObjectParameterivEXTContextANGLE", P(GL_MemoryObjectParameterivEXTContextANGLE)}, {"glMinSampleShading", P(GL_MinSampleShading)}, - {"glMinSampleShadingContextANGLE", P(GL_MinSampleShadingContextANGLE)}, {"glMinSampleShadingOES", P(GL_MinSampleShadingOES)}, - {"glMinSampleShadingOESContextANGLE", P(GL_MinSampleShadingOESContextANGLE)}, {"glMultMatrixf", P(GL_MultMatrixf)}, - {"glMultMatrixfContextANGLE", P(GL_MultMatrixfContextANGLE)}, {"glMultMatrixx", P(GL_MultMatrixx)}, - {"glMultMatrixxContextANGLE", P(GL_MultMatrixxContextANGLE)}, {"glMultiDrawArraysANGLE", P(GL_MultiDrawArraysANGLE)}, - {"glMultiDrawArraysANGLEContextANGLE", P(GL_MultiDrawArraysANGLEContextANGLE)}, {"glMultiDrawArraysInstancedANGLE", P(GL_MultiDrawArraysInstancedANGLE)}, - {"glMultiDrawArraysInstancedANGLEContextANGLE", - P(GL_MultiDrawArraysInstancedANGLEContextANGLE)}, {"glMultiDrawArraysInstancedBaseInstanceANGLE", P(GL_MultiDrawArraysInstancedBaseInstanceANGLE)}, - {"glMultiDrawArraysInstancedBaseInstanceANGLEContextANGLE", - P(GL_MultiDrawArraysInstancedBaseInstanceANGLEContextANGLE)}, {"glMultiDrawElementsANGLE", P(GL_MultiDrawElementsANGLE)}, - {"glMultiDrawElementsANGLEContextANGLE", P(GL_MultiDrawElementsANGLEContextANGLE)}, {"glMultiDrawElementsBaseVertexEXT", P(GL_MultiDrawElementsBaseVertexEXT)}, - {"glMultiDrawElementsBaseVertexEXTContextANGLE", - P(GL_MultiDrawElementsBaseVertexEXTContextANGLE)}, {"glMultiDrawElementsInstancedANGLE", P(GL_MultiDrawElementsInstancedANGLE)}, - {"glMultiDrawElementsInstancedANGLEContextANGLE", - P(GL_MultiDrawElementsInstancedANGLEContextANGLE)}, {"glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE", P(GL_MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE)}, - {"glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE", - P(GL_MultiDrawElementsInstancedBaseVertexBaseInstanceANGLEContextANGLE)}, {"glMultiTexCoord4f", P(GL_MultiTexCoord4f)}, - {"glMultiTexCoord4fContextANGLE", P(GL_MultiTexCoord4fContextANGLE)}, {"glMultiTexCoord4x", P(GL_MultiTexCoord4x)}, - {"glMultiTexCoord4xContextANGLE", P(GL_MultiTexCoord4xContextANGLE)}, {"glNamedBufferStorageExternalEXT", P(GL_NamedBufferStorageExternalEXT)}, - {"glNamedBufferStorageExternalEXTContextANGLE", - P(GL_NamedBufferStorageExternalEXTContextANGLE)}, {"glNormal3f", P(GL_Normal3f)}, - {"glNormal3fContextANGLE", P(GL_Normal3fContextANGLE)}, {"glNormal3x", P(GL_Normal3x)}, - {"glNormal3xContextANGLE", P(GL_Normal3xContextANGLE)}, {"glNormalPointer", P(GL_NormalPointer)}, - {"glNormalPointerContextANGLE", P(GL_NormalPointerContextANGLE)}, {"glObjectLabel", P(GL_ObjectLabel)}, - {"glObjectLabelContextANGLE", P(GL_ObjectLabelContextANGLE)}, {"glObjectLabelKHR", P(GL_ObjectLabelKHR)}, - {"glObjectLabelKHRContextANGLE", P(GL_ObjectLabelKHRContextANGLE)}, {"glObjectPtrLabel", P(GL_ObjectPtrLabel)}, - {"glObjectPtrLabelContextANGLE", P(GL_ObjectPtrLabelContextANGLE)}, {"glObjectPtrLabelKHR", P(GL_ObjectPtrLabelKHR)}, - {"glObjectPtrLabelKHRContextANGLE", P(GL_ObjectPtrLabelKHRContextANGLE)}, {"glOrthof", P(GL_Orthof)}, - {"glOrthofContextANGLE", P(GL_OrthofContextANGLE)}, {"glOrthox", P(GL_Orthox)}, - {"glOrthoxContextANGLE", P(GL_OrthoxContextANGLE)}, {"glPatchParameteri", P(GL_PatchParameteri)}, - {"glPatchParameteriContextANGLE", P(GL_PatchParameteriContextANGLE)}, {"glPatchParameteriEXT", P(GL_PatchParameteriEXT)}, - {"glPatchParameteriEXTContextANGLE", P(GL_PatchParameteriEXTContextANGLE)}, {"glPauseTransformFeedback", P(GL_PauseTransformFeedback)}, - {"glPauseTransformFeedbackContextANGLE", P(GL_PauseTransformFeedbackContextANGLE)}, {"glPixelStorei", P(GL_PixelStorei)}, - {"glPixelStoreiContextANGLE", P(GL_PixelStoreiContextANGLE)}, {"glPointParameterf", P(GL_PointParameterf)}, - {"glPointParameterfContextANGLE", P(GL_PointParameterfContextANGLE)}, {"glPointParameterfv", P(GL_PointParameterfv)}, - {"glPointParameterfvContextANGLE", P(GL_PointParameterfvContextANGLE)}, {"glPointParameterx", P(GL_PointParameterx)}, - {"glPointParameterxContextANGLE", P(GL_PointParameterxContextANGLE)}, {"glPointParameterxv", P(GL_PointParameterxv)}, - {"glPointParameterxvContextANGLE", P(GL_PointParameterxvContextANGLE)}, {"glPointSize", P(GL_PointSize)}, - {"glPointSizeContextANGLE", P(GL_PointSizeContextANGLE)}, {"glPointSizePointerOES", P(GL_PointSizePointerOES)}, - {"glPointSizePointerOESContextANGLE", P(GL_PointSizePointerOESContextANGLE)}, {"glPointSizex", P(GL_PointSizex)}, - {"glPointSizexContextANGLE", P(GL_PointSizexContextANGLE)}, {"glPolygonOffset", P(GL_PolygonOffset)}, - {"glPolygonOffsetContextANGLE", P(GL_PolygonOffsetContextANGLE)}, {"glPolygonOffsetx", P(GL_PolygonOffsetx)}, - {"glPolygonOffsetxContextANGLE", P(GL_PolygonOffsetxContextANGLE)}, {"glPopDebugGroup", P(GL_PopDebugGroup)}, - {"glPopDebugGroupContextANGLE", P(GL_PopDebugGroupContextANGLE)}, {"glPopDebugGroupKHR", P(GL_PopDebugGroupKHR)}, - {"glPopDebugGroupKHRContextANGLE", P(GL_PopDebugGroupKHRContextANGLE)}, {"glPopGroupMarkerEXT", P(GL_PopGroupMarkerEXT)}, - {"glPopGroupMarkerEXTContextANGLE", P(GL_PopGroupMarkerEXTContextANGLE)}, {"glPopMatrix", P(GL_PopMatrix)}, - {"glPopMatrixContextANGLE", P(GL_PopMatrixContextANGLE)}, {"glPrimitiveBoundingBox", P(GL_PrimitiveBoundingBox)}, - {"glPrimitiveBoundingBoxContextANGLE", P(GL_PrimitiveBoundingBoxContextANGLE)}, {"glPrimitiveBoundingBoxEXT", P(GL_PrimitiveBoundingBoxEXT)}, - {"glPrimitiveBoundingBoxEXTContextANGLE", P(GL_PrimitiveBoundingBoxEXTContextANGLE)}, {"glProgramBinary", P(GL_ProgramBinary)}, - {"glProgramBinaryContextANGLE", P(GL_ProgramBinaryContextANGLE)}, {"glProgramBinaryOES", P(GL_ProgramBinaryOES)}, - {"glProgramBinaryOESContextANGLE", P(GL_ProgramBinaryOESContextANGLE)}, {"glProgramParameteri", P(GL_ProgramParameteri)}, - {"glProgramParameteriContextANGLE", P(GL_ProgramParameteriContextANGLE)}, {"glProgramParameteriEXT", P(GL_ProgramParameteriEXT)}, - {"glProgramParameteriEXTContextANGLE", P(GL_ProgramParameteriEXTContextANGLE)}, {"glProgramUniform1f", P(GL_ProgramUniform1f)}, - {"glProgramUniform1fContextANGLE", P(GL_ProgramUniform1fContextANGLE)}, {"glProgramUniform1fEXT", P(GL_ProgramUniform1fEXT)}, - {"glProgramUniform1fEXTContextANGLE", P(GL_ProgramUniform1fEXTContextANGLE)}, {"glProgramUniform1fv", P(GL_ProgramUniform1fv)}, - {"glProgramUniform1fvContextANGLE", P(GL_ProgramUniform1fvContextANGLE)}, {"glProgramUniform1fvEXT", P(GL_ProgramUniform1fvEXT)}, - {"glProgramUniform1fvEXTContextANGLE", P(GL_ProgramUniform1fvEXTContextANGLE)}, {"glProgramUniform1i", P(GL_ProgramUniform1i)}, - {"glProgramUniform1iContextANGLE", P(GL_ProgramUniform1iContextANGLE)}, {"glProgramUniform1iEXT", P(GL_ProgramUniform1iEXT)}, - {"glProgramUniform1iEXTContextANGLE", P(GL_ProgramUniform1iEXTContextANGLE)}, {"glProgramUniform1iv", P(GL_ProgramUniform1iv)}, - {"glProgramUniform1ivContextANGLE", P(GL_ProgramUniform1ivContextANGLE)}, {"glProgramUniform1ivEXT", P(GL_ProgramUniform1ivEXT)}, - {"glProgramUniform1ivEXTContextANGLE", P(GL_ProgramUniform1ivEXTContextANGLE)}, {"glProgramUniform1ui", P(GL_ProgramUniform1ui)}, - {"glProgramUniform1uiContextANGLE", P(GL_ProgramUniform1uiContextANGLE)}, {"glProgramUniform1uiEXT", P(GL_ProgramUniform1uiEXT)}, - {"glProgramUniform1uiEXTContextANGLE", P(GL_ProgramUniform1uiEXTContextANGLE)}, {"glProgramUniform1uiv", P(GL_ProgramUniform1uiv)}, - {"glProgramUniform1uivContextANGLE", P(GL_ProgramUniform1uivContextANGLE)}, {"glProgramUniform1uivEXT", P(GL_ProgramUniform1uivEXT)}, - {"glProgramUniform1uivEXTContextANGLE", P(GL_ProgramUniform1uivEXTContextANGLE)}, {"glProgramUniform2f", P(GL_ProgramUniform2f)}, - {"glProgramUniform2fContextANGLE", P(GL_ProgramUniform2fContextANGLE)}, {"glProgramUniform2fEXT", P(GL_ProgramUniform2fEXT)}, - {"glProgramUniform2fEXTContextANGLE", P(GL_ProgramUniform2fEXTContextANGLE)}, {"glProgramUniform2fv", P(GL_ProgramUniform2fv)}, - {"glProgramUniform2fvContextANGLE", P(GL_ProgramUniform2fvContextANGLE)}, {"glProgramUniform2fvEXT", P(GL_ProgramUniform2fvEXT)}, - {"glProgramUniform2fvEXTContextANGLE", P(GL_ProgramUniform2fvEXTContextANGLE)}, {"glProgramUniform2i", P(GL_ProgramUniform2i)}, - {"glProgramUniform2iContextANGLE", P(GL_ProgramUniform2iContextANGLE)}, {"glProgramUniform2iEXT", P(GL_ProgramUniform2iEXT)}, - {"glProgramUniform2iEXTContextANGLE", P(GL_ProgramUniform2iEXTContextANGLE)}, {"glProgramUniform2iv", P(GL_ProgramUniform2iv)}, - {"glProgramUniform2ivContextANGLE", P(GL_ProgramUniform2ivContextANGLE)}, {"glProgramUniform2ivEXT", P(GL_ProgramUniform2ivEXT)}, - {"glProgramUniform2ivEXTContextANGLE", P(GL_ProgramUniform2ivEXTContextANGLE)}, {"glProgramUniform2ui", P(GL_ProgramUniform2ui)}, - {"glProgramUniform2uiContextANGLE", P(GL_ProgramUniform2uiContextANGLE)}, {"glProgramUniform2uiEXT", P(GL_ProgramUniform2uiEXT)}, - {"glProgramUniform2uiEXTContextANGLE", P(GL_ProgramUniform2uiEXTContextANGLE)}, {"glProgramUniform2uiv", P(GL_ProgramUniform2uiv)}, - {"glProgramUniform2uivContextANGLE", P(GL_ProgramUniform2uivContextANGLE)}, {"glProgramUniform2uivEXT", P(GL_ProgramUniform2uivEXT)}, - {"glProgramUniform2uivEXTContextANGLE", P(GL_ProgramUniform2uivEXTContextANGLE)}, {"glProgramUniform3f", P(GL_ProgramUniform3f)}, - {"glProgramUniform3fContextANGLE", P(GL_ProgramUniform3fContextANGLE)}, {"glProgramUniform3fEXT", P(GL_ProgramUniform3fEXT)}, - {"glProgramUniform3fEXTContextANGLE", P(GL_ProgramUniform3fEXTContextANGLE)}, {"glProgramUniform3fv", P(GL_ProgramUniform3fv)}, - {"glProgramUniform3fvContextANGLE", P(GL_ProgramUniform3fvContextANGLE)}, {"glProgramUniform3fvEXT", P(GL_ProgramUniform3fvEXT)}, - {"glProgramUniform3fvEXTContextANGLE", P(GL_ProgramUniform3fvEXTContextANGLE)}, {"glProgramUniform3i", P(GL_ProgramUniform3i)}, - {"glProgramUniform3iContextANGLE", P(GL_ProgramUniform3iContextANGLE)}, {"glProgramUniform3iEXT", P(GL_ProgramUniform3iEXT)}, - {"glProgramUniform3iEXTContextANGLE", P(GL_ProgramUniform3iEXTContextANGLE)}, {"glProgramUniform3iv", P(GL_ProgramUniform3iv)}, - {"glProgramUniform3ivContextANGLE", P(GL_ProgramUniform3ivContextANGLE)}, {"glProgramUniform3ivEXT", P(GL_ProgramUniform3ivEXT)}, - {"glProgramUniform3ivEXTContextANGLE", P(GL_ProgramUniform3ivEXTContextANGLE)}, {"glProgramUniform3ui", P(GL_ProgramUniform3ui)}, - {"glProgramUniform3uiContextANGLE", P(GL_ProgramUniform3uiContextANGLE)}, {"glProgramUniform3uiEXT", P(GL_ProgramUniform3uiEXT)}, - {"glProgramUniform3uiEXTContextANGLE", P(GL_ProgramUniform3uiEXTContextANGLE)}, {"glProgramUniform3uiv", P(GL_ProgramUniform3uiv)}, - {"glProgramUniform3uivContextANGLE", P(GL_ProgramUniform3uivContextANGLE)}, {"glProgramUniform3uivEXT", P(GL_ProgramUniform3uivEXT)}, - {"glProgramUniform3uivEXTContextANGLE", P(GL_ProgramUniform3uivEXTContextANGLE)}, {"glProgramUniform4f", P(GL_ProgramUniform4f)}, - {"glProgramUniform4fContextANGLE", P(GL_ProgramUniform4fContextANGLE)}, {"glProgramUniform4fEXT", P(GL_ProgramUniform4fEXT)}, - {"glProgramUniform4fEXTContextANGLE", P(GL_ProgramUniform4fEXTContextANGLE)}, {"glProgramUniform4fv", P(GL_ProgramUniform4fv)}, - {"glProgramUniform4fvContextANGLE", P(GL_ProgramUniform4fvContextANGLE)}, {"glProgramUniform4fvEXT", P(GL_ProgramUniform4fvEXT)}, - {"glProgramUniform4fvEXTContextANGLE", P(GL_ProgramUniform4fvEXTContextANGLE)}, {"glProgramUniform4i", P(GL_ProgramUniform4i)}, - {"glProgramUniform4iContextANGLE", P(GL_ProgramUniform4iContextANGLE)}, {"glProgramUniform4iEXT", P(GL_ProgramUniform4iEXT)}, - {"glProgramUniform4iEXTContextANGLE", P(GL_ProgramUniform4iEXTContextANGLE)}, {"glProgramUniform4iv", P(GL_ProgramUniform4iv)}, - {"glProgramUniform4ivContextANGLE", P(GL_ProgramUniform4ivContextANGLE)}, {"glProgramUniform4ivEXT", P(GL_ProgramUniform4ivEXT)}, - {"glProgramUniform4ivEXTContextANGLE", P(GL_ProgramUniform4ivEXTContextANGLE)}, {"glProgramUniform4ui", P(GL_ProgramUniform4ui)}, - {"glProgramUniform4uiContextANGLE", P(GL_ProgramUniform4uiContextANGLE)}, {"glProgramUniform4uiEXT", P(GL_ProgramUniform4uiEXT)}, - {"glProgramUniform4uiEXTContextANGLE", P(GL_ProgramUniform4uiEXTContextANGLE)}, {"glProgramUniform4uiv", P(GL_ProgramUniform4uiv)}, - {"glProgramUniform4uivContextANGLE", P(GL_ProgramUniform4uivContextANGLE)}, {"glProgramUniform4uivEXT", P(GL_ProgramUniform4uivEXT)}, - {"glProgramUniform4uivEXTContextANGLE", P(GL_ProgramUniform4uivEXTContextANGLE)}, {"glProgramUniformMatrix2fv", P(GL_ProgramUniformMatrix2fv)}, - {"glProgramUniformMatrix2fvContextANGLE", P(GL_ProgramUniformMatrix2fvContextANGLE)}, {"glProgramUniformMatrix2fvEXT", P(GL_ProgramUniformMatrix2fvEXT)}, - {"glProgramUniformMatrix2fvEXTContextANGLE", P(GL_ProgramUniformMatrix2fvEXTContextANGLE)}, {"glProgramUniformMatrix2x3fv", P(GL_ProgramUniformMatrix2x3fv)}, - {"glProgramUniformMatrix2x3fvContextANGLE", P(GL_ProgramUniformMatrix2x3fvContextANGLE)}, {"glProgramUniformMatrix2x3fvEXT", P(GL_ProgramUniformMatrix2x3fvEXT)}, - {"glProgramUniformMatrix2x3fvEXTContextANGLE", P(GL_ProgramUniformMatrix2x3fvEXTContextANGLE)}, {"glProgramUniformMatrix2x4fv", P(GL_ProgramUniformMatrix2x4fv)}, - {"glProgramUniformMatrix2x4fvContextANGLE", P(GL_ProgramUniformMatrix2x4fvContextANGLE)}, {"glProgramUniformMatrix2x4fvEXT", P(GL_ProgramUniformMatrix2x4fvEXT)}, - {"glProgramUniformMatrix2x4fvEXTContextANGLE", P(GL_ProgramUniformMatrix2x4fvEXTContextANGLE)}, {"glProgramUniformMatrix3fv", P(GL_ProgramUniformMatrix3fv)}, - {"glProgramUniformMatrix3fvContextANGLE", P(GL_ProgramUniformMatrix3fvContextANGLE)}, {"glProgramUniformMatrix3fvEXT", P(GL_ProgramUniformMatrix3fvEXT)}, - {"glProgramUniformMatrix3fvEXTContextANGLE", P(GL_ProgramUniformMatrix3fvEXTContextANGLE)}, {"glProgramUniformMatrix3x2fv", P(GL_ProgramUniformMatrix3x2fv)}, - {"glProgramUniformMatrix3x2fvContextANGLE", P(GL_ProgramUniformMatrix3x2fvContextANGLE)}, {"glProgramUniformMatrix3x2fvEXT", P(GL_ProgramUniformMatrix3x2fvEXT)}, - {"glProgramUniformMatrix3x2fvEXTContextANGLE", P(GL_ProgramUniformMatrix3x2fvEXTContextANGLE)}, {"glProgramUniformMatrix3x4fv", P(GL_ProgramUniformMatrix3x4fv)}, - {"glProgramUniformMatrix3x4fvContextANGLE", P(GL_ProgramUniformMatrix3x4fvContextANGLE)}, {"glProgramUniformMatrix3x4fvEXT", P(GL_ProgramUniformMatrix3x4fvEXT)}, - {"glProgramUniformMatrix3x4fvEXTContextANGLE", P(GL_ProgramUniformMatrix3x4fvEXTContextANGLE)}, {"glProgramUniformMatrix4fv", P(GL_ProgramUniformMatrix4fv)}, - {"glProgramUniformMatrix4fvContextANGLE", P(GL_ProgramUniformMatrix4fvContextANGLE)}, {"glProgramUniformMatrix4fvEXT", P(GL_ProgramUniformMatrix4fvEXT)}, - {"glProgramUniformMatrix4fvEXTContextANGLE", P(GL_ProgramUniformMatrix4fvEXTContextANGLE)}, {"glProgramUniformMatrix4x2fv", P(GL_ProgramUniformMatrix4x2fv)}, - {"glProgramUniformMatrix4x2fvContextANGLE", P(GL_ProgramUniformMatrix4x2fvContextANGLE)}, {"glProgramUniformMatrix4x2fvEXT", P(GL_ProgramUniformMatrix4x2fvEXT)}, - {"glProgramUniformMatrix4x2fvEXTContextANGLE", P(GL_ProgramUniformMatrix4x2fvEXTContextANGLE)}, {"glProgramUniformMatrix4x3fv", P(GL_ProgramUniformMatrix4x3fv)}, - {"glProgramUniformMatrix4x3fvContextANGLE", P(GL_ProgramUniformMatrix4x3fvContextANGLE)}, {"glProgramUniformMatrix4x3fvEXT", P(GL_ProgramUniformMatrix4x3fvEXT)}, - {"glProgramUniformMatrix4x3fvEXTContextANGLE", P(GL_ProgramUniformMatrix4x3fvEXTContextANGLE)}, {"glProvokingVertexANGLE", P(GL_ProvokingVertexANGLE)}, - {"glProvokingVertexANGLEContextANGLE", P(GL_ProvokingVertexANGLEContextANGLE)}, {"glPushDebugGroup", P(GL_PushDebugGroup)}, - {"glPushDebugGroupContextANGLE", P(GL_PushDebugGroupContextANGLE)}, {"glPushDebugGroupKHR", P(GL_PushDebugGroupKHR)}, - {"glPushDebugGroupKHRContextANGLE", P(GL_PushDebugGroupKHRContextANGLE)}, {"glPushGroupMarkerEXT", P(GL_PushGroupMarkerEXT)}, - {"glPushGroupMarkerEXTContextANGLE", P(GL_PushGroupMarkerEXTContextANGLE)}, {"glPushMatrix", P(GL_PushMatrix)}, - {"glPushMatrixContextANGLE", P(GL_PushMatrixContextANGLE)}, {"glQueryCounterEXT", P(GL_QueryCounterEXT)}, - {"glQueryCounterEXTContextANGLE", P(GL_QueryCounterEXTContextANGLE)}, {"glQueryMatrixxOES", P(GL_QueryMatrixxOES)}, - {"glQueryMatrixxOESContextANGLE", P(GL_QueryMatrixxOESContextANGLE)}, {"glReadBuffer", P(GL_ReadBuffer)}, - {"glReadBufferContextANGLE", P(GL_ReadBufferContextANGLE)}, {"glReadPixels", P(GL_ReadPixels)}, - {"glReadPixelsContextANGLE", P(GL_ReadPixelsContextANGLE)}, {"glReadPixelsRobustANGLE", P(GL_ReadPixelsRobustANGLE)}, - {"glReadPixelsRobustANGLEContextANGLE", P(GL_ReadPixelsRobustANGLEContextANGLE)}, {"glReadnPixels", P(GL_ReadnPixels)}, - {"glReadnPixelsContextANGLE", P(GL_ReadnPixelsContextANGLE)}, {"glReadnPixelsEXT", P(GL_ReadnPixelsEXT)}, - {"glReadnPixelsEXTContextANGLE", P(GL_ReadnPixelsEXTContextANGLE)}, {"glReadnPixelsRobustANGLE", P(GL_ReadnPixelsRobustANGLE)}, - {"glReadnPixelsRobustANGLEContextANGLE", P(GL_ReadnPixelsRobustANGLEContextANGLE)}, {"glReleaseShaderCompiler", P(GL_ReleaseShaderCompiler)}, - {"glReleaseShaderCompilerContextANGLE", P(GL_ReleaseShaderCompilerContextANGLE)}, {"glRenderbufferStorage", P(GL_RenderbufferStorage)}, - {"glRenderbufferStorageContextANGLE", P(GL_RenderbufferStorageContextANGLE)}, {"glRenderbufferStorageMultisample", P(GL_RenderbufferStorageMultisample)}, {"glRenderbufferStorageMultisampleANGLE", P(GL_RenderbufferStorageMultisampleANGLE)}, - {"glRenderbufferStorageMultisampleANGLEContextANGLE", - P(GL_RenderbufferStorageMultisampleANGLEContextANGLE)}, - {"glRenderbufferStorageMultisampleContextANGLE", - P(GL_RenderbufferStorageMultisampleContextANGLE)}, {"glRenderbufferStorageMultisampleEXT", P(GL_RenderbufferStorageMultisampleEXT)}, - {"glRenderbufferStorageMultisampleEXTContextANGLE", - P(GL_RenderbufferStorageMultisampleEXTContextANGLE)}, {"glRenderbufferStorageOES", P(GL_RenderbufferStorageOES)}, - {"glRenderbufferStorageOESContextANGLE", P(GL_RenderbufferStorageOESContextANGLE)}, {"glRequestExtensionANGLE", P(GL_RequestExtensionANGLE)}, - {"glRequestExtensionANGLEContextANGLE", P(GL_RequestExtensionANGLEContextANGLE)}, {"glResumeTransformFeedback", P(GL_ResumeTransformFeedback)}, - {"glResumeTransformFeedbackContextANGLE", P(GL_ResumeTransformFeedbackContextANGLE)}, {"glRotatef", P(GL_Rotatef)}, - {"glRotatefContextANGLE", P(GL_RotatefContextANGLE)}, {"glRotatex", P(GL_Rotatex)}, - {"glRotatexContextANGLE", P(GL_RotatexContextANGLE)}, {"glSampleCoverage", P(GL_SampleCoverage)}, - {"glSampleCoverageContextANGLE", P(GL_SampleCoverageContextANGLE)}, {"glSampleCoveragex", P(GL_SampleCoveragex)}, - {"glSampleCoveragexContextANGLE", P(GL_SampleCoveragexContextANGLE)}, {"glSampleMaski", P(GL_SampleMaski)}, {"glSampleMaskiANGLE", P(GL_SampleMaskiANGLE)}, - {"glSampleMaskiANGLEContextANGLE", P(GL_SampleMaskiANGLEContextANGLE)}, - {"glSampleMaskiContextANGLE", P(GL_SampleMaskiContextANGLE)}, {"glSamplerParameterIiv", P(GL_SamplerParameterIiv)}, - {"glSamplerParameterIivContextANGLE", P(GL_SamplerParameterIivContextANGLE)}, {"glSamplerParameterIivEXT", P(GL_SamplerParameterIivEXT)}, - {"glSamplerParameterIivEXTContextANGLE", P(GL_SamplerParameterIivEXTContextANGLE)}, {"glSamplerParameterIivOES", P(GL_SamplerParameterIivOES)}, - {"glSamplerParameterIivOESContextANGLE", P(GL_SamplerParameterIivOESContextANGLE)}, {"glSamplerParameterIivRobustANGLE", P(GL_SamplerParameterIivRobustANGLE)}, - {"glSamplerParameterIivRobustANGLEContextANGLE", - P(GL_SamplerParameterIivRobustANGLEContextANGLE)}, {"glSamplerParameterIuiv", P(GL_SamplerParameterIuiv)}, - {"glSamplerParameterIuivContextANGLE", P(GL_SamplerParameterIuivContextANGLE)}, {"glSamplerParameterIuivEXT", P(GL_SamplerParameterIuivEXT)}, - {"glSamplerParameterIuivEXTContextANGLE", P(GL_SamplerParameterIuivEXTContextANGLE)}, {"glSamplerParameterIuivOES", P(GL_SamplerParameterIuivOES)}, - {"glSamplerParameterIuivOESContextANGLE", P(GL_SamplerParameterIuivOESContextANGLE)}, {"glSamplerParameterIuivRobustANGLE", P(GL_SamplerParameterIuivRobustANGLE)}, - {"glSamplerParameterIuivRobustANGLEContextANGLE", - P(GL_SamplerParameterIuivRobustANGLEContextANGLE)}, {"glSamplerParameterf", P(GL_SamplerParameterf)}, - {"glSamplerParameterfContextANGLE", P(GL_SamplerParameterfContextANGLE)}, {"glSamplerParameterfv", P(GL_SamplerParameterfv)}, - {"glSamplerParameterfvContextANGLE", P(GL_SamplerParameterfvContextANGLE)}, {"glSamplerParameterfvRobustANGLE", P(GL_SamplerParameterfvRobustANGLE)}, - {"glSamplerParameterfvRobustANGLEContextANGLE", - P(GL_SamplerParameterfvRobustANGLEContextANGLE)}, {"glSamplerParameteri", P(GL_SamplerParameteri)}, - {"glSamplerParameteriContextANGLE", P(GL_SamplerParameteriContextANGLE)}, {"glSamplerParameteriv", P(GL_SamplerParameteriv)}, - {"glSamplerParameterivContextANGLE", P(GL_SamplerParameterivContextANGLE)}, {"glSamplerParameterivRobustANGLE", P(GL_SamplerParameterivRobustANGLE)}, - {"glSamplerParameterivRobustANGLEContextANGLE", - P(GL_SamplerParameterivRobustANGLEContextANGLE)}, {"glScalef", P(GL_Scalef)}, - {"glScalefContextANGLE", P(GL_ScalefContextANGLE)}, {"glScalex", P(GL_Scalex)}, - {"glScalexContextANGLE", P(GL_ScalexContextANGLE)}, {"glScissor", P(GL_Scissor)}, - {"glScissorContextANGLE", P(GL_ScissorContextANGLE)}, {"glSemaphoreParameterui64vEXT", P(GL_SemaphoreParameterui64vEXT)}, - {"glSemaphoreParameterui64vEXTContextANGLE", P(GL_SemaphoreParameterui64vEXTContextANGLE)}, {"glSetFenceNV", P(GL_SetFenceNV)}, - {"glSetFenceNVContextANGLE", P(GL_SetFenceNVContextANGLE)}, {"glShadeModel", P(GL_ShadeModel)}, - {"glShadeModelContextANGLE", P(GL_ShadeModelContextANGLE)}, {"glShaderBinary", P(GL_ShaderBinary)}, - {"glShaderBinaryContextANGLE", P(GL_ShaderBinaryContextANGLE)}, {"glShaderSource", P(GL_ShaderSource)}, - {"glShaderSourceContextANGLE", P(GL_ShaderSourceContextANGLE)}, {"glSignalSemaphoreEXT", P(GL_SignalSemaphoreEXT)}, - {"glSignalSemaphoreEXTContextANGLE", P(GL_SignalSemaphoreEXTContextANGLE)}, {"glStencilFunc", P(GL_StencilFunc)}, - {"glStencilFuncContextANGLE", P(GL_StencilFuncContextANGLE)}, {"glStencilFuncSeparate", P(GL_StencilFuncSeparate)}, - {"glStencilFuncSeparateContextANGLE", P(GL_StencilFuncSeparateContextANGLE)}, {"glStencilMask", P(GL_StencilMask)}, - {"glStencilMaskContextANGLE", P(GL_StencilMaskContextANGLE)}, {"glStencilMaskSeparate", P(GL_StencilMaskSeparate)}, - {"glStencilMaskSeparateContextANGLE", P(GL_StencilMaskSeparateContextANGLE)}, {"glStencilOp", P(GL_StencilOp)}, - {"glStencilOpContextANGLE", P(GL_StencilOpContextANGLE)}, {"glStencilOpSeparate", P(GL_StencilOpSeparate)}, - {"glStencilOpSeparateContextANGLE", P(GL_StencilOpSeparateContextANGLE)}, {"glTestFenceNV", P(GL_TestFenceNV)}, - {"glTestFenceNVContextANGLE", P(GL_TestFenceNVContextANGLE)}, {"glTexBuffer", P(GL_TexBuffer)}, - {"glTexBufferContextANGLE", P(GL_TexBufferContextANGLE)}, {"glTexBufferEXT", P(GL_TexBufferEXT)}, - {"glTexBufferEXTContextANGLE", P(GL_TexBufferEXTContextANGLE)}, {"glTexBufferOES", P(GL_TexBufferOES)}, - {"glTexBufferOESContextANGLE", P(GL_TexBufferOESContextANGLE)}, {"glTexBufferRange", P(GL_TexBufferRange)}, - {"glTexBufferRangeContextANGLE", P(GL_TexBufferRangeContextANGLE)}, {"glTexBufferRangeEXT", P(GL_TexBufferRangeEXT)}, - {"glTexBufferRangeEXTContextANGLE", P(GL_TexBufferRangeEXTContextANGLE)}, {"glTexBufferRangeOES", P(GL_TexBufferRangeOES)}, - {"glTexBufferRangeOESContextANGLE", P(GL_TexBufferRangeOESContextANGLE)}, {"glTexCoordPointer", P(GL_TexCoordPointer)}, - {"glTexCoordPointerContextANGLE", P(GL_TexCoordPointerContextANGLE)}, {"glTexEnvf", P(GL_TexEnvf)}, - {"glTexEnvfContextANGLE", P(GL_TexEnvfContextANGLE)}, {"glTexEnvfv", P(GL_TexEnvfv)}, - {"glTexEnvfvContextANGLE", P(GL_TexEnvfvContextANGLE)}, {"glTexEnvi", P(GL_TexEnvi)}, - {"glTexEnviContextANGLE", P(GL_TexEnviContextANGLE)}, {"glTexEnviv", P(GL_TexEnviv)}, - {"glTexEnvivContextANGLE", P(GL_TexEnvivContextANGLE)}, {"glTexEnvx", P(GL_TexEnvx)}, - {"glTexEnvxContextANGLE", P(GL_TexEnvxContextANGLE)}, {"glTexEnvxv", P(GL_TexEnvxv)}, - {"glTexEnvxvContextANGLE", P(GL_TexEnvxvContextANGLE)}, {"glTexGenfOES", P(GL_TexGenfOES)}, - {"glTexGenfOESContextANGLE", P(GL_TexGenfOESContextANGLE)}, {"glTexGenfvOES", P(GL_TexGenfvOES)}, - {"glTexGenfvOESContextANGLE", P(GL_TexGenfvOESContextANGLE)}, {"glTexGeniOES", P(GL_TexGeniOES)}, - {"glTexGeniOESContextANGLE", P(GL_TexGeniOESContextANGLE)}, {"glTexGenivOES", P(GL_TexGenivOES)}, - {"glTexGenivOESContextANGLE", P(GL_TexGenivOESContextANGLE)}, {"glTexGenxOES", P(GL_TexGenxOES)}, - {"glTexGenxOESContextANGLE", P(GL_TexGenxOESContextANGLE)}, {"glTexGenxvOES", P(GL_TexGenxvOES)}, - {"glTexGenxvOESContextANGLE", P(GL_TexGenxvOESContextANGLE)}, {"glTexImage2D", P(GL_TexImage2D)}, - {"glTexImage2DContextANGLE", P(GL_TexImage2DContextANGLE)}, {"glTexImage2DExternalANGLE", P(GL_TexImage2DExternalANGLE)}, - {"glTexImage2DExternalANGLEContextANGLE", P(GL_TexImage2DExternalANGLEContextANGLE)}, {"glTexImage2DRobustANGLE", P(GL_TexImage2DRobustANGLE)}, - {"glTexImage2DRobustANGLEContextANGLE", P(GL_TexImage2DRobustANGLEContextANGLE)}, {"glTexImage3D", P(GL_TexImage3D)}, - {"glTexImage3DContextANGLE", P(GL_TexImage3DContextANGLE)}, {"glTexImage3DOES", P(GL_TexImage3DOES)}, - {"glTexImage3DOESContextANGLE", P(GL_TexImage3DOESContextANGLE)}, {"glTexImage3DRobustANGLE", P(GL_TexImage3DRobustANGLE)}, - {"glTexImage3DRobustANGLEContextANGLE", P(GL_TexImage3DRobustANGLEContextANGLE)}, {"glTexParameterIiv", P(GL_TexParameterIiv)}, - {"glTexParameterIivContextANGLE", P(GL_TexParameterIivContextANGLE)}, {"glTexParameterIivEXT", P(GL_TexParameterIivEXT)}, - {"glTexParameterIivEXTContextANGLE", P(GL_TexParameterIivEXTContextANGLE)}, {"glTexParameterIivOES", P(GL_TexParameterIivOES)}, - {"glTexParameterIivOESContextANGLE", P(GL_TexParameterIivOESContextANGLE)}, {"glTexParameterIivRobustANGLE", P(GL_TexParameterIivRobustANGLE)}, - {"glTexParameterIivRobustANGLEContextANGLE", P(GL_TexParameterIivRobustANGLEContextANGLE)}, {"glTexParameterIuiv", P(GL_TexParameterIuiv)}, - {"glTexParameterIuivContextANGLE", P(GL_TexParameterIuivContextANGLE)}, {"glTexParameterIuivEXT", P(GL_TexParameterIuivEXT)}, - {"glTexParameterIuivEXTContextANGLE", P(GL_TexParameterIuivEXTContextANGLE)}, {"glTexParameterIuivOES", P(GL_TexParameterIuivOES)}, - {"glTexParameterIuivOESContextANGLE", P(GL_TexParameterIuivOESContextANGLE)}, {"glTexParameterIuivRobustANGLE", P(GL_TexParameterIuivRobustANGLE)}, - {"glTexParameterIuivRobustANGLEContextANGLE", P(GL_TexParameterIuivRobustANGLEContextANGLE)}, {"glTexParameterf", P(GL_TexParameterf)}, - {"glTexParameterfContextANGLE", P(GL_TexParameterfContextANGLE)}, {"glTexParameterfv", P(GL_TexParameterfv)}, - {"glTexParameterfvContextANGLE", P(GL_TexParameterfvContextANGLE)}, {"glTexParameterfvRobustANGLE", P(GL_TexParameterfvRobustANGLE)}, - {"glTexParameterfvRobustANGLEContextANGLE", P(GL_TexParameterfvRobustANGLEContextANGLE)}, {"glTexParameteri", P(GL_TexParameteri)}, - {"glTexParameteriContextANGLE", P(GL_TexParameteriContextANGLE)}, {"glTexParameteriv", P(GL_TexParameteriv)}, - {"glTexParameterivContextANGLE", P(GL_TexParameterivContextANGLE)}, {"glTexParameterivRobustANGLE", P(GL_TexParameterivRobustANGLE)}, - {"glTexParameterivRobustANGLEContextANGLE", P(GL_TexParameterivRobustANGLEContextANGLE)}, {"glTexParameterx", P(GL_TexParameterx)}, - {"glTexParameterxContextANGLE", P(GL_TexParameterxContextANGLE)}, {"glTexParameterxv", P(GL_TexParameterxv)}, - {"glTexParameterxvContextANGLE", P(GL_TexParameterxvContextANGLE)}, {"glTexStorage1DEXT", P(GL_TexStorage1DEXT)}, - {"glTexStorage1DEXTContextANGLE", P(GL_TexStorage1DEXTContextANGLE)}, {"glTexStorage2D", P(GL_TexStorage2D)}, - {"glTexStorage2DContextANGLE", P(GL_TexStorage2DContextANGLE)}, {"glTexStorage2DEXT", P(GL_TexStorage2DEXT)}, - {"glTexStorage2DEXTContextANGLE", P(GL_TexStorage2DEXTContextANGLE)}, {"glTexStorage2DMultisample", P(GL_TexStorage2DMultisample)}, {"glTexStorage2DMultisampleANGLE", P(GL_TexStorage2DMultisampleANGLE)}, - {"glTexStorage2DMultisampleANGLEContextANGLE", P(GL_TexStorage2DMultisampleANGLEContextANGLE)}, - {"glTexStorage2DMultisampleContextANGLE", P(GL_TexStorage2DMultisampleContextANGLE)}, {"glTexStorage3D", P(GL_TexStorage3D)}, - {"glTexStorage3DContextANGLE", P(GL_TexStorage3DContextANGLE)}, {"glTexStorage3DEXT", P(GL_TexStorage3DEXT)}, - {"glTexStorage3DEXTContextANGLE", P(GL_TexStorage3DEXTContextANGLE)}, {"glTexStorage3DMultisample", P(GL_TexStorage3DMultisample)}, - {"glTexStorage3DMultisampleContextANGLE", P(GL_TexStorage3DMultisampleContextANGLE)}, {"glTexStorage3DMultisampleOES", P(GL_TexStorage3DMultisampleOES)}, - {"glTexStorage3DMultisampleOESContextANGLE", P(GL_TexStorage3DMultisampleOESContextANGLE)}, {"glTexStorageMem2DEXT", P(GL_TexStorageMem2DEXT)}, - {"glTexStorageMem2DEXTContextANGLE", P(GL_TexStorageMem2DEXTContextANGLE)}, {"glTexStorageMem2DMultisampleEXT", P(GL_TexStorageMem2DMultisampleEXT)}, - {"glTexStorageMem2DMultisampleEXTContextANGLE", - P(GL_TexStorageMem2DMultisampleEXTContextANGLE)}, {"glTexStorageMem3DEXT", P(GL_TexStorageMem3DEXT)}, - {"glTexStorageMem3DEXTContextANGLE", P(GL_TexStorageMem3DEXTContextANGLE)}, {"glTexStorageMem3DMultisampleEXT", P(GL_TexStorageMem3DMultisampleEXT)}, - {"glTexStorageMem3DMultisampleEXTContextANGLE", - P(GL_TexStorageMem3DMultisampleEXTContextANGLE)}, {"glTexStorageMemFlags2DANGLE", P(GL_TexStorageMemFlags2DANGLE)}, - {"glTexStorageMemFlags2DANGLEContextANGLE", P(GL_TexStorageMemFlags2DANGLEContextANGLE)}, {"glTexStorageMemFlags2DMultisampleANGLE", P(GL_TexStorageMemFlags2DMultisampleANGLE)}, - {"glTexStorageMemFlags2DMultisampleANGLEContextANGLE", - P(GL_TexStorageMemFlags2DMultisampleANGLEContextANGLE)}, {"glTexStorageMemFlags3DANGLE", P(GL_TexStorageMemFlags3DANGLE)}, - {"glTexStorageMemFlags3DANGLEContextANGLE", P(GL_TexStorageMemFlags3DANGLEContextANGLE)}, {"glTexStorageMemFlags3DMultisampleANGLE", P(GL_TexStorageMemFlags3DMultisampleANGLE)}, - {"glTexStorageMemFlags3DMultisampleANGLEContextANGLE", - P(GL_TexStorageMemFlags3DMultisampleANGLEContextANGLE)}, {"glTexSubImage2D", P(GL_TexSubImage2D)}, - {"glTexSubImage2DContextANGLE", P(GL_TexSubImage2DContextANGLE)}, {"glTexSubImage2DRobustANGLE", P(GL_TexSubImage2DRobustANGLE)}, - {"glTexSubImage2DRobustANGLEContextANGLE", P(GL_TexSubImage2DRobustANGLEContextANGLE)}, {"glTexSubImage3D", P(GL_TexSubImage3D)}, - {"glTexSubImage3DContextANGLE", P(GL_TexSubImage3DContextANGLE)}, {"glTexSubImage3DOES", P(GL_TexSubImage3DOES)}, - {"glTexSubImage3DOESContextANGLE", P(GL_TexSubImage3DOESContextANGLE)}, {"glTexSubImage3DRobustANGLE", P(GL_TexSubImage3DRobustANGLE)}, - {"glTexSubImage3DRobustANGLEContextANGLE", P(GL_TexSubImage3DRobustANGLEContextANGLE)}, {"glTransformFeedbackVaryings", P(GL_TransformFeedbackVaryings)}, - {"glTransformFeedbackVaryingsContextANGLE", P(GL_TransformFeedbackVaryingsContextANGLE)}, {"glTranslatef", P(GL_Translatef)}, - {"glTranslatefContextANGLE", P(GL_TranslatefContextANGLE)}, {"glTranslatex", P(GL_Translatex)}, - {"glTranslatexContextANGLE", P(GL_TranslatexContextANGLE)}, {"glUniform1f", P(GL_Uniform1f)}, - {"glUniform1fContextANGLE", P(GL_Uniform1fContextANGLE)}, {"glUniform1fv", P(GL_Uniform1fv)}, - {"glUniform1fvContextANGLE", P(GL_Uniform1fvContextANGLE)}, {"glUniform1i", P(GL_Uniform1i)}, - {"glUniform1iContextANGLE", P(GL_Uniform1iContextANGLE)}, {"glUniform1iv", P(GL_Uniform1iv)}, - {"glUniform1ivContextANGLE", P(GL_Uniform1ivContextANGLE)}, {"glUniform1ui", P(GL_Uniform1ui)}, - {"glUniform1uiContextANGLE", P(GL_Uniform1uiContextANGLE)}, {"glUniform1uiv", P(GL_Uniform1uiv)}, - {"glUniform1uivContextANGLE", P(GL_Uniform1uivContextANGLE)}, {"glUniform2f", P(GL_Uniform2f)}, - {"glUniform2fContextANGLE", P(GL_Uniform2fContextANGLE)}, {"glUniform2fv", P(GL_Uniform2fv)}, - {"glUniform2fvContextANGLE", P(GL_Uniform2fvContextANGLE)}, {"glUniform2i", P(GL_Uniform2i)}, - {"glUniform2iContextANGLE", P(GL_Uniform2iContextANGLE)}, {"glUniform2iv", P(GL_Uniform2iv)}, - {"glUniform2ivContextANGLE", P(GL_Uniform2ivContextANGLE)}, {"glUniform2ui", P(GL_Uniform2ui)}, - {"glUniform2uiContextANGLE", P(GL_Uniform2uiContextANGLE)}, {"glUniform2uiv", P(GL_Uniform2uiv)}, - {"glUniform2uivContextANGLE", P(GL_Uniform2uivContextANGLE)}, {"glUniform3f", P(GL_Uniform3f)}, - {"glUniform3fContextANGLE", P(GL_Uniform3fContextANGLE)}, {"glUniform3fv", P(GL_Uniform3fv)}, - {"glUniform3fvContextANGLE", P(GL_Uniform3fvContextANGLE)}, {"glUniform3i", P(GL_Uniform3i)}, - {"glUniform3iContextANGLE", P(GL_Uniform3iContextANGLE)}, {"glUniform3iv", P(GL_Uniform3iv)}, - {"glUniform3ivContextANGLE", P(GL_Uniform3ivContextANGLE)}, {"glUniform3ui", P(GL_Uniform3ui)}, - {"glUniform3uiContextANGLE", P(GL_Uniform3uiContextANGLE)}, {"glUniform3uiv", P(GL_Uniform3uiv)}, - {"glUniform3uivContextANGLE", P(GL_Uniform3uivContextANGLE)}, {"glUniform4f", P(GL_Uniform4f)}, - {"glUniform4fContextANGLE", P(GL_Uniform4fContextANGLE)}, {"glUniform4fv", P(GL_Uniform4fv)}, - {"glUniform4fvContextANGLE", P(GL_Uniform4fvContextANGLE)}, {"glUniform4i", P(GL_Uniform4i)}, - {"glUniform4iContextANGLE", P(GL_Uniform4iContextANGLE)}, {"glUniform4iv", P(GL_Uniform4iv)}, - {"glUniform4ivContextANGLE", P(GL_Uniform4ivContextANGLE)}, {"glUniform4ui", P(GL_Uniform4ui)}, - {"glUniform4uiContextANGLE", P(GL_Uniform4uiContextANGLE)}, {"glUniform4uiv", P(GL_Uniform4uiv)}, - {"glUniform4uivContextANGLE", P(GL_Uniform4uivContextANGLE)}, {"glUniformBlockBinding", P(GL_UniformBlockBinding)}, - {"glUniformBlockBindingContextANGLE", P(GL_UniformBlockBindingContextANGLE)}, {"glUniformMatrix2fv", P(GL_UniformMatrix2fv)}, - {"glUniformMatrix2fvContextANGLE", P(GL_UniformMatrix2fvContextANGLE)}, {"glUniformMatrix2x3fv", P(GL_UniformMatrix2x3fv)}, - {"glUniformMatrix2x3fvContextANGLE", P(GL_UniformMatrix2x3fvContextANGLE)}, {"glUniformMatrix2x4fv", P(GL_UniformMatrix2x4fv)}, - {"glUniformMatrix2x4fvContextANGLE", P(GL_UniformMatrix2x4fvContextANGLE)}, {"glUniformMatrix3fv", P(GL_UniformMatrix3fv)}, - {"glUniformMatrix3fvContextANGLE", P(GL_UniformMatrix3fvContextANGLE)}, {"glUniformMatrix3x2fv", P(GL_UniformMatrix3x2fv)}, - {"glUniformMatrix3x2fvContextANGLE", P(GL_UniformMatrix3x2fvContextANGLE)}, {"glUniformMatrix3x4fv", P(GL_UniformMatrix3x4fv)}, - {"glUniformMatrix3x4fvContextANGLE", P(GL_UniformMatrix3x4fvContextANGLE)}, {"glUniformMatrix4fv", P(GL_UniformMatrix4fv)}, - {"glUniformMatrix4fvContextANGLE", P(GL_UniformMatrix4fvContextANGLE)}, {"glUniformMatrix4x2fv", P(GL_UniformMatrix4x2fv)}, - {"glUniformMatrix4x2fvContextANGLE", P(GL_UniformMatrix4x2fvContextANGLE)}, {"glUniformMatrix4x3fv", P(GL_UniformMatrix4x3fv)}, - {"glUniformMatrix4x3fvContextANGLE", P(GL_UniformMatrix4x3fvContextANGLE)}, {"glUnmapBuffer", P(GL_UnmapBuffer)}, - {"glUnmapBufferContextANGLE", P(GL_UnmapBufferContextANGLE)}, {"glUnmapBufferOES", P(GL_UnmapBufferOES)}, - {"glUnmapBufferOESContextANGLE", P(GL_UnmapBufferOESContextANGLE)}, {"glUseProgram", P(GL_UseProgram)}, - {"glUseProgramContextANGLE", P(GL_UseProgramContextANGLE)}, {"glUseProgramStages", P(GL_UseProgramStages)}, - {"glUseProgramStagesContextANGLE", P(GL_UseProgramStagesContextANGLE)}, {"glUseProgramStagesEXT", P(GL_UseProgramStagesEXT)}, - {"glUseProgramStagesEXTContextANGLE", P(GL_UseProgramStagesEXTContextANGLE)}, {"glValidateProgram", P(GL_ValidateProgram)}, - {"glValidateProgramContextANGLE", P(GL_ValidateProgramContextANGLE)}, {"glValidateProgramPipeline", P(GL_ValidateProgramPipeline)}, - {"glValidateProgramPipelineContextANGLE", P(GL_ValidateProgramPipelineContextANGLE)}, {"glValidateProgramPipelineEXT", P(GL_ValidateProgramPipelineEXT)}, - {"glValidateProgramPipelineEXTContextANGLE", P(GL_ValidateProgramPipelineEXTContextANGLE)}, {"glVertexAttrib1f", P(GL_VertexAttrib1f)}, - {"glVertexAttrib1fContextANGLE", P(GL_VertexAttrib1fContextANGLE)}, {"glVertexAttrib1fv", P(GL_VertexAttrib1fv)}, - {"glVertexAttrib1fvContextANGLE", P(GL_VertexAttrib1fvContextANGLE)}, {"glVertexAttrib2f", P(GL_VertexAttrib2f)}, - {"glVertexAttrib2fContextANGLE", P(GL_VertexAttrib2fContextANGLE)}, {"glVertexAttrib2fv", P(GL_VertexAttrib2fv)}, - {"glVertexAttrib2fvContextANGLE", P(GL_VertexAttrib2fvContextANGLE)}, {"glVertexAttrib3f", P(GL_VertexAttrib3f)}, - {"glVertexAttrib3fContextANGLE", P(GL_VertexAttrib3fContextANGLE)}, {"glVertexAttrib3fv", P(GL_VertexAttrib3fv)}, - {"glVertexAttrib3fvContextANGLE", P(GL_VertexAttrib3fvContextANGLE)}, {"glVertexAttrib4f", P(GL_VertexAttrib4f)}, - {"glVertexAttrib4fContextANGLE", P(GL_VertexAttrib4fContextANGLE)}, {"glVertexAttrib4fv", P(GL_VertexAttrib4fv)}, - {"glVertexAttrib4fvContextANGLE", P(GL_VertexAttrib4fvContextANGLE)}, {"glVertexAttribBinding", P(GL_VertexAttribBinding)}, - {"glVertexAttribBindingContextANGLE", P(GL_VertexAttribBindingContextANGLE)}, {"glVertexAttribDivisor", P(GL_VertexAttribDivisor)}, {"glVertexAttribDivisorANGLE", P(GL_VertexAttribDivisorANGLE)}, - {"glVertexAttribDivisorANGLEContextANGLE", P(GL_VertexAttribDivisorANGLEContextANGLE)}, - {"glVertexAttribDivisorContextANGLE", P(GL_VertexAttribDivisorContextANGLE)}, {"glVertexAttribDivisorEXT", P(GL_VertexAttribDivisorEXT)}, - {"glVertexAttribDivisorEXTContextANGLE", P(GL_VertexAttribDivisorEXTContextANGLE)}, {"glVertexAttribFormat", P(GL_VertexAttribFormat)}, - {"glVertexAttribFormatContextANGLE", P(GL_VertexAttribFormatContextANGLE)}, {"glVertexAttribI4i", P(GL_VertexAttribI4i)}, - {"glVertexAttribI4iContextANGLE", P(GL_VertexAttribI4iContextANGLE)}, {"glVertexAttribI4iv", P(GL_VertexAttribI4iv)}, - {"glVertexAttribI4ivContextANGLE", P(GL_VertexAttribI4ivContextANGLE)}, {"glVertexAttribI4ui", P(GL_VertexAttribI4ui)}, - {"glVertexAttribI4uiContextANGLE", P(GL_VertexAttribI4uiContextANGLE)}, {"glVertexAttribI4uiv", P(GL_VertexAttribI4uiv)}, - {"glVertexAttribI4uivContextANGLE", P(GL_VertexAttribI4uivContextANGLE)}, {"glVertexAttribIFormat", P(GL_VertexAttribIFormat)}, - {"glVertexAttribIFormatContextANGLE", P(GL_VertexAttribIFormatContextANGLE)}, {"glVertexAttribIPointer", P(GL_VertexAttribIPointer)}, - {"glVertexAttribIPointerContextANGLE", P(GL_VertexAttribIPointerContextANGLE)}, {"glVertexAttribPointer", P(GL_VertexAttribPointer)}, - {"glVertexAttribPointerContextANGLE", P(GL_VertexAttribPointerContextANGLE)}, {"glVertexBindingDivisor", P(GL_VertexBindingDivisor)}, - {"glVertexBindingDivisorContextANGLE", P(GL_VertexBindingDivisorContextANGLE)}, {"glVertexPointer", P(GL_VertexPointer)}, - {"glVertexPointerContextANGLE", P(GL_VertexPointerContextANGLE)}, {"glViewport", P(GL_Viewport)}, - {"glViewportContextANGLE", P(GL_ViewportContextANGLE)}, {"glWaitSemaphoreEXT", P(GL_WaitSemaphoreEXT)}, - {"glWaitSemaphoreEXTContextANGLE", P(GL_WaitSemaphoreEXTContextANGLE)}, {"glWaitSync", P(GL_WaitSync)}, - {"glWaitSyncContextANGLE", P(GL_WaitSyncContextANGLE)}, - {"glWeightPointerOES", P(GL_WeightPointerOES)}, - {"glWeightPointerOESContextANGLE", P(GL_WeightPointerOESContextANGLE)}}; + {"glWeightPointerOES", P(GL_WeightPointerOES)}}; -const size_t g_numProcs = 1663; +const size_t g_numProcs = 886; } // namespace egl diff --git a/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.h b/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.h deleted file mode 100644 --- a/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2012 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef THIRD_PARTY_COMPILER_ARRAYBOUNDSCLAMPER_H_ -#define THIRD_PARTY_COMPILER_ARRAYBOUNDSCLAMPER_H_ - -#include "compiler/translator/InfoSink.h" -#include "compiler/translator/IntermNode.h" - -namespace sh -{ - -class ArrayBoundsClamper -{ - public: - ArrayBoundsClamper(); - - // Must be set before compiling any shaders to ensure consistency - // between the translated shaders and any necessary prequel. - void SetClampingStrategy(ShArrayIndexClampingStrategy clampingStrategy); - - // Marks nodes in the tree that index arrays indirectly as - // requiring clamping. - void MarkIndirectArrayBoundsForClamping(TIntermNode *root); - - // If necessary, output array clamp function source into the shader source. - void OutputClampingFunctionDefinition(TInfoSinkBase &out) const; - - void Cleanup() { mArrayBoundsClampDefinitionNeeded = false; } - - private: - bool GetArrayBoundsClampDefinitionNeeded() const { return mArrayBoundsClampDefinitionNeeded; } - void SetArrayBoundsClampDefinitionNeeded() { mArrayBoundsClampDefinitionNeeded = true; } - - ShArrayIndexClampingStrategy mClampingStrategy; - bool mArrayBoundsClampDefinitionNeeded; -}; - -} // namespace sh - -#endif // THIRD_PARTY_COMPILER_ARRAYBOUNDSCLAMPER_H_ diff --git a/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.cpp b/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.cpp deleted file mode 100644 --- a/gfx/angle/checkout/src/third_party/compiler/ArrayBoundsClamper.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2012 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "third_party/compiler/ArrayBoundsClamper.h" - -#include "compiler/translator/tree_util/IntermTraverse.h" - -// The built-in 'clamp' instruction only accepts floats and returns a float. I -// iterated a few times with our driver team who examined the output from our -// compiler - they said the multiple casts generates more code than a single -// function call. An inline ternary operator might have been better, but since -// the index value might be an expression itself, we'd have to make temporary -// variables to avoid evaluating the expression multiple times. And making -// temporary variables was difficult because ANGLE would then need to make more -// brutal changes to the expression tree. - -const char *kIntClampBegin = "// BEGIN: Generated code for array bounds clamping\n\n"; -const char *kIntClampEnd = "// END: Generated code for array bounds clamping\n\n"; -const char *kIntClampDefinition = - "int webgl_int_clamp(int value, int minValue, int maxValue) { return ((value < minValue) ? " - "minValue : ((value > maxValue) ? maxValue : value)); }\n\n"; - -namespace sh -{ - -namespace -{ - -class ArrayBoundsClamperMarker : public TIntermTraverser -{ - public: - ArrayBoundsClamperMarker() : TIntermTraverser(true, false, false), mNeedsClamp(false) {} - - bool visitBinary(Visit visit, TIntermBinary *node) override - { - if (node->getOp() == EOpIndexIndirect) - { - TIntermTyped *left = node->getLeft(); - if (left->isArray() || left->isVector() || left->isMatrix()) - { - node->setAddIndexClamp(); - mNeedsClamp = true; - } - } - return true; - } - - bool GetNeedsClamp() { return mNeedsClamp; } - - private: - bool mNeedsClamp; -}; - -} // anonymous namespace - -ArrayBoundsClamper::ArrayBoundsClamper() - : mClampingStrategy(SH_CLAMP_WITH_CLAMP_INTRINSIC), mArrayBoundsClampDefinitionNeeded(false) -{} - -void ArrayBoundsClamper::SetClampingStrategy(ShArrayIndexClampingStrategy clampingStrategy) -{ - mClampingStrategy = clampingStrategy; -} - -void ArrayBoundsClamper::MarkIndirectArrayBoundsForClamping(TIntermNode *root) -{ - ASSERT(root); - - ArrayBoundsClamperMarker clamper; - root->traverse(&clamper); - if (clamper.GetNeedsClamp()) - { - SetArrayBoundsClampDefinitionNeeded(); - } -} - -void ArrayBoundsClamper::OutputClampingFunctionDefinition(TInfoSinkBase &out) const -{ - if (!mArrayBoundsClampDefinitionNeeded) - { - return; - } - if (mClampingStrategy != SH_CLAMP_WITH_USER_DEFINED_INT_CLAMP_FUNCTION) - { - return; - } - out << kIntClampBegin << kIntClampDefinition << kIntClampEnd; -} - -} // namespace sh diff --git a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h --- a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h +++ b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vk_icd.h @@ -31,11 +31,11 @@ // or vk_icdNegotiateLoaderICDInterfaceVersion. // Version 1 - Add support for vk_icdGetInstanceProcAddr. // Version 2 - Add Loader/ICD Interface version negotiation // via vk_icdNegotiateLoaderICDInterfaceVersion. // Version 3 - Add ICD creation/destruction of KHR_surface objects. -// Version 4 - Add unknown physical device extension qyering via +// Version 4 - Add unknown physical device extension querying via // vk_icdGetPhysicalDeviceProcAddr. // Version 5 - Tells ICDs that the loader is now paying attention to the // application version of Vulkan passed into the ApplicationInfo // structure during vkCreateInstance. This will tell the ICD // that if the loader is older, it should automatically fail a diff --git a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp --- a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp +++ b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp @@ -1,9 +1,9 @@ // Copyright 2015-2021 The Khronos Group Inc. -// +// // SPDX-License-Identifier: Apache-2.0 OR MIT -// +// // This header is generated from the Khronos Vulkan XML API Registry. #ifndef VULKAN_HPP #define VULKAN_HPP @@ -39,37 +39,59 @@ #include #include #include #if 17 <= VULKAN_HPP_CPP_VERSION -#include +# include #endif -#if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -# if !defined(VULKAN_HPP_NO_SMART_HANDLE) -# define VULKAN_HPP_NO_SMART_HANDLE -# endif +#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) +# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) +# define VULKAN_HPP_NO_SMART_HANDLE +# endif #else -# include -# include +# include +# include +#endif + +#if defined( VULKAN_HPP_NO_CONSTRUCTORS ) +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +# define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS +# endif +# if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS ) +# define VULKAN_HPP_NO_UNION_CONSTRUCTORS +# endif #endif -#if !defined(VULKAN_HPP_ASSERT) -# include -# define VULKAN_HPP_ASSERT assert +#if defined( VULKAN_HPP_NO_SETTERS ) +# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) +# define VULKAN_HPP_NO_STRUCT_SETTERS +# endif +# if !defined( VULKAN_HPP_NO_UNION_SETTERS ) +# define VULKAN_HPP_NO_UNION_SETTERS +# endif #endif -#if !defined(VULKAN_HPP_ASSERT_ON_RESULT) -# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT +#if !defined( VULKAN_HPP_ASSERT ) +# include +# define VULKAN_HPP_ASSERT assert +#endif + +#if !defined( VULKAN_HPP_ASSERT_ON_RESULT ) +# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT #endif -#if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL) -# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 +#if !defined( VULKAN_HPP_STATIC_ASSERT ) +# define VULKAN_HPP_STATIC_ASSERT static_assert +#endif + +#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL ) +# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 #endif #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1 -# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) # include # elif defined( _WIN32 ) typedef struct HINSTANCE__ * HINSTANCE; # if defined( _WIN64 ) typedef int64_t( __stdcall * FARPROC )(); @@ -80,92626 +102,10947 @@ extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule ); extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName ); # endif #endif -#if !defined(__has_include) -# define __has_include(x) false +#if !defined( __has_include ) +# define __has_include( x ) false #endif #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) -# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR +# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR +#endif +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) +# include #endif -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) -# include + +#if ( 201803 <= __cpp_lib_span ) +# define VULKAN_HPP_SUPPORT_SPAN +# include #endif - -static_assert( VK_HEADER_VERSION == 172 , "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 197, "Wrong VK_HEADER_VERSION!" ); // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) -# define VULKAN_HPP_TYPESAFE_CONVERSION -# endif +#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) +# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_CONVERSION +# endif #endif // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) // which is an expression in a constructor initializer list. -#if defined(major) - #undef major +#if defined( major ) +# undef major #endif -#if defined(minor) - #undef minor +#if defined( minor ) +# undef minor #endif // Windows defines MemoryBarrier which is deprecated and collides // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct. -#if defined(MemoryBarrier) - #undef MemoryBarrier +#if defined( MemoryBarrier ) +# undef MemoryBarrier #endif -#if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS) -# if defined(__clang__) -# if __has_feature(cxx_unrestricted_unions) -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined(__GNUC__) -# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -# if 40600 <= GCC_VERSION -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS ) +# if defined( __clang__ ) +# if __has_feature( cxx_unrestricted_unions ) +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( __GNUC__ ) +# define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) +# if 40600 <= GCC_VERSION +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( _MSC_VER ) +# if 1900 <= _MSC_VER +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif # endif -# elif defined(_MSC_VER) -# if 1900 <= _MSC_VER -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# endif #endif -#if !defined(VULKAN_HPP_INLINE) -# if defined(__clang__) -# if __has_attribute(always_inline) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ +#if !defined( VULKAN_HPP_INLINE ) +# if defined( __clang__ ) +# if __has_attribute( always_inline ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# else +# define VULKAN_HPP_INLINE inline +# endif +# elif defined( __GNUC__ ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# elif defined( _MSC_VER ) +# define VULKAN_HPP_INLINE inline # else -# define VULKAN_HPP_INLINE inline +# define VULKAN_HPP_INLINE inline # endif -# elif defined(__GNUC__) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ -# elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE inline -# else -# define VULKAN_HPP_INLINE inline -# endif +#endif + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_EXPLICIT +#else +# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit #endif -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) -# define VULKAN_HPP_TYPESAFE_EXPLICIT +#if defined( __cpp_constexpr ) +# define VULKAN_HPP_CONSTEXPR constexpr +# if __cpp_constexpr >= 201304 +# define VULKAN_HPP_CONSTEXPR_14 constexpr +# else +# define VULKAN_HPP_CONSTEXPR_14 +# endif +# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr #else -# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit -#endif - -#if defined(__cpp_constexpr) -# define VULKAN_HPP_CONSTEXPR constexpr -# if __cpp_constexpr >= 201304 -# define VULKAN_HPP_CONSTEXPR_14 constexpr -# else +# define VULKAN_HPP_CONSTEXPR # define VULKAN_HPP_CONSTEXPR_14 -# endif -# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr -#else -# define VULKAN_HPP_CONSTEXPR -# define VULKAN_HPP_CONSTEXPR_14 -# define VULKAN_HPP_CONST_OR_CONSTEXPR const +# define VULKAN_HPP_CONST_OR_CONSTEXPR const #endif -#if !defined(VULKAN_HPP_NOEXCEPT) -# if defined(_MSC_VER) && (_MSC_VER <= 1800) -# define VULKAN_HPP_NOEXCEPT -# else -# define VULKAN_HPP_NOEXCEPT noexcept -# define VULKAN_HPP_HAS_NOEXCEPT 1 -# if defined(VULKAN_HPP_NO_EXCEPTIONS) -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept +#if !defined( VULKAN_HPP_NOEXCEPT ) +# if defined( _MSC_VER ) && ( _MSC_VER <= 1800 ) +# define VULKAN_HPP_NOEXCEPT # else -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS +# define VULKAN_HPP_NOEXCEPT noexcept +# define VULKAN_HPP_HAS_NOEXCEPT 1 +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept +# else +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS +# endif # endif -# endif #endif #if 14 <= VULKAN_HPP_CPP_VERSION # define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] #else # define VULKAN_HPP_DEPRECATED( msg ) #endif #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS ) # define VULKAN_HPP_NODISCARD [[nodiscard]] -# if defined(VULKAN_HPP_NO_EXCEPTIONS) +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]] # else # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS # endif #else # define VULKAN_HPP_NODISCARD # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS #endif -#if !defined(VULKAN_HPP_NAMESPACE) -#define VULKAN_HPP_NAMESPACE vk -#endif - -#define VULKAN_HPP_STRINGIFY2(text) #text -#define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text) -#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE) - -namespace VULKAN_HPP_NAMESPACE -{ - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - class ArrayProxy - { - public: - VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - template ::value, int>::type = 0> - ArrayProxy( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - template ::value, int>::type = 0> - ArrayProxy( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - -#if __GNUC__ >= 9 -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Winit-list-lifetime" -#endif - - ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxy( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - -#if __GNUC__ >= 9 -#pragma GCC diagnostic pop -#endif - - template - ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxy( std::array & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxy( std::vector const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxy( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxy( std::vector & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxy( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - const T * begin() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - const T * end() const VULKAN_HPP_NOEXCEPT - { - return m_ptr + m_count; - } - - const T & front() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *m_ptr; - } - - const T & back() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *( m_ptr + m_count - 1 ); - } - - bool empty() const VULKAN_HPP_NOEXCEPT - { - return ( m_count == 0 ); - } - - uint32_t size() const VULKAN_HPP_NOEXCEPT - { - return m_count; - } - - T * data() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - private: - uint32_t m_count; - T * m_ptr; - }; - - template - class ArrayProxyNoTemporaries - { - public: - VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - ArrayProxyNoTemporaries( T && value ) = delete; - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( typename std::remove_const::type && value ) = delete; - - ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxyNoTemporaries( std::initializer_list const && list ) = delete; - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) - VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> const && list ) = delete; - - ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxyNoTemporaries( std::initializer_list && list ) = delete; - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> && list ) = delete; - - template - ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxyNoTemporaries( std::array const && data ) = delete; - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> const && data ) = delete; - - template - ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxyNoTemporaries( std::array && data ) = delete; - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> && data ) = delete; - - template ::type>> - ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxyNoTemporaries( std::vector const && data ) = delete; - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) - VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> const && data ) = delete; - - template ::type>> - ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxyNoTemporaries( std::vector && data ) = delete; - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> && data ) = delete; - - const T * begin() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - const T * end() const VULKAN_HPP_NOEXCEPT - { - return m_ptr + m_count; - } - - const T & front() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *m_ptr; - } - - const T & back() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *( m_ptr + m_count - 1 ); - } - - bool empty() const VULKAN_HPP_NOEXCEPT - { - return ( m_count == 0 ); - } - - uint32_t size() const VULKAN_HPP_NOEXCEPT - { - return m_count; - } - - T * data() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - private: - uint32_t m_count; - T * m_ptr; - }; -#endif - - template - class ArrayWrapper1D : public std::array - { - public: - VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT - : std::array() - {} - - VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array const& data) VULKAN_HPP_NOEXCEPT - : std::array(data) - {} - -#if defined(_WIN32) && !defined(_WIN64) - VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT - { - return std::array::operator[](index); - } - - T & operator[](int index) VULKAN_HPP_NOEXCEPT - { - return std::array::operator[](index); - } -#endif - - operator T const* () const VULKAN_HPP_NOEXCEPT - { - return this->data(); - } - - operator T * () VULKAN_HPP_NOEXCEPT - { - return this->data(); - } - - template ::value, int>::type = 0> - operator std::string() const - { - return std::string( this->data() ); - } - -#if 17 <= VULKAN_HPP_CPP_VERSION - template ::value, int>::type = 0> - operator std::string_view() const - { - return std::string_view( this->data() ); - } -#endif - - template ::value, int>::type = 0> - bool operator<( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) < *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator<=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) <= *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator>( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) > *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator>=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) >= *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator==( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) == *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator!=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) != *static_cast const *>( &rhs ); - } - }; - - // specialization of relational operators between std::string and arrays of chars - template - bool operator<(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs < rhs.data(); - } - - template - bool operator<=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs <= rhs.data(); - } - - template - bool operator>(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs > rhs.data(); - } - - template - bool operator>=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs >= rhs.data(); - } - - template - bool operator==(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs == rhs.data(); - } - - template - bool operator!=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs != rhs.data(); - } - - template - class ArrayWrapper2D : public std::array,N> - { - public: - VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT - : std::array, N>() - {} - - VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array,N> const& data) VULKAN_HPP_NOEXCEPT - : std::array, N>(*reinterpret_cast,N> const*>(&data)) - {} - }; - - template struct FlagTraits - { - enum { allFlags = 0 }; - }; - - template - class Flags - { - public: - using MaskType = typename std::underlying_type::type; - - // constructors - VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT - : m_mask(0) - {} - - VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT - : m_mask(static_cast(bit)) - {} - - VULKAN_HPP_CONSTEXPR Flags(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT - : m_mask(flags) - {} - - // relational operators -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>(Flags const&) const = default; -#else - VULKAN_HPP_CONSTEXPR bool operator<(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask < rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator<=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask <= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask > rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask >= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator==(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask == rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator!=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask != rhs.m_mask; - } -#endif - - // logical operator - VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT - { - return !m_mask; - } - - // bitwise operators - VULKAN_HPP_CONSTEXPR Flags operator&(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask & rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator|(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask | rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator^(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask ^ rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask ^ FlagTraits::allFlags); - } - - // assignment operators - VULKAN_HPP_CONSTEXPR_14 Flags & operator=(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR_14 Flags & operator|=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask |= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator&=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask &= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator^=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask ^= rhs.m_mask; - return *this; - } - - // cast operators - explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT - { - return !!m_mask; - } - - explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT - { - return m_mask; - } - -#if defined(VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC) - public: -#else - private: -#endif - MaskType m_mask; - }; - -#if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - // relational operators only needed for pre C++20 - template - VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator>( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator>=( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator<( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator<=(bit); - } - - template - VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator==( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator!=( bit ); - } -#endif - - // bitwise operators - template - VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator&( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator|(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator|( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator^(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator^( bit ); - } - - template - class Optional - { - public: - Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; } - Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; } - Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; } - - operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; } - - private: - RefType *m_ptr; - }; - - template struct StructExtends { enum { value = false }; }; - - template - struct IsPartOfStructureChain - { - static const bool valid = false; - }; - - template - struct IsPartOfStructureChain - { - static const bool valid = std::is_same::value || IsPartOfStructureChain::valid; - }; - - template - struct StructureChainContains - { - static const bool value = std::is_same>::type>::value || - StructureChainContains::value; - }; - - template - struct StructureChainContains<0, T, ChainElements...> - { - static const bool value = std::is_same>::type>::value; - }; - - template - struct StructureChainValidation - { - using TestType = typename std::tuple_element>::type; - static const bool valid = - StructExtends>::type>::value && - ( TestType::allowDuplicate || !StructureChainContains::value ) && - StructureChainValidation::valid; - }; - - template - struct StructureChainValidation<0, ChainElements...> - { - static const bool valid = true; - }; - - template - class StructureChain : public std::tuple - { - public: - StructureChain() VULKAN_HPP_NOEXCEPT - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple( rhs ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT - : std::tuple( std::forward>( rhs ) ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple( elems... ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT - { - std::tuple::operator=( rhs ); - link(); - return *this; - } - - StructureChain & operator=( StructureChain && rhs ) = delete; - - template >::type, size_t Which = 0> - T & get() VULKAN_HPP_NOEXCEPT - { - return std::get::value>( static_cast&>( *this ) ); - } - - template >::type, size_t Which = 0> - T const & get() const VULKAN_HPP_NOEXCEPT - { - return std::get::value>( static_cast const &>( *this ) ); - } - - template - std::tuple get() VULKAN_HPP_NOEXCEPT - { - return std::tie( get(), get(), get()... ); - } - - template - std::tuple get() const VULKAN_HPP_NOEXCEPT - { - return std::tie( get(), get(), get()... ); - } - - template - typename std::enable_if< - std::is_same>::type>::value && - ( Which == 0 ), - bool>::type - isLinked() const VULKAN_HPP_NOEXCEPT - { - return true; - } - - template - typename std::enable_if< - !std::is_same>::type>::value || - ( Which != 0 ), - bool>::type - isLinked() const VULKAN_HPP_NOEXCEPT - { - static_assert( IsPartOfStructureChain::valid, - "Can't unlink Structure that's not part of this StructureChain!" ); - return isLinked( reinterpret_cast( &get() ) ); - } - - template - typename std::enable_if< - !std::is_same>::type>::value || - ( Which != 0 ), - void>::type relink() VULKAN_HPP_NOEXCEPT - { - static_assert( IsPartOfStructureChain::valid, - "Can't relink Structure that's not part of this StructureChain!" ); - auto pNext = reinterpret_cast( &get() ); - VULKAN_HPP_ASSERT( !isLinked( pNext ) ); - auto & headElement = std::get<0>( static_cast &>( *this ) ); - pNext->pNext = reinterpret_cast( headElement.pNext ); - headElement.pNext = pNext; - } - - template - typename std::enable_if< - !std::is_same>::type>::value || - ( Which != 0 ), - void>::type unlink() VULKAN_HPP_NOEXCEPT - { - static_assert( IsPartOfStructureChain::valid, - "Can't unlink Structure that's not part of this StructureChain!" ); - unlink( reinterpret_cast( &get() ) ); - } - - private: - template - struct ChainElementIndex : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : std::integral_constant - {}; - - bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT - { - VkBaseInStructure const * elementPtr = reinterpret_cast( - &std::get<0>( static_cast const &>( *this ) ) ); - while ( elementPtr ) - { - if ( elementPtr->pNext == pNext ) - { - return true; - } - elementPtr = elementPtr->pNext; - } - return false; - } - - template - typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT - { - auto & x = std::get( static_cast&>( *this ) ); - x.pNext = &std::get( static_cast&>( *this ) ); - link(); - } - - template - typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT - {} - - void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT - { - VkBaseOutStructure * elementPtr = reinterpret_cast( - &std::get<0>( static_cast &>( *this ) ) ); - while ( elementPtr && ( elementPtr->pNext != pNext ) ) - { - elementPtr = elementPtr->pNext; - } - if ( elementPtr ) - { - elementPtr->pNext = pNext->pNext; - } - else - { - VULKAN_HPP_ASSERT( false ); // fires, if the ClassType member has already been unlinked ! - } - } - }; - -#if !defined(VULKAN_HPP_NO_SMART_HANDLE) - template class UniqueHandleTraits; - - template - class UniqueHandle : public UniqueHandleTraits::deleter - { - private: - using Deleter = typename UniqueHandleTraits::deleter; - - public: - using element_type = Type; - - UniqueHandle() - : Deleter() - , m_value() - {} - - explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT - : Deleter( deleter) - , m_value( value ) - {} - - UniqueHandle( UniqueHandle const& ) = delete; - - UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT - : Deleter( std::move( static_cast( other ) ) ) - , m_value( other.release() ) - {} - - ~UniqueHandle() VULKAN_HPP_NOEXCEPT - { - if ( m_value ) this->destroy( m_value ); - } - - UniqueHandle & operator=( UniqueHandle const& ) = delete; - - UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT - { - reset( other.release() ); - *static_cast(this) = std::move( static_cast(other) ); - return *this; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_value.operator bool(); - } - - Type const* operator->() const VULKAN_HPP_NOEXCEPT - { - return &m_value; - } - - Type * operator->() VULKAN_HPP_NOEXCEPT - { - return &m_value; - } - - Type const& operator*() const VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - Type & operator*() VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - const Type & get() const VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - Type & get() VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT - { - if ( m_value != value ) - { - if ( m_value ) this->destroy( m_value ); - m_value = value; - } - } - - Type release() VULKAN_HPP_NOEXCEPT - { - Type value = m_value; - m_value = nullptr; - return value; - } - - void swap( UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT - { - std::swap(m_value, rhs.m_value); - std::swap(static_cast(*this), static_cast(rhs)); - } - - private: - Type m_value; - }; - - template - VULKAN_HPP_INLINE std::vector uniqueToRaw(std::vector const& handles) - { - std::vector newBuffer(handles.size()); - std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); }); - return newBuffer; - } - - template - VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT - { - lhs.swap( rhs ); - } -#endif - -#if !defined(VK_NO_PROTOTYPES) - class DispatchLoaderStatic - { - public: -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex ); - } - - VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex ); - } - - VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration ); - } - - VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireProfilingLockKHR( device, pInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireWinrtDisplayNV( physicalDevice, display ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display ); - } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers ); - } - - VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets ); - } - - VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory ); - } - - VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo ); - } - - VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory( device, buffer, memory, memoryOffset ); - } - - VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory( device, image, memory, memoryOffset ); - } - - VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBuildAccelerationStructuresKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos ); - } - - void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin ); - } - - void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); - } - - void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags ); - } - - void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index ); - } - - void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents ); - } - - void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); - } - - void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); - } - - void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); - } - - void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets ); - } - - void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType ); - } - - void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline ); - } - - void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex ); - } - - void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout ); - } - - void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); - } - - void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets ); - } - - void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides ); - } - - void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); - } - - void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo ); - } - - void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); - } - - void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructuresIndirectKHR( commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts ); - } - - void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos ); - } - - void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects ); - } - - void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges ); - } - - void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges ); - } - - void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode ); - } - - void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions ); - } - - void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo ); - } - - void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo ); - } - - void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo ); - } - - void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions ); - } - - void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo ); - } - - void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); - } - - void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo ); - } - - void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerEndEXT( commandBuffer ); - } - - void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo ); - } - - void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset ); - } - - void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } - - void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } - - void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); - } - - void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask ); - } - - void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndConditionalRenderingEXT( commandBuffer ); - } - - void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer ); - } - - void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndQuery( commandBuffer, queryPool, query ); - } - - void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index ); - } - - void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass( commandBuffer ); - } - - void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo ); - } - - void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo ); - } - - void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); - } - - void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers ); - } - - void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo ); - } - - void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data ); - } - - void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); - } - - void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass( commandBuffer, contents ); - } - - void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); - } - - void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); - } - - void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); - } - - void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo ); - } - - void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo ); - } - - void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues ); - } - - void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); - } - - void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData ); - } - - void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResetEvent( commandBuffer, event, stageMask ); - } - - void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask ); - } - - void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount ); - } - - void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo ); - } - - void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetBlendConstants( commandBuffer, blendConstants ); - } - - void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker ); - } - - void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); - } - - void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCullModeEXT( commandBuffer, cullMode ); - } - - void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } - - void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); - } - - void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable ); - } - - void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp ); - } - - void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable ); - } - - void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable ); - } - - void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDeviceMask( commandBuffer, deviceMask ); - } - - void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask ); - } - - void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); - } - - void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetEvent( commandBuffer, event, stageMask ); - } - - void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo ); - } - - void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); - } - - void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps ); - } - - void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps ); - } - - void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace ); - } - - void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); - } - - void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetLineWidth( commandBuffer, lineWidth ); - } - - VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); - } - - VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); - } - - VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); - } - - void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology ); - } - - void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize ); - } - - void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); - } - - void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); - } - - void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors ); - } - - void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); - } - - void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp ); - } - - void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference ); - } - - void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable ); - } - - void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); - } - - void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); - } - - void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); - } - - void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); - } - - void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports ); - } - - void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress ); - } - - void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth ); - } - - void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth ); - } - - void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); - } - - void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); - } - - void vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos ); - } - - void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); - } - - void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); - } - - void vkCmdWriteBufferMarker2AMD( VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker ); - } - - void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); - } - - void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); - } - - void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query ); - } - - VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCompileDeferredNV( device, pipeline, shader ); - } - - VkResult vkCopyAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure ); - } - - VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer ); - } - - VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView ); - } - - VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool ); - } - - VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback ); - } - - VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger ); - } - - VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation ); - } - - VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool ); - } - - VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout ); - } - - VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); - } - - VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); - } - - VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice ); - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode ); - } - - VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } - - VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent ); - } - - VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence ); - } - - VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer ); - } - - VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } - -#ifdef VK_USE_PLATFORM_IOS_MVK - VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage ); - } - -#ifdef VK_USE_PLATFORM_FUCHSIA - VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView ); - } - - VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout ); - } - - VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance ); - } - -#ifdef VK_USE_PLATFORM_MACOS_MVK - VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - -#ifdef VK_USE_PLATFORM_METAL_EXT - VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache ); - } - - VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout ); - } - - VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot ); - } - - VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool ); - } - - VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler ); - } - - VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion ); - } - - VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion ); - } - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - VkResult vkCreateScreenSurfaceQNX( VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore ); - } - - VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule ); - } - - VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); - } - -#ifdef VK_USE_PLATFORM_GGP - VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_GGP*/ - - VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain ); - } - - VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache ); - } - -#ifdef VK_USE_PLATFORM_VI_NN - VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo ); - } - - VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo ); - } - - void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage ); - } - - VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDeferredOperationJoinKHR( device, operation ); - } - - void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator ); - } - - void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator ); - } - - void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyBuffer( device, buffer, pAllocator ); - } - - void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyBufferView( device, bufferView, pAllocator ); - } - - void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyCommandPool( device, commandPool, pAllocator ); - } - - void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator ); - } - - void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator ); - } - - void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator ); - } - - void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator ); - } - - void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator ); - } - - void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator ); - } - - void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator ); - } - - void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDevice( device, pAllocator ); - } - - void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyEvent( device, event, pAllocator ); - } - - void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyFence( device, fence, pAllocator ); - } - - void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyFramebuffer( device, framebuffer, pAllocator ); - } - - void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyImage( device, image, pAllocator ); - } - - void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyImageView( device, imageView, pAllocator ); - } - - void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator ); - } - - void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyInstance( instance, pAllocator ); - } - - void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipeline( device, pipeline, pAllocator ); - } - - void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator ); - } - - void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator ); - } - - void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator ); - } - - void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyQueryPool( device, queryPool, pAllocator ); - } - - void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyRenderPass( device, renderPass, pAllocator ); - } - - void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySampler( device, sampler, pAllocator ); - } - - void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator ); - } - - void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator ); - } - - void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySemaphore( device, semaphore, pAllocator ); - } - - void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyShaderModule( device, shaderModule, pAllocator ); - } - - void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySurfaceKHR( instance, surface, pAllocator ); - } - - void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySwapchainKHR( device, swapchain, pAllocator ); - } - - void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator ); - } - - VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDeviceWaitIdle( device ); - } - - VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo ); - } - - VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEndCommandBuffer( commandBuffer ); - } - - VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceVersion( pApiVersion ); - } - - VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); - } - - VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); - } - - VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions ); - } - - VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices ); - } - - VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); - } - - void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers ); - } - - VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets ); - } - - void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeMemory( device, memory, pAllocator ); - } - - void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo ); - } - - VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo ); - } - - VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData ); - } - - void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddress( device, pInfo ); - } - - VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddressEXT( device, pInfo ); - } - - VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddressKHR( device, pInfo ); - } - - void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements ); - } - - void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements ); - } - - void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); - } - - uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferOpaqueCaptureAddress( device, pInfo ); - } - - uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo ); - } - - VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); - } - - uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation ); - } - - VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeferredOperationResultKHR( device, operation ); - } - - void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport ); - } - - void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport ); - } - - void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility ); - } - - void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); - } - - void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); - } - - VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes ); - } - - void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes ); - } - - uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo ); - } - - uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo ); - } - - PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceProcAddr( device, pName ); - } - - void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue ); - } - - void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue ); - } - - VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties ); - } - - VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties ); - } - - VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities ); - } - - VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities ); - } - - VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays ); - } - - VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetEventStatus( device, event ); - } - - VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd ); - } - - VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceStatus( device, fence ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); - } - - VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties ); - } - - void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements ); - } - - void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements ); - } - - void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout ); - } - - VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageViewAddressNVX( device, imageView, pProperties ); - } - - uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageViewHandleNVX( device, pInfo ); - } - - PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetInstanceProcAddr( instance, pName ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd ); - } - - VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties ); - } - - VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings ); - } - - VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPerformanceParameterINTEL( device, parameter, pValue ); - } - - VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains ); - } - - VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties ); - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb ); - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); - } - - void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); - } - - void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); - } - - void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); - } - - VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties ); - } - - void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); - } - - void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); - } - - void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties ); - } - - void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties ); - } - - void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties ); - } - - VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties ); - } - - VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects ); - } - - void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window ); - } -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats ); - } - - VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes ); - } - - VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported ); - } - - VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties ); - } - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display ); - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id ); - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID ); - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData ); - } - - VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); - } - - VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties ); - } - - VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics ); - } - - void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData ); - } - - VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); - } - - void vkGetQueueCheckpointData2NV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData ); - } - - void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData ); - } - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay ); - } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader ); - } - - VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties ); - } - - void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity ); - } - - VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreCounterValue( device, semaphore, pValue ); - } - - VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue ); - } - - VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo ); - } - - VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue ); - } - - VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages ); - } - - VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainStatusKHR( device, swapchain ); - } - - VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportFenceFdKHR( device, pImportFenceFdInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo ); - } - - VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); - } - - VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMapMemory( device, memory, offset, size, flags, ppData ); - } - - VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches ); - } - - VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches ); - } - - void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo ); - } - - VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence ); - } - - void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueEndDebugUtilsLabelEXT( queue ); - } - - void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo ); - } - - VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueuePresentKHR( queue, pPresentInfo ); - } - - VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration ); - } - - VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueSubmit( queue, submitCount, pSubmits, fence ); - } - - VkResult vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence ); - } - - VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueWaitIdle( queue ); - } - - VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence ); - } - - VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence ); - } - - VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseDisplayEXT( physicalDevice, display ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleasePerformanceConfigurationINTEL( device, configuration ); - } - - void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseProfilingLockKHR( device ); - } - - VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetCommandBuffer( commandBuffer, flags ); - } - - VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetCommandPool( device, commandPool, flags ); - } - - VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetDescriptorPool( device, descriptorPool, flags ); - } - - VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetEvent( device, event ); - } - - VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetFences( device, fenceCount, pFences ); - } - - void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount ); - } - - void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount ); - } - - VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo ); - } - - VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo ); - } - - VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetEvent( device, event ); - } - - void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata ); - } - - void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable ); - } - - VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data ); - } - - VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSignalSemaphore( device, pSignalInfo ); - } - - VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSignalSemaphoreKHR( device, pSignalInfo ); - } - - void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData ); - } - - void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkTrimCommandPool( device, commandPool, flags ); - } - - void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkTrimCommandPoolKHR( device, commandPool, flags ); - } - - void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUninitializePerformanceApiINTEL( device ); - } - - void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUnmapMemory( device, memory ); - } - - void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData ); - } - - void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData ); - } - - void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); - } - - VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout ); - } - - VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitSemaphores( device, pWaitInfo, timeout ); - } - - VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout ); - } - - VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride ); - } - }; -#endif - - class DispatchLoaderDynamic; -#if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC) -# if defined(VK_NO_PROTOTYPES) -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 -# else -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 -# endif -#endif - -#if !defined( VULKAN_HPP_STORAGE_API ) -# if defined( VULKAN_HPP_STORAGE_SHARED ) -# if defined( _MSC_VER ) -# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) -# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) -# else -# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) -# endif -# elif defined( __clang__ ) || defined( __GNUC__ ) -# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) -# define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) ) -# else -# define VULKAN_HPP_STORAGE_API -# endif -# else -# define VULKAN_HPP_STORAGE_API -# pragma warning Unknown import / export semantics -# endif -# else -# define VULKAN_HPP_STORAGE_API -# endif -#endif - -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; } - extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic() -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE -# endif -#endif - -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 - #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic -# endif -#endif - -#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT -#else -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER +#if !defined( VULKAN_HPP_NAMESPACE ) +# define VULKAN_HPP_NAMESPACE vk #endif - struct AllocationCallbacks; - - template - class ObjectDestroy - { - public: - ObjectDestroy() = default; - - ObjectDestroy( OwnerType owner, - Optional allocationCallbacks - VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.destroy( t, m_allocationCallbacks, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - class NoParent; - - template - class ObjectDestroy - { - public: - ObjectDestroy() = default; - - ObjectDestroy( Optional allocationCallbacks, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_dispatch ); - t.destroy( m_allocationCallbacks, *m_dispatch ); - } - - private: - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - template - class ObjectFree - { - public: - ObjectFree() = default; - - ObjectFree( OwnerType owner, - Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT - { - return m_owner; - } - - Optional getAllocator() const VULKAN_HPP_NOEXCEPT - { - return m_allocationCallbacks; - } - - protected: - template - void destroy( T t ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.free( t, m_allocationCallbacks, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - template - class ObjectRelease - { - public: - ObjectRelease() = default; - - ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT - { - return m_owner; - } - - protected: - template - void destroy( T t ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.release( t, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Dispatch const * m_dispatch = nullptr; - }; - - template - class PoolFree - { - public: - PoolFree() = default; - - PoolFree( OwnerType owner, - PoolType pool, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_pool( pool ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - m_owner.free( m_pool, t, *m_dispatch ); - } - - private: - OwnerType m_owner = OwnerType(); - PoolType m_pool = PoolType(); - Dispatch const * m_dispatch = nullptr; - }; - - using Bool32 = uint32_t; - using DeviceAddress = uint64_t; - using DeviceSize = uint64_t; - using SampleMask = uint32_t; - - template - struct CppType - {}; - - template - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false; - }; - - VULKAN_HPP_INLINE std::string toHexString( uint32_t value ) - { - std::stringstream stream; - stream << std::hex << value; - return stream.str(); - } - - enum class AccelerationStructureBuildTypeKHR - { - eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR - , eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR - , eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value ) - { - switch ( value ) - { - case AccelerationStructureBuildTypeKHR::eHost : return "Host"; - case AccelerationStructureBuildTypeKHR::eDevice : return "Device"; - case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureCompatibilityKHR - { - eCompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR - , eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value ) - { - switch ( value ) - { - case AccelerationStructureCompatibilityKHR::eCompatible : return "Compatible"; - case AccelerationStructureCompatibilityKHR::eIncompatible : return "Incompatible"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR - { - eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value ) - { - switch ( value ) - { - case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureMemoryRequirementsTypeNV - { - eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV - , eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV - , eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value ) - { - switch ( value ) - { - case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object"; - case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch"; - case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureTypeKHR - { - eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR - , eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR - , eGeneric = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - }; - using AccelerationStructureTypeNV = AccelerationStructureTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value ) - { - switch ( value ) - { - case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel"; - case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel"; - case AccelerationStructureTypeKHR::eGeneric : return "Generic"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccessFlagBits : VkAccessFlags - { - eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT - , eIndexRead = VK_ACCESS_INDEX_READ_BIT - , eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT - , eUniformRead = VK_ACCESS_UNIFORM_READ_BIT - , eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT - , eShaderRead = VK_ACCESS_SHADER_READ_BIT - , eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT - , eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT - , eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT - , eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT - , eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT - , eTransferRead = VK_ACCESS_TRANSFER_READ_BIT - , eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT - , eHostRead = VK_ACCESS_HOST_READ_BIT - , eHostWrite = VK_ACCESS_HOST_WRITE_BIT - , eMemoryRead = VK_ACCESS_MEMORY_READ_BIT - , eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT - , eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT - , eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT - , eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT - , eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT - , eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT - , eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR - , eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR - , eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV - , eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT - , eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV - , eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV - , eNoneKHR = VK_ACCESS_NONE_KHR - , eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV - , eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV - , eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value ) - { - switch ( value ) - { - case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead"; - case AccessFlagBits::eIndexRead : return "IndexRead"; - case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead"; - case AccessFlagBits::eUniformRead : return "UniformRead"; - case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead"; - case AccessFlagBits::eShaderRead : return "ShaderRead"; - case AccessFlagBits::eShaderWrite : return "ShaderWrite"; - case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead"; - case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite"; - case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead"; - case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite"; - case AccessFlagBits::eTransferRead : return "TransferRead"; - case AccessFlagBits::eTransferWrite : return "TransferWrite"; - case AccessFlagBits::eHostRead : return "HostRead"; - case AccessFlagBits::eHostWrite : return "HostWrite"; - case AccessFlagBits::eMemoryRead : return "MemoryRead"; - case AccessFlagBits::eMemoryWrite : return "MemoryWrite"; - case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT"; - case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT"; - case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT"; - case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT"; - case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT"; - case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR"; - case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR"; - case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV"; - case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT"; - case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV"; - case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV"; - case AccessFlagBits::eNoneKHR : return "NoneKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccessFlagBits2KHR : VkAccessFlags2KHR - { - e2None = VK_ACCESS_2_NONE_KHR - , e2IndirectCommandRead = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR - , e2IndexRead = VK_ACCESS_2_INDEX_READ_BIT_KHR - , e2VertexAttributeRead = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR - , e2UniformRead = VK_ACCESS_2_UNIFORM_READ_BIT_KHR - , e2InputAttachmentRead = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR - , e2ShaderRead = VK_ACCESS_2_SHADER_READ_BIT_KHR - , e2ShaderWrite = VK_ACCESS_2_SHADER_WRITE_BIT_KHR - , e2ColorAttachmentRead = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR - , e2ColorAttachmentWrite = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR - , e2DepthStencilAttachmentRead = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR - , e2DepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR - , e2TransferRead = VK_ACCESS_2_TRANSFER_READ_BIT_KHR - , e2TransferWrite = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR - , e2HostRead = VK_ACCESS_2_HOST_READ_BIT_KHR - , e2HostWrite = VK_ACCESS_2_HOST_WRITE_BIT_KHR - , e2MemoryRead = VK_ACCESS_2_MEMORY_READ_BIT_KHR - , e2MemoryWrite = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR - , e2ShaderSampledRead = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR - , e2ShaderStorageRead = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR - , e2ShaderStorageWrite = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR - , e2TransformFeedbackWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT - , e2TransformFeedbackCounterReadExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT - , e2TransformFeedbackCounterWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT - , e2ConditionalRenderingReadExt = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT - , e2CommandPreprocessReadNv = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV - , e2CommandPreprocessWriteNv = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV - , e2FragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR - , e2AccelerationStructureRead = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR - , e2AccelerationStructureWrite = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR - , e2FragmentDensityMapReadExt = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT - , e2ColorAttachmentReadNoncoherentExt = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT - , e2AccelerationStructureReadNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV - , e2AccelerationStructureWriteNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV - , e2ShadingRateImageReadNv = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value ) - { - switch ( value ) - { - case AccessFlagBits2KHR::e2None : return "2None"; - case AccessFlagBits2KHR::e2IndirectCommandRead : return "2IndirectCommandRead"; - case AccessFlagBits2KHR::e2IndexRead : return "2IndexRead"; - case AccessFlagBits2KHR::e2VertexAttributeRead : return "2VertexAttributeRead"; - case AccessFlagBits2KHR::e2UniformRead : return "2UniformRead"; - case AccessFlagBits2KHR::e2InputAttachmentRead : return "2InputAttachmentRead"; - case AccessFlagBits2KHR::e2ShaderRead : return "2ShaderRead"; - case AccessFlagBits2KHR::e2ShaderWrite : return "2ShaderWrite"; - case AccessFlagBits2KHR::e2ColorAttachmentRead : return "2ColorAttachmentRead"; - case AccessFlagBits2KHR::e2ColorAttachmentWrite : return "2ColorAttachmentWrite"; - case AccessFlagBits2KHR::e2DepthStencilAttachmentRead : return "2DepthStencilAttachmentRead"; - case AccessFlagBits2KHR::e2DepthStencilAttachmentWrite : return "2DepthStencilAttachmentWrite"; - case AccessFlagBits2KHR::e2TransferRead : return "2TransferRead"; - case AccessFlagBits2KHR::e2TransferWrite : return "2TransferWrite"; - case AccessFlagBits2KHR::e2HostRead : return "2HostRead"; - case AccessFlagBits2KHR::e2HostWrite : return "2HostWrite"; - case AccessFlagBits2KHR::e2MemoryRead : return "2MemoryRead"; - case AccessFlagBits2KHR::e2MemoryWrite : return "2MemoryWrite"; - case AccessFlagBits2KHR::e2ShaderSampledRead : return "2ShaderSampledRead"; - case AccessFlagBits2KHR::e2ShaderStorageRead : return "2ShaderStorageRead"; - case AccessFlagBits2KHR::e2ShaderStorageWrite : return "2ShaderStorageWrite"; - case AccessFlagBits2KHR::e2TransformFeedbackWriteExt : return "2TransformFeedbackWriteExt"; - case AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt : return "2TransformFeedbackCounterReadExt"; - case AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt : return "2TransformFeedbackCounterWriteExt"; - case AccessFlagBits2KHR::e2ConditionalRenderingReadExt : return "2ConditionalRenderingReadExt"; - case AccessFlagBits2KHR::e2CommandPreprocessReadNv : return "2CommandPreprocessReadNv"; - case AccessFlagBits2KHR::e2CommandPreprocessWriteNv : return "2CommandPreprocessWriteNv"; - case AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead : return "2FragmentShadingRateAttachmentRead"; - case AccessFlagBits2KHR::e2AccelerationStructureRead : return "2AccelerationStructureRead"; - case AccessFlagBits2KHR::e2AccelerationStructureWrite : return "2AccelerationStructureWrite"; - case AccessFlagBits2KHR::e2FragmentDensityMapReadExt : return "2FragmentDensityMapReadExt"; - case AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt : return "2ColorAttachmentReadNoncoherentExt"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR - { - }; - - VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR ) - { - return "(void)"; - } - - enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags - { - eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value ) - { - switch ( value ) - { - case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AttachmentLoadOp - { - eLoad = VK_ATTACHMENT_LOAD_OP_LOAD - , eClear = VK_ATTACHMENT_LOAD_OP_CLEAR - , eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value ) - { - switch ( value ) - { - case AttachmentLoadOp::eLoad : return "Load"; - case AttachmentLoadOp::eClear : return "Clear"; - case AttachmentLoadOp::eDontCare : return "DontCare"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AttachmentStoreOp - { - eStore = VK_ATTACHMENT_STORE_OP_STORE - , eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE - , eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value ) - { - switch ( value ) - { - case AttachmentStoreOp::eStore : return "Store"; - case AttachmentStoreOp::eDontCare : return "DontCare"; - case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendFactor - { - eZero = VK_BLEND_FACTOR_ZERO - , eOne = VK_BLEND_FACTOR_ONE - , eSrcColor = VK_BLEND_FACTOR_SRC_COLOR - , eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR - , eDstColor = VK_BLEND_FACTOR_DST_COLOR - , eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR - , eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA - , eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA - , eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA - , eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA - , eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR - , eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR - , eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA - , eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA - , eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE - , eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR - , eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR - , eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA - , eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - }; - - VULKAN_HPP_INLINE std::string to_string( BlendFactor value ) - { - switch ( value ) - { - case BlendFactor::eZero : return "Zero"; - case BlendFactor::eOne : return "One"; - case BlendFactor::eSrcColor : return "SrcColor"; - case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor"; - case BlendFactor::eDstColor : return "DstColor"; - case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor"; - case BlendFactor::eSrcAlpha : return "SrcAlpha"; - case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha"; - case BlendFactor::eDstAlpha : return "DstAlpha"; - case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha"; - case BlendFactor::eConstantColor : return "ConstantColor"; - case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor"; - case BlendFactor::eConstantAlpha : return "ConstantAlpha"; - case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha"; - case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate"; - case BlendFactor::eSrc1Color : return "Src1Color"; - case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color"; - case BlendFactor::eSrc1Alpha : return "Src1Alpha"; - case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendOp - { - eAdd = VK_BLEND_OP_ADD - , eSubtract = VK_BLEND_OP_SUBTRACT - , eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT - , eMin = VK_BLEND_OP_MIN - , eMax = VK_BLEND_OP_MAX - , eZeroEXT = VK_BLEND_OP_ZERO_EXT - , eSrcEXT = VK_BLEND_OP_SRC_EXT - , eDstEXT = VK_BLEND_OP_DST_EXT - , eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT - , eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT - , eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT - , eDstInEXT = VK_BLEND_OP_DST_IN_EXT - , eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT - , eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT - , eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT - , eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT - , eXorEXT = VK_BLEND_OP_XOR_EXT - , eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT - , eScreenEXT = VK_BLEND_OP_SCREEN_EXT - , eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT - , eDarkenEXT = VK_BLEND_OP_DARKEN_EXT - , eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT - , eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT - , eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT - , eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT - , eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT - , eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT - , eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT - , eInvertEXT = VK_BLEND_OP_INVERT_EXT - , eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT - , eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT - , eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT - , eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT - , eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT - , ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT - , eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT - , eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT - , eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT - , eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT - , eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT - , ePlusEXT = VK_BLEND_OP_PLUS_EXT - , ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT - , ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT - , ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT - , eMinusEXT = VK_BLEND_OP_MINUS_EXT - , eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT - , eContrastEXT = VK_BLEND_OP_CONTRAST_EXT - , eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT - , eRedEXT = VK_BLEND_OP_RED_EXT - , eGreenEXT = VK_BLEND_OP_GREEN_EXT - , eBlueEXT = VK_BLEND_OP_BLUE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BlendOp value ) - { - switch ( value ) - { - case BlendOp::eAdd : return "Add"; - case BlendOp::eSubtract : return "Subtract"; - case BlendOp::eReverseSubtract : return "ReverseSubtract"; - case BlendOp::eMin : return "Min"; - case BlendOp::eMax : return "Max"; - case BlendOp::eZeroEXT : return "ZeroEXT"; - case BlendOp::eSrcEXT : return "SrcEXT"; - case BlendOp::eDstEXT : return "DstEXT"; - case BlendOp::eSrcOverEXT : return "SrcOverEXT"; - case BlendOp::eDstOverEXT : return "DstOverEXT"; - case BlendOp::eSrcInEXT : return "SrcInEXT"; - case BlendOp::eDstInEXT : return "DstInEXT"; - case BlendOp::eSrcOutEXT : return "SrcOutEXT"; - case BlendOp::eDstOutEXT : return "DstOutEXT"; - case BlendOp::eSrcAtopEXT : return "SrcAtopEXT"; - case BlendOp::eDstAtopEXT : return "DstAtopEXT"; - case BlendOp::eXorEXT : return "XorEXT"; - case BlendOp::eMultiplyEXT : return "MultiplyEXT"; - case BlendOp::eScreenEXT : return "ScreenEXT"; - case BlendOp::eOverlayEXT : return "OverlayEXT"; - case BlendOp::eDarkenEXT : return "DarkenEXT"; - case BlendOp::eLightenEXT : return "LightenEXT"; - case BlendOp::eColordodgeEXT : return "ColordodgeEXT"; - case BlendOp::eColorburnEXT : return "ColorburnEXT"; - case BlendOp::eHardlightEXT : return "HardlightEXT"; - case BlendOp::eSoftlightEXT : return "SoftlightEXT"; - case BlendOp::eDifferenceEXT : return "DifferenceEXT"; - case BlendOp::eExclusionEXT : return "ExclusionEXT"; - case BlendOp::eInvertEXT : return "InvertEXT"; - case BlendOp::eInvertRgbEXT : return "InvertRgbEXT"; - case BlendOp::eLineardodgeEXT : return "LineardodgeEXT"; - case BlendOp::eLinearburnEXT : return "LinearburnEXT"; - case BlendOp::eVividlightEXT : return "VividlightEXT"; - case BlendOp::eLinearlightEXT : return "LinearlightEXT"; - case BlendOp::ePinlightEXT : return "PinlightEXT"; - case BlendOp::eHardmixEXT : return "HardmixEXT"; - case BlendOp::eHslHueEXT : return "HslHueEXT"; - case BlendOp::eHslSaturationEXT : return "HslSaturationEXT"; - case BlendOp::eHslColorEXT : return "HslColorEXT"; - case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT"; - case BlendOp::ePlusEXT : return "PlusEXT"; - case BlendOp::ePlusClampedEXT : return "PlusClampedEXT"; - case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT"; - case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT"; - case BlendOp::eMinusEXT : return "MinusEXT"; - case BlendOp::eMinusClampedEXT : return "MinusClampedEXT"; - case BlendOp::eContrastEXT : return "ContrastEXT"; - case BlendOp::eInvertOvgEXT : return "InvertOvgEXT"; - case BlendOp::eRedEXT : return "RedEXT"; - case BlendOp::eGreenEXT : return "GreenEXT"; - case BlendOp::eBlueEXT : return "BlueEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendOverlapEXT - { - eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT - , eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT - , eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value ) - { - switch ( value ) - { - case BlendOverlapEXT::eUncorrelated : return "Uncorrelated"; - case BlendOverlapEXT::eDisjoint : return "Disjoint"; - case BlendOverlapEXT::eConjoint : return "Conjoint"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BorderColor - { - eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK - , eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK - , eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK - , eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK - , eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE - , eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE - , eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT - , eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BorderColor value ) - { - switch ( value ) - { - case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack"; - case BorderColor::eIntTransparentBlack : return "IntTransparentBlack"; - case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack"; - case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack"; - case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite"; - case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite"; - case BorderColor::eFloatCustomEXT : return "FloatCustomEXT"; - case BorderColor::eIntCustomEXT : return "IntCustomEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BufferCreateFlagBits : VkBufferCreateFlags - { - eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT - , eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT - , eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT - , eProtected = VK_BUFFER_CREATE_PROTECTED_BIT - , eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT - , eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT - , eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value ) - { - switch ( value ) - { - case BufferCreateFlagBits::eSparseBinding : return "SparseBinding"; - case BufferCreateFlagBits::eSparseResidency : return "SparseResidency"; - case BufferCreateFlagBits::eSparseAliased : return "SparseAliased"; - case BufferCreateFlagBits::eProtected : return "Protected"; - case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BufferUsageFlagBits : VkBufferUsageFlags - { - eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT - , eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT - , eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT - , eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT - , eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT - , eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT - , eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT - , eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT - , eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT - , eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT - , eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT - , eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT - , eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT - , eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR - , eAccelerationStructureStorageKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR - , eShaderBindingTableKHR = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR - , eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV - , eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT - , eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value ) - { - switch ( value ) - { - case BufferUsageFlagBits::eTransferSrc : return "TransferSrc"; - case BufferUsageFlagBits::eTransferDst : return "TransferDst"; - case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer"; - case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer"; - case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer"; - case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer"; - case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer"; - case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress"; - case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT"; - case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT"; - case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR : return "AccelerationStructureBuildInputReadOnlyKHR"; - case BufferUsageFlagBits::eAccelerationStructureStorageKHR : return "AccelerationStructureStorageKHR"; - case BufferUsageFlagBits::eShaderBindingTableKHR : return "ShaderBindingTableKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR - { - eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR - , eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR - , ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR - , ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR - , eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR - }; - using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value ) - { - switch ( value ) - { - case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate"; - case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction"; - case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace"; - case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild"; - case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BuildAccelerationStructureModeKHR - { - eBuild = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR - , eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value ) - { - switch ( value ) - { - case BuildAccelerationStructureModeKHR::eBuild : return "Build"; - case BuildAccelerationStructureModeKHR::eUpdate : return "Update"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ChromaLocation - { - eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN - , eMidpoint = VK_CHROMA_LOCATION_MIDPOINT - }; - using ChromaLocationKHR = ChromaLocation; - - VULKAN_HPP_INLINE std::string to_string( ChromaLocation value ) - { - switch ( value ) - { - case ChromaLocation::eCositedEven : return "CositedEven"; - case ChromaLocation::eMidpoint : return "Midpoint"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoarseSampleOrderTypeNV - { - eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV - , eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV - , ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV - , eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value ) - { - switch ( value ) - { - case CoarseSampleOrderTypeNV::eDefault : return "Default"; - case CoarseSampleOrderTypeNV::eCustom : return "Custom"; - case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor"; - case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ColorComponentFlagBits : VkColorComponentFlags - { - eR = VK_COLOR_COMPONENT_R_BIT - , eG = VK_COLOR_COMPONENT_G_BIT - , eB = VK_COLOR_COMPONENT_B_BIT - , eA = VK_COLOR_COMPONENT_A_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value ) - { - switch ( value ) - { - case ColorComponentFlagBits::eR : return "R"; - case ColorComponentFlagBits::eG : return "G"; - case ColorComponentFlagBits::eB : return "B"; - case ColorComponentFlagBits::eA : return "A"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ColorSpaceKHR - { - eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - , eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT - , eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT - , eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT - , eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT - , eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT - , eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT - , eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT - , eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT - , eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT - , eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT - , eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT - , eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT - , ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT - , eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT - , eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD - , eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR - , eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value ) - { - switch ( value ) - { - case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear"; - case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT"; - case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT"; - case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT"; - case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT"; - case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT"; - case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT"; - case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT"; - case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT"; - case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT"; - case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT"; - case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT"; - case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT"; - case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT"; - case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT"; - case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferLevel - { - ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY - , eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value ) - { - switch ( value ) - { - case CommandBufferLevel::ePrimary : return "Primary"; - case CommandBufferLevel::eSecondary : return "Secondary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags - { - eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value ) - { - switch ( value ) - { - case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags - { - eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT - , eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT - , eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value ) - { - switch ( value ) - { - case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit"; - case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue"; - case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags - { - eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT - , eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT - , eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value ) - { - switch ( value ) - { - case CommandPoolCreateFlagBits::eTransient : return "Transient"; - case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer"; - case CommandPoolCreateFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags - { - eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value ) - { - switch ( value ) - { - case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CompareOp - { - eNever = VK_COMPARE_OP_NEVER - , eLess = VK_COMPARE_OP_LESS - , eEqual = VK_COMPARE_OP_EQUAL - , eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL - , eGreater = VK_COMPARE_OP_GREATER - , eNotEqual = VK_COMPARE_OP_NOT_EQUAL - , eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL - , eAlways = VK_COMPARE_OP_ALWAYS - }; - - VULKAN_HPP_INLINE std::string to_string( CompareOp value ) - { - switch ( value ) - { - case CompareOp::eNever : return "Never"; - case CompareOp::eLess : return "Less"; - case CompareOp::eEqual : return "Equal"; - case CompareOp::eLessOrEqual : return "LessOrEqual"; - case CompareOp::eGreater : return "Greater"; - case CompareOp::eNotEqual : return "NotEqual"; - case CompareOp::eGreaterOrEqual : return "GreaterOrEqual"; - case CompareOp::eAlways : return "Always"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ComponentSwizzle - { - eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY - , eZero = VK_COMPONENT_SWIZZLE_ZERO - , eOne = VK_COMPONENT_SWIZZLE_ONE - , eR = VK_COMPONENT_SWIZZLE_R - , eG = VK_COMPONENT_SWIZZLE_G - , eB = VK_COMPONENT_SWIZZLE_B - , eA = VK_COMPONENT_SWIZZLE_A - }; - - VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value ) - { - switch ( value ) - { - case ComponentSwizzle::eIdentity : return "Identity"; - case ComponentSwizzle::eZero : return "Zero"; - case ComponentSwizzle::eOne : return "One"; - case ComponentSwizzle::eR : return "R"; - case ComponentSwizzle::eG : return "G"; - case ComponentSwizzle::eB : return "B"; - case ComponentSwizzle::eA : return "A"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ComponentTypeNV - { - eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV - , eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV - , eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV - , eSint8 = VK_COMPONENT_TYPE_SINT8_NV - , eSint16 = VK_COMPONENT_TYPE_SINT16_NV - , eSint32 = VK_COMPONENT_TYPE_SINT32_NV - , eSint64 = VK_COMPONENT_TYPE_SINT64_NV - , eUint8 = VK_COMPONENT_TYPE_UINT8_NV - , eUint16 = VK_COMPONENT_TYPE_UINT16_NV - , eUint32 = VK_COMPONENT_TYPE_UINT32_NV - , eUint64 = VK_COMPONENT_TYPE_UINT64_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value ) - { - switch ( value ) - { - case ComponentTypeNV::eFloat16 : return "Float16"; - case ComponentTypeNV::eFloat32 : return "Float32"; - case ComponentTypeNV::eFloat64 : return "Float64"; - case ComponentTypeNV::eSint8 : return "Sint8"; - case ComponentTypeNV::eSint16 : return "Sint16"; - case ComponentTypeNV::eSint32 : return "Sint32"; - case ComponentTypeNV::eSint64 : return "Sint64"; - case ComponentTypeNV::eUint8 : return "Uint8"; - case ComponentTypeNV::eUint16 : return "Uint16"; - case ComponentTypeNV::eUint32 : return "Uint32"; - case ComponentTypeNV::eUint64 : return "Uint64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR - { - eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR - , ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR - , ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR - , eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value ) - { - switch ( value ) - { - case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied"; - case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied"; - case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT - { - eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value ) - { - switch ( value ) - { - case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ConservativeRasterizationModeEXT - { - eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - , eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT - , eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value ) - { - switch ( value ) - { - case ConservativeRasterizationModeEXT::eDisabled : return "Disabled"; - case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate"; - case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CopyAccelerationStructureModeKHR - { - eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR - , eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR - , eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR - , eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR - }; - using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR; - - VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value ) - { - switch ( value ) - { - case CopyAccelerationStructureModeKHR::eClone : return "Clone"; - case CopyAccelerationStructureModeKHR::eCompact : return "Compact"; - case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize"; - case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoverageModulationModeNV - { - eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV - , eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV - , eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV - , eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value ) - { - switch ( value ) - { - case CoverageModulationModeNV::eNone : return "None"; - case CoverageModulationModeNV::eRgb : return "Rgb"; - case CoverageModulationModeNV::eAlpha : return "Alpha"; - case CoverageModulationModeNV::eRgba : return "Rgba"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoverageReductionModeNV - { - eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV - , eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value ) - { - switch ( value ) - { - case CoverageReductionModeNV::eMerge : return "Merge"; - case CoverageReductionModeNV::eTruncate : return "Truncate"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CullModeFlagBits : VkCullModeFlags - { - eNone = VK_CULL_MODE_NONE - , eFront = VK_CULL_MODE_FRONT_BIT - , eBack = VK_CULL_MODE_BACK_BIT - , eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK - }; - - VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value ) - { - switch ( value ) - { - case CullModeFlagBits::eNone : return "None"; - case CullModeFlagBits::eFront : return "Front"; - case CullModeFlagBits::eBack : return "Back"; - case CullModeFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT - { - eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT - , eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT - , ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT - , eError = VK_DEBUG_REPORT_ERROR_BIT_EXT - , eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value ) - { - switch ( value ) - { - case DebugReportFlagBitsEXT::eInformation : return "Information"; - case DebugReportFlagBitsEXT::eWarning : return "Warning"; - case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning"; - case DebugReportFlagBitsEXT::eError : return "Error"; - case DebugReportFlagBitsEXT::eDebug : return "Debug"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugReportObjectTypeEXT - { - eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT - , eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT - , ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT - , eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT - , eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT - , eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT - , eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT - , eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT - , eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT - , eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT - , eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT - , eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT - , eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT - , eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT - , eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT - , eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT - , ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT - , ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT - , eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT - , ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT - , eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT - , eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT - , eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT - , eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT - , eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT - , eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT - , eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT - , eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT - , eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT - , eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT - , eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT - , eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - , eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT - , eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT - , eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT - , eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT - , eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT - , eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT - , eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT - , eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value ) - { - switch ( value ) - { - case DebugReportObjectTypeEXT::eUnknown : return "Unknown"; - case DebugReportObjectTypeEXT::eInstance : return "Instance"; - case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice"; - case DebugReportObjectTypeEXT::eDevice : return "Device"; - case DebugReportObjectTypeEXT::eQueue : return "Queue"; - case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore"; - case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer"; - case DebugReportObjectTypeEXT::eFence : return "Fence"; - case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory"; - case DebugReportObjectTypeEXT::eBuffer : return "Buffer"; - case DebugReportObjectTypeEXT::eImage : return "Image"; - case DebugReportObjectTypeEXT::eEvent : return "Event"; - case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool"; - case DebugReportObjectTypeEXT::eBufferView : return "BufferView"; - case DebugReportObjectTypeEXT::eImageView : return "ImageView"; - case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule"; - case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache"; - case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout"; - case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass"; - case DebugReportObjectTypeEXT::ePipeline : return "Pipeline"; - case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout"; - case DebugReportObjectTypeEXT::eSampler : return "Sampler"; - case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool"; - case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet"; - case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer"; - case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool"; - case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR"; - case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR"; - case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR"; - case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR"; - case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT"; - case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT - { - eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT - , eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT - , eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT - , eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value ) - { - switch ( value ) - { - case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose"; - case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info"; - case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning"; - case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT - { - eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT - , eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT - , ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value ) - { - switch ( value ) - { - case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General"; - case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation"; - case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DependencyFlagBits : VkDependencyFlags - { - eByRegion = VK_DEPENDENCY_BY_REGION_BIT - , eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT - , eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT - , eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR - , eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value ) - { - switch ( value ) - { - case DependencyFlagBits::eByRegion : return "ByRegion"; - case DependencyFlagBits::eDeviceGroup : return "DeviceGroup"; - case DependencyFlagBits::eViewLocal : return "ViewLocal"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags - { - eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT - , eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT - , ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT - , eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT - }; - using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits; - - VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value ) - { - switch ( value ) - { - case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending"; - case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound"; - case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags - { - eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT - , eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT - , eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE - , eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value ) - { - switch ( value ) - { - case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet"; - case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - case DescriptorPoolCreateFlagBits::eHostOnlyVALVE : return "HostOnlyVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags - { - eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT - , ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR - , eHostOnlyPoolVALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE - , eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value ) - { - switch ( value ) - { - case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool"; - case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR"; - case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE : return "HostOnlyPoolVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorType - { - eSampler = VK_DESCRIPTOR_TYPE_SAMPLER - , eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER - , eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE - , eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE - , eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER - , eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER - , eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER - , eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER - , eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC - , eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC - , eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - , eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT - , eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR - , eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV - , eMutableVALVE = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorType value ) - { - switch ( value ) - { - case DescriptorType::eSampler : return "Sampler"; - case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler"; - case DescriptorType::eSampledImage : return "SampledImage"; - case DescriptorType::eStorageImage : return "StorageImage"; - case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer"; - case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer"; - case DescriptorType::eUniformBuffer : return "UniformBuffer"; - case DescriptorType::eStorageBuffer : return "StorageBuffer"; - case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic"; - case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic"; - case DescriptorType::eInputAttachment : return "InputAttachment"; - case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT"; - case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV"; - case DescriptorType::eMutableVALVE : return "MutableVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorUpdateTemplateType - { - eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - , ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - }; - using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value ) - { - switch ( value ) - { - case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet"; - case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceCreateFlagBits - { - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits ) - { - return "(void)"; - } - - enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV - { - eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV - , eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV - , eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value ) - { - switch ( value ) - { - case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo"; - case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking"; - case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceEventTypeEXT - { - eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value ) - { - switch ( value ) - { - case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR - { - eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR - , eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR - , eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR - , eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value ) - { - switch ( value ) - { - case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local"; - case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote"; - case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum"; - case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceMemoryReportEventTypeEXT - { - eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT - , eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT - , eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT - , eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT - , eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value ) - { - switch ( value ) - { - case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate"; - case DeviceMemoryReportEventTypeEXT::eFree : return "Free"; - case DeviceMemoryReportEventTypeEXT::eImport : return "Import"; - case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport"; - case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags - { - eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value ) - { - switch ( value ) - { - case DeviceQueueCreateFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DiscardRectangleModeEXT - { - eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT - , eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value ) - { - switch ( value ) - { - case DiscardRectangleModeEXT::eInclusive : return "Inclusive"; - case DiscardRectangleModeEXT::eExclusive : return "Exclusive"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayEventTypeEXT - { - eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value ) - { - switch ( value ) - { - case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR - { - eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR - , eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR - , ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR - , ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value ) - { - switch ( value ) - { - case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayPowerStateEXT - { - eOff = VK_DISPLAY_POWER_STATE_OFF_EXT - , eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT - , eOn = VK_DISPLAY_POWER_STATE_ON_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value ) - { - switch ( value ) - { - case DisplayPowerStateEXT::eOff : return "Off"; - case DisplayPowerStateEXT::eSuspend : return "Suspend"; - case DisplayPowerStateEXT::eOn : return "On"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DriverId - { - eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY - , eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE - , eMesaRadv = VK_DRIVER_ID_MESA_RADV - , eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY - , eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS - , eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA - , eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY - , eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY - , eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY - , eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER - , eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY - , eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY - , eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE - , eMoltenvk = VK_DRIVER_ID_MOLTENVK - , eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR - }; - using DriverIdKHR = DriverId; - - VULKAN_HPP_INLINE std::string to_string( DriverId value ) - { - switch ( value ) - { - case DriverId::eAmdProprietary : return "AmdProprietary"; - case DriverId::eAmdOpenSource : return "AmdOpenSource"; - case DriverId::eMesaRadv : return "MesaRadv"; - case DriverId::eNvidiaProprietary : return "NvidiaProprietary"; - case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows"; - case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA"; - case DriverId::eImaginationProprietary : return "ImaginationProprietary"; - case DriverId::eQualcommProprietary : return "QualcommProprietary"; - case DriverId::eArmProprietary : return "ArmProprietary"; - case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader"; - case DriverId::eGgpProprietary : return "GgpProprietary"; - case DriverId::eBroadcomProprietary : return "BroadcomProprietary"; - case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe"; - case DriverId::eMoltenvk : return "Moltenvk"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DynamicState - { - eViewport = VK_DYNAMIC_STATE_VIEWPORT - , eScissor = VK_DYNAMIC_STATE_SCISSOR - , eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH - , eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS - , eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS - , eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS - , eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK - , eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK - , eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE - , eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV - , eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT - , eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT - , eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR - , eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV - , eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV - , eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV - , eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR - , eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT - , eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT - , eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT - , ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT - , eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT - , eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT - , eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT - , eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT - , eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT - , eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT - , eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT - , eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT - , eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DynamicState value ) - { - switch ( value ) - { - case DynamicState::eViewport : return "Viewport"; - case DynamicState::eScissor : return "Scissor"; - case DynamicState::eLineWidth : return "LineWidth"; - case DynamicState::eDepthBias : return "DepthBias"; - case DynamicState::eBlendConstants : return "BlendConstants"; - case DynamicState::eDepthBounds : return "DepthBounds"; - case DynamicState::eStencilCompareMask : return "StencilCompareMask"; - case DynamicState::eStencilWriteMask : return "StencilWriteMask"; - case DynamicState::eStencilReference : return "StencilReference"; - case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV"; - case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT"; - case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT"; - case DynamicState::eRayTracingPipelineStackSizeKHR : return "RayTracingPipelineStackSizeKHR"; - case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV"; - case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV"; - case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV"; - case DynamicState::eFragmentShadingRateKHR : return "FragmentShadingRateKHR"; - case DynamicState::eLineStippleEXT : return "LineStippleEXT"; - case DynamicState::eCullModeEXT : return "CullModeEXT"; - case DynamicState::eFrontFaceEXT : return "FrontFaceEXT"; - case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT"; - case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT"; - case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT"; - case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT"; - case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT"; - case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT"; - case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT"; - case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT"; - case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT"; - case DynamicState::eStencilOpEXT : return "StencilOpEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class EventCreateFlagBits : VkEventCreateFlags - { - eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value ) - { - switch ( value ) - { - case EventCreateFlagBits::eDeviceOnlyKHR : return "DeviceOnlyKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags - { - eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT - , eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT - }; - using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalFenceFeatureFlagBits::eExportable : return "Exportable"; - case ExternalFenceFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags - { - eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT - , eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT - , eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT - , eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT - }; - using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags - { - eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT - , eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT - , eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT - }; - using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV - { - eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV - , eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV - , eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value ) - { - switch ( value ) - { - case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags - { - // clang-format off - eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT - , eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT - , eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT - , eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT - , eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT - , eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT - , eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT - , eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT -#ifdef VK_USE_PLATFORM_ANDROID_KHR - , eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - , eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT - , eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT - // clang-format on - }; - using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture"; - case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource"; - case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT"; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID"; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT"; - case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV - { - eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV - , eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV - , eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV - , eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value ) - { - switch ( value ) - { - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags - { - eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT - , eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT - }; - using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable"; - case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags - { - eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT - , eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT - , eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT - , eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT - , eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT - , eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT - }; - using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence"; - case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FenceCreateFlagBits : VkFenceCreateFlags - { - eSignaled = VK_FENCE_CREATE_SIGNALED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value ) - { - switch ( value ) - { - case FenceCreateFlagBits::eSignaled : return "Signaled"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FenceImportFlagBits : VkFenceImportFlags - { - eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT - }; - using FenceImportFlagBitsKHR = FenceImportFlagBits; - - VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value ) - { - switch ( value ) - { - case FenceImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Filter - { - eNearest = VK_FILTER_NEAREST - , eLinear = VK_FILTER_LINEAR - , eCubicIMG = VK_FILTER_CUBIC_IMG - , eCubicEXT = VK_FILTER_CUBIC_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( Filter value ) - { - switch ( value ) - { - case Filter::eNearest : return "Nearest"; - case Filter::eLinear : return "Linear"; - case Filter::eCubicIMG : return "CubicIMG"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Format - { - eUndefined = VK_FORMAT_UNDEFINED - , eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8 - , eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16 - , eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16 - , eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16 - , eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16 - , eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16 - , eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16 - , eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16 - , eR8Unorm = VK_FORMAT_R8_UNORM - , eR8Snorm = VK_FORMAT_R8_SNORM - , eR8Uscaled = VK_FORMAT_R8_USCALED - , eR8Sscaled = VK_FORMAT_R8_SSCALED - , eR8Uint = VK_FORMAT_R8_UINT - , eR8Sint = VK_FORMAT_R8_SINT - , eR8Srgb = VK_FORMAT_R8_SRGB - , eR8G8Unorm = VK_FORMAT_R8G8_UNORM - , eR8G8Snorm = VK_FORMAT_R8G8_SNORM - , eR8G8Uscaled = VK_FORMAT_R8G8_USCALED - , eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED - , eR8G8Uint = VK_FORMAT_R8G8_UINT - , eR8G8Sint = VK_FORMAT_R8G8_SINT - , eR8G8Srgb = VK_FORMAT_R8G8_SRGB - , eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM - , eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM - , eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED - , eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED - , eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT - , eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT - , eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB - , eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM - , eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM - , eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED - , eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED - , eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT - , eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT - , eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB - , eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM - , eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM - , eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED - , eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED - , eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT - , eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT - , eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB - , eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM - , eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM - , eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED - , eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED - , eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT - , eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT - , eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB - , eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32 - , eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32 - , eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32 - , eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32 - , eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32 - , eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32 - , eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32 - , eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32 - , eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32 - , eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32 - , eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32 - , eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32 - , eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32 - , eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32 - , eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32 - , eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32 - , eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32 - , eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32 - , eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32 - , eR16Unorm = VK_FORMAT_R16_UNORM - , eR16Snorm = VK_FORMAT_R16_SNORM - , eR16Uscaled = VK_FORMAT_R16_USCALED - , eR16Sscaled = VK_FORMAT_R16_SSCALED - , eR16Uint = VK_FORMAT_R16_UINT - , eR16Sint = VK_FORMAT_R16_SINT - , eR16Sfloat = VK_FORMAT_R16_SFLOAT - , eR16G16Unorm = VK_FORMAT_R16G16_UNORM - , eR16G16Snorm = VK_FORMAT_R16G16_SNORM - , eR16G16Uscaled = VK_FORMAT_R16G16_USCALED - , eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED - , eR16G16Uint = VK_FORMAT_R16G16_UINT - , eR16G16Sint = VK_FORMAT_R16G16_SINT - , eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT - , eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM - , eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM - , eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED - , eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED - , eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT - , eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT - , eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT - , eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM - , eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM - , eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED - , eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED - , eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT - , eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT - , eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT - , eR32Uint = VK_FORMAT_R32_UINT - , eR32Sint = VK_FORMAT_R32_SINT - , eR32Sfloat = VK_FORMAT_R32_SFLOAT - , eR32G32Uint = VK_FORMAT_R32G32_UINT - , eR32G32Sint = VK_FORMAT_R32G32_SINT - , eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT - , eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT - , eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT - , eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT - , eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT - , eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT - , eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT - , eR64Uint = VK_FORMAT_R64_UINT - , eR64Sint = VK_FORMAT_R64_SINT - , eR64Sfloat = VK_FORMAT_R64_SFLOAT - , eR64G64Uint = VK_FORMAT_R64G64_UINT - , eR64G64Sint = VK_FORMAT_R64G64_SINT - , eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT - , eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT - , eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT - , eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT - , eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT - , eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT - , eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT - , eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32 - , eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 - , eD16Unorm = VK_FORMAT_D16_UNORM - , eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32 - , eD32Sfloat = VK_FORMAT_D32_SFLOAT - , eS8Uint = VK_FORMAT_S8_UINT - , eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT - , eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT - , eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT - , eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK - , eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK - , eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK - , eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK - , eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK - , eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK - , eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK - , eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK - , eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK - , eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK - , eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK - , eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK - , eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK - , eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK - , eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK - , eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK - , eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK - , eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK - , eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK - , eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK - , eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK - , eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK - , eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK - , eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK - , eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK - , eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK - , eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK - , eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK - , eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK - , eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK - , eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK - , eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK - , eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK - , eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK - , eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK - , eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK - , eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK - , eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK - , eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK - , eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK - , eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK - , eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK - , eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK - , eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK - , eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK - , eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK - , eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK - , eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK - , eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK - , eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK - , eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK - , eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK - , eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK - , eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK - , eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM - , eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM - , eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM - , eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM - , eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM - , eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM - , eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM - , eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16 - , eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16 - , eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 - , eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 - , eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 - , eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 - , eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 - , eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 - , eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 - , eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 - , eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16 - , eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16 - , eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 - , eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 - , eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 - , eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 - , eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 - , eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 - , eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 - , eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 - , eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM - , eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM - , eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM - , eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM - , eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM - , eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM - , eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM - , ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG - , ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG - , ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG - , ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG - , ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG - , ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG - , ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG - , ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG - , eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT - , eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT - , eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT - , eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT - , eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT - , eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT - , eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT - , eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT - , eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT - , eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT - , eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT - , eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT - , eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT - , eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT - , eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT - , eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT - , eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR - , eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR - , eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR - , eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR - , eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR - , eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR - , eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR - , eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR - , eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR - , eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR - , eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR - , eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR - , eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR - , eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR - , eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR - , eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR - , eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR - , eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR - , eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR - , eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR - , eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR - , eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR - , eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR - , eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR - , eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR - , eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR - , eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR - , eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR - , eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR - , eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR - , eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR - , eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR - , eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR - , eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( Format value ) - { - switch ( value ) - { - case Format::eUndefined : return "Undefined"; - case Format::eR4G4UnormPack8 : return "R4G4UnormPack8"; - case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16"; - case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16"; - case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16"; - case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16"; - case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16"; - case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16"; - case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16"; - case Format::eR8Unorm : return "R8Unorm"; - case Format::eR8Snorm : return "R8Snorm"; - case Format::eR8Uscaled : return "R8Uscaled"; - case Format::eR8Sscaled : return "R8Sscaled"; - case Format::eR8Uint : return "R8Uint"; - case Format::eR8Sint : return "R8Sint"; - case Format::eR8Srgb : return "R8Srgb"; - case Format::eR8G8Unorm : return "R8G8Unorm"; - case Format::eR8G8Snorm : return "R8G8Snorm"; - case Format::eR8G8Uscaled : return "R8G8Uscaled"; - case Format::eR8G8Sscaled : return "R8G8Sscaled"; - case Format::eR8G8Uint : return "R8G8Uint"; - case Format::eR8G8Sint : return "R8G8Sint"; - case Format::eR8G8Srgb : return "R8G8Srgb"; - case Format::eR8G8B8Unorm : return "R8G8B8Unorm"; - case Format::eR8G8B8Snorm : return "R8G8B8Snorm"; - case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled"; - case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled"; - case Format::eR8G8B8Uint : return "R8G8B8Uint"; - case Format::eR8G8B8Sint : return "R8G8B8Sint"; - case Format::eR8G8B8Srgb : return "R8G8B8Srgb"; - case Format::eB8G8R8Unorm : return "B8G8R8Unorm"; - case Format::eB8G8R8Snorm : return "B8G8R8Snorm"; - case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled"; - case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled"; - case Format::eB8G8R8Uint : return "B8G8R8Uint"; - case Format::eB8G8R8Sint : return "B8G8R8Sint"; - case Format::eB8G8R8Srgb : return "B8G8R8Srgb"; - case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm"; - case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm"; - case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled"; - case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled"; - case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint"; - case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint"; - case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb"; - case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm"; - case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm"; - case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled"; - case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled"; - case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint"; - case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint"; - case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb"; - case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32"; - case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32"; - case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32"; - case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32"; - case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32"; - case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32"; - case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32"; - case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32"; - case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32"; - case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32"; - case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32"; - case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32"; - case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32"; - case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32"; - case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32"; - case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32"; - case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32"; - case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32"; - case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32"; - case Format::eR16Unorm : return "R16Unorm"; - case Format::eR16Snorm : return "R16Snorm"; - case Format::eR16Uscaled : return "R16Uscaled"; - case Format::eR16Sscaled : return "R16Sscaled"; - case Format::eR16Uint : return "R16Uint"; - case Format::eR16Sint : return "R16Sint"; - case Format::eR16Sfloat : return "R16Sfloat"; - case Format::eR16G16Unorm : return "R16G16Unorm"; - case Format::eR16G16Snorm : return "R16G16Snorm"; - case Format::eR16G16Uscaled : return "R16G16Uscaled"; - case Format::eR16G16Sscaled : return "R16G16Sscaled"; - case Format::eR16G16Uint : return "R16G16Uint"; - case Format::eR16G16Sint : return "R16G16Sint"; - case Format::eR16G16Sfloat : return "R16G16Sfloat"; - case Format::eR16G16B16Unorm : return "R16G16B16Unorm"; - case Format::eR16G16B16Snorm : return "R16G16B16Snorm"; - case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled"; - case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled"; - case Format::eR16G16B16Uint : return "R16G16B16Uint"; - case Format::eR16G16B16Sint : return "R16G16B16Sint"; - case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat"; - case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm"; - case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm"; - case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled"; - case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled"; - case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint"; - case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint"; - case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat"; - case Format::eR32Uint : return "R32Uint"; - case Format::eR32Sint : return "R32Sint"; - case Format::eR32Sfloat : return "R32Sfloat"; - case Format::eR32G32Uint : return "R32G32Uint"; - case Format::eR32G32Sint : return "R32G32Sint"; - case Format::eR32G32Sfloat : return "R32G32Sfloat"; - case Format::eR32G32B32Uint : return "R32G32B32Uint"; - case Format::eR32G32B32Sint : return "R32G32B32Sint"; - case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat"; - case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint"; - case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint"; - case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat"; - case Format::eR64Uint : return "R64Uint"; - case Format::eR64Sint : return "R64Sint"; - case Format::eR64Sfloat : return "R64Sfloat"; - case Format::eR64G64Uint : return "R64G64Uint"; - case Format::eR64G64Sint : return "R64G64Sint"; - case Format::eR64G64Sfloat : return "R64G64Sfloat"; - case Format::eR64G64B64Uint : return "R64G64B64Uint"; - case Format::eR64G64B64Sint : return "R64G64B64Sint"; - case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat"; - case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint"; - case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint"; - case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat"; - case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32"; - case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32"; - case Format::eD16Unorm : return "D16Unorm"; - case Format::eX8D24UnormPack32 : return "X8D24UnormPack32"; - case Format::eD32Sfloat : return "D32Sfloat"; - case Format::eS8Uint : return "S8Uint"; - case Format::eD16UnormS8Uint : return "D16UnormS8Uint"; - case Format::eD24UnormS8Uint : return "D24UnormS8Uint"; - case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint"; - case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock"; - case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock"; - case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock"; - case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock"; - case Format::eBc2UnormBlock : return "Bc2UnormBlock"; - case Format::eBc2SrgbBlock : return "Bc2SrgbBlock"; - case Format::eBc3UnormBlock : return "Bc3UnormBlock"; - case Format::eBc3SrgbBlock : return "Bc3SrgbBlock"; - case Format::eBc4UnormBlock : return "Bc4UnormBlock"; - case Format::eBc4SnormBlock : return "Bc4SnormBlock"; - case Format::eBc5UnormBlock : return "Bc5UnormBlock"; - case Format::eBc5SnormBlock : return "Bc5SnormBlock"; - case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock"; - case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock"; - case Format::eBc7UnormBlock : return "Bc7UnormBlock"; - case Format::eBc7SrgbBlock : return "Bc7SrgbBlock"; - case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock"; - case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock"; - case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock"; - case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock"; - case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock"; - case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock"; - case Format::eEacR11UnormBlock : return "EacR11UnormBlock"; - case Format::eEacR11SnormBlock : return "EacR11SnormBlock"; - case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock"; - case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock"; - case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock"; - case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock"; - case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock"; - case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock"; - case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock"; - case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock"; - case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock"; - case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock"; - case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock"; - case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock"; - case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock"; - case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock"; - case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock"; - case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock"; - case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock"; - case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock"; - case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock"; - case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock"; - case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock"; - case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock"; - case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock"; - case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock"; - case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock"; - case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock"; - case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock"; - case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock"; - case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock"; - case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock"; - case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm"; - case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm"; - case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm"; - case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm"; - case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm"; - case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm"; - case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm"; - case Format::eR10X6UnormPack16 : return "R10X6UnormPack16"; - case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16"; - case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16"; - case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16"; - case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16"; - case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16"; - case Format::eR12X4UnormPack16 : return "R12X4UnormPack16"; - case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16"; - case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16"; - case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16"; - case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16"; - case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16"; - case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm"; - case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm"; - case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm"; - case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm"; - case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm"; - case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm"; - case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm"; - case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG"; - case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG"; - case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG"; - case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG"; - case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG"; - case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG"; - case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG"; - case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG"; - case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT"; - case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT"; - case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT"; - case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT"; - case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT"; - case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT"; - case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT"; - case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT"; - case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT"; - case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT"; - case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT"; - case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT"; - case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT"; - case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT"; - case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT"; - case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FormatFeatureFlagBits : VkFormatFeatureFlags - { - eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT - , eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT - , eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT - , eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT - , eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT - , eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT - , eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT - , eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT - , eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT - , eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT - , eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT - , eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT - , eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - , eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT - , eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT - , eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT - , eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT - , eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT - , eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT - , eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT - , eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT - , eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT - , eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT - , eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG - , eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR - , eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT - , eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - , eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR - , eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR - , eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR - , eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT - , eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT - , eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR - , eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR - , eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR - , eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR - , eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR - , eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value ) - { - switch ( value ) - { - case FormatFeatureFlagBits::eSampledImage : return "SampledImage"; - case FormatFeatureFlagBits::eStorageImage : return "StorageImage"; - case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic"; - case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic"; - case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer"; - case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment"; - case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend"; - case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc"; - case FormatFeatureFlagBits::eBlitDst : return "BlitDst"; - case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear"; - case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc"; - case FormatFeatureFlagBits::eTransferDst : return "TransferDst"; - case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable"; - case FormatFeatureFlagBits::eDisjoint : return "Disjoint"; - case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples"; - case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax"; - case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG"; - case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR"; - case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR : return "FragmentShadingRateAttachmentKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateCombinerOpKHR - { - eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - , eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR - , eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR - , eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR - , eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value ) - { - switch ( value ) - { - case FragmentShadingRateCombinerOpKHR::eKeep : return "Keep"; - case FragmentShadingRateCombinerOpKHR::eReplace : return "Replace"; - case FragmentShadingRateCombinerOpKHR::eMin : return "Min"; - case FragmentShadingRateCombinerOpKHR::eMax : return "Max"; - case FragmentShadingRateCombinerOpKHR::eMul : return "Mul"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateNV - { - e1InvocationPerPixel = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV - , e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV - , e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV - , e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV - , e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV - , e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV - , e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV - , e2InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV - , e4InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV - , e8InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV - , e16InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV - , eNoInvocations = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value ) - { - switch ( value ) - { - case FragmentShadingRateNV::e1InvocationPerPixel : return "1InvocationPerPixel"; - case FragmentShadingRateNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels"; - case FragmentShadingRateNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels"; - case FragmentShadingRateNV::e2InvocationsPerPixel : return "2InvocationsPerPixel"; - case FragmentShadingRateNV::e4InvocationsPerPixel : return "4InvocationsPerPixel"; - case FragmentShadingRateNV::e8InvocationsPerPixel : return "8InvocationsPerPixel"; - case FragmentShadingRateNV::e16InvocationsPerPixel : return "16InvocationsPerPixel"; - case FragmentShadingRateNV::eNoInvocations : return "NoInvocations"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateTypeNV - { - eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV - , eEnums = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value ) - { - switch ( value ) - { - case FragmentShadingRateTypeNV::eFragmentSize : return "FragmentSize"; - case FragmentShadingRateTypeNV::eEnums : return "Enums"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags - { - eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT - , eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value ) - { - switch ( value ) - { - case FramebufferCreateFlagBits::eImageless : return "Imageless"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FrontFace - { - eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE - , eClockwise = VK_FRONT_FACE_CLOCKWISE - }; - - VULKAN_HPP_INLINE std::string to_string( FrontFace value ) - { - switch ( value ) - { - case FrontFace::eCounterClockwise : return "CounterClockwise"; - case FrontFace::eClockwise : return "Clockwise"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - enum class FullScreenExclusiveEXT - { - eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT - , eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT - , eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT - , eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value ) - { - switch ( value ) - { - case FullScreenExclusiveEXT::eDefault : return "Default"; - case FullScreenExclusiveEXT::eAllowed : return "Allowed"; - case FullScreenExclusiveEXT::eDisallowed : return "Disallowed"; - case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR - { - eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR - , eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR - }; - using GeometryFlagBitsNV = GeometryFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value ) - { - switch ( value ) - { - case GeometryFlagBitsKHR::eOpaque : return "Opaque"; - case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR - { - eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR - , eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR - , eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR - , eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR - , eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV - }; - using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value ) - { - switch ( value ) - { - case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable"; - case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise"; - case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque"; - case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class GeometryTypeKHR - { - eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR - , eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR - , eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR - }; - using GeometryTypeNV = GeometryTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value ) - { - switch ( value ) - { - case GeometryTypeKHR::eTriangles : return "Triangles"; - case GeometryTypeKHR::eAabbs : return "Aabbs"; - case GeometryTypeKHR::eInstances : return "Instances"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageAspectFlagBits : VkImageAspectFlags - { - eColor = VK_IMAGE_ASPECT_COLOR_BIT - , eDepth = VK_IMAGE_ASPECT_DEPTH_BIT - , eStencil = VK_IMAGE_ASPECT_STENCIL_BIT - , eMetadata = VK_IMAGE_ASPECT_METADATA_BIT - , ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT - , ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT - , ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT - , eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT - , eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT - , eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT - , eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT - , ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR - , ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR - , ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value ) - { - switch ( value ) - { - case ImageAspectFlagBits::eColor : return "Color"; - case ImageAspectFlagBits::eDepth : return "Depth"; - case ImageAspectFlagBits::eStencil : return "Stencil"; - case ImageAspectFlagBits::eMetadata : return "Metadata"; - case ImageAspectFlagBits::ePlane0 : return "Plane0"; - case ImageAspectFlagBits::ePlane1 : return "Plane1"; - case ImageAspectFlagBits::ePlane2 : return "Plane2"; - case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT"; - case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT"; - case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT"; - case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageCreateFlagBits : VkImageCreateFlags - { - eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT - , eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT - , eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT - , eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT - , eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT - , eAlias = VK_IMAGE_CREATE_ALIAS_BIT - , eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT - , e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT - , eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT - , eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT - , eProtected = VK_IMAGE_CREATE_PROTECTED_BIT - , eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT - , eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV - , eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT - , eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT - , e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR - , eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR - , eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR - , eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR - , eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR - , eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value ) - { - switch ( value ) - { - case ImageCreateFlagBits::eSparseBinding : return "SparseBinding"; - case ImageCreateFlagBits::eSparseResidency : return "SparseResidency"; - case ImageCreateFlagBits::eSparseAliased : return "SparseAliased"; - case ImageCreateFlagBits::eMutableFormat : return "MutableFormat"; - case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible"; - case ImageCreateFlagBits::eAlias : return "Alias"; - case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible"; - case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible"; - case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage"; - case ImageCreateFlagBits::eProtected : return "Protected"; - case ImageCreateFlagBits::eDisjoint : return "Disjoint"; - case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV"; - case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT"; - case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageLayout - { - eUndefined = VK_IMAGE_LAYOUT_UNDEFINED - , eGeneral = VK_IMAGE_LAYOUT_GENERAL - , eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL - , eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL - , eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL - , eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - , eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL - , eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL - , ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED - , eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL - , eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL - , eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL - , eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL - , eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL - , eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL - , ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR - , eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR - , eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV - , eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT - , eReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR - , eAttachmentOptimalKHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR - , eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR - , eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR - , eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR - , eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR - , eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR - , eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR - , eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageLayout value ) - { - switch ( value ) - { - case ImageLayout::eUndefined : return "Undefined"; - case ImageLayout::eGeneral : return "General"; - case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal"; - case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal"; - case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal"; - case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal"; - case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal"; - case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal"; - case ImageLayout::ePreinitialized : return "Preinitialized"; - case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal"; - case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal"; - case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal"; - case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal"; - case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal"; - case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal"; - case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR"; - case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR"; - case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV"; - case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT"; - case ImageLayout::eReadOnlyOptimalKHR : return "ReadOnlyOptimalKHR"; - case ImageLayout::eAttachmentOptimalKHR : return "AttachmentOptimalKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageTiling - { - eOptimal = VK_IMAGE_TILING_OPTIMAL - , eLinear = VK_IMAGE_TILING_LINEAR - , eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ImageTiling value ) - { - switch ( value ) - { - case ImageTiling::eOptimal : return "Optimal"; - case ImageTiling::eLinear : return "Linear"; - case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageType - { - e1D = VK_IMAGE_TYPE_1D - , e2D = VK_IMAGE_TYPE_2D - , e3D = VK_IMAGE_TYPE_3D - }; - - VULKAN_HPP_INLINE std::string to_string( ImageType value ) - { - switch ( value ) - { - case ImageType::e1D : return "1D"; - case ImageType::e2D : return "2D"; - case ImageType::e3D : return "3D"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageUsageFlagBits : VkImageUsageFlags - { - eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT - , eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT - , eSampled = VK_IMAGE_USAGE_SAMPLED_BIT - , eStorage = VK_IMAGE_USAGE_STORAGE_BIT - , eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT - , eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - , eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT - , eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT - , eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV - , eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT - , eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value ) - { - switch ( value ) - { - case ImageUsageFlagBits::eTransferSrc : return "TransferSrc"; - case ImageUsageFlagBits::eTransferDst : return "TransferDst"; - case ImageUsageFlagBits::eSampled : return "Sampled"; - case ImageUsageFlagBits::eStorage : return "Storage"; - case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment"; - case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment"; - case ImageUsageFlagBits::eInputAttachment : return "InputAttachment"; - case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageViewCreateFlagBits : VkImageViewCreateFlags - { - eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT - , eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value ) - { - switch ( value ) - { - case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT"; - case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageViewType - { - e1D = VK_IMAGE_VIEW_TYPE_1D - , e2D = VK_IMAGE_VIEW_TYPE_2D - , e3D = VK_IMAGE_VIEW_TYPE_3D - , eCube = VK_IMAGE_VIEW_TYPE_CUBE - , e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY - , e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY - , eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - }; - - VULKAN_HPP_INLINE std::string to_string( ImageViewType value ) - { - switch ( value ) - { - case ImageViewType::e1D : return "1D"; - case ImageViewType::e2D : return "2D"; - case ImageViewType::e3D : return "3D"; - case ImageViewType::eCube : return "Cube"; - case ImageViewType::e1DArray : return "1DArray"; - case ImageViewType::e2DArray : return "2DArray"; - case ImageViewType::eCubeArray : return "CubeArray"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndexType - { - eUint16 = VK_INDEX_TYPE_UINT16 - , eUint32 = VK_INDEX_TYPE_UINT32 - , eNoneKHR = VK_INDEX_TYPE_NONE_KHR - , eUint8EXT = VK_INDEX_TYPE_UINT8_EXT - , eNoneNV = VK_INDEX_TYPE_NONE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndexType value ) - { - switch ( value ) - { - case IndexType::eUint16 : return "Uint16"; - case IndexType::eUint32 : return "Uint32"; - case IndexType::eNoneKHR : return "NoneKHR"; - case IndexType::eUint8EXT : return "Uint8EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV - { - eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV - , eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV - , eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value ) - { - switch ( value ) - { - case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess"; - case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences"; - case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectCommandsTokenTypeNV - { - eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV - , eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV - , eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV - , eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV - , ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV - , eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV - , eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV - , eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value ) - { - switch ( value ) - { - case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup"; - case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags"; - case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer"; - case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer"; - case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant"; - case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed"; - case IndirectCommandsTokenTypeNV::eDraw : return "Draw"; - case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV - { - eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value ) - { - switch ( value ) - { - case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class InstanceCreateFlagBits - { - }; - - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits ) - { - return "(void)"; - } - - enum class InternalAllocationType - { - eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - }; - - VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value ) - { - switch ( value ) - { - case InternalAllocationType::eExecutable : return "Executable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class LineRasterizationModeEXT - { - eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT - , eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT - , eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT - , eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value ) - { - switch ( value ) - { - case LineRasterizationModeEXT::eDefault : return "Default"; - case LineRasterizationModeEXT::eRectangular : return "Rectangular"; - case LineRasterizationModeEXT::eBresenham : return "Bresenham"; - case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class LogicOp - { - eClear = VK_LOGIC_OP_CLEAR - , eAnd = VK_LOGIC_OP_AND - , eAndReverse = VK_LOGIC_OP_AND_REVERSE - , eCopy = VK_LOGIC_OP_COPY - , eAndInverted = VK_LOGIC_OP_AND_INVERTED - , eNoOp = VK_LOGIC_OP_NO_OP - , eXor = VK_LOGIC_OP_XOR - , eOr = VK_LOGIC_OP_OR - , eNor = VK_LOGIC_OP_NOR - , eEquivalent = VK_LOGIC_OP_EQUIVALENT - , eInvert = VK_LOGIC_OP_INVERT - , eOrReverse = VK_LOGIC_OP_OR_REVERSE - , eCopyInverted = VK_LOGIC_OP_COPY_INVERTED - , eOrInverted = VK_LOGIC_OP_OR_INVERTED - , eNand = VK_LOGIC_OP_NAND - , eSet = VK_LOGIC_OP_SET - }; - - VULKAN_HPP_INLINE std::string to_string( LogicOp value ) - { - switch ( value ) - { - case LogicOp::eClear : return "Clear"; - case LogicOp::eAnd : return "And"; - case LogicOp::eAndReverse : return "AndReverse"; - case LogicOp::eCopy : return "Copy"; - case LogicOp::eAndInverted : return "AndInverted"; - case LogicOp::eNoOp : return "NoOp"; - case LogicOp::eXor : return "Xor"; - case LogicOp::eOr : return "Or"; - case LogicOp::eNor : return "Nor"; - case LogicOp::eEquivalent : return "Equivalent"; - case LogicOp::eInvert : return "Invert"; - case LogicOp::eOrReverse : return "OrReverse"; - case LogicOp::eCopyInverted : return "CopyInverted"; - case LogicOp::eOrInverted : return "OrInverted"; - case LogicOp::eNand : return "Nand"; - case LogicOp::eSet : return "Set"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags - { - eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT - , eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT - , eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT - }; - using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits; - - VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value ) - { - switch ( value ) - { - case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask"; - case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress"; - case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryHeapFlagBits : VkMemoryHeapFlags - { - eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT - , eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT - , eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value ) - { - switch ( value ) - { - case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryOverallocationBehaviorAMD - { - eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD - , eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD - , eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value ) - { - switch ( value ) - { - case MemoryOverallocationBehaviorAMD::eDefault : return "Default"; - case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed"; - case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags - { - eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT - , eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT - , eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT - , eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT - , eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT - , eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT - , eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD - , eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value ) - { - switch ( value ) - { - case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryPropertyFlagBits::eHostVisible : return "HostVisible"; - case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent"; - case MemoryPropertyFlagBits::eHostCached : return "HostCached"; - case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated"; - case MemoryPropertyFlagBits::eProtected : return "Protected"; - case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD"; - case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ObjectType - { - eUnknown = VK_OBJECT_TYPE_UNKNOWN - , eInstance = VK_OBJECT_TYPE_INSTANCE - , ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE - , eDevice = VK_OBJECT_TYPE_DEVICE - , eQueue = VK_OBJECT_TYPE_QUEUE - , eSemaphore = VK_OBJECT_TYPE_SEMAPHORE - , eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER - , eFence = VK_OBJECT_TYPE_FENCE - , eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY - , eBuffer = VK_OBJECT_TYPE_BUFFER - , eImage = VK_OBJECT_TYPE_IMAGE - , eEvent = VK_OBJECT_TYPE_EVENT - , eQueryPool = VK_OBJECT_TYPE_QUERY_POOL - , eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW - , eImageView = VK_OBJECT_TYPE_IMAGE_VIEW - , eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE - , ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE - , ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT - , eRenderPass = VK_OBJECT_TYPE_RENDER_PASS - , ePipeline = VK_OBJECT_TYPE_PIPELINE - , eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT - , eSampler = VK_OBJECT_TYPE_SAMPLER - , eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL - , eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET - , eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER - , eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL - , eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION - , eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE - , eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR - , eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR - , eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR - , eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR - , eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT - , eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT - , eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR - , eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT - , eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV - , ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL - , eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR - , eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV - , ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT - , eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR - , eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ObjectType value ) - { - switch ( value ) - { - case ObjectType::eUnknown : return "Unknown"; - case ObjectType::eInstance : return "Instance"; - case ObjectType::ePhysicalDevice : return "PhysicalDevice"; - case ObjectType::eDevice : return "Device"; - case ObjectType::eQueue : return "Queue"; - case ObjectType::eSemaphore : return "Semaphore"; - case ObjectType::eCommandBuffer : return "CommandBuffer"; - case ObjectType::eFence : return "Fence"; - case ObjectType::eDeviceMemory : return "DeviceMemory"; - case ObjectType::eBuffer : return "Buffer"; - case ObjectType::eImage : return "Image"; - case ObjectType::eEvent : return "Event"; - case ObjectType::eQueryPool : return "QueryPool"; - case ObjectType::eBufferView : return "BufferView"; - case ObjectType::eImageView : return "ImageView"; - case ObjectType::eShaderModule : return "ShaderModule"; - case ObjectType::ePipelineCache : return "PipelineCache"; - case ObjectType::ePipelineLayout : return "PipelineLayout"; - case ObjectType::eRenderPass : return "RenderPass"; - case ObjectType::ePipeline : return "Pipeline"; - case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout"; - case ObjectType::eSampler : return "Sampler"; - case ObjectType::eDescriptorPool : return "DescriptorPool"; - case ObjectType::eDescriptorSet : return "DescriptorSet"; - case ObjectType::eFramebuffer : return "Framebuffer"; - case ObjectType::eCommandPool : return "CommandPool"; - case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case ObjectType::eSurfaceKHR : return "SurfaceKHR"; - case ObjectType::eSwapchainKHR : return "SwapchainKHR"; - case ObjectType::eDisplayKHR : return "DisplayKHR"; - case ObjectType::eDisplayModeKHR : return "DisplayModeKHR"; - case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT"; - case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT"; - case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV"; - case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL"; - case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR"; - case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV"; - case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - template - struct cpp_type - {}; - - enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags - { - eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT - , eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT - , eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT - , eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT - }; - using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value ) - { - switch ( value ) - { - case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc"; - case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst"; - case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc"; - case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceConfigurationTypeINTEL - { - eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value ) - { - switch ( value ) - { - case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR - { - ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR - , eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value ) - { - switch ( value ) - { - case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting"; - case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterScopeKHR - { - eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR - , eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR - , eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR - , eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR - , eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR - , eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value ) - { - switch ( value ) - { - case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer"; - case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass"; - case PerformanceCounterScopeKHR::eCommand : return "Command"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterStorageKHR - { - eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR - , eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR - , eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR - , eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR - , eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR - , eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value ) - { - switch ( value ) - { - case PerformanceCounterStorageKHR::eInt32 : return "Int32"; - case PerformanceCounterStorageKHR::eInt64 : return "Int64"; - case PerformanceCounterStorageKHR::eUint32 : return "Uint32"; - case PerformanceCounterStorageKHR::eUint64 : return "Uint64"; - case PerformanceCounterStorageKHR::eFloat32 : return "Float32"; - case PerformanceCounterStorageKHR::eFloat64 : return "Float64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterUnitKHR - { - eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR - , ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR - , eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR - , eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR - , eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR - , eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR - , eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR - , eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR - , eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR - , eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR - , eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value ) - { - switch ( value ) - { - case PerformanceCounterUnitKHR::eGeneric : return "Generic"; - case PerformanceCounterUnitKHR::ePercentage : return "Percentage"; - case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds"; - case PerformanceCounterUnitKHR::eBytes : return "Bytes"; - case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond"; - case PerformanceCounterUnitKHR::eKelvin : return "Kelvin"; - case PerformanceCounterUnitKHR::eWatts : return "Watts"; - case PerformanceCounterUnitKHR::eVolts : return "Volts"; - case PerformanceCounterUnitKHR::eAmps : return "Amps"; - case PerformanceCounterUnitKHR::eHertz : return "Hertz"; - case PerformanceCounterUnitKHR::eCycles : return "Cycles"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceOverrideTypeINTEL - { - eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL - , eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value ) - { - switch ( value ) - { - case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware"; - case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceParameterTypeINTEL - { - eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL - , eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value ) - { - switch ( value ) - { - case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported"; - case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceValueTypeINTEL - { - eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL - , eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL - , eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL - , eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL - , eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value ) - { - switch ( value ) - { - case PerformanceValueTypeINTEL::eUint32 : return "Uint32"; - case PerformanceValueTypeINTEL::eUint64 : return "Uint64"; - case PerformanceValueTypeINTEL::eFloat : return "Float"; - case PerformanceValueTypeINTEL::eBool : return "Bool"; - case PerformanceValueTypeINTEL::eString : return "String"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PhysicalDeviceType - { - eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER - , eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU - , eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU - , eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU - , eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU - }; - - VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value ) - { - switch ( value ) - { - case PhysicalDeviceType::eOther : return "Other"; - case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu"; - case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu"; - case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu"; - case PhysicalDeviceType::eCpu : return "Cpu"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineBindPoint - { - eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS - , eCompute = VK_PIPELINE_BIND_POINT_COMPUTE - , eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR - , eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value ) - { - switch ( value ) - { - case PipelineBindPoint::eGraphics : return "Graphics"; - case PipelineBindPoint::eCompute : return "Compute"; - case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags - { - eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value ) - { - switch ( value ) - { - case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCacheHeaderVersion - { - eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value ) - { - switch ( value ) - { - case PipelineCacheHeaderVersion::eOne : return "One"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD - { - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD ) - { - return "(void)"; - } - - enum class PipelineCreateFlagBits : VkPipelineCreateFlags - { - eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT - , eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT - , eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT - , eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT - , eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT - , eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR - , eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR - , eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR - , eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR - , eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR - , eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR - , eRayTracingShaderGroupHandleCaptureReplayKHR = VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR - , eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV - , eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR - , eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR - , eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV - , eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR - , eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT - , eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT - , eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR - , eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value ) - { - switch ( value ) - { - case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization"; - case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives"; - case PipelineCreateFlagBits::eDerivative : return "Derivative"; - case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex"; - case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase"; - case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR"; - case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR"; - case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR"; - case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR : return "RayTracingShaderGroupHandleCaptureReplayKHR"; - case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV"; - case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR"; - case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR"; - case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV"; - case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR"; - case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT"; - case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT - { - eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT - , eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT - , eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value ) - { - switch ( value ) - { - case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid"; - case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit"; - case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineExecutableStatisticFormatKHR - { - eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR - , eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR - , eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR - , eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value ) - { - switch ( value ) - { - case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32"; - case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64"; - case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64"; - case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags - { - eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT - , eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value ) - { - switch ( value ) - { - case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT"; - case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineStageFlagBits : VkPipelineStageFlags - { - eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT - , eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT - , eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT - , eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT - , eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT - , eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - , eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - , eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT - , eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT - , eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT - , eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT - , eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT - , eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT - , eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT - , eHost = VK_PIPELINE_STAGE_HOST_BIT - , eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT - , eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT - , eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT - , eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT - , eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR - , eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR - , eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV - , eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV - , eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV - , eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT - , eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV - , eNoneKHR = VK_PIPELINE_STAGE_NONE_KHR - , eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV - , eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - , eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value ) - { - switch ( value ) - { - case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe"; - case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect"; - case PipelineStageFlagBits::eVertexInput : return "VertexInput"; - case PipelineStageFlagBits::eVertexShader : return "VertexShader"; - case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader"; - case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader"; - case PipelineStageFlagBits::eGeometryShader : return "GeometryShader"; - case PipelineStageFlagBits::eFragmentShader : return "FragmentShader"; - case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests"; - case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests"; - case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput"; - case PipelineStageFlagBits::eComputeShader : return "ComputeShader"; - case PipelineStageFlagBits::eTransfer : return "Transfer"; - case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe"; - case PipelineStageFlagBits::eHost : return "Host"; - case PipelineStageFlagBits::eAllGraphics : return "AllGraphics"; - case PipelineStageFlagBits::eAllCommands : return "AllCommands"; - case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT"; - case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR"; - case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR"; - case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV"; - case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV"; - case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT"; - case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV"; - case PipelineStageFlagBits::eNoneKHR : return "NoneKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR - { - e2None = VK_PIPELINE_STAGE_2_NONE_KHR - , e2TopOfPipe = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR - , e2DrawIndirect = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR - , e2VertexInput = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR - , e2VertexShader = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR - , e2TessellationControlShader = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR - , e2TessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR - , e2GeometryShader = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR - , e2FragmentShader = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR - , e2EarlyFragmentTests = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR - , e2LateFragmentTests = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR - , e2ColorAttachmentOutput = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR - , e2ComputeShader = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR - , e2AllTransfer = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR - , e2BottomOfPipe = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR - , e2Host = VK_PIPELINE_STAGE_2_HOST_BIT_KHR - , e2AllGraphics = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR - , e2AllCommands = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR - , e2Copy = VK_PIPELINE_STAGE_2_COPY_BIT_KHR - , e2Resolve = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR - , e2Blit = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR - , e2Clear = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR - , e2IndexInput = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR - , e2VertexAttributeInput = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR - , e2PreRasterizationShaders = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR - , e2TransformFeedbackExt = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT - , e2ConditionalRenderingExt = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT - , e2CommandPreprocessNv = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV - , e2FragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - , e2AccelerationStructureBuild = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR - , e2RayTracingShader = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR - , e2FragmentDensityProcessExt = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT - , e2TaskShaderNv = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV - , e2MeshShaderNv = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV - , e2AccelerationStructureBuildNv = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV - , e2RayTracingShaderNv = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV - , e2ShadingRateImageNv = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV - , e2Transfer = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value ) - { - switch ( value ) - { - case PipelineStageFlagBits2KHR::e2None : return "2None"; - case PipelineStageFlagBits2KHR::e2TopOfPipe : return "2TopOfPipe"; - case PipelineStageFlagBits2KHR::e2DrawIndirect : return "2DrawIndirect"; - case PipelineStageFlagBits2KHR::e2VertexInput : return "2VertexInput"; - case PipelineStageFlagBits2KHR::e2VertexShader : return "2VertexShader"; - case PipelineStageFlagBits2KHR::e2TessellationControlShader : return "2TessellationControlShader"; - case PipelineStageFlagBits2KHR::e2TessellationEvaluationShader : return "2TessellationEvaluationShader"; - case PipelineStageFlagBits2KHR::e2GeometryShader : return "2GeometryShader"; - case PipelineStageFlagBits2KHR::e2FragmentShader : return "2FragmentShader"; - case PipelineStageFlagBits2KHR::e2EarlyFragmentTests : return "2EarlyFragmentTests"; - case PipelineStageFlagBits2KHR::e2LateFragmentTests : return "2LateFragmentTests"; - case PipelineStageFlagBits2KHR::e2ColorAttachmentOutput : return "2ColorAttachmentOutput"; - case PipelineStageFlagBits2KHR::e2ComputeShader : return "2ComputeShader"; - case PipelineStageFlagBits2KHR::e2AllTransfer : return "2AllTransfer"; - case PipelineStageFlagBits2KHR::e2BottomOfPipe : return "2BottomOfPipe"; - case PipelineStageFlagBits2KHR::e2Host : return "2Host"; - case PipelineStageFlagBits2KHR::e2AllGraphics : return "2AllGraphics"; - case PipelineStageFlagBits2KHR::e2AllCommands : return "2AllCommands"; - case PipelineStageFlagBits2KHR::e2Copy : return "2Copy"; - case PipelineStageFlagBits2KHR::e2Resolve : return "2Resolve"; - case PipelineStageFlagBits2KHR::e2Blit : return "2Blit"; - case PipelineStageFlagBits2KHR::e2Clear : return "2Clear"; - case PipelineStageFlagBits2KHR::e2IndexInput : return "2IndexInput"; - case PipelineStageFlagBits2KHR::e2VertexAttributeInput : return "2VertexAttributeInput"; - case PipelineStageFlagBits2KHR::e2PreRasterizationShaders : return "2PreRasterizationShaders"; - case PipelineStageFlagBits2KHR::e2TransformFeedbackExt : return "2TransformFeedbackExt"; - case PipelineStageFlagBits2KHR::e2ConditionalRenderingExt : return "2ConditionalRenderingExt"; - case PipelineStageFlagBits2KHR::e2CommandPreprocessNv : return "2CommandPreprocessNv"; - case PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment : return "2FragmentShadingRateAttachment"; - case PipelineStageFlagBits2KHR::e2AccelerationStructureBuild : return "2AccelerationStructureBuild"; - case PipelineStageFlagBits2KHR::e2RayTracingShader : return "2RayTracingShader"; - case PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt : return "2FragmentDensityProcessExt"; - case PipelineStageFlagBits2KHR::e2TaskShaderNv : return "2TaskShaderNv"; - case PipelineStageFlagBits2KHR::e2MeshShaderNv : return "2MeshShaderNv"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PointClippingBehavior - { - eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES - , eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - }; - using PointClippingBehaviorKHR = PointClippingBehavior; - - VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value ) - { - switch ( value ) - { - case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes"; - case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PolygonMode - { - eFill = VK_POLYGON_MODE_FILL - , eLine = VK_POLYGON_MODE_LINE - , ePoint = VK_POLYGON_MODE_POINT - , eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PolygonMode value ) - { - switch ( value ) - { - case PolygonMode::eFill : return "Fill"; - case PolygonMode::eLine : return "Line"; - case PolygonMode::ePoint : return "Point"; - case PolygonMode::eFillRectangleNV : return "FillRectangleNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PresentModeKHR - { - eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR - , eMailbox = VK_PRESENT_MODE_MAILBOX_KHR - , eFifo = VK_PRESENT_MODE_FIFO_KHR - , eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR - , eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR - , eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value ) - { - switch ( value ) - { - case PresentModeKHR::eImmediate : return "Immediate"; - case PresentModeKHR::eMailbox : return "Mailbox"; - case PresentModeKHR::eFifo : return "Fifo"; - case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed"; - case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh"; - case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PrimitiveTopology - { - ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST - , eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST - , eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP - , eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST - , eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP - , eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN - , eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY - , eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY - , eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY - , eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY - , ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - }; - - VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value ) - { - switch ( value ) - { - case PrimitiveTopology::ePointList : return "PointList"; - case PrimitiveTopology::eLineList : return "LineList"; - case PrimitiveTopology::eLineStrip : return "LineStrip"; - case PrimitiveTopology::eTriangleList : return "TriangleList"; - case PrimitiveTopology::eTriangleStrip : return "TriangleStrip"; - case PrimitiveTopology::eTriangleFan : return "TriangleFan"; - case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency"; - case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency"; - case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency"; - case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency"; - case PrimitiveTopology::ePatchList : return "PatchList"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT - { - }; - - VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT ) - { - return "(void)"; - } - - enum class QueryControlFlagBits : VkQueryControlFlags - { - ePrecise = VK_QUERY_CONTROL_PRECISE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value ) - { - switch ( value ) - { - case QueryControlFlagBits::ePrecise : return "Precise"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags - { - eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT - , eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT - , eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT - , eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT - , eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT - , eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT - , eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT - , eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT - , eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT - , eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT - , eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value ) - { - switch ( value ) - { - case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices"; - case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives"; - case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives"; - case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations"; - case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives"; - case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations"; - case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches"; - case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations"; - case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryPoolCreateFlagBits - { - }; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits ) - { - return "(void)"; - } - - enum class QueryPoolSamplingModeINTEL - { - eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value ) - { - switch ( value ) - { - case QueryPoolSamplingModeINTEL::eManual : return "Manual"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryResultFlagBits : VkQueryResultFlags - { - e64 = VK_QUERY_RESULT_64_BIT - , eWait = VK_QUERY_RESULT_WAIT_BIT - , eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT - , ePartial = VK_QUERY_RESULT_PARTIAL_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value ) - { - switch ( value ) - { - case QueryResultFlagBits::e64 : return "64"; - case QueryResultFlagBits::eWait : return "Wait"; - case QueryResultFlagBits::eWithAvailability : return "WithAvailability"; - case QueryResultFlagBits::ePartial : return "Partial"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryType - { - eOcclusion = VK_QUERY_TYPE_OCCLUSION - , ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS - , eTimestamp = VK_QUERY_TYPE_TIMESTAMP - , eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT - , ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR - , eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR - , eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR - , eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV - , ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( QueryType value ) - { - switch ( value ) - { - case QueryType::eOcclusion : return "Occlusion"; - case QueryType::ePipelineStatistics : return "PipelineStatistics"; - case QueryType::eTimestamp : return "Timestamp"; - case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT"; - case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR"; - case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR"; - case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR"; - case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV"; - case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueueFlagBits : VkQueueFlags - { - eGraphics = VK_QUEUE_GRAPHICS_BIT - , eCompute = VK_QUEUE_COMPUTE_BIT - , eTransfer = VK_QUEUE_TRANSFER_BIT - , eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT - , eProtected = VK_QUEUE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value ) - { - switch ( value ) - { - case QueueFlagBits::eGraphics : return "Graphics"; - case QueueFlagBits::eCompute : return "Compute"; - case QueueFlagBits::eTransfer : return "Transfer"; - case QueueFlagBits::eSparseBinding : return "SparseBinding"; - case QueueFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueueGlobalPriorityEXT - { - eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT - , eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT - , eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT - , eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value ) - { - switch ( value ) - { - case QueueGlobalPriorityEXT::eLow : return "Low"; - case QueueGlobalPriorityEXT::eMedium : return "Medium"; - case QueueGlobalPriorityEXT::eHigh : return "High"; - case QueueGlobalPriorityEXT::eRealtime : return "Realtime"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RasterizationOrderAMD - { - eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD - , eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value ) - { - switch ( value ) - { - case RasterizationOrderAMD::eStrict : return "Strict"; - case RasterizationOrderAMD::eRelaxed : return "Relaxed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RayTracingShaderGroupTypeKHR - { - eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR - , eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR - , eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR - }; - using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value ) - { - switch ( value ) - { - case RayTracingShaderGroupTypeKHR::eGeneral : return "General"; - case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup"; - case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags - { - eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value ) - { - switch ( value ) - { - case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ResolveModeFlagBits : VkResolveModeFlags - { - eNone = VK_RESOLVE_MODE_NONE - , eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT - , eAverage = VK_RESOLVE_MODE_AVERAGE_BIT - , eMin = VK_RESOLVE_MODE_MIN_BIT - , eMax = VK_RESOLVE_MODE_MAX_BIT - }; - using ResolveModeFlagBitsKHR = ResolveModeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value ) - { - switch ( value ) - { - case ResolveModeFlagBits::eNone : return "None"; - case ResolveModeFlagBits::eSampleZero : return "SampleZero"; - case ResolveModeFlagBits::eAverage : return "Average"; - case ResolveModeFlagBits::eMin : return "Min"; - case ResolveModeFlagBits::eMax : return "Max"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Result - { - // clang-format off - eSuccess = VK_SUCCESS - , eNotReady = VK_NOT_READY - , eTimeout = VK_TIMEOUT - , eEventSet = VK_EVENT_SET - , eEventReset = VK_EVENT_RESET - , eIncomplete = VK_INCOMPLETE - , eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY - , eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY - , eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED - , eErrorDeviceLost = VK_ERROR_DEVICE_LOST - , eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED - , eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT - , eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT - , eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT - , eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER - , eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS - , eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED - , eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL - , eErrorUnknown = VK_ERROR_UNKNOWN - , eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY - , eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE - , eErrorFragmentation = VK_ERROR_FRAGMENTATION - , eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS - , eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR - , eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR - , eSuboptimalKHR = VK_SUBOPTIMAL_KHR - , eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR - , eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR - , eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT - , eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV - , eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT - , eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eThreadIdleKHR = VK_THREAD_IDLE_KHR - , eThreadDoneKHR = VK_THREAD_DONE_KHR - , eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR - , eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR - , ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT - , eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT - , eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT - , eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR - , eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR - , eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR - , eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT - // clang-format on - }; - - VULKAN_HPP_INLINE std::string to_string( Result value ) - { - switch ( value ) - { - case Result::eSuccess : return "Success"; - case Result::eNotReady : return "NotReady"; - case Result::eTimeout : return "Timeout"; - case Result::eEventSet : return "EventSet"; - case Result::eEventReset : return "EventReset"; - case Result::eIncomplete : return "Incomplete"; - case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory"; - case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory"; - case Result::eErrorInitializationFailed : return "ErrorInitializationFailed"; - case Result::eErrorDeviceLost : return "ErrorDeviceLost"; - case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed"; - case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent"; - case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent"; - case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent"; - case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver"; - case Result::eErrorTooManyObjects : return "ErrorTooManyObjects"; - case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported"; - case Result::eErrorFragmentedPool : return "ErrorFragmentedPool"; - case Result::eErrorUnknown : return "ErrorUnknown"; - case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory"; - case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle"; - case Result::eErrorFragmentation : return "ErrorFragmentation"; - case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress"; - case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR"; - case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR"; - case Result::eSuboptimalKHR : return "SuboptimalKHR"; - case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR"; - case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR"; - case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT"; - case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV"; - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT"; - case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case Result::eThreadIdleKHR : return "ThreadIdleKHR"; - case Result::eThreadDoneKHR : return "ThreadDoneKHR"; - case Result::eOperationDeferredKHR : return "OperationDeferredKHR"; - case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR"; - case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SampleCountFlagBits : VkSampleCountFlags - { - e1 = VK_SAMPLE_COUNT_1_BIT - , e2 = VK_SAMPLE_COUNT_2_BIT - , e4 = VK_SAMPLE_COUNT_4_BIT - , e8 = VK_SAMPLE_COUNT_8_BIT - , e16 = VK_SAMPLE_COUNT_16_BIT - , e32 = VK_SAMPLE_COUNT_32_BIT - , e64 = VK_SAMPLE_COUNT_64_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value ) - { - switch ( value ) - { - case SampleCountFlagBits::e1 : return "1"; - case SampleCountFlagBits::e2 : return "2"; - case SampleCountFlagBits::e4 : return "4"; - case SampleCountFlagBits::e8 : return "8"; - case SampleCountFlagBits::e16 : return "16"; - case SampleCountFlagBits::e32 : return "32"; - case SampleCountFlagBits::e64 : return "64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerAddressMode - { - eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT - , eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT - , eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE - , eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - , eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - , eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value ) - { - switch ( value ) - { - case SamplerAddressMode::eRepeat : return "Repeat"; - case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat"; - case SamplerAddressMode::eClampToEdge : return "ClampToEdge"; - case SamplerAddressMode::eClampToBorder : return "ClampToBorder"; - case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerCreateFlagBits : VkSamplerCreateFlags - { - eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT - , eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value ) - { - switch ( value ) - { - case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerMipmapMode - { - eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST - , eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value ) - { - switch ( value ) - { - case SamplerMipmapMode::eNearest : return "Nearest"; - case SamplerMipmapMode::eLinear : return "Linear"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerReductionMode - { - eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE - , eMin = VK_SAMPLER_REDUCTION_MODE_MIN - , eMax = VK_SAMPLER_REDUCTION_MODE_MAX - }; - using SamplerReductionModeEXT = SamplerReductionMode; - - VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value ) - { - switch ( value ) - { - case SamplerReductionMode::eWeightedAverage : return "WeightedAverage"; - case SamplerReductionMode::eMin : return "Min"; - case SamplerReductionMode::eMax : return "Max"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerYcbcrModelConversion - { - eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY - , eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY - , eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 - , eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 - , eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - }; - using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion; - - VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value ) - { - switch ( value ) - { - case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity"; - case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity"; - case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709"; - case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601"; - case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerYcbcrRange - { - eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL - , eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - }; - using SamplerYcbcrRangeKHR = SamplerYcbcrRange; - - VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value ) - { - switch ( value ) - { - case SamplerYcbcrRange::eItuFull : return "ItuFull"; - case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ScopeNV - { - eDevice = VK_SCOPE_DEVICE_NV - , eWorkgroup = VK_SCOPE_WORKGROUP_NV - , eSubgroup = VK_SCOPE_SUBGROUP_NV - , eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ScopeNV value ) - { - switch ( value ) - { - case ScopeNV::eDevice : return "Device"; - case ScopeNV::eWorkgroup : return "Workgroup"; - case ScopeNV::eSubgroup : return "Subgroup"; - case ScopeNV::eQueueFamily : return "QueueFamily"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags - { - eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT - }; - using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value ) - { - switch ( value ) - { - case SemaphoreImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreType - { - eBinary = VK_SEMAPHORE_TYPE_BINARY - , eTimeline = VK_SEMAPHORE_TYPE_TIMELINE - }; - using SemaphoreTypeKHR = SemaphoreType; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreType value ) - { - switch ( value ) - { - case SemaphoreType::eBinary : return "Binary"; - case SemaphoreType::eTimeline : return "Timeline"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags - { - eAny = VK_SEMAPHORE_WAIT_ANY_BIT - }; - using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value ) - { - switch ( value ) - { - case SemaphoreWaitFlagBits::eAny : return "Any"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD - { - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD ) - { - return "(void)"; - } - - enum class ShaderFloatControlsIndependence - { - e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY - , eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL - , eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - }; - using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence; - - VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value ) - { - switch ( value ) - { - case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly"; - case ShaderFloatControlsIndependence::eAll : return "All"; - case ShaderFloatControlsIndependence::eNone : return "None"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderGroupShaderKHR - { - eGeneral = VK_SHADER_GROUP_SHADER_GENERAL_KHR - , eClosestHit = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR - , eAnyHit = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR - , eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value ) - { - switch ( value ) - { - case ShaderGroupShaderKHR::eGeneral : return "General"; - case ShaderGroupShaderKHR::eClosestHit : return "ClosestHit"; - case ShaderGroupShaderKHR::eAnyHit : return "AnyHit"; - case ShaderGroupShaderKHR::eIntersection : return "Intersection"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderInfoTypeAMD - { - eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD - , eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD - , eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value ) - { - switch ( value ) - { - case ShaderInfoTypeAMD::eStatistics : return "Statistics"; - case ShaderInfoTypeAMD::eBinary : return "Binary"; - case ShaderInfoTypeAMD::eDisassembly : return "Disassembly"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags - { - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits ) - { - return "(void)"; - } - - enum class ShaderStageFlagBits : VkShaderStageFlags - { - eVertex = VK_SHADER_STAGE_VERTEX_BIT - , eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT - , eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT - , eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT - , eFragment = VK_SHADER_STAGE_FRAGMENT_BIT - , eCompute = VK_SHADER_STAGE_COMPUTE_BIT - , eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS - , eAll = VK_SHADER_STAGE_ALL - , eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR - , eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR - , eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR - , eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR - , eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR - , eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR - , eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV - , eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV - , eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV - , eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV - , eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV - , eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV - , eMissNV = VK_SHADER_STAGE_MISS_BIT_NV - , eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value ) - { - switch ( value ) - { - case ShaderStageFlagBits::eVertex : return "Vertex"; - case ShaderStageFlagBits::eTessellationControl : return "TessellationControl"; - case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation"; - case ShaderStageFlagBits::eGeometry : return "Geometry"; - case ShaderStageFlagBits::eFragment : return "Fragment"; - case ShaderStageFlagBits::eCompute : return "Compute"; - case ShaderStageFlagBits::eAllGraphics : return "AllGraphics"; - case ShaderStageFlagBits::eAll : return "All"; - case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR"; - case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR"; - case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR"; - case ShaderStageFlagBits::eMissKHR : return "MissKHR"; - case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR"; - case ShaderStageFlagBits::eCallableKHR : return "CallableKHR"; - case ShaderStageFlagBits::eTaskNV : return "TaskNV"; - case ShaderStageFlagBits::eMeshNV : return "MeshNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShadingRatePaletteEntryNV - { - eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV - , e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV - , e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV - , e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV - , e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV - , e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV - , e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV - , e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV - , e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV - , e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV - , e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV - , e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value ) - { - switch ( value ) - { - case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations"; - case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SharingMode - { - eExclusive = VK_SHARING_MODE_EXCLUSIVE - , eConcurrent = VK_SHARING_MODE_CONCURRENT - }; - - VULKAN_HPP_INLINE std::string to_string( SharingMode value ) - { - switch ( value ) - { - case SharingMode::eExclusive : return "Exclusive"; - case SharingMode::eConcurrent : return "Concurrent"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags - { - eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT - , eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT - , eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value ) - { - switch ( value ) - { - case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail"; - case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize"; - case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags - { - eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value ) - { - switch ( value ) - { - case SparseMemoryBindFlagBits::eMetadata : return "Metadata"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StencilFaceFlagBits : VkStencilFaceFlags - { - eFront = VK_STENCIL_FACE_FRONT_BIT - , eBack = VK_STENCIL_FACE_BACK_BIT - , eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK - , eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK - }; - - VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value ) - { - switch ( value ) - { - case StencilFaceFlagBits::eFront : return "Front"; - case StencilFaceFlagBits::eBack : return "Back"; - case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StencilOp - { - eKeep = VK_STENCIL_OP_KEEP - , eZero = VK_STENCIL_OP_ZERO - , eReplace = VK_STENCIL_OP_REPLACE - , eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP - , eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP - , eInvert = VK_STENCIL_OP_INVERT - , eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP - , eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP - }; - - VULKAN_HPP_INLINE std::string to_string( StencilOp value ) - { - switch ( value ) - { - case StencilOp::eKeep : return "Keep"; - case StencilOp::eZero : return "Zero"; - case StencilOp::eReplace : return "Replace"; - case StencilOp::eIncrementAndClamp : return "IncrementAndClamp"; - case StencilOp::eDecrementAndClamp : return "DecrementAndClamp"; - case StencilOp::eInvert : return "Invert"; - case StencilOp::eIncrementAndWrap : return "IncrementAndWrap"; - case StencilOp::eDecrementAndWrap : return "DecrementAndWrap"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StructureType - { - // clang-format off - eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO - , eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO - , eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO - , eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO - , eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO - , eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO - , eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE - , eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO - , eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO - , eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO - , eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO - , eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO - , eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO - , eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO - , eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO - , eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO - , eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO - , ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO - , ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO - , ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO - , ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO - , ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO - , ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO - , ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO - , ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO - , ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO - , ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO - , ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO - , eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO - , eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO - , ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO - , eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO - , eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO - , eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO - , eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO - , eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET - , eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET - , eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO - , eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO - , eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO - , eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO - , eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO - , eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO - , eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO - , eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER - , eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER - , eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER - , eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO - , eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - , ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES - , eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO - , eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO - , ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES - , eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS - , eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO - , eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO - , eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO - , eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO - , eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO - , eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO - , eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO - , eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO - , ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES - , eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO - , eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 - , eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 - , eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 - , eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 - , eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 - , ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 - , ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 - , eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 - , eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 - , ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 - , eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 - , ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 - , eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 - , ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 - , ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES - , eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO - , eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO - , ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO - , eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO - , ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES - , ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES - , ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES - , eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO - , ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES - , ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES - , eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 - , eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO - , eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO - , eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO - , eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO - , ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES - , eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES - , eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO - , ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO - , eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES - , ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO - , eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES - , ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES - , eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO - , eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO - , eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO - , ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO - , eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES - , eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO - , eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO - , ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO - , eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES - , ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES - , eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT - , ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES - , ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES - , ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES - , ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES - , ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES - , eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO - , eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 - , eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 - , eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 - , eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 - , eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 - , eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO - , eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO - , ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES - , ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES - , ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES - , ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES - , ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES - , eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO - , ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES - , ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES - , eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO - , eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT - , ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES - , eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE - , ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES - , eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO - , ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES - , eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO - , ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES - , ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES - , eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO - , eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO - , eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO - , ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES - , ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES - , ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES - , eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT - , eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT - , ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES - , ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES - , ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES - , eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO - , eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO - , eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO - , eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO - , ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES - , eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO - , eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO - , eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO - , eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO - , eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR - , ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR - , eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR - , eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR - , eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR - , eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR - , eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR - , eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR - , eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR - , eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR - , eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR -#ifdef VK_USE_PLATFORM_XLIB_KHR - , eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - , eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - , eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - , eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT - , ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD - , eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT - , eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT - , eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT - , eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV - , eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV - , eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV - , ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT - , ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT - , ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT - , eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX - , eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX - , eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD -#ifdef VK_USE_PLATFORM_GGP - , eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP -#endif /*VK_USE_PLATFORM_GGP*/ - , ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV - , eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV - , eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV - , eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV - , eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -#ifdef VK_USE_PLATFORM_VI_NN - , eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN -#endif /*VK_USE_PLATFORM_VI_NN*/ - , ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT - , eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT - , ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR - , eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR - , eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR - , eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR - , eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR - , eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR - , eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR - , eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR - , eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR - , eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR - , eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR - , ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR - , eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT - , ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT - , eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT - , ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR - , ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV - , eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT - , eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT - , eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT - , eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT - , eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT - , ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE - , ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX - , ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV - , ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT - , ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT - , ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT - , ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT - , ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT - , ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT - , eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT - , eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR - , eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR - , eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR - , eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR - , ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR - , ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR - , eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR - , ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR - , eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR - , ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR - , ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR - , ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR - , eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR - , eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR - , eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR - , eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR - , eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR - , eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR - , eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR -#ifdef VK_USE_PLATFORM_IOS_MVK - , eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - , eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - , eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT - , eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT - , eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT - , eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT - , eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT -#ifdef VK_USE_PLATFORM_ANDROID_KHR - , eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID - , eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID - , eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID - , eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID - , eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID - , eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - , ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT - , ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT - , eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT - , eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT - , eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT - , eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT - , ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT - , ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT - , eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT - , ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT - , ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT - , ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT - , ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV - , eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR - , eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR - , eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR - , eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR - , eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR - , eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR - , eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR - , eAccelerationStructureVersionInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR - , eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR - , eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR - , eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR - , ePhysicalDeviceAccelerationStructureFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR - , ePhysicalDeviceAccelerationStructurePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR - , eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR - , eAccelerationStructureBuildSizesInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR - , ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR - , ePhysicalDeviceRayTracingPipelinePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR - , eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR - , eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR - , eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR - , ePhysicalDeviceRayQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR - , ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV - , ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV - , ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV - , eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT - , ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT - , eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT - , eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT - , eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT - , eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT - , eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT -#ifdef VK_ENABLE_BETA_EXTENSIONS - , ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR - , ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - , ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV - , ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV - , ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV - , ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV - , eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV - , eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV - , eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV - , eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV - , eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV - , eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV - , eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV - , eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV - , ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV - , eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV - , eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV - , ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV - , ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV - , ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT - , eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT - , eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT - , eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT - , eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT - , ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT - , ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR - , ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD - , eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT - , ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD - , eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD - , ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT - , ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT - , ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -#ifdef VK_USE_PLATFORM_GGP - , ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP -#endif /*VK_USE_PLATFORM_GGP*/ - , ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT - , ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV - , ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV - , ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV - , ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV - , ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV - , ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV - , ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV - , eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV - , eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV - , ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL - , eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL - , eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL - , ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL - , ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL - , ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL - , ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL - , ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT - , eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD - , eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -#ifdef VK_USE_PLATFORM_FUCHSIA - , eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - , ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -#ifdef VK_USE_PLATFORM_METAL_EXT - , eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - , ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT - , ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT - , eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT - , ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT - , ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT - , ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT - , eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR - , ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR - , ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR - , ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR - , ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR - , ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD - , ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD - , ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT - , ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT - , ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT - , eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT - , eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR - , ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV - , ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT - , eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT - , ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT - , eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT - , ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV - , eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV - , ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV - , ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV - , ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV - , eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV - , ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT - , ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT -#ifdef VK_USE_PLATFORM_WIN32_KHR - , eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT - , eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT - , eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - , eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT - , ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT - , ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT - , ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT - , ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT - , ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT - , ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT - , ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR - , ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR - , ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR - , ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR - , ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR - , ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR - , ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT - , ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV - , eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV - , eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV - , eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV - , eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV - , eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV - , eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV - , ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV - , ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT - , ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT - , eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM - , eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM - , ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT - , eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT - , eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT - , ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT - , ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT - , eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT - , ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT - , ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT - , ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR - , ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT - , eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT - , ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT - , ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT - , ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV - , eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV - , eMemoryBarrier2KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR - , eBufferMemoryBarrier2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR - , eImageMemoryBarrier2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR - , eDependencyInfoKHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR - , eSubmitInfo2KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR - , eSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR - , eCommandBufferSubmitInfoKHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR - , ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR - , eQueueFamilyCheckpointProperties2Nv = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV - , eCheckpointData2Nv = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV - , ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR - , ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV - , ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV - , ePipelineFragmentShadingRateEnumStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV - , ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT - , ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT - , eCopyCommandTransformInfoQCOM = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM - , ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT - , ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR - , eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR - , eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR - , eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR - , eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR - , eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR - , eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR - , eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR - , eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR - , eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR - , eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR - , eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR - , ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - , eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - , ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE - , eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -#ifdef VK_USE_PLATFORM_SCREEN_QNX - , eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - , eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR - , eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR - , eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR - , eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR - , eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR - , eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR - , eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR - , eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR - , eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR - , eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT - , eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR - , eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR - , eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR - , eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT - , eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT - , eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR - , eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT - , eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT - , eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR - , eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR - , eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR - , eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR - , eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR - , eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR - , eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR - , eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR - , eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR - , eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR - , eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR - , eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR - , eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR - , eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR - , eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR - , eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR - , eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR - , eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR - , eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR - , eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR - , eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR - , eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR - , eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR - , eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR - , eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT - , eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR - , eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR - , eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR - , eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR - , eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR - , eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR - , ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR - , ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR - , ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT - , ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR - , ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR - , ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT - , ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT - , ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR - , ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR - , ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR - , ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR - , ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR - , ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR - , ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR - , ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR - , ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR - , ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT - , ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR - , ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR - , ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR - , ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR - , ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR - , ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR - , ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR - , ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR - , ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR - , ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT - , ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR - , ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT - , ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR - , ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR - , ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES - , ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR - , ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR - , ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR - , ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR - , ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR - , ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR - , ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR - , ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES - , ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR - , ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR - , ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR - , eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL - , eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR - , eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR - , eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR - , eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR - , eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR - , eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT - , eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR - , eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR - , eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR - , eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR - , eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR - , eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR - , eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR - , eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR - , eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR - , eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR - , eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR - , eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR - , eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR - , eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR - // clang-format on - }; - - VULKAN_HPP_INLINE std::string to_string( StructureType value ) - { - switch ( value ) - { - case StructureType::eApplicationInfo : return "ApplicationInfo"; - case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo"; - case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo"; - case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo"; - case StructureType::eSubmitInfo : return "SubmitInfo"; - case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo"; - case StructureType::eMappedMemoryRange : return "MappedMemoryRange"; - case StructureType::eBindSparseInfo : return "BindSparseInfo"; - case StructureType::eFenceCreateInfo : return "FenceCreateInfo"; - case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo"; - case StructureType::eEventCreateInfo : return "EventCreateInfo"; - case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo"; - case StructureType::eBufferCreateInfo : return "BufferCreateInfo"; - case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo"; - case StructureType::eImageCreateInfo : return "ImageCreateInfo"; - case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo"; - case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo"; - case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo"; - case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo"; - case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo"; - case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo"; - case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo"; - case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo"; - case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo"; - case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo"; - case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo"; - case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo"; - case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo"; - case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo"; - case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo"; - case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo"; - case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo"; - case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo"; - case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo"; - case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo"; - case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet"; - case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet"; - case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo"; - case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo"; - case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo"; - case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo"; - case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo"; - case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo"; - case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo"; - case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier"; - case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier"; - case StructureType::eMemoryBarrier : return "MemoryBarrier"; - case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo"; - case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo"; - case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties"; - case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo"; - case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo"; - case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures"; - case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements"; - case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo"; - case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo"; - case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo"; - case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo"; - case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo"; - case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo"; - case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo"; - case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo"; - case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties"; - case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo"; - case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2"; - case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2"; - case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2"; - case StructureType::eMemoryRequirements2 : return "MemoryRequirements2"; - case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2"; - case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2"; - case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2"; - case StructureType::eFormatProperties2 : return "FormatProperties2"; - case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2"; - case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2"; - case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2"; - case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2"; - case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2"; - case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2"; - case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties"; - case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo"; - case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo"; - case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo"; - case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo"; - case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures"; - case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties"; - case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures"; - case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo"; - case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures"; - case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties"; - case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2"; - case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo"; - case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo"; - case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo"; - case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo"; - case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures"; - case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties"; - case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo"; - case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo"; - case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties"; - case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo"; - case StructureType::eExternalBufferProperties : return "ExternalBufferProperties"; - case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties"; - case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo"; - case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo"; - case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo"; - case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo"; - case StructureType::eExternalFenceProperties : return "ExternalFenceProperties"; - case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo"; - case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo"; - case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo"; - case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties"; - case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties"; - case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport"; - case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures"; - case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features"; - case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties"; - case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features"; - case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties"; - case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo"; - case StructureType::eAttachmentDescription2 : return "AttachmentDescription2"; - case StructureType::eAttachmentReference2 : return "AttachmentReference2"; - case StructureType::eSubpassDescription2 : return "SubpassDescription2"; - case StructureType::eSubpassDependency2 : return "SubpassDependency2"; - case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2"; - case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo"; - case StructureType::eSubpassEndInfo : return "SubpassEndInfo"; - case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures"; - case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties"; - case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features"; - case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features"; - case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties"; - case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo"; - case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures"; - case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties"; - case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo"; - case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport"; - case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties"; - case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve"; - case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures"; - case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo"; - case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties"; - case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo"; - case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures"; - case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures"; - case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo"; - case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo"; - case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo"; - case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures"; - case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures"; - case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures"; - case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout"; - case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout"; - case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties"; - case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo"; - case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo"; - case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo"; - case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures"; - case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo"; - case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo"; - case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo"; - case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo"; - case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR"; - case StructureType::ePresentInfoKHR : return "PresentInfoKHR"; - case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR"; - case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR"; - case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR"; - case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR"; - case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR"; - case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR"; - case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR"; - case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR"; - case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR"; -#ifdef VK_USE_PLATFORM_XLIB_KHR - case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR"; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR"; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR"; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR"; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT"; - case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD"; - case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT"; - case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT"; - case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT"; - case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV"; - case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV"; - case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV"; - case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT"; - case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT"; - case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT"; - case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX"; - case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX"; - case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD"; -#ifdef VK_USE_PLATFORM_GGP - case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP"; -#endif /*VK_USE_PLATFORM_GGP*/ - case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV"; - case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV"; - case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV"; - case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV"; - case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT"; -#ifdef VK_USE_PLATFORM_VI_NN - case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN"; -#endif /*VK_USE_PLATFORM_VI_NN*/ - case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT"; - case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT"; - case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR"; - case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR"; - case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR"; - case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR"; - case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR"; - case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR"; - case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR"; - case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR"; - case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR"; - case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR"; - case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR"; - case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR"; - case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT"; - case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT"; - case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT"; - case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR"; - case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV"; - case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT"; - case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT"; - case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT"; - case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT"; - case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT"; - case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE"; - case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"; - case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV"; - case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT"; - case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT"; - case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT"; - case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT"; - case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT"; - case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR"; - case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR"; - case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR"; - case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR"; - case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR"; - case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR"; - case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR"; - case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR"; - case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR"; - case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR"; - case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR"; - case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR"; - case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR"; - case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR"; - case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR"; - case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR"; - case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR"; - case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR"; - case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR"; -#ifdef VK_USE_PLATFORM_IOS_MVK - case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK"; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK"; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT"; - case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT"; - case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT"; - case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT"; - case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT"; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID"; - case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID"; - case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID"; - case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID"; - case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID"; - case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID"; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT"; - case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT"; - case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT"; - case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT"; - case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT"; - case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT"; - case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT"; - case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT"; - case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT"; - case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV"; - case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR"; - case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR"; - case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR"; - case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR"; - case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR"; - case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR"; - case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR"; - case StructureType::eAccelerationStructureVersionInfoKHR : return "AccelerationStructureVersionInfoKHR"; - case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR"; - case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR"; - case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR"; - case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR : return "PhysicalDeviceAccelerationStructureFeaturesKHR"; - case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR : return "PhysicalDeviceAccelerationStructurePropertiesKHR"; - case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR"; - case StructureType::eAccelerationStructureBuildSizesInfoKHR : return "AccelerationStructureBuildSizesInfoKHR"; - case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR : return "PhysicalDeviceRayTracingPipelineFeaturesKHR"; - case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR : return "PhysicalDeviceRayTracingPipelinePropertiesKHR"; - case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR"; - case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR"; - case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR"; - case StructureType::ePhysicalDeviceRayQueryFeaturesKHR : return "PhysicalDeviceRayQueryFeaturesKHR"; - case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV"; - case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT"; - case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT"; - case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT"; - case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT"; - case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS - case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR"; - case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR"; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV"; - case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV"; - case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV"; - case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV"; - case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV"; - case StructureType::eGeometryNV : return "GeometryNV"; - case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV"; - case StructureType::eGeometryAabbNV : return "GeometryAabbNV"; - case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV"; - case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV"; - case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV"; - case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV"; - case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV"; - case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV"; - case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV"; - case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV"; - case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT"; - case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT"; - case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT"; - case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT"; - case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT"; - case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT"; - case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR"; - case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD"; - case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT"; - case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD"; - case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT"; - case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT"; -#ifdef VK_USE_PLATFORM_GGP - case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP"; -#endif /*VK_USE_PLATFORM_GGP*/ - case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT"; - case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV"; - case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV"; - case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV"; - case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV"; - case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV"; - case StructureType::eCheckpointDataNV : return "CheckpointDataNV"; - case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV"; - case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL"; - case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL"; - case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL"; - case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL"; - case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL"; - case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL"; - case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL"; - case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT"; - case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD"; - case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD"; -#ifdef VK_USE_PLATFORM_FUCHSIA - case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA"; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR : return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR"; -#ifdef VK_USE_PLATFORM_METAL_EXT - case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT"; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT"; - case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT"; - case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT"; - case StructureType::eFragmentShadingRateAttachmentInfoKHR : return "FragmentShadingRateAttachmentInfoKHR"; - case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR : return "PipelineFragmentShadingRateStateCreateInfoKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR : return "PhysicalDeviceFragmentShadingRatePropertiesKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR : return "PhysicalDeviceFragmentShadingRateFeaturesKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRateKHR : return "PhysicalDeviceFragmentShadingRateKHR"; - case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD"; - case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD"; - case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT"; - case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT"; - case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT"; - case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT"; - case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR"; - case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT"; - case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT"; - case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT"; - case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT"; - case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV"; - case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV"; - case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV"; - case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV"; - case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT"; - case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT"; -#ifdef VK_USE_PLATFORM_WIN32_KHR - case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT"; - case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT"; - case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT"; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT"; - case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT"; - case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT"; - case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT"; - case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT"; - case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR"; - case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR"; - case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR"; - case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR"; - case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR"; - case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR"; - case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"; - case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV"; - case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV"; - case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV"; - case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV"; - case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV"; - case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV"; - case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV"; - case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT"; - case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM"; - case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM"; - case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT"; - case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT"; - case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT"; - case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT"; - case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT"; - case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT"; - case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT"; - case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT"; - case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR"; - case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT"; - case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT"; - case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT"; - case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT"; - case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV"; - case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV"; - case StructureType::eMemoryBarrier2KHR : return "MemoryBarrier2KHR"; - case StructureType::eBufferMemoryBarrier2KHR : return "BufferMemoryBarrier2KHR"; - case StructureType::eImageMemoryBarrier2KHR : return "ImageMemoryBarrier2KHR"; - case StructureType::eDependencyInfoKHR : return "DependencyInfoKHR"; - case StructureType::eSubmitInfo2KHR : return "SubmitInfo2KHR"; - case StructureType::eSemaphoreSubmitInfoKHR : return "SemaphoreSubmitInfoKHR"; - case StructureType::eCommandBufferSubmitInfoKHR : return "CommandBufferSubmitInfoKHR"; - case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR : return "PhysicalDeviceSynchronization2FeaturesKHR"; - case StructureType::eQueueFamilyCheckpointProperties2Nv : return "QueueFamilyCheckpointProperties2Nv"; - case StructureType::eCheckpointData2Nv : return "CheckpointData2Nv"; - case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR : return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV : return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV"; - case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV : return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV"; - case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV : return "PipelineFragmentShadingRateEnumStateCreateInfoNV"; - case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT"; - case StructureType::eCopyCommandTransformInfoQCOM : return "CopyCommandTransformInfoQCOM"; - case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT"; - case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR : return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR"; - case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR"; - case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR"; - case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR"; - case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR"; - case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR"; - case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR"; - case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR"; - case StructureType::eImageCopy2KHR : return "ImageCopy2KHR"; - case StructureType::eImageBlit2KHR : return "ImageBlit2KHR"; - case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR"; - case StructureType::eImageResolve2KHR : return "ImageResolve2KHR"; - case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT"; -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT"; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE : return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE"; - case StructureType::eMutableDescriptorTypeCreateInfoVALVE : return "MutableDescriptorTypeCreateInfoVALVE"; -#ifdef VK_USE_PLATFORM_SCREEN_QNX - case StructureType::eScreenSurfaceCreateInfoQNX : return "ScreenSurfaceCreateInfoQNX"; -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags - { - eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT - , eVote = VK_SUBGROUP_FEATURE_VOTE_BIT - , eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT - , eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT - , eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT - , eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT - , eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT - , eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT - , ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value ) - { - switch ( value ) - { - case SubgroupFeatureFlagBits::eBasic : return "Basic"; - case SubgroupFeatureFlagBits::eVote : return "Vote"; - case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic"; - case SubgroupFeatureFlagBits::eBallot : return "Ballot"; - case SubgroupFeatureFlagBits::eShuffle : return "Shuffle"; - case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative"; - case SubgroupFeatureFlagBits::eClustered : return "Clustered"; - case SubgroupFeatureFlagBits::eQuad : return "Quad"; - case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR - { - eProtected = VK_SUBMIT_PROTECTED_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value ) - { - switch ( value ) - { - case SubmitFlagBitsKHR::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubpassContents - { - eInline = VK_SUBPASS_CONTENTS_INLINE - , eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - }; - - VULKAN_HPP_INLINE std::string to_string( SubpassContents value ) - { - switch ( value ) - { - case SubpassContents::eInline : return "Inline"; - case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags - { - ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX - , ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX - , eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM - , eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value ) - { - switch ( value ) - { - case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX"; - case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX"; - case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM"; - case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT - { - eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value ) - { - switch ( value ) - { - case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR - { - eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR - , eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR - , eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR - , eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR - , eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR - , eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR - , eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR - , eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR - , eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value ) - { - switch ( value ) - { - case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity"; - case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90"; - case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180"; - case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270"; - case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR - { - eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR - , eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR - , eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value ) - { - switch ( value ) - { - case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case SwapchainCreateFlagBitsKHR::eProtected : return "Protected"; - case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SystemAllocationScope - { - eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND - , eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT - , eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE - , eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE - , eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - }; - - VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value ) - { - switch ( value ) - { - case SystemAllocationScope::eCommand : return "Command"; - case SystemAllocationScope::eObject : return "Object"; - case SystemAllocationScope::eCache : return "Cache"; - case SystemAllocationScope::eDevice : return "Device"; - case SystemAllocationScope::eInstance : return "Instance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class TessellationDomainOrigin - { - eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT - , eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - }; - using TessellationDomainOriginKHR = TessellationDomainOrigin; - - VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value ) - { - switch ( value ) - { - case TessellationDomainOrigin::eUpperLeft : return "UpperLeft"; - case TessellationDomainOrigin::eLowerLeft : return "LowerLeft"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class TimeDomainEXT - { - eDevice = VK_TIME_DOMAIN_DEVICE_EXT - , eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT - , eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT - , eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value ) - { - switch ( value ) - { - case TimeDomainEXT::eDevice : return "Device"; - case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic"; - case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw"; - case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT - { - eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT - , eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT - , eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT - , eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT - , eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT - , eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT - , eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value ) - { - switch ( value ) - { - case ToolPurposeFlagBitsEXT::eValidation : return "Validation"; - case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling"; - case ToolPurposeFlagBitsEXT::eTracing : return "Tracing"; - case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures"; - case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures"; - case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting"; - case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationCacheHeaderVersionEXT - { - eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value ) - { - switch ( value ) - { - case ValidationCacheHeaderVersionEXT::eOne : return "One"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationCheckEXT - { - eAll = VK_VALIDATION_CHECK_ALL_EXT - , eShaders = VK_VALIDATION_CHECK_SHADERS_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value ) - { - switch ( value ) - { - case ValidationCheckEXT::eAll : return "All"; - case ValidationCheckEXT::eShaders : return "Shaders"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationFeatureDisableEXT - { - eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT - , eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT - , eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT - , eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT - , eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT - , eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT - , eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value ) - { - switch ( value ) - { - case ValidationFeatureDisableEXT::eAll : return "All"; - case ValidationFeatureDisableEXT::eShaders : return "Shaders"; - case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety"; - case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters"; - case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes"; - case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks"; - case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationFeatureEnableEXT - { - eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT - , eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - , eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - , eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT - , eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value ) - { - switch ( value ) - { - case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted"; - case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot"; - case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices"; - case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf"; - case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class VendorId - { - eVIV = VK_VENDOR_ID_VIV - , eVSI = VK_VENDOR_ID_VSI - , eKazan = VK_VENDOR_ID_KAZAN - , eCodeplay = VK_VENDOR_ID_CODEPLAY - , eMESA = VK_VENDOR_ID_MESA - , ePocl = VK_VENDOR_ID_POCL - }; - - VULKAN_HPP_INLINE std::string to_string( VendorId value ) - { - switch ( value ) - { - case VendorId::eVIV : return "VIV"; - case VendorId::eVSI : return "VSI"; - case VendorId::eKazan : return "Kazan"; - case VendorId::eCodeplay : return "Codeplay"; - case VendorId::eMESA : return "MESA"; - case VendorId::ePocl : return "Pocl"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class VertexInputRate - { - eVertex = VK_VERTEX_INPUT_RATE_VERTEX - , eInstance = VK_VERTEX_INPUT_RATE_INSTANCE - }; - - VULKAN_HPP_INLINE std::string to_string( VertexInputRate value ) - { - switch ( value ) - { - case VertexInputRate::eVertex : return "Vertex"; - case VertexInputRate::eInstance : return "Instance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ViewportCoordinateSwizzleNV - { - ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV - , eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV - , ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV - , eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV - , ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV - , eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV - , ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV - , eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value ) - { - switch ( value ) - { - case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX"; - case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX"; - case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY"; - case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY"; - case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ"; - case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ"; - case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW"; - case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - template - struct IndexTypeValue - {}; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16; - }; - - template <> - struct CppType - { - using Type = uint16_t; - }; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32; - }; - - template <> - struct CppType - { - using Type = uint32_t; - }; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT; - }; - - template <> - struct CppType - { - using Type = uint8_t; - }; - - - using AccelerationStructureCreateFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AccelerationStructureCreateFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using AccessFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( AccessFlagBits::eIndirectCommandRead ) - | VkFlags( AccessFlagBits::eIndexRead ) - | VkFlags( AccessFlagBits::eVertexAttributeRead ) - | VkFlags( AccessFlagBits::eUniformRead ) - | VkFlags( AccessFlagBits::eInputAttachmentRead ) - | VkFlags( AccessFlagBits::eShaderRead ) - | VkFlags( AccessFlagBits::eShaderWrite ) - | VkFlags( AccessFlagBits::eColorAttachmentRead ) - | VkFlags( AccessFlagBits::eColorAttachmentWrite ) - | VkFlags( AccessFlagBits::eDepthStencilAttachmentRead ) - | VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite ) - | VkFlags( AccessFlagBits::eTransferRead ) - | VkFlags( AccessFlagBits::eTransferWrite ) - | VkFlags( AccessFlagBits::eHostRead ) - | VkFlags( AccessFlagBits::eHostWrite ) - | VkFlags( AccessFlagBits::eMemoryRead ) - | VkFlags( AccessFlagBits::eMemoryWrite ) - | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT ) - | VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT ) - | VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT ) - | VkFlags( AccessFlagBits::eConditionalRenderingReadEXT ) - | VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) - | VkFlags( AccessFlagBits::eAccelerationStructureReadKHR ) - | VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR ) - | VkFlags( AccessFlagBits::eShadingRateImageReadNV ) - | VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT ) - | VkFlags( AccessFlagBits::eCommandPreprocessReadNV ) - | VkFlags( AccessFlagBits::eCommandPreprocessWriteNV ) - | VkFlags( AccessFlagBits::eNoneKHR ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AccessFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AccessFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | "; - if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | "; - if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | "; - if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | "; - if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | "; - if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | "; - if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | "; - if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | "; - if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | "; - if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | "; - if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | "; - if ( value & AccessFlagBits::eHostRead ) result += "HostRead | "; - if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | "; - if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | "; - if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | "; - if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | "; - if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | "; - if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | "; - if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | "; - if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | "; - if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | "; - if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | "; - if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | "; - if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using AccessFlags2KHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags64 - { - allFlags = - VkFlags64( AccessFlagBits2KHR::e2None ) - | VkFlags64( AccessFlagBits2KHR::e2IndirectCommandRead ) - | VkFlags64( AccessFlagBits2KHR::e2IndexRead ) - | VkFlags64( AccessFlagBits2KHR::e2VertexAttributeRead ) - | VkFlags64( AccessFlagBits2KHR::e2UniformRead ) - | VkFlags64( AccessFlagBits2KHR::e2InputAttachmentRead ) - | VkFlags64( AccessFlagBits2KHR::e2ShaderRead ) - | VkFlags64( AccessFlagBits2KHR::e2ShaderWrite ) - | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentRead ) - | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentWrite ) - | VkFlags64( AccessFlagBits2KHR::e2DepthStencilAttachmentRead ) - | VkFlags64( AccessFlagBits2KHR::e2DepthStencilAttachmentWrite ) - | VkFlags64( AccessFlagBits2KHR::e2TransferRead ) - | VkFlags64( AccessFlagBits2KHR::e2TransferWrite ) - | VkFlags64( AccessFlagBits2KHR::e2HostRead ) - | VkFlags64( AccessFlagBits2KHR::e2HostWrite ) - | VkFlags64( AccessFlagBits2KHR::e2MemoryRead ) - | VkFlags64( AccessFlagBits2KHR::e2MemoryWrite ) - | VkFlags64( AccessFlagBits2KHR::e2ShaderSampledRead ) - | VkFlags64( AccessFlagBits2KHR::e2ShaderStorageRead ) - | VkFlags64( AccessFlagBits2KHR::e2ShaderStorageWrite ) - | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackWriteExt ) - | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt ) - | VkFlags64( AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt ) - | VkFlags64( AccessFlagBits2KHR::e2ConditionalRenderingReadExt ) - | VkFlags64( AccessFlagBits2KHR::e2CommandPreprocessReadNv ) - | VkFlags64( AccessFlagBits2KHR::e2CommandPreprocessWriteNv ) - | VkFlags64( AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead ) - | VkFlags64( AccessFlagBits2KHR::e2AccelerationStructureRead ) - | VkFlags64( AccessFlagBits2KHR::e2AccelerationStructureWrite ) - | VkFlags64( AccessFlagBits2KHR::e2FragmentDensityMapReadExt ) - | VkFlags64( AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags2KHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags2KHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0, AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags2KHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AccessFlags2KHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AccessFlagBits2KHR::e2IndirectCommandRead ) result += "2IndirectCommandRead | "; - if ( value & AccessFlagBits2KHR::e2IndexRead ) result += "2IndexRead | "; - if ( value & AccessFlagBits2KHR::e2VertexAttributeRead ) result += "2VertexAttributeRead | "; - if ( value & AccessFlagBits2KHR::e2UniformRead ) result += "2UniformRead | "; - if ( value & AccessFlagBits2KHR::e2InputAttachmentRead ) result += "2InputAttachmentRead | "; - if ( value & AccessFlagBits2KHR::e2ShaderRead ) result += "2ShaderRead | "; - if ( value & AccessFlagBits2KHR::e2ShaderWrite ) result += "2ShaderWrite | "; - if ( value & AccessFlagBits2KHR::e2ColorAttachmentRead ) result += "2ColorAttachmentRead | "; - if ( value & AccessFlagBits2KHR::e2ColorAttachmentWrite ) result += "2ColorAttachmentWrite | "; - if ( value & AccessFlagBits2KHR::e2DepthStencilAttachmentRead ) result += "2DepthStencilAttachmentRead | "; - if ( value & AccessFlagBits2KHR::e2DepthStencilAttachmentWrite ) result += "2DepthStencilAttachmentWrite | "; - if ( value & AccessFlagBits2KHR::e2TransferRead ) result += "2TransferRead | "; - if ( value & AccessFlagBits2KHR::e2TransferWrite ) result += "2TransferWrite | "; - if ( value & AccessFlagBits2KHR::e2HostRead ) result += "2HostRead | "; - if ( value & AccessFlagBits2KHR::e2HostWrite ) result += "2HostWrite | "; - if ( value & AccessFlagBits2KHR::e2MemoryRead ) result += "2MemoryRead | "; - if ( value & AccessFlagBits2KHR::e2MemoryWrite ) result += "2MemoryWrite | "; - if ( value & AccessFlagBits2KHR::e2ShaderSampledRead ) result += "2ShaderSampledRead | "; - if ( value & AccessFlagBits2KHR::e2ShaderStorageRead ) result += "2ShaderStorageRead | "; - if ( value & AccessFlagBits2KHR::e2ShaderStorageWrite ) result += "2ShaderStorageWrite | "; - if ( value & AccessFlagBits2KHR::e2TransformFeedbackWriteExt ) result += "2TransformFeedbackWriteExt | "; - if ( value & AccessFlagBits2KHR::e2TransformFeedbackCounterReadExt ) result += "2TransformFeedbackCounterReadExt | "; - if ( value & AccessFlagBits2KHR::e2TransformFeedbackCounterWriteExt ) result += "2TransformFeedbackCounterWriteExt | "; - if ( value & AccessFlagBits2KHR::e2ConditionalRenderingReadExt ) result += "2ConditionalRenderingReadExt | "; - if ( value & AccessFlagBits2KHR::e2CommandPreprocessReadNv ) result += "2CommandPreprocessReadNv | "; - if ( value & AccessFlagBits2KHR::e2CommandPreprocessWriteNv ) result += "2CommandPreprocessWriteNv | "; - if ( value & AccessFlagBits2KHR::e2FragmentShadingRateAttachmentRead ) result += "2FragmentShadingRateAttachmentRead | "; - if ( value & AccessFlagBits2KHR::e2AccelerationStructureRead ) result += "2AccelerationStructureRead | "; - if ( value & AccessFlagBits2KHR::e2AccelerationStructureWrite ) result += "2AccelerationStructureWrite | "; - if ( value & AccessFlagBits2KHR::e2FragmentDensityMapReadExt ) result += "2FragmentDensityMapReadExt | "; - if ( value & AccessFlagBits2KHR::e2ColorAttachmentReadNoncoherentExt ) result += "2ColorAttachmentReadNoncoherentExt | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using AcquireProfilingLockFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using AndroidSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - using AttachmentDescriptionFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( AttachmentDescriptionFlagBits::eMayAlias ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AttachmentDescriptionFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using BufferCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( BufferCreateFlagBits::eSparseBinding ) - | VkFlags( BufferCreateFlagBits::eSparseResidency ) - | VkFlags( BufferCreateFlagBits::eSparseAliased ) - | VkFlags( BufferCreateFlagBits::eProtected ) - | VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BufferCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using BufferUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( BufferUsageFlagBits::eTransferSrc ) - | VkFlags( BufferUsageFlagBits::eTransferDst ) - | VkFlags( BufferUsageFlagBits::eUniformTexelBuffer ) - | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer ) - | VkFlags( BufferUsageFlagBits::eUniformBuffer ) - | VkFlags( BufferUsageFlagBits::eStorageBuffer ) - | VkFlags( BufferUsageFlagBits::eIndexBuffer ) - | VkFlags( BufferUsageFlagBits::eVertexBuffer ) - | VkFlags( BufferUsageFlagBits::eIndirectBuffer ) - | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress ) - | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) - | VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) - | VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) - | VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) - | VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) - | VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BufferUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | "; - if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | "; - if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | "; - if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | "; - if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | "; - if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) result += "AccelerationStructureBuildInputReadOnlyKHR | "; - if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR ) result += "AccelerationStructureStorageKHR | "; - if ( value & BufferUsageFlagBits::eShaderBindingTableKHR ) result += "ShaderBindingTableKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class BufferViewCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits ) - { - return "(void)"; - } - - using BufferViewCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags ) - { - - return "{}"; - } - - - using BuildAccelerationStructureFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) - | VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) - | VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) - | VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) - | VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BuildAccelerationStructureFlagsKHR( bits ) ); - } - - using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ColorComponentFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ColorComponentFlagBits::eR ) - | VkFlags( ColorComponentFlagBits::eG ) - | VkFlags( ColorComponentFlagBits::eB ) - | VkFlags( ColorComponentFlagBits::eA ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ColorComponentFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ColorComponentFlagBits::eR ) result += "R | "; - if ( value & ColorComponentFlagBits::eG ) result += "G | "; - if ( value & ColorComponentFlagBits::eB ) result += "B | "; - if ( value & ColorComponentFlagBits::eA ) result += "A | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandBufferResetFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CommandBufferResetFlagBits::eReleaseResources ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandBufferResetFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandBufferUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit ) - | VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue ) - | VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandBufferUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | "; - if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | "; - if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandPoolCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CommandPoolCreateFlagBits::eTransient ) - | VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer ) - | VkFlags( CommandPoolCreateFlagBits::eProtected ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandPoolCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | "; - if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | "; - if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandPoolResetFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CommandPoolResetFlagBits::eReleaseResources ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandPoolResetFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class CommandPoolTrimFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits ) - { - return "(void)"; - } - - using CommandPoolTrimFlags = Flags; - - using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags ) - { - - return "{}"; - } - - - using CompositeAlphaFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CompositeAlphaFlagBitsKHR::eOpaque ) - | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied ) - | VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied ) - | VkFlags( CompositeAlphaFlagBitsKHR::eInherit ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CompositeAlphaFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ConditionalRenderingFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ConditionalRenderingFlagBitsEXT::eInverted ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ConditionalRenderingFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CullModeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( CullModeFlagBits::eNone ) - | VkFlags( CullModeFlagBits::eFront ) - | VkFlags( CullModeFlagBits::eBack ) - | VkFlags( CullModeFlagBits::eFrontAndBack ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CullModeFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CullModeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CullModeFlagBits::eFront ) result += "Front | "; - if ( value & CullModeFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugReportFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DebugReportFlagBitsEXT::eInformation ) - | VkFlags( DebugReportFlagBitsEXT::eWarning ) - | VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning ) - | VkFlags( DebugReportFlagBitsEXT::eError ) - | VkFlags( DebugReportFlagBitsEXT::eDebug ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugReportFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | "; - if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | "; - if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | "; - if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugUtilsMessageSeverityFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) - | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) - | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) - | VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugUtilsMessageTypeFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) - | VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation ) - | VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugUtilsMessageTypeFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT ) - { - return "(void)"; - } - - using DebugUtilsMessengerCallbackDataFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT ) - { - - return "{}"; - } - - enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT ) - { - return "(void)"; - } - - using DebugUtilsMessengerCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT ) - { - - return "{}"; - } - - - using DependencyFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DependencyFlagBits::eByRegion ) - | VkFlags( DependencyFlagBits::eDeviceGroup ) - | VkFlags( DependencyFlagBits::eViewLocal ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DependencyFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DependencyFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | "; - if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | "; - if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DescriptorBindingFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind ) - | VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) - | VkFlags( DescriptorBindingFlagBits::ePartiallyBound ) - | VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorBindingFlags( bits ) ); - } - - using DescriptorBindingFlagsEXT = DescriptorBindingFlags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | "; - if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | "; - if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DescriptorPoolCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) - | VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind ) - | VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorPoolCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | "; - if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) result += "HostOnlyVALVE | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DescriptorPoolResetFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits ) - { - return "(void)"; - } - - using DescriptorPoolResetFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags ) - { - - return "{}"; - } - - - using DescriptorSetLayoutCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) - | VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) - | VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorSetLayoutCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | "; - if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | "; - if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) result += "HostOnlyPoolVALVE | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits ) - { - return "(void)"; - } - - using DescriptorUpdateTemplateCreateFlags = Flags; - - using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags ) - { - - return "{}"; - } - - - using DeviceCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags ) - { - - return "{}"; - } - - - using DeviceDiagnosticsConfigFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) - | VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) - | VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceDiagnosticsConfigFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | "; - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | "; - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DeviceGroupPresentModeFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal ) - | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote ) - | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum ) - | VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceGroupPresentModeFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DeviceMemoryReportFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT ) - { - return "(void)"; - } - - using DeviceMemoryReportFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT ) - { - - return "{}"; - } - - - using DeviceQueueCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DeviceQueueCreateFlagBits::eProtected ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceQueueCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using DirectFBSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - enum class DisplayModeCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR ) - { - return "(void)"; - } - - using DisplayModeCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR ) - { - - return "{}"; - } - - - using DisplayPlaneAlphaFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque ) - | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal ) - | VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) - | VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DisplayPlaneAlphaFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using DisplaySurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR ) - { - - return "{}"; - } - - - using EventCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( EventCreateFlagBits::eDeviceOnlyKHR ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return EventCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return EventCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0, EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return EventCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( EventCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & EventCreateFlagBits::eDeviceOnlyKHR ) result += "DeviceOnlyKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalFenceFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalFenceFeatureFlagBits::eExportable ) - | VkFlags( ExternalFenceFeatureFlagBits::eImportable ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalFenceFeatureFlags( bits ) ); - } - - using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalFenceHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd ) - | VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) - | VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) - | VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalFenceHandleTypeFlags( bits ) ); - } - - using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly ) - | VkFlags( ExternalMemoryFeatureFlagBits::eExportable ) - | VkFlags( ExternalMemoryFeatureFlagBits::eImportable ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryFeatureFlags( bits ) ); - } - - using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryFeatureFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) - | VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable ) - | VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryFeatureFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) -#ifdef VK_USE_PLATFORM_ANDROID_KHR - | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) - | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryHandleTypeFlags( bits ) ); - } - - using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | "; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | "; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryHandleTypeFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) - | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) - | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) - | VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryHandleTypeFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalSemaphoreFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable ) - | VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalSemaphoreFeatureFlags( bits ) ); - } - - using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalSemaphoreHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) - | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) - | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) - | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) - | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalSemaphoreHandleTypeFlags( bits ) ); - } - - using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FenceCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( FenceCreateFlagBits::eSignaled ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FenceCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FenceImportFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( FenceImportFlagBits::eTemporary ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FenceImportFlags( bits ) ); - } - - using FenceImportFlagsKHR = FenceImportFlags; - - VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FormatFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( FormatFeatureFlagBits::eSampledImage ) - | VkFlags( FormatFeatureFlagBits::eStorageImage ) - | VkFlags( FormatFeatureFlagBits::eStorageImageAtomic ) - | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer ) - | VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer ) - | VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic ) - | VkFlags( FormatFeatureFlagBits::eVertexBuffer ) - | VkFlags( FormatFeatureFlagBits::eColorAttachment ) - | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend ) - | VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment ) - | VkFlags( FormatFeatureFlagBits::eBlitSrc ) - | VkFlags( FormatFeatureFlagBits::eBlitDst ) - | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear ) - | VkFlags( FormatFeatureFlagBits::eTransferSrc ) - | VkFlags( FormatFeatureFlagBits::eTransferDst ) - | VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples ) - | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) - | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) - | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) - | VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) - | VkFlags( FormatFeatureFlagBits::eDisjoint ) - | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples ) - | VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax ) - | VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) - | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) - | VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT ) - | VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FormatFeatureFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | "; - if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | "; - if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | "; - if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | "; - if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | "; - if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | "; - if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | "; - if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | "; - if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | "; - if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | "; - if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) result += "FragmentShadingRateAttachmentKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FramebufferCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( FramebufferCreateFlagBits::eImageless ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FramebufferCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using GeometryFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( GeometryFlagBitsKHR::eOpaque ) - | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( GeometryFlagsKHR( bits ) ); - } - - using GeometryFlagsNV = GeometryFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using GeometryInstanceFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) - | VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) - | VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) - | VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( GeometryInstanceFlagsKHR( bits ) ); - } - - using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | "; - if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | "; - if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | "; - if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using HeadlessSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_IOS_MVK - enum class IOSSurfaceCreateFlagBitsMVK : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK ) - { - return "(void)"; - } - - using IOSSurfaceCreateFlagsMVK = Flags; - - VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - - using ImageAspectFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ImageAspectFlagBits::eColor ) - | VkFlags( ImageAspectFlagBits::eDepth ) - | VkFlags( ImageAspectFlagBits::eStencil ) - | VkFlags( ImageAspectFlagBits::eMetadata ) - | VkFlags( ImageAspectFlagBits::ePlane0 ) - | VkFlags( ImageAspectFlagBits::ePlane1 ) - | VkFlags( ImageAspectFlagBits::ePlane2 ) - | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT ) - | VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT ) - | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT ) - | VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageAspectFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageAspectFlagBits::eColor ) result += "Color | "; - if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | "; - if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | "; - if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | "; - if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | "; - if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | "; - if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | "; - if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ImageCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ImageCreateFlagBits::eSparseBinding ) - | VkFlags( ImageCreateFlagBits::eSparseResidency ) - | VkFlags( ImageCreateFlagBits::eSparseAliased ) - | VkFlags( ImageCreateFlagBits::eMutableFormat ) - | VkFlags( ImageCreateFlagBits::eCubeCompatible ) - | VkFlags( ImageCreateFlagBits::eAlias ) - | VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions ) - | VkFlags( ImageCreateFlagBits::e2DArrayCompatible ) - | VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible ) - | VkFlags( ImageCreateFlagBits::eExtendedUsage ) - | VkFlags( ImageCreateFlagBits::eProtected ) - | VkFlags( ImageCreateFlagBits::eDisjoint ) - | VkFlags( ImageCreateFlagBits::eCornerSampledNV ) - | VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) - | VkFlags( ImageCreateFlagBits::eSubsampledEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | "; - if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | "; - if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | "; - if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | "; - if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | "; - if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | "; - if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | "; - if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | "; - if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_FUCHSIA - enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA ) - { - return "(void)"; - } - - using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags; - - VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - - using ImageUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ImageUsageFlagBits::eTransferSrc ) - | VkFlags( ImageUsageFlagBits::eTransferDst ) - | VkFlags( ImageUsageFlagBits::eSampled ) - | VkFlags( ImageUsageFlagBits::eStorage ) - | VkFlags( ImageUsageFlagBits::eColorAttachment ) - | VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) - | VkFlags( ImageUsageFlagBits::eTransientAttachment ) - | VkFlags( ImageUsageFlagBits::eInputAttachment ) - | VkFlags( ImageUsageFlagBits::eShadingRateImageNV ) - | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | "; - if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | "; - if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | "; - if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | "; - if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ImageViewCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) - | VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageViewCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | "; - if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using IndirectCommandsLayoutUsageFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) - | VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) - | VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using IndirectStateFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( IndirectStateFlagBitsNV::eFlagFrontface ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( IndirectStateFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using InstanceCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_MACOS_MVK - enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK ) - { - return "(void)"; - } - - using MacOSSurfaceCreateFlagsMVK = Flags; - - VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - - using MemoryAllocateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( MemoryAllocateFlagBits::eDeviceMask ) - | VkFlags( MemoryAllocateFlagBits::eDeviceAddress ) - | VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryAllocateFlags( bits ) ); - } - - using MemoryAllocateFlagsKHR = MemoryAllocateFlags; - - VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using MemoryHeapFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( MemoryHeapFlagBits::eDeviceLocal ) - | VkFlags( MemoryHeapFlagBits::eMultiInstance ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryHeapFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class MemoryMapFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits ) - { - return "(void)"; - } - - using MemoryMapFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags ) - { - - return "{}"; - } - - - using MemoryPropertyFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( MemoryPropertyFlagBits::eDeviceLocal ) - | VkFlags( MemoryPropertyFlagBits::eHostVisible ) - | VkFlags( MemoryPropertyFlagBits::eHostCoherent ) - | VkFlags( MemoryPropertyFlagBits::eHostCached ) - | VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) - | VkFlags( MemoryPropertyFlagBits::eProtected ) - | VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) - | VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryPropertyFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | "; - if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | "; - if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | "; - if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | "; - if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | "; - if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | "; - if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_METAL_EXT - enum class MetalSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using MetalSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - - using PeerMemoryFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PeerMemoryFeatureFlagBits::eCopySrc ) - | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst ) - | VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc ) - | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PeerMemoryFeatureFlags( bits ) ); - } - - using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | "; - if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PerformanceCounterDescriptionFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) - | VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PerformanceCounterDescriptionFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | "; - if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineCacheCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCacheCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineColorBlendStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineColorBlendStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags ) - { - - return "{}"; - } - - - using PipelineCompilerControlFlagsAMD = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD ) - { - - return "{}"; - } - - enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageModulationStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV ) - { - - return "{}"; - } - - enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageReductionStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV ) - { - - return "{}"; - } - - enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageToColorStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV ) - { - - return "{}"; - } - - - using PipelineCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PipelineCreateFlagBits::eDisableOptimization ) - | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) - | VkFlags( PipelineCreateFlagBits::eDerivative ) - | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) - | VkFlags( PipelineCreateFlagBits::eDispatchBase ) - | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) - | VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) - | VkFlags( PipelineCreateFlagBits::eDeferCompileNV ) - | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR ) - | VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) - | VkFlags( PipelineCreateFlagBits::eIndirectBindableNV ) - | VkFlags( PipelineCreateFlagBits::eLibraryKHR ) - | VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) - | VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | "; - if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | "; - if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | "; - if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | "; - if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) result += "RayTracingShaderGroupHandleCaptureReplayKHR | "; - if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | "; - if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | "; - if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | "; - if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | "; - if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | "; - if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | "; - if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineCreationFeedbackFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid ) - | VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) - | VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCreationFeedbackFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineDepthStencilStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineDepthStencilStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineDiscardRectangleStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineDynamicStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineDynamicStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineInputAssemblyStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineLayoutCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits ) - { - return "(void)"; - } - - using PipelineLayoutCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags ) - { - - return "{}"; - } - - enum class PipelineMultisampleStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineMultisampleStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineRasterizationStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineRasterizationStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationStateStreamCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT ) - { - - return "{}"; - } - - - using PipelineShaderStageCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) - | VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineShaderStageCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | "; - if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineStageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( PipelineStageFlagBits::eTopOfPipe ) - | VkFlags( PipelineStageFlagBits::eDrawIndirect ) - | VkFlags( PipelineStageFlagBits::eVertexInput ) - | VkFlags( PipelineStageFlagBits::eVertexShader ) - | VkFlags( PipelineStageFlagBits::eTessellationControlShader ) - | VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader ) - | VkFlags( PipelineStageFlagBits::eGeometryShader ) - | VkFlags( PipelineStageFlagBits::eFragmentShader ) - | VkFlags( PipelineStageFlagBits::eEarlyFragmentTests ) - | VkFlags( PipelineStageFlagBits::eLateFragmentTests ) - | VkFlags( PipelineStageFlagBits::eColorAttachmentOutput ) - | VkFlags( PipelineStageFlagBits::eComputeShader ) - | VkFlags( PipelineStageFlagBits::eTransfer ) - | VkFlags( PipelineStageFlagBits::eBottomOfPipe ) - | VkFlags( PipelineStageFlagBits::eHost ) - | VkFlags( PipelineStageFlagBits::eAllGraphics ) - | VkFlags( PipelineStageFlagBits::eAllCommands ) - | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT ) - | VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT ) - | VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR ) - | VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR ) - | VkFlags( PipelineStageFlagBits::eShadingRateImageNV ) - | VkFlags( PipelineStageFlagBits::eTaskShaderNV ) - | VkFlags( PipelineStageFlagBits::eMeshShaderNV ) - | VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT ) - | VkFlags( PipelineStageFlagBits::eCommandPreprocessNV ) - | VkFlags( PipelineStageFlagBits::eNoneKHR ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineStageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | "; - if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | "; - if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | "; - if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | "; - if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | "; - if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | "; - if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | "; - if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | "; - if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | "; - if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | "; - if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | "; - if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | "; - if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | "; - if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | "; - if ( value & PipelineStageFlagBits::eHost ) result += "Host | "; - if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | "; - if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | "; - if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | "; - if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | "; - if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | "; - if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | "; - if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | "; - if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | "; - if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineStageFlags2KHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags64 - { - allFlags = - VkFlags64( PipelineStageFlagBits2KHR::e2None ) - | VkFlags64( PipelineStageFlagBits2KHR::e2TopOfPipe ) - | VkFlags64( PipelineStageFlagBits2KHR::e2DrawIndirect ) - | VkFlags64( PipelineStageFlagBits2KHR::e2VertexInput ) - | VkFlags64( PipelineStageFlagBits2KHR::e2VertexShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2TessellationControlShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2TessellationEvaluationShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2GeometryShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2EarlyFragmentTests ) - | VkFlags64( PipelineStageFlagBits2KHR::e2LateFragmentTests ) - | VkFlags64( PipelineStageFlagBits2KHR::e2ColorAttachmentOutput ) - | VkFlags64( PipelineStageFlagBits2KHR::e2ComputeShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2AllTransfer ) - | VkFlags64( PipelineStageFlagBits2KHR::e2BottomOfPipe ) - | VkFlags64( PipelineStageFlagBits2KHR::e2Host ) - | VkFlags64( PipelineStageFlagBits2KHR::e2AllGraphics ) - | VkFlags64( PipelineStageFlagBits2KHR::e2AllCommands ) - | VkFlags64( PipelineStageFlagBits2KHR::e2Copy ) - | VkFlags64( PipelineStageFlagBits2KHR::e2Resolve ) - | VkFlags64( PipelineStageFlagBits2KHR::e2Blit ) - | VkFlags64( PipelineStageFlagBits2KHR::e2Clear ) - | VkFlags64( PipelineStageFlagBits2KHR::e2IndexInput ) - | VkFlags64( PipelineStageFlagBits2KHR::e2VertexAttributeInput ) - | VkFlags64( PipelineStageFlagBits2KHR::e2PreRasterizationShaders ) - | VkFlags64( PipelineStageFlagBits2KHR::e2TransformFeedbackExt ) - | VkFlags64( PipelineStageFlagBits2KHR::e2ConditionalRenderingExt ) - | VkFlags64( PipelineStageFlagBits2KHR::e2CommandPreprocessNv ) - | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment ) - | VkFlags64( PipelineStageFlagBits2KHR::e2AccelerationStructureBuild ) - | VkFlags64( PipelineStageFlagBits2KHR::e2RayTracingShader ) - | VkFlags64( PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt ) - | VkFlags64( PipelineStageFlagBits2KHR::e2TaskShaderNv ) - | VkFlags64( PipelineStageFlagBits2KHR::e2MeshShaderNv ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags2KHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator&( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags2KHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags2KHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineStageFlags2KHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineStageFlagBits2KHR::e2TopOfPipe ) result += "2TopOfPipe | "; - if ( value & PipelineStageFlagBits2KHR::e2DrawIndirect ) result += "2DrawIndirect | "; - if ( value & PipelineStageFlagBits2KHR::e2VertexInput ) result += "2VertexInput | "; - if ( value & PipelineStageFlagBits2KHR::e2VertexShader ) result += "2VertexShader | "; - if ( value & PipelineStageFlagBits2KHR::e2TessellationControlShader ) result += "2TessellationControlShader | "; - if ( value & PipelineStageFlagBits2KHR::e2TessellationEvaluationShader ) result += "2TessellationEvaluationShader | "; - if ( value & PipelineStageFlagBits2KHR::e2GeometryShader ) result += "2GeometryShader | "; - if ( value & PipelineStageFlagBits2KHR::e2FragmentShader ) result += "2FragmentShader | "; - if ( value & PipelineStageFlagBits2KHR::e2EarlyFragmentTests ) result += "2EarlyFragmentTests | "; - if ( value & PipelineStageFlagBits2KHR::e2LateFragmentTests ) result += "2LateFragmentTests | "; - if ( value & PipelineStageFlagBits2KHR::e2ColorAttachmentOutput ) result += "2ColorAttachmentOutput | "; - if ( value & PipelineStageFlagBits2KHR::e2ComputeShader ) result += "2ComputeShader | "; - if ( value & PipelineStageFlagBits2KHR::e2AllTransfer ) result += "2AllTransfer | "; - if ( value & PipelineStageFlagBits2KHR::e2BottomOfPipe ) result += "2BottomOfPipe | "; - if ( value & PipelineStageFlagBits2KHR::e2Host ) result += "2Host | "; - if ( value & PipelineStageFlagBits2KHR::e2AllGraphics ) result += "2AllGraphics | "; - if ( value & PipelineStageFlagBits2KHR::e2AllCommands ) result += "2AllCommands | "; - if ( value & PipelineStageFlagBits2KHR::e2Copy ) result += "2Copy | "; - if ( value & PipelineStageFlagBits2KHR::e2Resolve ) result += "2Resolve | "; - if ( value & PipelineStageFlagBits2KHR::e2Blit ) result += "2Blit | "; - if ( value & PipelineStageFlagBits2KHR::e2Clear ) result += "2Clear | "; - if ( value & PipelineStageFlagBits2KHR::e2IndexInput ) result += "2IndexInput | "; - if ( value & PipelineStageFlagBits2KHR::e2VertexAttributeInput ) result += "2VertexAttributeInput | "; - if ( value & PipelineStageFlagBits2KHR::e2PreRasterizationShaders ) result += "2PreRasterizationShaders | "; - if ( value & PipelineStageFlagBits2KHR::e2TransformFeedbackExt ) result += "2TransformFeedbackExt | "; - if ( value & PipelineStageFlagBits2KHR::e2ConditionalRenderingExt ) result += "2ConditionalRenderingExt | "; - if ( value & PipelineStageFlagBits2KHR::e2CommandPreprocessNv ) result += "2CommandPreprocessNv | "; - if ( value & PipelineStageFlagBits2KHR::e2FragmentShadingRateAttachment ) result += "2FragmentShadingRateAttachment | "; - if ( value & PipelineStageFlagBits2KHR::e2AccelerationStructureBuild ) result += "2AccelerationStructureBuild | "; - if ( value & PipelineStageFlagBits2KHR::e2RayTracingShader ) result += "2RayTracingShader | "; - if ( value & PipelineStageFlagBits2KHR::e2FragmentDensityProcessExt ) result += "2FragmentDensityProcessExt | "; - if ( value & PipelineStageFlagBits2KHR::e2TaskShaderNv ) result += "2TaskShaderNv | "; - if ( value & PipelineStageFlagBits2KHR::e2MeshShaderNv ) result += "2MeshShaderNv | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineTessellationStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineTessellationStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineVertexInputStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineVertexInputStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineViewportStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineViewportStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineViewportSwizzleStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV ) - { - - return "{}"; - } - - - using PrivateDataSlotCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT ) - { - - return "{}"; - } - - - using QueryControlFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( QueryControlFlagBits::ePrecise ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryControlFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueryPipelineStatisticFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) - | VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) - | VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) - | VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) - | VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) - | VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations ) - | VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives ) - | VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) - | VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) - | VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) - | VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryPipelineStatisticFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | "; - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueryPoolCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags ) - { - - return "{}"; - } - - - using QueryResultFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( QueryResultFlagBits::e64 ) - | VkFlags( QueryResultFlagBits::eWait ) - | VkFlags( QueryResultFlagBits::eWithAvailability ) - | VkFlags( QueryResultFlagBits::ePartial ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryResultFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryResultFlagBits::e64 ) result += "64 | "; - if ( value & QueryResultFlagBits::eWait ) result += "Wait | "; - if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | "; - if ( value & QueryResultFlagBits::ePartial ) result += "Partial | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueueFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( QueueFlagBits::eGraphics ) - | VkFlags( QueueFlagBits::eCompute ) - | VkFlags( QueueFlagBits::eTransfer ) - | VkFlags( QueueFlagBits::eSparseBinding ) - | VkFlags( QueueFlagBits::eProtected ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueueFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueueFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueueFlagBits::eGraphics ) result += "Graphics | "; - if ( value & QueueFlagBits::eCompute ) result += "Compute | "; - if ( value & QueueFlagBits::eTransfer ) result += "Transfer | "; - if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & QueueFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using RenderPassCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( RenderPassCreateFlagBits::eTransformQCOM ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( RenderPassCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ResolveModeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ResolveModeFlagBits::eNone ) - | VkFlags( ResolveModeFlagBits::eSampleZero ) - | VkFlags( ResolveModeFlagBits::eAverage ) - | VkFlags( ResolveModeFlagBits::eMin ) - | VkFlags( ResolveModeFlagBits::eMax ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ResolveModeFlags( bits ) ); - } - - using ResolveModeFlagsKHR = ResolveModeFlags; - - VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | "; - if ( value & ResolveModeFlagBits::eAverage ) result += "Average | "; - if ( value & ResolveModeFlagBits::eMin ) result += "Min | "; - if ( value & ResolveModeFlagBits::eMax ) result += "Max | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SampleCountFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SampleCountFlagBits::e1 ) - | VkFlags( SampleCountFlagBits::e2 ) - | VkFlags( SampleCountFlagBits::e4 ) - | VkFlags( SampleCountFlagBits::e8 ) - | VkFlags( SampleCountFlagBits::e16 ) - | VkFlags( SampleCountFlagBits::e32 ) - | VkFlags( SampleCountFlagBits::e64 ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SampleCountFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SampleCountFlagBits::e1 ) result += "1 | "; - if ( value & SampleCountFlagBits::e2 ) result += "2 | "; - if ( value & SampleCountFlagBits::e4 ) result += "4 | "; - if ( value & SampleCountFlagBits::e8 ) result += "8 | "; - if ( value & SampleCountFlagBits::e16 ) result += "16 | "; - if ( value & SampleCountFlagBits::e32 ) result += "32 | "; - if ( value & SampleCountFlagBits::e64 ) result += "64 | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SamplerCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SamplerCreateFlagBits::eSubsampledEXT ) - | VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SamplerCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - enum class ScreenSurfaceCreateFlagBitsQNX : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX ) - { - return "(void)"; - } - - using ScreenSurfaceCreateFlagsQNX = Flags; - - VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - enum class SemaphoreCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits ) - { - return "(void)"; - } - - using SemaphoreCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags ) - { - - return "{}"; - } - - - using SemaphoreImportFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SemaphoreImportFlagBits::eTemporary ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SemaphoreImportFlags( bits ) ); - } - - using SemaphoreImportFlagsKHR = SemaphoreImportFlags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SemaphoreWaitFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SemaphoreWaitFlagBits::eAny ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SemaphoreWaitFlags( bits ) ); - } - - using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ShaderCorePropertiesFlagsAMD = Flags; - - VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD ) - { - - return "{}"; - } - - - using ShaderModuleCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags ) - { - - return "{}"; - } - - - using ShaderStageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ShaderStageFlagBits::eVertex ) - | VkFlags( ShaderStageFlagBits::eTessellationControl ) - | VkFlags( ShaderStageFlagBits::eTessellationEvaluation ) - | VkFlags( ShaderStageFlagBits::eGeometry ) - | VkFlags( ShaderStageFlagBits::eFragment ) - | VkFlags( ShaderStageFlagBits::eCompute ) - | VkFlags( ShaderStageFlagBits::eAllGraphics ) - | VkFlags( ShaderStageFlagBits::eAll ) - | VkFlags( ShaderStageFlagBits::eRaygenKHR ) - | VkFlags( ShaderStageFlagBits::eAnyHitKHR ) - | VkFlags( ShaderStageFlagBits::eClosestHitKHR ) - | VkFlags( ShaderStageFlagBits::eMissKHR ) - | VkFlags( ShaderStageFlagBits::eIntersectionKHR ) - | VkFlags( ShaderStageFlagBits::eCallableKHR ) - | VkFlags( ShaderStageFlagBits::eTaskNV ) - | VkFlags( ShaderStageFlagBits::eMeshNV ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ShaderStageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | "; - if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | "; - if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | "; - if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | "; - if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | "; - if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | "; - if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | "; - if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | "; - if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | "; - if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | "; - if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | "; - if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | "; - if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | "; - if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SparseImageFormatFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SparseImageFormatFlagBits::eSingleMiptail ) - | VkFlags( SparseImageFormatFlagBits::eAlignedMipSize ) - | VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SparseImageFormatFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | "; - if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | "; - if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SparseMemoryBindFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SparseMemoryBindFlagBits::eMetadata ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SparseMemoryBindFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using StencilFaceFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( StencilFaceFlagBits::eFront ) - | VkFlags( StencilFaceFlagBits::eBack ) - | VkFlags( StencilFaceFlagBits::eFrontAndBack ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( StencilFaceFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & StencilFaceFlagBits::eFront ) result += "Front | "; - if ( value & StencilFaceFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_GGP - enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP ) - { - return "(void)"; - } - - using StreamDescriptorSurfaceCreateFlagsGGP = Flags; - - VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_GGP*/ - - - using SubgroupFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SubgroupFeatureFlagBits::eBasic ) - | VkFlags( SubgroupFeatureFlagBits::eVote ) - | VkFlags( SubgroupFeatureFlagBits::eArithmetic ) - | VkFlags( SubgroupFeatureFlagBits::eBallot ) - | VkFlags( SubgroupFeatureFlagBits::eShuffle ) - | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative ) - | VkFlags( SubgroupFeatureFlagBits::eClustered ) - | VkFlags( SubgroupFeatureFlagBits::eQuad ) - | VkFlags( SubgroupFeatureFlagBits::ePartitionedNV ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SubgroupFeatureFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | "; - if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | "; - if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | "; - if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | "; - if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | "; - if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | "; - if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | "; - if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | "; - if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SubmitFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SubmitFlagBitsKHR::eProtected ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubmitFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubmitFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0, SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubmitFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SubmitFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SubmitFlagBitsKHR::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SubpassDescriptionFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX ) - | VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) - | VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM ) - | VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SubpassDescriptionFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | "; - if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | "; - if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | "; - if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SurfaceCounterFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SurfaceCounterFlagBitsEXT::eVblank ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SurfaceCounterFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SurfaceTransformFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SurfaceTransformFlagBitsKHR::eIdentity ) - | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror ) - | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) - | VkFlags( SurfaceTransformFlagBitsKHR::eInherit ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SurfaceTransformFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SwapchainCreateFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) - | VkFlags( SwapchainCreateFlagBitsKHR::eProtected ) - | VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SwapchainCreateFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | "; - if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ToolPurposeFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = - VkFlags( ToolPurposeFlagBitsEXT::eValidation ) - | VkFlags( ToolPurposeFlagBitsEXT::eProfiling ) - | VkFlags( ToolPurposeFlagBitsEXT::eTracing ) - | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures ) - | VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures ) - | VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting ) - | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers ) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ToolPurposeFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | "; - if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | "; - if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class ValidationCacheCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT ) - { - return "(void)"; - } - - using ValidationCacheCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_VI_NN - enum class ViSurfaceCreateFlagBitsNN : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN ) - { - return "(void)"; - } - - using ViSurfaceCreateFlagsNN = Flags; - - VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using WaylandSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - enum class Win32SurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using Win32SurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - enum class XcbSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using XcbSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - enum class XlibSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using XlibSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -} // namespace VULKAN_HPP_NAMESPACE - -#ifndef VULKAN_HPP_NO_EXCEPTIONS -namespace std -{ - template <> - struct is_error_code_enum : public true_type - {}; -} -#endif +#define VULKAN_HPP_STRINGIFY2( text ) #text +#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text ) +#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE ) namespace VULKAN_HPP_NAMESPACE { -#ifndef VULKAN_HPP_NO_EXCEPTIONS - class ErrorCategoryImpl : public std::error_category - { - public: - virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; } - virtual std::string message(int ev) const override { return to_string(static_cast(ev)); } - }; - - class Error - { - public: - Error() VULKAN_HPP_NOEXCEPT = default; - Error(const Error&) VULKAN_HPP_NOEXCEPT = default; - virtual ~Error() VULKAN_HPP_NOEXCEPT = default; - - virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0; - }; - - class LogicError : public Error, public std::logic_error - { - public: - explicit LogicError( const std::string& what ) - : Error(), std::logic_error(what) {} - explicit LogicError( char const * what ) - : Error(), std::logic_error(what) {} - - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); } - }; - - class SystemError : public Error, public std::system_error - { - public: - SystemError( std::error_code ec ) - : Error(), std::system_error(ec) {} - SystemError( std::error_code ec, std::string const& what ) - : Error(), std::system_error(ec, what) {} - SystemError( std::error_code ec, char const * what ) - : Error(), std::system_error(ec, what) {} - SystemError( int ev, std::error_category const& ecat ) - : Error(), std::system_error(ev, ecat) {} - SystemError( int ev, std::error_category const& ecat, std::string const& what) - : Error(), std::system_error(ev, ecat, what) {} - SystemError( int ev, std::error_category const& ecat, char const * what) - : Error(), std::system_error(ev, ecat, what) {} - - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); } - }; - - VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT - { - static ErrorCategoryImpl instance; - return instance; - } - - VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT - { - return std::error_code(static_cast(e), errorCategory()); - } - - VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT - { - return std::error_condition(static_cast(e), errorCategory()); - } - - class OutOfHostMemoryError : public SystemError - { - public: - OutOfHostMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - OutOfHostMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - }; - - class OutOfDeviceMemoryError : public SystemError - { - public: - OutOfDeviceMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - OutOfDeviceMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - }; - - class InitializationFailedError : public SystemError - { - public: - InitializationFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - InitializationFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - }; - - class DeviceLostError : public SystemError - { - public: - DeviceLostError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} - DeviceLostError( char const * message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} - }; - - class MemoryMapFailedError : public SystemError - { - public: - MemoryMapFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - MemoryMapFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - }; - - class LayerNotPresentError : public SystemError - { - public: - LayerNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - LayerNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - }; - - class ExtensionNotPresentError : public SystemError - { - public: - ExtensionNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - ExtensionNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - }; - - class FeatureNotPresentError : public SystemError - { - public: - FeatureNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - FeatureNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - }; - - class IncompatibleDriverError : public SystemError - { - public: - IncompatibleDriverError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - IncompatibleDriverError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - }; - - class TooManyObjectsError : public SystemError - { - public: - TooManyObjectsError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} - TooManyObjectsError( char const * message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} - }; - - class FormatNotSupportedError : public SystemError - { - public: - FormatNotSupportedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - FormatNotSupportedError( char const * message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - }; - - class FragmentedPoolError : public SystemError - { - public: - FragmentedPoolError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - FragmentedPoolError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - }; - - class UnknownError : public SystemError - { - public: - UnknownError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - UnknownError( char const * message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - }; - - class OutOfPoolMemoryError : public SystemError - { - public: - OutOfPoolMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - OutOfPoolMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - }; - - class InvalidExternalHandleError : public SystemError - { - public: - InvalidExternalHandleError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - InvalidExternalHandleError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - }; - - class FragmentationError : public SystemError - { - public: - FragmentationError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} - FragmentationError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} - }; - - class InvalidOpaqueCaptureAddressError : public SystemError - { - public: - InvalidOpaqueCaptureAddressError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - InvalidOpaqueCaptureAddressError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - }; - - class SurfaceLostKHRError : public SystemError - { - public: - SurfaceLostKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - SurfaceLostKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - }; - - class NativeWindowInUseKHRError : public SystemError - { - public: - NativeWindowInUseKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - NativeWindowInUseKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - }; - - class OutOfDateKHRError : public SystemError - { - public: - OutOfDateKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - OutOfDateKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - }; - - class IncompatibleDisplayKHRError : public SystemError - { - public: - IncompatibleDisplayKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - IncompatibleDisplayKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - }; - - class ValidationFailedEXTError : public SystemError - { - public: - ValidationFailedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} - ValidationFailedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} - }; - - class InvalidShaderNVError : public SystemError - { - public: - InvalidShaderNVError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - InvalidShaderNVError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - }; - - class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError - { - public: - InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - }; - - class NotPermittedEXTError : public SystemError - { - public: - NotPermittedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} - NotPermittedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - class FullScreenExclusiveModeLostEXTError : public SystemError - { - public: - FullScreenExclusiveModeLostEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - FullScreenExclusiveModeLostEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - [[noreturn]] static void throwResultException( Result result, char const * message ) - { - switch ( result ) - { - case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message ); - case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message ); - case Result::eErrorInitializationFailed: throw InitializationFailedError( message ); - case Result::eErrorDeviceLost: throw DeviceLostError( message ); - case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message ); - case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message ); - case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message ); - case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message ); - case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message ); - case Result::eErrorTooManyObjects: throw TooManyObjectsError( message ); - case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message ); - case Result::eErrorFragmentedPool: throw FragmentedPoolError( message ); - case Result::eErrorUnknown: throw UnknownError( message ); - case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message ); - case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message ); - case Result::eErrorFragmentation: throw FragmentationError( message ); - case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message ); - case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message ); - case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message ); - case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message ); - case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message ); - case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message ); - case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message ); - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message ); - case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - default: throw SystemError( make_error_code( result ) ); - } - } -#endif - - template void ignore(T const&) VULKAN_HPP_NOEXCEPT {} - - template - struct ResultValue - { -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v))) -#else - ResultValue( Result r, T & v ) -#endif - : result( r ) - , value( v ) - {} - -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v)))) -#else - ResultValue( Result r, T && v ) -#endif - : result( r ) - , value( std::move( v ) ) - {} - - Result result; - T value; - - operator std::tuple() VULKAN_HPP_NOEXCEPT { return std::tuple(result, value); } - -#if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST) - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T const& () const & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T& () & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T const&& () const && VULKAN_HPP_NOEXCEPT - { - return std::move( value ); - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T&& () && VULKAN_HPP_NOEXCEPT - { - return std::move( value ); - } -#endif - }; - -#if !defined(VULKAN_HPP_NO_SMART_HANDLE) - template - struct ResultValue> - { -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue(Result r, UniqueHandle && v) VULKAN_HPP_NOEXCEPT -#else - ResultValue(Result r, UniqueHandle && v) -#endif - : result(r) - , value(std::move(v)) - {} - - std::tuple> asTuple() - { - return std::make_tuple( result, std::move( value ) ); - } - -# if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST) - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator UniqueHandle& () & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator UniqueHandle() VULKAN_HPP_NOEXCEPT - { - return std::move(value); - } -# endif - - Result result; - UniqueHandle value; - }; - - template - struct ResultValue>> - { -# ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, std::vector> && v ) VULKAN_HPP_NOEXCEPT -# else - ResultValue( Result r, std::vector> && v ) -# endif - : result( r ) - , value( std::move( v ) ) - {} - - Result result; - std::vector> value; - - operator std::tuple> &>() VULKAN_HPP_NOEXCEPT - { - return std::tuple> &>( result, value ); - } - }; -#endif - - template - struct ResultValueType - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef ResultValue type; -#else - typedef T type; -#endif - }; - - template <> - struct ResultValueType - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef Result type; -#else - typedef void type; -#endif - }; - - VULKAN_HPP_INLINE ResultValueType::type createResultValue( Result result, char const * message ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return result; -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } -#endif - } - - template - VULKAN_HPP_INLINE typename ResultValueType::type createResultValue( Result result, T & data, char const * message ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue( result, std::move( data ) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return std::move( data ); -#endif - } - - VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list successCodes ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return result; - } - +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) template - VULKAN_HPP_INLINE ResultValue createResultValue( Result result, T & data, char const * message, std::initializer_list successCodes ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return ResultValue( result, data ); - } - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits::deleter const& deleter ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue>( result, UniqueHandle(data, deleter) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return UniqueHandle(data, deleter); -#endif - } - - template - VULKAN_HPP_INLINE ResultValue> - createResultValue( Result result, - T & data, - char const * message, - std::initializer_list successCodes, - typename UniqueHandleTraits::deleter const & deleter ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -# else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -# endif - return ResultValue>( result, UniqueHandle( data, deleter ) ); - } - - template - VULKAN_HPP_INLINE typename ResultValueType>>::type - createResultValue( Result result, std::vector> && data, char const * message ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue>>( result, std::move( data ) ); -# else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return std::move( data ); -# endif - } - - template - VULKAN_HPP_INLINE ResultValue>> - createResultValue( Result result, - std::vector> && data, - char const * message, - std::initializer_list successCodes ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -# else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -# endif - return ResultValue>>( result, std::move( data ) ); - } -#endif - - struct AabbPositionsKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT - : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ ) - {} - - VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AabbPositionsKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT - { - minX = minX_; - return *this; - } - - AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT - { - minY = minY_; - return *this; - } - - AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT - { - minZ = minZ_; - return *this; - } - - AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT - { - maxX = maxX_; - return *this; - } - - AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT - { - maxY = maxY_; - return *this; - } - - AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT - { - maxZ = maxZ_; - return *this; - } - - - operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AabbPositionsKHR const& ) const = default; -#else - bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( minX == rhs.minX ) - && ( minY == rhs.minY ) - && ( minZ == rhs.minZ ) - && ( maxX == rhs.maxX ) - && ( maxY == rhs.maxY ) - && ( maxZ == rhs.maxZ ); - } - - bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float minX = {}; - float minY = {}; - float minZ = {}; - float maxX = {}; - float maxY = {}; - float maxZ = {}; - - }; - static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using AabbPositionsNV = AabbPositionsKHR; - - class AccelerationStructureKHR - { - public: - using CType = VkAccelerationStructureKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; - - public: - VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR( accelerationStructureKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureKHR = accelerationStructureKHR; - return *this; - } -#endif - - AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureKHR const& ) const = default; -#else - bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR; - } - - bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR; - } - - bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR == VK_NULL_HANDLE; - } - - private: - VkAccelerationStructureKHR m_accelerationStructureKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - union DeviceOrHostAddressConstKHR - { - DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); - } - - DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) - : deviceAddress( deviceAddress_ ) - {} - - DeviceOrHostAddressConstKHR( const void* hostAddress_ ) - : hostAddress( hostAddress_ ) - {} - - DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT - { - hostAddress = hostAddress_; - return *this; - } - - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); - return *this; - } - - operator VkDeviceOrHostAddressConstKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkDeviceOrHostAddressConstKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; - const void* hostAddress; -#else - VkDeviceAddress deviceAddress; - const void* hostAddress; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureGeometryTrianglesDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, uint32_t maxVertex_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}) VULKAN_HPP_NOEXCEPT - : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), maxVertex( maxVertex_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ ) - {} - - AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureGeometryTrianglesDataKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT - { - vertexFormat = vertexFormat_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT - { - vertexData = vertexData_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexStride = vertexStride_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT - { - maxVertex = maxVertex_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT - { - indexData = indexData_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT - { - transformData = transformData_; - return *this; - } - - - operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; - uint32_t maxVertex = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryTrianglesDataKHR; - }; - - struct AccelerationStructureGeometryAabbsDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT - : data( data_ ), stride( stride_ ) - {} - - AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureGeometryAabbsDataKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; - VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryAabbsDataKHR; - }; - - struct AccelerationStructureGeometryInstancesDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT - : arrayOfPointers( arrayOfPointers_ ), data( data_ ) - {} - - AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureGeometryInstancesDataKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT - { - arrayOfPointers = arrayOfPointers_; - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryInstancesDataKHR; - }; - - union AccelerationStructureGeometryDataKHR - { - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); - } - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} ) - : triangles( triangles_ ) - {} - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ ) - : aabbs( aabbs_ ) - {} - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ ) - : instances( instances_ ) - {} - - AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT - { - triangles = triangles_; - return *this; - } - - AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT - { - aabbs = aabbs_; - return *this; - } - - AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT - { - instances = instances_; - return *this; - } - - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); - return *this; - } - - operator VkAccelerationStructureGeometryDataKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkAccelerationStructureGeometryDataKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances; -#else - VkAccelerationStructureGeometryTrianglesDataKHR triangles; - VkAccelerationStructureGeometryAabbsDataKHR aabbs; - VkAccelerationStructureGeometryInstancesDataKHR instances; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureGeometryKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT - : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ ) - {} - - AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureGeometryKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT - { - geometryType = geometryType_; - return *this; - } - - AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT - { - geometry = geometry_; - return *this; - } - - AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {}; - VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryKHR; - }; - - union DeviceOrHostAddressKHR - { - DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); - } - - DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) - : deviceAddress( deviceAddress_ ) - {} - - DeviceOrHostAddressKHR( void* hostAddress_ ) - : hostAddress( hostAddress_ ) - {} - - DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT - { - hostAddress = hostAddress_; - return *this; - } - - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); - return *this; - } - - operator VkDeviceOrHostAddressKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkDeviceOrHostAddressKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; - void* hostAddress; -#else - VkDeviceAddress deviceAddress; - void* hostAddress; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureBuildGeometryInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ ) - {} - - AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureBuildGeometryInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} ) - : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( static_cast( !geometries_.empty() ? geometries_.size() : pGeometries_.size() ) ), pGeometries( geometries_.data() ), ppGeometries( pGeometries_.data() ), scratchData( scratchData_ ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( ( !geometries_.empty() + !pGeometries_.empty() ) == 1 ); -#else - if ( ( !geometries_.empty() + !pGeometries_.empty() ) != 1 ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: ( !geometries_.empty() + !pGeometries_.empty() ) != 1" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - srcAccelerationStructure = srcAccelerationStructure_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - dstAccelerationStructure = dstAccelerationStructure_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = geometryCount_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - pGeometries = pGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( geometries_.size() ); - pGeometries = geometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT - { - ppGeometries = ppGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR & setPGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( pGeometries_.size() ); - ppGeometries = pGeometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT - { - scratchData = scratchData_; - return *this; - } - - - operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {}; - uint32_t geometryCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureBuildGeometryInfoKHR; - }; - - struct AccelerationStructureBuildRangeInfoKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT - : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureBuildRangeInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildRangeInfoKHR & operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT - { - primitiveCount = primitiveCount_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT - { - primitiveOffset = primitiveOffset_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT - { - firstVertex = firstVertex_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT - { - transformOffset = transformOffset_; - return *this; - } - - - operator VkAccelerationStructureBuildRangeInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureBuildRangeInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( primitiveCount == rhs.primitiveCount ) - && ( primitiveOffset == rhs.primitiveOffset ) - && ( firstVertex == rhs.firstVertex ) - && ( transformOffset == rhs.transformOffset ); - } - - bool operator!=( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t primitiveCount = {}; - uint32_t primitiveOffset = {}; - uint32_t firstVertex = {}; - uint32_t transformOffset = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildRangeInfoKHR ) == sizeof( VkAccelerationStructureBuildRangeInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AccelerationStructureBuildSizesInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildSizesInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureSize( accelerationStructureSize_ ), updateScratchSize( updateScratchSize_ ), buildScratchSize( buildScratchSize_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureBuildSizesInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildSizesInfoKHR & operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureSize = accelerationStructureSize_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT - { - updateScratchSize = updateScratchSize_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT - { - buildScratchSize = buildScratchSize_; - return *this; - } - - - operator VkAccelerationStructureBuildSizesInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureBuildSizesInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureSize == rhs.accelerationStructureSize ) - && ( updateScratchSize == rhs.updateScratchSize ) - && ( buildScratchSize == rhs.buildScratchSize ); - } - - bool operator!=( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildSizesInfoKHR ) == sizeof( VkAccelerationStructureBuildSizesInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureBuildSizesInfoKHR; - }; - - class Buffer - { - public: - using CType = VkBuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; - - public: - VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT - : m_buffer( buffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT - { - m_buffer = buffer; - return *this; - } -#endif - - Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_buffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Buffer const& ) const = default; -#else - bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer == rhs.m_buffer; - } - - bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer != rhs.m_buffer; - } - - bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer < rhs.m_buffer; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT - { - return m_buffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_buffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_buffer == VK_NULL_HANDLE; - } - - private: - VkBuffer m_buffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AccelerationStructureCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT - : createFlags( createFlags_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ), type( type_ ), deviceAddress( deviceAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT - { - createFlags = createFlags_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - - operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( createFlags == rhs.createFlags ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ) - && ( type == rhs.type ) - && ( deviceAddress == rhs.deviceAddress ); - } - - bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - - }; - static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureCreateInfoKHR; - }; - - struct GeometryTrianglesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryTrianglesNV(VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, uint32_t vertexCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, uint32_t indexCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {}) VULKAN_HPP_NOEXCEPT - : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeometryTrianglesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT - { - vertexData = vertexData_; - return *this; - } - - GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT - { - vertexOffset = vertexOffset_; - return *this; - } - - GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexCount = vertexCount_; - return *this; - } - - GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexStride = vertexStride_; - return *this; - } - - GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT - { - vertexFormat = vertexFormat_; - return *this; - } - - GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT - { - indexData = indexData_; - return *this; - } - - GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT - { - indexOffset = indexOffset_; - return *this; - } - - GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT - { - indexCount = indexCount_; - return *this; - } - - GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT - { - transformData = transformData_; - return *this; - } - - GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT - { - transformOffset = transformOffset_; - return *this; - } - - - operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryTrianglesNV const& ) const = default; -#else - bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexData == rhs.vertexData ) - && ( vertexOffset == rhs.vertexOffset ) - && ( vertexCount == rhs.vertexCount ) - && ( vertexStride == rhs.vertexStride ) - && ( vertexFormat == rhs.vertexFormat ) - && ( indexData == rhs.indexData ) - && ( indexOffset == rhs.indexOffset ) - && ( indexCount == rhs.indexCount ) - && ( indexType == rhs.indexType ) - && ( transformData == rhs.transformData ) - && ( transformOffset == rhs.transformOffset ); - } - - bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer vertexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {}; - uint32_t vertexCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; - VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Buffer indexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {}; - uint32_t indexCount = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - VULKAN_HPP_NAMESPACE::Buffer transformData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {}; - - }; - static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryTrianglesNV; - }; - - struct GeometryAABBNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT - : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeometryAABBNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT - { - aabbData = aabbData_; - return *this; - } - - GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT - { - numAABBs = numAABBs_; - return *this; - } - - GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryAABBNV const& ) const = default; -#else - bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aabbData == rhs.aabbData ) - && ( numAABBs == rhs.numAABBs ) - && ( stride == rhs.stride ) - && ( offset == rhs.offset ); - } - - bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer aabbData = {}; - uint32_t numAABBs = {}; - uint32_t stride = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - - }; - static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryAABBNV; - }; - - struct GeometryDataNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT - : triangles( triangles_ ), aabbs( aabbs_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeometryDataNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT - { - triangles = triangles_; - return *this; - } - - GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT - { - aabbs = aabbs_; - return *this; - } - - - operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryDataNV const& ) const = default; -#else - bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( triangles == rhs.triangles ) - && ( aabbs == rhs.aabbs ); - } - - bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {}; - VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {}; - - }; - static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct GeometryNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryNV(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT - : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeometryNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT - { - geometryType = geometryType_; - return *this; - } - - GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT - { - geometry = geometry_; - return *this; - } - - GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryNV const& ) const = default; -#else - bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( geometryType == rhs.geometryType ) - && ( geometry == rhs.geometry ) - && ( flags == rhs.flags ); - } - - bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; - VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {}; - VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; - - }; - static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryNV; - }; - - struct AccelerationStructureInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, uint32_t instanceCount_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_, uint32_t instanceCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) - : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast( geometries_.size() ) ), pGeometries( geometries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = geometryCount_; - return *this; - } - - AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - pGeometries = pGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( geometries_.size() ); - pGeometries = geometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( instanceCount == rhs.instanceCount ) - && ( geometryCount == rhs.geometryCount ) - && ( pGeometries == rhs.pGeometries ); - } - - bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {}; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {}; - uint32_t instanceCount = {}; - uint32_t geometryCount = {}; - const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {}; - - }; - static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureInfoNV; - }; - - struct AccelerationStructureCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT - : compactedSize( compactedSize_ ), info( info_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT - { - compactedSize = compactedSize_; - return *this; - } - - AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT - { - info = info_; - return *this; - } - - - operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compactedSize == rhs.compactedSize ) - && ( info == rhs.info ); - } - - bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {}; - - }; - static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureCreateInfoNV; - }; - - struct AccelerationStructureDeviceAddressInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureDeviceAddressInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - - operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ); - } - - bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {}; - - }; - static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureDeviceAddressInfoKHR; - }; - - struct TransformMatrixKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT - : matrix( matrix_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : TransformMatrixKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TransformMatrixKHR & setMatrix( std::array,3> matrix_ ) VULKAN_HPP_NOEXCEPT - { - matrix = matrix_; - return *this; - } - - - operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TransformMatrixKHR const& ) const = default; -#else - bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( matrix == rhs.matrix ); - } - - bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper2D matrix = {}; - - }; - static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using TransformMatrixNV = TransformMatrixKHR; - - struct AccelerationStructureInstanceKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR(VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT - : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureInstanceKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT - { - instanceCustomIndex = instanceCustomIndex_; - return *this; - } - - AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT - { - mask = mask_; - return *this; - } - - AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT - { - instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_; - return *this; - } - - AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = *reinterpret_cast(&flags_); - return *this; - } - - AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureReference = accelerationStructureReference_; - return *this; - } - - - operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default; -#else - bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( transform == rhs.transform ) - && ( instanceCustomIndex == rhs.instanceCustomIndex ) - && ( mask == rhs.mask ) - && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) - && ( flags == rhs.flags ) - && ( accelerationStructureReference == rhs.accelerationStructureReference ); - } - - bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {}; - uint32_t instanceCustomIndex : 24; - uint32_t mask : 8; - uint32_t instanceShaderBindingTableRecordOffset : 24; - VkGeometryInstanceFlagsKHR flags : 8; - uint64_t accelerationStructureReference = {}; - - }; - static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR; - - class AccelerationStructureNV - { - public: - using CType = VkAccelerationStructureNV; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; - - public: - VULKAN_HPP_CONSTEXPR AccelerationStructureNV() VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV( accelerationStructureNV ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureNV = accelerationStructureNV; - return *this; - } -#endif - - AccelerationStructureNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureNV = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureNV const& ) const = default; -#else - bool operator==( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV == rhs.m_accelerationStructureNV; - } - - bool operator!=(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV != rhs.m_accelerationStructureNV; - } - - bool operator<(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV < rhs.m_accelerationStructureNV; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV == VK_NULL_HANDLE; - } - - private: - VkAccelerationStructureNV m_accelerationStructureNV; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AccelerationStructureMemoryRequirementsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), accelerationStructure( accelerationStructure_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureMemoryRequirementsInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - - operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( accelerationStructure == rhs.accelerationStructure ); - } - - bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; - - }; - static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureMemoryRequirementsInfoNV; - }; - - struct AccelerationStructureVersionInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR(const uint8_t* pVersionData_ = {}) VULKAN_HPP_NOEXCEPT - : pVersionData( pVersionData_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AccelerationStructureVersionInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureVersionInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t* pVersionData_ ) VULKAN_HPP_NOEXCEPT - { - pVersionData = pVersionData_; - return *this; - } - - - operator VkAccelerationStructureVersionInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureVersionInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pVersionData == rhs.pVersionData ); - } - - bool operator!=( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR; - const void* pNext = {}; - const uint8_t* pVersionData = {}; - - }; - static_assert( sizeof( AccelerationStructureVersionInfoKHR ) == sizeof( VkAccelerationStructureVersionInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureVersionInfoKHR; - }; - - class SwapchainKHR - { - public: - using CType = VkSwapchainKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; - - public: - VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR( swapchainKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = swapchainKHR; - return *this; - } -#endif - - SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainKHR const& ) const = default; -#else - bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == rhs.m_swapchainKHR; - } - - bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != rhs.m_swapchainKHR; - } - - bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR < rhs.m_swapchainKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == VK_NULL_HANDLE; - } - - private: - VkSwapchainKHR m_swapchainKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Semaphore - { - public: - using CType = VkSemaphore; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; - - public: - VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT - : m_semaphore( semaphore ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT - { - m_semaphore = semaphore; - return *this; - } -#endif - - Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_semaphore = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Semaphore const& ) const = default; -#else - bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore == rhs.m_semaphore; - } - - bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore != rhs.m_semaphore; - } - - bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore < rhs.m_semaphore; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore == VK_NULL_HANDLE; - } - - private: - VkSemaphore m_semaphore; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Fence - { - public: - using CType = VkFence; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; - - public: - VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT - : m_fence( fence ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT - { - m_fence = fence; - return *this; - } -#endif - - Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_fence = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Fence const& ) const = default; -#else - bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence == rhs.m_fence; - } - - bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence != rhs.m_fence; - } - - bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence < rhs.m_fence; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT - { - return m_fence; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_fence != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_fence == VK_NULL_HANDLE; - } - - private: - VkFence m_fence; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Fence; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Fence; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Fence; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AcquireNextImageInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint64_t timeout_ = {}, VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::Fence fence_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AcquireNextImageInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT - { - timeout = timeout_; - return *this; - } - - AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AcquireNextImageInfoKHR const& ) const = default; -#else - bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( timeout == rhs.timeout ) - && ( semaphore == rhs.semaphore ) - && ( fence == rhs.fence ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint64_t timeout = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AcquireNextImageInfoKHR; - }; - - struct AcquireProfilingLockInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), timeout( timeout_ ) - {} - - VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AcquireProfilingLockInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT - { - timeout = timeout_; - return *this; - } - - - operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default; -#else - bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( timeout == rhs.timeout ); - } - - bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {}; - uint64_t timeout = {}; - - }; - static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AcquireProfilingLockInfoKHR; - }; - - struct AllocationCallbacks - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ ) - {} - - VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - : AllocationCallbacks( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnAllocation = pfnAllocation_; - return *this; - } - - AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnReallocation = pfnReallocation_; - return *this; - } - - AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT - { - pfnFree = pfnFree_; - return *this; - } - - AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnInternalAllocation = pfnInternalAllocation_; - return *this; - } - - AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT - { - pfnInternalFree = pfnInternalFree_; - return *this; - } - - - operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AllocationCallbacks const& ) const = default; -#else - bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( pUserData == rhs.pUserData ) - && ( pfnAllocation == rhs.pfnAllocation ) - && ( pfnReallocation == rhs.pfnReallocation ) - && ( pfnFree == rhs.pfnFree ) - && ( pfnInternalAllocation == rhs.pfnInternalAllocation ) - && ( pfnInternalFree == rhs.pfnInternalFree ); - } - - bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - void* pUserData = {}; - PFN_vkAllocationFunction pfnAllocation = {}; - PFN_vkReallocationFunction pfnReallocation = {}; - PFN_vkFreeFunction pfnFree = {}; - PFN_vkInternalAllocationNotification pfnInternalAllocation = {}; - PFN_vkInternalFreeNotification pfnInternalFree = {}; - - }; - static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ComponentMapping - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ComponentMapping(VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity) VULKAN_HPP_NOEXCEPT - : r( r_ ), g( g_ ), b( b_ ), a( a_ ) - {} - - VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - : ComponentMapping( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT - { - r = r_; - return *this; - } - - ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT - { - g = g_; - return *this; - } - - ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT - { - b = b_; - return *this; - } - - ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT - { - a = a_; - return *this; - } - - - operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ComponentMapping const& ) const = default; -#else - bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( r == rhs.r ) - && ( g == rhs.g ) - && ( b == rhs.b ) - && ( a == rhs.a ); - } - - bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - - }; - static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferFormatPropertiesANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven) VULKAN_HPP_NOEXCEPT - : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : AndroidHardwareBufferFormatPropertiesANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( externalFormat == rhs.externalFormat ) - && ( formatFeatures == rhs.formatFeatures ) - && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) - && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) - && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) - && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) - && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset ); - } - - bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint64_t externalFormat = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {}; - VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - - }; - static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferFormatPropertiesANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferPropertiesANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : AndroidHardwareBufferPropertiesANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferPropertiesANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferUsageANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT - : androidHardwareBufferUsage( androidHardwareBufferUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : AndroidHardwareBufferUsageANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage ); - } - - bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID; - void* pNext = {}; - uint64_t androidHardwareBufferUsage = {}; - - }; - static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferUsageANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : AndroidSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); - } - - bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {}; - struct ANativeWindow* window = {}; - - }; - static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ApplicationInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT - : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ApplicationInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT - { - pApplicationName = pApplicationName_; - return *this; - } - - ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT - { - applicationVersion = applicationVersion_; - return *this; - } - - ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT - { - pEngineName = pEngineName_; - return *this; - } - - ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT - { - engineVersion = engineVersion_; - return *this; - } - - ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT - { - apiVersion = apiVersion_; - return *this; - } - - - operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ApplicationInfo const& ) const = default; -#else - bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pApplicationName == rhs.pApplicationName ) - && ( applicationVersion == rhs.applicationVersion ) - && ( pEngineName == rhs.pEngineName ) - && ( engineVersion == rhs.engineVersion ) - && ( apiVersion == rhs.apiVersion ); - } - - bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo; - const void* pNext = {}; - const char* pApplicationName = {}; - uint32_t applicationVersion = {}; - const char* pEngineName = {}; - uint32_t engineVersion = {}; - uint32_t apiVersion = {}; - - }; - static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ApplicationInfo; - }; - - struct AttachmentDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescription(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentDescription( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT - { - loadOp = loadOp_; - return *this; - } - - AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT - { - storeOp = storeOp_; - return *this; - } - - AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilLoadOp = stencilLoadOp_; - return *this; - } - - AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilStoreOp = stencilStoreOp_; - return *this; - } - - AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT - { - finalLayout = finalLayout_; - return *this; - } - - - operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescription const& ) const = default; -#else - bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); - } - - bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentDescription2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescription2(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentDescription2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT - { - loadOp = loadOp_; - return *this; - } - - AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT - { - storeOp = storeOp_; - return *this; - } - - AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilLoadOp = stencilLoadOp_; - return *this; - } - - AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilStoreOp = stencilStoreOp_; - return *this; - } - - AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT - { - finalLayout = finalLayout_; - return *this; - } - - - operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescription2 const& ) const = default; -#else - bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); - } - - bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentDescription2; - }; - using AttachmentDescription2KHR = AttachmentDescription2; - - struct AttachmentDescriptionStencilLayout - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentDescriptionStencilLayout( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilInitialLayout = stencilInitialLayout_; - return *this; - } - - AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilFinalLayout = stencilFinalLayout_; - return *this; - } - - - operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default; -#else - bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilInitialLayout == rhs.stencilInitialLayout ) - && ( stencilFinalLayout == rhs.stencilFinalLayout ); - } - - bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentDescriptionStencilLayout; - }; - using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout; - - struct AttachmentReference - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ), layout( layout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentReference( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT - { - attachment = attachment_; - return *this; - } - - AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - - operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReference const& ) const = default; -#else - bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( attachment == rhs.attachment ) - && ( layout == rhs.layout ); - } - - bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentReference2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReference2(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentReference2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT - { - attachment = attachment_; - return *this; - } - - AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - - operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReference2 const& ) const = default; -#else - bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachment == rhs.attachment ) - && ( layout == rhs.layout ) - && ( aspectMask == rhs.aspectMask ); - } - - bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2; - const void* pNext = {}; - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - - }; - static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentReference2; - }; - using AttachmentReference2KHR = AttachmentReference2; - - struct AttachmentReferenceStencilLayout - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : stencilLayout( stencilLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentReferenceStencilLayout( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilLayout = stencilLayout_; - return *this; - } - - - operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default; -#else - bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilLayout == rhs.stencilLayout ); - } - - bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentReferenceStencilLayout; - }; - using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout; - - struct Extent2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ) - {} - - VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT - : Extent2D( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - - operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtent2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Extent2D const& ) const = default; -#else - bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ); - } - - bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - - }; - static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SampleLocationEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SampleLocationEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SampleLocationEXT const& ) const = default; -#else - bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - - }; - static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SampleLocationsInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, uint32_t sampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SampleLocationsInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) - : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsPerPixel = sampleLocationsPerPixel_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationGridSize = sampleLocationGridSize_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsCount = sampleLocationsCount_; - return *this; - } - - SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pSampleLocations = pSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsCount = static_cast( sampleLocations_.size() ); - pSampleLocations = sampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SampleLocationsInfoEXT const& ) const = default; -#else - bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) - && ( sampleLocationGridSize == rhs.sampleLocationGridSize ) - && ( sampleLocationsCount == rhs.sampleLocationsCount ) - && ( pSampleLocations == rhs.pSampleLocations ); - } - - bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {}; - uint32_t sampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {}; - - }; - static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SampleLocationsInfoEXT; - }; - - struct AttachmentSampleLocationsEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : AttachmentSampleLocationsEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT - { - attachmentIndex = attachmentIndex_; - return *this; - } - - AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default; -#else - bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( attachmentIndex == rhs.attachmentIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t attachmentIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BaseInStructure - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT - : sType( sType_ ) - {} - - BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT - : BaseInStructure( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BaseInStructure const& ) const = default; -#else - bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; - const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {}; - - }; - static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BaseOutStructure - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT - : sType( sType_ ) - {} - - BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT - : BaseOutStructure( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BaseOutStructure const& ) const = default; -#else - bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; - struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {}; - - }; - static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class DeviceMemory - { - public: - using CType = VkDeviceMemory; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; - - public: - VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory( deviceMemory ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT - { - m_deviceMemory = deviceMemory; - return *this; - } -#endif - - DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_deviceMemory = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemory const& ) const = default; -#else - bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory == rhs.m_deviceMemory; - } - - bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory != rhs.m_deviceMemory; - } - - bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory < rhs.m_deviceMemory; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory == VK_NULL_HANDLE; - } - - private: - VkDeviceMemory m_deviceMemory; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct BindAccelerationStructureMemoryInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : BindAccelerationStructureMemoryInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) - : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindAccelerationStructureMemoryInfoNV & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindAccelerationStructureMemoryInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindAccelerationStructureMemoryInfoNV const& ) const = default; -#else - bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); - } - - bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - - }; - static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindAccelerationStructureMemoryInfoNV; - }; - - struct BindBufferMemoryDeviceGroupInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) - : deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default; -#else - bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); - } - - bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - - }; - static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindBufferMemoryDeviceGroupInfo; - }; - using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo; - - struct BindBufferMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindBufferMemoryInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - - operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindBufferMemoryInfo const& ) const = default; -#else - bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); - } - - bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - - }; - static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindBufferMemoryInfo; - }; - using BindBufferMemoryInfoKHR = BindBufferMemoryInfo; - - struct Offset2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT - : Offset2D( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkOffset2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Offset2D const& ) const = default; -#else - bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - int32_t x = {}; - int32_t y = {}; - - }; - static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Rect2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT - : Rect2D( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRect2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Rect2D const& ) const = default; -#else - bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ); - } - - bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; - - }; - static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindImageMemoryDeviceGroupInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindImageMemoryDeviceGroupInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & splitInstanceBindRegions_ = {} ) - : deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT - { - splitInstanceBindRegionCount = splitInstanceBindRegionCount_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT - { - pSplitInstanceBindRegions = pSplitInstanceBindRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT - { - splitInstanceBindRegionCount = static_cast( splitInstanceBindRegions_.size() ); - pSplitInstanceBindRegions = splitInstanceBindRegions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default; -#else - bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ) - && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) - && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions ); - } - - bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - uint32_t splitInstanceBindRegionCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {}; - - }; - static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemoryDeviceGroupInfo; - }; - using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo; - - class Image - { - public: - using CType = VkImage; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; - - public: - VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT - : m_image( image ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT - { - m_image = image; - return *this; - } -#endif - - Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_image = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Image const& ) const = default; -#else - bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image == rhs.m_image; - } - - bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image != rhs.m_image; - } - - bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image < rhs.m_image; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT - { - return m_image; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_image != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_image == VK_NULL_HANDLE; - } - - private: - VkImage m_image; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Image; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Image; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Image; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct BindImageMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindImageMemoryInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - - operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemoryInfo const& ) const = default; -#else - bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); - } - - bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - - }; - static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemoryInfo; - }; - using BindImageMemoryInfoKHR = BindImageMemoryInfo; - - struct BindImageMemorySwapchainInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ), imageIndex( imageIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : BindImageMemorySwapchainInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT - { - imageIndex = imageIndex_; - return *this; - } - - - operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default; -#else - bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( imageIndex == rhs.imageIndex ); - } - - bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint32_t imageIndex = {}; - - }; - static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemorySwapchainInfoKHR; - }; - - struct BindImagePlaneMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindImagePlaneMemoryInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT - { - planeAspect = planeAspect_; - return *this; - } - - - operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default; -#else - bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); - } - - bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; - - }; - static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImagePlaneMemoryInfo; - }; - using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo; - - struct BindIndexBufferIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16) VULKAN_HPP_NOEXCEPT - : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ ) - {} - - VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : BindIndexBufferIndirectCommandNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferAddress = bufferAddress_; - return *this; - } - - BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - - operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default; -#else - bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferAddress == rhs.bufferAddress ) - && ( size == rhs.size ) - && ( indexType == rhs.indexType ); - } - - bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; - uint32_t size = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - - }; - static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindShaderGroupIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT - : groupIndex( groupIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : BindShaderGroupIndirectCommandNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT - { - groupIndex = groupIndex_; - return *this; - } - - - operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default; -#else - bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( groupIndex == rhs.groupIndex ); - } - - bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t groupIndex = {}; - - }; - static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseMemoryBind - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseMemoryBind(VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseMemoryBind( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT - { - resourceOffset = resourceOffset_; - return *this; - } - - SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseMemoryBind const& ) const = default; -#else - bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( resourceOffset == rhs.resourceOffset ) - && ( size == rhs.size ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; - - }; - static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseBufferMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseBufferMemoryBindInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : buffer( buffer_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageOpaqueMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresource - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageSubresource( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT - { - mipLevel = mipLevel_; - return *this; - } - - ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - arrayLayer = arrayLayer_; - return *this; - } - - - operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresource const& ) const = default; -#else - bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( arrayLayer == rhs.arrayLayer ); - } - - bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t arrayLayer = {}; - - }; - static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Offset3D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ) - {} - - VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT - : Offset3D( *reinterpret_cast( &rhs ) ) - {} - - explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} ) - : x( offset2D.x ) - , y( offset2D.y ) - , z( z_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - - operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkOffset3D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Offset3D const& ) const = default; -#else - bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); - } - - bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - int32_t x = {}; - int32_t y = {}; - int32_t z = {}; - - }; - static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Extent3D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ), depth( depth_ ) - {} - - VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT - : Extent3D( *reinterpret_cast( &rhs ) ) - {} - - explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} ) - : width( extent2D.width ) - , height( extent2D.height ) - , depth( depth_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - - operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtent3D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Extent3D const& ) const = default; -#else - bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ) - && ( depth == rhs.depth ); - } - - bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - uint32_t depth = {}; - - }; - static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryBind - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryBind(VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageMemoryBind( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT - { - subresource = subresource_; - return *this; - } - - SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryBind const& ) const = default; -#else - bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subresource == rhs.subresource ) - && ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D offset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; - - }; - static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageMemoryBindInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindSparseInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindSparseInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t bufferBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ = {}, uint32_t imageOpaqueBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = {}, uint32_t imageBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ ) - {} - - VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BindSparseInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageOpaqueBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), bufferBindCount( static_cast( bufferBinds_.size() ) ), pBufferBinds( bufferBinds_.data() ), imageOpaqueBindCount( static_cast( imageOpaqueBinds_.size() ) ), pImageOpaqueBinds( imageOpaqueBinds_.data() ), imageBindCount( static_cast( imageBinds_.size() ) ), pImageBinds( imageBinds_.data() ), signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT - { - bufferBindCount = bufferBindCount_; - return *this; - } - - BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBufferBinds = pBufferBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT - { - bufferBindCount = static_cast( bufferBinds_.size() ); - pBufferBinds = bufferBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT - { - imageOpaqueBindCount = imageOpaqueBindCount_; - return *this; - } - - BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT - { - pImageOpaqueBinds = pImageOpaqueBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT - { - imageOpaqueBindCount = static_cast( imageOpaqueBinds_.size() ); - pImageOpaqueBinds = imageOpaqueBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT - { - imageBindCount = imageBindCount_; - return *this; - } - - BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT - { - pImageBinds = pImageBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageBinds_ ) VULKAN_HPP_NOEXCEPT - { - imageBindCount = static_cast( imageBinds_.size() ); - pImageBinds = imageBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphores = pSignalSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphores_.size() ); - pSignalSemaphores = signalSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindSparseInfo const& ) const = default; -#else - bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( bufferBindCount == rhs.bufferBindCount ) - && ( pBufferBinds == rhs.pBufferBinds ) - && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) - && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) - && ( imageBindCount == rhs.imageBindCount ) - && ( pImageBinds == rhs.pImageBinds ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); - } - - bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t bufferBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {}; - uint32_t imageOpaqueBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {}; - uint32_t imageBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; - - }; - static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindSparseInfo; - }; - - struct BindVertexBufferIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT - : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ ) - {} - - VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : BindVertexBufferIndirectCommandNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferAddress = bufferAddress_; - return *this; - } - - BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default; -#else - bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferAddress == rhs.bufferAddress ) - && ( size == rhs.size ) - && ( stride == rhs.stride ); - } - - bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; - uint32_t size = {}; - uint32_t stride = {}; - - }; - static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresourceLayers - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageSubresourceLayers( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT - { - mipLevel = mipLevel_; - return *this; - } - - ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresourceLayers const& ) const = default; -#else - bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageBlit2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageBlit2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageBlit2KHR & setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT - { - srcOffsets = srcOffsets_; - return *this; - } - - ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageBlit2KHR & setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dstOffsets = dstOffsets_; - return *this; - } - - - operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageBlit2KHR const& ) const = default; -#else - bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffsets == rhs.srcOffsets ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffsets == rhs.dstOffsets ); - } - - bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; - - }; - static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageBlit2KHR; - }; - - struct BlitImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ = {}, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : BlitImageInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BlitImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT - { - filter = filter_; - return *this; - } - - - operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BlitImageInfo2KHR const& ) const = default; -#else - bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ) - && ( filter == rhs.filter ); - } - - bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {}; - VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - - }; - static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BlitImageInfo2KHR; - }; - - struct BufferCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferCopy( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCopy const& ) const = default; -#else - bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcOffset == rhs.srcOffset ) - && ( dstOffset == rhs.dstOffset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BufferCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferCopy2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCopy2KHR const& ) const = default; -#else - bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcOffset == rhs.srcOffset ) - && ( dstOffset == rhs.dstOffset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferCopy2KHR; - }; - - struct BufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCreateInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::DeviceSize size_, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) - : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCreateInfo const& ) const = default; -#else - bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( size == rhs.size ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); - } - - bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - - }; - static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferCreateInfo; - }; - - struct BufferDeviceAddressCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - - operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default; -#else - bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceAddress == rhs.deviceAddress ); - } - - bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - - }; - static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferDeviceAddressCreateInfoEXT; - }; - - struct BufferDeviceAddressInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferDeviceAddressInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferDeviceAddressInfo const& ) const = default; -#else - bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferDeviceAddressInfo; - }; - using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo; - using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo; - - struct BufferImageCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferImageCopy(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferImageCopy( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT - { - bufferOffset = bufferOffset_; - return *this; - } - - BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT - { - bufferRowLength = bufferRowLength_; - return *this; - } - - BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT - { - bufferImageHeight = bufferImageHeight_; - return *this; - } - - BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT - { - imageSubresource = imageSubresource_; - return *this; - } - - BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT - { - imageOffset = imageOffset_; - return *this; - } - - BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferImageCopy const& ) const = default; -#else - bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferOffset == rhs.bufferOffset ) - && ( bufferRowLength == rhs.bufferRowLength ) - && ( bufferImageHeight == rhs.bufferImageHeight ) - && ( imageSubresource == rhs.imageSubresource ) - && ( imageOffset == rhs.imageOffset ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; - uint32_t bufferRowLength = {}; - uint32_t bufferImageHeight = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; - - }; - static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BufferImageCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferImageCopy2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT - { - bufferOffset = bufferOffset_; - return *this; - } - - BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT - { - bufferRowLength = bufferRowLength_; - return *this; - } - - BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT - { - bufferImageHeight = bufferImageHeight_; - return *this; - } - - BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT - { - imageSubresource = imageSubresource_; - return *this; - } - - BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT - { - imageOffset = imageOffset_; - return *this; - } - - BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferImageCopy2KHR const& ) const = default; -#else - bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferOffset == rhs.bufferOffset ) - && ( bufferRowLength == rhs.bufferRowLength ) - && ( bufferImageHeight == rhs.bufferImageHeight ) - && ( imageSubresource == rhs.imageSubresource ) - && ( imageOffset == rhs.imageOffset ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; - uint32_t bufferRowLength = {}; - uint32_t bufferImageHeight = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; - - }; - static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferImageCopy2KHR; - }; - - struct BufferMemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferMemoryBarrier( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferMemoryBarrier const& ) const = default; -#else - bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferMemoryBarrier; - }; - - struct BufferMemoryBarrier2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryBarrier2KHR( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferMemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2KHR & operator=( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryBarrier2KHR & operator=( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferMemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferMemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - BufferMemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - BufferMemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - BufferMemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - BufferMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier2KHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BufferMemoryBarrier2KHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - BufferMemoryBarrier2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferMemoryBarrier2KHR const& ) const = default; -#else - bool operator==( BufferMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcStageMask == rhs.srcStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferMemoryBarrier2KHR ) == sizeof( VkBufferMemoryBarrier2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferMemoryBarrier2KHR; - }; - - struct BufferMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferMemoryRequirementsInfo2; - }; - using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2; - - struct BufferOpaqueCaptureAddressCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT - { - opaqueCaptureAddress = opaqueCaptureAddress_; - return *this; - } - - - operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default; -#else - bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); - } - - bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; - - }; - static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferOpaqueCaptureAddressCreateInfo; - }; - using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo; - - struct BufferViewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferViewCreateInfo(VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : BufferViewCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT - { - range = range_; - return *this; - } - - - operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferViewCreateInfo const& ) const = default; -#else - bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( buffer == rhs.buffer ) - && ( format == rhs.format ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); - } - - bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - - }; - static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferViewCreateInfo; - }; - - struct CalibratedTimestampInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT - : timeDomain( timeDomain_ ) - {} - - VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : CalibratedTimestampInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT - { - timeDomain = timeDomain_; - return *this; - } - - - operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default; -#else - bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timeDomain == rhs.timeDomain ); - } - - bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice; - - }; - static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CalibratedTimestampInfoEXT; - }; - - struct CheckpointData2NV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2Nv; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CheckpointData2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage_ = {}, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT - : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ ) - {} - - VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT - : CheckpointData2NV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CheckpointData2NV & operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkCheckpointData2NV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CheckpointData2NV const& ) const = default; -#else - bool operator==( CheckpointData2NV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stage == rhs.stage ) - && ( pCheckpointMarker == rhs.pCheckpointMarker ); - } - - bool operator!=( CheckpointData2NV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2Nv; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage = {}; - void* pCheckpointMarker = {}; - - }; - static_assert( sizeof( CheckpointData2NV ) == sizeof( VkCheckpointData2NV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CheckpointData2NV; - }; - - struct CheckpointDataNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT - : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ ) - {} - - VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CheckpointDataNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CheckpointDataNV const& ) const = default; -#else - bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stage == rhs.stage ) - && ( pCheckpointMarker == rhs.pCheckpointMarker ); - } - - bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe; - void* pCheckpointMarker = {}; - - }; - static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CheckpointDataNV; - }; - - union ClearColorValue - { - ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); - } - - ClearColorValue( const std::array& float32_ = {} ) - : float32( float32_ ) - {} - - ClearColorValue( const std::array& int32_ ) - : int32( int32_ ) - {} - - ClearColorValue( const std::array& uint32_ ) - : uint32( uint32_ ) - {} - - ClearColorValue & setFloat32( std::array float32_ ) VULKAN_HPP_NOEXCEPT - { - float32 = float32_; - return *this; - } - - ClearColorValue & setInt32( std::array int32_ ) VULKAN_HPP_NOEXCEPT - { - int32 = int32_; - return *this; - } - - ClearColorValue & setUint32( std::array uint32_ ) VULKAN_HPP_NOEXCEPT - { - uint32 = uint32_; - return *this; - } - - VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); - return *this; - } - - operator VkClearColorValue const&() const - { - return *reinterpret_cast(this); - } - - operator VkClearColorValue &() - { - return *reinterpret_cast(this); - } - - VULKAN_HPP_NAMESPACE::ArrayWrapper1D float32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D int32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D uint32; - }; - - struct ClearDepthStencilValue - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT - : depth( depth_ ), stencil( stencil_ ) - {} - - VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT - : ClearDepthStencilValue( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT - { - stencil = stencil_; - return *this; - } - - - operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ClearDepthStencilValue const& ) const = default; -#else - bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( depth == rhs.depth ) - && ( stencil == rhs.stencil ); - } - - bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float depth = {}; - uint32_t stencil = {}; - - }; - static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - union ClearValue - { - ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); - } - - ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) - : color( color_ ) - {} - - ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) - : depthStencil( depthStencil_ ) - {} - - ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT - { - depthStencil = depthStencil_; - return *this; - } - - VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); - return *this; - } - - operator VkClearValue const&() const - { - return *reinterpret_cast(this); - } - - operator VkClearValue &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::ClearColorValue color; - VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil; -#else - VkClearColorValue color; - VkClearDepthStencilValue depthStencil; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct ClearAttachment - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ ) - {} - - ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT - : ClearAttachment( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachment = colorAttachment_; - return *this; - } - - ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT - { - clearValue = clearValue_; - return *this; - } - - - operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t colorAttachment = {}; - VULKAN_HPP_NAMESPACE::ClearValue clearValue = {}; - - }; - static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ClearRect - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT - : ClearRect( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT - { - rect = rect_; - return *this; - } - - ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearRect &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ClearRect const& ) const = default; -#else - bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( rect == rhs.rect ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Rect2D rect = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CoarseSampleLocationNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT - : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ ) - {} - - VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CoarseSampleLocationNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT - { - pixelX = pixelX_; - return *this; - } - - CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT - { - pixelY = pixelY_; - return *this; - } - - CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT - { - sample = sample_; - return *this; - } - - - operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CoarseSampleLocationNV const& ) const = default; -#else - bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( pixelX == rhs.pixelX ) - && ( pixelY == rhs.pixelY ) - && ( sample == rhs.sample ); - } - - bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t pixelX = {}; - uint32_t pixelY = {}; - uint32_t sample = {}; - - }; - static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CoarseSampleOrderCustomNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV(VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, uint32_t sampleCount_ = {}, uint32_t sampleLocationCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CoarseSampleOrderCustomNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) - : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT - { - shadingRate = shadingRate_; - return *this; - } - - CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleCount = sampleCount_; - return *this; - } - - CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationCount = sampleLocationCount_; - return *this; - } - - CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pSampleLocations = pSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationCount = static_cast( sampleLocations_.size() ); - pSampleLocations = sampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default; -#else - bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shadingRate == rhs.shadingRate ) - && ( sampleCount == rhs.sampleCount ) - && ( sampleLocationCount == rhs.sampleLocationCount ) - && ( pSampleLocations == rhs.pSampleLocations ); - } - - bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations; - uint32_t sampleCount = {}; - uint32_t sampleLocationCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {}; - - }; - static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class CommandPool - { - public: - using CType = VkCommandPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; - - public: - VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT - : m_commandPool( commandPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT - { - m_commandPool = commandPool; - return *this; - } -#endif - - CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_commandPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandPool const& ) const = default; -#else - bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool == rhs.m_commandPool; - } - - bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool != rhs.m_commandPool; - } - - bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool < rhs.m_commandPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool == VK_NULL_HANDLE; - } - - private: - VkCommandPool m_commandPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CommandBufferAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo(VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, uint32_t commandBufferCount_ = {}) VULKAN_HPP_NOEXCEPT - : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferAllocateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT - { - commandPool = commandPool_; - return *this; - } - - CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT - { - level = level_; - return *this; - } - - CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - - operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferAllocateInfo const& ) const = default; -#else - bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( commandPool == rhs.commandPool ) - && ( level == rhs.level ) - && ( commandBufferCount == rhs.commandBufferCount ); - } - - bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPool commandPool = {}; - VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary; - uint32_t commandBufferCount = {}; - - }; - static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferAllocateInfo; - }; - - class RenderPass - { - public: - using CType = VkRenderPass; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; - - public: - VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT - : m_renderPass( renderPass ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT - { - m_renderPass = renderPass; - return *this; - } -#endif - - RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_renderPass = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPass const& ) const = default; -#else - bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass == rhs.m_renderPass; - } - - bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass != rhs.m_renderPass; - } - - bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass < rhs.m_renderPass; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass == VK_NULL_HANDLE; - } - - private: - VkRenderPass m_renderPass; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Framebuffer - { - public: - using CType = VkFramebuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; - - public: - VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT - : m_framebuffer( framebuffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT - { - m_framebuffer = framebuffer; - return *this; - } -#endif - - Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_framebuffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Framebuffer const& ) const = default; -#else - bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer == rhs.m_framebuffer; - } - - bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer != rhs.m_framebuffer; - } - - bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer < rhs.m_framebuffer; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer == VK_NULL_HANDLE; - } - - private: - VkFramebuffer m_framebuffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CommandBufferInheritanceInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferInheritanceInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT - { - framebuffer = framebuffer_; - return *this; - } - - CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT - { - occlusionQueryEnable = occlusionQueryEnable_; - return *this; - } - - CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT - { - queryFlags = queryFlags_; - return *this; - } - - CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatistics = pipelineStatistics_; - return *this; - } - - - operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceInfo const& ) const = default; -#else - bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( framebuffer == rhs.framebuffer ) - && ( occlusionQueryEnable == rhs.occlusionQueryEnable ) - && ( queryFlags == rhs.queryFlags ) - && ( pipelineStatistics == rhs.pipelineStatistics ); - } - - bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {}; - VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceInfo; - }; - - struct CommandBufferBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferBeginInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT - { - pInheritanceInfo = pInheritanceInfo_; - return *this; - } - - - operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferBeginInfo const& ) const = default; -#else - bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pInheritanceInfo == rhs.pInheritanceInfo ); - } - - bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {}; - const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {}; - - }; - static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferBeginInfo; - }; - - struct CommandBufferInheritanceConditionalRenderingInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT - : conditionalRenderingEnable( conditionalRenderingEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferInheritanceConditionalRenderingInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT - { - conditionalRenderingEnable = conditionalRenderingEnable_; - return *this; - } - - - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default; -#else - bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable ); - } - - bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceConditionalRenderingInfoEXT; - }; - - struct CommandBufferInheritanceRenderPassTransformInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT - : transform( transform_ ), renderArea( renderArea_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferInheritanceRenderPassTransformInfoQCOM( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT - { - renderArea = renderArea_; - return *this; - } - - - operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default; -#else - bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ) - && ( renderArea == rhs.renderArea ); - } - - bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM; - }; - - struct ConditionalRenderingBeginInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ConditionalRenderingBeginInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default; -#else - bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( flags == rhs.flags ); - } - - bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {}; - - }; - static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ConditionalRenderingBeginInfoEXT; - }; - - struct DebugUtilsLabelEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array const& color_ = {}) VULKAN_HPP_NOEXCEPT - : pLabelName( pLabelName_ ), color( color_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugUtilsLabelEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT - { - pLabelName = pLabelName_; - return *this; - } - - DebugUtilsLabelEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - - operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsLabelEXT const& ) const = default; -#else - bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pLabelName == rhs.pLabelName ) - && ( color == rhs.color ); - } - - bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT; - const void* pNext = {}; - const char* pLabelName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; - - }; - static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsLabelEXT; - }; - - class QueryPool - { - public: - using CType = VkQueryPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; - - public: - VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT - : m_queryPool( queryPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT - { - m_queryPool = queryPool; - return *this; - } -#endif - - QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_queryPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPool const& ) const = default; -#else - bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool == rhs.m_queryPool; - } - - bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool != rhs.m_queryPool; - } - - bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool < rhs.m_queryPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool == VK_NULL_HANDLE; - } - - private: - VkQueryPool m_queryPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct RenderPassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, uint32_t clearValueCount_ = {}, const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ = {}) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassBeginInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_, VULKAN_HPP_NAMESPACE::Rect2D renderArea_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) - : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast( clearValues_.size() ) ), pClearValues( clearValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT - { - framebuffer = framebuffer_; - return *this; - } - - RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT - { - renderArea = renderArea_; - return *this; - } - - RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT - { - clearValueCount = clearValueCount_; - return *this; - } - - RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT - { - pClearValues = pClearValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) VULKAN_HPP_NOEXCEPT - { - clearValueCount = static_cast( clearValues_.size() ); - pClearValues = clearValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassBeginInfo const& ) const = default; -#else - bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( framebuffer == rhs.framebuffer ) - && ( renderArea == rhs.renderArea ) - && ( clearValueCount == rhs.clearValueCount ) - && ( pClearValues == rhs.pClearValues ); - } - - bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; - uint32_t clearValueCount = {}; - const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {}; - - }; - static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassBeginInfo; - }; - - struct SubpassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT - : contents( contents_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassBeginInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT - { - contents = contents_; - return *this; - } - - - operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassBeginInfo const& ) const = default; -#else - bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( contents == rhs.contents ); - } - - bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline; - - }; - static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassBeginInfo; - }; - using SubpassBeginInfoKHR = SubpassBeginInfo; - - class PipelineLayout - { - public: - using CType = VkPipelineLayout; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; - - public: - VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout( pipelineLayout ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT - { - m_pipelineLayout = pipelineLayout; - return *this; - } -#endif - - PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipelineLayout = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLayout const& ) const = default; -#else - bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout == rhs.m_pipelineLayout; - } - - bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout != rhs.m_pipelineLayout; - } - - bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout < rhs.m_pipelineLayout; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout == VK_NULL_HANDLE; - } - - private: - VkPipelineLayout m_pipelineLayout; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class DescriptorSet - { - public: - using CType = VkDescriptorSet; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; - - public: - VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet( descriptorSet ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT - { - m_descriptorSet = descriptorSet; - return *this; - } -#endif - - DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorSet = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSet const& ) const = default; -#else - bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet == rhs.m_descriptorSet; - } - - bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet != rhs.m_descriptorSet; - } - - bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet < rhs.m_descriptorSet; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet == VK_NULL_HANDLE; - } - - private: - VkDescriptorSet m_descriptorSet; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Pipeline - { - public: - using CType = VkPipeline; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; - - public: - VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT - : m_pipeline( pipeline ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT - { - m_pipeline = pipeline; - return *this; - } -#endif - - Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipeline = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Pipeline const& ) const = default; -#else - bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline == rhs.m_pipeline; - } - - bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline != rhs.m_pipeline; - } - - bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline < rhs.m_pipeline; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline == VK_NULL_HANDLE; - } - - private: - VkPipeline m_pipeline; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class ImageView - { - public: - using CType = VkImageView; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; - - public: - VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT - : m_imageView( imageView ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT - { - m_imageView = imageView; - return *this; - } -#endif - - ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_imageView = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageView const& ) const = default; -#else - bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView == rhs.m_imageView; - } - - bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView != rhs.m_imageView; - } - - bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView < rhs.m_imageView; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT - { - return m_imageView; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_imageView != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_imageView == VK_NULL_HANDLE; - } - - private: - VkImageView m_imageView; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ImageBlit - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ImageBlit(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageBlit( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageBlit & setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT - { - srcOffsets = srcOffsets_; - return *this; - } - - ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageBlit & setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dstOffsets = dstOffsets_; - return *this; - } - - - operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageBlit &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageBlit const& ) const = default; -#else - bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffsets == rhs.srcOffsets ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffsets == rhs.dstOffsets ); - } - - bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; - - }; - static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresourceRange - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageSubresourceRange( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT - { - baseMipLevel = baseMipLevel_; - return *this; - } - - ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT - { - levelCount = levelCount_; - return *this; - } - - ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresourceRange const& ) const = default; -#else - bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( baseMipLevel == rhs.baseMipLevel ) - && ( levelCount == rhs.levelCount ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t baseMipLevel = {}; - uint32_t levelCount = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CopyAccelerationStructureInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyAccelerationStructureInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default; -#else - bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( src == rhs.src ) - && ( dst == rhs.dst ) - && ( mode == rhs.mode ); - } - - bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyAccelerationStructureInfoKHR; - }; - - struct CopyAccelerationStructureToMemoryInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyAccelerationStructureToMemoryInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyAccelerationStructureToMemoryInfoKHR; - }; - - struct CopyBufferInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyBufferInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT - { - srcBuffer = srcBuffer_; - return *this; - } - - CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT - { - dstBuffer = dstBuffer_; - return *this; - } - - CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyBufferInfo2KHR const& ) const = default; -#else - bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcBuffer == rhs.srcBuffer ) - && ( dstBuffer == rhs.dstBuffer ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; - VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyBufferInfo2KHR; - }; - - struct CopyBufferToImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyBufferToImageInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferToImageInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT - { - srcBuffer = srcBuffer_; - return *this; - } - - CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default; -#else - bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcBuffer == rhs.srcBuffer ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyBufferToImageInfo2KHR; - }; - - struct ImageCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCopy(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageCopy( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCopy const& ) const = default; -#else - bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCopy2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageCopy2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCopy2KHR const& ) const = default; -#else - bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageCopy2KHR; - }; - - struct CopyImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyImageInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyImageInfo2KHR const& ) const = default; -#else - bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyImageInfo2KHR; - }; - - struct CopyImageToBufferInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyImageToBufferInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageToBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT - { - dstBuffer = dstBuffer_; - return *this; - } - - CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default; -#else - bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstBuffer == rhs.dstBuffer ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyImageToBufferInfo2KHR; - }; - - struct CopyMemoryToAccelerationStructureInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyMemoryToAccelerationStructureInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyMemoryToAccelerationStructureInfoKHR; - }; - - struct DebugMarkerMarkerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array const& color_ = {}) VULKAN_HPP_NOEXCEPT - : pMarkerName( pMarkerName_ ), color( color_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugMarkerMarkerInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT - { - pMarkerName = pMarkerName_; - return *this; - } - - DebugMarkerMarkerInfoEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - - operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pMarkerName == rhs.pMarkerName ) - && ( color == rhs.color ); - } - - bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT; - const void* pNext = {}; - const char* pMarkerName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; - - }; - static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerMarkerInfoEXT; - }; - - struct SubpassEndInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT - - {} - - VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassEndInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassEndInfo const& ) const = default; -#else - bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo; - const void* pNext = {}; - - }; - static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassEndInfo; - }; - using SubpassEndInfoKHR = SubpassEndInfo; - - class IndirectCommandsLayoutNV - { - public: - using CType = VkIndirectCommandsLayoutNV; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT - { - m_indirectCommandsLayoutNV = indirectCommandsLayoutNV; - return *this; - } -#endif - - IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_indirectCommandsLayoutNV = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV; - } - - bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV; - } - - bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV == VK_NULL_HANDLE; - } - - private: - VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct IndirectCommandsStreamNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT - : IndirectCommandsStreamNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsStreamNV const& ) const = default; -#else - bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( offset == rhs.offset ); - } - - bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - - }; - static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct GeneratedCommandsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t streamCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ = {}, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( streamCount_ ), pStreams( pStreams_ ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeneratedCommandsInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::Pipeline pipeline_, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streams_, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( static_cast( streams_.size() ) ), pStreams( streams_.data() ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT - { - indirectCommandsLayout = indirectCommandsLayout_; - return *this; - } - - GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = streamCount_; - return *this; - } - - GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT - { - pStreams = pStreams_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streams_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = static_cast( streams_.size() ); - pStreams = streams_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCount = sequencesCount_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT - { - preprocessBuffer = preprocessBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT - { - preprocessOffset = preprocessOffset_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT - { - preprocessSize = preprocessSize_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCountBuffer = sequencesCountBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCountOffset = sequencesCountOffset_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sequencesIndexBuffer = sequencesIndexBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT - { - sequencesIndexOffset = sequencesIndexOffset_; - return *this; - } - - - operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeneratedCommandsInfoNV const& ) const = default; -#else - bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipeline == rhs.pipeline ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( streamCount == rhs.streamCount ) - && ( pStreams == rhs.pStreams ) - && ( sequencesCount == rhs.sequencesCount ) - && ( preprocessBuffer == rhs.preprocessBuffer ) - && ( preprocessOffset == rhs.preprocessOffset ) - && ( preprocessSize == rhs.preprocessSize ) - && ( sequencesCountBuffer == rhs.sequencesCountBuffer ) - && ( sequencesCountOffset == rhs.sequencesCountOffset ) - && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) - && ( sequencesIndexOffset == rhs.sequencesIndexOffset ); - } - - bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; - uint32_t streamCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {}; - uint32_t sequencesCount = {}; - VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {}; - - }; - static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeneratedCommandsInfoNV; - }; - - struct MemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryBarrier( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - - operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryBarrier const& ) const = default; -#else - bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ); - } - - bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - - }; - static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryBarrier; - }; - - struct ImageMemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageMemoryBarrier( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT - { - oldLayout = oldLayout_; - return *this; - } - - ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT - { - newLayout = newLayout_; - return *this; - } - - ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT - { - subresourceRange = subresourceRange_; - return *this; - } - - - operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageMemoryBarrier const& ) const = default; -#else - bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( oldLayout == rhs.oldLayout ) - && ( newLayout == rhs.newLayout ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( image == rhs.image ) - && ( subresourceRange == rhs.subresourceRange ); - } - - bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; - - }; - static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageMemoryBarrier; - }; - - struct MemoryBarrier2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT - : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryBarrier2KHR( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryBarrier2KHR( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2KHR & operator=( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryBarrier2KHR & operator=( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - MemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - MemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - MemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - - operator VkMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryBarrier2KHR const& ) const = default; -#else - bool operator==( MemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcStageMask == rhs.srcStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( dstAccessMask == rhs.dstAccessMask ); - } - - bool operator!=( MemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; - - }; - static_assert( sizeof( MemoryBarrier2KHR ) == sizeof( VkMemoryBarrier2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryBarrier2KHR; - }; - - struct ImageMemoryBarrier2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT - : srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryBarrier2KHR( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageMemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2KHR & operator=( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryBarrier2KHR & operator=( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageMemoryBarrier2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageMemoryBarrier2KHR & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - ImageMemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - ImageMemoryBarrier2KHR & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - ImageMemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - ImageMemoryBarrier2KHR & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT - { - oldLayout = oldLayout_; - return *this; - } - - ImageMemoryBarrier2KHR & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT - { - newLayout = newLayout_; - return *this; - } - - ImageMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier2KHR & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - ImageMemoryBarrier2KHR & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT - { - subresourceRange = subresourceRange_; - return *this; - } - - - operator VkImageMemoryBarrier2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageMemoryBarrier2KHR const& ) const = default; -#else - bool operator==( ImageMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcStageMask == rhs.srcStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( oldLayout == rhs.oldLayout ) - && ( newLayout == rhs.newLayout ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( image == rhs.image ) - && ( subresourceRange == rhs.subresourceRange ); - } - - bool operator!=( ImageMemoryBarrier2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; - - }; - static_assert( sizeof( ImageMemoryBarrier2KHR ) == sizeof( VkImageMemoryBarrier2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageMemoryBarrier2KHR; - }; - - struct DependencyInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DependencyInfoKHR(VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, uint32_t memoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers_ = {}, uint32_t bufferMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers_ = {}, uint32_t imageMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers_ = {}) VULKAN_HPP_NOEXCEPT - : dependencyFlags( dependencyFlags_ ), memoryBarrierCount( memoryBarrierCount_ ), pMemoryBarriers( pMemoryBarriers_ ), bufferMemoryBarrierCount( bufferMemoryBarrierCount_ ), pBufferMemoryBarriers( pBufferMemoryBarriers_ ), imageMemoryBarrierCount( imageMemoryBarrierCount_ ), pImageMemoryBarriers( pImageMemoryBarriers_ ) - {} - - VULKAN_HPP_CONSTEXPR DependencyInfoKHR( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DependencyInfoKHR( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DependencyInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DependencyInfoKHR( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & memoryBarriers_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferMemoryBarriers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageMemoryBarriers_ = {} ) - : dependencyFlags( dependencyFlags_ ), memoryBarrierCount( static_cast( memoryBarriers_.size() ) ), pMemoryBarriers( memoryBarriers_.data() ), bufferMemoryBarrierCount( static_cast( bufferMemoryBarriers_.size() ) ), pBufferMemoryBarriers( bufferMemoryBarriers_.data() ), imageMemoryBarrierCount( static_cast( imageMemoryBarriers_.size() ) ), pImageMemoryBarriers( imageMemoryBarriers_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DependencyInfoKHR & operator=( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DependencyInfoKHR & operator=( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DependencyInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DependencyInfoKHR & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT - { - dependencyFlags = dependencyFlags_; - return *this; - } - - DependencyInfoKHR & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT - { - memoryBarrierCount = memoryBarrierCount_; - return *this; - } - - DependencyInfoKHR & setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - pMemoryBarriers = pMemoryBarriers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DependencyInfoKHR & setMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & memoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - memoryBarrierCount = static_cast( memoryBarriers_.size() ); - pMemoryBarriers = memoryBarriers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DependencyInfoKHR & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT - { - bufferMemoryBarrierCount = bufferMemoryBarrierCount_; - return *this; - } - - DependencyInfoKHR & setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - pBufferMemoryBarriers = pBufferMemoryBarriers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DependencyInfoKHR & setBufferMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - bufferMemoryBarrierCount = static_cast( bufferMemoryBarriers_.size() ); - pBufferMemoryBarriers = bufferMemoryBarriers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DependencyInfoKHR & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT - { - imageMemoryBarrierCount = imageMemoryBarrierCount_; - return *this; - } - - DependencyInfoKHR & setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - pImageMemoryBarriers = pImageMemoryBarriers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DependencyInfoKHR & setImageMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT - { - imageMemoryBarrierCount = static_cast( imageMemoryBarriers_.size() ); - pImageMemoryBarriers = imageMemoryBarriers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDependencyInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDependencyInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DependencyInfoKHR const& ) const = default; -#else - bool operator==( DependencyInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dependencyFlags == rhs.dependencyFlags ) - && ( memoryBarrierCount == rhs.memoryBarrierCount ) - && ( pMemoryBarriers == rhs.pMemoryBarriers ) - && ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount ) - && ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers ) - && ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount ) - && ( pImageMemoryBarriers == rhs.pImageMemoryBarriers ); - } - - bool operator!=( DependencyInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - uint32_t memoryBarrierCount = {}; - const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR* pMemoryBarriers = {}; - uint32_t bufferMemoryBarrierCount = {}; - const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR* pBufferMemoryBarriers = {}; - uint32_t imageMemoryBarrierCount = {}; - const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR* pImageMemoryBarriers = {}; - - }; - static_assert( sizeof( DependencyInfoKHR ) == sizeof( VkDependencyInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DependencyInfoKHR; - }; - - class Sampler - { - public: - using CType = VkSampler; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; - - public: - VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT - : m_sampler( sampler ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT - { - m_sampler = sampler; - return *this; - } -#endif - - Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_sampler = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Sampler const& ) const = default; -#else - bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler == rhs.m_sampler; - } - - bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler != rhs.m_sampler; - } - - bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler < rhs.m_sampler; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT - { - return m_sampler; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_sampler != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_sampler == VK_NULL_HANDLE; - } - - private: - VkSampler m_sampler; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DescriptorImageInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorImageInfo(VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorImageInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT - { - sampler = sampler_; - return *this; - } - - DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT - { - imageView = imageView_; - return *this; - } - - DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT - { - imageLayout = imageLayout_; - return *this; - } - - - operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorImageInfo const& ) const = default; -#else - bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sampler == rhs.sampler ) - && ( imageView == rhs.imageView ) - && ( imageLayout == rhs.imageLayout ); - } - - bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorBufferInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ), range( range_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorBufferInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT - { - range = range_; - return *this; - } - - - operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorBufferInfo const& ) const = default; -#else - bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); - } - - bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - - }; - static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class BufferView - { - public: - using CType = VkBufferView; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; - - public: - VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT - : m_bufferView( bufferView ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT - { - m_bufferView = bufferView; - return *this; - } -#endif - - BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_bufferView = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferView const& ) const = default; -#else - bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView == rhs.m_bufferView; - } - - bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView != rhs.m_bufferView; - } - - bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView < rhs.m_bufferView; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView == VK_NULL_HANDLE; - } - - private: - VkBufferView m_bufferView; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct WriteDescriptorSet - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ = {}, const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ = {}) VULKAN_HPP_NOEXCEPT - : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - : WriteDescriptorSet( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_, uint32_t dstBinding_, uint32_t dstArrayElement_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferInfo_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & texelBufferView_ = {} ) - : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( static_cast( !imageInfo_.empty() ? imageInfo_.size() : !bufferInfo_.empty() ? bufferInfo_.size() : texelBufferView_.size() ) ), descriptorType( descriptorType_ ), pImageInfo( imageInfo_.data() ), pBufferInfo( bufferInfo_.data() ), pTexelBufferView( texelBufferView_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 ); -#else - if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT - { - dstSet = dstSet_; - return *this; - } - - WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT - { - pImageInfo = pImageInfo_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageInfo_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( imageInfo_.size() ); - pImageInfo = imageInfo_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT - { - pBufferInfo = pBufferInfo_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( bufferInfo_.size() ); - pBufferInfo = bufferInfo_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT - { - pTexelBufferView = pTexelBufferView_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( texelBufferView_.size() ); - pTexelBufferView = texelBufferView_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSet const& ) const = default; -#else - bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( pImageInfo == rhs.pImageInfo ) - && ( pBufferInfo == rhs.pBufferInfo ) - && ( pTexelBufferView == rhs.pTexelBufferView ); - } - - bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {}; - const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {}; - - }; - static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSet; - }; - - class DescriptorUpdateTemplate - { - public: - using CType = VkDescriptorUpdateTemplate; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; - - public: - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT - { - m_descriptorUpdateTemplate = descriptorUpdateTemplate; - return *this; - } -#endif - - DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorUpdateTemplate = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplate const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate; - } - - bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate; - } - - bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate == VK_NULL_HANDLE; - } - - private: - VkDescriptorUpdateTemplate m_descriptorUpdateTemplate; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate; - - class Event - { - public: - using CType = VkEvent; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; - - public: - VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT - : m_event( event ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT - { - m_event = event; - return *this; - } -#endif - - Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_event = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Event const& ) const = default; -#else - bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event == rhs.m_event; - } - - bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event != rhs.m_event; - } - - bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event < rhs.m_event; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT - { - return m_event; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_event != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_event == VK_NULL_HANDLE; - } - - private: - VkEvent m_event; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Event; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Event; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Event; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ImageResolve - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageResolve(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageResolve( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageResolve &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageResolve const& ) const = default; -#else - bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageResolve2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageResolve2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageResolve2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageResolve2KHR const& ) const = default; -#else - bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageResolve2KHR; - }; - - struct ResolveImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ResolveImageInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ResolveImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ResolveImageInfo2KHR const& ) const = default; -#else - bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {}; - - }; - static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ResolveImageInfo2KHR; - }; - - struct PerformanceMarkerInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceMarkerInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT - { - marker = marker_; - return *this; - } - - - operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); - } - - bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL; - const void* pNext = {}; - uint64_t marker = {}; - - }; - static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceMarkerInfoINTEL; - }; - - struct PerformanceOverrideInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, uint64_t parameter_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), enable( enable_ ), parameter( parameter_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceOverrideInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT - { - enable = enable_; - return *this; - } - - PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT - { - parameter = parameter_; - return *this; - } - - - operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( enable == rhs.enable ) - && ( parameter == rhs.parameter ); - } - - bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware; - VULKAN_HPP_NAMESPACE::Bool32 enable = {}; - uint64_t parameter = {}; - - }; - static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceOverrideInfoINTEL; - }; - - struct PerformanceStreamMarkerInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT - { - marker = marker_; - return *this; - } - - - operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); - } - - bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL; - const void* pNext = {}; - uint32_t marker = {}; - - }; - static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceStreamMarkerInfoINTEL; - }; - - struct Viewport - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ ) - {} - - VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT - : Viewport( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT - { - minDepth = minDepth_; - return *this; - } - - Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxDepth = maxDepth_; - return *this; - } - - - operator VkViewport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Viewport const& ) const = default; -#else - bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( minDepth == rhs.minDepth ) - && ( maxDepth == rhs.maxDepth ); - } - - bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - float width = {}; - float height = {}; - float minDepth = {}; - float maxDepth = {}; - - }; - static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShadingRatePaletteNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ ) - {} - - VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ShadingRatePaletteNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePaletteEntries_ ) - : shadingRatePaletteEntryCount( static_cast( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_; - return *this; - } - - ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT - { - pShadingRatePaletteEntries = pShadingRatePaletteEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT - { - shadingRatePaletteEntryCount = static_cast( shadingRatePaletteEntries_.size() ); - pShadingRatePaletteEntries = shadingRatePaletteEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShadingRatePaletteNV const& ) const = default; -#else - bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) - && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries ); - } - - bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t shadingRatePaletteEntryCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {}; - - }; - static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ViewportWScalingNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT - : xcoeff( xcoeff_ ), ycoeff( ycoeff_ ) - {} - - VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ViewportWScalingNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT - { - xcoeff = xcoeff_; - return *this; - } - - ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT - { - ycoeff = ycoeff_; - return *this; - } - - - operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViewportWScalingNV const& ) const = default; -#else - bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( xcoeff == rhs.xcoeff ) - && ( ycoeff == rhs.ycoeff ); - } - - bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float xcoeff = {}; - float ycoeff = {}; - - }; - static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct StridedDeviceAddressRegionKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ), stride( stride_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : StridedDeviceAddressRegionKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkStridedDeviceAddressRegionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StridedDeviceAddressRegionKHR const& ) const = default; -#else - bool operator==( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( deviceAddress == rhs.deviceAddress ) - && ( stride == rhs.stride ) - && ( size == rhs.size ); - } - - bool operator!=( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class CommandBuffer - { - public: - using CType = VkCommandBuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; - - public: - VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer( commandBuffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT - { - m_commandBuffer = commandBuffer; - return *this; - } -#endif - - CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_commandBuffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBuffer const& ) const = default; -#else - bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer == rhs.m_commandBuffer; - } - - bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer != rhs.m_commandBuffer; - } - - bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer < rhs.m_commandBuffer; - } -#endif - - - template - VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, ArrayProxy const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void debugMarkerEndEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endConditionalRenderingEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endRenderPass( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void executeCommands( ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setBlendConstants( const float blendConstants[4], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDeviceMask( uint32_t deviceMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setLineWidth( float lineWidth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setScissor( uint32_t firstScissor, ArrayProxy const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setScissorWithCountEXT( ArrayProxy const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewport( uint32_t firstViewport, ArrayProxy const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportWithCountEXT( ArrayProxy const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void waitEvents2KHR( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void waitEvents2KHR( ArrayProxy const & events, ArrayProxy const & dependencyInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer == VK_NULL_HANDLE; - } - - private: - VkCommandBuffer m_commandBuffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CommandBufferSubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfoKHR(VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : commandBuffer( commandBuffer_ ), deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfoKHR( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferSubmitInfoKHR( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandBufferSubmitInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfoKHR & operator=( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferSubmitInfoKHR & operator=( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferSubmitInfoKHR & setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT - { - commandBuffer = commandBuffer_; - return *this; - } - - CommandBufferSubmitInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkCommandBufferSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferSubmitInfoKHR const& ) const = default; -#else - bool operator==( CommandBufferSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( commandBuffer == rhs.commandBuffer ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( CommandBufferSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( CommandBufferSubmitInfoKHR ) == sizeof( VkCommandBufferSubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferSubmitInfoKHR; - }; - - struct CommandPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : CommandPoolCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - - operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandPoolCreateInfo const& ) const = default; -#else - bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ); - } - - bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - - }; - static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandPoolCreateInfo; - }; - - class ShaderModule - { - public: - using CType = VkShaderModule; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; - - public: - VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT - : m_shaderModule( shaderModule ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT - { - m_shaderModule = shaderModule; - return *this; - } -#endif - - ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_shaderModule = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModule const& ) const = default; -#else - bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule == rhs.m_shaderModule; - } - - bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule != rhs.m_shaderModule; - } - - bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule < rhs.m_shaderModule; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule == VK_NULL_HANDLE; - } - - private: - VkShaderModule m_shaderModule; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct SpecializationMapEntry - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT - : constantID( constantID_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT - : SpecializationMapEntry( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT - { - constantID = constantID_; - return *this; - } - - SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SpecializationMapEntry const& ) const = default; -#else - bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( constantID == rhs.constantID ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t constantID = {}; - uint32_t offset = {}; - size_t size = {}; - - }; - static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SpecializationInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SpecializationInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ = {} ) - : mapEntryCount( static_cast( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - mapEntryCount = mapEntryCount_; - return *this; - } - - SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT - { - pMapEntries = pMapEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mapEntries_ ) VULKAN_HPP_NOEXCEPT - { - mapEntryCount = static_cast( mapEntries_.size() ); - pMapEntries = mapEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = dataSize_; - return *this; - } - - SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT - { - pData = pData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = data_.size() * sizeof(T); - pData = data_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SpecializationInfo const& ) const = default; -#else - bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( mapEntryCount == rhs.mapEntryCount ) - && ( pMapEntries == rhs.pMapEntries ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t mapEntryCount = {}; - const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {}; - size_t dataSize = {}; - const void* pData = {}; - - }; - static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineShaderStageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo(VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, const char* pName_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineShaderStageCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT - { - stage = stage_; - return *this; - } - - PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT - { - module = module_; - return *this; - } - - PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT - { - pName = pName_; - return *this; - } - - PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT - { - pSpecializationInfo = pSpecializationInfo_; - return *this; - } - - - operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default; -#else - bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( module == rhs.module ) - && ( pName == rhs.pName ) - && ( pSpecializationInfo == rhs.pSpecializationInfo ); - } - - bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex; - VULKAN_HPP_NAMESPACE::ShaderModule module = {}; - const char* pName = {}; - const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {}; - - }; - static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineShaderStageCreateInfo; - }; - - struct ComputePipelineCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ComputePipelineCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT - { - stage = stage_; - return *this; - } - - ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ComputePipelineCreateInfo const& ) const = default; -#else - bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ComputePipelineCreateInfo; - }; - - struct ConformanceVersion - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT - : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ ) - {} - - VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT - : ConformanceVersion( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT - { - major = major_; - return *this; - } - - ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT - { - minor = minor_; - return *this; - } - - ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT - { - subminor = subminor_; - return *this; - } - - ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT - { - patch = patch_; - return *this; - } - - - operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ConformanceVersion const& ) const = default; -#else - bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( major == rhs.major ) - && ( minor == rhs.minor ) - && ( subminor == rhs.subminor ) - && ( patch == rhs.patch ); - } - - bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint8_t major = {}; - uint8_t minor = {}; - uint8_t subminor = {}; - uint8_t patch = {}; - - }; - static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using ConformanceVersionKHR = ConformanceVersion; - - struct CooperativeMatrixPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV(uint32_t MSize_ = {}, uint32_t NSize_ = {}, uint32_t KSize_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice) VULKAN_HPP_NOEXCEPT - : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ ) - {} - - VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CooperativeMatrixPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT - { - MSize = MSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT - { - NSize = NSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT - { - KSize = KSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT - { - AType = AType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT - { - BType = BType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT - { - CType = CType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT - { - DType = DType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT - { - scope = scope_; - return *this; - } - - - operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default; -#else - bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( MSize == rhs.MSize ) - && ( NSize == rhs.NSize ) - && ( KSize == rhs.KSize ) - && ( AType == rhs.AType ) - && ( BType == rhs.BType ) - && ( CType == rhs.CType ) - && ( DType == rhs.DType ) - && ( scope == rhs.scope ); - } - - bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV; - void* pNext = {}; - uint32_t MSize = {}; - uint32_t NSize = {}; - uint32_t KSize = {}; - VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice; - - }; - static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CooperativeMatrixPropertiesNV; - }; - - struct CopyCommandTransformInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT - : transform( transform_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyCommandTransformInfoQCOM( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyCommandTransformInfoQCOM & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - - operator VkCopyCommandTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyCommandTransformInfoQCOM const& ) const = default; -#else - bool operator==( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ); - } - - bool operator!=( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - - }; - static_assert( sizeof( CopyCommandTransformInfoQCOM ) == sizeof( VkCopyCommandTransformInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyCommandTransformInfoQCOM; - }; - - struct CopyDescriptorSet - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, uint32_t srcBinding_ = {}, uint32_t srcArrayElement_ = {}, VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyDescriptorSet( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT - { - srcSet = srcSet_; - return *this; - } - - CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT - { - srcBinding = srcBinding_; - return *this; - } - - CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - srcArrayElement = srcArrayElement_; - return *this; - } - - CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT - { - dstSet = dstSet_; - return *this; - } - - CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - - operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyDescriptorSet const& ) const = default; -#else - bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSet == rhs.srcSet ) - && ( srcBinding == rhs.srcBinding ) - && ( srcArrayElement == rhs.srcArrayElement ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ); - } - - bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {}; - uint32_t srcBinding = {}; - uint32_t srcArrayElement = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - - }; - static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyDescriptorSet; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct D3D12FenceSubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} - - VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : D3D12FenceSubmitInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) - : waitSemaphoreValuesCount( static_cast( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValuesCount = waitSemaphoreValuesCount_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreValues = pWaitSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValuesCount = static_cast( waitSemaphoreValues_.size() ); - pWaitSemaphoreValues = waitSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValuesCount = signalSemaphoreValuesCount_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreValues = pSignalSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValuesCount = static_cast( signalSemaphoreValues_.size() ); - pSignalSemaphoreValues = signalSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default; -#else - bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); - } - - bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreValuesCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValuesCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - - }; - static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = D3D12FenceSubmitInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct DebugMarkerObjectNameInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugMarkerObjectNameInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT - { - object = object_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT - { - pObjectName = pObjectName_; - return *this; - } - - - operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( pObjectName == rhs.pObjectName ); - } - - bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - const char* pObjectName = {}; - - }; - static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerObjectNameInfoEXT; - }; - - struct DebugMarkerObjectTagInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugMarkerObjectTagInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) - : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT - { - object = object_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT - { - tagName = tagName_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tagSize_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT - { - pTag = pTag_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tag_.size() * sizeof(T); - pTag = tag_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); - } - - bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; - - }; - static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerObjectTagInfoEXT; - }; - - struct DebugReportCallbackCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugReportCallbackCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnCallback = pfnCallback_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default; -#else - bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pfnCallback == rhs.pfnCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {}; - PFN_vkDebugReportCallbackEXT pfnCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugReportCallbackCreateInfoEXT; - }; - - struct DebugUtilsObjectNameInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugUtilsObjectNameInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT - { - objectHandle = objectHandle_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT - { - pObjectName = pObjectName_; - return *this; - } - - - operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( pObjectName == rhs.pObjectName ); - } - - bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - const char* pObjectName = {}; - - }; - static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsObjectNameInfoEXT; - }; - - struct DebugUtilsMessengerCallbackDataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, const char* pMessageIdName_ = {}, int32_t messageIdNumber_ = {}, const char* pMessage_ = {}, uint32_t queueLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ = {}, uint32_t cmdBufLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ = {}, uint32_t objectCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_, const char* pMessageIdName_, int32_t messageIdNumber_, const char* pMessage_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueLabels_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & cmdBufLabels_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & objects_ = {} ) - : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( static_cast( queueLabels_.size() ) ), pQueueLabels( queueLabels_.data() ), cmdBufLabelCount( static_cast( cmdBufLabels_.size() ) ), pCmdBufLabels( cmdBufLabels_.data() ), objectCount( static_cast( objects_.size() ) ), pObjects( objects_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT - { - pMessageIdName = pMessageIdName_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT - { - messageIdNumber = messageIdNumber_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT - { - pMessage = pMessage_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT - { - queueLabelCount = queueLabelCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT - { - pQueueLabels = pQueueLabels_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueLabels_ ) VULKAN_HPP_NOEXCEPT - { - queueLabelCount = static_cast( queueLabels_.size() ); - pQueueLabels = queueLabels_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT - { - cmdBufLabelCount = cmdBufLabelCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT - { - pCmdBufLabels = pCmdBufLabels_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT - { - cmdBufLabelCount = static_cast( cmdBufLabels_.size() ); - pCmdBufLabels = cmdBufLabels_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT - { - objectCount = objectCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT - { - pObjects = pObjects_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & objects_ ) VULKAN_HPP_NOEXCEPT - { - objectCount = static_cast( objects_.size() ); - pObjects = objects_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pMessageIdName == rhs.pMessageIdName ) - && ( messageIdNumber == rhs.messageIdNumber ) - && ( pMessage == rhs.pMessage ) - && ( queueLabelCount == rhs.queueLabelCount ) - && ( pQueueLabels == rhs.pQueueLabels ) - && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) - && ( pCmdBufLabels == rhs.pCmdBufLabels ) - && ( objectCount == rhs.objectCount ) - && ( pObjects == rhs.pObjects ); - } - - bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {}; - const char* pMessageIdName = {}; - int32_t messageIdNumber = {}; - const char* pMessage = {}; - uint32_t queueLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {}; - uint32_t cmdBufLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {}; - uint32_t objectCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {}; - - }; - static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsMessengerCallbackDataEXT; - }; - - struct DebugUtilsMessengerCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT - { - messageSeverity = messageSeverity_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT - { - messageType = messageType_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnUserCallback = pfnUserCallback_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( messageSeverity == rhs.messageSeverity ) - && ( messageType == rhs.messageType ) - && ( pfnUserCallback == rhs.pfnUserCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {}; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsMessengerCreateInfoEXT; - }; - - struct DebugUtilsObjectTagInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DebugUtilsObjectTagInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) - : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT - { - objectHandle = objectHandle_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT - { - tagName = tagName_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tagSize_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT - { - pTag = pTag_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tag_.size() * sizeof(T); - pTag = tag_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); - } - - bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; - - }; - static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsObjectTagInfoEXT; - }; - - struct DedicatedAllocationBufferCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : DedicatedAllocationBufferCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocation = dedicatedAllocation_; - return *this; - } - - - operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); - } - - bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; - - }; - static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationBufferCreateInfoNV; - }; - - struct DedicatedAllocationImageCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocation = dedicatedAllocation_; - return *this; - } - - - operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); - } - - bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; - - }; - static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationImageCreateInfoNV; - }; - - struct DedicatedAllocationMemoryAllocateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : DedicatedAllocationMemoryAllocateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationMemoryAllocateInfoNV; - }; - - struct DescriptorPoolSize - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), descriptorCount( descriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorPoolSize( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - - operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolSize const& ) const = default; -#else - bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( type == rhs.type ) - && ( descriptorCount == rhs.descriptorCount ); - } - - bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; - - }; - static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorPoolCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) - : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT - { - maxSets = maxSets_; - return *this; - } - - DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT - { - poolSizeCount = poolSizeCount_; - return *this; - } - - DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT - { - pPoolSizes = pPoolSizes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) VULKAN_HPP_NOEXCEPT - { - poolSizeCount = static_cast( poolSizes_.size() ); - pPoolSizes = poolSizes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolCreateInfo const& ) const = default; -#else - bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( maxSets == rhs.maxSets ) - && ( poolSizeCount == rhs.poolSizeCount ) - && ( pPoolSizes == rhs.pPoolSizes ); - } - - bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {}; - uint32_t maxSets = {}; - uint32_t poolSizeCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {}; - - }; - static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorPoolCreateInfo; - }; - - struct DescriptorPoolInlineUniformBlockCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorPoolInlineUniformBlockCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT - { - maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_; - return *this; - } - - - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default; -#else - bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings ); - } - - bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; - const void* pNext = {}; - uint32_t maxInlineUniformBlockBindings = {}; - - }; - static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT; - }; - - class DescriptorPool - { - public: - using CType = VkDescriptorPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; - - public: - VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool( descriptorPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT - { - m_descriptorPool = descriptorPool; - return *this; - } -#endif - - DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPool const& ) const = default; -#else - bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool == rhs.m_descriptorPool; - } - - bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool != rhs.m_descriptorPool; - } - - bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool < rhs.m_descriptorPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool == VK_NULL_HANDLE; - } - - private: - VkDescriptorPool m_descriptorPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class DescriptorSetLayout - { - public: - using CType = VkDescriptorSetLayout; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; - - public: - VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout( descriptorSetLayout ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT - { - m_descriptorSetLayout = descriptorSetLayout; - return *this; - } -#endif - - DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorSetLayout = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayout const& ) const = default; -#else - bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout == rhs.m_descriptorSetLayout; - } - - bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout != rhs.m_descriptorSetLayout; - } - - bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout < rhs.m_descriptorSetLayout; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout == VK_NULL_HANDLE; - } - - private: - VkDescriptorSetLayout m_descriptorSetLayout; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DescriptorSetAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetAllocateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) - : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT - { - descriptorPool = descriptorPool_; - return *this; - } - - DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = descriptorSetCount_; - return *this; - } - - DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pSetLayouts = pSetLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = static_cast( setLayouts_.size() ); - pSetLayouts = setLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetAllocateInfo const& ) const = default; -#else - bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorPool == rhs.descriptorPool ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pSetLayouts == rhs.pSetLayouts ); - } - - bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {}; - uint32_t descriptorSetCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; - - }; - static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetAllocateInfo; - }; - - struct DescriptorSetLayoutBinding - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding(uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetLayoutBinding( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBinding( uint32_t binding_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) - : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT - { - stageFlags = stageFlags_; - return *this; - } - - DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT - { - pImmutableSamplers = pImmutableSamplers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( immutableSamplers_.size() ); - pImmutableSamplers = immutableSamplers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutBinding const& ) const = default; -#else - bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( descriptorType == rhs.descriptorType ) - && ( descriptorCount == rhs.descriptorCount ) - && ( stageFlags == rhs.stageFlags ) - && ( pImmutableSamplers == rhs.pImmutableSamplers ); - } - - bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorSetLayoutBindingFlagsCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT - : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetLayoutBindingFlagsCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindingFlags_ ) - : bindingCount( static_cast( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = bindingCount_; - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT - { - pBindingFlags = pBindingFlags_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = static_cast( bindingFlags_.size() ); - pBindingFlags = bindingFlags_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default; -#else - bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindingFlags == rhs.pBindingFlags ); - } - - bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; - const void* pNext = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutBindingFlagsCreateInfo; - }; - using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo; - - struct DescriptorSetLayoutCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetLayoutCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindings_ ) - : flags( flags_ ), bindingCount( static_cast( bindings_.size() ) ), pBindings( bindings_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = bindingCount_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT - { - pBindings = pBindings_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindings_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = static_cast( bindings_.size() ); - pBindings = bindings_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default; -#else - bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindings == rhs.pBindings ); - } - - bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutCreateInfo; - }; - - struct DescriptorSetLayoutSupport - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT - : supported( supported_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetLayoutSupport( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutSupport const& ) const = default; -#else - bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supported == rhs.supported ); - } - - bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supported = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutSupport; - }; - using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport; - - struct DescriptorSetVariableDescriptorCountAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetVariableDescriptorCountAllocateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) - : descriptorSetCount( static_cast( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = descriptorSetCount_; - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorCounts = pDescriptorCounts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = static_cast( descriptorCounts_.size() ); - pDescriptorCounts = descriptorCounts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default; -#else - bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pDescriptorCounts == rhs.pDescriptorCounts ); - } - - bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; - const void* pNext = {}; - uint32_t descriptorSetCount = {}; - const uint32_t* pDescriptorCounts = {}; - - }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetVariableDescriptorCountAllocateInfo; - }; - using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo; - - struct DescriptorSetVariableDescriptorCountLayoutSupport - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : maxVariableDescriptorCount( maxVariableDescriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorSetVariableDescriptorCountLayoutSupport( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default; -#else - bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount ); - } - - bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; - void* pNext = {}; - uint32_t maxVariableDescriptorCount = {}; - - }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetVariableDescriptorCountLayoutSupport; - }; - using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport; - - struct DescriptorUpdateTemplateEntry - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry(uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, size_t offset_ = {}, size_t stride_ = {}) VULKAN_HPP_NOEXCEPT - : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorUpdateTemplateEntry( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( offset == rhs.offset ) - && ( stride == rhs.stride ); - } - - bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - size_t offset = {}; - size_t stride = {}; - - }; - static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry; - - struct DescriptorUpdateTemplateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, uint32_t descriptorUpdateEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = {}, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorUpdateEntries_, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {} ) - : flags( flags_ ), descriptorUpdateEntryCount( static_cast( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorUpdateEntryCount = descriptorUpdateEntryCount_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorUpdateEntries = pDescriptorUpdateEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT - { - descriptorUpdateEntryCount = static_cast( descriptorUpdateEntries_.size() ); - pDescriptorUpdateEntries = descriptorUpdateEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT - { - templateType = templateType_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetLayout = descriptorSetLayout_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT - { - pipelineLayout = pipelineLayout_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT - { - set = set_; - return *this; - } - - - operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) - && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) - && ( templateType == rhs.templateType ) - && ( descriptorSetLayout == rhs.descriptorSetLayout ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipelineLayout == rhs.pipelineLayout ) - && ( set == rhs.set ); - } - - bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {}; - uint32_t descriptorUpdateEntryCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet; - VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; - uint32_t set = {}; - - }; - static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorUpdateTemplateCreateInfo; - }; - using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo; - - struct DeviceQueueCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceQueueCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT - { - queueCount = queueCount_; - return *this; - } - - DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT - { - pQueuePriorities = pQueuePriorities_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT - { - queueCount = static_cast( queuePriorities_.size() ); - pQueuePriorities = queuePriorities_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueCreateInfo const& ) const = default; -#else - bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueCount == rhs.queueCount ) - && ( pQueuePriorities == rhs.pQueuePriorities ); - } - - bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueCount = {}; - const float* pQueuePriorities = {}; - - }; - static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueCreateInfo; - }; - - struct PhysicalDeviceFeatures - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {}) VULKAN_HPP_NOEXCEPT - : robustBufferAccess( robustBufferAccess_ ), fullDrawIndexUint32( fullDrawIndexUint32_ ), imageCubeArray( imageCubeArray_ ), independentBlend( independentBlend_ ), geometryShader( geometryShader_ ), tessellationShader( tessellationShader_ ), sampleRateShading( sampleRateShading_ ), dualSrcBlend( dualSrcBlend_ ), logicOp( logicOp_ ), multiDrawIndirect( multiDrawIndirect_ ), drawIndirectFirstInstance( drawIndirectFirstInstance_ ), depthClamp( depthClamp_ ), depthBiasClamp( depthBiasClamp_ ), fillModeNonSolid( fillModeNonSolid_ ), depthBounds( depthBounds_ ), wideLines( wideLines_ ), largePoints( largePoints_ ), alphaToOne( alphaToOne_ ), multiViewport( multiViewport_ ), samplerAnisotropy( samplerAnisotropy_ ), textureCompressionETC2( textureCompressionETC2_ ), textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ), textureCompressionBC( textureCompressionBC_ ), occlusionQueryPrecise( occlusionQueryPrecise_ ), pipelineStatisticsQuery( pipelineStatisticsQuery_ ), vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ), fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ), shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ), shaderImageGatherExtended( shaderImageGatherExtended_ ), shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ), shaderStorageImageMultisample( shaderStorageImageMultisample_ ), shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ), shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ), shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ), shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ), shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ), shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ), shaderClipDistance( shaderClipDistance_ ), shaderCullDistance( shaderCullDistance_ ), shaderFloat64( shaderFloat64_ ), shaderInt64( shaderInt64_ ), shaderInt16( shaderInt16_ ), shaderResourceResidency( shaderResourceResidency_ ), shaderResourceMinLod( shaderResourceMinLod_ ), sparseBinding( sparseBinding_ ), sparseResidencyBuffer( sparseResidencyBuffer_ ), sparseResidencyImage2D( sparseResidencyImage2D_ ), sparseResidencyImage3D( sparseResidencyImage3D_ ), sparseResidency2Samples( sparseResidency2Samples_ ), sparseResidency4Samples( sparseResidency4Samples_ ), sparseResidency8Samples( sparseResidency8Samples_ ), sparseResidency16Samples( sparseResidency16Samples_ ), sparseResidencyAliased( sparseResidencyAliased_ ), variableMultisampleRate( variableMultisampleRate_ ), inheritedQueries( inheritedQueries_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT - { - robustBufferAccess = robustBufferAccess_; - return *this; - } - - PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT - { - fullDrawIndexUint32 = fullDrawIndexUint32_; - return *this; - } - - PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT - { - imageCubeArray = imageCubeArray_; - return *this; - } - - PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT - { - independentBlend = independentBlend_; - return *this; - } - - PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT - { - geometryShader = geometryShader_; - return *this; - } - - PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - tessellationShader = tessellationShader_; - return *this; - } - - PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT - { - sampleRateShading = sampleRateShading_; - return *this; - } - - PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT - { - dualSrcBlend = dualSrcBlend_; - return *this; - } - - PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT - { - logicOp = logicOp_; - return *this; - } - - PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT - { - multiDrawIndirect = multiDrawIndirect_; - return *this; - } - - PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT - { - drawIndirectFirstInstance = drawIndirectFirstInstance_; - return *this; - } - - PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthClamp = depthClamp_; - return *this; - } - - PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasClamp = depthBiasClamp_; - return *this; - } - - PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT - { - fillModeNonSolid = fillModeNonSolid_; - return *this; - } - - PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT - { - depthBounds = depthBounds_; - return *this; - } - - PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT - { - wideLines = wideLines_; - return *this; - } - - PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT - { - largePoints = largePoints_; - return *this; - } - - PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT - { - alphaToOne = alphaToOne_; - return *this; - } - - PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT - { - multiViewport = multiViewport_; - return *this; - } - - PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT - { - samplerAnisotropy = samplerAnisotropy_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionETC2 = textureCompressionETC2_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionASTC_LDR = textureCompressionASTC_LDR_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionBC = textureCompressionBC_; - return *this; - } - - PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT - { - occlusionQueryPrecise = occlusionQueryPrecise_; - return *this; - } - - PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatisticsQuery = pipelineStatisticsQuery_; - return *this; - } - - PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT - { - vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_; - return *this; - } - - PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT - { - fragmentStoresAndAtomics = fragmentStoresAndAtomics_; - return *this; - } - - PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT - { - shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_; - return *this; - } - - PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageGatherExtended = shaderImageGatherExtended_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageMultisample = shaderStorageImageMultisample_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_; - return *this; - } - - PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT - { - shaderClipDistance = shaderClipDistance_; - return *this; - } - - PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT - { - shaderCullDistance = shaderCullDistance_; - return *this; - } - - PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat64 = shaderFloat64_; - return *this; - } - - PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt64 = shaderInt64_; - return *this; - } - - PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt16 = shaderInt16_; - return *this; - } - - PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT - { - shaderResourceResidency = shaderResourceResidency_; - return *this; - } - - PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT - { - shaderResourceMinLod = shaderResourceMinLod_; - return *this; - } - - PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT - { - sparseBinding = sparseBinding_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyBuffer = sparseResidencyBuffer_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyImage2D = sparseResidencyImage2D_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyImage3D = sparseResidencyImage3D_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency2Samples = sparseResidency2Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency4Samples = sparseResidency4Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency8Samples = sparseResidency8Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency16Samples = sparseResidency16Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyAliased = sparseResidencyAliased_; - return *this; - } - - PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT - { - variableMultisampleRate = variableMultisampleRate_; - return *this; - } - - PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT - { - inheritedQueries = inheritedQueries_; - return *this; - } - - - operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( robustBufferAccess == rhs.robustBufferAccess ) - && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) - && ( imageCubeArray == rhs.imageCubeArray ) - && ( independentBlend == rhs.independentBlend ) - && ( geometryShader == rhs.geometryShader ) - && ( tessellationShader == rhs.tessellationShader ) - && ( sampleRateShading == rhs.sampleRateShading ) - && ( dualSrcBlend == rhs.dualSrcBlend ) - && ( logicOp == rhs.logicOp ) - && ( multiDrawIndirect == rhs.multiDrawIndirect ) - && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) - && ( depthClamp == rhs.depthClamp ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( fillModeNonSolid == rhs.fillModeNonSolid ) - && ( depthBounds == rhs.depthBounds ) - && ( wideLines == rhs.wideLines ) - && ( largePoints == rhs.largePoints ) - && ( alphaToOne == rhs.alphaToOne ) - && ( multiViewport == rhs.multiViewport ) - && ( samplerAnisotropy == rhs.samplerAnisotropy ) - && ( textureCompressionETC2 == rhs.textureCompressionETC2 ) - && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) - && ( textureCompressionBC == rhs.textureCompressionBC ) - && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) - && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) - && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) - && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) - && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) - && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) - && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) - && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) - && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) - && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) - && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) - && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) - && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) - && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) - && ( shaderClipDistance == rhs.shaderClipDistance ) - && ( shaderCullDistance == rhs.shaderCullDistance ) - && ( shaderFloat64 == rhs.shaderFloat64 ) - && ( shaderInt64 == rhs.shaderInt64 ) - && ( shaderInt16 == rhs.shaderInt16 ) - && ( shaderResourceResidency == rhs.shaderResourceResidency ) - && ( shaderResourceMinLod == rhs.shaderResourceMinLod ) - && ( sparseBinding == rhs.sparseBinding ) - && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) - && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) - && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) - && ( sparseResidency2Samples == rhs.sparseResidency2Samples ) - && ( sparseResidency4Samples == rhs.sparseResidency4Samples ) - && ( sparseResidency8Samples == rhs.sparseResidency8Samples ) - && ( sparseResidency16Samples == rhs.sparseResidency16Samples ) - && ( sparseResidencyAliased == rhs.sparseResidencyAliased ) - && ( variableMultisampleRate == rhs.variableMultisampleRate ) - && ( inheritedQueries == rhs.inheritedQueries ); - } - - bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {}; - VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOp = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {}; - VULKAN_HPP_NAMESPACE::Bool32 wideLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 largePoints = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {}; - - }; - static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DeviceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceCreateInfo(VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, uint32_t queueCreateInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueCreateInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {} ) - : flags( flags_ ), queueCreateInfoCount( static_cast( queueCreateInfos_.size() ) ), pQueueCreateInfos( queueCreateInfos_.data() ), enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ), pEnabledFeatures( pEnabledFeatures_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - queueCreateInfoCount = queueCreateInfoCount_; - return *this; - } - - DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT - { - pQueueCreateInfos = pQueueCreateInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT - { - queueCreateInfoCount = static_cast( queueCreateInfos_.size() ); - pQueueCreateInfos = queueCreateInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = enabledLayerCount_; - return *this; - } - - DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledLayerNames = ppEnabledLayerNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); - ppEnabledLayerNames = pEnabledLayerNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = enabledExtensionCount_; - return *this; - } - - DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledExtensionNames = ppEnabledExtensionNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); - ppEnabledExtensionNames = pEnabledExtensionNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pEnabledFeatures = pEnabledFeatures_; - return *this; - } - - - operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceCreateInfo const& ) const = default; -#else - bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) - && ( pQueueCreateInfos == rhs.pQueueCreateInfos ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ) - && ( pEnabledFeatures == rhs.pEnabledFeatures ); - } - - bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {}; - uint32_t queueCreateInfoCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {}; - uint32_t enabledLayerCount = {}; - const char* const * ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const * ppEnabledExtensionNames = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {}; - - }; - static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceCreateInfo; - }; - - struct DeviceDeviceMemoryReportCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceDeviceMemoryReportCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnUserCallback = pfnUserCallback_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default; -#else - bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pfnUserCallback == rhs.pfnUserCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; - PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceDeviceMemoryReportCreateInfoEXT; - }; - - struct DeviceDiagnosticsConfigCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default; -#else - bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {}; - - }; - static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceDiagnosticsConfigCreateInfoNV; - }; - - struct DeviceEventInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT - : deviceEvent( deviceEvent_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceEventInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT - { - deviceEvent = deviceEvent_; - return *this; - } - - - operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceEventInfoEXT const& ) const = default; -#else - bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceEvent == rhs.deviceEvent ); - } - - bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug; - - }; - static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceEventInfoEXT; - }; - - struct DeviceGroupBindSparseInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT - : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupBindSparseInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT - { - resourceDeviceIndex = resourceDeviceIndex_; - return *this; - } - - DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT - { - memoryDeviceIndex = memoryDeviceIndex_; - return *this; - } - - - operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default; -#else - bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) - && ( memoryDeviceIndex == rhs.memoryDeviceIndex ); - } - - bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo; - const void* pNext = {}; - uint32_t resourceDeviceIndex = {}; - uint32_t memoryDeviceIndex = {}; - - }; - static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupBindSparseInfo; - }; - using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo; - - struct DeviceGroupCommandBufferBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default; -#else - bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupCommandBufferBeginInfo; - }; - using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo; - - class DisplayKHR - { - public: - using CType = VkDisplayKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; - - public: - VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT - : m_displayKHR( displayKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = displayKHR; - return *this; - } -#endif - - DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayKHR const& ) const = default; -#else - bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == rhs.m_displayKHR; - } - - bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != rhs.m_displayKHR; - } - - bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR < rhs.m_displayKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == VK_NULL_HANDLE; - } - - private: - VkDisplayKHR m_displayKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct PerformanceConfigurationAcquireInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT - : type( type_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceConfigurationAcquireInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - - operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ); - } - - bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated; - - }; - static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceConfigurationAcquireInfoINTEL; - }; - - class PerformanceConfigurationINTEL - { - public: - using CType = VkPerformanceConfigurationINTEL; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT - { - m_performanceConfigurationINTEL = performanceConfigurationINTEL; - return *this; - } -#endif - - PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_performanceConfigurationINTEL = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceConfigurationINTEL const& ) const = default; -#else - bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL; - } - - bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL; - } - - bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL == VK_NULL_HANDLE; - } - - private: - VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct MemoryAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryAllocateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT - { - allocationSize = allocationSize_; - return *this; - } - - MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT - { - memoryTypeIndex = memoryTypeIndex_; - return *this; - } - - - operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryAllocateInfo const& ) const = default; -#else - bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeIndex == rhs.memoryTypeIndex ); - } - - bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeIndex = {}; - - }; - static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryAllocateInfo; - }; - - class DeferredOperationKHR - { - public: - using CType = VkDeferredOperationKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR( deferredOperationKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT - { - m_deferredOperationKHR = deferredOperationKHR; - return *this; - } -#endif - - DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_deferredOperationKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeferredOperationKHR const& ) const = default; -#else - bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR == rhs.m_deferredOperationKHR; - } - - bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR != rhs.m_deferredOperationKHR; - } - - bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR < rhs.m_deferredOperationKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR == VK_NULL_HANDLE; - } - - private: - VkDeferredOperationKHR m_deferredOperationKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class PipelineCache - { - public: - using CType = VkPipelineCache; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; - - public: - VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache( pipelineCache ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT - { - m_pipelineCache = pipelineCache; - return *this; - } -#endif - - PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipelineCache = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCache const& ) const = default; -#else - bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache == rhs.m_pipelineCache; - } - - bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache != rhs.m_pipelineCache; - } - - bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache < rhs.m_pipelineCache; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache == VK_NULL_HANDLE; - } - - private: - VkPipelineCache m_pipelineCache; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct EventCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : EventCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( EventCreateInfo const& ) const = default; -#else - bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {}; - - }; - static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = EventCreateInfo; - }; - - struct FenceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : FenceCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceCreateInfo const& ) const = default; -#else - bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {}; - - }; - static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceCreateInfo; - }; - - struct FramebufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferCreateInfo(VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : FramebufferCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {} ) - : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT - { - layers = layers_; - return *this; - } - - - operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferCreateInfo const& ) const = default; -#else - bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( renderPass == rhs.renderPass ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layers == rhs.layers ); - } - - bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layers = {}; - - }; - static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferCreateInfo; - }; - - struct VertexInputBindingDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - : VertexInputBindingDescription( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT - { - inputRate = inputRate_; - return *this; - } - - - operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputBindingDescription const& ) const = default; -#else - bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( stride == rhs.stride ) - && ( inputRate == rhs.inputRate ); - } - - bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - uint32_t stride = {}; - VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex; - - }; - static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct VertexInputAttributeDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription(uint32_t location_ = {}, uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t offset_ = {}) VULKAN_HPP_NOEXCEPT - : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - : VertexInputAttributeDescription( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT - { - location = location_; - return *this; - } - - VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputAttributeDescription const& ) const = default; -#else - bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( location == rhs.location ) - && ( binding == rhs.binding ) - && ( format == rhs.format ) - && ( offset == rhs.offset ); - } - - bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t location = {}; - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint32_t offset = {}; - - }; - static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineVertexInputStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, uint32_t vertexBindingDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ = {}, uint32_t vertexAttributeDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineVertexInputStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDescriptions_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexAttributeDescriptions_ = {} ) - : flags( flags_ ), vertexBindingDescriptionCount( static_cast( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDescriptionCount = vertexBindingDescriptionCount_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - pVertexBindingDescriptions = pVertexBindingDescriptions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDescriptionCount = static_cast( vertexBindingDescriptions_.size() ); - pVertexBindingDescriptions = vertexBindingDescriptions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - pVertexAttributeDescriptions = pVertexAttributeDescriptions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeDescriptionCount = static_cast( vertexAttributeDescriptions_.size() ); - pVertexAttributeDescriptions = vertexAttributeDescriptions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) - && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) - && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) - && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions ); - } - - bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {}; - uint32_t vertexBindingDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {}; - uint32_t vertexAttributeDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {}; - - }; - static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineVertexInputStateCreateInfo; - }; - - struct PipelineInputAssemblyStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT - { - topology = topology_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT - { - primitiveRestartEnable = primitiveRestartEnable_; - return *this; - } - - - operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( topology == rhs.topology ) - && ( primitiveRestartEnable == rhs.primitiveRestartEnable ); - } - - bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList; - VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {}; - - }; - static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineInputAssemblyStateCreateInfo; - }; - - struct PipelineTessellationStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), patchControlPoints( patchControlPoints_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineTessellationStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT - { - patchControlPoints = patchControlPoints_; - return *this; - } - - - operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( patchControlPoints == rhs.patchControlPoints ); - } - - bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {}; - uint32_t patchControlPoints = {}; - - }; - static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineTessellationStateCreateInfo; - }; - - struct PipelineViewportStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ = {}, uint32_t scissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ = {} ) - : flags( flags_ ), viewportCount( static_cast( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast( scissors_.size() ) ), pScissors( scissors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT - { - pViewports = pViewports_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewports_.size() ); - pViewports = viewports_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT - { - scissorCount = scissorCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT - { - pScissors = pScissors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ ) VULKAN_HPP_NOEXCEPT - { - scissorCount = static_cast( scissors_.size() ); - pScissors = scissors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewports == rhs.pViewports ) - && ( scissorCount == rhs.scissorCount ) - && ( pScissors == rhs.pScissors ); - } - - bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {}; - uint32_t scissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {}; - - }; - static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportStateCreateInfo; - }; - - struct PipelineRasterizationStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, float depthBiasConstantFactor_ = {}, float depthBiasClamp_ = {}, float depthBiasSlopeFactor_ = {}, float lineWidth_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClampEnable = depthClampEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT - { - rasterizerDiscardEnable = rasterizerDiscardEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT - { - polygonMode = polygonMode_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT - { - cullMode = cullMode_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT - { - frontFace = frontFace_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasEnable = depthBiasEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasConstantFactor = depthBiasConstantFactor_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasClamp = depthBiasClamp_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasSlopeFactor = depthBiasSlopeFactor_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT - { - lineWidth = lineWidth_; - return *this; - } - - - operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClampEnable == rhs.depthClampEnable ) - && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) - && ( polygonMode == rhs.polygonMode ) - && ( cullMode == rhs.cullMode ) - && ( frontFace == rhs.frontFace ) - && ( depthBiasEnable == rhs.depthBiasEnable ) - && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) - && ( lineWidth == rhs.lineWidth ); - } - - bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {}; - VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill; - VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {}; - VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {}; - float depthBiasConstantFactor = {}; - float depthBiasClamp = {}; - float depthBiasSlopeFactor = {}; - float lineWidth = {}; - - }; - static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateCreateInfo; - }; - - struct PipelineMultisampleStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, float minSampleShading_ = {}, const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineMultisampleStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationSamples = rasterizationSamples_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT - { - sampleShadingEnable = sampleShadingEnable_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT - { - minSampleShading = minSampleShading_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT - { - pSampleMask = pSampleMask_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT - { - alphaToCoverageEnable = alphaToCoverageEnable_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT - { - alphaToOneEnable = alphaToOneEnable_; - return *this; - } - - - operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( sampleShadingEnable == rhs.sampleShadingEnable ) - && ( minSampleShading == rhs.minSampleShading ) - && ( pSampleMask == rhs.pSampleMask ) - && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) - && ( alphaToOneEnable == rhs.alphaToOneEnable ); - } - - bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {}; - float minSampleShading = {}; - const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {}; - - }; - static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineMultisampleStateCreateInfo; - }; - - struct StencilOpState - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StencilOpState(VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, uint32_t compareMask_ = {}, uint32_t writeMask_ = {}, uint32_t reference_ = {}) VULKAN_HPP_NOEXCEPT - : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ ) - {} - - VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - : StencilOpState( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT - { - failOp = failOp_; - return *this; - } - - StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT - { - passOp = passOp_; - return *this; - } - - StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT - { - depthFailOp = depthFailOp_; - return *this; - } - - StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT - { - compareOp = compareOp_; - return *this; - } - - StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT - { - compareMask = compareMask_; - return *this; - } - - StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT - { - writeMask = writeMask_; - return *this; - } - - StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT - { - reference = reference_; - return *this; - } - - - operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StencilOpState const& ) const = default; -#else - bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( failOp == rhs.failOp ) - && ( passOp == rhs.passOp ) - && ( depthFailOp == rhs.depthFailOp ) - && ( compareOp == rhs.compareOp ) - && ( compareMask == rhs.compareMask ) - && ( writeMask == rhs.writeMask ) - && ( reference == rhs.reference ); - } - - bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - uint32_t compareMask = {}; - uint32_t writeMask = {}; - uint32_t reference = {}; - - }; - static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineDepthStencilStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, float minDepthBounds_ = {}, float maxDepthBounds_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineDepthStencilStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthTestEnable = depthTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthWriteEnable = depthWriteEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT - { - depthCompareOp = depthCompareOp_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthBoundsTestEnable = depthBoundsTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - stencilTestEnable = stencilTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT - { - front = front_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT - { - back = back_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT - { - minDepthBounds = minDepthBounds_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT - { - maxDepthBounds = maxDepthBounds_; - return *this; - } - - - operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthTestEnable == rhs.depthTestEnable ) - && ( depthWriteEnable == rhs.depthWriteEnable ) - && ( depthCompareOp == rhs.depthCompareOp ) - && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) - && ( stencilTestEnable == rhs.stencilTestEnable ) - && ( front == rhs.front ) - && ( back == rhs.back ) - && ( minDepthBounds == rhs.minDepthBounds ) - && ( maxDepthBounds == rhs.maxDepthBounds ); - } - - bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {}; - VULKAN_HPP_NAMESPACE::StencilOpState front = {}; - VULKAN_HPP_NAMESPACE::StencilOpState back = {}; - float minDepthBounds = {}; - float maxDepthBounds = {}; - - }; - static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDepthStencilStateCreateInfo; - }; - - struct PipelineColorBlendAttachmentState - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState(VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {}) VULKAN_HPP_NOEXCEPT - : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineColorBlendAttachmentState( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT - { - blendEnable = blendEnable_; - return *this; - } - - PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - srcColorBlendFactor = srcColorBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - dstColorBlendFactor = dstColorBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT - { - colorBlendOp = colorBlendOp_; - return *this; - } - - PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - srcAlphaBlendFactor = srcAlphaBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - dstAlphaBlendFactor = dstAlphaBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT - { - alphaBlendOp = alphaBlendOp_; - return *this; - } - - PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT - { - colorWriteMask = colorWriteMask_; - return *this; - } - - - operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default; -#else - bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( blendEnable == rhs.blendEnable ) - && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) - && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) - && ( colorBlendOp == rhs.colorBlendOp ) - && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) - && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) - && ( alphaBlendOp == rhs.alphaBlendOp ) - && ( colorWriteMask == rhs.colorWriteMask ); - } - - bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {}; - VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {}; - - }; - static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineColorBlendStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ = {}, std::array const& blendConstants_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineColorBlendStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_, VULKAN_HPP_NAMESPACE::LogicOp logicOp_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, std::array const& blendConstants_ = {} ) - : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT - { - logicOpEnable = logicOpEnable_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT - { - logicOp = logicOp_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineColorBlendStateCreateInfo & setBlendConstants( std::array blendConstants_ ) VULKAN_HPP_NOEXCEPT - { - blendConstants = blendConstants_; - return *this; - } - - - operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( logicOpEnable == rhs.logicOpEnable ) - && ( logicOp == rhs.logicOp ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( blendConstants == rhs.blendConstants ); - } - - bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {}; - VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D blendConstants = {}; - - }; - static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineColorBlendStateCreateInfo; - }; - - struct PipelineDynamicStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineDynamicStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) - : flags( flags_ ), dynamicStateCount( static_cast( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT - { - dynamicStateCount = dynamicStateCount_; - return *this; - } - - PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicStates = pDynamicStates_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT - { - dynamicStateCount = static_cast( dynamicStates_.size() ); - pDynamicStates = dynamicStates_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dynamicStateCount == rhs.dynamicStateCount ) - && ( pDynamicStates == rhs.pDynamicStates ); - } - - bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {}; - uint32_t dynamicStateCount = {}; - const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {}; - - }; - static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDynamicStateCreateInfo; - }; - - struct GraphicsPipelineCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : GraphicsPipelineCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT - { - pVertexInputState = pVertexInputState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT - { - pInputAssemblyState = pInputAssemblyState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT - { - pTessellationState = pTessellationState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT - { - pViewportState = pViewportState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT - { - pRasterizationState = pRasterizationState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT - { - pMultisampleState = pMultisampleState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilState = pDepthStencilState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT - { - pColorBlendState = pColorBlendState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicState = pDynamicState_; - return *this; - } - - GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default; -#else - bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( pVertexInputState == rhs.pVertexInputState ) - && ( pInputAssemblyState == rhs.pInputAssemblyState ) - && ( pTessellationState == rhs.pTessellationState ) - && ( pViewportState == rhs.pViewportState ) - && ( pRasterizationState == rhs.pRasterizationState ) - && ( pMultisampleState == rhs.pMultisampleState ) - && ( pDepthStencilState == rhs.pDepthStencilState ) - && ( pColorBlendState == rhs.pColorBlendState ) - && ( pDynamicState == rhs.pDynamicState ) - && ( layout == rhs.layout ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {}; - const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {}; - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {}; - const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsPipelineCreateInfo; - }; - - struct ImageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCreateInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, uint32_t mipLevels_ = {}, uint32_t arrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), initialLayout( initialLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageType imageType_, VULKAN_HPP_NAMESPACE::Format format_, VULKAN_HPP_NAMESPACE::Extent3D extent_, uint32_t mipLevels_, uint32_t arrayLayers_, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_, VULKAN_HPP_NAMESPACE::ImageTiling tiling_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) - : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), initialLayout( initialLayout_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT - { - imageType = imageType_; - return *this; - } - - ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT - { - mipLevels = mipLevels_; - return *this; - } - - ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT - { - arrayLayers = arrayLayers_; - return *this; - } - - ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - - operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCreateInfo const& ) const = default; -#else - bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( imageType == rhs.imageType ) - && ( format == rhs.format ) - && ( extent == rhs.extent ) - && ( mipLevels == rhs.mipLevels ) - && ( arrayLayers == rhs.arrayLayers ) - && ( samples == rhs.samples ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( initialLayout == rhs.initialLayout ); - } - - bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - uint32_t mipLevels = {}; - uint32_t arrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageCreateInfo; - }; - - struct ImageViewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewCreateInfo(VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageViewCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT - { - viewType = viewType_; - return *this; - } - - ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT - { - components = components_; - return *this; - } - - ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT - { - subresourceRange = subresourceRange_; - return *this; - } - - - operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewCreateInfo const& ) const = default; -#else - bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( image == rhs.image ) - && ( viewType == rhs.viewType ) - && ( format == rhs.format ) - && ( components == rhs.components ) - && ( subresourceRange == rhs.subresourceRange ); - } - - bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; - - }; - static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewCreateInfo; - }; - - struct IndirectCommandsLayoutTokenNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup, uint32_t stream_ = {}, uint32_t offset_ = {}, uint32_t vertexBindingUnit_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {}, uint32_t pushconstantOffset_ = {}, uint32_t pushconstantSize_ = {}, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {}, uint32_t indexTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ = {}, const uint32_t* pIndexTypeValues_ = {}) VULKAN_HPP_NOEXCEPT - : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( indexTypeCount_ ), pIndexTypes( pIndexTypes_ ), pIndexTypeValues( pIndexTypeValues_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT - : IndirectCommandsLayoutTokenNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_, uint32_t stream_, uint32_t offset_, uint32_t vertexBindingUnit_, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_, uint32_t pushconstantOffset_, uint32_t pushconstantSize_, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ = {} ) - : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( static_cast( indexTypes_.size() ) ), pIndexTypes( indexTypes_.data() ), pIndexTypeValues( indexTypeValues_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() ); -#else - if ( indexTypes_.size() != indexTypeValues_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT - { - tokenType = tokenType_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT - { - stream = stream_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingUnit = vertexBindingUnit_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexDynamicStride = vertexDynamicStride_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantPipelineLayout = pushconstantPipelineLayout_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantShaderStageFlags = pushconstantShaderStageFlags_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantOffset = pushconstantOffset_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantSize = pushconstantSize_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT - { - indirectStateFlags = indirectStateFlags_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = indexTypeCount_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT - { - pIndexTypes = pIndexTypes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = static_cast( indexTypes_.size() ); - pIndexTypes = indexTypes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT - { - pIndexTypeValues = pIndexTypeValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = static_cast( indexTypeValues_.size() ); - pIndexTypeValues = indexTypeValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( tokenType == rhs.tokenType ) - && ( stream == rhs.stream ) - && ( offset == rhs.offset ) - && ( vertexBindingUnit == rhs.vertexBindingUnit ) - && ( vertexDynamicStride == rhs.vertexDynamicStride ) - && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout ) - && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags ) - && ( pushconstantOffset == rhs.pushconstantOffset ) - && ( pushconstantSize == rhs.pushconstantSize ) - && ( indirectStateFlags == rhs.indirectStateFlags ) - && ( indexTypeCount == rhs.indexTypeCount ) - && ( pIndexTypes == rhs.pIndexTypes ) - && ( pIndexTypeValues == rhs.pIndexTypeValues ); - } - - bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup; - uint32_t stream = {}; - uint32_t offset = {}; - uint32_t vertexBindingUnit = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {}; - uint32_t pushconstantOffset = {}; - uint32_t pushconstantSize = {}; - VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {}; - uint32_t indexTypeCount = {}; - const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {}; - const uint32_t* pIndexTypeValues = {}; - - }; - static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IndirectCommandsLayoutTokenNV; - }; - - struct IndirectCommandsLayoutCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t tokenCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ = {}, uint32_t streamCount_ = {}, const uint32_t* pStreamStrides_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tokens_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT - { - tokenCount = tokenCount_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT - { - pTokens = pTokens_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tokens_ ) VULKAN_HPP_NOEXCEPT - { - tokenCount = static_cast( tokens_.size() ); - pTokens = tokens_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = streamCount_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT - { - pStreamStrides = pStreamStrides_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = static_cast( streamStrides_.size() ); - pStreamStrides = streamStrides_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( tokenCount == rhs.tokenCount ) - && ( pTokens == rhs.pTokens ) - && ( streamCount == rhs.streamCount ) - && ( pStreamStrides == rhs.pStreamStrides ); - } - - bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t tokenCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {}; - uint32_t streamCount = {}; - const uint32_t* pStreamStrides = {}; - - }; - static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IndirectCommandsLayoutCreateInfoNV; - }; - - struct PipelineCacheCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCacheCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) - : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialDataSize_; - return *this; - } - - PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT - { - pInitialData = pInitialData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialData_.size() * sizeof(T); - pInitialData = initialData_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCacheCreateInfo const& ) const = default; -#else - bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); - } - - bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; - - }; - static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCacheCreateInfo; - }; - - struct PushConstantRange - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT - : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT - : PushConstantRange( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT - { - stageFlags = stageFlags_; - return *this; - } - - PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PushConstantRange const& ) const = default; -#else - bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( stageFlags == rhs.stageFlags ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - uint32_t offset = {}; - uint32_t size = {}; - - }; - static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineLayoutCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, uint32_t setLayoutCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}, uint32_t pushConstantRangeCount_ = {}, const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineLayoutCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pushConstantRanges_ = {} ) - : flags( flags_ ), setLayoutCount( static_cast( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT - { - setLayoutCount = setLayoutCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pSetLayouts = pSetLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) VULKAN_HPP_NOEXCEPT - { - setLayoutCount = static_cast( setLayouts_.size() ); - pSetLayouts = setLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT - { - pushConstantRangeCount = pushConstantRangeCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT - { - pPushConstantRanges = pPushConstantRanges_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT - { - pushConstantRangeCount = static_cast( pushConstantRanges_.size() ); - pPushConstantRanges = pushConstantRanges_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLayoutCreateInfo const& ) const = default; -#else - bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( setLayoutCount == rhs.setLayoutCount ) - && ( pSetLayouts == rhs.pSetLayouts ) - && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) - && ( pPushConstantRanges == rhs.pPushConstantRanges ); - } - - bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {}; - uint32_t setLayoutCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; - uint32_t pushConstantRangeCount = {}; - const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {}; - - }; - static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineLayoutCreateInfo; - }; - - struct PrivateDataSlotCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PrivateDataSlotCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default; -#else - bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {}; - - }; - static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PrivateDataSlotCreateInfoEXT; - }; - - class PrivateDataSlotEXT + class ArrayProxy { public: - using CType = VkPrivateDataSlotEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT( privateDataSlotEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT - { - m_privateDataSlotEXT = privateDataSlotEXT; - return *this; - } -#endif - - PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_privateDataSlotEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PrivateDataSlotEXT const& ) const = default; -#else - bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT; - } - - bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT; - } - - bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT == VK_NULL_HANDLE; - } - - private: - VkPrivateDataSlotEXT m_privateDataSlotEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct QueryPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo(VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, uint32_t queryCount_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : QueryPoolCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT - { - queryType = queryType_; - return *this; - } - - QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT - { - queryCount = queryCount_; - return *this; - } - - QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatistics = pipelineStatistics_; - return *this; - } - - - operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolCreateInfo const& ) const = default; -#else - bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queryType == rhs.queryType ) - && ( queryCount == rhs.queryCount ) - && ( pipelineStatistics == rhs.pipelineStatistics ); - } - - bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion; - uint32_t queryCount = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; - - }; - static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolCreateInfo; - }; - - struct RayTracingShaderGroupCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}, const void* pShaderGroupCaptureReplayHandle_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT - { - generalShader = generalShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT - { - closestHitShader = closestHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT - { - anyHitShader = anyHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT - { - intersectionShader = intersectionShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT - { - pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_; - return *this; - } - - - operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( generalShader == rhs.generalShader ) - && ( closestHitShader == rhs.closestHitShader ) - && ( anyHitShader == rhs.anyHitShader ) - && ( intersectionShader == rhs.intersectionShader ) - && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle ); - } - - bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; - const void* pShaderGroupCaptureReplayHandle = {}; - - }; - static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingShaderGroupCreateInfoKHR; - }; - - struct PipelineLibraryCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT - : libraryCount( libraryCount_ ), pLibraries( pLibraries_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineLibraryCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) - : libraryCount( static_cast( libraries_.size() ) ), pLibraries( libraries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT - { - libraryCount = libraryCount_; - return *this; - } - - PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT - { - pLibraries = pLibraries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) VULKAN_HPP_NOEXCEPT - { - libraryCount = static_cast( libraries_.size() ); - pLibraries = libraries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default; -#else - bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( libraryCount == rhs.libraryCount ) - && ( pLibraries == rhs.pLibraries ); - } - - bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR; - const void* pNext = {}; - uint32_t libraryCount = {}; - const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {}; - - }; - static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineLibraryCreateInfoKHR; - }; - - struct RayTracingPipelineInterfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPipelineRayPayloadSize_ = {}, uint32_t maxPipelineRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ ), maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : RayTracingPipelineInterfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_; - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_; - return *this; - } - - - operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize ) - && ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize ); - } - - bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; - const void* pNext = {}; - uint32_t maxPipelineRayPayloadSize = {}; - uint32_t maxPipelineRayHitAttributeSize = {}; - - }; - static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineInterfaceCreateInfoKHR; - }; - - struct RayTracingPipelineCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : RayTracingPipelineCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT - { - pLibraryInfo = pLibraryInfo_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT - { - pLibraryInterface = pLibraryInterface_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicState = pDynamicState_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth ) - && ( pLibraryInfo == rhs.pLibraryInfo ) - && ( pLibraryInterface == rhs.pLibraryInterface ) - && ( pDynamicState == rhs.pDynamicState ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {}; - uint32_t maxPipelineRayRecursionDepth = {}; - const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo = {}; - const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {}; - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineCreateInfoKHR; - }; - - struct RayTracingShaderGroupCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT - { - generalShader = generalShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT - { - closestHitShader = closestHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT - { - anyHitShader = anyHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT - { - intersectionShader = intersectionShader_; - return *this; - } - - - operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default; -#else - bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( generalShader == rhs.generalShader ) - && ( closestHitShader == rhs.closestHitShader ) - && ( anyHitShader == rhs.anyHitShader ) - && ( intersectionShader == rhs.intersectionShader ); - } - - bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; - - }; - static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingShaderGroupCreateInfoNV; - }; - - struct RayTracingPipelineCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : RayTracingPipelineCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxRecursionDepth = maxRecursionDepth_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default; -#else - bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {}; - uint32_t maxRecursionDepth = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineCreateInfoNV; - }; - - struct SubpassDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescription(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassDescription( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( static_cast( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); -#else - if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = inputAttachmentCount_; - return *this; - } - - SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pInputAttachments = pInputAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = static_cast( inputAttachments_.size() ); - pInputAttachments = inputAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = colorAttachmentCount_; - return *this; - } - - SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pColorAttachments = pColorAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( colorAttachments_.size() ); - pColorAttachments = colorAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pResolveAttachments = pResolveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( resolveAttachments_.size() ); - pResolveAttachments = resolveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilAttachment = pDepthStencilAttachment_; - return *this; - } - - SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = preserveAttachmentCount_; - return *this; - } - - SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pPreserveAttachments = pPreserveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = static_cast( preserveAttachments_.size() ); - pPreserveAttachments = preserveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescription const& ) const = default; -#else - bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); - } - - bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - - }; - static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SubpassDependency - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDependency(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassDependency( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT - { - srcSubpass = srcSubpass_; - return *this; - } - - SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT - { - dstSubpass = dstSubpass_; - return *this; - } - - SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT - { - dependencyFlags = dependencyFlags_; - return *this; - } - - - operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDependency const& ) const = default; -#else - bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ); - } - - bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - - }; - static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct RenderPassCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ = {} ) - : flags( flags_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast( dependencies_.size() ) ), pDependencies( dependencies_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT - { - pSubpasses = pSubpasses_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( subpasses_.size() ); - pSubpasses = subpasses_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT - { - pDependencies = pDependencies_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( dependencies_.size() ); - pDependencies = dependencies_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassCreateInfo const& ) const = default; -#else - bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ); - } - - bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {}; - - }; - static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassCreateInfo; - }; - - struct SubpassDescription2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescription2(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t viewMask_ = {}, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassDescription2( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( static_cast( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); -#else - if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT - { - viewMask = viewMask_; - return *this; - } - - SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = inputAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pInputAttachments = pInputAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = static_cast( inputAttachments_.size() ); - pInputAttachments = inputAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = colorAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pColorAttachments = pColorAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( colorAttachments_.size() ); - pColorAttachments = colorAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pResolveAttachments = pResolveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( resolveAttachments_.size() ); - pResolveAttachments = resolveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilAttachment = pDepthStencilAttachment_; - return *this; - } - - SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = preserveAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pPreserveAttachments = pPreserveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = static_cast( preserveAttachments_.size() ); - pPreserveAttachments = preserveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescription2 const& ) const = default; -#else - bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( viewMask == rhs.viewMask ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); - } - - bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t viewMask = {}; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - - }; - static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDescription2; - }; - using SubpassDescription2KHR = SubpassDescription2; - - struct SubpassDependency2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDependency2(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, int32_t viewOffset_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassDependency2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT - { - srcSubpass = srcSubpass_; - return *this; - } - - SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT - { - dstSubpass = dstSubpass_; - return *this; - } - - SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT - { - dependencyFlags = dependencyFlags_; - return *this; - } - - SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT - { - viewOffset = viewOffset_; - return *this; - } - - - operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDependency2 const& ) const = default; -#else - bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ) - && ( viewOffset == rhs.viewOffset ); - } - - bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2; - const void* pNext = {}; - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - int32_t viewOffset = {}; - - }; - static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDependency2; - }; - using SubpassDependency2KHR = SubpassDependency2; - - struct RenderPassCreateInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ = {}, uint32_t correlatedViewMaskCount_ = {}, const uint32_t* pCorrelatedViewMasks_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassCreateInfo2( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ = {} ) - : flags( flags_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast( dependencies_.size() ) ), pDependencies( dependencies_.data() ), correlatedViewMaskCount( static_cast( correlatedViewMasks_.size() ) ), pCorrelatedViewMasks( correlatedViewMasks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT - { - pSubpasses = pSubpasses_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( subpasses_.size() ); - pSubpasses = subpasses_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT - { - pDependencies = pDependencies_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( dependencies_.size() ); - pDependencies = dependencies_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT - { - correlatedViewMaskCount = correlatedViewMaskCount_; - return *this; - } - - RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCorrelatedViewMasks = pCorrelatedViewMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - correlatedViewMaskCount = static_cast( correlatedViewMasks_.size() ); - pCorrelatedViewMasks = correlatedViewMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassCreateInfo2 const& ) const = default; -#else - bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ) - && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) - && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks ); - } - - bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {}; - uint32_t correlatedViewMaskCount = {}; - const uint32_t* pCorrelatedViewMasks = {}; - - }; - static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassCreateInfo2; - }; - using RenderPassCreateInfo2KHR = RenderPassCreateInfo2; - - struct SamplerCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerCreateInfo(VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, float mipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, float maxAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, float minLod_ = {}, float maxLod_ = {}, VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), magFilter( magFilter_ ), minFilter( minFilter_ ), mipmapMode( mipmapMode_ ), addressModeU( addressModeU_ ), addressModeV( addressModeV_ ), addressModeW( addressModeW_ ), mipLodBias( mipLodBias_ ), anisotropyEnable( anisotropyEnable_ ), maxAnisotropy( maxAnisotropy_ ), compareEnable( compareEnable_ ), compareOp( compareOp_ ), minLod( minLod_ ), maxLod( maxLod_ ), borderColor( borderColor_ ), unnormalizedCoordinates( unnormalizedCoordinates_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT - { - magFilter = magFilter_; - return *this; - } - - SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT - { - minFilter = minFilter_; - return *this; - } - - SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT - { - mipmapMode = mipmapMode_; - return *this; - } - - SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT - { - addressModeU = addressModeU_; - return *this; - } - - SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT - { - addressModeV = addressModeV_; - return *this; - } - - SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT - { - addressModeW = addressModeW_; - return *this; - } - - SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT - { - mipLodBias = mipLodBias_; - return *this; - } - - SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT - { - anisotropyEnable = anisotropyEnable_; - return *this; - } - - SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT - { - maxAnisotropy = maxAnisotropy_; - return *this; - } - - SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT - { - compareEnable = compareEnable_; - return *this; - } - - SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT - { - compareOp = compareOp_; - return *this; - } - - SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT - { - minLod = minLod_; - return *this; - } - - SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT - { - maxLod = maxLod_; - return *this; - } - - SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT - { - borderColor = borderColor_; - return *this; - } - - SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT - { - unnormalizedCoordinates = unnormalizedCoordinates_; - return *this; - } - - - operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerCreateInfo const& ) const = default; -#else - bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( magFilter == rhs.magFilter ) - && ( minFilter == rhs.minFilter ) - && ( mipmapMode == rhs.mipmapMode ) - && ( addressModeU == rhs.addressModeU ) - && ( addressModeV == rhs.addressModeV ) - && ( addressModeW == rhs.addressModeW ) - && ( mipLodBias == rhs.mipLodBias ) - && ( anisotropyEnable == rhs.anisotropyEnable ) - && ( maxAnisotropy == rhs.maxAnisotropy ) - && ( compareEnable == rhs.compareEnable ) - && ( compareOp == rhs.compareOp ) - && ( minLod == rhs.minLod ) - && ( maxLod == rhs.maxLod ) - && ( borderColor == rhs.borderColor ) - && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates ); - } - - bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - float mipLodBias = {}; - VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {}; - float maxAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - float minLod = {}; - float maxLod = {}; - VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack; - VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {}; - - }; - static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerCreateInfo; - }; - - struct SamplerYcbcrConversionCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {}) VULKAN_HPP_NOEXCEPT - : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerYcbcrConversionCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrModel = ycbcrModel_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrRange = ycbcrRange_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT - { - components = components_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT - { - xChromaOffset = xChromaOffset_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT - { - yChromaOffset = yChromaOffset_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT - { - chromaFilter = chromaFilter_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT - { - forceExplicitReconstruction = forceExplicitReconstruction_; - return *this; - } - - - operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( ycbcrModel == rhs.ycbcrModel ) - && ( ycbcrRange == rhs.ycbcrRange ) - && ( components == rhs.components ) - && ( xChromaOffset == rhs.xChromaOffset ) - && ( yChromaOffset == rhs.yChromaOffset ) - && ( chromaFilter == rhs.chromaFilter ) - && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction ); - } - - bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionCreateInfo; - }; - using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo; - - class SamplerYcbcrConversion - { - public: - using CType = VkSamplerYcbcrConversion; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; - - public: - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion( samplerYcbcrConversion ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT - { - m_samplerYcbcrConversion = samplerYcbcrConversion; - return *this; - } -#endif - - SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_samplerYcbcrConversion = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversion const& ) const = default; -#else - bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion; - } - - bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion; - } - - bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion == VK_NULL_HANDLE; - } - - private: - VkSamplerYcbcrConversion m_samplerYcbcrConversion; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - using SamplerYcbcrConversionKHR = SamplerYcbcrConversion; - - struct SemaphoreCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreCreateInfo const& ) const = default; -#else - bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {}; - - }; - static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreCreateInfo; - }; - - struct ShaderModuleCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ShaderModuleCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) - : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT - { - codeSize = codeSize_; - return *this; - } - - ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT - { - pCode = pCode_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) VULKAN_HPP_NOEXCEPT - { - codeSize = code_.size() * 4; - pCode = code_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModuleCreateInfo const& ) const = default; -#else - bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( codeSize == rhs.codeSize ) - && ( pCode == rhs.pCode ); - } - - bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {}; - size_t codeSize = {}; - const uint32_t* pCode = {}; - - }; - static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ShaderModuleCreateInfo; - }; - - class SurfaceKHR - { - public: - using CType = VkSurfaceKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; - - public: - VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR( surfaceKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT - { - m_surfaceKHR = surfaceKHR; - return *this; - } -#endif - - SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_surfaceKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceKHR const& ) const = default; -#else - bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == rhs.m_surfaceKHR; - } - - bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != rhs.m_surfaceKHR; - } - - bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR < rhs.m_surfaceKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == VK_NULL_HANDLE; - } - - private: - VkSurfaceKHR m_surfaceKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct SwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, uint32_t minImageCount_ = {}, VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, uint32_t imageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_, uint32_t minImageCount_, VULKAN_HPP_NAMESPACE::Format imageFormat_, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_, uint32_t imageArrayLayers_, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) - : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT - { - minImageCount = minImageCount_; - return *this; - } - - SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT - { - imageFormat = imageFormat_; - return *this; - } - - SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT - { - imageColorSpace = imageColorSpace_; - return *this; - } - - SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT - { - imageArrayLayers = imageArrayLayers_; - return *this; - } - - SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT - { - imageUsage = imageUsage_; - return *this; - } - - SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT - { - imageSharingMode = imageSharingMode_; - return *this; - } - - SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT - { - preTransform = preTransform_; - return *this; - } - - SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT - { - compositeAlpha = compositeAlpha_; - return *this; - } - - SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT - { - presentMode = presentMode_; - return *this; - } - - SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT - { - clipped = clipped_; - return *this; - } - - SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT - { - oldSwapchain = oldSwapchain_; - return *this; - } - - - operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( surface == rhs.surface ) - && ( minImageCount == rhs.minImageCount ) - && ( imageFormat == rhs.imageFormat ) - && ( imageColorSpace == rhs.imageColorSpace ) - && ( imageExtent == rhs.imageExtent ) - && ( imageArrayLayers == rhs.imageArrayLayers ) - && ( imageUsage == rhs.imageUsage ) - && ( imageSharingMode == rhs.imageSharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( preTransform == rhs.preTransform ) - && ( compositeAlpha == rhs.compositeAlpha ) - && ( presentMode == rhs.presentMode ) - && ( clipped == rhs.clipped ) - && ( oldSwapchain == rhs.oldSwapchain ); - } - - bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; - uint32_t minImageCount = {}; - VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; - uint32_t imageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {}; - VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate; - VULKAN_HPP_NAMESPACE::Bool32 clipped = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {}; - - }; - static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainCreateInfoKHR; - }; - - struct ValidationCacheCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ValidationCacheCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) - : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialDataSize_; - return *this; - } - - ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT - { - pInitialData = pInitialData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialData_.size() * sizeof(T); - pInitialData = initialData_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default; -#else - bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); - } - - bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; - - }; - static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationCacheCreateInfoEXT; - }; - - class ValidationCacheEXT - { - public: - using CType = VkValidationCacheEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; - - public: - VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT( validationCacheEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT - { - m_validationCacheEXT = validationCacheEXT; - return *this; - } -#endif - - ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_validationCacheEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationCacheEXT const& ) const = default; -#else - bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT == rhs.m_validationCacheEXT; - } - - bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT != rhs.m_validationCacheEXT; - } - - bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT < rhs.m_validationCacheEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT == VK_NULL_HANDLE; - } - - private: - VkValidationCacheEXT m_validationCacheEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DisplayPowerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT - : powerState( powerState_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPowerInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT - { - powerState = powerState_; - return *this; - } - - - operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPowerInfoEXT const& ) const = default; -#else - bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( powerState == rhs.powerState ); - } - - bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff; - - }; - static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPowerInfoEXT; - }; - - struct MappedMemoryRange - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT - : MappedMemoryRange( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MappedMemoryRange const& ) const = default; -#else - bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MappedMemoryRange; - }; - - struct MemoryRequirements - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryRequirements( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryRequirements const& ) const = default; -#else - bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( size == rhs.size ) - && ( alignment == rhs.alignment ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize alignment = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryRequirements2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryRequirements2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryRequirements2 const& ) const = default; -#else - bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); - } - - bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {}; - - }; - static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryRequirements2; - }; - using MemoryRequirements2KHR = MemoryRequirements2; - - struct DeviceGroupPresentCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT - : presentMask( presentMask_ ), modes( modes_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default; -#else - bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( presentMask == rhs.presentMask ) - && ( modes == rhs.modes ); - } - - bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D presentMask = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; - - }; - static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupPresentCapabilitiesKHR; - }; - - struct PhysicalDeviceSurfaceInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT - : surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default; -#else - bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surface == rhs.surface ); - } - - bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; - - }; - static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSurfaceInfo2KHR; - }; - - struct DeviceMemoryOpaqueCaptureAddressInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - - operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default; -#else - bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); - } - - bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - - }; - static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryOpaqueCaptureAddressInfo; - }; - using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo; - - struct PresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentInfoKHR(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ = {}, const uint32_t* pImageIndices_ = {}, VULKAN_HPP_NAMESPACE::Result* pResults_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), swapchainCount( static_cast( swapchains_.size() ) ), pSwapchains( swapchains_.data() ), pImageIndices( imageIndices_.data() ), pResults( results_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() ); - VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) ); - VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) ); -#else - if ( swapchains_.size() != imageIndices_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" ); - } - if ( !results_.empty() && ( swapchains_.size() != results_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" ); - } - if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT - { - pSwapchains = pSwapchains_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( swapchains_.size() ); - pSwapchains = swapchains_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT - { - pImageIndices = pImageIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( imageIndices_.size() ); - pImageIndices = imageIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT - { - pResults = pResults_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( results_.size() ); - pResults = results_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentInfoKHR const& ) const = default; -#else - bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pSwapchains == rhs.pSwapchains ) - && ( pImageIndices == rhs.pImageIndices ) - && ( pResults == rhs.pResults ); - } - - bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {}; - const uint32_t* pImageIndices = {}; - VULKAN_HPP_NAMESPACE::Result* pResults = {}; - - }; - static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentInfoKHR; - }; - - struct SubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubmitInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ = {}, uint32_t commandBufferCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ ) - {} - - VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SubmitInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitDstStageMask_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBuffers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), pWaitDstStageMask( waitDstStageMask_.data() ), commandBufferCount( static_cast( commandBuffers_.size() ) ), pCommandBuffers( commandBuffers_.data() ), signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() ); -#else - if ( waitSemaphores_.size() != waitDstStageMask_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - pWaitDstStageMask = pWaitDstStageMask_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitDstStageMask_.size() ); - pWaitDstStageMask = waitDstStageMask_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT - { - pCommandBuffers = pCommandBuffers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = static_cast( commandBuffers_.size() ); - pCommandBuffers = commandBuffers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphores = pSignalSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphores_.size() ); - pSignalSemaphores = signalSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubmitInfo const& ) const = default; -#else - bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBuffers == rhs.pCommandBuffers ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); - } - - bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {}; - uint32_t commandBufferCount = {}; - const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; - - }; - static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubmitInfo; - }; - - struct SemaphoreSubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ = {}, uint32_t deviceIndex_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), value( value_ ), stageMask( stageMask_ ), deviceIndex( deviceIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreSubmitInfoKHR( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreSubmitInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfoKHR & operator=( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreSubmitInfoKHR & operator=( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreSubmitInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreSubmitInfoKHR & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT - { - value = value_; - return *this; - } - - SemaphoreSubmitInfoKHR & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ ) VULKAN_HPP_NOEXCEPT - { - stageMask = stageMask_; - return *this; - } - - SemaphoreSubmitInfoKHR & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndex = deviceIndex_; - return *this; - } - - - operator VkSemaphoreSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreSubmitInfoKHR const& ) const = default; -#else - bool operator==( SemaphoreSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( value == rhs.value ) - && ( stageMask == rhs.stageMask ) - && ( deviceIndex == rhs.deviceIndex ); - } - - bool operator!=( SemaphoreSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - uint64_t value = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask = {}; - uint32_t deviceIndex = {}; - - }; - static_assert( sizeof( SemaphoreSubmitInfoKHR ) == sizeof( VkSemaphoreSubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreSubmitInfoKHR; - }; - - struct SubmitInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubmitInfo2KHR(VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ = {}, uint32_t waitSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos_ = {}, uint32_t commandBufferInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos_ = {}, uint32_t signalSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), waitSemaphoreInfoCount( waitSemaphoreInfoCount_ ), pWaitSemaphoreInfos( pWaitSemaphoreInfos_ ), commandBufferInfoCount( commandBufferInfoCount_ ), pCommandBufferInfos( pCommandBufferInfos_ ), signalSemaphoreInfoCount( signalSemaphoreInfoCount_ ), pSignalSemaphoreInfos( pSignalSemaphoreInfos_ ) - {} - - VULKAN_HPP_CONSTEXPR SubmitInfo2KHR( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubmitInfo2KHR( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SubmitInfo2KHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo2KHR( VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferInfos_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreInfos_ = {} ) - : flags( flags_ ), waitSemaphoreInfoCount( static_cast( waitSemaphoreInfos_.size() ) ), pWaitSemaphoreInfos( waitSemaphoreInfos_.data() ), commandBufferInfoCount( static_cast( commandBufferInfos_.size() ) ), pCommandBufferInfos( commandBufferInfos_.data() ), signalSemaphoreInfoCount( static_cast( signalSemaphoreInfos_.size() ) ), pSignalSemaphoreInfos( signalSemaphoreInfos_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubmitInfo2KHR & operator=( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubmitInfo2KHR & operator=( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubmitInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubmitInfo2KHR & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SubmitInfo2KHR & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreInfoCount = waitSemaphoreInfoCount_; - return *this; - } - - SubmitInfo2KHR & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreInfos = pWaitSemaphoreInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo2KHR & setWaitSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreInfoCount = static_cast( waitSemaphoreInfos_.size() ); - pWaitSemaphoreInfos = waitSemaphoreInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo2KHR & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferInfoCount = commandBufferInfoCount_; - return *this; - } - - SubmitInfo2KHR & setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT - { - pCommandBufferInfos = pCommandBufferInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo2KHR & setCommandBufferInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferInfoCount = static_cast( commandBufferInfos_.size() ); - pCommandBufferInfos = commandBufferInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo2KHR & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreInfoCount = signalSemaphoreInfoCount_; - return *this; - } - - SubmitInfo2KHR & setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreInfos = pSignalSemaphoreInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo2KHR & setSignalSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreInfoCount = static_cast( signalSemaphoreInfos_.size() ); - pSignalSemaphoreInfos = signalSemaphoreInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubmitInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubmitInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubmitInfo2KHR const& ) const = default; -#else - bool operator==( SubmitInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount ) - && ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos ) - && ( commandBufferInfoCount == rhs.commandBufferInfoCount ) - && ( pCommandBufferInfos == rhs.pCommandBufferInfos ) - && ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount ) - && ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos ); - } - - bool operator!=( SubmitInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags = {}; - uint32_t waitSemaphoreInfoCount = {}; - const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pWaitSemaphoreInfos = {}; - uint32_t commandBufferInfoCount = {}; - const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR* pCommandBufferInfos = {}; - uint32_t signalSemaphoreInfoCount = {}; - const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR* pSignalSemaphoreInfos = {}; - - }; - static_assert( sizeof( SubmitInfo2KHR ) == sizeof( VkSubmitInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubmitInfo2KHR; - }; - - class Queue - { - public: - using CType = VkQueue; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; - - public: - VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT - : m_queue( queue ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT - { - m_queue = queue; - return *this; - } -#endif - - Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_queue = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Queue const& ) const = default; -#else - bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue == rhs.m_queue; - } - - bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue != rhs.m_queue; - } - - bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue < rhs.m_queue; - } -#endif - - - template - void getCheckpointData2NV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointData2NV* pCheckpointData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getCheckpointData2NV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CheckpointData2NVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CheckpointDataNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result submit2KHR( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT - { - return m_queue; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_queue != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_queue == VK_NULL_HANDLE; - } - - private: - VkQueue m_queue; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Queue; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Queue; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Queue; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DeviceQueueInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceQueueInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueIndex = queueIndex_; - return *this; - } - - - operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueInfo2 const& ) const = default; -#else - bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueIndex == rhs.queueIndex ); - } - - bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueIndex = {}; - - }; - static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueInfo2; - }; - - struct FenceGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : FenceGetFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceGetFdInfoKHR const& ) const = default; -#else - bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceGetFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct FenceGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : FenceGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct GeneratedCommandsMemoryRequirementsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t maxSequencesCount_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ ) - {} - - VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GeneratedCommandsMemoryRequirementsInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT - { - indirectCommandsLayout = indirectCommandsLayout_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT - { - maxSequencesCount = maxSequencesCount_; - return *this; - } - - - operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default; -#else - bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipeline == rhs.pipeline ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( maxSequencesCount == rhs.maxSequencesCount ); - } - - bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; - uint32_t maxSequencesCount = {}; - - }; - static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeneratedCommandsMemoryRequirementsInfoNV; - }; - - struct ImageDrmFormatModifierPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ); - } - - bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT; - void* pNext = {}; - uint64_t drmFormatModifier = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierPropertiesEXT; - }; - - struct ImageMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - - operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); - } - - bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - - }; - static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageMemoryRequirementsInfo2; - }; - using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2; - - struct SparseImageFormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageFormatProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageFormatProperties const& ) const = default; -#else - bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( imageGranularity == rhs.imageGranularity ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {}; - - }; - static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryRequirements - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, uint32_t imageMipTailFirstLod_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {}) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageMemoryRequirements( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryRequirements const& ) const = default; -#else - bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( formatProperties == rhs.formatProperties ) - && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) - && ( imageMipTailSize == rhs.imageMipTailSize ) - && ( imageMipTailOffset == rhs.imageMipTailOffset ) - && ( imageMipTailStride == rhs.imageMipTailStride ); - } - - bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {}; - uint32_t imageMipTailFirstLod = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {}; - - }; - static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSparseMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - - operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); - } - - bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - - }; - static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageSparseMemoryRequirementsInfo2; - }; - using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2; - - struct SparseImageMemoryRequirements2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageMemoryRequirements2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default; -#else - bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); - } - - bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {}; - - }; - static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SparseImageMemoryRequirements2; - }; - using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2; - - struct SubresourceLayout - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubresourceLayout(VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ ) - {} - - VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT - : SubresourceLayout( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubresourceLayout const& ) const = default; -#else - bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( size == rhs.size ) - && ( rowPitch == rhs.rowPitch ) - && ( arrayPitch == rhs.arrayPitch ) - && ( depthPitch == rhs.depthPitch ); - } - - bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {}; - - }; - static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageViewAddressPropertiesNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageViewAddressPropertiesNVX( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default; -#else - bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceAddress == rhs.deviceAddress ) - && ( size == rhs.size ); - } - - bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewAddressPropertiesNVX; - }; - - struct ImageViewHandleInfoNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}) VULKAN_HPP_NOEXCEPT - : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageViewHandleInfoNVX( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT - { - imageView = imageView_; - return *this; - } - - ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT - { - sampler = sampler_; - return *this; - } - - - operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewHandleInfoNVX const& ) const = default; -#else - bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageView == rhs.imageView ) - && ( descriptorType == rhs.descriptorType ) - && ( sampler == rhs.sampler ); - } - - bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; - - }; - static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewHandleInfoNVX; - }; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct MemoryGetAndroidHardwareBufferInfoANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryGetAndroidHardwareBufferInfoANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - - operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default; -#else - bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); - } - - bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - - }; - static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetAndroidHardwareBufferInfoANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct MemoryGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryGetFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetFdInfoKHR const& ) const = default; -#else - bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetFdInfoKHR; - }; - - struct MemoryFdPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryFdPropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryFdPropertiesKHR const& ) const = default; -#else - bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryFdPropertiesKHR; - }; - - struct MemoryHostPointerPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryHostPointerPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default; -#else - bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryHostPointerPropertiesEXT; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryWin32HandlePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryWin32HandlePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default; -#else - bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryWin32HandlePropertiesKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct PastPresentationTimingGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ ) - {} - - VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - : PastPresentationTimingGOOGLE( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default; -#else - bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ) - && ( actualPresentTime == rhs.actualPresentTime ) - && ( earliestPresentTime == rhs.earliestPresentTime ) - && ( presentMargin == rhs.presentMargin ); - } - - bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; - uint64_t actualPresentTime = {}; - uint64_t earliestPresentTime = {}; - uint64_t presentMargin = {}; - - }; - static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - union PerformanceValueDataINTEL - { - PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); - } - - PerformanceValueDataINTEL( uint32_t value32_ = {} ) - : value32( value32_ ) - {} - - PerformanceValueDataINTEL( uint64_t value64_ ) - : value64( value64_ ) - {} - - PerformanceValueDataINTEL( float valueFloat_ ) - : valueFloat( valueFloat_ ) - {} - - PerformanceValueDataINTEL( const char* valueString_ ) - : valueString( valueString_ ) - {} - - PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT - { - value32 = value32_; - return *this; - } - - PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT - { - value64 = value64_; - return *this; - } - - PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT - { - valueFloat = valueFloat_; - return *this; - } - - PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT - { - valueBool = valueBool_; - return *this; - } - - PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT - { - valueString = valueString_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); - return *this; - } - - operator VkPerformanceValueDataINTEL const&() const - { - return *reinterpret_cast(this); - } - - operator VkPerformanceValueDataINTEL &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - uint32_t value32; - uint64_t value64; - float valueFloat; - VULKAN_HPP_NAMESPACE::Bool32 valueBool; - const char* valueString; -#else - uint32_t value32; - uint64_t value64; - float valueFloat; - VkBool32 valueBool; - const char* valueString; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct PerformanceValueINTEL - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), data( data_ ) - {} - - PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceValueINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32; - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {}; - - }; - static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineExecutableInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ), executableIndex( executableIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineExecutableInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT - { - executableIndex = executableIndex_; - return *this; - } - - - operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutableInfoKHR const& ) const = default; -#else - bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ) - && ( executableIndex == rhs.executableIndex ); - } - - bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - uint32_t executableIndex = {}; - - }; - static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableInfoKHR; - }; - - struct PipelineExecutableInternalRepresentationKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR(std::array const& name_ = {}, std::array const& description_ = {}, VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, size_t dataSize_ = {}, void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineExecutableInternalRepresentationKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineExecutableInternalRepresentationKHR( std::array const& name_, std::array const& description_, VULKAN_HPP_NAMESPACE::Bool32 isText_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) - : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default; -#else - bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( name == rhs.name ) - && ( description == rhs.description ) - && ( isText == rhs.isText ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::Bool32 isText = {}; - size_t dataSize = {}; - void* pData = {}; - - }; - static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableInternalRepresentationKHR; - }; - - struct PipelineInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - - operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineInfoKHR const& ) const = default; -#else - bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ); - } - - bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - - }; - static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineInfoKHR; - }; - - struct PipelineExecutablePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR(VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, std::array const& name_ = {}, std::array const& description_ = {}, uint32_t subgroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineExecutablePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default; -#else - bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stages == rhs.stages ) - && ( name == rhs.name ) - && ( description == rhs.description ) - && ( subgroupSize == rhs.subgroupSize ); - } - - bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - uint32_t subgroupSize = {}; - - }; - static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutablePropertiesKHR; - }; - - union PipelineExecutableStatisticValueKHR - { - PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); - } - - PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} ) - : b32( b32_ ) - {} - - PipelineExecutableStatisticValueKHR( int64_t i64_ ) - : i64( i64_ ) - {} - - PipelineExecutableStatisticValueKHR( uint64_t u64_ ) - : u64( u64_ ) - {} - - PipelineExecutableStatisticValueKHR( double f64_ ) - : f64( f64_ ) - {} - - PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT - { - b32 = b32_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT - { - i64 = i64_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT - { - u64 = u64_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT - { - f64 = f64_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); - return *this; - } - - operator VkPipelineExecutableStatisticValueKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkPipelineExecutableStatisticValueKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::Bool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#else - VkBool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct PipelineExecutableStatisticKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - PipelineExecutableStatisticKHR(std::array const& name_ = {}, std::array const& description_ = {}, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), description( description_ ), format( format_ ), value( value_ ) - {} - - PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineExecutableStatisticKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {}; - - }; - static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableStatisticKHR; - }; - - struct RefreshCycleDurationGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT - : refreshDuration( refreshDuration_ ) - {} - - VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - : RefreshCycleDurationGOOGLE( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default; -#else - bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( refreshDuration == rhs.refreshDuration ); - } - - bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint64_t refreshDuration = {}; - - }; - static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SemaphoreGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreGetFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default; -#else - bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreGetFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SemaphoreGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ImportFenceFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportFenceFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportFenceFdInfoKHR const& ) const = default; -#else - bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportFenceFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportFenceWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportFenceWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportFenceWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ImportSemaphoreFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportSemaphoreFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default; -#else - bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportSemaphoreFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportSemaphoreWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportSemaphoreWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct InitializePerformanceApiInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : InitializePerformanceApiInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default; -#else - bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL; - const void* pNext = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = InitializePerformanceApiInfoINTEL; - }; - - struct DisplayEventInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT - : displayEvent( displayEvent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayEventInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT - { - displayEvent = displayEvent_; - return *this; - } - - - operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayEventInfoEXT const& ) const = default; -#else - bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayEvent == rhs.displayEvent ); - } - - bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut; - - }; - static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayEventInfoEXT; - }; - - struct XYColorEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : XYColorEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XYColorEXT const& ) const = default; -#else - bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - - }; - static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct HdrMetadataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR HdrMetadataEXT(VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, float maxLuminance_ = {}, float minLuminance_ = {}, float maxContentLightLevel_ = {}, float maxFrameAverageLightLevel_ = {}) VULKAN_HPP_NOEXCEPT - : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ ) - {} - - VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : HdrMetadataEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryRed = displayPrimaryRed_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryGreen = displayPrimaryGreen_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryBlue = displayPrimaryBlue_; - return *this; - } - - HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT - { - whitePoint = whitePoint_; - return *this; - } - - HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT - { - maxLuminance = maxLuminance_; - return *this; - } - - HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT - { - minLuminance = minLuminance_; - return *this; - } - - HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT - { - maxContentLightLevel = maxContentLightLevel_; - return *this; - } - - HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT - { - maxFrameAverageLightLevel = maxFrameAverageLightLevel_; - return *this; - } - - - operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( HdrMetadataEXT const& ) const = default; -#else - bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPrimaryRed == rhs.displayPrimaryRed ) - && ( displayPrimaryGreen == rhs.displayPrimaryGreen ) - && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) - && ( whitePoint == rhs.whitePoint ) - && ( maxLuminance == rhs.maxLuminance ) - && ( minLuminance == rhs.minLuminance ) - && ( maxContentLightLevel == rhs.maxContentLightLevel ) - && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel ); - } - - bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {}; - float maxLuminance = {}; - float minLuminance = {}; - float maxContentLightLevel = {}; - float maxFrameAverageLightLevel = {}; - - }; - static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = HdrMetadataEXT; - }; - - struct SemaphoreSignalInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), value( value_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreSignalInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT - { - value = value_; - return *this; - } - - - operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreSignalInfo const& ) const = default; -#else - bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( value == rhs.value ); - } - - bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - uint64_t value = {}; - - }; - static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreSignalInfo; - }; - using SemaphoreSignalInfoKHR = SemaphoreSignalInfo; - - struct SemaphoreWaitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo(VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, uint32_t semaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ = {}, const uint64_t* pValues_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreWaitInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ = {} ) - : flags( flags_ ), semaphoreCount( static_cast( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() ); -#else - if ( semaphores_.size() != values_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = semaphoreCount_; - return *this; - } - - SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSemaphores = pSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = static_cast( semaphores_.size() ); - pSemaphores = semaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT - { - pValues = pValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = static_cast( values_.size() ); - pValues = values_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreWaitInfo const& ) const = default; -#else - bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( semaphoreCount == rhs.semaphoreCount ) - && ( pSemaphores == rhs.pSemaphores ) - && ( pValues == rhs.pValues ); - } - - bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {}; - uint32_t semaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {}; - const uint64_t* pValues = {}; - - }; - static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreWaitInfo; - }; - using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Device; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueAccelerationStructureKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueAccelerationStructureNV = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBufferView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueCommandBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueCommandPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDeferredOperationKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueDescriptorSet = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorSetLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorUpdateTemplate = UniqueHandle; - using UniqueDescriptorUpdateTemplateKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectFree; }; - using UniqueDeviceMemory = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueEvent = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFence = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFramebuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImage = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImageView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueIndirectCommandsLayoutNV = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipeline = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineCache = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePrivateDataSlotEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueQueryPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueRenderPass = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSampler = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSamplerYcbcrConversion = UniqueHandle; - using UniqueSamplerYcbcrConversionKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSemaphore = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueShaderModule = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSwapchainKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueValidationCacheEXT = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Device - { - public: - using CType = VkDevice; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; - - public: - VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT - : m_device( device ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT - { - m_device = device; - return *this; - } -#endif - - Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_device = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Device const& ) const = default; -#else - bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device == rhs.m_device; - } - - bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device != rhs.m_device; - } - - bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device < rhs.m_device; - } -#endif - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - - template - VULKAN_HPP_NODISCARD Result acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD ResultValue acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD ResultValue acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CommandBufferAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = CommandBufferAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DescriptorSetAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = DescriptorSetAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory2( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory2( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createBuffer( const BufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDeferredOperationKHR( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDeferredOperationKHRUnique( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createEvent( const EventCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createEventUnique( const EventCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createFence( const FenceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImage( const ImageCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImageUnique( const ImageCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImageView( const ImageViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSampler( const SamplerCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SwapchainKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = SwapchainKHRAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type flushMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getCalibratedTimestampsEXT( ArrayProxy const ×tampInfos, ArrayProxy const ×tamps, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint64_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - void getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirementsAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PastPresentationTimingGOOGLEAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableInternalRepresentationKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutablePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableStatisticKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ImageAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void releaseProfilingLockKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type resetFences( ArrayProxy const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void uninitializePerformanceApiINTEL( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type writeAccelerationStructuresPropertiesKHR( ArrayProxy const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy const &data, size_t stride, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT - { - return m_device; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_device != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_device == VK_NULL_HANDLE; - } - - private: - VkDevice m_device; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Device; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Device; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Device; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DisplayModeParametersKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT - : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayModeParametersKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT - { - visibleRegion = visibleRegion_; - return *this; - } - - DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT - { - refreshRate = refreshRate_; - return *this; - } - - - operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeParametersKHR const& ) const = default; -#else - bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( visibleRegion == rhs.visibleRegion ) - && ( refreshRate == rhs.refreshRate ); - } - - bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {}; - uint32_t refreshRate = {}; - - }; - static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayModeCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), parameters( parameters_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayModeCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT - { - parameters = parameters_; - return *this; - } - - - operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default; -#else - bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( parameters == rhs.parameters ); - } - - bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; - - }; - static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayModeCreateInfoKHR; - }; - - class DisplayModeKHR - { - public: - using CType = VkDisplayModeKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; - - public: - VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR( displayModeKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT - { - m_displayModeKHR = displayModeKHR; - return *this; - } -#endif - - DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_displayModeKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeKHR const& ) const = default; -#else - bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR == rhs.m_displayModeKHR; - } - - bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR != rhs.m_displayModeKHR; - } - - bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR < rhs.m_displayModeKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR == VK_NULL_HANDLE; - } - - private: - VkDisplayModeKHR m_displayModeKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ExtensionProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT - : extensionName( extensionName_ ), specVersion( specVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExtensionProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExtensionProperties const& ) const = default; -#else - bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( extensionName == rhs.extensionName ) - && ( specVersion == rhs.specVersion ); - } - - bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper1D extensionName = {}; - uint32_t specVersion = {}; - - }; - static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct LayerProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 LayerProperties(std::array const& layerName_ = {}, uint32_t specVersion_ = {}, uint32_t implementationVersion_ = {}, std::array const& description_ = {}) VULKAN_HPP_NOEXCEPT - : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : LayerProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( LayerProperties const& ) const = default; -#else - bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( layerName == rhs.layerName ) - && ( specVersion == rhs.specVersion ) - && ( implementationVersion == rhs.implementationVersion ) - && ( description == rhs.description ); - } - - bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper1D layerName = {}; - uint32_t specVersion = {}; - uint32_t implementationVersion = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - - }; - static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PerformanceCounterKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, std::array const& uuid_ = {}) VULKAN_HPP_NOEXCEPT - : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceCounterKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceCounterKHR const& ) const = default; -#else - bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( unit == rhs.unit ) - && ( scope == rhs.scope ) - && ( storage == rhs.storage ) - && ( uuid == rhs.uuid ); - } - - bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric; - VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer; - VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D uuid = {}; - - }; - static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceCounterKHR; - }; - - struct PerformanceCounterDescriptionKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, std::array const& name_ = {}, std::array const& category_ = {}, std::array const& description_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), name( name_ ), category( category_ ), description( description_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceCounterDescriptionKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default; -#else - bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( name == rhs.name ) - && ( category == rhs.category ) - && ( description == rhs.description ); - } - - bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D category = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - - }; - static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceCounterDescriptionKHR; - }; - - struct DisplayModePropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT - : displayMode( displayMode_ ), parameters( parameters_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayModePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModePropertiesKHR const& ) const = default; -#else - bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( displayMode == rhs.displayMode ) - && ( parameters == rhs.parameters ); - } - - bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; - - }; - static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayModeProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayModeProperties( displayModeProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayModeProperties2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeProperties2KHR const& ) const = default; -#else - bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayModeProperties == rhs.displayModeProperties ); - } - - bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {}; - - }; - static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayModeProperties2KHR; - }; - - struct DisplayPlaneInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT - : mode( mode_ ), planeIndex( planeIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPlaneInfo2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeIndex = planeIndex_; - return *this; - } - - - operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mode == rhs.mode ) - && ( planeIndex == rhs.planeIndex ); - } - - bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {}; - uint32_t planeIndex = {}; - - }; - static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneInfo2KHR; - }; - - struct DisplayPlaneCapabilitiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {}) VULKAN_HPP_NOEXCEPT - : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPlaneCapabilitiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default; -#else - bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( supportedAlpha == rhs.supportedAlpha ) - && ( minSrcPosition == rhs.minSrcPosition ) - && ( maxSrcPosition == rhs.maxSrcPosition ) - && ( minSrcExtent == rhs.minSrcExtent ) - && ( maxSrcExtent == rhs.maxSrcExtent ) - && ( minDstPosition == rhs.minDstPosition ) - && ( maxDstPosition == rhs.maxDstPosition ) - && ( minDstExtent == rhs.minDstExtent ) - && ( maxDstExtent == rhs.maxDstExtent ); - } - - bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {}; - VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {}; - - }; - static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayPlaneCapabilities2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT - : capabilities( capabilities_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPlaneCapabilities2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( capabilities == rhs.capabilities ); - } - - bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {}; - - }; - static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneCapabilities2KHR; - }; - - struct DisplayPlanePropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT - : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPlanePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default; -#else - bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( currentDisplay == rhs.currentDisplay ) - && ( currentStackIndex == rhs.currentStackIndex ); - } - - bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {}; - uint32_t currentStackIndex = {}; - - }; - static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayPlaneProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayPlaneProperties( displayPlaneProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPlaneProperties2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPlaneProperties == rhs.displayPlaneProperties ); - } - - bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {}; - - }; - static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneProperties2KHR; - }; - - struct DisplayPropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, const char* displayName_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {}) VULKAN_HPP_NOEXCEPT - : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPropertiesKHR const& ) const = default; -#else - bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( display == rhs.display ) - && ( displayName == rhs.displayName ) - && ( physicalDimensions == rhs.physicalDimensions ) - && ( physicalResolution == rhs.physicalResolution ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( planeReorderPossible == rhs.planeReorderPossible ) - && ( persistentContent == rhs.persistentContent ); - } - - bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayKHR display = {}; - const char* displayName = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {}; - - }; - static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayProperties( displayProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayProperties2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayProperties2KHR const& ) const = default; -#else - bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayProperties == rhs.displayProperties ); - } - - bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {}; - - }; - static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayProperties2KHR; - }; - - struct PhysicalDeviceExternalBufferInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), usage( usage_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExternalBufferInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalBufferInfo; - }; - using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo; - - struct ExternalMemoryProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalMemoryProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryProperties const& ) const = default; -#else - bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); - } - - bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using ExternalMemoryPropertiesKHR = ExternalMemoryProperties; - - struct ExternalBufferProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalBufferProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalBufferProperties const& ) const = default; -#else - bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); - } - - bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; - - }; - static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalBufferProperties; - }; - using ExternalBufferPropertiesKHR = ExternalBufferProperties; - - struct PhysicalDeviceExternalFenceInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExternalFenceInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalFenceInfo; - }; - using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; - - struct ExternalFenceProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalFenceProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalFenceProperties const& ) const = default; -#else - bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalFenceFeatures == rhs.externalFenceFeatures ); - } - - bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {}; - - }; - static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalFenceProperties; - }; - using ExternalFencePropertiesKHR = ExternalFenceProperties; - - struct ImageFormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatProperties(VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, uint32_t maxMipLevels_ = {}, uint32_t maxArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageFormatProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatProperties const& ) const = default; -#else - bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( maxExtent == rhs.maxExtent ) - && ( maxMipLevels == rhs.maxMipLevels ) - && ( maxArrayLayers == rhs.maxArrayLayers ) - && ( sampleCounts == rhs.sampleCounts ) - && ( maxResourceSize == rhs.maxResourceSize ); - } - - bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {}; - uint32_t maxMipLevels = {}; - uint32_t maxArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {}; - - }; - static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExternalImageFormatPropertiesNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalImageFormatPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default; -#else - bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( imageFormatProperties == rhs.imageFormatProperties ) - && ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); - } - - bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {}; - - }; - static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceExternalSemaphoreInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalSemaphoreInfo; - }; - using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo; - - struct ExternalSemaphoreProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalSemaphoreProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalSemaphoreProperties const& ) const = default; -#else - bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures ); - } - - bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {}; - - }; - static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalSemaphoreProperties; - }; - using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties; - - struct PhysicalDeviceFeatures2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT - : features( features_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFeatures2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT - { - features = features_; - return *this; - } - - - operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default; -#else - bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( features == rhs.features ); - } - - bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {}; - - }; - static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFeatures2; - }; - using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2; - - struct FormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : FormatProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FormatProperties const& ) const = default; -#else - bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( linearTilingFeatures == rhs.linearTilingFeatures ) - && ( optimalTilingFeatures == rhs.optimalTilingFeatures ) - && ( bufferFeatures == rhs.bufferFeatures ); - } - - bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {}; - - }; - static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct FormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : FormatProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FormatProperties2 const& ) const = default; -#else - bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( formatProperties == rhs.formatProperties ); - } - - bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {}; - - }; - static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FormatProperties2; - }; - using FormatProperties2KHR = FormatProperties2; - - struct PhysicalDeviceFragmentShadingRateKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}) VULKAN_HPP_NOEXCEPT - : sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleCounts == rhs.sampleCounts ) - && ( fragmentSize == rhs.fragmentSize ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; - VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateKHR; - }; - - struct PhysicalDeviceImageFormatInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceImageFormatInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default; -#else - bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( flags == rhs.flags ); - } - - bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageFormatInfo2; - }; - using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2; - - struct ImageFormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageFormatProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatProperties2 const& ) const = default; -#else - bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFormatProperties == rhs.imageFormatProperties ); - } - - bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; - - }; - static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageFormatProperties2; - }; - using ImageFormatProperties2KHR = ImageFormatProperties2; - - struct MemoryType - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT - : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryType( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryType &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryType const& ) const = default; -#else - bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( propertyFlags == rhs.propertyFlags ) - && ( heapIndex == rhs.heapIndex ); - } - - bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {}; - uint32_t heapIndex = {}; - - }; - static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryHeap - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : size( size_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryHeap( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryHeap const& ) const = default; -#else - bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( size == rhs.size ) - && ( flags == rhs.flags ); - } - - bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {}; - - }; - static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceMemoryProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties(uint32_t memoryTypeCount_ = {}, std::array const& memoryTypes_ = {}, uint32_t memoryHeapCount_ = {}, std::array const& memoryHeaps_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMemoryProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( memoryTypeCount == rhs.memoryTypeCount ) - && ( memoryTypes == rhs.memoryTypes ) - && ( memoryHeapCount == rhs.memoryHeapCount ) - && ( memoryHeaps == rhs.memoryHeaps ); - } - - bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t memoryTypeCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryTypes = {}; - uint32_t memoryHeapCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryHeaps = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceMemoryProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : memoryProperties( memoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMemoryProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryProperties == rhs.memoryProperties ); - } - - bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryProperties2; - }; - using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2; - - struct MultisamplePropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxSampleLocationGridSize( maxSampleLocationGridSize_ ) - {} - - VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : MultisamplePropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MultisamplePropertiesEXT const& ) const = default; -#else - bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ); - } - - bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; - - }; - static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MultisamplePropertiesEXT; - }; - - struct PhysicalDeviceLimits - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits(uint32_t maxImageDimension1D_ = {}, uint32_t maxImageDimension2D_ = {}, uint32_t maxImageDimension3D_ = {}, uint32_t maxImageDimensionCube_ = {}, uint32_t maxImageArrayLayers_ = {}, uint32_t maxTexelBufferElements_ = {}, uint32_t maxUniformBufferRange_ = {}, uint32_t maxStorageBufferRange_ = {}, uint32_t maxPushConstantsSize_ = {}, uint32_t maxMemoryAllocationCount_ = {}, uint32_t maxSamplerAllocationCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, uint32_t maxBoundDescriptorSets_ = {}, uint32_t maxPerStageDescriptorSamplers_ = {}, uint32_t maxPerStageDescriptorUniformBuffers_ = {}, uint32_t maxPerStageDescriptorStorageBuffers_ = {}, uint32_t maxPerStageDescriptorSampledImages_ = {}, uint32_t maxPerStageDescriptorStorageImages_ = {}, uint32_t maxPerStageDescriptorInputAttachments_ = {}, uint32_t maxPerStageResources_ = {}, uint32_t maxDescriptorSetSamplers_ = {}, uint32_t maxDescriptorSetUniformBuffers_ = {}, uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetStorageBuffers_ = {}, uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetSampledImages_ = {}, uint32_t maxDescriptorSetStorageImages_ = {}, uint32_t maxDescriptorSetInputAttachments_ = {}, uint32_t maxVertexInputAttributes_ = {}, uint32_t maxVertexInputBindings_ = {}, uint32_t maxVertexInputAttributeOffset_ = {}, uint32_t maxVertexInputBindingStride_ = {}, uint32_t maxVertexOutputComponents_ = {}, uint32_t maxTessellationGenerationLevel_ = {}, uint32_t maxTessellationPatchSize_ = {}, uint32_t maxTessellationControlPerVertexInputComponents_ = {}, uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, uint32_t maxTessellationControlTotalOutputComponents_ = {}, uint32_t maxTessellationEvaluationInputComponents_ = {}, uint32_t maxTessellationEvaluationOutputComponents_ = {}, uint32_t maxGeometryShaderInvocations_ = {}, uint32_t maxGeometryInputComponents_ = {}, uint32_t maxGeometryOutputComponents_ = {}, uint32_t maxGeometryOutputVertices_ = {}, uint32_t maxGeometryTotalOutputComponents_ = {}, uint32_t maxFragmentInputComponents_ = {}, uint32_t maxFragmentOutputAttachments_ = {}, uint32_t maxFragmentDualSrcAttachments_ = {}, uint32_t maxFragmentCombinedOutputResources_ = {}, uint32_t maxComputeSharedMemorySize_ = {}, std::array const& maxComputeWorkGroupCount_ = {}, uint32_t maxComputeWorkGroupInvocations_ = {}, std::array const& maxComputeWorkGroupSize_ = {}, uint32_t subPixelPrecisionBits_ = {}, uint32_t subTexelPrecisionBits_ = {}, uint32_t mipmapPrecisionBits_ = {}, uint32_t maxDrawIndexedIndexValue_ = {}, uint32_t maxDrawIndirectCount_ = {}, float maxSamplerLodBias_ = {}, float maxSamplerAnisotropy_ = {}, uint32_t maxViewports_ = {}, std::array const& maxViewportDimensions_ = {}, std::array const& viewportBoundsRange_ = {}, uint32_t viewportSubPixelBits_ = {}, size_t minMemoryMapAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, int32_t minTexelOffset_ = {}, uint32_t maxTexelOffset_ = {}, int32_t minTexelGatherOffset_ = {}, uint32_t maxTexelGatherOffset_ = {}, float minInterpolationOffset_ = {}, float maxInterpolationOffset_ = {}, uint32_t subPixelInterpolationOffsetBits_ = {}, uint32_t maxFramebufferWidth_ = {}, uint32_t maxFramebufferHeight_ = {}, uint32_t maxFramebufferLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, uint32_t maxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, uint32_t maxSampleMaskWords_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, float timestampPeriod_ = {}, uint32_t maxClipDistances_ = {}, uint32_t maxCullDistances_ = {}, uint32_t maxCombinedClipAndCullDistances_ = {}, uint32_t discreteQueuePriorities_ = {}, std::array const& pointSizeRange_ = {}, std::array const& lineWidthRange_ = {}, float pointSizeGranularity_ = {}, float lineWidthGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxImageDimension1D( maxImageDimension1D_ ), maxImageDimension2D( maxImageDimension2D_ ), maxImageDimension3D( maxImageDimension3D_ ), maxImageDimensionCube( maxImageDimensionCube_ ), maxImageArrayLayers( maxImageArrayLayers_ ), maxTexelBufferElements( maxTexelBufferElements_ ), maxUniformBufferRange( maxUniformBufferRange_ ), maxStorageBufferRange( maxStorageBufferRange_ ), maxPushConstantsSize( maxPushConstantsSize_ ), maxMemoryAllocationCount( maxMemoryAllocationCount_ ), maxSamplerAllocationCount( maxSamplerAllocationCount_ ), bufferImageGranularity( bufferImageGranularity_ ), sparseAddressSpaceSize( sparseAddressSpaceSize_ ), maxBoundDescriptorSets( maxBoundDescriptorSets_ ), maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ), maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ), maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ), maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ), maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ), maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ), maxPerStageResources( maxPerStageResources_ ), maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ), maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ), maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ), maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ), maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ), maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ), maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ), maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ), maxVertexInputAttributes( maxVertexInputAttributes_ ), maxVertexInputBindings( maxVertexInputBindings_ ), maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ), maxVertexInputBindingStride( maxVertexInputBindingStride_ ), maxVertexOutputComponents( maxVertexOutputComponents_ ), maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ), maxTessellationPatchSize( maxTessellationPatchSize_ ), maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ), maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ), maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ), maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ), maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ), maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ), maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ), maxGeometryInputComponents( maxGeometryInputComponents_ ), maxGeometryOutputComponents( maxGeometryOutputComponents_ ), maxGeometryOutputVertices( maxGeometryOutputVertices_ ), maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ), maxFragmentInputComponents( maxFragmentInputComponents_ ), maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ), maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ), maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ), maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ), maxComputeWorkGroupCount( maxComputeWorkGroupCount_ ), maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ), maxComputeWorkGroupSize( maxComputeWorkGroupSize_ ), subPixelPrecisionBits( subPixelPrecisionBits_ ), subTexelPrecisionBits( subTexelPrecisionBits_ ), mipmapPrecisionBits( mipmapPrecisionBits_ ), maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ), maxDrawIndirectCount( maxDrawIndirectCount_ ), maxSamplerLodBias( maxSamplerLodBias_ ), maxSamplerAnisotropy( maxSamplerAnisotropy_ ), maxViewports( maxViewports_ ), maxViewportDimensions( maxViewportDimensions_ ), viewportBoundsRange( viewportBoundsRange_ ), viewportSubPixelBits( viewportSubPixelBits_ ), minMemoryMapAlignment( minMemoryMapAlignment_ ), minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ), minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ), minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ), minTexelOffset( minTexelOffset_ ), maxTexelOffset( maxTexelOffset_ ), minTexelGatherOffset( minTexelGatherOffset_ ), maxTexelGatherOffset( maxTexelGatherOffset_ ), minInterpolationOffset( minInterpolationOffset_ ), maxInterpolationOffset( maxInterpolationOffset_ ), subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ), maxFramebufferWidth( maxFramebufferWidth_ ), maxFramebufferHeight( maxFramebufferHeight_ ), maxFramebufferLayers( maxFramebufferLayers_ ), framebufferColorSampleCounts( framebufferColorSampleCounts_ ), framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ), framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ), framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ), maxColorAttachments( maxColorAttachments_ ), sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ), sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ), sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ), sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ), storageImageSampleCounts( storageImageSampleCounts_ ), maxSampleMaskWords( maxSampleMaskWords_ ), timestampComputeAndGraphics( timestampComputeAndGraphics_ ), timestampPeriod( timestampPeriod_ ), maxClipDistances( maxClipDistances_ ), maxCullDistances( maxCullDistances_ ), maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ), discreteQueuePriorities( discreteQueuePriorities_ ), pointSizeRange( pointSizeRange_ ), lineWidthRange( lineWidthRange_ ), pointSizeGranularity( pointSizeGranularity_ ), lineWidthGranularity( lineWidthGranularity_ ), strictLines( strictLines_ ), standardSampleLocations( standardSampleLocations_ ), optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ), optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ), nonCoherentAtomSize( nonCoherentAtomSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceLimits( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLimits const& ) const = default; -#else - bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( maxImageDimension1D == rhs.maxImageDimension1D ) - && ( maxImageDimension2D == rhs.maxImageDimension2D ) - && ( maxImageDimension3D == rhs.maxImageDimension3D ) - && ( maxImageDimensionCube == rhs.maxImageDimensionCube ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( maxTexelBufferElements == rhs.maxTexelBufferElements ) - && ( maxUniformBufferRange == rhs.maxUniformBufferRange ) - && ( maxStorageBufferRange == rhs.maxStorageBufferRange ) - && ( maxPushConstantsSize == rhs.maxPushConstantsSize ) - && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) - && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) - && ( bufferImageGranularity == rhs.bufferImageGranularity ) - && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) - && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) - && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) - && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) - && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) - && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) - && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) - && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) - && ( maxPerStageResources == rhs.maxPerStageResources ) - && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) - && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) - && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) - && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) - && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) - && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) - && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) - && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) - && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) - && ( maxVertexInputBindings == rhs.maxVertexInputBindings ) - && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) - && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) - && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) - && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) - && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) - && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) - && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents ) - && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) - && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) - && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) - && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) - && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) - && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) - && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) - && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) - && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) - && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) - && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) - && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) - && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) - && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) - && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount ) - && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) - && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize ) - && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) - && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) - && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) - && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) - && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) - && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) - && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) - && ( maxViewports == rhs.maxViewports ) - && ( maxViewportDimensions == rhs.maxViewportDimensions ) - && ( viewportBoundsRange == rhs.viewportBoundsRange ) - && ( viewportSubPixelBits == rhs.viewportSubPixelBits ) - && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) - && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) - && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) - && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) - && ( minTexelOffset == rhs.minTexelOffset ) - && ( maxTexelOffset == rhs.maxTexelOffset ) - && ( minTexelGatherOffset == rhs.minTexelGatherOffset ) - && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) - && ( minInterpolationOffset == rhs.minInterpolationOffset ) - && ( maxInterpolationOffset == rhs.maxInterpolationOffset ) - && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) - && ( maxFramebufferWidth == rhs.maxFramebufferWidth ) - && ( maxFramebufferHeight == rhs.maxFramebufferHeight ) - && ( maxFramebufferLayers == rhs.maxFramebufferLayers ) - && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) - && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) - && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) - && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) - && ( maxColorAttachments == rhs.maxColorAttachments ) - && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) - && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) - && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) - && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) - && ( storageImageSampleCounts == rhs.storageImageSampleCounts ) - && ( maxSampleMaskWords == rhs.maxSampleMaskWords ) - && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) - && ( timestampPeriod == rhs.timestampPeriod ) - && ( maxClipDistances == rhs.maxClipDistances ) - && ( maxCullDistances == rhs.maxCullDistances ) - && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) - && ( discreteQueuePriorities == rhs.discreteQueuePriorities ) - && ( pointSizeRange == rhs.pointSizeRange ) - && ( lineWidthRange == rhs.lineWidthRange ) - && ( pointSizeGranularity == rhs.pointSizeGranularity ) - && ( lineWidthGranularity == rhs.lineWidthGranularity ) - && ( strictLines == rhs.strictLines ) - && ( standardSampleLocations == rhs.standardSampleLocations ) - && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) - && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) - && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize ); - } - - bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t maxImageDimension1D = {}; - uint32_t maxImageDimension2D = {}; - uint32_t maxImageDimension3D = {}; - uint32_t maxImageDimensionCube = {}; - uint32_t maxImageArrayLayers = {}; - uint32_t maxTexelBufferElements = {}; - uint32_t maxUniformBufferRange = {}; - uint32_t maxStorageBufferRange = {}; - uint32_t maxPushConstantsSize = {}; - uint32_t maxMemoryAllocationCount = {}; - uint32_t maxSamplerAllocationCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {}; - uint32_t maxBoundDescriptorSets = {}; - uint32_t maxPerStageDescriptorSamplers = {}; - uint32_t maxPerStageDescriptorUniformBuffers = {}; - uint32_t maxPerStageDescriptorStorageBuffers = {}; - uint32_t maxPerStageDescriptorSampledImages = {}; - uint32_t maxPerStageDescriptorStorageImages = {}; - uint32_t maxPerStageDescriptorInputAttachments = {}; - uint32_t maxPerStageResources = {}; - uint32_t maxDescriptorSetSamplers = {}; - uint32_t maxDescriptorSetUniformBuffers = {}; - uint32_t maxDescriptorSetUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetStorageBuffers = {}; - uint32_t maxDescriptorSetStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetSampledImages = {}; - uint32_t maxDescriptorSetStorageImages = {}; - uint32_t maxDescriptorSetInputAttachments = {}; - uint32_t maxVertexInputAttributes = {}; - uint32_t maxVertexInputBindings = {}; - uint32_t maxVertexInputAttributeOffset = {}; - uint32_t maxVertexInputBindingStride = {}; - uint32_t maxVertexOutputComponents = {}; - uint32_t maxTessellationGenerationLevel = {}; - uint32_t maxTessellationPatchSize = {}; - uint32_t maxTessellationControlPerVertexInputComponents = {}; - uint32_t maxTessellationControlPerVertexOutputComponents = {}; - uint32_t maxTessellationControlPerPatchOutputComponents = {}; - uint32_t maxTessellationControlTotalOutputComponents = {}; - uint32_t maxTessellationEvaluationInputComponents = {}; - uint32_t maxTessellationEvaluationOutputComponents = {}; - uint32_t maxGeometryShaderInvocations = {}; - uint32_t maxGeometryInputComponents = {}; - uint32_t maxGeometryOutputComponents = {}; - uint32_t maxGeometryOutputVertices = {}; - uint32_t maxGeometryTotalOutputComponents = {}; - uint32_t maxFragmentInputComponents = {}; - uint32_t maxFragmentOutputAttachments = {}; - uint32_t maxFragmentDualSrcAttachments = {}; - uint32_t maxFragmentCombinedOutputResources = {}; - uint32_t maxComputeSharedMemorySize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupCount = {}; - uint32_t maxComputeWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupSize = {}; - uint32_t subPixelPrecisionBits = {}; - uint32_t subTexelPrecisionBits = {}; - uint32_t mipmapPrecisionBits = {}; - uint32_t maxDrawIndexedIndexValue = {}; - uint32_t maxDrawIndirectCount = {}; - float maxSamplerLodBias = {}; - float maxSamplerAnisotropy = {}; - uint32_t maxViewports = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxViewportDimensions = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D viewportBoundsRange = {}; - uint32_t viewportSubPixelBits = {}; - size_t minMemoryMapAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {}; - int32_t minTexelOffset = {}; - uint32_t maxTexelOffset = {}; - int32_t minTexelGatherOffset = {}; - uint32_t maxTexelGatherOffset = {}; - float minInterpolationOffset = {}; - float maxInterpolationOffset = {}; - uint32_t subPixelInterpolationOffsetBits = {}; - uint32_t maxFramebufferWidth = {}; - uint32_t maxFramebufferHeight = {}; - uint32_t maxFramebufferLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {}; - uint32_t maxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {}; - uint32_t maxSampleMaskWords = {}; - VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {}; - float timestampPeriod = {}; - uint32_t maxClipDistances = {}; - uint32_t maxCullDistances = {}; - uint32_t maxCombinedClipAndCullDistances = {}; - uint32_t discreteQueuePriorities = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D pointSizeRange = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D lineWidthRange = {}; - float pointSizeGranularity = {}; - float lineWidthGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 strictLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceSparseProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties(VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {}) VULKAN_HPP_NOEXCEPT - : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSparseProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) - && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) - && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) - && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) - && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict ); - } - - bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {}; - - }; - static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties(uint32_t apiVersion_ = {}, uint32_t driverVersion_ = {}, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, std::array const& deviceName_ = {}, std::array const& pipelineCacheUUID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {}) VULKAN_HPP_NOEXCEPT - : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( apiVersion == rhs.apiVersion ) - && ( driverVersion == rhs.driverVersion ) - && ( vendorID == rhs.vendorID ) - && ( deviceID == rhs.deviceID ) - && ( deviceType == rhs.deviceType ) - && ( deviceName == rhs.deviceName ) - && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) - && ( limits == rhs.limits ) - && ( sparseProperties == rhs.sparseProperties ); - } - - bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t apiVersion = {}; - uint32_t driverVersion = {}; - uint32_t vendorID = {}; - uint32_t deviceID = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D pipelineCacheUUID = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {}; - - }; - static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProperties2 const& ) const = default; -#else - bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); - } - - bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {}; - - }; - static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProperties2; - }; - using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2; - - struct QueryPoolPerformanceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT - : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) - : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - counterIndexCount = counterIndexCount_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT - { - pCounterIndices = pCounterIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) VULKAN_HPP_NOEXCEPT - { - counterIndexCount = static_cast( counterIndices_.size() ); - pCounterIndices = counterIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default; -#else - bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( counterIndexCount == rhs.counterIndexCount ) - && ( pCounterIndices == rhs.pCounterIndices ); - } - - bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR; - const void* pNext = {}; - uint32_t queueFamilyIndex = {}; - uint32_t counterIndexCount = {}; - const uint32_t* pCounterIndices = {}; - - }; - static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolPerformanceCreateInfoKHR; - }; - - struct QueueFamilyProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : QueueFamilyProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyProperties const& ) const = default; -#else - bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( queueFlags == rhs.queueFlags ) - && ( queueCount == rhs.queueCount ) - && ( timestampValidBits == rhs.timestampValidBits ) - && ( minImageTransferGranularity == rhs.minImageTransferGranularity ); - } - - bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {}; - uint32_t queueCount = {}; - uint32_t timestampValidBits = {}; - VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {}; - - }; - static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct QueueFamilyProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT - : queueFamilyProperties( queueFamilyProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : QueueFamilyProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyProperties2 const& ) const = default; -#else - bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyProperties == rhs.queueFamilyProperties ); - } - - bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {}; - - }; - static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueueFamilyProperties2; - }; - using QueueFamilyProperties2KHR = QueueFamilyProperties2; - - struct PhysicalDeviceSparseImageFormatInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal) VULKAN_HPP_NOEXCEPT - : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - - operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default; -#else - bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( samples == rhs.samples ) - && ( usage == rhs.usage ) - && ( tiling == rhs.tiling ); - } - - bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - - }; - static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSparseImageFormatInfo2; - }; - using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2; - - struct SparseImageFormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - : SparseImageFormatProperties2( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageFormatProperties2 const& ) const = default; -#else - bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); - } - - bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {}; - - }; - static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SparseImageFormatProperties2; - }; - using SparseImageFormatProperties2KHR = SparseImageFormatProperties2; - - struct FramebufferMixedSamplesCombinationNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {}) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - : FramebufferMixedSamplesCombinationNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default; -#else - bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( depthStencilSamples == rhs.depthStencilSamples ) - && ( colorSamples == rhs.colorSamples ); - } - - bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {}; - - }; - static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferMixedSamplesCombinationNV; - }; - - struct SurfaceCapabilities2EXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceCapabilities2EXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilities2EXT const& ) const = default; -#else - bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ) - && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters ); - } - - bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT; - void* pNext = {}; - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {}; - - }; - static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilities2EXT; - }; - - struct SurfaceCapabilitiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceCapabilitiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default; -#else - bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ); - } - - bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; - - }; - static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SurfaceCapabilities2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceCapabilities( surfaceCapabilities_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceCapabilities2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilities2KHR const& ) const = default; -#else - bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCapabilities == rhs.surfaceCapabilities ); - } - - bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {}; - - }; - static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilities2KHR; - }; - - struct SurfaceFormatKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFormatKHR(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear) VULKAN_HPP_NOEXCEPT - : format( format_ ), colorSpace( colorSpace_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceFormatKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFormatKHR const& ) const = default; -#else - bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( format == rhs.format ) - && ( colorSpace == rhs.colorSpace ); - } - - bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; - - }; - static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SurfaceFormat2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceFormat( surfaceFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceFormat2KHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFormat2KHR const& ) const = default; -#else - bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceFormat == rhs.surfaceFormat ); - } - - bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {}; - - }; - static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFormat2KHR; - }; - - struct PhysicalDeviceToolPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT(std::array const& name_ = {}, std::array const& version_ = {}, VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {}, std::array const& description_ = {}, std::array const& layer_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceToolPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( name == rhs.name ) - && ( version == rhs.version ) - && ( purposes == rhs.purposes ) - && ( description == rhs.description ) - && ( layer == rhs.layer ); - } - - bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D version = {}; - VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D layer = {}; - - }; - static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceToolPropertiesEXT; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDevice = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class PhysicalDevice - { - public: - using CType = VkPhysicalDevice; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; - - public: - VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice( physicalDevice ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT - { - m_physicalDevice = physicalDevice; - return *this; - } -#endif - - PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_physicalDevice = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice const& ) const = default; -#else - bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice == rhs.m_physicalDevice; - } - - bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice != rhs.m_physicalDevice; - } - - bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice < rhs.m_physicalDevice; - } -#endif - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDevice( const DeviceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename PerformanceCounterDescriptionKHRAllocator = std::allocator, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename PerformanceCounterDescriptionKHRAllocator = std::allocator, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B1 = PerformanceCounterKHRAllocator, typename B2 = PerformanceCounterDescriptionKHRAllocator, typename std::enable_if::value && std::is_same::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModeProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = TimeDomainEXTAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CooperativeMatrixPropertiesNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlaneProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlanePropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlanePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getFragmentShadingRatesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceFragmentShadingRateKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Rect2DAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - template - Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window* window, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - - template - void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = FramebufferMixedSamplesCombinationNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormat2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormatKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolPropertiesEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceToolPropertiesEXTAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice == VK_NULL_HANDLE; + VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + template ::value, int>::type = 0> + ArrayProxy( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxy( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + +# if __GNUC__ >= 9 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Winit-list-lifetime" +# endif + + ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxy( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + +# if __GNUC__ >= 9 +# pragma GCC diagnostic pop +# endif + + template + ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxy( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxy( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxy( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + +# if defined( VULKAN_HPP_SUPPORT_SPAN ) + template + ArrayProxy( std::span const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::span::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template + ArrayProxy( std::span & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::span::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} +# endif + + const T * begin() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + const T * end() const VULKAN_HPP_NOEXCEPT + { + return m_ptr + m_count; + } + + const T & front() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *m_ptr; + } + + const T & back() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); + } + + bool empty() const VULKAN_HPP_NOEXCEPT + { + return ( m_count == 0 ); + } + + uint32_t size() const VULKAN_HPP_NOEXCEPT + { + return m_count; + } + + T * data() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; } private: - VkPhysicalDevice m_physicalDevice; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DeviceGroupDeviceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupDeviceCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & physicalDevices_ ) - : physicalDeviceCount( static_cast( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT - { - physicalDeviceCount = physicalDeviceCount_; - return *this; - } - - DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT - { - pPhysicalDevices = pPhysicalDevices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT - { - physicalDeviceCount = static_cast( physicalDevices_.size() ); - pPhysicalDevices = physicalDevices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default; -#else - bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( pPhysicalDevices == rhs.pPhysicalDevices ); - } - - bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo; - const void* pNext = {}; - uint32_t physicalDeviceCount = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {}; - - }; - static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupDeviceCreateInfo; - }; - using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo; - - struct DeviceGroupPresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupPresentInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) - : swapchainCount( static_cast( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceMasks = pDeviceMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( deviceMasks_.size() ); - pDeviceMasks = deviceMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default; -#else - bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pDeviceMasks == rhs.pDeviceMasks ) - && ( mode == rhs.mode ); - } - - bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const uint32_t* pDeviceMasks = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal; - - }; - static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupPresentInfoKHR; - }; - - struct DeviceGroupRenderPassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupRenderPassBeginInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) - : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceRenderAreaCount = deviceRenderAreaCount_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceRenderAreas = pDeviceRenderAreas_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT - { - deviceRenderAreaCount = static_cast( deviceRenderAreas_.size() ); - pDeviceRenderAreas = deviceRenderAreas_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default; -#else - bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ) - && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) - && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas ); - } - - bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; - uint32_t deviceRenderAreaCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {}; - - }; - static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupRenderPassBeginInfo; - }; - using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo; - - struct DeviceGroupSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo(uint32_t waitSemaphoreCount_ = {}, const uint32_t* pWaitSemaphoreDeviceIndices_ = {}, uint32_t commandBufferCount_ = {}, const uint32_t* pCommandBufferDeviceMasks_ = {}, uint32_t signalSemaphoreCount_ = {}, const uint32_t* pSignalSemaphoreDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupSubmitInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphoreDeviceIndices_.size() ) ), pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() ), commandBufferCount( static_cast( commandBufferDeviceMasks_.size() ) ), pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() ), signalSemaphoreCount( static_cast( signalSemaphoreDeviceIndices_.size() ) ), pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphoreDeviceIndices_.size() ); - pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = static_cast( commandBufferDeviceMasks_.size() ); - pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphoreDeviceIndices_.size() ); - pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupSubmitInfo const& ) const = default; -#else - bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices ); - } - - bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const uint32_t* pWaitSemaphoreDeviceIndices = {}; - uint32_t commandBufferCount = {}; - const uint32_t* pCommandBufferDeviceMasks = {}; - uint32_t signalSemaphoreCount = {}; - const uint32_t* pSignalSemaphoreDeviceIndices = {}; - - }; - static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupSubmitInfo; - }; - using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo; - - struct DeviceGroupSwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT - : modes( modes_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT - { - modes = modes_; - return *this; - } - - - operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( modes == rhs.modes ); - } - - bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; - - }; - static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupSwapchainCreateInfoKHR; - }; - - struct DeviceMemoryOverallocationCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT - : overallocationBehavior( overallocationBehavior_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceMemoryOverallocationCreateInfoAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT - { - overallocationBehavior = overallocationBehavior_; - return *this; - } - - - operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default; -#else - bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( overallocationBehavior == rhs.overallocationBehavior ); - } - - bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault; - - }; - static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryOverallocationCreateInfoAMD; - }; - - struct DeviceMemoryReportCallbackDataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate, uint64_t memoryObjectId_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default; -#else - bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( type == rhs.type ) - && ( memoryObjectId == rhs.memoryObjectId ) - && ( size == rhs.size ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( heapIndex == rhs.heapIndex ); - } - - bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate; - uint64_t memoryObjectId = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - uint32_t heapIndex = {}; - - }; - static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryReportCallbackDataEXT; - }; - - struct DevicePrivateDataCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT - : privateDataSlotRequestCount( privateDataSlotRequestCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DevicePrivateDataCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT - { - privateDataSlotRequestCount = privateDataSlotRequestCount_; - return *this; - } - - - operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default; -#else - bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount ); - } - - bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT; - const void* pNext = {}; - uint32_t privateDataSlotRequestCount = {}; - - }; - static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DevicePrivateDataCreateInfoEXT; - }; - - struct DeviceQueueGlobalPriorityCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT - : globalPriority( globalPriority_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DeviceQueueGlobalPriorityCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT - { - globalPriority = globalPriority_; - return *this; - } - - - operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default; -#else - bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( globalPriority == rhs.globalPriority ); - } - - bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow; - - }; - static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueGlobalPriorityCreateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - struct DirectFBSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dfb( dfb_ ), surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT - { - dfb = dfb_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dfb == rhs.dfb ) - && ( surface == rhs.surface ); - } - - bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {}; - IDirectFB* dfb = {}; - IDirectFBSurface* surface = {}; - - }; - static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DirectFBSurfaceCreateInfoEXT; - }; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - struct DispatchIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ) - {} - - VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - : DispatchIndirectCommand( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - - operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DispatchIndirectCommand const& ) const = default; -#else - bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); - } - - bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t x = {}; - uint32_t y = {}; - uint32_t z = {}; - - }; - static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayNativeHdrSurfaceCapabilitiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT - : localDimmingSupport( localDimmingSupport_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayNativeHdrSurfaceCapabilitiesAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default; -#else - bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingSupport == rhs.localDimmingSupport ); - } - - bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {}; - - }; - static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayNativeHdrSurfaceCapabilitiesAMD; - }; - - struct DisplayPresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT - : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplayPresentInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT - { - srcRect = srcRect_; - return *this; - } - - DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT - { - dstRect = dstRect_; - return *this; - } - - DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT - { - persistent = persistent_; - return *this; - } - - - operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPresentInfoKHR const& ) const = default; -#else - bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcRect == rhs.srcRect ) - && ( dstRect == rhs.dstRect ) - && ( persistent == rhs.persistent ); - } - - bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Rect2D srcRect = {}; - VULKAN_HPP_NAMESPACE::Rect2D dstRect = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistent = {}; - - }; - static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPresentInfoKHR; - }; - - struct DisplaySurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, uint32_t planeIndex_ = {}, uint32_t planeStackIndex_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, float globalAlpha_ = {}, VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : DisplaySurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT - { - displayMode = displayMode_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeIndex = planeIndex_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeStackIndex = planeStackIndex_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT - { - globalAlpha = globalAlpha_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT - { - alphaMode = alphaMode_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( displayMode == rhs.displayMode ) - && ( planeIndex == rhs.planeIndex ) - && ( planeStackIndex == rhs.planeStackIndex ) - && ( transform == rhs.transform ) - && ( globalAlpha == rhs.globalAlpha ) - && ( alphaMode == rhs.alphaMode ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - uint32_t planeIndex = {}; - uint32_t planeStackIndex = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - float globalAlpha = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; - - }; - static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplaySurfaceCreateInfoKHR; - }; - - struct DrawIndexedIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT - : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - : DrawIndexedIndirectCommand( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT - { - indexCount = indexCount_; - return *this; - } - - DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT - { - firstIndex = firstIndex_; - return *this; - } - - DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT - { - vertexOffset = vertexOffset_; - return *this; - } - - DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT - { - firstInstance = firstInstance_; - return *this; - } - - - operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawIndexedIndirectCommand const& ) const = default; -#else - bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( indexCount == rhs.indexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstIndex == rhs.firstIndex ) - && ( vertexOffset == rhs.vertexOffset ) - && ( firstInstance == rhs.firstInstance ); - } - - bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + uint32_t m_count; + T * m_ptr; + }; + + template + class ArrayProxyNoTemporaries + { public: - uint32_t indexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstIndex = {}; - int32_t vertexOffset = {}; - uint32_t firstInstance = {}; - - }; - static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrawIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT - : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - : DrawIndirectCommand( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexCount = vertexCount_; - return *this; - } - - DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT - { - firstVertex = firstVertex_; - return *this; - } - - DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT - { - firstInstance = firstInstance_; - return *this; - } - - - operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawIndirectCommand const& ) const = default; -#else - bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( vertexCount == rhs.vertexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstVertex == rhs.firstVertex ) - && ( firstInstance == rhs.firstInstance ); - } - - bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t vertexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstVertex = {}; - uint32_t firstInstance = {}; - - }; - static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrawMeshTasksIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT - : taskCount( taskCount_ ), firstTask( firstTask_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : DrawMeshTasksIndirectCommandNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT - { - taskCount = taskCount_; - return *this; - } - - DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT - { - firstTask = firstTask_; - return *this; - } - - - operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default; -#else - bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( taskCount == rhs.taskCount ) - && ( firstTask == rhs.firstTask ); - } - - bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t taskCount = {}; - uint32_t firstTask = {}; - - }; - static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrmFormatModifierPropertiesEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DrmFormatModifierPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default; -#else - bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures ); - } - - bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {}; - - }; - static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrmFormatModifierPropertiesListEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : DrmFormatModifierPropertiesListEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifierProperties_ ) - : drmFormatModifierCount( static_cast( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default; -#else - bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties ); - } - - bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxyNoTemporaries( T && value ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type && value ) = delete; + + ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const && list ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const && list ) = delete; + + ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list && list ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> && list ) = delete; + + template + ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array const && data ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const && data ) = delete; + + template + ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array && data ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> && data ) = delete; + + template ::type>> + ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxyNoTemporaries( std::vector const && data ) = delete; + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const && data ) = delete; + + template ::type>> + ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxyNoTemporaries( std::vector && data ) = delete; + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> && data ) = delete; + +# if defined( VULKAN_HPP_SUPPORT_SPAN ) + template + ArrayProxyNoTemporaries( std::span const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::span::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::span & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::span::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} +# endif + + const T * begin() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + const T * end() const VULKAN_HPP_NOEXCEPT + { + return m_ptr + m_count; + } + + const T & front() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *m_ptr; + } + + const T & back() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); + } + + bool empty() const VULKAN_HPP_NOEXCEPT + { + return ( m_count == 0 ); + } + + uint32_t size() const VULKAN_HPP_NOEXCEPT + { + return m_count; + } + + T * data() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + private: + uint32_t m_count; + T * m_ptr; + }; #endif - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT; - void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {}; - - }; - static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DrmFormatModifierPropertiesListEXT; - }; - - struct ExportFenceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportFenceCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportFenceCreateInfo const& ) const = default; -#else - bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportFenceCreateInfo; - }; - using ExportFenceCreateInfoKHR = ExportFenceCreateInfo; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportFenceWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportFenceWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportFenceWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ExportMemoryAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportMemoryAllocateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryAllocateInfo const& ) const = default; -#else - bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryAllocateInfo; - }; - using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo; - - struct ExportMemoryAllocateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportMemoryAllocateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default; -#else - bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; - - }; - static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryAllocateInfoNV; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + template + class ArrayWrapper1D : public std::array + { public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportMemoryWin32HandleInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - - operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default; -#else - bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ); - } - - bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryWin32HandleInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ExportSemaphoreCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportSemaphoreCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default; -#else - bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportSemaphoreCreateInfo; - }; - using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportSemaphoreWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportSemaphoreWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ExternalFormatANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT - : externalFormat( externalFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalFormatANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT - { - externalFormat = externalFormat_; - return *this; - } - - - operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalFormatANDROID const& ) const = default; -#else - bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalFormat == rhs.externalFormat ); - } - - bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID; - void* pNext = {}; - uint64_t externalFormat = {}; - - }; - static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalFormatANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ExternalImageFormatProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalImageFormatProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalImageFormatProperties const& ) const = default; -#else - bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); - } - - bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; - - }; - static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalImageFormatProperties; - }; - using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties; - - struct ExternalMemoryBufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalMemoryBufferCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default; -#else - bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryBufferCreateInfo; - }; - using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo; - - struct ExternalMemoryImageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalMemoryImageCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default; -#else - bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryImageCreateInfo; - }; - using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo; - - struct ExternalMemoryImageCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ExternalMemoryImageCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default; -#else - bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryImageCreateInfoNV; - }; - - struct FilterCubicImageViewImageFormatPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT - : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ ) - {} - - VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : FilterCubicImageViewImageFormatPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default; -#else - bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterCubic == rhs.filterCubic ) - && ( filterCubicMinmax == rhs.filterCubicMinmax ); - } - - bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {}; - - }; - static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FilterCubicImageViewImageFormatPropertiesEXT; - }; - - struct FragmentShadingRateAttachmentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}) VULKAN_HPP_NOEXCEPT - : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ ) - {} - - VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_; - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_; - return *this; - } - - - operator VkFragmentShadingRateAttachmentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FragmentShadingRateAttachmentInfoKHR const& ) const = default; -#else - bool operator==( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment ) - && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize ); - } - - bool operator!=( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); + VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array() {} + + VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array const & data ) VULKAN_HPP_NOEXCEPT : std::array( data ) + {} + +#if ( VK_USE_64_BIT_PTR_DEFINES == 0 ) + // on 32 bit compiles, needs overloads on index type int to resolve ambiguities + VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT + { + return std::array::operator[]( index ); + } + + T & operator[]( int index ) VULKAN_HPP_NOEXCEPT + { + return std::array::operator[]( index ); } #endif - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR; - const void* pNext = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment = {}; - VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {}; - - }; - static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FragmentShadingRateAttachmentInfoKHR; - }; - - struct FramebufferAttachmentImageInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layerCount_ = {}, uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : FramebufferAttachmentImageInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, uint32_t width_, uint32_t height_, uint32_t layerCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) - : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = viewFormatCount_; - return *this; - } - - FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT - { - pViewFormats = pViewFormats_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = static_cast( viewFormats_.size() ); - pViewFormats = viewFormats_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default; -#else - bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layerCount == rhs.layerCount ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); - } - - bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layerCount = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; - - }; - static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferAttachmentImageInfo; - }; - using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo; - - struct FramebufferAttachmentsCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : FramebufferAttachmentsCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentImageInfos_ ) - : attachmentImageInfoCount( static_cast( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentImageInfoCount = attachmentImageInfoCount_; - return *this; - } - - FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT - { - pAttachmentImageInfos = pAttachmentImageInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT - { - attachmentImageInfoCount = static_cast( attachmentImageInfos_.size() ); - pAttachmentImageInfos = attachmentImageInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default; -#else - bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) - && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos ); - } - - bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo; - const void* pNext = {}; - uint32_t attachmentImageInfoCount = {}; - const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {}; - - }; - static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferAttachmentsCreateInfo; - }; - using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo; - - struct GraphicsShaderGroupCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV(uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}) VULKAN_HPP_NOEXCEPT - : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ ) - {} - - VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} ) - : stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT - { - pVertexInputState = pVertexInputState_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT - { - pTessellationState = pTessellationState_; - return *this; - } - - - operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default; -#else - bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( pVertexInputState == rhs.pVertexInputState ) - && ( pTessellationState == rhs.pTessellationState ); - } - - bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV; - const void* pNext = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {}; - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {}; - - }; - static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsShaderGroupCreateInfoNV; - }; - - struct GraphicsPipelineShaderGroupsCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV(uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t pipelineCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ = {}) VULKAN_HPP_NOEXCEPT - : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ ) - {} - - VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : GraphicsPipelineShaderGroupsCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ = {} ) - : groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast( pipelines_.size() ) ), pPipelines( pipelines_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCount = pipelineCount_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT - { - pPipelines = pPipelines_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCount = static_cast( pipelines_.size() ); - pPipelines = pipelines_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default; -#else - bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( pipelineCount == rhs.pipelineCount ) - && ( pPipelines == rhs.pPipelines ); - } - - bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; - const void* pNext = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {}; - uint32_t pipelineCount = {}; - const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {}; - - }; - static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsPipelineShaderGroupsCreateInfoNV; - }; - - struct HeadlessSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {}; - - }; - static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = HeadlessSurfaceCreateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_IOS_MVK - struct IOSSurfaceCreateInfoMVK - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pView( pView_ ) - {} - - VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - : IOSSurfaceCreateInfoMVK( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT - { - pView = pView_; - return *this; - } - - - operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default; -#else - bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); - } - - bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; - - }; - static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IOSSurfaceCreateInfoMVK; - }; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - struct ImageDrmFormatModifierExplicitCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageDrmFormatModifierExplicitCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & planeLayouts_ ) - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifier = drmFormatModifier_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pPlaneLayouts = pPlaneLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierPlaneCount = static_cast( planeLayouts_.size() ); - pPlaneLayouts = planeLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( pPlaneLayouts == rhs.pPlaneLayouts ); - } - - bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierExplicitCreateInfoEXT; - }; - - struct ImageDrmFormatModifierListCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageDrmFormatModifierListCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) - : drmFormatModifierCount( static_cast( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierCount = drmFormatModifierCount_; - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT - { - pDrmFormatModifiers = pDrmFormatModifiers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierCount = static_cast( drmFormatModifiers_.size() ); - pDrmFormatModifiers = drmFormatModifiers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers ); - } - - bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; - const void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - const uint64_t* pDrmFormatModifiers = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierListCreateInfoEXT; - }; - - struct ImageFormatListCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT - : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageFormatListCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) - : viewFormatCount( static_cast( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = viewFormatCount_; - return *this; - } - - ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT - { - pViewFormats = pViewFormats_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = static_cast( viewFormats_.size() ); - pViewFormats = viewFormats_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatListCreateInfo const& ) const = default; -#else - bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); - } - - bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo; - const void* pNext = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; - - }; - static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageFormatListCreateInfo; - }; - using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo; - -#ifdef VK_USE_PLATFORM_FUCHSIA - struct ImagePipeSurfaceCreateInfoFUCHSIA - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), imagePipeHandle( imagePipeHandle_ ) - {} - - VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT - { - imagePipeHandle = imagePipeHandle_; - return *this; - } - - - operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default; -#else - bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 ); - } - - bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {}; - zx_handle_t imagePipeHandle = {}; - - }; - static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImagePipeSurfaceCreateInfoFUCHSIA; - }; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - struct ImagePlaneMemoryRequirementsInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) - {} - - VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT - { - planeAspect = planeAspect_; - return *this; - } - - - operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default; -#else - bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); - } - - bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; - - }; - static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImagePlaneMemoryRequirementsInfo; - }; - using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo; - - struct ImageStencilUsageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT - : stencilUsage( stencilUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageStencilUsageCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT - { - stencilUsage = stencilUsage_; - return *this; - } - - - operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default; -#else - bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilUsage == rhs.stencilUsage ); - } - - bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {}; - - }; - static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageStencilUsageCreateInfo; - }; - using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo; - - struct ImageSwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageSwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - - operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ); - } - - bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - - }; - static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageSwapchainCreateInfoKHR; - }; - - struct ImageViewASTCDecodeModeEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT - : decodeMode( decodeMode_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageViewASTCDecodeModeEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT - { - decodeMode = decodeMode_; - return *this; - } - - - operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default; -#else - bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeMode == rhs.decodeMode ); - } - - bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined; - - }; - static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewASTCDecodeModeEXT; - }; - - struct ImageViewUsageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT - : usage( usage_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ImageViewUsageCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - - operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewUsageCreateInfo const& ) const = default; -#else - bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( usage == rhs.usage ); - } - - bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - - }; - static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewUsageCreateInfo; - }; - using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ImportAndroidHardwareBufferInfoANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportAndroidHardwareBufferInfoANDROID( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default; -#else - bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - struct AHardwareBuffer* buffer = {}; - - }; - static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportAndroidHardwareBufferInfoANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ImportMemoryFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportMemoryFdInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default; -#else - bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryFdInfoKHR; - }; - - struct ImportMemoryHostPointerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), pHostPointer( pHostPointer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportMemoryHostPointerInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT - { - pHostPointer = pHostPointer_; - return *this; - } - - - operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default; -#else - bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( pHostPointer == rhs.pHostPointer ); - } - - bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - void* pHostPointer = {}; - - }; - static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryHostPointerInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), handle( handle_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ImportMemoryWin32HandleInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - - operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default; -#else - bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ); - } - - bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {}; - HANDLE handle = {}; - - }; - static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryWin32HandleInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct InputAttachmentAspectReference - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT - : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ ) - {} - - VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - : InputAttachmentAspectReference( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentIndex = inputAttachmentIndex_; - return *this; - } - - InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - - operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InputAttachmentAspectReference const& ) const = default; -#else - bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subpass == rhs.subpass ) - && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) - && ( aspectMask == rhs.aspectMask ); - } - - bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t subpass = {}; - uint32_t inputAttachmentIndex = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - - }; - static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference; - - struct InstanceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InstanceCreateInfo(VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ) - {} - - VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : InstanceCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {} ) - : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT - { - pApplicationInfo = pApplicationInfo_; - return *this; - } - - InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = enabledLayerCount_; - return *this; - } - - InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledLayerNames = ppEnabledLayerNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); - ppEnabledLayerNames = pEnabledLayerNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = enabledExtensionCount_; - return *this; - } - - InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledExtensionNames = ppEnabledExtensionNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); - ppEnabledExtensionNames = pEnabledExtensionNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InstanceCreateInfo const& ) const = default; -#else - bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pApplicationInfo == rhs.pApplicationInfo ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ); - } - - bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {}; - const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {}; - uint32_t enabledLayerCount = {}; - const char* const * ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const * ppEnabledExtensionNames = {}; - - }; - static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = InstanceCreateInfo; - }; - -#ifdef VK_USE_PLATFORM_MACOS_MVK - struct MacOSSurfaceCreateInfoMVK - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pView( pView_ ) - {} - - VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - : MacOSSurfaceCreateInfoMVK( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT - { - pView = pView_; - return *this; - } - - - operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default; -#else - bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); - } - - bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; - - }; - static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MacOSSurfaceCreateInfoMVK; - }; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - struct MemoryAllocateFlagsInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryAllocateFlagsInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default; -#else - bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryAllocateFlagsInfo; - }; - using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo; - - struct MemoryDedicatedAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryDedicatedAllocateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default; -#else - bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryDedicatedAllocateInfo; - }; - using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo; - - struct MemoryDedicatedRequirements - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryDedicatedRequirements( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryDedicatedRequirements const& ) const = default; -#else - bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) - && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation ); - } - - bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {}; - VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {}; - - }; - static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryDedicatedRequirements; - }; - using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements; - - struct MemoryOpaqueCaptureAddressAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryOpaqueCaptureAddressAllocateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT - { - opaqueCaptureAddress = opaqueCaptureAddress_; - return *this; - } - - - operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default; -#else - bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); - } - - bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; - - }; - static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryOpaqueCaptureAddressAllocateInfo; - }; - using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo; - - struct MemoryPriorityAllocateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT - : priority( priority_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : MemoryPriorityAllocateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT - { - priority = priority_; - return *this; - } - - - operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default; -#else - bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( priority == rhs.priority ); - } - - bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT; - const void* pNext = {}; - float priority = {}; - - }; - static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryPriorityAllocateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_METAL_EXT - struct MetalSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pLayer( pLayer_ ) - {} - - VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : MetalSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT - { - pLayer = pLayer_; - return *this; - } - - - operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pLayer == rhs.pLayer ); - } - - bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {}; - const CAMetalLayer* pLayer = {}; - - }; - static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MetalSurfaceCreateInfoEXT; - }; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - struct MutableDescriptorTypeListVALVE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE(uint32_t descriptorTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorTypeCount( descriptorTypeCount_ ), pDescriptorTypes( pDescriptorTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeListVALVE( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - : MutableDescriptorTypeListVALVE( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeListVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorTypes_ ) - : descriptorTypeCount( static_cast( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListVALVE & operator=( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeListVALVE & operator=( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorTypeCount = descriptorTypeCount_; - return *this; - } - - MutableDescriptorTypeListVALVE & setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorTypes = pDescriptorTypes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeListVALVE & setDescriptorTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT - { - descriptorTypeCount = static_cast( descriptorTypes_.size() ); - pDescriptorTypes = descriptorTypes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkMutableDescriptorTypeListVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMutableDescriptorTypeListVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MutableDescriptorTypeListVALVE const& ) const = default; -#else - bool operator==( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( descriptorTypeCount == rhs.descriptorTypeCount ) - && ( pDescriptorTypes == rhs.pDescriptorTypes ); - } - - bool operator!=( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t descriptorTypeCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes = {}; - - }; - static_assert( sizeof( MutableDescriptorTypeListVALVE ) == sizeof( VkMutableDescriptorTypeListVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MutableDescriptorTypeCreateInfoVALVE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoVALVE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE(uint32_t mutableDescriptorTypeListCount_ = {}, const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ = {}) VULKAN_HPP_NOEXCEPT - : mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ ), pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ ) - {} - - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeCreateInfoVALVE( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - : MutableDescriptorTypeCreateInfoVALVE( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeCreateInfoVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mutableDescriptorTypeLists_ ) - : mutableDescriptorTypeListCount( static_cast( mutableDescriptorTypeLists_.size() ) ), pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE & operator=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeCreateInfoVALVE & operator=( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_; - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT - { - pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorTypeListCount = static_cast( mutableDescriptorTypeLists_.size() ); - pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkMutableDescriptorTypeCreateInfoVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMutableDescriptorTypeCreateInfoVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MutableDescriptorTypeCreateInfoVALVE const& ) const = default; -#else - bool operator==( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount ) - && ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists ); - } - - bool operator!=( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoVALVE; - const void* pNext = {}; - uint32_t mutableDescriptorTypeListCount = {}; - const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists = {}; - - }; - static_assert( sizeof( MutableDescriptorTypeCreateInfoVALVE ) == sizeof( VkMutableDescriptorTypeCreateInfoVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MutableDescriptorTypeCreateInfoVALVE; - }; - - union PerformanceCounterResultKHR - { - PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); - } - - PerformanceCounterResultKHR( int32_t int32_ = {} ) - : int32( int32_ ) - {} - - PerformanceCounterResultKHR( int64_t int64_ ) - : int64( int64_ ) - {} - - PerformanceCounterResultKHR( uint32_t uint32_ ) - : uint32( uint32_ ) - {} - - PerformanceCounterResultKHR( uint64_t uint64_ ) - : uint64( uint64_ ) - {} - - PerformanceCounterResultKHR( float float32_ ) - : float32( float32_ ) - {} - - PerformanceCounterResultKHR( double float64_ ) - : float64( float64_ ) - {} - - PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT - { - int32 = int32_; - return *this; - } - - PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT - { - int64 = int64_; - return *this; - } - - PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT - { - uint32 = uint32_; - return *this; - } - - PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT - { - uint64 = uint64_; - return *this; - } - - PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT - { - float32 = float32_; - return *this; - } - - PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT - { - float64 = float64_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); - return *this; - } - - operator VkPerformanceCounterResultKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkPerformanceCounterResultKHR &() - { - return *reinterpret_cast(this); - } - - int32_t int32; - int64_t int64; - uint32_t uint32; - uint64_t uint64; - float float32; - double float64; - }; - - struct PerformanceQuerySubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT - : counterPassIndex( counterPassIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PerformanceQuerySubmitInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT - { - counterPassIndex = counterPassIndex_; - return *this; - } - - - operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default; -#else - bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( counterPassIndex == rhs.counterPassIndex ); - } - - bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR; - const void* pNext = {}; - uint32_t counterPassIndex = {}; - - }; - static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceQuerySubmitInfoKHR; - }; - - struct PhysicalDevice16BitStorageFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevice16BitStorageFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer16BitAccess = storageBuffer16BitAccess_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant16 = storagePushConstant16_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT - { - storageInputOutput16 = storageInputOutput16_; - return *this; - } - - - operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default; -#else - bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ); - } - - bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); + operator T const *() const VULKAN_HPP_NOEXCEPT + { + return this->data(); + } + + operator T *() VULKAN_HPP_NOEXCEPT + { + return this->data(); + } + + template ::value, int>::type = 0> + operator std::string() const + { + return std::string( this->data() ); + } + +#if 17 <= VULKAN_HPP_CPP_VERSION + template ::value, int>::type = 0> + operator std::string_view() const + { + return std::string_view( this->data() ); } #endif - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; - - }; - static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice16BitStorageFeatures; - }; - using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures; - - struct PhysicalDevice4444FormatsFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT - : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT - { - formatA4R4G4B4 = formatA4R4G4B4_; - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT - { - formatA4B4G4R4 = formatA4B4G4R4_; - return *this; - } - - - operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 ) - && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 ); - } - - bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {}; - VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {}; - - }; - static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice4444FormatsFeaturesEXT; - }; - - struct PhysicalDevice8BitStorageFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevice8BitStorageFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer8BitAccess = storageBuffer8BitAccess_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant8 = storagePushConstant8_; - return *this; - } - - - operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default; -#else - bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ); - } - - bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; - - }; - static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice8BitStorageFeatures; - }; - using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures; - - struct PhysicalDeviceASTCDecodeFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT - : decodeModeSharedExponent( decodeModeSharedExponent_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT - { - decodeModeSharedExponent = decodeModeSharedExponent_; - return *this; - } - - - operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent ); - } - - bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {}; - - }; - static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceASTCDecodeFeaturesEXT; - }; - - struct PhysicalDeviceAccelerationStructureFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ), accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ ), accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ ), accelerationStructureHostCommands( accelerationStructureHostCommands_ ), descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceAccelerationStructureFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureHostCommands = accelerationStructureHostCommands_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_; - return *this; - } - - - operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ) - && ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay ) - && ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild ) - && ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands ) - && ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind ); - } - - bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {}; - - }; - static_assert( sizeof( PhysicalDeviceAccelerationStructureFeaturesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructureFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceAccelerationStructureFeaturesKHR; - }; - - struct PhysicalDeviceAccelerationStructurePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR(uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxPerStageDescriptorAccelerationStructures_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {}, uint32_t minAccelerationStructureScratchOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ ), maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ ), minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceAccelerationStructurePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxGeometryCount == rhs.maxGeometryCount ) - && ( maxInstanceCount == rhs.maxInstanceCount ) - && ( maxPrimitiveCount == rhs.maxPrimitiveCount ) - && ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures ) - && ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) - && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ) - && ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) - && ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment ); - } - - bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; - void* pNext = {}; - uint64_t maxGeometryCount = {}; - uint64_t maxInstanceCount = {}; - uint64_t maxPrimitiveCount = {}; - uint32_t maxPerStageDescriptorAccelerationStructures = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {}; - uint32_t maxDescriptorSetAccelerationStructures = {}; - uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {}; - uint32_t minAccelerationStructureScratchOffsetAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceAccelerationStructurePropertiesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructurePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceAccelerationStructurePropertiesKHR; - }; - - struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT - : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT - { - advancedBlendCoherentOperations = advancedBlendCoherentOperations_; - return *this; - } - - - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations ); - } - - bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {}; - - }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT; - }; - - struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT(uint32_t advancedBlendMaxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {}) VULKAN_HPP_NOEXCEPT - : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) - && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) - && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) - && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) - && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) - && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations ); - } - - bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; - void* pNext = {}; - uint32_t advancedBlendMaxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {}; - - }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT; - }; - - struct PhysicalDeviceBufferDeviceAddressFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceBufferDeviceAddressFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - - operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); - } - - bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - - }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBufferDeviceAddressFeatures; - }; - using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures; - - struct PhysicalDeviceBufferDeviceAddressFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceBufferDeviceAddressFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); - } - - bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - - }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT; - }; - using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT; - - struct PhysicalDeviceCoherentMemoryFeaturesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT - : deviceCoherentMemory( deviceCoherentMemory_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCoherentMemoryFeaturesAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT - { - deviceCoherentMemory = deviceCoherentMemory_; - return *this; - } - - - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default; -#else - bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceCoherentMemory == rhs.deviceCoherentMemory ); - } - - bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {}; - - }; - static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCoherentMemoryFeaturesAMD; - }; - - struct PhysicalDeviceComputeShaderDerivativesFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT - : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceComputeShaderDerivativesFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT - { - computeDerivativeGroupQuads = computeDerivativeGroupQuads_; - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT - { - computeDerivativeGroupLinear = computeDerivativeGroupLinear_; - return *this; - } - - - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) - && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear ); - } - - bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {}; - - }; - static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV; - }; - - struct PhysicalDeviceConditionalRenderingFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT - : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceConditionalRenderingFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT - { - conditionalRendering = conditionalRendering_; - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT - { - inheritedConditionalRendering = inheritedConditionalRendering_; - return *this; - } - - - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRendering == rhs.conditionalRendering ) - && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering ); - } - - bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {}; - - }; - static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceConditionalRenderingFeaturesEXT; - }; - - struct PhysicalDeviceConservativeRasterizationPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT(float primitiveOverestimationSize_ = {}, float maxExtraPrimitiveOverestimationSize_ = {}, float extraPrimitiveOverestimationSizeGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {}) VULKAN_HPP_NOEXCEPT - : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceConservativeRasterizationPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) - && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) - && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) - && ( primitiveUnderestimation == rhs.primitiveUnderestimation ) - && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) - && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) - && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) - && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) - && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage ); - } - - bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; - void* pNext = {}; - float primitiveOverestimationSize = {}; - float maxExtraPrimitiveOverestimationSize = {}; - float extraPrimitiveOverestimationSizeGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {}; - - }; - static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT; - }; - - struct PhysicalDeviceCooperativeMatrixFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT - : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCooperativeMatrixFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT - { - cooperativeMatrix = cooperativeMatrix_; - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT - { - cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_; - return *this; - } - - - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrix == rhs.cooperativeMatrix ) - && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess ); - } - - bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {}; - - }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCooperativeMatrixFeaturesNV; - }; - - struct PhysicalDeviceCooperativeMatrixPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT - : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCooperativeMatrixPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages ); - } - - bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCooperativeMatrixPropertiesNV; - }; - - struct PhysicalDeviceCornerSampledImageFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT - : cornerSampledImage( cornerSampledImage_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCornerSampledImageFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT - { - cornerSampledImage = cornerSampledImage_; - return *this; - } - - - operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cornerSampledImage == rhs.cornerSampledImage ); - } - - bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {}; - - }; - static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCornerSampledImageFeaturesNV; - }; - - struct PhysicalDeviceCoverageReductionModeFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCoverageReductionModeFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageReductionMode = coverageReductionMode_; - return *this; - } - - - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ); - } - - bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {}; - - }; - static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCoverageReductionModeFeaturesNV; - }; - - struct PhysicalDeviceCustomBorderColorFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT - : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCustomBorderColorFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColors = customBorderColors_; - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColorWithoutFormat = customBorderColorWithoutFormat_; - return *this; - } - - - operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( customBorderColors == rhs.customBorderColors ) - && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat ); - } - - bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + template ::value, int>::type = 0> + bool operator<( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) < *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator<=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) <= *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator>( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) > *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator>=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) >= *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator==( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) == *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator!=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) != *static_cast const *>( &rhs ); + } + }; + + // specialization of relational operators between std::string and arrays of chars + template + bool operator<( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs < rhs.data(); + } + + template + bool operator<=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs <= rhs.data(); + } + + template + bool operator>( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs > rhs.data(); + } + + template + bool operator>=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs >= rhs.data(); + } + + template + bool operator==( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs == rhs.data(); + } + + template + bool operator!=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs != rhs.data(); + } + + template + class ArrayWrapper2D : public std::array, N> + { public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {}; - VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {}; - - }; - static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCustomBorderColorFeaturesEXT; - }; - - struct PhysicalDeviceCustomBorderColorPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCustomBorderColorPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers ); - } - - bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; - void* pNext = {}; - uint32_t maxCustomBorderColorSamplers = {}; - - }; - static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCustomBorderColorPropertiesEXT; - }; - - struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_; - return *this; - } - - - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing ); - } - - bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {}; - - }; - static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - }; - - struct PhysicalDeviceDepthClipEnableFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT - : depthClipEnable( depthClipEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDepthClipEnableFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClipEnable = depthClipEnable_; - return *this; - } - - - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthClipEnable == rhs.depthClipEnable ); - } - - bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; - - }; - static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDepthClipEnableFeaturesEXT; - }; - - struct PhysicalDeviceDepthStencilResolveProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties(VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}) VULKAN_HPP_NOEXCEPT - : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDepthStencilResolveProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ); - } - - bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array, N>() {} + + VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array, N> const & data ) VULKAN_HPP_NOEXCEPT + : std::array, N>( *reinterpret_cast, N> const *>( &data ) ) + {} + }; + + template + struct FlagTraits + { + enum + { + allFlags = 0 + }; + }; + + template + class Flags + { public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; - - }; - static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDepthStencilResolveProperties; - }; - using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties; - - struct PhysicalDeviceDescriptorIndexingFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}) VULKAN_HPP_NOEXCEPT - : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDescriptorIndexingFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT - { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; - } - - - operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDescriptorIndexingFeatures; - }; - using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures; - - struct PhysicalDeviceDescriptorIndexingProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties(uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDescriptorIndexingProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; - void* pNext = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDescriptorIndexingProperties; - }; - using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties; - - struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT - : deviceGeneratedCommands( deviceGeneratedCommands_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT - { - deviceGeneratedCommands = deviceGeneratedCommands_; - return *this; - } - - - operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands ); - } - - bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - }; - - struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(uint32_t maxGraphicsShaderGroupCount_ = {}, uint32_t maxIndirectSequenceCount_ = {}, uint32_t maxIndirectCommandsTokenCount_ = {}, uint32_t maxIndirectCommandsStreamCount_ = {}, uint32_t maxIndirectCommandsTokenOffset_ = {}, uint32_t maxIndirectCommandsStreamStride_ = {}, uint32_t minSequencesCountBufferOffsetAlignment_ = {}, uint32_t minSequencesIndexBufferOffsetAlignment_ = {}, uint32_t minIndirectCommandsBufferOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default; + using MaskType = typename std::underlying_type::type; + + // constructors + VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {} + + VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast( bit ) ) {} + + VULKAN_HPP_CONSTEXPR Flags( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {} + + // relational operators +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Flags const & ) const = default; #else - bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount ) - && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) - && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) - && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount ) - && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) - && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride ) - && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment ) - && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment ) - && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment ); - } - - bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - void* pNext = {}; - uint32_t maxGraphicsShaderGroupCount = {}; - uint32_t maxIndirectSequenceCount = {}; - uint32_t maxIndirectCommandsTokenCount = {}; - uint32_t maxIndirectCommandsStreamCount = {}; - uint32_t maxIndirectCommandsTokenOffset = {}; - uint32_t maxIndirectCommandsStreamStride = {}; - uint32_t minSequencesCountBufferOffsetAlignment = {}; - uint32_t minSequencesIndexBufferOffsetAlignment = {}; - uint32_t minIndirectCommandsBufferOffsetAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - }; - - struct PhysicalDeviceDeviceMemoryReportFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMemoryReport( deviceMemoryReport_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDeviceMemoryReportFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT - { - deviceMemoryReport = deviceMemoryReport_; - return *this; - } - - - operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMemoryReport == rhs.deviceMemoryReport ); - } - - bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT; - }; - - struct PhysicalDeviceDiagnosticsConfigFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT - : diagnosticsConfig( diagnosticsConfig_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDiagnosticsConfigFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT - { - diagnosticsConfig = diagnosticsConfig_; - return *this; - } - - - operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( diagnosticsConfig == rhs.diagnosticsConfig ); - } - - bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {}; - - }; - static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV; - }; - - struct PhysicalDeviceDiscardRectanglePropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : maxDiscardRectangles( maxDiscardRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDiscardRectanglePropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDiscardRectangles == rhs.maxDiscardRectangles ); - } - - bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; - void* pNext = {}; - uint32_t maxDiscardRectangles = {}; - - }; - static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDiscardRectanglePropertiesEXT; - }; - - struct PhysicalDeviceDriverProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array const& driverName_ = {}, std::array const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceDriverProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( driverName == rhs.driverName ) - && ( driverInfo == rhs.driverInfo ) - && ( conformanceVersion == rhs.conformanceVersion ); - } - - bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; - - }; - static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDriverProperties; - }; - using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties; - - struct PhysicalDeviceExclusiveScissorFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT - : exclusiveScissor( exclusiveScissor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExclusiveScissorFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissor = exclusiveScissor_; - return *this; - } - - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissor == rhs.exclusiveScissor ); - } - - bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {}; - - }; - static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExclusiveScissorFeaturesNV; - }; - - struct PhysicalDeviceExtendedDynamicStateFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT - : extendedDynamicState( extendedDynamicState_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExtendedDynamicStateFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - extendedDynamicState = extendedDynamicState_; - return *this; - } - - - operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( extendedDynamicState == rhs.extendedDynamicState ); - } - - bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {}; - - }; - static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT; - }; - - struct PhysicalDeviceExternalImageFormatInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExternalImageFormatInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalImageFormatInfo; - }; - using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo; - - struct PhysicalDeviceExternalMemoryHostPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceExternalMemoryHostPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment ); - } - - bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT; - }; - - struct PhysicalDeviceFloatControlsProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}) VULKAN_HPP_NOEXCEPT - : denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFloatControlsProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ); - } - - bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - - }; - static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFloatControlsProperties; - }; - using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties; - - struct PhysicalDeviceFragmentDensityMap2FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentDensityMap2FeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapDeferred = fragmentDensityMapDeferred_; - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); + VULKAN_HPP_CONSTEXPR bool operator<( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask < rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator<=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask <= rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator>( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask > rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator>=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask >= rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator==( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask == rhs.m_mask; + } + + VULKAN_HPP_CONSTEXPR bool operator!=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_mask != rhs.m_mask; } #endif - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT; - }; - - struct PhysicalDeviceFragmentDensityMap2PropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentDensityMap2PropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subsampledLoads == rhs.subsampledLoads ) - && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess ) - && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers ) - && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {}; - uint32_t maxSubsampledArrayLayers = {}; - uint32_t maxDescriptorSetSubsampledSamplers = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT; - }; - - struct PhysicalDeviceFragmentDensityMapFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentDensityMapFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMap = fragmentDensityMap_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapDynamic = fragmentDensityMapDynamic_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_; - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMap == rhs.fragmentDensityMap ) - && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) - && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT; - }; - - struct PhysicalDeviceFragmentDensityMapPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT - : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentDensityMapPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) - && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) - && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT; - }; - - struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShaderBarycentric( fragmentShaderBarycentric_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShaderBarycentricFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderBarycentric = fragmentShaderBarycentric_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric ); - } - - bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV; - }; - - struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_; + // logical operator + VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT + { + return !m_mask; + } + + // bitwise operators + VULKAN_HPP_CONSTEXPR Flags operator&( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask & rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator|( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask | rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator^( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask ^ rhs.m_mask ); + } + + VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT + { + return Flags( m_mask ^ FlagTraits::allFlags ); + } + + // assignment operators + VULKAN_HPP_CONSTEXPR_14 Flags & operator=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VULKAN_HPP_CONSTEXPR_14 Flags & operator|=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask |= rhs.m_mask; return *this; } - - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) - && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) - && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock ); - } - - bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT; - }; - - struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShadingRateEnums( fragmentShadingRateEnums_ ), supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ), noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShadingRateEnums = fragmentShadingRateEnums_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT - { - supersampleFragmentShadingRates = supersampleFragmentShadingRates_; + VULKAN_HPP_CONSTEXPR_14 Flags & operator&=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask &= rhs.m_mask; return *this; } - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT - { - noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums ) - && ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates ) - && ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {}; - VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {}; - VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - }; - - struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1) VULKAN_HPP_NOEXCEPT - : maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT - { - maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_; + VULKAN_HPP_CONSTEXPR_14 Flags & operator^=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT + { + m_mask ^= rhs.m_mask; return *this; } - - operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + // cast operators + explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT + { + return !!m_mask; + } + + explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT + { + return m_mask; + } + +#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC ) public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - }; - - struct PhysicalDeviceFragmentShadingRateFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShadingRateFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - pipelineFragmentShadingRate = pipelineFragmentShadingRate_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - primitiveFragmentShadingRate = primitiveFragmentShadingRate_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - attachmentFragmentShadingRate = attachmentFragmentShadingRate_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const& ) const = default; #else - bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate ) - && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate ) - && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR; - }; - - struct PhysicalDeviceFragmentShadingRatePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, uint32_t maxFragmentSizeAspectRatio_ = {}, uint32_t maxFragmentShadingRateCoverageSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {}) VULKAN_HPP_NOEXCEPT - : minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ), primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ), layeredShadingRateAttachments( layeredShadingRateAttachments_ ), fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ), maxFragmentSize( maxFragmentSize_ ), maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ), maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ), maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ), fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ), fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ), fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ), fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ), fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ), fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ), fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceFragmentShadingRatePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize ) - && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize ) - && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio ) - && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports ) - && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments ) - && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps ) - && ( maxFragmentSize == rhs.maxFragmentSize ) - && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio ) - && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples ) - && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples ) - && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites ) - && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask ) - && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask ) - && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization ) - && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock ) - && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations ) - && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + private: #endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {}; - uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {}; - VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {}; - uint32_t maxFragmentSizeAspectRatio = {}; - uint32_t maxFragmentShadingRateCoverageSamples = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR; - }; - - struct PhysicalDeviceGroupProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties(uint32_t physicalDeviceCount_ = {}, std::array const& physicalDevices_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceGroupProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( physicalDevices == rhs.physicalDevices ) - && ( subsetAllocation == rhs.subsetAllocation ); - } - - bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties; - void* pNext = {}; - uint32_t physicalDeviceCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D physicalDevices = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceGroupProperties; - }; - using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties; - - struct PhysicalDeviceHostQueryResetFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT - : hostQueryReset( hostQueryReset_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT - { - hostQueryReset = hostQueryReset_; - return *this; - } - - - operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hostQueryReset == rhs.hostQueryReset ); - } - - bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - - }; - static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceHostQueryResetFeatures; - }; - using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures; - - struct PhysicalDeviceIDProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties(std::array const& deviceUUID_ = {}, std::array const& driverUUID_ = {}, std::array const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}) VULKAN_HPP_NOEXCEPT - : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceIDProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceIDProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceUUID == rhs.deviceUUID ) - && ( driverUUID == rhs.driverUUID ) - && ( deviceLUID == rhs.deviceLUID ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ); - } - - bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; - - }; - static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceIDProperties; - }; - using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties; - - struct PhysicalDeviceImageDrmFormatModifierInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT(uint64_t drmFormatModifier_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceImageDrmFormatModifierInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) - : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifier = drmFormatModifier_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); - } - - bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + MaskType m_mask; + }; + +#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + // relational operators only needed for pre C++20 + template + VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator>( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator>=( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator<( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator<=( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator==( bit ); + } + + template + VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator!=( bit ); + } #endif - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT; - }; - - struct PhysicalDeviceImageRobustnessFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT - : robustImageAccess( robustImageAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceImageRobustnessFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT - { - robustImageAccess = robustImageAccess_; - return *this; - } - - - operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustImageAccess == rhs.robustImageAccess ); - } - - bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageRobustnessFeaturesEXT; - }; - - struct PhysicalDeviceImageViewImageFormatInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT - : imageViewType( imageViewType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceImageViewImageFormatInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT - { - imageViewType = imageViewType_; - return *this; - } - - - operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageViewType == rhs.imageViewType ); - } - - bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - - }; - static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageViewImageFormatInfoEXT; - }; - - struct PhysicalDeviceImagelessFramebufferFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT - : imagelessFramebuffer( imagelessFramebuffer_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceImagelessFramebufferFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT - { - imagelessFramebuffer = imagelessFramebuffer_; - return *this; - } - - - operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ); - } - - bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - - }; - static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImagelessFramebufferFeatures; - }; - using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures; - - struct PhysicalDeviceIndexTypeUint8FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT - : indexTypeUint8( indexTypeUint8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceIndexTypeUint8FeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeUint8 = indexTypeUint8_; - return *this; - } - - - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( indexTypeUint8 == rhs.indexTypeUint8 ); - } - - bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {}; - - }; - static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT; - }; - - struct PhysicalDeviceInlineUniformBlockFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT - : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceInlineUniformBlockFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT - { - inlineUniformBlock = inlineUniformBlock_; - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_; - return *this; - } - - - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( inlineUniformBlock == rhs.inlineUniformBlock ) - && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ); - } - - bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + // bitwise operators + template + VULKAN_HPP_CONSTEXPR Flags operator&( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator&( bit ); + } + + template + VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator|( bit ); + } + + template + VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT + { + return flags.operator^( bit ); + } + + template + class Optional + { public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {}; - - }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT; - }; - - struct PhysicalDeviceInlineUniformBlockPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceInlineUniformBlockPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) - && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) - && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) - && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) - && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ); - } - - bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; - void* pNext = {}; - uint32_t maxInlineUniformBlockSize = {}; - uint32_t maxPerStageDescriptorInlineUniformBlocks = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {}; - uint32_t maxDescriptorSetInlineUniformBlocks = {}; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {}; - - }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT; - }; - - struct PhysicalDeviceLineRasterizationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {}) VULKAN_HPP_NOEXCEPT - : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceLineRasterizationFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT - { - rectangularLines = rectangularLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT - { - bresenhamLines = bresenhamLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT - { - smoothLines = smoothLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledRectangularLines = stippledRectangularLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledBresenhamLines = stippledBresenhamLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledSmoothLines = stippledSmoothLines_; - return *this; - } - - - operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rectangularLines == rhs.rectangularLines ) - && ( bresenhamLines == rhs.bresenhamLines ) - && ( smoothLines == rhs.smoothLines ) - && ( stippledRectangularLines == rhs.stippledRectangularLines ) - && ( stippledBresenhamLines == rhs.stippledBresenhamLines ) - && ( stippledSmoothLines == rhs.stippledSmoothLines ); - } - - bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {}; - - }; - static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceLineRasterizationFeaturesEXT; - }; - - struct PhysicalDeviceLineRasterizationPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT - : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceLineRasterizationPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits ); - } - - bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; - void* pNext = {}; - uint32_t lineSubPixelPrecisionBits = {}; - - }; - static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceLineRasterizationPropertiesEXT; - }; - - struct PhysicalDeviceMaintenance3Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMaintenance3Properties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); - } - - bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - + Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT + { + m_ptr = &reference; + } + Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT + { + m_ptr = ptr; + } + Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_ptr = nullptr; + } + + operator RefType *() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + RefType const * operator->() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return !!m_ptr; + } + + private: + RefType * m_ptr; + }; + + template + struct StructExtends + { + enum + { + value = false + }; + }; + + template + struct IsPartOfStructureChain + { + static const bool valid = false; + }; + + template + struct IsPartOfStructureChain + { + static const bool valid = std::is_same::value || IsPartOfStructureChain::valid; + }; + + template + struct StructureChainContains + { + static const bool value = + std::is_same>::type>::value || + StructureChainContains::value; + }; + + template + struct StructureChainContains<0, T, ChainElements...> + { + static const bool value = + std::is_same>::type>::value; + }; + + template + struct StructureChainValidation + { + using TestType = typename std::tuple_element>::type; + static const bool valid = + StructExtends>::type>::value && + ( TestType::allowDuplicate || !StructureChainContains::value ) && + StructureChainValidation::valid; + }; + + template + struct StructureChainValidation<0, ChainElements...> + { + static const bool valid = true; + }; + + template + class StructureChain : public std::tuple + { public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties; - void* pNext = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMaintenance3Properties; - }; - using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties; - - struct PhysicalDeviceMemoryBudgetPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT(std::array const& heapBudget_ = {}, std::array const& heapUsage_ = {}) VULKAN_HPP_NOEXCEPT - : heapBudget( heapBudget_ ), heapUsage( heapUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMemoryBudgetPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( heapBudget == rhs.heapBudget ) - && ( heapUsage == rhs.heapUsage ); - } - - bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapBudget = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapUsage = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryBudgetPropertiesEXT; - }; - - struct PhysicalDeviceMemoryPriorityFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT - : memoryPriority( memoryPriority_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMemoryPriorityFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT - { - memoryPriority = memoryPriority_; - return *this; - } - - - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryPriority == rhs.memoryPriority ); - } - - bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryPriorityFeaturesEXT; - }; - - struct PhysicalDeviceMeshShaderFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT - : taskShader( taskShader_ ), meshShader( meshShader_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT - { - taskShader = taskShader_; - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT - { - meshShader = meshShader_; - return *this; - } - - - operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( taskShader == rhs.taskShader ) - && ( meshShader == rhs.meshShader ); - } - - bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 taskShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 meshShader = {}; - - }; - static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMeshShaderFeaturesNV; - }; - - struct PhysicalDeviceMeshShaderPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV(uint32_t maxDrawMeshTasksCount_ = {}, uint32_t maxTaskWorkGroupInvocations_ = {}, std::array const& maxTaskWorkGroupSize_ = {}, uint32_t maxTaskTotalMemorySize_ = {}, uint32_t maxTaskOutputCount_ = {}, uint32_t maxMeshWorkGroupInvocations_ = {}, std::array const& maxMeshWorkGroupSize_ = {}, uint32_t maxMeshTotalMemorySize_ = {}, uint32_t maxMeshOutputVertices_ = {}, uint32_t maxMeshOutputPrimitives_ = {}, uint32_t maxMeshMultiviewViewCount_ = {}, uint32_t meshOutputPerVertexGranularity_ = {}, uint32_t meshOutputPerPrimitiveGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ), maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ), maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ), maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ), maxTaskOutputCount( maxTaskOutputCount_ ), maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ), maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ), maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ), maxMeshOutputVertices( maxMeshOutputVertices_ ), maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ), maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ), meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ), meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) - && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) - && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) - && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) - && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) - && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) - && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) - && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) - && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) - && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) - && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) - && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) - && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ); - } - - bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; - void* pNext = {}; - uint32_t maxDrawMeshTasksCount = {}; - uint32_t maxTaskWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxTaskWorkGroupSize = {}; - uint32_t maxTaskTotalMemorySize = {}; - uint32_t maxTaskOutputCount = {}; - uint32_t maxMeshWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxMeshWorkGroupSize = {}; - uint32_t maxMeshTotalMemorySize = {}; - uint32_t maxMeshOutputVertices = {}; - uint32_t maxMeshOutputPrimitives = {}; - uint32_t maxMeshMultiviewViewCount = {}; - uint32_t meshOutputPerVertexGranularity = {}; - uint32_t meshOutputPerPrimitiveGranularity = {}; - - }; - static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMeshShaderPropertiesNV; - }; - - struct PhysicalDeviceMultiviewFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT - : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMultiviewFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT - { - multiview = multiview_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewTessellationShader = multiviewTessellationShader_; - return *this; - } - - - operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ); - } - - bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewFeatures; - }; - using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures; - - struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT - : perViewPositionAllComponents( perViewPositionAllComponents_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); + StructureChain() VULKAN_HPP_NOEXCEPT + { + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); + } + + StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple( rhs ) + { + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); + } + + StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT + : std::tuple( std::forward>( rhs ) ) + { + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); + } + + StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple( elems... ) + { + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); + } + + StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT + { + std::tuple::operator=( rhs ); + link(); return *this; } - - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents ); - } - - bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - }; - - struct PhysicalDeviceMultiviewProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT - : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMultiviewProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ); - } - - bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties; - void* pNext = {}; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewProperties; - }; - using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties; - - struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE(VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {}) VULKAN_HPP_NOEXCEPT - : mutableDescriptorType( mutableDescriptorType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorType = mutableDescriptorType_; - return *this; - } - - - operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& ) const = default; -#else - bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mutableDescriptorType == rhs.mutableDescriptorType ); - } - - bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {}; - - }; - static_assert( sizeof( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE ) == sizeof( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - }; - - struct PhysicalDevicePCIBusInfoPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT - : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePCIBusInfoPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pciDomain == rhs.pciDomain ) - && ( pciBus == rhs.pciBus ) - && ( pciDevice == rhs.pciDevice ) - && ( pciFunction == rhs.pciFunction ); - } - - bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - void* pNext = {}; - uint32_t pciDomain = {}; - uint32_t pciBus = {}; - uint32_t pciDevice = {}; - uint32_t pciFunction = {}; - - }; - static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePCIBusInfoPropertiesEXT; - }; - - struct PhysicalDevicePerformanceQueryFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT - : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePerformanceQueryFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT - { - performanceCounterQueryPools = performanceCounterQueryPools_; - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT - { - performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_; - return *this; - } - - - operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) - && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools ); - } - - bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {}; - - }; - static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePerformanceQueryFeaturesKHR; - }; - - struct PhysicalDevicePerformanceQueryPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT - : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePerformanceQueryPropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies ); - } - - bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {}; - - }; - static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePerformanceQueryPropertiesKHR; - }; - - struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineCreationCacheControl( pipelineCreationCacheControl_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePipelineCreationCacheControlFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCreationCacheControl = pipelineCreationCacheControl_; - return *this; - } - - - operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl ); - } - - bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {}; - - }; - static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT; - }; - - struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineExecutableInfo( pipelineExecutableInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT - { - pipelineExecutableInfo = pipelineExecutableInfo_; - return *this; - } - - - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo ); - } - - bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {}; - - }; - static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - }; - - struct PhysicalDevicePointClippingProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT - : pointClippingBehavior( pointClippingBehavior_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePointClippingProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default; -#else - bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ); - } - - bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; - - }; - static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePointClippingProperties; - }; - using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties; - -#ifdef VK_ENABLE_BETA_EXTENSIONS - struct PhysicalDevicePortabilitySubsetFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 events_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {}) VULKAN_HPP_NOEXCEPT - : constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ ), events( events_ ), imageViewFormatReinterpretation( imageViewFormatReinterpretation_ ), imageViewFormatSwizzle( imageViewFormatSwizzle_ ), imageView2DOn3DImage( imageView2DOn3DImage_ ), multisampleArrayImage( multisampleArrayImage_ ), mutableComparisonSamplers( mutableComparisonSamplers_ ), pointPolygons( pointPolygons_ ), samplerMipLodBias( samplerMipLodBias_ ), separateStencilMaskRef( separateStencilMaskRef_ ), shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ ), tessellationIsolines( tessellationIsolines_ ), tessellationPointMode( tessellationPointMode_ ), triangleFans( triangleFans_ ), vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePortabilitySubsetFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT - { - constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT - { - events = events_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT - { - imageViewFormatReinterpretation = imageViewFormatReinterpretation_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT - { - imageViewFormatSwizzle = imageViewFormatSwizzle_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT - { - imageView2DOn3DImage = imageView2DOn3DImage_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT - { - multisampleArrayImage = multisampleArrayImage_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT - { - mutableComparisonSamplers = mutableComparisonSamplers_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT - { - pointPolygons = pointPolygons_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT - { - samplerMipLodBias = samplerMipLodBias_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT - { - separateStencilMaskRef = separateStencilMaskRef_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT - { - tessellationIsolines = tessellationIsolines_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT - { - tessellationPointMode = tessellationPointMode_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT - { - triangleFans = triangleFans_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_; - return *this; - } - - - operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors ) - && ( events == rhs.events ) - && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation ) - && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle ) - && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage ) - && ( multisampleArrayImage == rhs.multisampleArrayImage ) - && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers ) - && ( pointPolygons == rhs.pointPolygons ) - && ( samplerMipLodBias == rhs.samplerMipLodBias ) - && ( separateStencilMaskRef == rhs.separateStencilMaskRef ) - && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions ) - && ( tessellationIsolines == rhs.tessellationIsolines ) - && ( tessellationPointMode == rhs.tessellationPointMode ) - && ( triangleFans == rhs.triangleFans ) - && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride ); - } - - bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - + StructureChain & operator=( StructureChain && rhs ) = delete; + + template >::type, size_t Which = 0> + T & get() VULKAN_HPP_NOEXCEPT + { + return std::get::value>( + static_cast &>( *this ) ); + } + + template >::type, size_t Which = 0> + T const & get() const VULKAN_HPP_NOEXCEPT + { + return std::get::value>( + static_cast const &>( *this ) ); + } + + template + std::tuple get() VULKAN_HPP_NOEXCEPT + { + return std::tie( get(), get(), get()... ); + } + + template + std::tuple get() const VULKAN_HPP_NOEXCEPT + { + return std::tie( get(), get(), get()... ); + } + + template + typename std::enable_if< + std::is_same>::type>::value && + ( Which == 0 ), + bool>::type + isLinked() const VULKAN_HPP_NOEXCEPT + { + return true; + } + + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + bool>::type + isLinked() const VULKAN_HPP_NOEXCEPT + { + static_assert( IsPartOfStructureChain::valid, + "Can't unlink Structure that's not part of this StructureChain!" ); + return isLinked( reinterpret_cast( &get() ) ); + } + + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + void>::type + relink() VULKAN_HPP_NOEXCEPT + { + static_assert( IsPartOfStructureChain::valid, + "Can't relink Structure that's not part of this StructureChain!" ); + auto pNext = reinterpret_cast( &get() ); + VULKAN_HPP_ASSERT( !isLinked( pNext ) ); + auto & headElement = std::get<0>( static_cast &>( *this ) ); + pNext->pNext = reinterpret_cast( headElement.pNext ); + headElement.pNext = pNext; + } + + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + void>::type + unlink() VULKAN_HPP_NOEXCEPT + { + static_assert( IsPartOfStructureChain::valid, + "Can't unlink Structure that's not part of this StructureChain!" ); + unlink( reinterpret_cast( &get() ) ); + } + + private: + template + struct ChainElementIndex : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : std::integral_constant + {}; + + bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT + { + VkBaseInStructure const * elementPtr = reinterpret_cast( + &std::get<0>( static_cast const &>( *this ) ) ); + while ( elementPtr ) + { + if ( elementPtr->pNext == pNext ) + { + return true; + } + elementPtr = elementPtr->pNext; + } + return false; + } + + template + typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT + { + auto & x = std::get( static_cast &>( *this ) ); + x.pNext = &std::get( static_cast &>( *this ) ); + link(); + } + + template + typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT + {} + + void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT + { + VkBaseOutStructure * elementPtr = + reinterpret_cast( &std::get<0>( static_cast &>( *this ) ) ); + while ( elementPtr && ( elementPtr->pNext != pNext ) ) + { + elementPtr = elementPtr->pNext; + } + if ( elementPtr ) + { + elementPtr->pNext = pNext->pNext; + } + else + { + VULKAN_HPP_ASSERT( false ); // fires, if the ClassType member has already been unlinked ! + } + } + }; + +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + template + class UniqueHandleTraits; + + template + class UniqueHandle : public UniqueHandleTraits::deleter + { + private: + using Deleter = typename UniqueHandleTraits::deleter; public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {}; - VULKAN_HPP_NAMESPACE::Bool32 events = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {}; - VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {}; - VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {}; - - }; - static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePortabilitySubsetFeaturesKHR; - }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - -#ifdef VK_ENABLE_BETA_EXTENSIONS - struct PhysicalDevicePortabilitySubsetPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePortabilitySubsetPropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT - { - minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_; - return *this; - } - - - operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment ); - } - - bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; - void* pNext = {}; - uint32_t minVertexInputBindingStrideAlignment = {}; - - }; - static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePortabilitySubsetPropertiesKHR; - }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - - struct PhysicalDevicePrivateDataFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT - : privateData( privateData_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePrivateDataFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT - { - privateData = privateData_; - return *this; - } - - - operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( privateData == rhs.privateData ); - } - - bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 privateData = {}; - - }; - static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePrivateDataFeaturesEXT; - }; - - struct PhysicalDeviceProtectedMemoryFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT - : protectedMemory( protectedMemory_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceProtectedMemoryFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT - { - protectedMemory = protectedMemory_; - return *this; - } - - - operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedMemory == rhs.protectedMemory ); - } - - bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; - - }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProtectedMemoryFeatures; - }; - - struct PhysicalDeviceProtectedMemoryProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT - : protectedNoFault( protectedNoFault_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceProtectedMemoryProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedNoFault == rhs.protectedNoFault ); - } - - bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; - - }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProtectedMemoryProperties; - }; - - struct PhysicalDevicePushDescriptorPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT - : maxPushDescriptors( maxPushDescriptors_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDevicePushDescriptorPropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPushDescriptors == rhs.maxPushDescriptors ); - } - - bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; - void* pNext = {}; - uint32_t maxPushDescriptors = {}; - - }; - static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePushDescriptorPropertiesKHR; - }; - - struct PhysicalDeviceRayQueryFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}) VULKAN_HPP_NOEXCEPT - : rayQuery( rayQuery_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT - { - rayQuery = rayQuery_; - return *this; - } - - - operator VkPhysicalDeviceRayQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rayQuery == rhs.rayQuery ); - } - - bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayQueryFeaturesKHR; - }; - - struct PhysicalDeviceRayTracingPipelineFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {}) VULKAN_HPP_NOEXCEPT - : rayTracingPipeline( rayTracingPipeline_ ), rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ ), rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ), rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ ), rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRayTracingPipelineFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipeline = rayTracingPipeline_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT - { - rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_; - return *this; - } - - - operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rayTracingPipeline == rhs.rayTracingPipeline ) - && ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay ) - && ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed ) - && ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect ) - && ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling ); - } - - bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPipelineFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR; - }; - - struct PhysicalDeviceRayTracingPipelinePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRayRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}, uint32_t maxRayDispatchInvocationCount_ = {}, uint32_t shaderGroupHandleAlignment_ = {}, uint32_t maxRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT - : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRayRecursionDepth( maxRayRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ ), maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ ), shaderGroupHandleAlignment( shaderGroupHandleAlignment_ ), maxRayHitAttributeSize( maxRayHitAttributeSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRayTracingPipelinePropertiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) - && ( maxRayRecursionDepth == rhs.maxRayRecursionDepth ) - && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) - && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) - && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize ) - && ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount ) - && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment ) - && ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize ); - } - - bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; - void* pNext = {}; - uint32_t shaderGroupHandleSize = {}; - uint32_t maxRayRecursionDepth = {}; - uint32_t maxShaderGroupStride = {}; - uint32_t shaderGroupBaseAlignment = {}; - uint32_t shaderGroupHandleCaptureReplaySize = {}; - uint32_t maxRayDispatchInvocationCount = {}; - uint32_t shaderGroupHandleAlignment = {}; - uint32_t maxRayHitAttributeSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPipelinePropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR; - }; - - struct PhysicalDeviceRayTracingPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxTriangleCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) - && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) - && ( maxGeometryCount == rhs.maxGeometryCount ) - && ( maxInstanceCount == rhs.maxInstanceCount ) - && ( maxTriangleCount == rhs.maxTriangleCount ) - && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ); - } - - bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; - void* pNext = {}; - uint32_t shaderGroupHandleSize = {}; - uint32_t maxRecursionDepth = {}; - uint32_t maxShaderGroupStride = {}; - uint32_t shaderGroupBaseAlignment = {}; - uint64_t maxGeometryCount = {}; - uint64_t maxInstanceCount = {}; - uint64_t maxTriangleCount = {}; - uint32_t maxDescriptorSetAccelerationStructures = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPropertiesNV; - }; - - struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT - : representativeFragmentTest( representativeFragmentTest_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT - { - representativeFragmentTest = representativeFragmentTest_; - return *this; - } - - - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTest == rhs.representativeFragmentTest ); - } - - bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {}; - - }; - static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV; - }; - - struct PhysicalDeviceRobustness2FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT - : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT - { - robustBufferAccess2 = robustBufferAccess2_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT - { - robustImageAccess2 = robustImageAccess2_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT - { - nullDescriptor = nullDescriptor_; - return *this; - } - - - operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustBufferAccess2 == rhs.robustBufferAccess2 ) - && ( robustImageAccess2 == rhs.robustImageAccess2 ) - && ( nullDescriptor == rhs.nullDescriptor ); - } - - bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {}; - - }; - static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRobustness2FeaturesEXT; - }; - - struct PhysicalDeviceRobustness2PropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceRobustness2PropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment ) - && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment ); - } - - bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRobustness2PropertiesEXT; - }; - - struct PhysicalDeviceSampleLocationsPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, std::array const& sampleLocationCoordinateRange_ = {}, uint32_t sampleLocationSubPixelBits_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSampleLocationsPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) - && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange ) - && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) - && ( variableSampleLocations == rhs.variableSampleLocations ); - } - - bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D sampleLocationCoordinateRange = {}; - uint32_t sampleLocationSubPixelBits = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {}; - - }; - static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSampleLocationsPropertiesEXT; - }; - - struct PhysicalDeviceSamplerFilterMinmaxProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT - : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSamplerFilterMinmaxProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ); - } - - bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; - - }; - static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSamplerFilterMinmaxProperties; - }; - using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties; - - struct PhysicalDeviceSamplerYcbcrConversionFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT - : samplerYcbcrConversion( samplerYcbcrConversion_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSamplerYcbcrConversionFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT - { - samplerYcbcrConversion = samplerYcbcrConversion_; - return *this; - } - - - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ); - } - - bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - - }; - static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSamplerYcbcrConversionFeatures; - }; - using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures; - - struct PhysicalDeviceScalarBlockLayoutFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT - : scalarBlockLayout( scalarBlockLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceScalarBlockLayoutFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT - { - scalarBlockLayout = scalarBlockLayout_; - return *this; - } - - - operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ); - } - - bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; - - }; - static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceScalarBlockLayoutFeatures; - }; - using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures; - - struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : separateDepthStencilLayouts( separateDepthStencilLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT - { - separateDepthStencilLayouts = separateDepthStencilLayouts_; - return *this; - } - - - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ); - } - - bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; - - }; - static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - }; - using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - - struct PhysicalDeviceShaderAtomicFloatFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {}) VULKAN_HPP_NOEXCEPT - : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderAtomicFloatFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageFloat32Atomics = shaderImageFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageFloat32Atomics = sparseImageFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_; - return *this; - } - - - operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics ) - && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd ) - && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics ) - && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd ) - && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics ) - && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd ) - && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics ) - && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd ) - && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics ) - && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd ) - && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics ) - && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd ); - } - - bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT; - }; - - struct PhysicalDeviceShaderAtomicInt64Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT - : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderAtomicInt64Features( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; - return *this; - } - - - operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ); - } - - bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderAtomicInt64Features; - }; - using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features; - - struct PhysicalDeviceShaderClockFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupClock = shaderSubgroupClock_; - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT - { - shaderDeviceClock = shaderDeviceClock_; - return *this; - } - - - operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) - && ( shaderDeviceClock == rhs.shaderDeviceClock ); - } - - bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderClockFeaturesKHR; - }; - - struct PhysicalDeviceShaderCoreProperties2AMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT - : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderCoreProperties2AMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) - && ( activeComputeUnitCount == rhs.activeComputeUnitCount ); - } - - bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {}; - uint32_t activeComputeUnitCount = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderCoreProperties2AMD; - }; - - struct PhysicalDeviceShaderCorePropertiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD(uint32_t shaderEngineCount_ = {}, uint32_t shaderArraysPerEngineCount_ = {}, uint32_t computeUnitsPerShaderArray_ = {}, uint32_t simdPerComputeUnit_ = {}, uint32_t wavefrontsPerSimd_ = {}, uint32_t wavefrontSize_ = {}, uint32_t sgprsPerSimd_ = {}, uint32_t minSgprAllocation_ = {}, uint32_t maxSgprAllocation_ = {}, uint32_t sgprAllocationGranularity_ = {}, uint32_t vgprsPerSimd_ = {}, uint32_t minVgprAllocation_ = {}, uint32_t maxVgprAllocation_ = {}, uint32_t vgprAllocationGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : shaderEngineCount( shaderEngineCount_ ), shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ), computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ), simdPerComputeUnit( simdPerComputeUnit_ ), wavefrontsPerSimd( wavefrontsPerSimd_ ), wavefrontSize( wavefrontSize_ ), sgprsPerSimd( sgprsPerSimd_ ), minSgprAllocation( minSgprAllocation_ ), maxSgprAllocation( maxSgprAllocation_ ), sgprAllocationGranularity( sgprAllocationGranularity_ ), vgprsPerSimd( vgprsPerSimd_ ), minVgprAllocation( minVgprAllocation_ ), maxVgprAllocation( maxVgprAllocation_ ), vgprAllocationGranularity( vgprAllocationGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderCorePropertiesAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderEngineCount == rhs.shaderEngineCount ) - && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) - && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) - && ( simdPerComputeUnit == rhs.simdPerComputeUnit ) - && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) - && ( wavefrontSize == rhs.wavefrontSize ) - && ( sgprsPerSimd == rhs.sgprsPerSimd ) - && ( minSgprAllocation == rhs.minSgprAllocation ) - && ( maxSgprAllocation == rhs.maxSgprAllocation ) - && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) - && ( vgprsPerSimd == rhs.vgprsPerSimd ) - && ( minVgprAllocation == rhs.minVgprAllocation ) - && ( maxVgprAllocation == rhs.maxVgprAllocation ) - && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity ); - } - - bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; - void* pNext = {}; - uint32_t shaderEngineCount = {}; - uint32_t shaderArraysPerEngineCount = {}; - uint32_t computeUnitsPerShaderArray = {}; - uint32_t simdPerComputeUnit = {}; - uint32_t wavefrontsPerSimd = {}; - uint32_t wavefrontSize = {}; - uint32_t sgprsPerSimd = {}; - uint32_t minSgprAllocation = {}; - uint32_t maxSgprAllocation = {}; - uint32_t sgprAllocationGranularity = {}; - uint32_t vgprsPerSimd = {}; - uint32_t minVgprAllocation = {}; - uint32_t maxVgprAllocation = {}; - uint32_t vgprAllocationGranularity = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderCorePropertiesAMD; - }; - - struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT - : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT - { - shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_; - return *this; - } - - - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ); - } - - bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - }; - - struct PhysicalDeviceShaderDrawParametersFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT - : shaderDrawParameters( shaderDrawParameters_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderDrawParametersFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT - { - shaderDrawParameters = shaderDrawParameters_; - return *this; - } - - - operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); - } - - bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderDrawParametersFeatures; - }; - using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures; - - struct PhysicalDeviceShaderFloat16Int8Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT - : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderFloat16Int8Features( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat16 = shaderFloat16_; - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt8 = shaderInt8_; - return *this; - } - - - operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ); - } - - bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderFloat16Int8Features; - }; - using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - - struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT - : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageInt64Atomics = shaderImageInt64Atomics_; - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageInt64Atomics = sparseImageInt64Atomics_; - return *this; - } - - - operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics ) - && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics ); - } - - bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - }; - - struct PhysicalDeviceShaderImageFootprintFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT - : imageFootprint( imageFootprint_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderImageFootprintFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT - { - imageFootprint = imageFootprint_; - return *this; - } - - - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFootprint == rhs.imageFootprint ); - } - - bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderImageFootprintFeaturesNV; - }; - - struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT - : shaderIntegerFunctions2( shaderIntegerFunctions2_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT - { - shaderIntegerFunctions2 = shaderIntegerFunctions2_; - return *this; - } - - - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 ); - } - - bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - }; - - struct PhysicalDeviceShaderSMBuiltinsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSMBuiltins( shaderSMBuiltins_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderSMBuiltinsFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT - { - shaderSMBuiltins = shaderSMBuiltins_; - return *this; - } - - - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMBuiltins == rhs.shaderSMBuiltins ); - } - - bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV; - }; - - struct PhysicalDeviceShaderSMBuiltinsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderSMBuiltinsPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMCount == rhs.shaderSMCount ) - && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM ); - } - - bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - void* pNext = {}; - uint32_t shaderSMCount = {}; - uint32_t shaderWarpsPerSM = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV; - }; - - struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; - return *this; - } - - - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ); - } - - bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - }; - using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - - struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}) VULKAN_HPP_NOEXCEPT - : shaderTerminateInvocation( shaderTerminateInvocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShaderTerminateInvocationFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT - { - shaderTerminateInvocation = shaderTerminateInvocation_; - return *this; - } - - - operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation ); - } - - bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR; - }; - - struct PhysicalDeviceShadingRateImageFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShadingRateImageFeaturesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateImage = shadingRateImage_; - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_; - return *this; - } - - - operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImage == rhs.shadingRateImage ) - && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder ); - } - - bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {}; - - }; - static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShadingRateImageFeaturesNV; - }; - - struct PhysicalDeviceShadingRateImagePropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceShadingRateImagePropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) - && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) - && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples ); - } - - bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {}; - uint32_t shadingRatePaletteSize = {}; - uint32_t shadingRateMaxCoarseSamples = {}; - - }; - static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShadingRateImagePropertiesNV; - }; - - struct PhysicalDeviceSubgroupProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties(uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {}) VULKAN_HPP_NOEXCEPT - : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSubgroupProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSize == rhs.subgroupSize ) - && ( supportedStages == rhs.supportedStages ) - && ( supportedOperations == rhs.supportedOperations ) - && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages ); - } - - bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties; - void* pNext = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupProperties; - }; - - struct PhysicalDeviceSubgroupSizeControlFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT - : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSubgroupSizeControlFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT - { - subgroupSizeControl = subgroupSizeControl_; - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT - { - computeFullSubgroups = computeFullSubgroups_; - return *this; - } - - - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSizeControl == rhs.subgroupSizeControl ) - && ( computeFullSubgroups == rhs.computeFullSubgroups ); - } - - bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT; - }; - - struct PhysicalDeviceSubgroupSizeControlPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT - : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSubgroupSizeControlPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minSubgroupSize == rhs.minSubgroupSize ) - && ( maxSubgroupSize == rhs.maxSubgroupSize ) - && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) - && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ); - } - - bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; - void* pNext = {}; - uint32_t minSubgroupSize = {}; - uint32_t maxSubgroupSize = {}; - uint32_t maxComputeWorkgroupSubgroups = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT; - }; - - struct PhysicalDeviceSynchronization2FeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSynchronization2FeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {}) VULKAN_HPP_NOEXCEPT - : synchronization2( synchronization2_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSynchronization2FeaturesKHR( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceSynchronization2FeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2FeaturesKHR & operator=( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSynchronization2FeaturesKHR & operator=( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSynchronization2FeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSynchronization2FeaturesKHR & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT - { - synchronization2 = synchronization2_; - return *this; - } - - - operator VkPhysicalDeviceSynchronization2FeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSynchronization2FeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSynchronization2FeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceSynchronization2FeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( synchronization2 == rhs.synchronization2 ); - } - - bool operator!=( PhysicalDeviceSynchronization2FeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2FeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {}; - - }; - static_assert( sizeof( PhysicalDeviceSynchronization2FeaturesKHR ) == sizeof( VkPhysicalDeviceSynchronization2FeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSynchronization2FeaturesKHR; - }; - - struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : texelBufferAlignment( texelBufferAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT - { - texelBufferAlignment = texelBufferAlignment_; - return *this; - } - - - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( texelBufferAlignment == rhs.texelBufferAlignment ); - } - - bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT; - }; - - struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTexelBufferAlignmentPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) - && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) - && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) - && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ); - } - - bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT; - }; - - struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT - : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionASTC_HDR = textureCompressionASTC_HDR_; - return *this; - } - - - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ); - } - - bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {}; - - }; - static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; - }; - - struct PhysicalDeviceTimelineSemaphoreFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT - : timelineSemaphore( timelineSemaphore_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTimelineSemaphoreFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT - { - timelineSemaphore = timelineSemaphore_; - return *this; - } - - - operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timelineSemaphore == rhs.timelineSemaphore ); - } - - bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; - - }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTimelineSemaphoreFeatures; - }; - using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures; - - struct PhysicalDeviceTimelineSemaphoreProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT - : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTimelineSemaphoreProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ); - } - - bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - void* pNext = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - - }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTimelineSemaphoreProperties; - }; - using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties; - - struct PhysicalDeviceTransformFeedbackFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT - : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTransformFeedbackFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT - { - transformFeedback = transformFeedback_; - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT - { - geometryStreams = geometryStreams_; - return *this; - } - - - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transformFeedback == rhs.transformFeedback ) - && ( geometryStreams == rhs.geometryStreams ); - } - - bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {}; - - }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTransformFeedbackFeaturesEXT; - }; - - struct PhysicalDeviceTransformFeedbackPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t maxTransformFeedbackStreams_ = {}, uint32_t maxTransformFeedbackBuffers_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, uint32_t maxTransformFeedbackStreamDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataStride_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {}) VULKAN_HPP_NOEXCEPT - : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceTransformFeedbackPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) - && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) - && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) - && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) - && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) - && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) - && ( transformFeedbackQueries == rhs.transformFeedbackQueries ) - && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) - && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) - && ( transformFeedbackDraw == rhs.transformFeedbackDraw ); - } - - bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; - void* pNext = {}; - uint32_t maxTransformFeedbackStreams = {}; - uint32_t maxTransformFeedbackBuffers = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {}; - uint32_t maxTransformFeedbackStreamDataSize = {}; - uint32_t maxTransformFeedbackBufferDataSize = {}; - uint32_t maxTransformFeedbackBufferDataStride = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {}; - - }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTransformFeedbackPropertiesEXT; - }; - - struct PhysicalDeviceUniformBufferStandardLayoutFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT - : uniformBufferStandardLayout( uniformBufferStandardLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceUniformBufferStandardLayoutFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT - { - uniformBufferStandardLayout = uniformBufferStandardLayout_; - return *this; - } - - - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ); - } - - bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; - - }; - static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures; - }; - using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures; - - struct PhysicalDeviceVariablePointersFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT - : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVariablePointersFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT - { - variablePointersStorageBuffer = variablePointersStorageBuffer_; - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT - { - variablePointers = variablePointers_; - return *this; - } - - - operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ); - } - - bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; - - }; - static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVariablePointersFeatures; - }; - using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - - struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT - : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_; - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_; - return *this; - } - - - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) - && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor ); - } - - bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {}; - - }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT; - }; - - struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT - : maxVertexAttribDivisor( maxVertexAttribDivisor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor ); - } - - bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; - void* pNext = {}; - uint32_t maxVertexAttribDivisor = {}; - - }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT; - }; - - struct PhysicalDeviceVulkan11Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVulkan11Features( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer16BitAccess = storageBuffer16BitAccess_; - return *this; - } - - PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant16 = storagePushConstant16_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT - { - storageInputOutput16 = storageInputOutput16_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT - { - multiview = multiview_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewTessellationShader = multiviewTessellationShader_; - return *this; - } - - PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT - { - variablePointersStorageBuffer = variablePointersStorageBuffer_; - return *this; - } - - PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT - { - variablePointers = variablePointers_; - return *this; - } - - PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT - { - protectedMemory = protectedMemory_; - return *this; - } - - PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT - { - samplerYcbcrConversion = samplerYcbcrConversion_; - return *this; - } - - PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT - { - shaderDrawParameters = shaderDrawParameters_; - return *this; - } - - - operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ) - && ( protectedMemory == rhs.protectedMemory ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); - } - - bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan11Features; - }; - - struct PhysicalDeviceVulkan11Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(std::array const& deviceUUID_ = {}, std::array const& driverUUID_ = {}, std::array const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT - : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ), subgroupSize( subgroupSize_ ), subgroupSupportedStages( subgroupSupportedStages_ ), subgroupSupportedOperations( subgroupSupportedOperations_ ), subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ), pointClippingBehavior( pointClippingBehavior_ ), maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ), protectedNoFault( protectedNoFault_ ), maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVulkan11Properties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceUUID == rhs.deviceUUID ) - && ( driverUUID == rhs.driverUUID ) - && ( deviceLUID == rhs.deviceLUID ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ) - && ( subgroupSize == rhs.subgroupSize ) - && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) - && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) - && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) - && ( protectedNoFault == rhs.protectedNoFault ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); - } - - bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan11Properties; - }; - - struct PhysicalDeviceVulkan12Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features(VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {}) VULKAN_HPP_NOEXCEPT - : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ), drawIndirectCount( drawIndirectCount_ ), storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ), shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ), shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ), descriptorIndexing( descriptorIndexing_ ), shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ), samplerFilterMinmax( samplerFilterMinmax_ ), scalarBlockLayout( scalarBlockLayout_ ), imagelessFramebuffer( imagelessFramebuffer_ ), uniformBufferStandardLayout( uniformBufferStandardLayout_ ), shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ), separateDepthStencilLayouts( separateDepthStencilLayouts_ ), hostQueryReset( hostQueryReset_ ), timelineSemaphore( timelineSemaphore_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ), vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ), shaderOutputViewportIndex( shaderOutputViewportIndex_ ), shaderOutputLayer( shaderOutputLayer_ ), subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVulkan12Features( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT - { - samplerMirrorClampToEdge = samplerMirrorClampToEdge_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT - { - drawIndirectCount = drawIndirectCount_; - return *this; - } - - PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer8BitAccess = storageBuffer8BitAccess_; - return *this; - } - - PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; - return *this; - } - - PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant8 = storagePushConstant8_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat16 = shaderFloat16_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt8 = shaderInt8_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT - { - descriptorIndexing = descriptorIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; - } - - PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT - { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT - { - samplerFilterMinmax = samplerFilterMinmax_; - return *this; - } - - PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT - { - scalarBlockLayout = scalarBlockLayout_; - return *this; - } - - PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT - { - imagelessFramebuffer = imagelessFramebuffer_; - return *this; - } - - PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT - { - uniformBufferStandardLayout = uniformBufferStandardLayout_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT - { - separateDepthStencilLayouts = separateDepthStencilLayouts_; - return *this; - } - - PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT - { - hostQueryReset = hostQueryReset_; - return *this; - } - - PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT - { - timelineSemaphore = timelineSemaphore_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModel = vulkanMemoryModel_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT - { - shaderOutputViewportIndex = shaderOutputViewportIndex_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT - { - shaderOutputLayer = shaderOutputLayer_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT - { - subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_; - return *this; - } - - - operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) - && ( drawIndirectCount == rhs.drawIndirectCount ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ) - && ( descriptorIndexing == rhs.descriptorIndexing ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) - && ( samplerFilterMinmax == rhs.samplerFilterMinmax ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) - && ( hostQueryReset == rhs.hostQueryReset ) - && ( timelineSemaphore == rhs.timelineSemaphore ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) - && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) - && ( shaderOutputLayer == rhs.shaderOutputLayer ) - && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId ); - } - - bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan12Features; - }; - - struct PhysicalDeviceVulkan12Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array const& driverName_ = {}, std::array const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, uint64_t maxTimelineSemaphoreValueDifference_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {}) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ), denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ), maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ), supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ), filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ), maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ), framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVulkan12Properties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( driverName == rhs.driverName ) - && ( driverInfo == rhs.driverInfo ) - && ( conformanceVersion == rhs.conformanceVersion ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) - && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts ); - } - - bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan12Properties; - }; - - struct PhysicalDeviceVulkanMemoryModelFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT - : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceVulkanMemoryModelFeatures( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModel = vulkanMemoryModel_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; - return *this; - } - - - operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ); - } - - bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkanMemoryModelFeatures; - }; - using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures; - - struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {}) VULKAN_HPP_NOEXCEPT - : workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ ), workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ ), workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ ), workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT - { - workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_; - return *this; - } - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayoutScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT - { - workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_; - return *this; - } - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_; - return *this; - } - - PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_; - return *this; - } - - - operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout ) - && ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout ) - && ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess ) - && ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess ); - } - - bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {}; - - }; - static_assert( sizeof( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ) == sizeof( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; - }; - - struct PhysicalDeviceYcbcrImageArraysFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT - : ycbcrImageArrays( ycbcrImageArrays_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceYcbcrImageArraysFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrImageArrays = ycbcrImageArrays_; - return *this; - } - - - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( ycbcrImageArrays == rhs.ycbcrImageArrays ); - } - - bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {}; - - }; - static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT; - }; - - struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {}) VULKAN_HPP_NOEXCEPT - : shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT - { - shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_; - return *this; - } - - - operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory ); - } - - bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {}; - - }; - static_assert( sizeof( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ) == sizeof( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; - }; - - struct PipelineColorBlendAdvancedStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated) VULKAN_HPP_NOEXCEPT - : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineColorBlendAdvancedStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT - { - srcPremultiplied = srcPremultiplied_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT - { - dstPremultiplied = dstPremultiplied_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT - { - blendOverlap = blendOverlap_; - return *this; - } - - - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcPremultiplied == rhs.srcPremultiplied ) - && ( dstPremultiplied == rhs.dstPremultiplied ) - && ( blendOverlap == rhs.blendOverlap ); - } - - bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {}; - VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {}; - VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated; - - }; - static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineColorBlendAdvancedStateCreateInfoEXT; - }; - - struct PipelineCompilerControlCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT - : compilerControlFlags( compilerControlFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT - { - compilerControlFlags = compilerControlFlags_; - return *this; - } - - - operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default; -#else - bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compilerControlFlags == rhs.compilerControlFlags ); - } - - bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {}; - - }; - static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCompilerControlCreateInfoAMD; - }; - - struct PipelineCoverageModulationStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, uint32_t coverageModulationTableCount_ = {}, const float* pCoverageModulationTable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCoverageModulationStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) - : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationMode = coverageModulationMode_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableEnable = coverageModulationTableEnable_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableCount = coverageModulationTableCount_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT - { - pCoverageModulationTable = pCoverageModulationTable_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableCount = static_cast( coverageModulationTable_.size() ); - pCoverageModulationTable = coverageModulationTable_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageModulationMode == rhs.coverageModulationMode ) - && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) - && ( coverageModulationTableCount == rhs.coverageModulationTableCount ) - && ( pCoverageModulationTable == rhs.pCoverageModulationTable ); - } - - bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone; - VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {}; - uint32_t coverageModulationTableCount = {}; - const float* pCoverageModulationTable = {}; - - }; - static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageModulationStateCreateInfoNV; - }; - - struct PipelineCoverageReductionStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageReductionMode( coverageReductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCoverageReductionStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageReductionMode = coverageReductionMode_; - return *this; - } - - - operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageReductionMode == rhs.coverageReductionMode ); - } - - bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; - - }; - static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageReductionStateCreateInfoNV; - }; - - struct PipelineCoverageToColorStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCoverageToColorStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT - { - coverageToColorEnable = coverageToColorEnable_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT - { - coverageToColorLocation = coverageToColorLocation_; - return *this; - } - - - operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageToColorEnable == rhs.coverageToColorEnable ) - && ( coverageToColorLocation == rhs.coverageToColorLocation ); - } - - bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {}; - uint32_t coverageToColorLocation = {}; - - }; - static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageToColorStateCreateInfoNV; - }; - - struct PipelineCreationFeedbackEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), duration( duration_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCreationFeedbackEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default; -#else - bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( duration == rhs.duration ); - } - - bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {}; - uint64_t duration = {}; - - }; - static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineCreationFeedbackCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT - : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineCreationFeedbackCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelineStageCreationFeedbacks_ ) - : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT - { - pPipelineCreationFeedback = pPipelineCreationFeedback_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT - { - pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStageCreationFeedbackCount = static_cast( pipelineStageCreationFeedbacks_.size() ); - pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) - && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) - && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks ); - } - - bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {}; - uint32_t pipelineStageCreationFeedbackCount = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {}; - - }; - static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCreationFeedbackCreateInfoEXT; - }; - - struct PipelineDiscardRectangleStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, uint32_t discardRectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineDiscardRectangleStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) - : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleMode = discardRectangleMode_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleCount = discardRectangleCount_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT - { - pDiscardRectangles = pDiscardRectangles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleCount = static_cast( discardRectangles_.size() ); - pDiscardRectangles = discardRectangles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( discardRectangleMode == rhs.discardRectangleMode ) - && ( discardRectangleCount == rhs.discardRectangleCount ) - && ( pDiscardRectangles == rhs.pDiscardRectangles ); - } - - bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive; - uint32_t discardRectangleCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {}; - - }; - static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDiscardRectangleStateCreateInfoEXT; - }; - - struct PipelineFragmentShadingRateEnumStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, std::array const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT - : shadingRateType( shadingRateType_ ), shadingRate( shadingRate_ ), combinerOps( combinerOps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineFragmentShadingRateEnumStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateType = shadingRateType_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT - { - shadingRate = shadingRate_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT - { - combinerOps = combinerOps_; - return *this; - } - - - operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateType == rhs.shadingRateType ) - && ( shadingRate == rhs.shadingRate ) - && ( combinerOps == rhs.combinerOps ); - } - - bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize; - VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; - - }; - static_assert( sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) == sizeof( VkPipelineFragmentShadingRateEnumStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV; - }; - - struct PipelineFragmentShadingRateStateCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, std::array const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT - : fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineFragmentShadingRateStateCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT - { - fragmentSize = fragmentSize_; - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT - { - combinerOps = combinerOps_; - return *this; - } - - - operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const& ) const = default; -#else - bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentSize == rhs.fragmentSize ) - && ( combinerOps == rhs.combinerOps ); - } - - bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; - - }; - static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineFragmentShadingRateStateCreateInfoKHR; - }; - - struct PipelineRasterizationConservativeStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationConservativeStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT - { - conservativeRasterizationMode = conservativeRasterizationMode_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT - { - extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_; + using element_type = Type; + + UniqueHandle() : Deleter(), m_value() {} + + explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT + : Deleter( deleter ) + , m_value( value ) + {} + + UniqueHandle( UniqueHandle const & ) = delete; + + UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT + : Deleter( std::move( static_cast( other ) ) ) + , m_value( other.release() ) + {} + + ~UniqueHandle() VULKAN_HPP_NOEXCEPT + { + if ( m_value ) + { + this->destroy( m_value ); + } + } + + UniqueHandle & operator=( UniqueHandle const & ) = delete; + + UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT + { + reset( other.release() ); + *static_cast( this ) = std::move( static_cast( other ) ); return *this; } - - operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) - && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize ); - } - - bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled; - float extraPrimitiveOverestimationSize = {}; - - }; - static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationConservativeStateCreateInfoEXT; - }; - - struct PipelineRasterizationDepthClipStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthClipEnable( depthClipEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationDepthClipStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClipEnable = depthClipEnable_; - return *this; - } - - - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClipEnable == rhs.depthClipEnable ); - } - - bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; - - }; - static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationDepthClipStateCreateInfoEXT; - }; - - struct PipelineRasterizationLineStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, uint32_t lineStippleFactor_ = {}, uint16_t lineStipplePattern_ = {}) VULKAN_HPP_NOEXCEPT - : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationLineStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT - { - lineRasterizationMode = lineRasterizationMode_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT - { - stippledLineEnable = stippledLineEnable_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT - { - lineStippleFactor = lineStippleFactor_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT - { - lineStipplePattern = lineStipplePattern_; - return *this; - } - - - operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineRasterizationMode == rhs.lineRasterizationMode ) - && ( stippledLineEnable == rhs.stippledLineEnable ) - && ( lineStippleFactor == rhs.lineStippleFactor ) - && ( lineStipplePattern == rhs.lineStipplePattern ); - } - - bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault; - VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {}; - uint32_t lineStippleFactor = {}; - uint16_t lineStipplePattern = {}; - - }; - static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationLineStateCreateInfoEXT; - }; - - struct PipelineRasterizationStateRasterizationOrderAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT - : rasterizationOrder( rasterizationOrder_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationStateRasterizationOrderAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationOrder = rasterizationOrder_; - return *this; - } - - - operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default; -#else - bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rasterizationOrder == rhs.rasterizationOrder ); - } - - bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict; - - }; - static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateRasterizationOrderAMD; - }; - - struct PipelineRasterizationStateStreamCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), rasterizationStream( rasterizationStream_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRasterizationStateStreamCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationStream = rasterizationStream_; - return *this; - } - - - operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationStream == rhs.rasterizationStream ); - } - - bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {}; - uint32_t rasterizationStream = {}; - - }; - static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateStreamCreateInfoEXT; - }; - - struct PipelineRepresentativeFragmentTestStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT - : representativeFragmentTestEnable( representativeFragmentTestEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineRepresentativeFragmentTestStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - representativeFragmentTestEnable = representativeFragmentTestEnable_; - return *this; - } - - - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable ); - } - - bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {}; - - }; - static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV; - }; - - struct PipelineSampleLocationsStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineSampleLocationsStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsEnable = sampleLocationsEnable_; - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsEnable == rhs.sampleLocationsEnable ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineSampleLocationsStateCreateInfoEXT; - }; - - struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : requiredSubgroupSize( requiredSubgroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( requiredSubgroupSize == rhs.requiredSubgroupSize ); - } - - bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - void* pNext = {}; - uint32_t requiredSubgroupSize = {}; - - }; - static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - }; - - struct PipelineTessellationDomainOriginStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT - : domainOrigin( domainOrigin_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineTessellationDomainOriginStateCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT - { - domainOrigin = domainOrigin_; - return *this; - } - - - operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( domainOrigin == rhs.domainOrigin ); - } - - bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft; - - }; - static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineTessellationDomainOriginStateCreateInfo; - }; - using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo; - - struct VertexInputBindingDivisorDescriptionEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), divisor( divisor_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT - { - divisor = divisor_; - return *this; - } - - - operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default; -#else - bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( divisor == rhs.divisor ); - } - - bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - uint32_t divisor = {}; - - }; - static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineVertexInputDivisorStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT - : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDivisors_ ) - : vertexBindingDivisorCount( static_cast( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDivisorCount = vertexBindingDivisorCount_; - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT - { - pVertexBindingDivisors = pVertexBindingDivisors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDivisorCount = static_cast( vertexBindingDivisors_.size() ); - pVertexBindingDivisors = vertexBindingDivisors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) - && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors ); - } - - bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; - const void* pNext = {}; - uint32_t vertexBindingDivisorCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {}; - - }; - static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineVertexInputDivisorStateCreateInfoEXT; - }; - - struct PipelineViewportCoarseSampleOrderStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, uint32_t customSampleOrderCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = {}) VULKAN_HPP_NOEXCEPT - : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportCoarseSampleOrderStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & customSampleOrders_ ) - : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT - { - sampleOrderType = sampleOrderType_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT - { - customSampleOrderCount = customSampleOrderCount_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT - { - pCustomSampleOrders = pCustomSampleOrders_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT - { - customSampleOrderCount = static_cast( customSampleOrders_.size() ); - pCustomSampleOrders = customSampleOrders_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleOrderType == rhs.sampleOrderType ) - && ( customSampleOrderCount == rhs.customSampleOrderCount ) - && ( pCustomSampleOrders == rhs.pCustomSampleOrders ); - } - - bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault; - uint32_t customSampleOrderCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {}; - - }; - static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV; - }; - - struct PipelineViewportExclusiveScissorStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT - : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportExclusiveScissorStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) - : exclusiveScissorCount( static_cast( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissorCount = exclusiveScissorCount_; - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT - { - pExclusiveScissors = pExclusiveScissors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissorCount = static_cast( exclusiveScissors_.size() ); - pExclusiveScissors = exclusiveScissors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) - && ( pExclusiveScissors == rhs.pExclusiveScissors ); - } - - bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; - const void* pNext = {}; - uint32_t exclusiveScissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {}; - - }; - static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportExclusiveScissorStateCreateInfoNV; - }; - - struct PipelineViewportShadingRateImageStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportShadingRateImageStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePalettes_ ) - : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateImageEnable = shadingRateImageEnable_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT - { - pShadingRatePalettes = pShadingRatePalettes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( shadingRatePalettes_.size() ); - pShadingRatePalettes = shadingRatePalettes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pShadingRatePalettes == rhs.pShadingRatePalettes ); - } - - bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {}; - - }; - static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportShadingRateImageStateCreateInfoNV; - }; - - struct ViewportSwizzleNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ), w( w_ ) - {} - - VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - : ViewportSwizzleNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT - { - w = w_; - return *this; - } - - - operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViewportSwizzleNV const& ) const = default; -#else - bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ) - && ( w == rhs.w ); - } - - bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - - }; - static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineViewportSwizzleStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportSwizzleStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportSwizzles_ ) - : flags( flags_ ), viewportCount( static_cast( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT - { - pViewportSwizzles = pViewportSwizzles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewportSwizzles_.size() ); - pViewportSwizzles = viewportSwizzles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportSwizzles == rhs.pViewportSwizzles ); - } - - bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {}; - - }; - static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportSwizzleStateCreateInfoNV; - }; - - struct PipelineViewportWScalingStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT - : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PipelineViewportWScalingStateCreateInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportWScalings_ ) - : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT - { - viewportWScalingEnable = viewportWScalingEnable_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT - { - pViewportWScalings = pViewportWScalings_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewportWScalings_.size() ); - pViewportWScalings = viewportWScalings_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewportWScalingEnable == rhs.viewportWScalingEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportWScalings == rhs.pViewportWScalings ); - } - - bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {}; - - }; - static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportWScalingStateCreateInfoNV; - }; - -#ifdef VK_USE_PLATFORM_GGP - struct PresentFrameTokenGGP - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT - : frameToken( frameToken_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentFrameTokenGGP( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT - { - frameToken = frameToken_; - return *this; - } - - - operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentFrameTokenGGP const& ) const = default; -#else - bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 ); - } - - bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP; - const void* pNext = {}; - GgpFrameToken frameToken = {}; - - }; - static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentFrameTokenGGP; - }; -#endif /*VK_USE_PLATFORM_GGP*/ - - struct RectLayerKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), extent( extent_ ), layer( layer_ ) - {} - - VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : RectLayerKHR( *reinterpret_cast( &rhs ) ) - {} - - explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} ) - : offset( rect2D.offset ) - , extent( rect2D.extent ) - , layer( layer_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT - { - layer = layer_; - return *this; - } - - - operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RectLayerKHR const& ) const = default; -#else - bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( layer == rhs.layer ); - } - - bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; - uint32_t layer = {}; - - }; - static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentRegionKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentRegionKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) - : rectangleCount( static_cast( rectangles_.size() ) ), pRectangles( rectangles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT - { - rectangleCount = rectangleCount_; - return *this; - } - - PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT - { - pRectangles = pRectangles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) VULKAN_HPP_NOEXCEPT - { - rectangleCount = static_cast( rectangles_.size() ); - pRectangles = rectangles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentRegionKHR const& ) const = default; -#else - bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( rectangleCount == rhs.rectangleCount ) - && ( pRectangles == rhs.pRectangles ); - } - - bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t rectangleCount = {}; - const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {}; - - }; - static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentRegionsKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentRegionsKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : swapchainCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentRegionsKHR const& ) const = default; -#else - bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {}; - - }; - static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentRegionsKHR; - }; - - struct PresentTimeGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentTimeGOOGLE( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT - { - presentID = presentID_; - return *this; - } - - PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT - { - desiredPresentTime = desiredPresentTime_; - return *this; - } - - - operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentTimeGOOGLE const& ) const = default; -#else - bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ); - } - - bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; - - }; - static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentTimesInfoGOOGLE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pTimes( pTimes_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - : PresentTimesInfoGOOGLE( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) - : swapchainCount( static_cast( times_.size() ) ), pTimes( times_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT - { - pTimes = pTimes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( times_.size() ); - pTimes = times_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default; -#else - bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pTimes == rhs.pTimes ); - } - - bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {}; - - }; - static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentTimesInfoGOOGLE; - }; - - struct ProtectedSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT - : protectedSubmit( protectedSubmit_ ) - {} - - VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : ProtectedSubmitInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT - { - protectedSubmit = protectedSubmit_; - return *this; - } - - - operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ProtectedSubmitInfo const& ) const = default; -#else - bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedSubmit == rhs.protectedSubmit ); - } - - bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {}; - - }; - static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ProtectedSubmitInfo; - }; - - struct QueryPoolPerformanceQueryCreateInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT - : performanceCountersSampling( performanceCountersSampling_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - : QueryPoolPerformanceQueryCreateInfoINTEL( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT - { - performanceCountersSampling = performanceCountersSampling_; - return *this; - } - - - operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default; -#else - bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCountersSampling == rhs.performanceCountersSampling ); - } - - bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual; - - }; - static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolPerformanceQueryCreateInfoINTEL; - }; - using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL; - - struct QueueFamilyCheckpointProperties2NV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointProperties2Nv; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT - : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT - : QueueFamilyCheckpointProperties2NV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointProperties2NV & operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyCheckpointProperties2NV & operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkQueueFamilyCheckpointProperties2NV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyCheckpointProperties2NV const& ) const = default; -#else - bool operator==( QueueFamilyCheckpointProperties2NV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); - } - - bool operator!=( QueueFamilyCheckpointProperties2NV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2Nv; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask = {}; - - }; - static_assert( sizeof( QueueFamilyCheckpointProperties2NV ) == sizeof( VkQueueFamilyCheckpointProperties2NV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueueFamilyCheckpointProperties2NV; - }; - - struct QueueFamilyCheckpointPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT - : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default; -#else - bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); - } - - bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {}; - - }; - static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueueFamilyCheckpointPropertiesNV; - }; - - struct RenderPassAttachmentBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassAttachmentBeginInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) - : attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default; -#else - bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ); - } - - bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo; - const void* pNext = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; - - }; - static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassAttachmentBeginInfo; - }; - using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo; - - struct RenderPassFragmentDensityMapCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassFragmentDensityMapCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapAttachment = fragmentDensityMapAttachment_; - return *this; - } - - - operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default; -#else - bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment ); - } - - bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {}; - - }; - static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassFragmentDensityMapCreateInfoEXT; - }; - - struct RenderPassInputAttachmentAspectCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT - : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassInputAttachmentAspectCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & aspectReferences_ ) - : aspectReferenceCount( static_cast( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT - { - aspectReferenceCount = aspectReferenceCount_; - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT - { - pAspectReferences = pAspectReferences_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT - { - aspectReferenceCount = static_cast( aspectReferences_.size() ); - pAspectReferences = aspectReferences_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default; -#else - bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aspectReferenceCount == rhs.aspectReferenceCount ) - && ( pAspectReferences == rhs.pAspectReferences ); - } - - bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; - const void* pNext = {}; - uint32_t aspectReferenceCount = {}; - const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {}; - - }; - static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassInputAttachmentAspectCreateInfo; - }; - using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo; - - struct RenderPassMultiviewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo(uint32_t subpassCount_ = {}, const uint32_t* pViewMasks_ = {}, uint32_t dependencyCount_ = {}, const int32_t* pViewOffsets_ = {}, uint32_t correlationMaskCount_ = {}, const uint32_t* pCorrelationMasks_ = {}) VULKAN_HPP_NOEXCEPT - : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassMultiviewCreateInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ = {} ) - : subpassCount( static_cast( viewMasks_.size() ) ), pViewMasks( viewMasks_.data() ), dependencyCount( static_cast( viewOffsets_.size() ) ), pViewOffsets( viewOffsets_.data() ), correlationMaskCount( static_cast( correlationMasks_.size() ) ), pCorrelationMasks( correlationMasks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - pViewMasks = pViewMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( viewMasks_.size() ); - pViewMasks = viewMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT - { - pViewOffsets = pViewOffsets_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( viewOffsets_.size() ); - pViewOffsets = viewOffsets_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT - { - correlationMaskCount = correlationMaskCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCorrelationMasks = pCorrelationMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT - { - correlationMaskCount = static_cast( correlationMasks_.size() ); - pCorrelationMasks = correlationMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default; -#else - bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subpassCount == rhs.subpassCount ) - && ( pViewMasks == rhs.pViewMasks ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pViewOffsets == rhs.pViewOffsets ) - && ( correlationMaskCount == rhs.correlationMaskCount ) - && ( pCorrelationMasks == rhs.pCorrelationMasks ); - } - - bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo; - const void* pNext = {}; - uint32_t subpassCount = {}; - const uint32_t* pViewMasks = {}; - uint32_t dependencyCount = {}; - const int32_t* pViewOffsets = {}; - uint32_t correlationMaskCount = {}; - const uint32_t* pCorrelationMasks = {}; - - }; - static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassMultiviewCreateInfo; - }; - using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo; - - struct SubpassSampleLocationsEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassSampleLocationsEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT - { - subpassIndex = subpassIndex_; - return *this; - } - - SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassSampleLocationsEXT const& ) const = default; -#else - bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subpassIndex == rhs.subpassIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t subpassIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct RenderPassSampleLocationsBeginInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT(uint32_t attachmentInitialSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = {}, uint32_t postSubpassSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassSampleLocationsBeginInfoEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & postSubpassSampleLocations_ = {} ) - : attachmentInitialSampleLocationsCount( static_cast( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - attachmentInitialSampleLocationsCount = static_cast( attachmentInitialSampleLocations_.size() ); - pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pPostSubpassSampleLocations = pPostSubpassSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - postSubpassSampleLocationsCount = static_cast( postSubpassSampleLocations_.size() ); - pPostSubpassSampleLocations = postSubpassSampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default; -#else - bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) - && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) - && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) - && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations ); - } - - bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; - const void* pNext = {}; - uint32_t attachmentInitialSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {}; - uint32_t postSubpassSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {}; - - }; - static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassSampleLocationsBeginInfoEXT; - }; - - struct RenderPassTransformBeginInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT - : transform( transform_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - : RenderPassTransformBeginInfoQCOM( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - - operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default; -#else - bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ); - } - - bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - - }; - static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassTransformBeginInfoQCOM; - }; - - struct SamplerCustomBorderColorCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT - : customBorderColor( customBorderColor_ ), format( format_ ) - {} - - SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerCustomBorderColorCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColor = customBorderColor_; - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - - operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - - }; - static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerCustomBorderColorCreateInfoEXT; - }; - - struct SamplerReductionModeCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT - : reductionMode( reductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerReductionModeCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT - { - reductionMode = reductionMode_; - return *this; - } - - - operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default; -#else - bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( reductionMode == rhs.reductionMode ); - } - - bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage; - - }; - static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerReductionModeCreateInfo; - }; - using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo; - - struct SamplerYcbcrConversionImageFormatProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerYcbcrConversionImageFormatProperties( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount ); - } - - bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties; - void* pNext = {}; - uint32_t combinedImageSamplerDescriptorCount = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionImageFormatProperties; - }; - using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties; - - struct SamplerYcbcrConversionInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT - : conversion( conversion_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SamplerYcbcrConversionInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT - { - conversion = conversion_; - return *this; - } - - - operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conversion == rhs.conversion ); - } - - bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionInfo; - }; - using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo; - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - struct ScreenSurfaceCreateInfoQNX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {}, struct _screen_context* context_ = {}, struct _screen_window* window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), context( context_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT - : ScreenSurfaceCreateInfoQNX( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ScreenSurfaceCreateInfoQNX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ScreenSurfaceCreateInfoQNX & setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context* context_ ) VULKAN_HPP_NOEXCEPT - { - context = context_; - return *this; - } - - ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window* window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkScreenSurfaceCreateInfoQNX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ScreenSurfaceCreateInfoQNX const& ) const = default; -#else - bool operator==( ScreenSurfaceCreateInfoQNX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( context == rhs.context ) - && ( window == rhs.window ); - } - - bool operator!=( ScreenSurfaceCreateInfoQNX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {}; - struct _screen_context* context = {}; - struct _screen_window* window = {}; - - }; - static_assert( sizeof( ScreenSurfaceCreateInfoQNX ) == sizeof( VkScreenSurfaceCreateInfoQNX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ScreenSurfaceCreateInfoQNX; - }; -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - struct SemaphoreTypeCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT - : semaphoreType( semaphoreType_ ), initialValue( initialValue_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : SemaphoreTypeCreateInfo( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreType = semaphoreType_; - return *this; - } - - SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT - { - initialValue = initialValue_; - return *this; - } - - - operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default; -#else - bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphoreType == rhs.semaphoreType ) - && ( initialValue == rhs.initialValue ); - } - - bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary; - uint64_t initialValue = {}; - - }; - static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreTypeCreateInfo; - }; - using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo; - - struct SetStateFlagsIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT - : data( data_ ) - {} - - VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : SetStateFlagsIndirectCommandNV( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default; -#else - bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( data == rhs.data ); - } - - bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t data = {}; - - }; - static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShaderModuleValidationCacheCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT - : validationCache( validationCache_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ShaderModuleValidationCacheCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT - { - validationCache = validationCache_; - return *this; - } - - - operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default; -#else - bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( validationCache == rhs.validationCache ); - } - - bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {}; - - }; - static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ShaderModuleValidationCacheCreateInfoEXT; - }; - - struct ShaderResourceUsageAMD - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT - : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : ShaderResourceUsageAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderResourceUsageAMD const& ) const = default; -#else - bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( numUsedVgprs == rhs.numUsedVgprs ) - && ( numUsedSgprs == rhs.numUsedSgprs ) - && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) - && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) - && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes ); - } - - bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t numUsedVgprs = {}; - uint32_t numUsedSgprs = {}; - uint32_t ldsSizePerLocalWorkGroup = {}; - size_t ldsUsageSizeInBytes = {}; - size_t scratchMemUsageInBytes = {}; - - }; - static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShaderStatisticsInfoAMD - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, uint32_t numPhysicalVgprs_ = {}, uint32_t numPhysicalSgprs_ = {}, uint32_t numAvailableVgprs_ = {}, uint32_t numAvailableSgprs_ = {}, std::array const& computeWorkGroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : ShaderStatisticsInfoAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default; -#else - bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shaderStageMask == rhs.shaderStageMask ) - && ( resourceUsage == rhs.resourceUsage ) - && ( numPhysicalVgprs == rhs.numPhysicalVgprs ) - && ( numPhysicalSgprs == rhs.numPhysicalSgprs ) - && ( numAvailableVgprs == rhs.numAvailableVgprs ) - && ( numAvailableSgprs == rhs.numAvailableSgprs ) - && ( computeWorkGroupSize == rhs.computeWorkGroupSize ); - } - - bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {}; - VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {}; - uint32_t numPhysicalVgprs = {}; - uint32_t numPhysicalSgprs = {}; - uint32_t numAvailableVgprs = {}; - uint32_t numAvailableSgprs = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D computeWorkGroupSize = {}; - - }; - static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SharedPresentSurfaceCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT - : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default; -#else - bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags ); - } - - bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {}; - - }; - static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SharedPresentSurfaceCapabilitiesKHR; - }; - -#ifdef VK_USE_PLATFORM_GGP - struct StreamDescriptorSurfaceCreateInfoGGP - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), streamDescriptor( streamDescriptor_ ) - {} - - VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT - { - streamDescriptor = streamDescriptor_; - return *this; - } - - - operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default; -#else - bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 ); - } - - bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {}; - GgpStreamDescriptor streamDescriptor = {}; - - }; - static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = StreamDescriptorSurfaceCreateInfoGGP; - }; -#endif /*VK_USE_PLATFORM_GGP*/ - - struct SubpassDescriptionDepthStencilResolve - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve(VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ = {}) VULKAN_HPP_NOEXCEPT - : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT - : SubpassDescriptionDepthStencilResolve( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT - { - depthResolveMode = depthResolveMode_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT - { - stencilResolveMode = stencilResolveMode_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_; - return *this; - } - - - operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default; -#else - bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthResolveMode == rhs.depthResolveMode ) - && ( stencilResolveMode == rhs.stencilResolveMode ) - && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment ); - } - - bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {}; - - }; - static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDescriptionDepthStencilResolve; - }; - using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceCapabilitiesFullScreenExclusiveEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT - : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceCapabilitiesFullScreenExclusiveEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT - { - fullScreenExclusiveSupported = fullScreenExclusiveSupported_; - return *this; - } - - - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default; -#else - bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported ); - } - - bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {}; - - }; - static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilitiesFullScreenExclusiveEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT - : fullScreenExclusive( fullScreenExclusive_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT - { - fullScreenExclusive = fullScreenExclusive_; - return *this; - } - - - operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default; -#else - bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusive == rhs.fullScreenExclusive ); - } - - bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault; - - }; - static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFullScreenExclusiveInfoEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveWin32InfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT - : hmonitor( hmonitor_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceFullScreenExclusiveWin32InfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT - { - hmonitor = hmonitor_; - return *this; - } - - - operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default; -#else - bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hmonitor == rhs.hmonitor ); - } - - bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; - const void* pNext = {}; - HMONITOR hmonitor = {}; - - }; - static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFullScreenExclusiveWin32InfoEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct SurfaceProtectedCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT - : supportsProtected( supportsProtected_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT - { - supportsProtected = supportsProtected_; - return *this; - } - - - operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default; -#else - bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsProtected == rhs.supportsProtected ); - } - - bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {}; - - }; - static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceProtectedCapabilitiesKHR; - }; - - struct SwapchainCounterCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceCounters( surfaceCounters_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : SwapchainCounterCreateInfoEXT( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT - { - surfaceCounters = surfaceCounters_; - return *this; - } - - - operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default; -#else - bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCounters == rhs.surfaceCounters ); - } - - bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {}; - - }; - static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainCounterCreateInfoEXT; - }; - - struct SwapchainDisplayNativeHdrCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT - : localDimmingEnable( localDimmingEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : SwapchainDisplayNativeHdrCreateInfoAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT - { - localDimmingEnable = localDimmingEnable_; - return *this; - } - - - operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default; -#else - bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingEnable == rhs.localDimmingEnable ); - } - - bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {}; - - }; - static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainDisplayNativeHdrCreateInfoAMD; - }; - - struct TextureLODGatherFormatPropertiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT - : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ ) - {} - - VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - - operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default; -#else - bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD ); - } - - bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {}; - - }; - static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = TextureLODGatherFormatPropertiesAMD; - }; - - struct TimelineSemaphoreSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} - - VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - : TimelineSemaphoreSubmitInfo( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) - : waitSemaphoreValueCount( static_cast( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValueCount = waitSemaphoreValueCount_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreValues = pWaitSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValueCount = static_cast( waitSemaphoreValues_.size() ); - pWaitSemaphoreValues = waitSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValueCount = signalSemaphoreValueCount_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreValues = pSignalSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValueCount = static_cast( signalSemaphoreValues_.size() ); - pSignalSemaphoreValues = signalSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default; -#else - bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); - } - - bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreValueCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValueCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - - }; - static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = TimelineSemaphoreSubmitInfo; - }; - using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo; - - struct TraceRaysIndirectCommandKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ), depth( depth_ ) - {} - - VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : TraceRaysIndirectCommandKHR( *reinterpret_cast( &rhs ) ) - {} - - explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} ) - : width( extent2D.width ) - , height( extent2D.height ) - , depth( depth_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - - operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default; -#else - bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ) - && ( depth == rhs.depth ); - } - - bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - uint32_t depth = {}; - - }; - static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ValidationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT(uint32_t enabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = {}, uint32_t disabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ValidationFeaturesEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationFeatures_ = {} ) - : enabledValidationFeatureCount( static_cast( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledValidationFeatureCount = enabledValidationFeatureCount_; - return *this; - } - - ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pEnabledValidationFeatures = pEnabledValidationFeatures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - enabledValidationFeatureCount = static_cast( enabledValidationFeatures_.size() ); - pEnabledValidationFeatures = enabledValidationFeatures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationFeatureCount = disabledValidationFeatureCount_; - return *this; - } - - ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pDisabledValidationFeatures = pDisabledValidationFeatures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationFeatureCount = static_cast( disabledValidationFeatures_.size() ); - pDisabledValidationFeatures = disabledValidationFeatures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationFeaturesEXT const& ) const = default; -#else - bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) - && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) - && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) - && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures ); - } - - bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT; - const void* pNext = {}; - uint32_t enabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {}; - uint32_t disabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {}; - - }; - static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationFeaturesEXT; - }; - - struct ValidationFlagsEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT - : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : ValidationFlagsEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationChecks_ ) - : disabledValidationCheckCount( static_cast( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationCheckCount = disabledValidationCheckCount_; - return *this; - } - - ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT - { - pDisabledValidationChecks = pDisabledValidationChecks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationCheckCount = static_cast( disabledValidationChecks_.size() ); - pDisabledValidationChecks = disabledValidationChecks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationFlagsEXT const& ) const = default; -#else - bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) - && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks ); - } - - bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT; - const void* pNext = {}; - uint32_t disabledValidationCheckCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {}; - - }; - static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationFlagsEXT; - }; - -#ifdef VK_USE_PLATFORM_VI_NN - struct ViSurfaceCreateInfoNN - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT - : ViSurfaceCreateInfoNN( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default; -#else - bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); - } - - bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {}; - void* window = {}; - - }; - static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ViSurfaceCreateInfoNN; - }; -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - struct WaylandSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), display( display_ ), surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : WaylandSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT - { - display = display_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( display == rhs.display ) - && ( surface == rhs.surface ); - } - - bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {}; - struct wl_display* display = {}; - struct wl_surface* surface = {}; - - }; - static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WaylandSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeouts_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) - : acquireCount( static_cast( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeouts( acquireTimeouts_.data() ), releaseCount( static_cast( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() ); - VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() ); -#else - if ( acquireSyncs_.size() != acquireKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" ); - } - if ( acquireSyncs_.size() != acquireTimeouts_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" ); - } - if ( acquireKeys_.size() != acquireTimeouts_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); -#else - if ( releaseSyncs_.size() != releaseKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = acquireCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireSyncs = pAcquireSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireSyncs_.size() ); - pAcquireSyncs = acquireSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireKeys = pAcquireKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireKeys_.size() ); - pAcquireKeys = acquireKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireTimeouts = pAcquireTimeouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireTimeouts_.size() ); - pAcquireTimeouts = acquireTimeouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = releaseCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseSyncs = pReleaseSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseSyncs_.size() ); - pReleaseSyncs = releaseSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseKeys = pReleaseKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseKeys_.size() ); - pReleaseKeys = releaseKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default; -#else - bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeouts == rhs.pAcquireTimeouts ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); - } - - bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeouts = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; - - }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32KeyedMutexAcquireReleaseInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeoutMilliseconds_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) - : acquireCount( static_cast( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() ), releaseCount( static_cast( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() ); - VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() ); -#else - if ( acquireSyncs_.size() != acquireKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" ); - } - if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" ); - } - if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); -#else - if ( releaseSyncs_.size() != releaseKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = acquireCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireSyncs = pAcquireSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireSyncs_.size() ); - pAcquireSyncs = acquireSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireKeys = pAcquireKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireKeys_.size() ); - pAcquireKeys = acquireKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireTimeoutMilliseconds_.size() ); - pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = releaseCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseSyncs = pReleaseSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseSyncs_.size() ); - pReleaseSyncs = releaseSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseKeys = pReleaseKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseKeys_.size() ); - pReleaseKeys = releaseKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default; -#else - bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); - } - - bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeoutMilliseconds = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; - - }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32KeyedMutexAcquireReleaseInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32SurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : Win32SurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT - { - hinstance = hinstance_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT - { - hwnd = hwnd_; - return *this; - } - - - operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( hinstance == rhs.hinstance ) - && ( hwnd == rhs.hwnd ); - } - - bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {}; - HINSTANCE hinstance = {}; - HWND hwnd = {}; - - }; - static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32SurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct WriteDescriptorSetAccelerationStructureKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : WriteDescriptorSetAccelerationStructureKHR( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) - : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = accelerationStructureCount_; - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - pAccelerationStructures = pAccelerationStructures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = static_cast( accelerationStructures_.size() ); - pAccelerationStructures = accelerationStructures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default; -#else - bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureCount == rhs.accelerationStructureCount ) - && ( pAccelerationStructures == rhs.pAccelerationStructures ); - } - - bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR; - const void* pNext = {}; - uint32_t accelerationStructureCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {}; - - }; - static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetAccelerationStructureKHR; - }; - - struct WriteDescriptorSetAccelerationStructureNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - : WriteDescriptorSetAccelerationStructureNV( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) - : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = accelerationStructureCount_; - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - pAccelerationStructures = pAccelerationStructures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = static_cast( accelerationStructures_.size() ); - pAccelerationStructures = accelerationStructures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetAccelerationStructureNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetAccelerationStructureNV const& ) const = default; -#else - bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureCount == rhs.accelerationStructureCount ) - && ( pAccelerationStructures == rhs.pAccelerationStructures ); - } - - bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV; - const void* pNext = {}; - uint32_t accelerationStructureCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures = {}; - - }; - static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetAccelerationStructureNV; - }; - - struct WriteDescriptorSetInlineUniformBlockEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - : WriteDescriptorSetInlineUniformBlockEXT( *reinterpret_cast( &rhs ) ) - {} - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) - : dataSize( static_cast( data_.size() * sizeof(T) ) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = dataSize_; - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT - { - pData = pData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = static_cast( data_.size() * sizeof(T) ); - pData = data_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default; -#else - bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; - const void* pNext = {}; - uint32_t dataSize = {}; - const void* pData = {}; - - }; - static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetInlineUniformBlockEXT; - }; - -#ifdef VK_USE_PLATFORM_XCB_KHR - struct XcbSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), connection( connection_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : XcbSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT - { - connection = connection_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( connection == rhs.connection ) - && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 ); - } - - bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {}; - xcb_connection_t* connection = {}; - xcb_window_t window = {}; - - }; - static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = XcbSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - struct XlibSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dpy( dpy_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - : XlibSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT - { - dpy = dpy_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dpy == rhs.dpy ) - && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 ); - } - - bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {}; - Display* dpy = {}; - Window window = {}; - - }; - static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = XlibSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - class DebugReportCallbackEXT - { - public: - using CType = VkDebugReportCallbackEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; - - public: - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT( debugReportCallbackEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = debugReportCallbackEXT; - return *this; - } -#endif - - DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugReportCallbackEXT const& ) const = default; -#else - bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT; - } - - bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT; - } - - bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT; - } - explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_debugReportCallbackEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == VK_NULL_HANDLE; + return m_value.operator bool(); + } + + Type const * operator->() const VULKAN_HPP_NOEXCEPT + { + return &m_value; + } + + Type * operator->() VULKAN_HPP_NOEXCEPT + { + return &m_value; + } + + Type const & operator*() const VULKAN_HPP_NOEXCEPT + { + return m_value; + } + + Type & operator*() VULKAN_HPP_NOEXCEPT + { + return m_value; + } + + const Type & get() const VULKAN_HPP_NOEXCEPT + { + return m_value; + } + + Type & get() VULKAN_HPP_NOEXCEPT + { + return m_value; + } + + void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT + { + if ( m_value != value ) + { + if ( m_value ) + { + this->destroy( m_value ); + } + m_value = value; + } + } + + Type release() VULKAN_HPP_NOEXCEPT + { + Type value = m_value; + m_value = nullptr; + return value; + } + + void swap( UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT + { + std::swap( m_value, rhs.m_value ); + std::swap( static_cast( *this ), static_cast( rhs ) ); } private: - VkDebugReportCallbackEXT m_debugReportCallbackEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class DebugUtilsMessengerEXT + Type m_value; + }; + + template + VULKAN_HPP_INLINE std::vector + uniqueToRaw( std::vector const & handles ) + { + std::vector newBuffer( handles.size() ); + std::transform( + handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } ); + return newBuffer; + } + + template + VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, + UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT + { + lhs.swap( rhs ); + } +#endif + + class DispatchLoaderBase { public: - using CType = VkDebugUtilsMessengerEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT - { - m_debugUtilsMessengerEXT = debugUtilsMessengerEXT; - return *this; - } + DispatchLoaderBase() = default; + DispatchLoaderBase( std::nullptr_t ) +#if !defined( NDEBUG ) + : m_valid( false ) #endif - - DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugUtilsMessengerEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT; - } - - bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT; - } - - bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == VK_NULL_HANDLE; + {} + +#if !defined( NDEBUG ) + size_t getVkHeaderVersion() const + { + VULKAN_HPP_ASSERT( m_valid ); + return vkHeaderVersion; } private: - VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Instance; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugReportCallbackEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugUtilsMessengerEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSurfaceKHR = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Instance + size_t vkHeaderVersion = VK_HEADER_VERSION; + bool m_valid = true; +#endif + }; + +#if !defined( VK_NO_PROTOTYPES ) + class DispatchLoaderStatic : public DispatchLoaderBase { public: - using CType = VkInstance; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; - - public: - VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT - : m_instance( instance ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT - { - m_instance = instance; - return *this; - } -#endif - - Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_instance = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Instance const& ) const = default; -#else - bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance == rhs.m_instance; - } - - bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance != rhs.m_instance; - } - - bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance < rhs.m_instance; - } + //=== VK_VERSION_1_0 === + + VkResult vkCreateInstance( const VkInstanceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkInstance * pInstance ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance ); + } + + void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyInstance( instance, pAllocator ); + } + + VkResult vkEnumeratePhysicalDevices( VkInstance instance, + uint32_t * pPhysicalDeviceCount, + VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices ); + } + + void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures ); + } + + void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties ); + } + + VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkImageFormatProperties * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceImageFormatProperties( + physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties ); + } + + void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties ); + } + + void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceQueueFamilyProperties( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + } + + void vkGetPhysicalDeviceMemoryProperties( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties ); + } + + PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetInstanceProcAddr( instance, pName ); + } + + PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceProcAddr( device, pName ); + } + + VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, + const VkDeviceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDevice * pDevice ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice ); + } + + void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDevice( device, pAllocator ); + } + + VkResult vkEnumerateInstanceExtensionProperties( const char * pLayerName, + uint32_t * pPropertyCount, + VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties ); + } + + VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, + const char * pLayerName, + uint32_t * pPropertyCount, + VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties ); + } + + VkResult vkEnumerateInstanceLayerProperties( uint32_t * pPropertyCount, + VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties ); + } + + VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties ); + } + + void vkGetDeviceQueue( VkDevice device, + uint32_t queueFamilyIndex, + uint32_t queueIndex, + VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue ); + } + + VkResult vkQueueSubmit( VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo * pSubmits, + VkFence fence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueSubmit( queue, submitCount, pSubmits, fence ); + } + + VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueWaitIdle( queue ); + } + + VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDeviceWaitIdle( device ); + } + + VkResult vkAllocateMemory( VkDevice device, + const VkMemoryAllocateInfo * pAllocateInfo, + const VkAllocationCallbacks * pAllocator, + VkDeviceMemory * pMemory ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory ); + } + + void vkFreeMemory( VkDevice device, + VkDeviceMemory memory, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkFreeMemory( device, memory, pAllocator ); + } + + VkResult vkMapMemory( VkDevice device, + VkDeviceMemory memory, + VkDeviceSize offset, + VkDeviceSize size, + VkMemoryMapFlags flags, + void ** ppData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMapMemory( device, memory, offset, size, flags, ppData ); + } + + void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUnmapMemory( device, memory ); + } + + VkResult vkFlushMappedMemoryRanges( VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT + { + return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); + } + + VkResult vkInvalidateMappedMemoryRanges( VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT + { + return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); + } + + void vkGetDeviceMemoryCommitment( VkDevice device, + VkDeviceMemory memory, + VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes ); + } + + VkResult vkBindBufferMemory( VkDevice device, + VkBuffer buffer, + VkDeviceMemory memory, + VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory( device, buffer, memory, memoryOffset ); + } + + VkResult vkBindImageMemory( VkDevice device, + VkImage image, + VkDeviceMemory memory, + VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory( device, image, memory, memoryOffset ); + } + + void vkGetBufferMemoryRequirements( VkDevice device, + VkBuffer buffer, + VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements ); + } + + void vkGetImageMemoryRequirements( VkDevice device, + VkImage image, + VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements ); + } + + void vkGetImageSparseMemoryRequirements( VkDevice device, + VkImage image, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageSparseMemoryRequirements( + device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + } + + void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkSampleCountFlagBits samples, + VkImageUsageFlags usage, + VkImageTiling tiling, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSparseImageFormatProperties( + physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties ); + } + + VkResult vkQueueBindSparse( VkQueue queue, + uint32_t bindInfoCount, + const VkBindSparseInfo * pBindInfo, + VkFence fence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence ); + } + + VkResult vkCreateFence( VkDevice device, + const VkFenceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence ); + } + + void vkDestroyFence( VkDevice device, + VkFence fence, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyFence( device, fence, pAllocator ); + } + + VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetFences( device, fenceCount, pFences ); + } + + VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetFenceStatus( device, fence ); + } + + VkResult vkWaitForFences( VkDevice device, + uint32_t fenceCount, + const VkFence * pFences, + VkBool32 waitAll, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout ); + } + + VkResult vkCreateSemaphore( VkDevice device, + const VkSemaphoreCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSemaphore * pSemaphore ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore ); + } + + void vkDestroySemaphore( VkDevice device, + VkSemaphore semaphore, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySemaphore( device, semaphore, pAllocator ); + } + + VkResult vkCreateEvent( VkDevice device, + const VkEventCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkEvent * pEvent ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent ); + } + + void vkDestroyEvent( VkDevice device, + VkEvent event, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyEvent( device, event, pAllocator ); + } + + VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetEventStatus( device, event ); + } + + VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetEvent( device, event ); + } + + VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetEvent( device, event ); + } + + VkResult vkCreateQueryPool( VkDevice device, + const VkQueryPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkQueryPool * pQueryPool ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool ); + } + + void vkDestroyQueryPool( VkDevice device, + VkQueryPool queryPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyQueryPool( device, queryPool, pAllocator ); + } + + VkResult vkGetQueryPoolResults( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + void * pData, + VkDeviceSize stride, + VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); + } + + VkResult vkCreateBuffer( VkDevice device, + const VkBufferCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkBuffer * pBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer ); + } + + void vkDestroyBuffer( VkDevice device, + VkBuffer buffer, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyBuffer( device, buffer, pAllocator ); + } + + VkResult vkCreateBufferView( VkDevice device, + const VkBufferViewCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkBufferView * pView ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView ); + } + + void vkDestroyBufferView( VkDevice device, + VkBufferView bufferView, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyBufferView( device, bufferView, pAllocator ); + } + + VkResult vkCreateImage( VkDevice device, + const VkImageCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkImage * pImage ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage ); + } + + void vkDestroyImage( VkDevice device, + VkImage image, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyImage( device, image, pAllocator ); + } + + void vkGetImageSubresourceLayout( VkDevice device, + VkImage image, + const VkImageSubresource * pSubresource, + VkSubresourceLayout * pLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout ); + } + + VkResult vkCreateImageView( VkDevice device, + const VkImageViewCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkImageView * pView ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView ); + } + + void vkDestroyImageView( VkDevice device, + VkImageView imageView, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyImageView( device, imageView, pAllocator ); + } + + VkResult vkCreateShaderModule( VkDevice device, + const VkShaderModuleCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkShaderModule * pShaderModule ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule ); + } + + void vkDestroyShaderModule( VkDevice device, + VkShaderModule shaderModule, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyShaderModule( device, shaderModule, pAllocator ); + } + + VkResult vkCreatePipelineCache( VkDevice device, + const VkPipelineCacheCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPipelineCache * pPipelineCache ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache ); + } + + void vkDestroyPipelineCache( VkDevice device, + VkPipelineCache pipelineCache, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator ); + } + + VkResult vkGetPipelineCacheData( VkDevice device, + VkPipelineCache pipelineCache, + size_t * pDataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData ); + } + + VkResult vkMergePipelineCaches( VkDevice device, + VkPipelineCache dstCache, + uint32_t srcCacheCount, + const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches ); + } + + VkResult vkCreateGraphicsPipelines( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkGraphicsPipelineCreateInfo * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateGraphicsPipelines( + device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + } + + VkResult vkCreateComputePipelines( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkComputePipelineCreateInfo * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + } + + void vkDestroyPipeline( VkDevice device, + VkPipeline pipeline, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyPipeline( device, pipeline, pAllocator ); + } + + VkResult vkCreatePipelineLayout( VkDevice device, + const VkPipelineLayoutCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPipelineLayout * pPipelineLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout ); + } + + void vkDestroyPipelineLayout( VkDevice device, + VkPipelineLayout pipelineLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator ); + } + + VkResult vkCreateSampler( VkDevice device, + const VkSamplerCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSampler * pSampler ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler ); + } + + void vkDestroySampler( VkDevice device, + VkSampler sampler, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySampler( device, sampler, pAllocator ); + } + + VkResult vkCreateDescriptorSetLayout( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorSetLayout * pSetLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout ); + } + + void vkDestroyDescriptorSetLayout( VkDevice device, + VkDescriptorSetLayout descriptorSetLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator ); + } + + VkResult vkCreateDescriptorPool( VkDevice device, + const VkDescriptorPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorPool * pDescriptorPool ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool ); + } + + void vkDestroyDescriptorPool( VkDevice device, + VkDescriptorPool descriptorPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator ); + } + + VkResult vkResetDescriptorPool( VkDevice device, + VkDescriptorPool descriptorPool, + VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetDescriptorPool( device, descriptorPool, flags ); + } + + VkResult vkAllocateDescriptorSets( VkDevice device, + const VkDescriptorSetAllocateInfo * pAllocateInfo, + VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets ); + } + + VkResult vkFreeDescriptorSets( VkDevice device, + VkDescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets ); + } + + void vkUpdateDescriptorSets( VkDevice device, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet * pDescriptorWrites, + uint32_t descriptorCopyCount, + const VkCopyDescriptorSet * pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSets( + device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); + } + + VkResult vkCreateFramebuffer( VkDevice device, + const VkFramebufferCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkFramebuffer * pFramebuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer ); + } + + void vkDestroyFramebuffer( VkDevice device, + VkFramebuffer framebuffer, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyFramebuffer( device, framebuffer, pAllocator ); + } + + VkResult vkCreateRenderPass( VkDevice device, + const VkRenderPassCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass ); + } + + void vkDestroyRenderPass( VkDevice device, + VkRenderPass renderPass, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyRenderPass( device, renderPass, pAllocator ); + } + + void vkGetRenderAreaGranularity( VkDevice device, + VkRenderPass renderPass, + VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity ); + } + + VkResult vkCreateCommandPool( VkDevice device, + const VkCommandPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkCommandPool * pCommandPool ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool ); + } + + void vkDestroyCommandPool( VkDevice device, + VkCommandPool commandPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyCommandPool( device, commandPool, pAllocator ); + } + + VkResult vkResetCommandPool( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetCommandPool( device, commandPool, flags ); + } + + VkResult vkAllocateCommandBuffers( VkDevice device, + const VkCommandBufferAllocateInfo * pAllocateInfo, + VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers ); + } + + void vkFreeCommandBuffers( VkDevice device, + VkCommandPool commandPool, + uint32_t commandBufferCount, + const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers ); + } + + VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, + const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo ); + } + + VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEndCommandBuffer( commandBuffer ); + } + + VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, + VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetCommandBuffer( commandBuffer, flags ); + } + + void vkCmdBindPipeline( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline ); + } + + void vkCmdSetViewport( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); + } + + void vkCmdSetScissor( VkCommandBuffer commandBuffer, + uint32_t firstScissor, + uint32_t scissorCount, + const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); + } + + void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetLineWidth( commandBuffer, lineWidth ); + } + + void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, + float depthBiasConstantFactor, + float depthBiasClamp, + float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); + } + + void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, + const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetBlendConstants( commandBuffer, blendConstants ); + } + + void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, + float minDepthBounds, + float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); + } + + void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); + } + + void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); + } + + void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t reference ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference ); + } + + void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t descriptorSetCount, + const VkDescriptorSet * pDescriptorSets, + uint32_t dynamicOffsetCount, + const uint32_t * pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindDescriptorSets( commandBuffer, + pipelineBindPoint, + layout, + firstSet, + descriptorSetCount, + pDescriptorSets, + dynamicOffsetCount, + pDynamicOffsets ); + } + + void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType ); + } + + void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets ); + } + + void vkCmdDraw( VkCommandBuffer commandBuffer, + uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); + } + + void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, + uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, + int32_t vertexOffset, + uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); + } + + void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride ); + } + + void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride ); + } + + void vkCmdDispatch( VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ ); + } + + void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset ); + } + + void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferCopy * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions ); + } + + void vkCmdCopyImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + } + + void vkCmdBlitImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageBlit * pRegions, + VkFilter filter ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBlitImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); + } + + void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions ); + } + + void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions ); + } + + void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize dataSize, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); + } + + void vkCmdFillBuffer( VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize size, + uint32_t data ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data ); + } + + void vkCmdClearColorImage( VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearColorValue * pColor, + uint32_t rangeCount, + const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges ); + } + + void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearDepthStencilValue * pDepthStencil, + uint32_t rangeCount, + const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges ); + } + + void vkCmdClearAttachments( VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkClearAttachment * pAttachments, + uint32_t rectCount, + const VkClearRect * pRects ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects ); + } + + void vkCmdResolveImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResolveImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + } + + void vkCmdSetEvent( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetEvent( commandBuffer, event, stageMask ); + } + + void vkCmdResetEvent( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResetEvent( commandBuffer, event, stageMask ); + } + + void vkCmdWaitEvents( VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent * pEvents, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + uint32_t memoryBarrierCount, + const VkMemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWaitEvents( commandBuffer, + eventCount, + pEvents, + srcStageMask, + dstStageMask, + memoryBarrierCount, + pMemoryBarriers, + bufferMemoryBarrierCount, + pBufferMemoryBarriers, + imageMemoryBarrierCount, + pImageMemoryBarriers ); + } + + void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + VkDependencyFlags dependencyFlags, + uint32_t memoryBarrierCount, + const VkMemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPipelineBarrier( commandBuffer, + srcStageMask, + dstStageMask, + dependencyFlags, + memoryBarrierCount, + pMemoryBarriers, + bufferMemoryBarrierCount, + pBufferMemoryBarriers, + imageMemoryBarrierCount, + pImageMemoryBarriers ); + } + + void vkCmdBeginQuery( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags ); + } + + void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndQuery( commandBuffer, queryPool, query ); + } + + void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount ); + } + + void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkQueryPool queryPool, + uint32_t query ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); + } + + void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize stride, + VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyQueryPoolResults( + commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); + } + + void vkCmdPushConstants( VkCommandBuffer commandBuffer, + VkPipelineLayout layout, + VkShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + const void * pValues ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues ); + } + + void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents ); + } + + void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdNextSubpass( commandBuffer, contents ); + } + + void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndRenderPass( commandBuffer ); + } + + void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, + uint32_t commandBufferCount, + const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers ); + } + + //=== VK_VERSION_1_1 === + + VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumerateInstanceVersion( pApiVersion ); + } + + VkResult vkBindBufferMemory2( VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindImageMemory2( VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos ); + } + + void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceGroupPeerMemoryFeatures( + device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); + } + + void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDeviceMask( commandBuffer, deviceMask ); + } + + void vkCmdDispatchBase( VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDispatchBase( + commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + } + + VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, + uint32_t * pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); + } + + void vkGetImageMemoryRequirements2( VkDevice device, + const VkImageMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements ); + } + + void vkGetBufferMemoryRequirements2( VkDevice device, + const VkBufferMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements ); + } + + void vkGetImageSparseMemoryRequirements2( VkDevice device, + const VkImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageSparseMemoryRequirements2( + device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + } + + void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures ); + } + + void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties ); + } + + void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties ); + } + + VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VkImageFormatProperties2 * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties ); + } + + void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties2 * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceQueueFamilyProperties2( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + } + + void vkGetPhysicalDeviceMemoryProperties2( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties ); + } + + void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties2 * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSparseImageFormatProperties2( + physicalDevice, pFormatInfo, pPropertyCount, pProperties ); + } + + void vkTrimCommandPool( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkTrimCommandPool( device, commandPool, flags ); + } + + void vkGetDeviceQueue2( VkDevice device, + const VkDeviceQueueInfo2 * pQueueInfo, + VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue ); + } + + VkResult vkCreateSamplerYcbcrConversion( VkDevice device, + const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion ); + } + + void vkDestroySamplerYcbcrConversion( VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator ); + } + + VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); + } + + void vkDestroyDescriptorUpdateTemplate( VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator ); + } + + void vkUpdateDescriptorSetWithTemplate( VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData ); + } + + void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VkExternalBufferProperties * pExternalBufferProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalBufferProperties( + physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); + } + + void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VkExternalFenceProperties * pExternalFenceProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalFenceProperties( + physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); + } + + void vkGetPhysicalDeviceExternalSemaphoreProperties( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalSemaphoreProperties( + physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); + } + + void vkGetDescriptorSetLayoutSupport( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport ); + } + + //=== VK_VERSION_1_2 === + + void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndirectCount( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndexedIndirectCount( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + VkResult vkCreateRenderPass2( VkDevice device, + const VkRenderPassCreateInfo2 * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass ); + } + + void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); + } + + void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo * pSubpassBeginInfo, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); + } + + void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo ); + } + + void vkResetQueryPool( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount ); + } + + VkResult + vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSemaphoreCounterValue( device, semaphore, pValue ); + } + + VkResult vkWaitSemaphores( VkDevice device, + const VkSemaphoreWaitInfo * pWaitInfo, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitSemaphores( device, pWaitInfo, timeout ); + } + + VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSignalSemaphore( device, pSignalInfo ); + } + + VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferDeviceAddress( device, pInfo ); + } + + uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferOpaqueCaptureAddress( device, pInfo ); + } + + uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( + VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo ); + } + + //=== VK_KHR_surface === + + void vkDestroySurfaceKHR( VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySurfaceKHR( instance, surface, pAllocator ); + } + + VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + VkSurfaceKHR surface, + VkBool32 * pSupported ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported ); + } + + VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities ); + } + + VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pSurfaceFormatCount, + VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats ); + } + + VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pPresentModeCount, + VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes ); + } + + //=== VK_KHR_swapchain === + + VkResult vkCreateSwapchainKHR( VkDevice device, + const VkSwapchainCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSwapchainKHR * pSwapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain ); + } + + void vkDestroySwapchainKHR( VkDevice device, + VkSwapchainKHR swapchain, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySwapchainKHR( device, swapchain, pAllocator ); + } + + VkResult vkGetSwapchainImagesKHR( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pSwapchainImageCount, + VkImage * pSwapchainImages ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages ); + } + + VkResult vkAcquireNextImageKHR( VkDevice device, + VkSwapchainKHR swapchain, + uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex ); + } + + VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueuePresentKHR( queue, pPresentInfo ); + } + + VkResult vkGetDeviceGroupPresentCapabilitiesKHR( + VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities ); + } + + VkResult vkGetDeviceGroupSurfacePresentModesKHR( + VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes ); + } + + VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pRectCount, + VkRect2D * pRects ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects ); + } + + VkResult vkAcquireNextImage2KHR( VkDevice device, + const VkAcquireNextImageInfoKHR * pAcquireInfo, + uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex ); + } + + //=== VK_KHR_display === + + VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties ); + } + + VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPlanePropertiesKHR * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties ); + } + + VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, + uint32_t planeIndex, + uint32_t * pDisplayCount, + VkDisplayKHR * pDisplays ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays ); + } + + VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t * pPropertyCount, + VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties ); + } + + VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + const VkDisplayModeCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDisplayModeKHR * pMode ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode ); + } + + VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, + VkDisplayModeKHR mode, + uint32_t planeIndex, + VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities ); + } + + VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, + const VkDisplaySurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } + + //=== VK_KHR_display_swapchain === + + VkResult vkCreateSharedSwapchainsKHR( VkDevice device, + uint32_t swapchainCount, + const VkSwapchainCreateInfoKHR * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkSwapchainKHR * pSwapchains ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); + } + +# if defined( VK_USE_PLATFORM_XLIB_KHR ) + //=== VK_KHR_xlib_surface === + + VkResult vkCreateXlibSurfaceKHR( VkInstance instance, + const VkXlibSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + Display * dpy, + VisualID visualID ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID ); + } +# endif /*VK_USE_PLATFORM_XLIB_KHR*/ + +# if defined( VK_USE_PLATFORM_XCB_KHR ) + //=== VK_KHR_xcb_surface === + + VkResult vkCreateXcbSurfaceKHR( VkInstance instance, + const VkXcbSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + xcb_connection_t * connection, + xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id ); + } +# endif /*VK_USE_PLATFORM_XCB_KHR*/ + +# if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + //=== VK_KHR_wayland_surface === + + VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, + const VkWaylandSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct wl_display * display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display ); + } +# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_KHR_android_surface === + + VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, + const VkAndroidSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_win32_surface === + + VkResult vkCreateWin32SurfaceKHR( VkInstance instance, + const VkWin32SurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_debug_report === + + VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, + const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDebugReportCallbackEXT * pCallback ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback ); + } + + void vkDestroyDebugReportCallbackEXT( VkInstance instance, + VkDebugReportCallbackEXT callback, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator ); + } + + void vkDebugReportMessageEXT( VkInstance instance, + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char * pLayerPrefix, + const char * pMessage ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDebugReportMessageEXT( + instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage ); + } + + //=== VK_EXT_debug_marker === + + VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, + const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo ); + } + + VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, + const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo ); + } + + void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo ); + } + + void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDebugMarkerEndEXT( commandBuffer ); + } + + void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo ); + } + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + + VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice physicalDevice, + const VkVideoProfileKHR * pVideoProfile, + VkVideoCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities ); + } + + VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo, + uint32_t * pVideoFormatPropertyCount, + VkVideoFormatPropertiesKHR * pVideoFormatProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR( + physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties ); + } + + VkResult vkCreateVideoSessionKHR( VkDevice device, + const VkVideoSessionCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkVideoSessionKHR * pVideoSession ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession ); + } + + void vkDestroyVideoSessionKHR( VkDevice device, + VkVideoSessionKHR videoSession, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator ); + } + + VkResult vkGetVideoSessionMemoryRequirementsKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t * pVideoSessionMemoryRequirementsCount, + VkVideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetVideoSessionMemoryRequirementsKHR( + device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements ); + } + + VkResult + vkBindVideoSessionMemoryKHR( VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VkVideoBindMemoryKHR * pVideoSessionBindMemories ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindVideoSessionMemoryKHR( + device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories ); + } + + VkResult vkCreateVideoSessionParametersKHR( VkDevice device, + const VkVideoSessionParametersCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkVideoSessionParametersKHR * pVideoSessionParameters ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters ); + } + + VkResult vkUpdateVideoSessionParametersKHR( VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo ); + } + + void vkDestroyVideoSessionParametersKHR( VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator ); + } + + void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo ); + } + + void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo ); + } + + void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_decode_queue === + + void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR * pFrameInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDecodeVideoKHR( commandBuffer, pFrameInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_EXT_transform_feedback === + + void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets, + const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindTransformFeedbackBuffersEXT( + commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); + } + + void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer * pCounterBuffers, + const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginTransformFeedbackEXT( + commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); + } + + void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer * pCounterBuffers, + const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndTransformFeedbackEXT( + commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); + } + + void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index ); + } + + void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index ); + } + + void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndirectByteCountEXT( + commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); + } + + //=== VK_NVX_binary_import === + + VkResult vkCreateCuModuleNVX( VkDevice device, + const VkCuModuleCreateInfoNVX * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkCuModuleNVX * pModule ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateCuModuleNVX( device, pCreateInfo, pAllocator, pModule ); + } + + VkResult vkCreateCuFunctionNVX( VkDevice device, + const VkCuFunctionCreateInfoNVX * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkCuFunctionNVX * pFunction ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateCuFunctionNVX( device, pCreateInfo, pAllocator, pFunction ); + } + + void vkDestroyCuModuleNVX( VkDevice device, + VkCuModuleNVX module, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyCuModuleNVX( device, module, pAllocator ); + } + + void vkDestroyCuFunctionNVX( VkDevice device, + VkCuFunctionNVX function, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyCuFunctionNVX( device, function, pAllocator ); + } + + void vkCmdCuLaunchKernelNVX( VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCuLaunchKernelNVX( commandBuffer, pLaunchInfo ); + } + + //=== VK_NVX_image_view_handle === + + uint32_t vkGetImageViewHandleNVX( VkDevice device, + const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageViewHandleNVX( device, pInfo ); + } + + VkResult vkGetImageViewAddressNVX( VkDevice device, + VkImageView imageView, + VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageViewAddressNVX( device, imageView, pProperties ); + } + + //=== VK_AMD_draw_indirect_count === + + void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndirectCountAMD( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndexedIndirectCountAMD( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + //=== VK_AMD_shader_info === + + VkResult vkGetShaderInfoAMD( VkDevice device, + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t * pInfoSize, + void * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo ); + } + + //=== VK_KHR_dynamic_rendering === + + void vkCmdBeginRenderingKHR( VkCommandBuffer commandBuffer, + const VkRenderingInfoKHR * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginRenderingKHR( commandBuffer, pRenderingInfo ); + } + + void vkCmdEndRenderingKHR( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndRenderingKHR( commandBuffer ); + } + +# if defined( VK_USE_PLATFORM_GGP ) + //=== VK_GGP_stream_descriptor_surface === + + VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_GGP*/ + + //=== VK_NV_external_memory_capabilities === + + VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkExternalMemoryHandleTypeFlagsNV externalHandleType, + VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_external_memory_win32 === + + VkResult vkGetMemoryWin32HandleNV( VkDevice device, + VkDeviceMemory memory, + VkExternalMemoryHandleTypeFlagsNV handleType, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_get_physical_device_properties2 === + + void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures ); + } + + void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties ); + } + + void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties ); + } + + VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VkImageFormatProperties2 * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties ); + } + + void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties2 * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + } + + void vkGetPhysicalDeviceMemoryProperties2KHR( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties ); + } + + void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties2 * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + physicalDevice, pFormatInfo, pPropertyCount, pProperties ); + } + + //=== VK_KHR_device_group === + + void + vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( + device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); + } + + void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask ); + } + + void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDispatchBaseKHR( + commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + } + +# if defined( VK_USE_PLATFORM_VI_NN ) + //=== VK_NN_vi_surface === + + VkResult vkCreateViSurfaceNN( VkInstance instance, + const VkViSurfaceCreateInfoNN * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_VI_NN*/ + + //=== VK_KHR_maintenance1 === + + void vkTrimCommandPoolKHR( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkTrimCommandPoolKHR( device, commandPool, flags ); + } + + //=== VK_KHR_device_group_creation === + + VkResult vkEnumeratePhysicalDeviceGroupsKHR( + VkInstance instance, + uint32_t * pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumeratePhysicalDeviceGroupsKHR( + instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); + } + + //=== VK_KHR_external_memory_capabilities === + + void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VkExternalBufferProperties * pExternalBufferProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( + physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_memory_win32 === + + VkResult vkGetMemoryWin32HandleKHR( VkDevice device, + const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + } + + VkResult vkGetMemoryWin32HandlePropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_memory_fd === + + VkResult + vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd ); + } + + VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + int fd, + VkMemoryFdPropertiesKHR * pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties ); + } + + //=== VK_KHR_external_semaphore_capabilities === + + void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_semaphore_win32 === + + VkResult vkImportSemaphoreWin32HandleKHR( + VkDevice device, + const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo ); + } + + VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, + const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_semaphore_fd === + + VkResult + vkImportSemaphoreFdKHR( VkDevice device, + const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo ); + } + + VkResult vkGetSemaphoreFdKHR( VkDevice device, + const VkSemaphoreGetFdInfoKHR * pGetFdInfo, + int * pFd ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd ); + } + + //=== VK_KHR_push_descriptor === + + void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPushDescriptorSetKHR( + commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); + } + + void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + VkPipelineLayout layout, + uint32_t set, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData ); + } + + //=== VK_EXT_conditional_rendering === + + void vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin ); + } + + void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndConditionalRenderingEXT( commandBuffer ); + } + + //=== VK_KHR_descriptor_update_template === + + VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); + } + + void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator ); + } + + void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData ); + } + + //=== VK_NV_clip_space_w_scaling === + + void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); + } + + //=== VK_EXT_direct_mode_display === + + VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseDisplayEXT( physicalDevice, display ); + } + +# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + //=== VK_EXT_acquire_xlib_display === + + VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, + Display * dpy, + VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display ); + } + + VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, + Display * dpy, + RROutput rrOutput, + VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay ); + } +# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + //=== VK_EXT_display_surface_counter === + + VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities ); + } + + //=== VK_EXT_display_control === + + VkResult vkDisplayPowerControlEXT( VkDevice device, + VkDisplayKHR display, + const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo ); + } + + VkResult vkRegisterDeviceEventEXT( VkDevice device, + const VkDeviceEventInfoEXT * pDeviceEventInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence ); + } + + VkResult vkRegisterDisplayEventEXT( VkDevice device, + VkDisplayKHR display, + const VkDisplayEventInfoEXT * pDisplayEventInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence ); + } + + VkResult vkGetSwapchainCounterEXT( VkDevice device, + VkSwapchainKHR swapchain, + VkSurfaceCounterFlagBitsEXT counter, + uint64_t * pCounterValue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue ); + } + + //=== VK_GOOGLE_display_timing === + + VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties ); + } + + VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pPresentationTimingCount, + VkPastPresentationTimingGOOGLE * pPresentationTimings ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings ); + } + + //=== VK_EXT_discard_rectangles === + + void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, + uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDiscardRectangleEXT( + commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); + } + + //=== VK_EXT_hdr_metadata === + + void vkSetHdrMetadataEXT( VkDevice device, + uint32_t swapchainCount, + const VkSwapchainKHR * pSwapchains, + const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata ); + } + + //=== VK_KHR_create_renderpass2 === + + VkResult vkCreateRenderPass2KHR( VkDevice device, + const VkRenderPassCreateInfo2 * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass ); + } + + void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); + } + + void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo * pSubpassBeginInfo, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); + } + + void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo ); + } + + //=== VK_KHR_shared_presentable_image === + + VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainStatusKHR( device, swapchain ); + } + + //=== VK_KHR_external_fence_capabilities === + + void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VkExternalFenceProperties * pExternalFenceProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( + physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_fence_win32 === + + VkResult vkImportFenceWin32HandleKHR( + VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo ); + } + + VkResult vkGetFenceWin32HandleKHR( VkDevice device, + const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_fence_fd === + + VkResult vkImportFenceFdKHR( VkDevice device, + const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportFenceFdKHR( device, pImportFenceFdInfo ); + } + + VkResult + vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd ); + } + + //=== VK_KHR_performance_query === + + VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + uint32_t * pCounterCount, + VkPerformanceCounterKHR * pCounters, + VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions ); + } + + void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo, + uint32_t * pNumPasses ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + physicalDevice, pPerformanceQueryCreateInfo, pNumPasses ); + } + + VkResult vkAcquireProfilingLockKHR( VkDevice device, + const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireProfilingLockKHR( device, pInfo ); + } + + void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseProfilingLockKHR( device ); + } + + //=== VK_KHR_get_surface_capabilities2 === + + VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities ); + } + + VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pSurfaceFormatCount, + VkSurfaceFormat2KHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfaceFormats2KHR( + physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats ); + } + + //=== VK_KHR_get_display_properties2 === + + VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties ); + } + + VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPlaneProperties2KHR * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties ); + } + + VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t * pPropertyCount, + VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties ); + } + + VkResult + vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, + const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo, + VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities ); + } + +# if defined( VK_USE_PLATFORM_IOS_MVK ) + //=== VK_MVK_ios_surface === + + VkResult vkCreateIOSSurfaceMVK( VkInstance instance, + const VkIOSSurfaceCreateInfoMVK * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_IOS_MVK*/ + +# if defined( VK_USE_PLATFORM_MACOS_MVK ) + //=== VK_MVK_macos_surface === + + VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, + const VkMacOSSurfaceCreateInfoMVK * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_MACOS_MVK*/ + + //=== VK_EXT_debug_utils === + + VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, + const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo ); + } + + VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, + const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo ); + } + + void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo ); + } + + void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueEndDebugUtilsLabelEXT( queue ); + } + + void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo ); + } + + void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); + } + + void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer ); + } + + void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); + } + + VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, + const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDebugUtilsMessengerEXT * pMessenger ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger ); + } + + void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, + VkDebugUtilsMessengerEXT messenger, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator ); + } + + void vkSubmitDebugUtilsMessageEXT( VkInstance instance, + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData ); + } + +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_memory_android_hardware_buffer === + + VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, + const struct AHardwareBuffer * buffer, + VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties ); + } + + VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, + const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo, + struct AHardwareBuffer ** pBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer ); + } +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + //=== VK_EXT_sample_locations === + + void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, + const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); + } + + void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT * pMultisampleProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties ); + } + + //=== VK_KHR_get_memory_requirements2 === + + void vkGetImageMemoryRequirements2KHR( VkDevice device, + const VkImageMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); + } + + void vkGetBufferMemoryRequirements2KHR( VkDevice device, + const VkBufferMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); + } + + void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, + const VkImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageSparseMemoryRequirements2KHR( + device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + } + + //=== VK_KHR_acceleration_structure === + + VkResult + vkCreateAccelerationStructureKHR( VkDevice device, + const VkAccelerationStructureCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkAccelerationStructureKHR * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure ); + } + + void vkDestroyAccelerationStructureKHR( VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator ); + } + + void vkCmdBuildAccelerationStructuresKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos ); + } + + void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkDeviceAddress * pIndirectDeviceAddresses, + const uint32_t * pIndirectStrides, + const uint32_t * const * ppMaxPrimitiveCounts ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBuildAccelerationStructuresIndirectKHR( + commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts ); + } + + VkResult vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos ); + } + + VkResult + vkCopyAccelerationStructureKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo ); + } + + VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo ); + } + + VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo ); + } + + VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR * pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void * pData, + size_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWriteAccelerationStructuresPropertiesKHR( + device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride ); + } + + void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo ); + } + + void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo ); + } + + void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo ); + } + + VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo ); + } + + void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR * pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteAccelerationStructuresPropertiesKHR( + commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); + } + + void vkGetDeviceAccelerationStructureCompatibilityKHR( + VkDevice device, + const VkAccelerationStructureVersionInfoKHR * pVersionInfo, + VkAccelerationStructureCompatibilityKHR * pCompatibility ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility ); + } + + void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo, + const uint32_t * pMaxPrimitiveCounts, + VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo ); + } + + //=== VK_KHR_sampler_ycbcr_conversion === + + VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, + const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion ); + } + + void vkDestroySamplerYcbcrConversionKHR( VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator ); + } + + //=== VK_KHR_bind_memory2 === + + VkResult vkBindBufferMemory2KHR( VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindImageMemory2KHR( VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos ); + } + + //=== VK_EXT_image_drm_format_modifier === + + VkResult vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties ); + } + + //=== VK_EXT_validation_cache === + + VkResult vkCreateValidationCacheEXT( VkDevice device, + const VkValidationCacheCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkValidationCacheEXT * pValidationCache ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache ); + } + + void vkDestroyValidationCacheEXT( VkDevice device, + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator ); + } + + VkResult vkMergeValidationCachesEXT( VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches ); + } + + VkResult vkGetValidationCacheDataEXT( VkDevice device, + VkValidationCacheEXT validationCache, + size_t * pDataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData ); + } + + //=== VK_NV_shading_rate_image === + + void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout ); + } + + void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV * pShadingRatePalettes ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetViewportShadingRatePaletteNV( + commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); + } + + void + vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetCoarseSampleOrderNV( + commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); + } + + //=== VK_NV_ray_tracing === + + VkResult + vkCreateAccelerationStructureNV( VkDevice device, + const VkAccelerationStructureCreateInfoNV * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkAccelerationStructureNV * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure ); + } + + void vkDestroyAccelerationStructureNV( VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator ); + } + + void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo, + VkMemoryRequirements2KHR * pMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); + } + + VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos ); + } + + void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, + const VkAccelerationStructureInfoNV * pInfo, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + VkBool32 update, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkBuffer scratch, + VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBuildAccelerationStructureNV( + commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); + } + + void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode ); + } + + void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, + VkBuffer raygenShaderBindingTableBuffer, + VkDeviceSize raygenShaderBindingOffset, + VkBuffer missShaderBindingTableBuffer, + VkDeviceSize missShaderBindingOffset, + VkDeviceSize missShaderBindingStride, + VkBuffer hitShaderBindingTableBuffer, + VkDeviceSize hitShaderBindingOffset, + VkDeviceSize hitShaderBindingStride, + VkBuffer callableShaderBindingTableBuffer, + VkDeviceSize callableShaderBindingOffset, + VkDeviceSize callableShaderBindingStride, + uint32_t width, + uint32_t height, + uint32_t depth ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysNV( commandBuffer, + raygenShaderBindingTableBuffer, + raygenShaderBindingOffset, + missShaderBindingTableBuffer, + missShaderBindingOffset, + missShaderBindingStride, + hitShaderBindingTableBuffer, + hitShaderBindingOffset, + hitShaderBindingStride, + callableShaderBindingTableBuffer, + callableShaderBindingOffset, + callableShaderBindingStride, + width, + height, + depth ); + } + + VkResult vkCreateRayTracingPipelinesNV( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateRayTracingPipelinesNV( + device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + } + + VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData ); + } + + VkResult vkGetAccelerationStructureHandleNV( VkDevice device, + VkAccelerationStructureNV accelerationStructure, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData ); + } + + void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureNV * pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteAccelerationStructuresPropertiesNV( + commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); + } + + VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCompileDeferredNV( device, pipeline, shader ); + } + + //=== VK_KHR_maintenance3 === + + void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport ); + } + + //=== VK_KHR_draw_indirect_count === + + void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndirectCountKHR( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawIndexedIndirectCountKHR( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + //=== VK_EXT_external_memory_host === + + VkResult vkGetMemoryHostPointerPropertiesEXT( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties ); + } + + //=== VK_AMD_buffer_marker === + + void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); + } + + //=== VK_EXT_calibrated_timestamps === + + VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, + uint32_t * pTimeDomainCount, + VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains ); + } + + VkResult vkGetCalibratedTimestampsEXT( VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT * pTimestampInfos, + uint64_t * pTimestamps, + uint64_t * pMaxDeviation ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); + } + + //=== VK_NV_mesh_shader === + + void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask ); + } + + void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride ); + } + + void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawMeshTasksIndirectCountNV( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + } + + //=== VK_NV_scissor_exclusive === + + void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetExclusiveScissorNV( + commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); + } + + //=== VK_NV_device_diagnostic_checkpoints === + + void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker ); + } + + void vkGetQueueCheckpointDataNV( VkQueue queue, + uint32_t * pCheckpointDataCount, + VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData ); + } + + //=== VK_KHR_timeline_semaphore === + + VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, + VkSemaphore semaphore, + uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue ); + } + + VkResult vkWaitSemaphoresKHR( VkDevice device, + const VkSemaphoreWaitInfo * pWaitInfo, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout ); + } + + VkResult vkSignalSemaphoreKHR( VkDevice device, + const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSignalSemaphoreKHR( device, pSignalInfo ); + } + + //=== VK_INTEL_performance_query === + + VkResult vkInitializePerformanceApiINTEL( + VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo ); + } + + void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUninitializePerformanceApiINTEL( device ); + } + + VkResult + vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); + } + + VkResult vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); + } + + VkResult + vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); + } + + VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo, + VkPerformanceConfigurationINTEL * pConfiguration ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration ); + } + + VkResult + vkReleasePerformanceConfigurationINTEL( VkDevice device, + VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleasePerformanceConfigurationINTEL( device, configuration ); + } + + VkResult + vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, + VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration ); + } + + VkResult vkGetPerformanceParameterINTEL( VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL * pValue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPerformanceParameterINTEL( device, parameter, pValue ); + } + + //=== VK_AMD_display_native_hdr === + + void vkSetLocalDimmingAMD( VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable ); + } + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_imagepipe_surface === + + VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + +# if defined( VK_USE_PLATFORM_METAL_EXT ) + //=== VK_EXT_metal_surface === + + VkResult vkCreateMetalSurfaceEXT( VkInstance instance, + const VkMetalSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); + } +# endif /*VK_USE_PLATFORM_METAL_EXT*/ + + //=== VK_KHR_fragment_shading_rate === + + VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( + VkPhysicalDevice physicalDevice, + uint32_t * pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( + physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates ); + } + + void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, + const VkExtent2D * pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps ); + } + + //=== VK_EXT_buffer_device_address === + + VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferDeviceAddressEXT( device, pInfo ); + } + + //=== VK_EXT_tooling_info === + + VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, + uint32_t * pToolCount, + VkPhysicalDeviceToolPropertiesEXT * pToolProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties ); + } + + //=== VK_KHR_present_wait === + + VkResult vkWaitForPresentKHR( VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout ); + } + + //=== VK_NV_cooperative_matrix === + + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkCooperativeMatrixPropertiesNV * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties ); + } + + //=== VK_NV_coverage_reduction_mode === + + VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t * pCombinationCount, + VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + physicalDevice, pCombinationCount, pCombinations ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_EXT_full_screen_exclusive === + + VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pPresentModeCount, + VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( + physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes ); + } + + VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain ); + } + + VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain ); + } + + VkResult + vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_headless_surface === + + VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); + } + + //=== VK_KHR_buffer_device_address === + + VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferDeviceAddressKHR( device, pInfo ); + } + + uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo ); + } + + uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( + VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo ); + } + + //=== VK_EXT_line_rasterization === + + void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); + } + + //=== VK_EXT_host_query_reset === + + void vkResetQueryPoolEXT( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount ); + } + + //=== VK_EXT_extended_dynamic_state === + + void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetCullModeEXT( commandBuffer, cullMode ); + } + + void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace ); + } + + void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology ); + } + + void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports ); + } + + void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors ); + } + + void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets, + const VkDeviceSize * pSizes, + const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindVertexBuffers2EXT( + commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides ); + } + + void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable ); + } + + void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable ); + } + + void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp ); + } + + void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable ); + } + + void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable ); + } + + void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp ); + } + + //=== VK_KHR_deferred_host_operations === + + VkResult vkCreateDeferredOperationKHR( VkDevice device, + const VkAllocationCallbacks * pAllocator, + VkDeferredOperationKHR * pDeferredOperation ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation ); + } + + void vkDestroyDeferredOperationKHR( VkDevice device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator ); + } + + uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, + VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation ); + } + + VkResult vkGetDeferredOperationResultKHR( VkDevice device, + VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeferredOperationResultKHR( device, operation ); + } + + VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDeferredOperationJoinKHR( device, operation ); + } + + //=== VK_KHR_pipeline_executable_properties === + + VkResult + vkGetPipelineExecutablePropertiesKHR( VkDevice device, + const VkPipelineInfoKHR * pPipelineInfo, + uint32_t * pExecutableCount, + VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties ); + } + + VkResult + vkGetPipelineExecutableStatisticsKHR( VkDevice device, + const VkPipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pStatisticCount, + VkPipelineExecutableStatisticKHR * pStatistics ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics ); + } + + VkResult vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPipelineExecutableInternalRepresentationsKHR( + device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); + } + + //=== VK_NV_device_generated_commands === + + void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); + } + + void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, + const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo ); + } + + void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo ); + } + + void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex ); + } + + VkResult + vkCreateIndirectCommandsLayoutNV( VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout ); + } + + void vkDestroyIndirectCommandsLayoutNV( VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator ); + } + + //=== VK_EXT_acquire_drm_display === + + VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice, + int32_t drmFd, + VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireDrmDisplayEXT( physicalDevice, drmFd, display ); + } + + VkResult vkGetDrmDisplayEXT( VkPhysicalDevice physicalDevice, + int32_t drmFd, + uint32_t connectorId, + VkDisplayKHR * display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDrmDisplayEXT( physicalDevice, drmFd, connectorId, display ); + } + + //=== VK_EXT_private_data === + + VkResult vkCreatePrivateDataSlotEXT( VkDevice device, + const VkPrivateDataSlotCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPrivateDataSlotEXT * pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot ); + } + + void vkDestroyPrivateDataSlotEXT( VkDevice device, + VkPrivateDataSlotEXT privateDataSlot, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator ); + } + + VkResult vkSetPrivateDataEXT( VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t data ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data ); + } + + void vkGetPrivateDataEXT( VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData ); + } + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_encode_queue === + + void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, + const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_KHR_synchronization2 === + + void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo ); + } + + void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask ); + } + + void vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent * pEvents, + const VkDependencyInfoKHR * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos ); + } + + void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, + const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo ); + } + + void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkQueryPool queryPool, + uint32_t query ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query ); + } + + VkResult vkQueueSubmit2KHR( VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2KHR * pSubmits, + VkFence fence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence ); + } + + void vkCmdWriteBufferMarker2AMD( VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker ); + } + + void vkGetQueueCheckpointData2NV( VkQueue queue, + uint32_t * pCheckpointDataCount, + VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData ); + } + + //=== VK_NV_fragment_shading_rate_enums === + + void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps ); + } + + //=== VK_KHR_copy_commands2 === + + void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2KHR * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo ); + } + + void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, + const VkCopyImageInfo2KHR * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo ); + } + + void + vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo ); + } + + void + vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo ); + } + + void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, + const VkBlitImageInfo2KHR * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo ); + } + + void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, + const VkResolveImageInfo2KHR * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_acquire_winrt_display === + + VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireWinrtDisplayNV( physicalDevice, display ); + } + + VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, + uint32_t deviceRelativeId, + VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +# if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + //=== VK_EXT_directfb_surface === + + VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, + const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + IDirectFB * dfb ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb ); + } +# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + //=== VK_KHR_ray_tracing_pipeline === + + void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysKHR( commandBuffer, + pRaygenShaderBindingTable, + pMissShaderBindingTable, + pHitShaderBindingTable, + pCallableShaderBindingTable, + width, + height, + depth ); + } + + VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateRayTracingPipelinesKHR( + device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + } + + VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); + } + + VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + device, pipeline, firstGroup, groupCount, dataSize, pData ); + } + + void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysIndirectKHR( commandBuffer, + pRaygenShaderBindingTable, + pMissShaderBindingTable, + pHitShaderBindingTable, + pCallableShaderBindingTable, + indirectDeviceAddress ); + } + + VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader ); + } + + void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, + uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize ); + } + + //=== VK_EXT_vertex_input_dynamic_state === + + void vkCmdSetVertexInputEXT( VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetVertexInputEXT( commandBuffer, + vertexBindingDescriptionCount, + pVertexBindingDescriptions, + vertexAttributeDescriptionCount, + pVertexAttributeDescriptions ); + } + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_memory === + + VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice device, + const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle ); + } + + VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryZirconHandlePropertiesFUCHSIA( + device, handleType, zirconHandle, pMemoryZirconHandleProperties ); + } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_semaphore === + + VkResult vkImportSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo ); + } + + VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice device, + const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle ); + } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + + VkResult vkCreateBufferCollectionFUCHSIA( VkDevice device, + const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkBufferCollectionFUCHSIA * pCollection ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateBufferCollectionFUCHSIA( device, pCreateInfo, pAllocator, pCollection ); + } + + VkResult vkSetBufferCollectionImageConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo ); + } + + VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetBufferCollectionBufferConstraintsFUCHSIA( device, collection, pBufferConstraintsInfo ); + } + + void vkDestroyBufferCollectionFUCHSIA( VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT + { + return ::vkDestroyBufferCollectionFUCHSIA( device, collection, pAllocator ); + } + + VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice device, + VkBufferCollectionFUCHSIA collection, + VkBufferCollectionPropertiesFUCHSIA * pProperties ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkGetBufferCollectionPropertiesFUCHSIA( device, collection, pProperties ); + } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_HUAWEI_subpass_shading === + + VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device, + VkRenderPass renderpass, + VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize ); + } + + void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSubpassShadingHUAWEI( commandBuffer ); + } + + //=== VK_HUAWEI_invocation_mask === + + void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout ); + } + + //=== VK_NV_external_memory_rdma === + + VkResult vkGetMemoryRemoteAddressNV( VkDevice device, + const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV * pAddress ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress ); + } + + //=== VK_EXT_extended_dynamic_state2 === + + void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, + uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints ); + } + + void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable ); + } + + void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable ); + } + + void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp ); + } + + void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable ); + } + +# if defined( VK_USE_PLATFORM_SCREEN_QNX ) + //=== VK_QNX_screen_surface === + + VkResult vkCreateScreenSurfaceQNX( VkInstance instance, + const VkScreenSurfaceCreateInfoQNX * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface ); + } + + VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window ); + } +# endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + + //=== VK_EXT_color_write_enable === + + void vkCmdSetColorWriteEnableEXT( VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables ); + } + + //=== VK_EXT_multi_draw === + + void vkCmdDrawMultiEXT( VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawInfoEXT * pVertexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawMultiEXT( commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride ); + } + + void vkCmdDrawMultiIndexedEXT( VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawIndexedInfoEXT * pIndexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride, + const int32_t * pVertexOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDrawMultiIndexedEXT( + commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset ); + } + + //=== VK_EXT_pageable_device_local_memory === + + void + vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority ); + } + + //=== VK_KHR_maintenance4 === + + void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice device, + const VkDeviceBufferMemoryRequirementsKHR * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements ); + } + + void vkGetDeviceImageMemoryRequirementsKHR( VkDevice device, + const VkDeviceImageMemoryRequirementsKHR * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements ); + } + + void vkGetDeviceImageSparseMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirementsKHR * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetDeviceImageSparseMemoryRequirementsKHR( + device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + } + }; #endif - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_NODISCARD Result createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - VULKAN_HPP_NODISCARD Result createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - VULKAN_HPP_NODISCARD Result createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - VULKAN_HPP_NODISCARD Result createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - VULKAN_HPP_NODISCARD Result createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - template - VULKAN_HPP_NODISCARD Result createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - -#ifdef VK_USE_PLATFORM_GGP - template - VULKAN_HPP_NODISCARD Result createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - - -#ifdef VK_USE_PLATFORM_VI_NN - template - VULKAN_HPP_NODISCARD Result createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_NODISCARD Result createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_NODISCARD Result createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_NODISCARD Result createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - - template - void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroups( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDevices( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT - { - return m_instance; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_instance != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_instance == VK_NULL_HANDLE; + class DispatchLoaderDynamic; +#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC ) +# if defined( VK_NO_PROTOTYPES ) +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +# else +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 +# endif +#endif + +#if !defined( VULKAN_HPP_STORAGE_API ) +# if defined( VULKAN_HPP_STORAGE_SHARED ) +# if defined( _MSC_VER ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) +# else +# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) +# endif +# elif defined( __clang__ ) || defined( __GNUC__ ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) ) +# else +# define VULKAN_HPP_STORAGE_API +# endif +# else +# define VULKAN_HPP_STORAGE_API +# pragma warning Unknown import / export semantics +# endif +# else +# define VULKAN_HPP_STORAGE_API +# endif +#endif + +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE \ + namespace VULKAN_HPP_NAMESPACE \ + { \ + VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \ + } + extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; +# else + static inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic() + { + static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls; + return dls; + } +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic() +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +# endif +#endif + +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic +# else +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic +# endif +#endif + +#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT +#else +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER +#endif + + struct AllocationCallbacks; + + template + class ObjectDestroy + { + public: + ObjectDestroy() = default; + + ObjectDestroy( OwnerType owner, + Optional allocationCallbacks + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.destroy( t, m_allocationCallbacks, *m_dispatch ); + } + + private: + OwnerType m_owner = {}; + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; + }; + + class NoParent; + + template + class ObjectDestroy + { + public: + ObjectDestroy() = default; + + ObjectDestroy( Optional allocationCallbacks, + Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT + : m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} + + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_dispatch ); + t.destroy( m_allocationCallbacks, *m_dispatch ); + } + + private: + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; + }; + + template + class ObjectFree + { + public: + ObjectFree() = default; + + ObjectFree( OwnerType owner, + Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.free( t, m_allocationCallbacks, *m_dispatch ); + } + + private: + OwnerType m_owner = {}; + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; + }; + + template + class ObjectRelease + { + public: + ObjectRelease() = default; + + ObjectRelease( OwnerType owner, + Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.release( t, *m_dispatch ); + } + + private: + OwnerType m_owner = {}; + Dispatch const * m_dispatch = nullptr; + }; + + template + class PoolFree + { + public: + PoolFree() = default; + + PoolFree( OwnerType owner, + PoolType pool, + Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_pool( pool ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + PoolType getPool() const VULKAN_HPP_NOEXCEPT + { + return m_pool; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + m_owner.free( m_pool, t, *m_dispatch ); } private: - VkInstance m_instance; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Instance; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Instance; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Instance; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueInstance = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - - template - VULKAN_HPP_NODISCARD Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateInstance( reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkInstance *>( pInstance ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) - { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) - { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, Dispatch const & d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) - { - std::vector properties( extensionPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties( Dispatch const & d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) - { - std::vector properties( layerPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceVersion( pApiVersion ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type enumerateInstanceVersion( Dispatch const & d ) - { - uint32_t apiVersion; - Result result = static_cast( d.vkEnumerateInstanceVersion( &apiVersion ) ); - return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( pBeginInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( &beginInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( pConditionalRenderingBegin ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( &conditionalRenderingBegin ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ), index ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), static_cast( contents ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( &renderPassBegin ), static_cast( contents ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); -#else - if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSetCount, reinterpret_cast( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSets.size(), reinterpret_cast( descriptorSets.data() ), dynamicOffsets.size(), dynamicOffsets.data() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( indexType ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ), groupIndex ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast( imageView ), static_cast( imageLayout ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ), reinterpret_cast( pSizes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); - VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); - } - if ( !sizes.empty() && buffers.size() != sizes.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ), reinterpret_cast( pSizes ), reinterpret_cast( pStrides ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes, ArrayProxy const & strides, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); - VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); - VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" ); - } - if ( !sizes.empty() && buffers.size() != sizes.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" ); - } - if ( !strides.empty() && buffers.size() != strides.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ), reinterpret_cast( strides.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ), static_cast( filter ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ), static_cast( filter ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( pBlitImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( &blitImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( pInfo ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( &info ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infoCount, reinterpret_cast( pInfos ), reinterpret_cast( pIndirectDeviceAddresses ), pIndirectStrides, ppMaxPrimitiveCounts ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); - VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); - VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); -#else - if ( infos.size() != indirectDeviceAddresses.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" ); + OwnerType m_owner = OwnerType(); + PoolType m_pool = PoolType(); + Dispatch const * m_dispatch = nullptr; + }; + + //================== + //=== BASE TYPEs === + //================== + + using Bool32 = uint32_t; + using DeviceAddress = uint64_t; + using DeviceSize = uint64_t; + using RemoteAddressNV = void *; + using SampleMask = uint32_t; + +} // namespace VULKAN_HPP_NAMESPACE + +#include + +#ifndef VULKAN_HPP_NO_EXCEPTIONS +namespace std +{ + template <> + struct is_error_code_enum : public true_type + {}; +} // namespace std +#endif + +namespace VULKAN_HPP_NAMESPACE +{ +#ifndef VULKAN_HPP_NO_EXCEPTIONS + + class ErrorCategoryImpl : public std::error_category + { + public: + virtual const char * name() const VULKAN_HPP_NOEXCEPT override + { + return VULKAN_HPP_NAMESPACE_STRING "::Result"; + } + virtual std::string message( int ev ) const override + { + return to_string( static_cast( ev ) ); + } + }; + + class Error + { + public: + Error() VULKAN_HPP_NOEXCEPT = default; + Error( const Error & ) VULKAN_HPP_NOEXCEPT = default; + virtual ~Error() VULKAN_HPP_NOEXCEPT = default; + + virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0; + }; + + class LogicError + : public Error + , public std::logic_error + { + public: + explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {} + explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {} + + virtual const char * what() const VULKAN_HPP_NOEXCEPT + { + return std::logic_error::what(); + } + }; + + class SystemError + : public Error + , public std::system_error + { + public: + SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {} + SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {} + SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {} + SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {} + SystemError( int ev, std::error_category const & ecat, std::string const & what ) + : Error(), std::system_error( ev, ecat, what ) + {} + SystemError( int ev, std::error_category const & ecat, char const * what ) + : Error(), std::system_error( ev, ecat, what ) + {} + + virtual const char * what() const VULKAN_HPP_NOEXCEPT + { + return std::system_error::what(); + } + }; + + VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT + { + static ErrorCategoryImpl instance; + return instance; } - if ( infos.size() != indirectStrides.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" ); - } - if ( infos.size() != pMaxPrimitiveCounts.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( indirectDeviceAddresses.data() ), indirectStrides.data(), pMaxPrimitiveCounts.data() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infoCount, reinterpret_cast( pInfos ), reinterpret_cast( ppBuildRangeInfos ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); -#else - if ( infos.size() != pBuildRangeInfos.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast( pAttachments ), rectCount, reinterpret_cast( pRects ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast( attachments.data() ), rects.size(), reinterpret_cast( rects.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pColor ), rangeCount, reinterpret_cast( pRanges ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &color ), ranges.size(), reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pDepthStencil ), rangeCount, reinterpret_cast( pRanges ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &depthStencil ), ranges.size(), reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast( dst ), static_cast( src ), static_cast( mode ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( pCopyBufferInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( ©BufferInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast( pCopyBufferToImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast( ©BufferToImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( pCopyImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( ©ImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast( pCopyImageToBufferInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast( ©ImageToBufferInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( stride ), static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); + + VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT + { + return std::error_code( static_cast( e ), errorCategory() ); } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerEndEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast( counterBuffer ), static_cast( counterBufferOffset ), counterOffset, vertexStride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, index ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); -#else - if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast( isPreprocessed ), reinterpret_cast( pGeneratedCommandsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast( isPreprocessed ), reinterpret_cast( &generatedCommandsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( size ), data ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); + + VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT + { + return std::error_condition( static_cast( e ), errorCategory() ); } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast( pDependencyInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast( &dependencyInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast( pGeneratedCommandsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast( &generatedCommandsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, size, pValues ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast( values.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast( descriptorUpdateTemplate ), static_cast( layout ), set, pData ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetEvent2KHR( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( pResolveImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( &resolveImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrderCount, reinterpret_cast( pCustomSampleOrders ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrders.size(), reinterpret_cast( customSampleOrders.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast( cullMode ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast( depthBoundsTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast( depthCompareOp ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast( depthTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast( depthWriteEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast( pDiscardRectangles ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast( discardRectangles.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent2KHR( m_commandBuffer, static_cast( event ), reinterpret_cast( pDependencyInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent2KHR( m_commandBuffer, static_cast( event ), reinterpret_cast( &dependencyInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast( pExclusiveScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast( exclusiveScissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer, static_cast( shadingRate ), reinterpret_cast( combinerOps ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast( pFragmentSize ), reinterpret_cast( combinerOps ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast( &fragmentSize ), reinterpret_cast( combinerOps ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast( frontFace ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineWidth( m_commandBuffer, lineWidth ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( pOverrideInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( &overrideInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast( primitiveTopology ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( pSampleLocationsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( &sampleLocationsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast( pScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast( scissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast( pScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast( scissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast( faceMask ), static_cast( failOp ), static_cast( passOp ), static_cast( depthFailOp ), static_cast( compareOp ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast( stencilTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewports ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast( viewports.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pShadingRatePalettes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast( shadingRatePalettes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewportWScalings ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast( viewportWScalings.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast( pViewports ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast( viewports.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast( pRaygenShaderBindingTable ), reinterpret_cast( pMissShaderBindingTable ), reinterpret_cast( pHitShaderBindingTable ), reinterpret_cast( pCallableShaderBindingTable ), static_cast( indirectDeviceAddress ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), static_cast( indirectDeviceAddress ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast( pRaygenShaderBindingTable ), reinterpret_cast( pMissShaderBindingTable ), reinterpret_cast( pHitShaderBindingTable ), reinterpret_cast( pCallableShaderBindingTable ), width, height, depth ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), width, height, depth ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysNV( m_commandBuffer, static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), static_cast( missShaderBindingTableBuffer ), static_cast( missShaderBindingOffset ), static_cast( missShaderBindingStride ), static_cast( hitShaderBindingTableBuffer ), static_cast( hitShaderBindingOffset ), static_cast( hitShaderBindingStride ), static_cast( callableShaderBindingTableBuffer ), static_cast( callableShaderBindingOffset ), static_cast( callableShaderBindingStride ), width, height, depth ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( dataSize ), pData ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast( pEvents ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, events.size(), reinterpret_cast( events.data() ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, const VULKAN_HPP_NAMESPACE::DependencyInfoKHR* pDependencyInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents2KHR( m_commandBuffer, eventCount, reinterpret_cast( pEvents ), reinterpret_cast( pDependencyInfos ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( ArrayProxy const & events, ArrayProxy const & dependencyInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); + + class OutOfHostMemoryError : public SystemError + { + public: + OutOfHostMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) + {} + OutOfHostMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) + {} + }; + + class OutOfDeviceMemoryError : public SystemError + { + public: + OutOfDeviceMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) + {} + OutOfDeviceMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) + {} + }; + + class InitializationFailedError : public SystemError + { + public: + InitializationFailedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) + {} + InitializationFailedError( char const * message ) + : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) + {} + }; + + class DeviceLostError : public SystemError + { + public: + DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) + {} + DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} + }; + + class MemoryMapFailedError : public SystemError + { + public: + MemoryMapFailedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) + {} + MemoryMapFailedError( char const * message ) + : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) + {} + }; + + class LayerNotPresentError : public SystemError + { + public: + LayerNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) + {} + LayerNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) + {} + }; + + class ExtensionNotPresentError : public SystemError + { + public: + ExtensionNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) + {} + ExtensionNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) + {} + }; + + class FeatureNotPresentError : public SystemError + { + public: + FeatureNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) + {} + FeatureNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) + {} + }; + + class IncompatibleDriverError : public SystemError + { + public: + IncompatibleDriverError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) + {} + IncompatibleDriverError( char const * message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) + {} + }; + + class TooManyObjectsError : public SystemError + { + public: + TooManyObjectsError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) + {} + TooManyObjectsError( char const * message ) + : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) + {} + }; + + class FormatNotSupportedError : public SystemError + { + public: + FormatNotSupportedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) + {} + FormatNotSupportedError( char const * message ) + : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) + {} + }; + + class FragmentedPoolError : public SystemError + { + public: + FragmentedPoolError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) + {} + FragmentedPoolError( char const * message ) + : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) + {} + }; + + class UnknownError : public SystemError + { + public: + UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} + UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} + }; + + class OutOfPoolMemoryError : public SystemError + { + public: + OutOfPoolMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) + {} + OutOfPoolMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) + {} + }; + + class InvalidExternalHandleError : public SystemError + { + public: + InvalidExternalHandleError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) + {} + InvalidExternalHandleError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) + {} + }; + + class FragmentationError : public SystemError + { + public: + FragmentationError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFragmentation ), message ) + {} + FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) + {} + }; + + class InvalidOpaqueCaptureAddressError : public SystemError + { + public: + InvalidOpaqueCaptureAddressError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) + {} + InvalidOpaqueCaptureAddressError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) + {} + }; + + class SurfaceLostKHRError : public SystemError + { + public: + SurfaceLostKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) + {} + SurfaceLostKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) + {} + }; + + class NativeWindowInUseKHRError : public SystemError + { + public: + NativeWindowInUseKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) + {} + NativeWindowInUseKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) + {} + }; + + class OutOfDateKHRError : public SystemError + { + public: + OutOfDateKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) + {} + OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} + }; + + class IncompatibleDisplayKHRError : public SystemError + { + public: + IncompatibleDisplayKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) + {} + IncompatibleDisplayKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) + {} + }; + + class ValidationFailedEXTError : public SystemError + { + public: + ValidationFailedEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) + {} + ValidationFailedEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) + {} + }; + + class InvalidShaderNVError : public SystemError + { + public: + InvalidShaderNVError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) + {} + InvalidShaderNVError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) + {} + }; + + class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError + { + public: + InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) + {} + InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) + {} + }; + + class NotPermittedEXTError : public SystemError + { + public: + NotPermittedEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) + {} + NotPermittedEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) + {} + }; + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + class FullScreenExclusiveModeLostEXTError : public SystemError + { + public: + FullScreenExclusiveModeLostEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) + {} + FullScreenExclusiveModeLostEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) + {} + }; +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + namespace + { + [[noreturn]] void throwResultException( Result result, char const * message ) + { + switch ( result ) + { + case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message ); + case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message ); + case Result::eErrorInitializationFailed: throw InitializationFailedError( message ); + case Result::eErrorDeviceLost: throw DeviceLostError( message ); + case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message ); + case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message ); + case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message ); + case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message ); + case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message ); + case Result::eErrorTooManyObjects: throw TooManyObjectsError( message ); + case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message ); + case Result::eErrorFragmentedPool: throw FragmentedPoolError( message ); + case Result::eErrorUnknown: throw UnknownError( message ); + case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message ); + case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message ); + case Result::eErrorFragmentation: throw FragmentationError( message ); + case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message ); + case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message ); + case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message ); + case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message ); + case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message ); + case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message ); + case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message ); + case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: + throw InvalidDrmFormatModifierPlaneLayoutEXTError( message ); + case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message ); +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message ); +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + default: throw SystemError( make_error_code( result ) ); + } + } + } // namespace +#endif + + template + void ignore( T const & ) VULKAN_HPP_NOEXCEPT + {} + + template + struct ResultValue + { +#ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) ) #else - if ( events.size() != dependencyInfos.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdWaitEvents2KHR( m_commandBuffer, events.size(), reinterpret_cast( events.data() ), reinterpret_cast( dependencyInfos.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteBufferMarker2AMD( m_commandBuffer, static_cast( stage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast( pipelineStage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteTimestamp2KHR( m_commandBuffer, static_cast( stage ), static_cast( queryPool ), query ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::end( Dispatch const & d ) const - { - Result result = static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } + ResultValue( Result r, T & v ) +#endif + : result( r ), value( v ) + {} + +#ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) ) #else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( pAcquireInfo ), pImageIndex ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const - { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( &acquireInfo ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), pImageIndex ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( pAcquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( pConfiguration ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; - Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; - Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast< VkCommandBuffer *>( pCommandBuffers ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector, CommandBufferAllocator> uniqueCommandBuffers; - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ ) - { - uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const - { - std::vector, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator ); - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ ) - { - uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast< VkDescriptorSet *>( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector, DescriptorSetAllocator> uniqueDescriptorSets; - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ ) - { - uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const - { - std::vector, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator ); - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ ) - { - uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDeviceMemory *>( pMemory ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); - ObjectFree deleter( *this, allocator, d ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBuildAccelerationStructuresKHR( m_device, static_cast( deferredOperation ), infoCount, reinterpret_cast( pInfos ), reinterpret_cast( ppBuildRangeInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + ResultValue( Result r, T && v ) +#endif + : result( r ), value( std::move( v ) ) + {} + + Result result; + T value; + + operator std::tuple() VULKAN_HPP_NOEXCEPT + { + return std::tuple( result, value ); + } + +#if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T const &() const & VULKAN_HPP_NOEXCEPT + { + return value; + } + + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T &() & VULKAN_HPP_NOEXCEPT + { + return value; + } + + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T const &&() const && VULKAN_HPP_NOEXCEPT + { + return std::move( value ); + } + + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T &&() && VULKAN_HPP_NOEXCEPT + { + return std::move( value ); + } +#endif + }; + +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + template + struct ResultValue> + { +# ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, UniqueHandle && v ) VULKAN_HPP_NOEXCEPT +# else + ResultValue( Result r, UniqueHandle && v ) +# endif + : result( r ) + , value( std::move( v ) ) + {} + + std::tuple> asTuple() + { + return std::make_tuple( result, std::move( value ) ); + } + +# if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator UniqueHandle &() & VULKAN_HPP_NOEXCEPT + { + return value; + } + + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator UniqueHandle() VULKAN_HPP_NOEXCEPT + { + return std::move( value ); + } +# endif + + Result result; + UniqueHandle value; + }; + + template + struct ResultValue>> + { +# ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, std::vector> && v ) VULKAN_HPP_NOEXCEPT +# else + ResultValue( Result r, std::vector> && v ) +# endif + : result( r ) + , value( std::move( v ) ) + {} + + std::tuple>> asTuple() + { + return std::make_tuple( result, std::move( value ) ); + } + + Result result; + std::vector> value; + +# if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator std::tuple> &>() VULKAN_HPP_NOEXCEPT + { + return std::tuple> &>( result, value ); + } +# endif + }; +#endif + + template + struct ResultValueType { #ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); + typedef ResultValue type; #else - if ( infos.size() != pBuildRangeInfos.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - Result result = static_cast( d.vkBuildAccelerationStructuresKHR( m_device, static_cast( deferredOperation ), infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - } + typedef T type; +#endif + }; + + template <> + struct ResultValueType + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + typedef Result type; #else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const - { - Result result = static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkAccelerationStructureKHR *>( pAccelerationStructure ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkAccelerationStructureNV *>( pAccelerationStructure ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkBuffer *>( pBuffer ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkBufferView *>( pView ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkCommandPool *>( pCommandPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( pAllocator ), reinterpret_cast< VkDeferredOperationKHR *>( pDeferredOperation ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDeferredOperationKHR( Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; - Result result = static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &deferredOperation ) ) ); - return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDeferredOperationKHRUnique( Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; - Result result = static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &deferredOperation ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorPool *>( pDescriptorPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorSetLayout *>( pSetLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateEvent( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkEvent *>( pEvent ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createEvent( const EventCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFence( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createFence( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFramebuffer *>( pFramebuffer ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImage( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkImage *>( pImage ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createImage( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImageView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkImageView *>( pView ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipelineCache *>( pPipelineCache ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipelineLayout *>( pPipelineLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPrivateDataSlotEXT *>( pPrivateDataSlot ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; - Result result = static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &privateDataSlot ) ) ); - return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; - Result result = static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &privateDataSlot ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkQueryPool *>( pQueryPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSampler( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSampler *>( pSampler ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSemaphore *>( pSemaphore ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkShaderModule *>( pShaderModule ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter ); + typedef void type; +#endif + }; + + VULKAN_HPP_INLINE ResultValueType::type createResultValue( Result result, char const * message ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return result; +#else + if ( result != Result::eSuccess ) + { + throwResultException( result, message ); + } +#endif } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchains ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const - { - std::vector swapchains( createInfos.size(), swapchainKHRAllocator ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, SwapchainKHRAllocator> uniqueSwapchains; - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueSwapchains.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const - { - std::vector, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator ); - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueSwapchains.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchain ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkValidationCacheEXT *>( pValidationCache ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); - } + + template + VULKAN_HPP_INLINE typename ResultValueType::type createResultValue( Result result, T & data, char const * message ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue( result, std::move( data ) ); #else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const - { - Result result = static_cast( d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); + if ( result != Result::eSuccess ) + { + throwResultException( result, message ); + } + return std::move( data ); +#endif } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); + + VULKAN_HPP_INLINE Result createResultValue( Result result, + char const * message, + std::initializer_list successCodes ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +#else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) + { + throwResultException( result, message ); + } +#endif + return result; } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDeviceWaitIdle( m_device ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::waitIdle( Dispatch const & d ) const - { - Result result = static_cast( d.vkDeviceWaitIdle( m_device ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayPowerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( &displayPowerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d ) const - { - Result result = static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size(), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE Result Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size(), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast( buildType ), reinterpret_cast( pBuildInfo ), pMaxPrimitiveCounts, reinterpret_cast< VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + + template + VULKAN_HPP_INLINE ResultValue + createResultValue( Result result, T & data, char const * message, std::initializer_list successCodes ) { #ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount ); -#else - if ( maxPrimitiveCounts.size() != buildInfo.geometryCount ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; - d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast( buildType ), reinterpret_cast( &buildInfo ), maxPrimitiveCounts.data(), reinterpret_cast( &sizeInfo ) ); - return sizeInfo; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2KHR *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get(); - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get(); - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast( pTimestampInfos ), pTimestamps, pMaxDeviation ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getCalibratedTimestampsEXT( ArrayProxy const ×tampInfos, ArrayProxy const ×tamps, Dispatch const &d ) const - { - #ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() ); -#else - if ( timestampInfos.size() != timestamps.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - uint64_t maxDeviation; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Dispatch const & d ) const - { - std::pair,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); - std::vector & timestamps = data.first; - uint64_t & maxDeviation = data.second; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d ) const - { - std::pair,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) ); - std::vector & timestamps = data.first; - uint64_t & maxDeviation = data.second; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast( operation ) ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); - } + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); #else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast( pVersionInfo ), reinterpret_cast< VkAccelerationStructureCompatibilityKHR *>( pCompatibility ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; - d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast( &versionInfo ), reinterpret_cast( &compatibility ) ); - return compatibility; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; - Result result = static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); - return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( pSurfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast< VkDeviceSize *>( pCommittedMemoryInBytes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast( &committedMemoryInBytes ) ); - return committedMemoryInBytes; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, pName ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast< VkQueue *>( pQueue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue2( m_device, reinterpret_cast( pQueueInfo ), reinterpret_cast< VkQueue *>( pQueue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue2( m_device, reinterpret_cast( &queueInfo ), reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; - Result result = static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) + { + throwResultException( result, message ); + } +#endif + return ResultValue( result, std::move( data ) ); } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirementsAllocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( pSubresource ), reinterpret_cast< VkSubresourceLayout *>( pLayout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::SubresourceLayout layout; - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( &subresource ), reinterpret_cast( &layout ) ); - return layout; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetImageViewAddressNVX( m_device, static_cast( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; - Result result = static_cast( d.vkGetImageViewAddressNVX( m_device, static_cast( imageView ), reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( pInfo ), pBuffer ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const - { - struct AHardwareBuffer* buffer; - Result result = static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( &info ), &buffer ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; - Result result = static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast( &memoryFdProperties ) ) ); - return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; - Result result = static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast( &memoryHostPointerProperties ) ) ); - return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; - Result result = static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast( &memoryWin32HandleProperties ) ) ); - return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), pPresentationTimingCount, reinterpret_cast< VkPastPresentationTimingGOOGLE *>( pPresentationTimings ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - std::vector presentationTimings; - uint32_t presentationTimingCount; - Result result; - do - { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) - { - presentationTimings.resize( presentationTimingCount ); - } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d ) const - { - std::vector presentationTimings( pastPresentationTimingGOOGLEAllocator ); - uint32_t presentationTimingCount; - Result result; - do - { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) - { - presentationTimings.resize( presentationTimingCount ); - } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( pValue ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; - Result result = static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast( &value ) ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), pDataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const - { - std::vector data; - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector data( uint8_tAllocator ); - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast< VkPipelineExecutableInternalRepresentationKHR *>( pInternalRepresentations ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const - { - std::vector internalRepresentations; - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) - { - internalRepresentations.resize( internalRepresentationCount ); - } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d ) const - { - std::vector internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator ); - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) - { - internalRepresentations.resize( internalRepresentationCount ); - } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( pPipelineInfo ), pExecutableCount, reinterpret_cast< VkPipelineExecutablePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) - { - properties.resize( executableCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( pipelineExecutablePropertiesKHRAllocator ); - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) - { - properties.resize( executableCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( pExecutableInfo ), pStatisticCount, reinterpret_cast< VkPipelineExecutableStatisticKHR *>( pStatistics ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const - { - std::vector statistics; - uint32_t statisticCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) - { - statistics.resize( statisticCount ); - } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d ) const - { - std::vector statistics( pipelineExecutableStatisticKHRAllocator ); - uint32_t statisticCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) - { - statistics.resize( statisticCount ); - } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), pData ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - uint64_t data; - d.vkGetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), &data ); - return data; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast( stride ), static_cast( flags ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } ); - - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, sizeof( T ), reinterpret_cast( &data ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupStackSizeKHR( m_device, static_cast( pipeline ), group, static_cast( groupShader ) ) ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; - Result result = static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast( &displayTimingProperties ) ) ); - return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast< VkExtent2D *>( pGranularity ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Extent2D granularity; - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( &granularity ) ); - return granularity; + +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type createResultValue( + Result result, T & data, char const * message, typename UniqueHandleTraits::deleter const & deleter ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue>( result, UniqueHandle( data, deleter ) ); +# else + if ( result != Result::eSuccess ) + { + throwResultException( result, message ); + } + return UniqueHandle( data, deleter ); +# endif } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), pValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), pValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), pInfoSize, pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d ) const - { - std::vector info; - size_t infoSize; - Result result; - do - { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) - { - info.resize( infoSize ); - } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector info( uint8_tAllocator ); - size_t infoSize; - Result result; - do - { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) - { - info.resize( infoSize ); - } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), pCounterValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d ) const - { - uint64_t counterValue; - Result result = static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), &counterValue ) ); - return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), pSwapchainImageCount, reinterpret_cast< VkImage *>( pSwapchainImages ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - std::vector swapchainImages; - uint32_t swapchainImageCount; - Result result; - do - { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) - { - swapchainImages.resize( swapchainImageCount ); - } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const - { - std::vector swapchainImages( imageAllocator ); - uint32_t swapchainImageCount; - Result result; - do - { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) - { - swapchainImages.resize( swapchainImageCount ); - } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), pDataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d ) const - { - std::vector data; - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector data( uint8_tAllocator ); - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( pImportFenceFdInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( &importFenceFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( pImportFenceWin32HandleInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( &importFenceWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( pImportSemaphoreFdInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( &importSemaphoreFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pImportSemaphoreWin32HandleInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( pInitializeInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( &initializeInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d ) const - { - Result result = static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), ppData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, Dispatch const & d ) const - { - void* pData; - Result result = static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), &pData ) ); - return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy const & srcCaches, Dispatch const & d ) const - { - Result result = static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy const & srcCaches, Dispatch const & d ) const - { - Result result = static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( pDeviceEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkReleaseProfilingLockKHR( m_device ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetFences( m_device, fenceCount, reinterpret_cast( pFences ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetFences( ArrayProxy const & fences, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetFences( m_device, fences.size(), reinterpret_cast( fences.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkResetQueryPool( m_device, static_cast( queryPool ), firstQuery, queryCount ); - } - - template - VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkResetQueryPoolEXT( m_device, static_cast( queryPool ), firstQuery, queryCount ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast( pSwapchains ), reinterpret_cast( pMetadata ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); -#else - if ( swapchains.size() != metadata.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast( swapchains.data() ), reinterpret_cast( metadata.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSetLocalDimmingAMD( m_device, static_cast( swapChain ), static_cast( localDimmingEnable ) ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), data ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), data ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( pSignalInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( pSignalInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkTrimCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ); - } - - template - VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkTrimCommandPoolKHR( m_device, static_cast( commandPool ), static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUninitializePerformanceApiINTEL( m_device ); + + template + VULKAN_HPP_INLINE ResultValue> + createResultValue( Result result, + T & data, + char const * message, + std::initializer_list successCodes, + typename UniqueHandleTraits::deleter const & deleter ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +# else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) + { + throwResultException( result, message ); + } +# endif + return ResultValue>( result, UniqueHandle( data, deleter ) ); } - - template - VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUnmapMemory( m_device, static_cast( memory ) ); - } - - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } - - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast( pDescriptorCopies ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast( descriptorCopies.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast( pFences ), static_cast( waitAll ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast( fences.data() ), static_cast( waitAll ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), dataSize, pData, stride ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy const &data, size_t stride, Dispatch const &d ) const - { - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size() , reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ), stride ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), data.size() * sizeof( T ), reinterpret_cast( data.data() ), stride ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), sizeof( T ), reinterpret_cast( &data ), stride ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDebugReportCallbackEXT *>( pCallback ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDebugUtilsMessengerEXT *>( pMessenger ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter ); + template + VULKAN_HPP_INLINE typename ResultValueType>>::type + createResultValue( Result result, std::vector> && data, char const * message ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue>>( result, std::move( data ) ); +# else + if ( result != Result::eSuccess ) + { + throwResultException( result, message ); + } + return std::move( data ); +# endif } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateScreenSurfaceQNX( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - -#ifdef VK_USE_PLATFORM_GGP - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - - -#ifdef VK_USE_PLATFORM_VI_NN - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - - template - VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, pLayerPrefix, pMessage ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyInstance( m_instance, reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyInstance( m_instance, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); + + template + VULKAN_HPP_INLINE ResultValue>> + createResultValue( Result result, + std::vector> && data, + char const * message, + std::initializer_list successCodes ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +# else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) + { + throwResultException( result, message ); + } +# endif + return ResultValue>>( result, std::move( data ) ); } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast< VkPhysicalDevice *>( pPhysicalDevices ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices( Dispatch const & d ) const - { - std::vector physicalDevices; - uint32_t physicalDeviceCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) - { - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const - { - std::vector physicalDevices( physicalDeviceAllocator ); - uint32_t physicalDeviceCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) - { - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetInstanceProcAddr( m_instance, pName ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetInstanceProcAddr( m_instance, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( pCallbackData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( &callbackData ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif +} // namespace VULKAN_HPP_NAMESPACE + +// clang-format off +#include +#include +#include +// clang-format on + +namespace VULKAN_HPP_NAMESPACE +{ + //======================= + //=== STRUCTS EXTENDS === + //======================= + + //=== VK_VERSION_1_1 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_VERSION_1_2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_swapchain === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_display_swapchain === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_debug_report === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_rasterization_order === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_NV_dedicated_allocation === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_transform_feedback === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_EXT_video_encode_h264 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_EXT_video_encode_h265 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_EXT_video_decode_h264 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_AMD_texture_gather_bias_lod === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_dynamic_rendering === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_corner_sampled_image === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_external_memory === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_external_memory_win32 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_win32_keyed_mutex === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_validation_flags === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_texture_compression_astc_hdr === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_astc_decode_mode === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_memory_win32 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_memory_fd === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_win32_keyed_mutex === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_semaphore_win32 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_push_descriptor === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_conditional_rendering === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_incremental_present === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_clip_space_w_scaling === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_display_control === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_GOOGLE_display_timing === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NVX_multiview_per_view_attributes === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_viewport_swizzle === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_discard_rectangles === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_conservative_rasterization === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_depth_clip_enable === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_shared_presentable_image === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_fence_win32 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast( display ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDevice *>( pDevice ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDisplayModeKHR *>( pMode ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; - Result result = static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &mode ) ) ); - return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; - Result result = static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &mode ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( extensionPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( layerPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Dispatch const &d ) const - { - std::vector counterDescriptions; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) - { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - - } - - template ::value, int>::type> - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector counterDescriptions( vectorAllocator ); - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) - { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, std::vector>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const - { - std::pair, std::vector> data; - std::vector & counters = data.first; - std::vector & counterDescriptions = data.second; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - VULKAN_HPP_ASSERT( counterCount <= counters.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } - - template ::value && std::is_same::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, std::vector>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d ) const - { - std::pair, std::vector> data( std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) ); - std::vector & counters = data.first; - std::vector & counterDescriptions = data.second; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - VULKAN_HPP_ASSERT( counterCount <= counters.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast< VkDisplayModeProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayModeProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast< VkDisplayModePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayModePropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( pDisplayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( &displayPlaneInfo ), reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast< VkDisplayKHR *>( pDisplays ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const - { - std::vector displays; - uint32_t displayCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) - { - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const - { - std::vector displays( displayKHRAllocator ); - uint32_t displayCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) - { - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast< VkTimeDomainEXT *>( pTimeDomains ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const - { - std::vector timeDomains; - uint32_t timeDomainCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) - { - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d ) const - { - std::vector timeDomains( timeDomainEXTAllocator ); - uint32_t timeDomainCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) - { - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast< VkCooperativeMatrixPropertiesNV *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const - { - std::vector properties( cooperativeMatrixPropertiesNVAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlaneProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPlaneProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlanePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPlanePropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast< VkExternalImageFormatPropertiesNV *>( pExternalImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( &externalImageFormatProperties ) ) ); - return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, pFragmentShadingRateCount, reinterpret_cast< VkPhysicalDeviceFragmentShadingRateKHR *>( pFragmentShadingRates ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const - { - std::vector fragmentShadingRates; - uint32_t fragmentShadingRateCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast( fragmentShadingRates.data() ) ) ); - VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - } - return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d ) const - { - std::vector fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator ); - uint32_t fragmentShadingRateCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast( fragmentShadingRates.data() ) ) ); - VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - } - return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast< VkImageFormatProperties *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( pMultisampleProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast( &multisampleProperties ) ); - return multisampleProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), pRectCount, reinterpret_cast< VkRect2D *>( pRects ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector rects; - uint32_t rectCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) - { - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const - { - std::vector rects( rect2DAllocator ); - uint32_t rectCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) - { - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( pPerformanceQueryCreateInfo ), pNumPasses ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - uint32_t numPasses; - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( &performanceQueryCreateInfo ), &numPasses ); - return numPasses; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyPropertiesAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyProperties2Allocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } - - template ::value, int>::type> - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount, structureChainAllocator ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyProperties2Allocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } - - template ::value, int>::type> - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount, structureChainAllocator ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_SCREEN_QNX - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window* window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, window ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, &window ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatPropertiesAllocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatProperties2Allocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatProperties2Allocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast< VkFramebufferMixedSamplesCombinationNV *>( pCombinations ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const - { - std::vector combinations; - uint32_t combinationCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) - { - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d ) const - { - std::vector combinations( framebufferMixedSamplesCombinationNVAllocator ); - uint32_t combinationCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) - { - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormat2KHR *>( pSurfaceFormats ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d ) const - { - std::vector surfaceFormats( surfaceFormat2KHRAllocator ); - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormatKHR *>( pSurfaceFormats ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d ) const - { - std::vector surfaceFormats( surfaceFormatKHRAllocator ); - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const - { - std::vector presentModes( presentModeKHRAllocator ); - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + //=== VK_KHR_performance_query === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_debug_utils === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_memory_android_hardware_buffer === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + //=== VK_EXT_inline_uniform_block === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_sample_locations === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_blend_operation_advanced === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_fragment_coverage_to_color === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_acceleration_structure === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_framebuffer_mixed_samples === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_shader_sm_builtins === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_image_drm_format_modifier === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_validation_cache === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_portability_subset === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_NV_shading_rate_image === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_ray_tracing === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_representative_fragment_test === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_filter_cubic === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_global_priority === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_external_memory_host === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_shader_clock === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_pipeline_compiler_control === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_shader_core_properties === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_EXT_video_decode_h265 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_AMD_memory_overallocation_behavior === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_vertex_attribute_divisor === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_GGP ) + //=== VK_GGP_frame_token === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_GGP*/ + + //=== VK_EXT_pipeline_creation_feedback === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_compute_shader_derivatives === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_mesh_shader === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_fragment_shader_barycentric === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_shader_image_footprint === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_scissor_exclusive === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_device_diagnostic_checkpoints === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_INTEL_shader_integer_functions2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_INTEL_performance_query === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_pci_bus_info === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_display_native_hdr === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_shader_terminate_invocation === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_fragment_density_map === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_subgroup_size_control === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_fragment_shading_rate === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_shader_core_properties2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_AMD_device_coherent_memory === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_shader_image_atomic_int64 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_memory_budget === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_memory_priority === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_surface_protected_capabilities === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_dedicated_allocation_image_aliasing === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_buffer_device_address === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_validation_features === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_present_wait === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_cooperative_matrix === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_coverage_reduction_mode === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_fragment_shader_interlock === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_ycbcr_image_arrays === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_provoking_vertex === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_EXT_full_screen_exclusive === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const - { - std::vector presentModes( presentModeKHRAllocator ); - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast< VkBool32 *>( pSupported ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Bool32 supported; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast( &supported ) ) ); - return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast< VkPhysicalDeviceToolPropertiesEXT *>( pToolProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const - { - std::vector toolProperties; - uint32_t toolCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) - { - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const - { - std::vector toolProperties( physicalDeviceToolPropertiesEXTAllocator ); - uint32_t toolCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) - { - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Queue::getCheckpointData2NV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointData2NV* pCheckpointData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetQueueCheckpointData2NV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointData2NV *>( pCheckpointData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointData2NV( Dispatch const & d ) const - { - std::vector checkpointData; - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const - { - std::vector checkpointData( checkpointData2NVAllocator ); - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV( Dispatch const & d ) const - { - std::vector checkpointData; - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const - { - std::vector checkpointData( checkpointDataNVAllocator ); - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast( pBindInfo ), static_cast( fence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueEndDebugUtilsLabelEXT( m_queue ); - } - - - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( pPresentInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( &presentInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit2KHR( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueSubmit2KHR( m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueSubmit2KHR( m_queue, submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueWaitIdle( m_queue ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::waitIdle( Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueWaitIdle( m_queue ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_ENABLE_BETA_EXTENSIONS - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; + //=== VK_EXT_line_rasterization === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_shader_atomic_float === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_index_type_uint8 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_extended_dynamic_state === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_pipeline_executable_properties === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_shader_atomic_float2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_shader_demote_to_helper_invocation === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_device_generated_commands === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_inherited_viewport_scissor === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_shader_integer_dot_product === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_texel_buffer_alignment === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_QCOM_render_pass_transform === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_device_memory_report === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_robustness2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_custom_border_color === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_present_id === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_private_data === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_pipeline_creation_cache_control === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_encode_queue === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #endif /*VK_ENABLE_BETA_EXTENSIONS*/ -#ifdef VK_ENABLE_BETA_EXTENSIONS - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_GGP - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_GGP*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; + + //=== VK_NV_device_diagnostics_config === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_synchronization2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_shader_subgroup_uniform_control_flow === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_zero_initialize_workgroup_memory === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_fragment_shading_rate_enums === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_ray_tracing_motion_blur === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_ycbcr_2plane_444_formats === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_fragment_density_map2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_QCOM_rotated_copy_commands === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_image_robustness === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_workgroup_memory_explicit_layout === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_4444_formats === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_rgba10x6_formats === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_ray_tracing_pipeline === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_ray_query === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_VALVE_mutable_descriptor_type === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_vertex_input_dynamic_state === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_physical_device_drm === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_primitive_topology_list_restart === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_format_feature_flags2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_memory === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_HUAWEI_subpass_shading === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_HUAWEI_invocation_mask === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_NV_external_memory_rdma === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_extended_dynamic_state2 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_color_write_enable === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_global_priority_query === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_multi_draw === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_border_color_swizzle === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_EXT_pageable_device_local_memory === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + //=== VK_KHR_maintenance4 === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL class DynamicLoader { public: @@ -92709,21 +11052,21 @@ DynamicLoader( std::string const & vulkanLibraryName = {} ) # endif { if ( !vulkanLibraryName.empty() ) { -# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL ); # elif defined( _WIN32 ) m_library = ::LoadLibraryA( vulkanLibraryName.c_str() ); # else # error unsupported platform # endif } else { -# if defined( __linux__ ) || defined( __QNXNTO__ ) +# if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); if ( m_library == nullptr ) { m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL ); } @@ -92734,2051 +11077,3647 @@ # else # error unsupported platform # endif } -#ifndef VULKAN_HPP_NO_EXCEPTIONS +# ifndef VULKAN_HPP_NO_EXCEPTIONS if ( m_library == nullptr ) { - // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function. + // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the + // scope of this function. throw std::runtime_error( "Failed to load vulkan library!" ); } -#endif - } - - DynamicLoader( DynamicLoader const& ) = delete; - - DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library(other.m_library) +# endif + } + + DynamicLoader( DynamicLoader const & ) = delete; + + DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library ) { other.m_library = nullptr; } - DynamicLoader &operator=( DynamicLoader const& ) = delete; - - DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT - { - std::swap(m_library, other.m_library); + DynamicLoader & operator=( DynamicLoader const & ) = delete; + + DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT + { + std::swap( m_library, other.m_library ); return *this; } ~DynamicLoader() VULKAN_HPP_NOEXCEPT { if ( m_library ) { -# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) dlclose( m_library ); # elif defined( _WIN32 ) ::FreeLibrary( m_library ); # else # error unsupported platform # endif } } template - T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT - { -# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) + T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT + { +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) return (T)dlsym( m_library, function ); # elif defined( _WIN32 ) - return (T)::GetProcAddress( m_library, function ); + return ( T )::GetProcAddress( m_library, function ); # else # error unsupported platform # endif } - bool success() const VULKAN_HPP_NOEXCEPT { return m_library != nullptr; } + bool success() const VULKAN_HPP_NOEXCEPT + { + return m_library != nullptr; + } private: -# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) +# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) void * m_library; # elif defined( _WIN32 ) ::HINSTANCE m_library; # else # error unsupported platform # endif }; #endif - - class DispatchLoaderDynamic + using PFN_dummy = void ( * )(); + + class DispatchLoaderDynamic : public DispatchLoaderBase { public: - using PFN_dummy = void ( * )(); - -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; -#else - PFN_dummy placeholder_dont_call_vkAcquireFullScreenExclusiveModeEXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; - PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; - PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; - PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; -#else - PFN_dummy placeholder_dont_call_vkAcquireWinrtDisplayNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; + //=== VK_VERSION_1_0 === + PFN_vkCreateInstance vkCreateInstance = 0; + PFN_vkDestroyInstance vkDestroyInstance = 0; + PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; + PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; + PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; + PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; + PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; + PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; + PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; + PFN_vkCreateDevice vkCreateDevice = 0; + PFN_vkDestroyDevice vkDestroyDevice = 0; + PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; + PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; + PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; + PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; + PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; + PFN_vkQueueSubmit vkQueueSubmit = 0; + PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; + PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; + PFN_vkAllocateMemory vkAllocateMemory = 0; + PFN_vkFreeMemory vkFreeMemory = 0; + PFN_vkMapMemory vkMapMemory = 0; + PFN_vkUnmapMemory vkUnmapMemory = 0; + PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; + PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; + PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; + PFN_vkBindBufferMemory vkBindBufferMemory = 0; + PFN_vkBindImageMemory vkBindImageMemory = 0; + PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; + PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; + PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; + PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; + PFN_vkQueueBindSparse vkQueueBindSparse = 0; + PFN_vkCreateFence vkCreateFence = 0; + PFN_vkDestroyFence vkDestroyFence = 0; + PFN_vkResetFences vkResetFences = 0; + PFN_vkGetFenceStatus vkGetFenceStatus = 0; + PFN_vkWaitForFences vkWaitForFences = 0; + PFN_vkCreateSemaphore vkCreateSemaphore = 0; + PFN_vkDestroySemaphore vkDestroySemaphore = 0; + PFN_vkCreateEvent vkCreateEvent = 0; + PFN_vkDestroyEvent vkDestroyEvent = 0; + PFN_vkGetEventStatus vkGetEventStatus = 0; + PFN_vkSetEvent vkSetEvent = 0; + PFN_vkResetEvent vkResetEvent = 0; + PFN_vkCreateQueryPool vkCreateQueryPool = 0; + PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; + PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; + PFN_vkCreateBuffer vkCreateBuffer = 0; + PFN_vkDestroyBuffer vkDestroyBuffer = 0; + PFN_vkCreateBufferView vkCreateBufferView = 0; + PFN_vkDestroyBufferView vkDestroyBufferView = 0; + PFN_vkCreateImage vkCreateImage = 0; + PFN_vkDestroyImage vkDestroyImage = 0; + PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; + PFN_vkCreateImageView vkCreateImageView = 0; + PFN_vkDestroyImageView vkDestroyImageView = 0; + PFN_vkCreateShaderModule vkCreateShaderModule = 0; + PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; + PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; + PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; + PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; + PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; + PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; + PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; + PFN_vkDestroyPipeline vkDestroyPipeline = 0; + PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; + PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; + PFN_vkCreateSampler vkCreateSampler = 0; + PFN_vkDestroySampler vkDestroySampler = 0; + PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; + PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; + PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; + PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; + PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; + PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; + PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; + PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; + PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; + PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; + PFN_vkCreateRenderPass vkCreateRenderPass = 0; + PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; + PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; + PFN_vkCreateCommandPool vkCreateCommandPool = 0; + PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; + PFN_vkResetCommandPool vkResetCommandPool = 0; + PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; + PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; + PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; + PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; + PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; + PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; + PFN_vkCmdSetViewport vkCmdSetViewport = 0; + PFN_vkCmdSetScissor vkCmdSetScissor = 0; + PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; + PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; + PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; + PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; + PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; + PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; + PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; + PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; + PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; + PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; + PFN_vkCmdDraw vkCmdDraw = 0; + PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; + PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; + PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; + PFN_vkCmdDispatch vkCmdDispatch = 0; + PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; + PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; + PFN_vkCmdCopyImage vkCmdCopyImage = 0; + PFN_vkCmdBlitImage vkCmdBlitImage = 0; + PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; + PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; + PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; + PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; + PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; + PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; + PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; + PFN_vkCmdResolveImage vkCmdResolveImage = 0; + PFN_vkCmdSetEvent vkCmdSetEvent = 0; + PFN_vkCmdResetEvent vkCmdResetEvent = 0; + PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; + PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; + PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; + PFN_vkCmdEndQuery vkCmdEndQuery = 0; + PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; + PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; + PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; + PFN_vkCmdPushConstants vkCmdPushConstants = 0; + PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; + PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; + PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; + PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; + + //=== VK_VERSION_1_1 === + PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; + PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; + PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; + PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; + PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; + PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; + PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; + PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; + PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; + PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; + PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; + PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; + PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; + PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; + PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; + PFN_vkTrimCommandPool vkTrimCommandPool = 0; + PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; + PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; + PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; + PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; + PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; + PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; + PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; + PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; + PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; + PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; + + //=== VK_VERSION_1_2 === + PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; + PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; + PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; + PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; + PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; + PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; + PFN_vkResetQueryPool vkResetQueryPool = 0; + PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; + PFN_vkWaitSemaphores vkWaitSemaphores = 0; + PFN_vkSignalSemaphore vkSignalSemaphore = 0; + PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; + PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; + PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; + + //=== VK_KHR_surface === + PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; + PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; + PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; + PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; + PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; + + //=== VK_KHR_swapchain === + PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; + PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; + PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; + PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; + PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; + PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; + PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; + PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; + PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; + + //=== VK_KHR_display === + PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; + PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; + PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; + PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; + PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; + PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; + PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; + + //=== VK_KHR_display_swapchain === + PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + //=== VK_KHR_xlib_surface === + PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; + PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; #else - PFN_dummy placeholder_dont_call_vkAcquireXlibDisplayEXT = 0; -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; - PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; - PFN_vkAllocateMemory vkAllocateMemory = 0; - PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; - PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; - PFN_vkBindBufferMemory vkBindBufferMemory = 0; - PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; - PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; - PFN_vkBindImageMemory vkBindImageMemory = 0; - PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; - PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; - PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; - PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; - PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; - PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; - PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; - PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; - PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; - PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; - PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; - PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; - PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; - PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; - PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; - PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; - PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; - PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; - PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; - PFN_vkCmdBlitImage vkCmdBlitImage = 0; - PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; - PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; - PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; - PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; - PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; - PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; - PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; - PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; - PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; - PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; - PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; - PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; - PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; - PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; - PFN_vkCmdCopyImage vkCmdCopyImage = 0; - PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; - PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; - PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; - PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; - PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; - PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; - PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; - PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; - PFN_vkCmdDispatch vkCmdDispatch = 0; - PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; - PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; - PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; - PFN_vkCmdDraw vkCmdDraw = 0; - PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; - PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; - PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; - PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; - PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; - PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; - PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; - PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; - PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; - PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; - PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; - PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; - PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; - PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; - PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; - PFN_vkCmdEndQuery vkCmdEndQuery = 0; - PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; - PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; - PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; - PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; - PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; - PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; - PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; - PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; - PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; - PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; - PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; - PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; - PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; - PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0; - PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; - PFN_vkCmdPushConstants vkCmdPushConstants = 0; - PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; - PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; - PFN_vkCmdResetEvent vkCmdResetEvent = 0; - PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0; - PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; - PFN_vkCmdResolveImage vkCmdResolveImage = 0; - PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; - PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; - PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; - PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; - PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; - PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; - PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; - PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; - PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; - PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; - PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; - PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; - PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; - PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; - PFN_vkCmdSetEvent vkCmdSetEvent = 0; - PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0; - PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; - PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; - PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; - PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; - PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; - PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; - PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; - PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; - PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; - PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; - PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; - PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; - PFN_vkCmdSetScissor vkCmdSetScissor = 0; - PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; - PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; - PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; - PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; - PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; - PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; - PFN_vkCmdSetViewport vkCmdSetViewport = 0; - PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; - PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; - PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; - PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; - PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; - PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; - PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; - PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; - PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0; - PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; - PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; - PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0; - PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; - PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; - PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0; - PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; - PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; - PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; - PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; - PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; - PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR + PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + //=== VK_KHR_xcb_surface === + PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; + PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; +#else + PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + //=== VK_KHR_wayland_surface === + PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; + PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; +#else + PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_KHR_android_surface === PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; #else - PFN_dummy placeholder_dont_call_vkCreateAndroidSurfaceKHR = 0; + PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkCreateBuffer vkCreateBuffer = 0; - PFN_vkCreateBufferView vkCreateBufferView = 0; - PFN_vkCreateCommandPool vkCreateCommandPool = 0; - PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; - PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; - PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; - PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; - PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; - PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; - PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; - PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; - PFN_vkCreateDevice vkCreateDevice = 0; -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_win32_surface === + PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; + PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; #else - PFN_dummy placeholder_dont_call_vkCreateDirectFBSurfaceEXT = 0; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; - PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; - PFN_vkCreateEvent vkCreateEvent = 0; - PFN_vkCreateFence vkCreateFence = 0; - PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; - PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; - PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; -#ifdef VK_USE_PLATFORM_IOS_MVK - PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateIOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - PFN_vkCreateImage vkCreateImage = 0; -#ifdef VK_USE_PLATFORM_FUCHSIA - PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; + PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_debug_report === + PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; + PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; + PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; + + //=== VK_EXT_debug_marker === + PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; + PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; + PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; + PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; + PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0; + PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0; + PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0; + PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0; + PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0; + PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0; + PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0; + PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0; + PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0; + PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0; + PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0; + PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0; #else - PFN_dummy placeholder_dont_call_vkCreateImagePipeSurfaceFUCHSIA = 0; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - PFN_vkCreateImageView vkCreateImageView = 0; - PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; - PFN_vkCreateInstance vkCreateInstance = 0; -#ifdef VK_USE_PLATFORM_MACOS_MVK - PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateMacOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; + PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0; + PFN_dummy vkCreateVideoSessionKHR_placeholder = 0; + PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0; + PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0; + PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0; + PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0; + PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0; + PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0; + PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0; + PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0; + PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_decode_queue === + PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0; #else - PFN_dummy placeholder_dont_call_vkCreateMetalSurfaceEXT = 0; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; - PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; - PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; - PFN_vkCreateQueryPool vkCreateQueryPool = 0; - PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; - PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; - PFN_vkCreateRenderPass vkCreateRenderPass = 0; - PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; - PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; - PFN_vkCreateSampler vkCreateSampler = 0; - PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; - PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; -#ifdef VK_USE_PLATFORM_SCREEN_QNX - PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateScreenSurfaceQNX = 0; -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - PFN_vkCreateSemaphore vkCreateSemaphore = 0; - PFN_vkCreateShaderModule vkCreateShaderModule = 0; - PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; -#ifdef VK_USE_PLATFORM_GGP + PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_EXT_transform_feedback === + PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; + PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; + PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; + PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; + PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; + PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; + + //=== VK_NVX_binary_import === + PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0; + PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0; + PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0; + PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0; + PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0; + + //=== VK_NVX_image_view_handle === + PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; + PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; + + //=== VK_AMD_draw_indirect_count === + PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; + PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; + + //=== VK_AMD_shader_info === + PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; + + //=== VK_KHR_dynamic_rendering === + PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0; + PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR = 0; + +#if defined( VK_USE_PLATFORM_GGP ) + //=== VK_GGP_stream_descriptor_surface === PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; #else - PFN_dummy placeholder_dont_call_vkCreateStreamDescriptorSurfaceGGP = 0; + PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0; #endif /*VK_USE_PLATFORM_GGP*/ - PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; - PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; -#ifdef VK_USE_PLATFORM_VI_NN + + //=== VK_NV_external_memory_capabilities === + PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_external_memory_win32 === + PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; +#else + PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_get_physical_device_properties2 === + PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; + PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; + PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; + PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; + PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; + + //=== VK_KHR_device_group === + PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; + PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; + PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; + +#if defined( VK_USE_PLATFORM_VI_NN ) + //=== VK_NN_vi_surface === PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; #else - PFN_dummy placeholder_dont_call_vkCreateViSurfaceNN = 0; + PFN_dummy vkCreateViSurfaceNN_placeholder = 0; #endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateWaylandSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateWin32SurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateXcbSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkCreateXlibSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; - PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; - PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; - PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; - PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; - PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; - PFN_vkDestroyBuffer vkDestroyBuffer = 0; - PFN_vkDestroyBufferView vkDestroyBufferView = 0; - PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; - PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; - PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; - PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; - PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; - PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; - PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; - PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; - PFN_vkDestroyDevice vkDestroyDevice = 0; - PFN_vkDestroyEvent vkDestroyEvent = 0; - PFN_vkDestroyFence vkDestroyFence = 0; - PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; - PFN_vkDestroyImage vkDestroyImage = 0; - PFN_vkDestroyImageView vkDestroyImageView = 0; - PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; - PFN_vkDestroyInstance vkDestroyInstance = 0; - PFN_vkDestroyPipeline vkDestroyPipeline = 0; - PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; - PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; - PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; - PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; - PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; - PFN_vkDestroySampler vkDestroySampler = 0; - PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; - PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; - PFN_vkDestroySemaphore vkDestroySemaphore = 0; - PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; - PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; - PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; - PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; - PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; - PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; - PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; - PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; - PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; - PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; - PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; - PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; + + //=== VK_KHR_maintenance1 === + PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; + + //=== VK_KHR_device_group_creation === PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; - PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; - PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; - PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; - PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; - PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; - PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; - PFN_vkFreeMemory vkFreeMemory = 0; - PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; - PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; - PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; - PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; -#else - PFN_dummy placeholder_dont_call_vkGetAndroidHardwareBufferPropertiesANDROID = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; - PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; - PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; - PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; - PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; - PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; - PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; - PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; - PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; - PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; - PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; - PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; - PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; - PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; - PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; - PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; - PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; -#else - PFN_dummy placeholder_dont_call_vkGetDeviceGroupSurfacePresentModes2EXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; - PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; - PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; - PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; - PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; - PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; - PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; - PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; - PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; - PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; - PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; - PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; - PFN_vkGetEventStatus vkGetEventStatus = 0; - PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; - PFN_vkGetFenceStatus vkGetFenceStatus = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetFenceWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; - PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; - PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; - PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; - PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; - PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; - PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; - PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; - PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; - PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; - PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; - PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; -#else - PFN_dummy placeholder_dont_call_vkGetMemoryAndroidHardwareBufferANDROID = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; - PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; - PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; -#else - PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR + + //=== VK_KHR_external_memory_capabilities === + PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_memory_win32 === + PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0; #else - PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandlePropertiesKHR = 0; + PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0; + PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_memory_fd === + PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; + PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; + + //=== VK_KHR_external_semaphore_capabilities === + PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_semaphore_win32 === + PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; + PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; +#else + PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0; + PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_semaphore_fd === + PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; + PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; + + //=== VK_KHR_push_descriptor === + PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; + PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; + + //=== VK_EXT_conditional_rendering === + PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; + PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; + + //=== VK_KHR_descriptor_update_template === + PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; + PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; + PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; + + //=== VK_NV_clip_space_w_scaling === + PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; + + //=== VK_EXT_direct_mode_display === + PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + //=== VK_EXT_acquire_xlib_display === + PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; + PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; +#else + PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0; + PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0; +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + //=== VK_EXT_display_surface_counter === + PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; + + //=== VK_EXT_display_control === + PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; + PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; + PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; + PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; + + //=== VK_GOOGLE_display_timing === + PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; - PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; + + //=== VK_EXT_discard_rectangles === + PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; + + //=== VK_EXT_hdr_metadata === + PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; + + //=== VK_KHR_create_renderpass2 === + PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; + PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; + PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; + PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; + + //=== VK_KHR_shared_presentable_image === + PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; + + //=== VK_KHR_external_fence_capabilities === + PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_fence_win32 === + PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; + PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; +#else + PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0; + PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_fence_fd === + PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; + PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; + + //=== VK_KHR_performance_query === + PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; + PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; + PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; + PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; + + //=== VK_KHR_get_surface_capabilities2 === + PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; + PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; + + //=== VK_KHR_get_display_properties2 === + PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; + PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; + PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; + PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; + +#if defined( VK_USE_PLATFORM_IOS_MVK ) + //=== VK_MVK_ios_surface === + PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; +#else + PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0; +#endif /*VK_USE_PLATFORM_IOS_MVK*/ + +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + //=== VK_MVK_macos_surface === + PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; +#else + PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0; +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + + //=== VK_EXT_debug_utils === + PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; + PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; + PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; + PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; + PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; + PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; + PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; + PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; + PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; + PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; + PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_memory_android_hardware_buffer === + PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; + PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; +#else + PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0; + PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + //=== VK_EXT_sample_locations === + PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; + PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; + + //=== VK_KHR_get_memory_requirements2 === + PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; + PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; + PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; + + //=== VK_KHR_acceleration_structure === + PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; + PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; + PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; + PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; + PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; + PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; + PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; + PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; + PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; + PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; + PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; + PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; + PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; + PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; + PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; + PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; + + //=== VK_KHR_sampler_ycbcr_conversion === + PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; + PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; + + //=== VK_KHR_bind_memory2 === + PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; + PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; + + //=== VK_EXT_image_drm_format_modifier === + PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; + + //=== VK_EXT_validation_cache === + PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; + PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; + PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; + PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; + + //=== VK_NV_shading_rate_image === + PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; + PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; + PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; + + //=== VK_NV_ray_tracing === + PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; + PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; + PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; + PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; + PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; + PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; + PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; + PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; + PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; + PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; + PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; + PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; + + //=== VK_KHR_maintenance3 === + PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; + + //=== VK_KHR_draw_indirect_count === + PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; + PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; + + //=== VK_EXT_external_memory_host === + PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; + + //=== VK_AMD_buffer_marker === + PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; + + //=== VK_EXT_calibrated_timestamps === PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; + PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; + + //=== VK_NV_mesh_shader === + PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; + PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; + PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; + + //=== VK_NV_scissor_exclusive === + PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; + + //=== VK_NV_device_diagnostic_checkpoints === + PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; + PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; + + //=== VK_KHR_timeline_semaphore === + PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; + PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; + PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; + + //=== VK_INTEL_performance_query === + PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; + PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; + PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; + PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; + PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; + PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; + PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; + PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; + PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; + + //=== VK_AMD_display_native_hdr === + PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_imagepipe_surface === + PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; +#else + PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_METAL_EXT ) + //=== VK_EXT_metal_surface === + PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; +#else + PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0; +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + + //=== VK_KHR_fragment_shading_rate === + PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; + PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; + + //=== VK_EXT_buffer_device_address === + PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; + + //=== VK_EXT_tooling_info === + PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; + + //=== VK_KHR_present_wait === + PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0; + + //=== VK_NV_cooperative_matrix === PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0; -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT + + //=== VK_NV_coverage_reduction_mode === + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_EXT_full_screen_exclusive === + PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; + PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; + PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; + PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; +#else + PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0; + PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0; + PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0; + PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_headless_surface === + PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; + + //=== VK_KHR_buffer_device_address === + PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; + PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; + PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; + + //=== VK_EXT_line_rasterization === + PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; + + //=== VK_EXT_host_query_reset === + PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; + + //=== VK_EXT_extended_dynamic_state === + PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; + PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; + PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; + PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; + PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; + PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; + PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; + PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; + PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; + PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; + PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; + PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; + + //=== VK_KHR_deferred_host_operations === + PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; + PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; + PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; + PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; + PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; + + //=== VK_KHR_pipeline_executable_properties === + PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; + PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; + PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; + + //=== VK_NV_device_generated_commands === + PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; + PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; + PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; + PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; + PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; + PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; + + //=== VK_EXT_acquire_drm_display === + PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0; + PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0; + + //=== VK_EXT_private_data === + PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; + PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; + PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; + PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_encode_queue === + PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0; +#else + PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_KHR_synchronization2 === + PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0; + PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0; + PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0; + PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0; + PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0; + PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0; + PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0; + PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0; + + //=== VK_NV_fragment_shading_rate_enums === + PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; + + //=== VK_KHR_copy_commands2 === + PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; + PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; + PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; + PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; + PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; + PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_acquire_winrt_display === + PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; + PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; +#else + PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0; + PFN_dummy vkGetWinrtDisplayNV_placeholder = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + //=== VK_EXT_directfb_surface === + PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; #else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; + PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0; #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; - PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; - PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; - PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; - PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; - PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; - PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; - PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; - PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; - PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; - PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; - PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; - PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; - PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; - PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; -#ifdef VK_USE_PLATFORM_SCREEN_QNX + + //=== VK_KHR_ray_tracing_pipeline === + PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; + PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; + PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; + PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; + PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; + PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; + PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; + + //=== VK_EXT_vertex_input_dynamic_state === + PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_memory === + PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0; + PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0; +#else + PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0; + PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_semaphore === + PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0; + PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0; +#else + PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0; + PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA = 0; + PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0; + PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0; + PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA = 0; + PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0; +#else + PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder = 0; + PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder = 0; + PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder = 0; + PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder = 0; + PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_HUAWEI_subpass_shading === + PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0; + PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0; + + //=== VK_HUAWEI_invocation_mask === + PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0; + + //=== VK_NV_external_memory_rdma === + PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0; + + //=== VK_EXT_extended_dynamic_state2 === + PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0; + PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0; + PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0; + PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0; + PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0; + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + //=== VK_QNX_screen_surface === + PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0; PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; #else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; + PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0; + PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; -#else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; - PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; - PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; - PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; - PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; - PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; - PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; - PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0; - PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; -#else - PFN_dummy placeholder_dont_call_vkGetRandROutputDisplayEXT = 0; -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; - PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; - PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; - PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; - PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; - PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; - PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; - PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; - PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkGetSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; - PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; - PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; - PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; - PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; -#else - PFN_dummy placeholder_dont_call_vkGetWinrtDisplayNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkImportFenceWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; -#else - PFN_dummy placeholder_dont_call_vkImportSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; - PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; - PFN_vkMapMemory vkMapMemory = 0; - PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; - PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; - PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; - PFN_vkQueueBindSparse vkQueueBindSparse = 0; - PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; - PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; - PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; - PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; - PFN_vkQueueSubmit vkQueueSubmit = 0; - PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0; - PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; - PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; - PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; - PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; -#else - PFN_dummy placeholder_dont_call_vkReleaseFullScreenExclusiveModeEXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; - PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; - PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; - PFN_vkResetCommandPool vkResetCommandPool = 0; - PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; - PFN_vkResetEvent vkResetEvent = 0; - PFN_vkResetFences vkResetFences = 0; - PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; - PFN_vkResetQueryPool vkResetQueryPool = 0; - PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; - PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; - PFN_vkSetEvent vkSetEvent = 0; - PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; - PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; - PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; - PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; - PFN_vkSignalSemaphore vkSignalSemaphore = 0; - PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; - PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; - PFN_vkTrimCommandPool vkTrimCommandPool = 0; - PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; - PFN_vkUnmapMemory vkUnmapMemory = 0; - PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; - PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; - PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; - PFN_vkWaitForFences vkWaitForFences = 0; - PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; - PFN_vkWaitSemaphores vkWaitSemaphores = 0; - PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; + + //=== VK_EXT_color_write_enable === + PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0; + + //=== VK_EXT_multi_draw === + PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0; + PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0; + + //=== VK_EXT_pageable_device_local_memory === + PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0; + + //=== VK_KHR_maintenance4 === + PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR = 0; + PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR = 0; + PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0; public: - DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default; + DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default; DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if !defined(VK_NO_PROTOTYPES) - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. +#if !defined( VK_NO_PROTOTYPES ) + // This interface is designed to be used for per-device function pointers in combination with a linked vulkan + // library. template - void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT - { - PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress("vkGetInstanceProcAddr"); - PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress("vkGetDeviceProcAddr"); - init(static_cast(instance), getInstanceProcAddr, static_cast(device), device ? getDeviceProcAddr : nullptr); - } - - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. + void init( VULKAN_HPP_NAMESPACE::Instance const & instance, + VULKAN_HPP_NAMESPACE::Device const & device, + DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT + { + PFN_vkGetInstanceProcAddr getInstanceProcAddr = + dl.template getProcAddress( "vkGetInstanceProcAddr" ); + PFN_vkGetDeviceProcAddr getDeviceProcAddr = + dl.template getProcAddress( "vkGetDeviceProcAddr" ); + init( static_cast( instance ), + getInstanceProcAddr, + static_cast( device ), + device ? getDeviceProcAddr : nullptr ); + } + + // This interface is designed to be used for per-device function pointers in combination with a linked vulkan + // library. template - void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT +# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL + = VULKAN_HPP_NAMESPACE::DynamicLoader +# endif + > + void init( VULKAN_HPP_NAMESPACE::Instance const & instance, + VULKAN_HPP_NAMESPACE::Device const & device ) VULKAN_HPP_NOEXCEPT { static DynamicLoader dl; - init(instance, device, dl); - } -#endif // !defined(VK_NO_PROTOTYPES) - - DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT - { - init(getInstanceProcAddr); + init( instance, device, dl ); + } +#endif // !defined( VK_NO_PROTOTYPES ) + + DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT + { + init( getInstanceProcAddr ); } void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(getInstanceProcAddr); + VULKAN_HPP_ASSERT( getInstanceProcAddr ); vkGetInstanceProcAddr = getInstanceProcAddr; + + //=== VK_VERSION_1_0 === vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) ); - vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ); - vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ); - vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); + vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( + vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ); + vkEnumerateInstanceLayerProperties = + PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ); + + //=== VK_VERSION_1_1 === + vkEnumerateInstanceVersion = + PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); } // This interface does not require a linked vulkan library. - DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT + DispatchLoaderDynamic( VkInstance instance, + PFN_vkGetInstanceProcAddr getInstanceProcAddr, + VkDevice device = {}, + PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT { init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); } // This interface does not require a linked vulkan library. - void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT(instance && getInstanceProcAddr); + void init( VkInstance instance, + PFN_vkGetInstanceProcAddr getInstanceProcAddr, + VkDevice device = {}, + PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( instance && getInstanceProcAddr ); vkGetInstanceProcAddr = getInstanceProcAddr; - init( VULKAN_HPP_NAMESPACE::Instance(instance) ); - if (device) { - init( VULKAN_HPP_NAMESPACE::Device(device) ); + init( VULKAN_HPP_NAMESPACE::Instance( instance ) ); + if ( device ) + { + init( VULKAN_HPP_NAMESPACE::Device( device ) ); } } void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT { - VkInstance instance = static_cast(instanceCpp); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); + VkInstance instance = static_cast( instanceCpp ); + + //=== VK_VERSION_1_0 === + vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); + vkEnumeratePhysicalDevices = + PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); + vkGetPhysicalDeviceFeatures = + PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); + vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); + vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); + vkGetPhysicalDeviceProperties = + PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); + vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); + vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); + vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); + vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); + vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) ); + vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( + vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); + vkEnumerateDeviceLayerProperties = + PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); + vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) ); + vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) ); + vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) ); + vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) ); + vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) ); + vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) ); + vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) ); + vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) ); + vkFlushMappedMemoryRanges = + PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) ); + vkInvalidateMappedMemoryRanges = + PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) ); + vkGetDeviceMemoryCommitment = + PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) ); + vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) ); + vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) ); + vkGetBufferMemoryRequirements = + PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) ); + vkGetImageMemoryRequirements = + PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) ); + vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) ); + vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); + vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) ); + vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) ); + vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) ); + vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) ); + vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) ); + vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) ); + vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) ); + vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) ); + vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) ); + vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) ); + vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) ); + vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) ); + vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) ); + vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) ); + vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) ); + vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) ); + vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) ); + vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) ); + vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) ); + vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) ); + vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) ); + vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) ); + vkGetImageSubresourceLayout = + PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) ); + vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) ); + vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) ); + vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) ); + vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) ); + vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) ); + vkDestroyPipelineCache = + PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) ); + vkGetPipelineCacheData = + PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) ); + vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) ); + vkCreateGraphicsPipelines = + PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) ); + vkCreateComputePipelines = + PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) ); + vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) ); + vkCreatePipelineLayout = + PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) ); + vkDestroyPipelineLayout = + PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) ); + vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) ); + vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) ); + vkCreateDescriptorSetLayout = + PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) ); + vkDestroyDescriptorSetLayout = + PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) ); + vkCreateDescriptorPool = + PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) ); + vkDestroyDescriptorPool = + PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) ); + vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) ); + vkAllocateDescriptorSets = + PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) ); + vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) ); + vkUpdateDescriptorSets = + PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) ); + vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) ); + vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) ); + vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) ); + vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) ); + vkGetRenderAreaGranularity = + PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) ); + vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) ); + vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) ); + vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) ); + vkAllocateCommandBuffers = + PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) ); + vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) ); + vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) ); + vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) ); + vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) ); + vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) ); + vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) ); + vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) ); + vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) ); + vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) ); + vkCmdSetBlendConstants = + PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) ); + vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) ); + vkCmdSetStencilCompareMask = + PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) ); + vkCmdSetStencilWriteMask = + PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) ); + vkCmdSetStencilReference = + PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) ); + vkCmdBindDescriptorSets = + PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) ); + vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) ); + vkCmdBindVertexBuffers = + PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) ); + vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) ); + vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) ); + vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) ); + vkCmdDrawIndexedIndirect = + PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) ); + vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) ); + vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) ); + vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) ); + vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) ); + vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) ); + vkCmdCopyBufferToImage = + PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) ); + vkCmdCopyImageToBuffer = + PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) ); + vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) ); + vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) ); + vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) ); + vkCmdClearDepthStencilImage = + PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) ); + vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) ); + vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) ); + vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) ); + vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) ); + vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) ); + vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) ); + vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) ); + vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) ); + vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) ); + vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) ); + vkCmdCopyQueryPoolResults = + PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) ); + vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) ); + vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) ); + vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) ); + vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) ); + vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) ); + + //=== VK_VERSION_1_1 === + vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) ); + vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) ); + vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) ); + vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) ); + vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) ); + vkEnumeratePhysicalDeviceGroups = + PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); + vkGetImageMemoryRequirements2 = + PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) ); + vkGetBufferMemoryRequirements2 = + PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) ); + vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) ); + vkGetPhysicalDeviceFeatures2 = + PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); + vkGetPhysicalDeviceProperties2 = + PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); + vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); + vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); + vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); + vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); + vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); + vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) ); + vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) ); + vkCreateSamplerYcbcrConversion = + PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) ); + vkDestroySamplerYcbcrConversion = + PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) ); + vkCreateDescriptorUpdateTemplate = + PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) ); + vkDestroyDescriptorUpdateTemplate = + PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) ); + vkUpdateDescriptorSetWithTemplate = + PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) ); + vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); + vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); + vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); + vkGetDescriptorSetLayoutSupport = + PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) ); + + //=== VK_VERSION_1_2 === + vkCmdDrawIndirectCount = + PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) ); + vkCmdDrawIndexedIndirectCount = + PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) ); + vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) ); + vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) ); + vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) ); + vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) ); + vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) ); + vkGetSemaphoreCounterValue = + PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) ); + vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) ); + vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) ); + vkGetBufferDeviceAddress = + PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) ); + vkGetBufferOpaqueCaptureAddress = + PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) ); + vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( + vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); + + //=== VK_KHR_surface === + vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); + vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); + vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); + vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); + + //=== VK_KHR_swapchain === + vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) ); + vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) ); + vkGetSwapchainImagesKHR = + PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) ); + vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) ); + vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) ); + vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); + vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); + vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); + vkAcquireNextImage2KHR = + PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) ); + + //=== VK_KHR_display === + vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); + vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( + vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); + vkGetDisplayModePropertiesKHR = + PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); + vkCreateDisplayModeKHR = + PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); + vkGetDisplayPlaneCapabilitiesKHR = + PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); + vkCreateDisplayPlaneSurfaceKHR = + PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); + + //=== VK_KHR_display_swapchain === + vkCreateSharedSwapchainsKHR = + PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) ); + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + //=== VK_KHR_xlib_surface === + vkCreateXlibSurfaceKHR = + PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); + vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + //=== VK_KHR_xcb_surface === + vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); + vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + //=== VK_KHR_wayland_surface === + vkCreateWaylandSurfaceKHR = + PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); + vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_KHR_android_surface === + vkCreateAndroidSurfaceKHR = + PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); - vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); - vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); - vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); - vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); -#ifdef VK_USE_PLATFORM_IOS_MVK - vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_FUCHSIA - vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); -#endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); -#endif /*VK_USE_PLATFORM_METAL_EXT*/ -#ifdef VK_USE_PLATFORM_SCREEN_QNX - vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) ); -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ -#ifdef VK_USE_PLATFORM_GGP - vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_win32_surface === + vkCreateWin32SurfaceKHR = + PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); + vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_EXT_debug_report === + vkCreateDebugReportCallbackEXT = + PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); + vkDestroyDebugReportCallbackEXT = + PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); + vkDebugReportMessageEXT = + PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); + + //=== VK_EXT_debug_marker === + vkDebugMarkerSetObjectTagEXT = + PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) ); + vkDebugMarkerSetObjectNameEXT = + PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) ); + vkCmdDebugMarkerBeginEXT = + PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) ); + vkCmdDebugMarkerEndEXT = + PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) ); + vkCmdDebugMarkerInsertEXT = + PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) ); + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) ); + vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) ); + vkCreateVideoSessionKHR = + PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) ); + vkDestroyVideoSessionKHR = + PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) ); + vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR( + vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) ); + vkBindVideoSessionMemoryKHR = + PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) ); + vkCreateVideoSessionParametersKHR = + PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) ); + vkUpdateVideoSessionParametersKHR = + PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) ); + vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( + vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) ); + vkCmdBeginVideoCodingKHR = + PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) ); + vkCmdEndVideoCodingKHR = + PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) ); + vkCmdControlVideoCodingKHR = + PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_decode_queue === + vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_EXT_transform_feedback === + vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( + vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) ); + vkCmdBeginTransformFeedbackEXT = + PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) ); + vkCmdEndTransformFeedbackEXT = + PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) ); + vkCmdBeginQueryIndexedEXT = + PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) ); + vkCmdEndQueryIndexedEXT = + PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) ); + vkCmdDrawIndirectByteCountEXT = + PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) ); + + //=== VK_NVX_binary_import === + vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) ); + vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) ); + vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) ); + vkDestroyCuFunctionNVX = + PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) ); + vkCmdCuLaunchKernelNVX = + PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) ); + + //=== VK_NVX_image_view_handle === + vkGetImageViewHandleNVX = + PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) ); + vkGetImageViewAddressNVX = + PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) ); + + //=== VK_AMD_draw_indirect_count === + vkCmdDrawIndirectCountAMD = + PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; + vkCmdDrawIndexedIndirectCountAMD = + PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; + + //=== VK_AMD_shader_info === + vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) ); + + //=== VK_KHR_dynamic_rendering === + vkCmdBeginRenderingKHR = + PFN_vkCmdBeginRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderingKHR" ) ); + vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderingKHR" ) ); + +#if defined( VK_USE_PLATFORM_GGP ) + //=== VK_GGP_stream_descriptor_surface === + vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( + vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); #endif /*VK_USE_PLATFORM_GGP*/ -#ifdef VK_USE_PLATFORM_VI_NN + + //=== VK_NV_external_memory_capabilities === + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_external_memory_win32 === + vkGetMemoryWin32HandleNV = + PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_get_physical_device_properties2 === + vkGetPhysicalDeviceFeatures2KHR = + PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); + if ( !vkGetPhysicalDeviceFeatures2 ) + vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; + vkGetPhysicalDeviceProperties2KHR = + PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceProperties2 ) + vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; + vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceFormatProperties2 ) + vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; + vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceImageFormatProperties2 ) + vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; + vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) + vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; + vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceMemoryProperties2 ) + vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; + vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); + if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) + vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; + + //=== VK_KHR_device_group === + vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); + if ( !vkGetDeviceGroupPeerMemoryFeatures ) + vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; + vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) ); + if ( !vkCmdSetDeviceMask ) + vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; + vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) ); + if ( !vkCmdDispatchBase ) + vkCmdDispatchBase = vkCmdDispatchBaseKHR; + +#if defined( VK_USE_PLATFORM_VI_NN ) + //=== VK_NN_vi_surface === vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) ); #endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); + + //=== VK_KHR_maintenance1 === + vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) ); + if ( !vkTrimCommandPool ) + vkTrimCommandPool = vkTrimCommandPoolKHR; + + //=== VK_KHR_device_group_creation === + vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( + vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); + if ( !vkEnumeratePhysicalDeviceGroups ) + vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; + + //=== VK_KHR_external_memory_capabilities === + vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); + if ( !vkGetPhysicalDeviceExternalBufferProperties ) + vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_memory_win32 === + vkGetMemoryWin32HandleKHR = + PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) ); + vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_memory_fd === + vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) ); + vkGetMemoryFdPropertiesKHR = + PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) ); + + //=== VK_KHR_external_semaphore_capabilities === + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); + if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) + vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_semaphore_win32 === + vkImportSemaphoreWin32HandleKHR = + PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) ); + vkGetSemaphoreWin32HandleKHR = + PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_semaphore_fd === + vkImportSemaphoreFdKHR = + PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) ); + vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) ); + + //=== VK_KHR_push_descriptor === + vkCmdPushDescriptorSetKHR = + PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) ); + vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( + vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); + + //=== VK_EXT_conditional_rendering === + vkCmdBeginConditionalRenderingEXT = + PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) ); + vkCmdEndConditionalRenderingEXT = + PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) ); + + //=== VK_KHR_descriptor_update_template === + vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( + vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) ); + if ( !vkCreateDescriptorUpdateTemplate ) + vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; + vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( + vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) ); + if ( !vkDestroyDescriptorUpdateTemplate ) + vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; + vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( + vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) ); + if ( !vkUpdateDescriptorSetWithTemplate ) + vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; + + //=== VK_NV_clip_space_w_scaling === + vkCmdSetViewportWScalingNV = + PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) ); + + //=== VK_EXT_direct_mode_display === + vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + //=== VK_EXT_acquire_xlib_display === + vkAcquireXlibDisplayEXT = + PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); + vkGetRandROutputDisplayEXT = + PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + //=== VK_EXT_display_surface_counter === + vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); + + //=== VK_EXT_display_control === + vkDisplayPowerControlEXT = + PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) ); + vkRegisterDeviceEventEXT = + PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) ); + vkRegisterDisplayEventEXT = + PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) ); + vkGetSwapchainCounterEXT = + PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) ); + + //=== VK_GOOGLE_display_timing === + vkGetRefreshCycleDurationGOOGLE = + PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) ); + vkGetPastPresentationTimingGOOGLE = + PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) ); + + //=== VK_EXT_discard_rectangles === + vkCmdSetDiscardRectangleEXT = + PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) ); + + //=== VK_EXT_hdr_metadata === + vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) ); + + //=== VK_KHR_create_renderpass2 === + vkCreateRenderPass2KHR = + PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) ); + if ( !vkCreateRenderPass2 ) + vkCreateRenderPass2 = vkCreateRenderPass2KHR; + vkCmdBeginRenderPass2KHR = + PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) ); + if ( !vkCmdBeginRenderPass2 ) + vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; + vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) ); + if ( !vkCmdNextSubpass2 ) + vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; + vkCmdEndRenderPass2KHR = + PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) ); + if ( !vkCmdEndRenderPass2 ) + vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; + + //=== VK_KHR_shared_presentable_image === + vkGetSwapchainStatusKHR = + PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) ); + + //=== VK_KHR_external_fence_capabilities === + vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); + if ( !vkGetPhysicalDeviceExternalFenceProperties ) + vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_fence_win32 === + vkImportFenceWin32HandleKHR = + PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) ); + vkGetFenceWin32HandleKHR = + PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); - vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); - vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); - vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); - vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); - vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); - vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); - vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); - vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); - if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); - vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); - vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); - vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); - vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); - vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); - vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); - vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) ); - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); - vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); - if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; - vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); - vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); - if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); - vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); - if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; - vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); - vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); - vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); - if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; - vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); - vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); - vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; - vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); - vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); - vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; - vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); - vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); - vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); - if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; - vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); - vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); - vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); - vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); - vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); - if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); - vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); - if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; -#ifdef VK_USE_PLATFORM_SCREEN_QNX - vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); -#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); - vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); - vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); + + //=== VK_KHR_external_fence_fd === + vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) ); + vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) ); + + //=== VK_KHR_performance_query === + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = + PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = + PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); + vkAcquireProfilingLockKHR = + PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) ); + vkReleaseProfilingLockKHR = + PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) ); + + //=== VK_KHR_get_surface_capabilities2 === + vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); + vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); + + //=== VK_KHR_get_display_properties2 === + vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); + vkGetDisplayModeProperties2KHR = + PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); + vkGetDisplayPlaneCapabilities2KHR = + PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); + +#if defined( VK_USE_PLATFORM_IOS_MVK ) + //=== VK_MVK_ios_surface === + vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); +#endif /*VK_USE_PLATFORM_IOS_MVK*/ + +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + //=== VK_MVK_macos_surface === + vkCreateMacOSSurfaceMVK = + PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + + //=== VK_EXT_debug_utils === + vkSetDebugUtilsObjectNameEXT = + PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) ); + vkSetDebugUtilsObjectTagEXT = + PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) ); + vkQueueBeginDebugUtilsLabelEXT = + PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) ); + vkQueueEndDebugUtilsLabelEXT = + PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) ); + vkQueueInsertDebugUtilsLabelEXT = + PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) ); + vkCmdBeginDebugUtilsLabelEXT = + PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) ); + vkCmdEndDebugUtilsLabelEXT = + PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) ); + vkCmdInsertDebugUtilsLabelEXT = + PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) ); + vkCreateDebugUtilsMessengerEXT = + PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); + vkDestroyDebugUtilsMessengerEXT = + PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); + vkSubmitDebugUtilsMessageEXT = + PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_memory_android_hardware_buffer === + vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( + vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); + vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( + vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + //=== VK_EXT_sample_locations === + vkCmdSetSampleLocationsEXT = + PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) ); + vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); + + //=== VK_KHR_get_memory_requirements2 === + vkGetImageMemoryRequirements2KHR = + PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) ); + if ( !vkGetImageMemoryRequirements2 ) + vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; + vkGetBufferMemoryRequirements2KHR = + PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) ); + if ( !vkGetBufferMemoryRequirements2 ) + vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; + vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) ); + if ( !vkGetImageSparseMemoryRequirements2 ) + vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; + + //=== VK_KHR_acceleration_structure === + vkCreateAccelerationStructureKHR = + PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) ); + vkDestroyAccelerationStructureKHR = + PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) ); + vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( + vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) ); + vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( + vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); + vkBuildAccelerationStructuresKHR = + PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) ); + vkCopyAccelerationStructureKHR = + PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) ); + vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( + vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) ); + vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( + vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) ); + vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) ); + vkCmdCopyAccelerationStructureKHR = + PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) ); + vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( + vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); + vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( + vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); + vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); + vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); + vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) ); + + //=== VK_KHR_sampler_ycbcr_conversion === + vkCreateSamplerYcbcrConversionKHR = + PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) ); + if ( !vkCreateSamplerYcbcrConversion ) + vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; + vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( + vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) ); + if ( !vkDestroySamplerYcbcrConversion ) + vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; + + //=== VK_KHR_bind_memory2 === + vkBindBufferMemory2KHR = + PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) ); + if ( !vkBindBufferMemory2 ) + vkBindBufferMemory2 = vkBindBufferMemory2KHR; + vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) ); + if ( !vkBindImageMemory2 ) + vkBindImageMemory2 = vkBindImageMemory2KHR; + + //=== VK_EXT_image_drm_format_modifier === + vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); + + //=== VK_EXT_validation_cache === + vkCreateValidationCacheEXT = + PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) ); + vkDestroyValidationCacheEXT = + PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) ); + vkMergeValidationCachesEXT = + PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) ); + vkGetValidationCacheDataEXT = + PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) ); + + //=== VK_NV_shading_rate_image === + vkCmdBindShadingRateImageNV = + PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) ); + vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( + vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) ); + vkCmdSetCoarseSampleOrderNV = + PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) ); + + //=== VK_NV_ray_tracing === + vkCreateAccelerationStructureNV = + PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) ); + vkDestroyAccelerationStructureNV = + PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) ); + vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); + vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( + vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) ); + vkCmdBuildAccelerationStructureNV = + PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdCopyAccelerationStructureNV = + PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) ); + vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) ); + vkCreateRayTracingPipelinesNV = + PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) ); + vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) ); + if ( !vkGetRayTracingShaderGroupHandlesKHR ) + vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; + vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) ); + vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( + vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); + vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) ); + + //=== VK_KHR_maintenance3 === + vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) ); + if ( !vkGetDescriptorSetLayoutSupport ) + vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; + + //=== VK_KHR_draw_indirect_count === + vkCmdDrawIndirectCountKHR = + PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; + vkCmdDrawIndexedIndirectCountKHR = + PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; + + //=== VK_EXT_external_memory_host === + vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) ); + + //=== VK_AMD_buffer_marker === + vkCmdWriteBufferMarkerAMD = + PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) ); + + //=== VK_EXT_calibrated_timestamps === + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); + vkGetCalibratedTimestampsEXT = + PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) ); + + //=== VK_NV_mesh_shader === + vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) ); + vkCmdDrawMeshTasksIndirectNV = + PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) ); + vkCmdDrawMeshTasksIndirectCountNV = + PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) ); + + //=== VK_NV_scissor_exclusive === + vkCmdSetExclusiveScissorNV = + PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) ); + + //=== VK_NV_device_diagnostic_checkpoints === + vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) ); + vkGetQueueCheckpointDataNV = + PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) ); + + //=== VK_KHR_timeline_semaphore === + vkGetSemaphoreCounterValueKHR = + PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) ); + if ( !vkGetSemaphoreCounterValue ) + vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; + vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) ); + if ( !vkWaitSemaphores ) + vkWaitSemaphores = vkWaitSemaphoresKHR; + vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) ); + if ( !vkSignalSemaphore ) + vkSignalSemaphore = vkSignalSemaphoreKHR; + + //=== VK_INTEL_performance_query === + vkInitializePerformanceApiINTEL = + PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) ); + vkUninitializePerformanceApiINTEL = + PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) ); + vkCmdSetPerformanceMarkerINTEL = + PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) ); + vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( + vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); + vkCmdSetPerformanceOverrideINTEL = + PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) ); + vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) ); + vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) ); + vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) ); + vkGetPerformanceParameterINTEL = + PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) ); + + //=== VK_AMD_display_native_hdr === + vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) ); + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_imagepipe_surface === + vkCreateImagePipeSurfaceFUCHSIA = + PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_METAL_EXT ) + //=== VK_EXT_metal_surface === + vkCreateMetalSurfaceEXT = + PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + + //=== VK_KHR_fragment_shading_rate === + vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); + vkCmdSetFragmentShadingRateKHR = + PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) ); + + //=== VK_EXT_buffer_device_address === + vkGetBufferDeviceAddressEXT = + PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; + + //=== VK_EXT_tooling_info === + vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); + + //=== VK_KHR_present_wait === + vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) ); + + //=== VK_NV_cooperative_matrix === + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); + + //=== VK_NV_coverage_reduction_mode === + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_EXT_full_screen_exclusive === + vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); + vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( + vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) ); + vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( + vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) ); + vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); - vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); - vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR + + //=== VK_EXT_headless_surface === + vkCreateHeadlessSurfaceEXT = + PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); + + //=== VK_KHR_buffer_device_address === + vkGetBufferDeviceAddressKHR = + PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; + vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) ); + if ( !vkGetBufferOpaqueCaptureAddress ) + vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; + vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) + vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; + + //=== VK_EXT_line_rasterization === + vkCmdSetLineStippleEXT = + PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) ); + + //=== VK_EXT_host_query_reset === + vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) ); + if ( !vkResetQueryPool ) + vkResetQueryPool = vkResetQueryPoolEXT; + + //=== VK_EXT_extended_dynamic_state === + vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) ); + vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) ); + vkCmdSetPrimitiveTopologyEXT = + PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) ); + vkCmdSetViewportWithCountEXT = + PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) ); + vkCmdSetScissorWithCountEXT = + PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) ); + vkCmdBindVertexBuffers2EXT = + PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) ); + vkCmdSetDepthTestEnableEXT = + PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) ); + vkCmdSetDepthWriteEnableEXT = + PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) ); + vkCmdSetDepthCompareOpEXT = + PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) ); + vkCmdSetDepthBoundsTestEnableEXT = + PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) ); + vkCmdSetStencilTestEnableEXT = + PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) ); + vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) ); + + //=== VK_KHR_deferred_host_operations === + vkCreateDeferredOperationKHR = + PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) ); + vkDestroyDeferredOperationKHR = + PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) ); + vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( + vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); + vkGetDeferredOperationResultKHR = + PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) ); + vkDeferredOperationJoinKHR = + PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) ); + + //=== VK_KHR_pipeline_executable_properties === + vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) ); + vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) ); + vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); + + //=== VK_NV_device_generated_commands === + vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( + vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); + vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( + vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) ); + vkCmdExecuteGeneratedCommandsNV = + PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) ); + vkCmdBindPipelineShaderGroupNV = + PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) ); + vkCreateIndirectCommandsLayoutNV = + PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) ); + vkDestroyIndirectCommandsLayoutNV = + PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) ); + + //=== VK_EXT_acquire_drm_display === + vkAcquireDrmDisplayEXT = + PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) ); + vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) ); + + //=== VK_EXT_private_data === + vkCreatePrivateDataSlotEXT = + PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) ); + vkDestroyPrivateDataSlotEXT = + PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) ); + vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) ); + vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) ); + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_encode_queue === + vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_KHR_synchronization2 === + vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) ); + vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) ); + vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) ); + vkCmdPipelineBarrier2KHR = + PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) ); + vkCmdWriteTimestamp2KHR = + PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) ); + vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) ); + vkCmdWriteBufferMarker2AMD = + PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) ); + vkGetQueueCheckpointData2NV = + PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) ); + + //=== VK_NV_fragment_shading_rate_enums === + vkCmdSetFragmentShadingRateEnumNV = + PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) ); + + //=== VK_KHR_copy_commands2 === + vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) ); + vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) ); + vkCmdCopyBufferToImage2KHR = + PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) ); + vkCmdCopyImageToBuffer2KHR = + PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) ); + vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) ); + vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_acquire_winrt_display === + vkAcquireWinrtDisplayNV = + PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); - vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) ); - vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) ); - vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) ); - if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR; - vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) ); - if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR; - vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) ); - vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) ); - vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) ); - if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) ); - vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) ); - vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) ); - vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) ); - vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) ); - vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) ); - vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) ); - vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); - vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) ); - vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) ); - vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) ); - vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) ); - vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) ); - vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) ); - vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) ); - vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) ); - vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) ); - if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR; - vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) ); - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; - vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) ); - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) ); - vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) ); - vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) ); - vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) ); - vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) ); - if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) ); - vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) ); - vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) ); - vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) ); - if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; - vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) ); - vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) ); - vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) ); - vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) ); - vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) ); - vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) ); - vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) ); - vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) ); - vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) ); - vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) ); - vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) ); - vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) ); - vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) ); - vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) ); - vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) ); - if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) ); - vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) ); - vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) ); - vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) ); - vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) ); - vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) ); - vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) ); - vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) ); - vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) ); - vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) ); - vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) ); - vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) ); + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + //=== VK_EXT_directfb_surface === + vkCreateDirectFBSurfaceEXT = + PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); + vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + //=== VK_KHR_ray_tracing_pipeline === vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) ); - vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) ); - vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) ); - vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) ); - vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) ); - vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) ); - vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) ); - vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) ); - vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) ); - vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) ); - vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) ); - if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; - vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) ); - vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) ); - vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) ); - vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) ); - vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) ); - vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) ); - vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) ); - vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) ); - vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) ); - vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) ); - if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR; - vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) ); - if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) ); - vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) ); - vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) ); - vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) ); - vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) ); - vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) ); - vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) ); - if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; - vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) ); - vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) ); - vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) ); - vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) ); - vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) ); - vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) ); - if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) ); - vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) ); - vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) ); - vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) ); - vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) ); - vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) ); - vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) ); - vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) ); - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) ); - if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) ); - if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); - vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) ); - if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; - vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; - vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) ); - if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) ); - if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) ); - vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) ); - vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) ); - vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) ); - vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) ); - vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) ); - vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) ); - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) ); - if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; - vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) ); - if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; - vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) ); - vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) ); - vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) ); - vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) ); - vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) ); - vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) ); - vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) ); - vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) ); - if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT; - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) ); - vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) ); - vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) ); - vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) ); - if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR; - vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) ); - if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR; - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) ); - if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; - vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) ); - vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) ); - if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR; - vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) ); + vkCreateRayTracingPipelinesKHR = + PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) ); + vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) ); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); + vkCmdTraceRaysIndirectKHR = + PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) ); + vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); + vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( + vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); + + //=== VK_EXT_vertex_input_dynamic_state === + vkCmdSetVertexInputEXT = + PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) ); + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_memory === + vkGetMemoryZirconHandleFUCHSIA = + PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) ); + vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( + vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_semaphore === + vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( + vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); + vkGetSemaphoreZirconHandleFUCHSIA = + PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + vkCreateBufferCollectionFUCHSIA = + PFN_vkCreateBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateBufferCollectionFUCHSIA" ) ); + vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( + vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) ); + vkSetBufferCollectionBufferConstraintsFUCHSIA = PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( + vkGetInstanceProcAddr( instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) ); + vkDestroyBufferCollectionFUCHSIA = + PFN_vkDestroyBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkDestroyBufferCollectionFUCHSIA" ) ); + vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA( + vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_HUAWEI_subpass_shading === + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) ); + vkCmdSubpassShadingHUAWEI = + PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) ); + + //=== VK_HUAWEI_invocation_mask === + vkCmdBindInvocationMaskHUAWEI = + PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) ); + + //=== VK_NV_external_memory_rdma === + vkGetMemoryRemoteAddressNV = + PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) ); + + //=== VK_EXT_extended_dynamic_state2 === + vkCmdSetPatchControlPointsEXT = + PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) ); + vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( + vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) ); + vkCmdSetDepthBiasEnableEXT = + PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) ); + vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) ); + vkCmdSetPrimitiveRestartEnableEXT = + PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) ); + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + //=== VK_QNX_screen_surface === + vkCreateScreenSurfaceQNX = + PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) ); + vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + + //=== VK_EXT_color_write_enable === + vkCmdSetColorWriteEnableEXT = + PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) ); + + //=== VK_EXT_multi_draw === + vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) ); + vkCmdDrawMultiIndexedEXT = + PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) ); + + //=== VK_EXT_pageable_device_local_memory === + vkSetDeviceMemoryPriorityEXT = + PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) ); + + //=== VK_KHR_maintenance4 === + vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirementsKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirementsKHR" ) ); + vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirementsKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirementsKHR" ) ); + vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) ); } void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT { - VkDevice device = static_cast(deviceCpp); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); - vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); + VkDevice device = static_cast( deviceCpp ); + + //=== VK_VERSION_1_0 === + vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); + vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); + vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); + vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); + vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); + vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); + vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); + vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); + vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); + vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); + vkFlushMappedMemoryRanges = + PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); + vkInvalidateMappedMemoryRanges = + PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); + vkGetDeviceMemoryCommitment = + PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); - if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR; - vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); - if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR; - vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); - vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); - vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); - if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); + vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); + vkGetBufferMemoryRequirements = + PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); + vkGetImageMemoryRequirements = + PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); + vkGetImageSparseMemoryRequirements = + PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); + vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); + vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); + vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); + vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); + vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); + vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); + vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); + vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); + vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); + vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); + vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); + vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); + vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); + vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); + vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); + vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); + vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); + vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); + vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); + vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); + vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); + vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); + vkGetImageSubresourceLayout = + PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); + vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); + vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); + vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); + vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); + vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); + vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); + vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); + vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); + vkCreateGraphicsPipelines = + PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); + vkCreateComputePipelines = + PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); + vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); + vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); + vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); + vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); + vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); + vkCreateDescriptorSetLayout = + PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); + vkDestroyDescriptorSetLayout = + PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); + vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); + vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); + vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); + vkAllocateDescriptorSets = + PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); + vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); + vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); + vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); + vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); + vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); + vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); + vkGetRenderAreaGranularity = + PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); + vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); + vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); + vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); + vkAllocateCommandBuffers = + PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); + vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); + vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); + vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); + vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); + vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); + vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); + vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); + vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); + vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); + vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); + vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); + vkCmdSetStencilCompareMask = + PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); + vkCmdSetStencilWriteMask = + PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); + vkCmdSetStencilReference = + PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) ); - vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); - vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); - vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); - vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); - vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); - vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); - vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); + vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); + vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); + vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); + vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); + vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); + vkCmdDrawIndexedIndirect = + PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); + vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); + vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); + vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); + vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); + vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); + vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); + vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); + vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); + vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); + vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); + vkCmdClearDepthStencilImage = + PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); - vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); - vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); - vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); - vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); - vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); - vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); - vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); - if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR; - vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; - vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); - vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); - vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); - vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); - vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); - if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); + vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); + vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); + vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); + vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); + vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); + vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); + vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); + vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); + vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); + vkCmdCopyQueryPoolResults = + PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); + vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); + vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); + vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); + vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) ); - vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); - vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); - if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; - vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); - vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) ); - vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); - vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); - vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); - vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); - vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); - vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); - vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); - vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); - vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); - vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); - vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); - vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); + + //=== VK_VERSION_1_1 === + vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); + vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); + vkGetDeviceGroupPeerMemoryFeatures = + PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); - if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); - vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); - vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); - vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); - vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); - vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); - vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); - vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); - vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); - vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); - vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); - vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); - vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); - vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); - vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); - vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) ); - vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); - vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); - vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); - vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); - vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); - vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); - vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); - if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; - vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); - vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); - vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); - vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); - vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); - vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); - vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); - vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); + vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); + vkGetImageMemoryRequirements2 = + PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); + vkGetBufferMemoryRequirements2 = + PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); + vkGetImageSparseMemoryRequirements2 = + PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); + vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); + vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); + vkCreateSamplerYcbcrConversion = + PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); + vkDestroySamplerYcbcrConversion = + PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); + vkCreateDescriptorUpdateTemplate = + PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); + vkDestroyDescriptorUpdateTemplate = + PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); + vkUpdateDescriptorSetWithTemplate = + PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); + vkGetDescriptorSetLayoutSupport = + PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); + + //=== VK_VERSION_1_2 === + vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); + vkCmdDrawIndexedIndirectCount = + PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); + vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); + vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); + vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); + vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); + vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); + vkGetSemaphoreCounterValue = + PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); + vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); + vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); + vkGetBufferDeviceAddress = + PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); + vkGetBufferOpaqueCaptureAddress = + PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); + vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( + vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); + + //=== VK_KHR_swapchain === + vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); + vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); + vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); + vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); + vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); + vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); + vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); + vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); + + //=== VK_KHR_display_swapchain === + vkCreateSharedSwapchainsKHR = + PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); + + //=== VK_EXT_debug_marker === + vkDebugMarkerSetObjectTagEXT = + PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); + vkDebugMarkerSetObjectNameEXT = + PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); + vkCmdDebugMarkerBeginEXT = + PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); + vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); + vkCmdDebugMarkerInsertEXT = + PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) ); + vkDestroyVideoSessionKHR = + PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) ); + vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR( + vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) ); + vkBindVideoSessionMemoryKHR = + PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) ); + vkCreateVideoSessionParametersKHR = + PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) ); + vkUpdateVideoSessionParametersKHR = + PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) ); + vkDestroyVideoSessionParametersKHR = + PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) ); + vkCmdBeginVideoCodingKHR = + PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) ); + vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) ); + vkCmdControlVideoCodingKHR = + PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_decode_queue === + vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_EXT_transform_feedback === + vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( + vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); + vkCmdBeginTransformFeedbackEXT = + PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); + vkCmdEndTransformFeedbackEXT = + PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); + vkCmdBeginQueryIndexedEXT = + PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); + vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); + vkCmdDrawIndirectByteCountEXT = + PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); + + //=== VK_NVX_binary_import === + vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) ); + vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) ); + vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) ); + vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) ); + vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) ); + + //=== VK_NVX_image_view_handle === + vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); + vkGetImageViewAddressNVX = + PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); + + //=== VK_AMD_draw_indirect_count === + vkCmdDrawIndirectCountAMD = + PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; + vkCmdDrawIndexedIndirectCountAMD = + PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; + + //=== VK_AMD_shader_info === + vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); + + //=== VK_KHR_dynamic_rendering === + vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) ); + vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_NV_external_memory_win32 === + vkGetMemoryWin32HandleNV = + PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_device_group === + vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); + if ( !vkGetDeviceGroupPeerMemoryFeatures ) + vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; + vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); + if ( !vkCmdSetDeviceMask ) + vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; + vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); + if ( !vkCmdDispatchBase ) + vkCmdDispatchBase = vkCmdDispatchBaseKHR; + + //=== VK_KHR_maintenance1 === + vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); + if ( !vkTrimCommandPool ) + vkTrimCommandPool = vkTrimCommandPoolKHR; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_memory_win32 === + vkGetMemoryWin32HandleKHR = + PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); + vkGetMemoryWin32HandlePropertiesKHR = + PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_memory_fd === + vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); + vkGetMemoryFdPropertiesKHR = + PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_semaphore_win32 === + vkImportSemaphoreWin32HandleKHR = + PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); + vkGetSemaphoreWin32HandleKHR = + PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + //=== VK_KHR_external_semaphore_fd === + vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); + vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); + + //=== VK_KHR_push_descriptor === + vkCmdPushDescriptorSetKHR = + PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); + vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( + vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); + + //=== VK_EXT_conditional_rendering === + vkCmdBeginConditionalRenderingEXT = + PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); + vkCmdEndConditionalRenderingEXT = + PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); + + //=== VK_KHR_descriptor_update_template === + vkCreateDescriptorUpdateTemplateKHR = + PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); + if ( !vkCreateDescriptorUpdateTemplate ) + vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; + vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( + vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); + if ( !vkDestroyDescriptorUpdateTemplate ) + vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; + vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( + vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); + if ( !vkUpdateDescriptorSetWithTemplate ) + vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; + + //=== VK_NV_clip_space_w_scaling === + vkCmdSetViewportWScalingNV = + PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); + + //=== VK_EXT_display_control === + vkDisplayPowerControlEXT = + PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); + vkRegisterDeviceEventEXT = + PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); + vkRegisterDisplayEventEXT = + PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); + vkGetSwapchainCounterEXT = + PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); + + //=== VK_GOOGLE_display_timing === + vkGetRefreshCycleDurationGOOGLE = + PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); + vkGetPastPresentationTimingGOOGLE = + PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); + + //=== VK_EXT_discard_rectangles === + vkCmdSetDiscardRectangleEXT = + PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); + + //=== VK_EXT_hdr_metadata === + vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); + + //=== VK_KHR_create_renderpass2 === vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) ); - vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); - if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR; - vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); - if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); - vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); - vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); - vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); - vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); - vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); - vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); - if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; - vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); - vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); - vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); - vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); - vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); - vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); - if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); - vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); - vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); - vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); - vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); - vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); - vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); - vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); - if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); - if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); - vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); - if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; - vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; - vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); + if ( !vkCreateRenderPass2 ) + vkCreateRenderPass2 = vkCreateRenderPass2KHR; + vkCmdBeginRenderPass2KHR = + PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); + if ( !vkCmdBeginRenderPass2 ) + vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; + vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); + if ( !vkCmdNextSubpass2 ) + vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; + vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); + if ( !vkCmdEndRenderPass2 ) + vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; + + //=== VK_KHR_shared_presentable_image === + vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_KHR_external_fence_win32 === + vkImportFenceWin32HandleKHR = + PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); + vkGetFenceWin32HandleKHR = + PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); - if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); - if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); - vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); - vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); + + //=== VK_KHR_external_fence_fd === + vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); + vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); + + //=== VK_KHR_performance_query === + vkAcquireProfilingLockKHR = + PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); + vkReleaseProfilingLockKHR = + PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); + + //=== VK_EXT_debug_utils === + vkSetDebugUtilsObjectNameEXT = + PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); + vkSetDebugUtilsObjectTagEXT = + PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); + vkQueueBeginDebugUtilsLabelEXT = + PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); + vkQueueEndDebugUtilsLabelEXT = + PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); + vkQueueInsertDebugUtilsLabelEXT = + PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); + vkCmdBeginDebugUtilsLabelEXT = + PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); + vkCmdEndDebugUtilsLabelEXT = + PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); + vkCmdInsertDebugUtilsLabelEXT = + PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_memory_android_hardware_buffer === + vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( + vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); + vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( + vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); - vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); - vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); - vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); - vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); - if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; - vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); - if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; - vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); - vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); - vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); - vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); + + //=== VK_EXT_sample_locations === + vkCmdSetSampleLocationsEXT = + PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); + + //=== VK_KHR_get_memory_requirements2 === + vkGetImageMemoryRequirements2KHR = + PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); + if ( !vkGetImageMemoryRequirements2 ) + vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; + vkGetBufferMemoryRequirements2KHR = + PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); + if ( !vkGetBufferMemoryRequirements2 ) + vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; + vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( + vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); + if ( !vkGetImageSparseMemoryRequirements2 ) + vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; + + //=== VK_KHR_acceleration_structure === + vkCreateAccelerationStructureKHR = + PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); + vkDestroyAccelerationStructureKHR = + PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); + vkCmdBuildAccelerationStructuresKHR = + PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); + vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( + vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); + vkBuildAccelerationStructuresKHR = + PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); + vkCopyAccelerationStructureKHR = + PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); + vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( + vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); + vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( + vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); + vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( + vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); + vkCmdCopyAccelerationStructureKHR = + PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); + vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( + vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); + vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( + vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); + vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( + vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); + vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); + vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); + + //=== VK_KHR_sampler_ycbcr_conversion === + vkCreateSamplerYcbcrConversionKHR = + PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); + if ( !vkCreateSamplerYcbcrConversion ) + vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; + vkDestroySamplerYcbcrConversionKHR = + PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); + if ( !vkDestroySamplerYcbcrConversion ) + vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; + + //=== VK_KHR_bind_memory2 === + vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); + if ( !vkBindBufferMemory2 ) + vkBindBufferMemory2 = vkBindBufferMemory2KHR; + vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); + if ( !vkBindImageMemory2 ) + vkBindImageMemory2 = vkBindImageMemory2KHR; + + //=== VK_EXT_image_drm_format_modifier === + vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( + vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); + + //=== VK_EXT_validation_cache === + vkCreateValidationCacheEXT = + PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); + vkDestroyValidationCacheEXT = + PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); + vkMergeValidationCachesEXT = + PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); + vkGetValidationCacheDataEXT = + PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); + + //=== VK_NV_shading_rate_image === + vkCmdBindShadingRateImageNV = + PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); + vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( + vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); + vkCmdSetCoarseSampleOrderNV = + PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); + + //=== VK_NV_ray_tracing === + vkCreateAccelerationStructureNV = + PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); + vkDestroyAccelerationStructureNV = + PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); + vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); + vkBindAccelerationStructureMemoryNV = + PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); + vkCmdBuildAccelerationStructureNV = + PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdCopyAccelerationStructureNV = + PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); + vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); + vkCreateRayTracingPipelinesNV = + PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); + vkGetRayTracingShaderGroupHandlesNV = + PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); + if ( !vkGetRayTracingShaderGroupHandlesKHR ) + vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; + vkGetAccelerationStructureHandleNV = + PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); + vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( + vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); + vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); + + //=== VK_KHR_maintenance3 === + vkGetDescriptorSetLayoutSupportKHR = + PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); + if ( !vkGetDescriptorSetLayoutSupport ) + vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; + + //=== VK_KHR_draw_indirect_count === + vkCmdDrawIndirectCountKHR = + PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; + vkCmdDrawIndexedIndirectCountKHR = + PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; + + //=== VK_EXT_external_memory_host === + vkGetMemoryHostPointerPropertiesEXT = + PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); + + //=== VK_AMD_buffer_marker === + vkCmdWriteBufferMarkerAMD = + PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); + + //=== VK_EXT_calibrated_timestamps === + vkGetCalibratedTimestampsEXT = + PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); + + //=== VK_NV_mesh_shader === + vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); + vkCmdDrawMeshTasksIndirectNV = + PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); + vkCmdDrawMeshTasksIndirectCountNV = + PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); + + //=== VK_NV_scissor_exclusive === + vkCmdSetExclusiveScissorNV = + PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); + + //=== VK_NV_device_diagnostic_checkpoints === + vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); + vkGetQueueCheckpointDataNV = + PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); + + //=== VK_KHR_timeline_semaphore === + vkGetSemaphoreCounterValueKHR = + PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); + if ( !vkGetSemaphoreCounterValue ) + vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; + vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); + if ( !vkWaitSemaphores ) + vkWaitSemaphores = vkWaitSemaphoresKHR; + vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); + if ( !vkSignalSemaphore ) + vkSignalSemaphore = vkSignalSemaphoreKHR; + + //=== VK_INTEL_performance_query === + vkInitializePerformanceApiINTEL = + PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); + vkUninitializePerformanceApiINTEL = + PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); + vkCmdSetPerformanceMarkerINTEL = + PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); + vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( + vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); + vkCmdSetPerformanceOverrideINTEL = + PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); + vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); + vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); + vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); + vkGetPerformanceParameterINTEL = + PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); + + //=== VK_AMD_display_native_hdr === + vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); + + //=== VK_KHR_fragment_shading_rate === + vkCmdSetFragmentShadingRateKHR = + PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); + + //=== VK_EXT_buffer_device_address === + vkGetBufferDeviceAddressEXT = + PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; + + //=== VK_KHR_present_wait === + vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) ); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + //=== VK_EXT_full_screen_exclusive === + vkAcquireFullScreenExclusiveModeEXT = + PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); + vkReleaseFullScreenExclusiveModeEXT = + PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); + vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); - vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); - vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); - vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); + + //=== VK_KHR_buffer_device_address === + vkGetBufferDeviceAddressKHR = + PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; + vkGetBufferOpaqueCaptureAddressKHR = + PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); + if ( !vkGetBufferOpaqueCaptureAddress ) + vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; + vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) + vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; + + //=== VK_EXT_line_rasterization === + vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); + + //=== VK_EXT_host_query_reset === vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); - if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT; - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); - vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); + if ( !vkResetQueryPool ) + vkResetQueryPool = vkResetQueryPoolEXT; + + //=== VK_EXT_extended_dynamic_state === + vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); + vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); + vkCmdSetPrimitiveTopologyEXT = + PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); + vkCmdSetViewportWithCountEXT = + PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); + vkCmdSetScissorWithCountEXT = + PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); + vkCmdBindVertexBuffers2EXT = + PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); + vkCmdSetDepthTestEnableEXT = + PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); + vkCmdSetDepthWriteEnableEXT = + PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); + vkCmdSetDepthCompareOpEXT = + PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); + vkCmdSetDepthBoundsTestEnableEXT = + PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); + vkCmdSetStencilTestEnableEXT = + PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); + vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); + + //=== VK_KHR_deferred_host_operations === + vkCreateDeferredOperationKHR = + PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); + vkDestroyDeferredOperationKHR = + PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); + vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( + vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); + vkGetDeferredOperationResultKHR = + PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); + vkDeferredOperationJoinKHR = + PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); + + //=== VK_KHR_pipeline_executable_properties === + vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); + vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); + vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); + + //=== VK_NV_device_generated_commands === + vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( + vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); + vkCmdPreprocessGeneratedCommandsNV = + PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); + vkCmdExecuteGeneratedCommandsNV = + PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); + vkCmdBindPipelineShaderGroupNV = + PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); + vkCreateIndirectCommandsLayoutNV = + PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); + vkDestroyIndirectCommandsLayoutNV = + PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); + + //=== VK_EXT_private_data === + vkCreatePrivateDataSlotEXT = + PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); + vkDestroyPrivateDataSlotEXT = + PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) ); - vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); - if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR; - vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); - if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR; - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); - if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; - vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); - vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); - if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR; - vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); - } - }; - -} // namespace VULKAN_HPP_NAMESPACE + vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_encode_queue === + vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_KHR_synchronization2 === + vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) ); + vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) ); + vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) ); + vkCmdPipelineBarrier2KHR = + PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) ); + vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) ); + vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) ); + vkCmdWriteBufferMarker2AMD = + PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) ); + vkGetQueueCheckpointData2NV = + PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) ); + + //=== VK_NV_fragment_shading_rate_enums === + vkCmdSetFragmentShadingRateEnumNV = + PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); + + //=== VK_KHR_copy_commands2 === + vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); + vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); + vkCmdCopyBufferToImage2KHR = + PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); + vkCmdCopyImageToBuffer2KHR = + PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); + vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); + vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); + + //=== VK_KHR_ray_tracing_pipeline === + vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); + vkCreateRayTracingPipelinesKHR = + PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); + vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); + vkCmdTraceRaysIndirectKHR = + PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); + vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); + vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( + vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); + + //=== VK_EXT_vertex_input_dynamic_state === + vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) ); + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_memory === + vkGetMemoryZirconHandleFUCHSIA = + PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) ); + vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( + vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_external_semaphore === + vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( + vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); + vkGetSemaphoreZirconHandleFUCHSIA = + PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + vkCreateBufferCollectionFUCHSIA = + PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) ); + vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( + vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) ); + vkSetBufferCollectionBufferConstraintsFUCHSIA = PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( + vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) ); + vkDestroyBufferCollectionFUCHSIA = + PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) ); + vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA( + vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + //=== VK_HUAWEI_subpass_shading === + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) ); + vkCmdSubpassShadingHUAWEI = + PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) ); + + //=== VK_HUAWEI_invocation_mask === + vkCmdBindInvocationMaskHUAWEI = + PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) ); + + //=== VK_NV_external_memory_rdma === + vkGetMemoryRemoteAddressNV = + PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) ); + + //=== VK_EXT_extended_dynamic_state2 === + vkCmdSetPatchControlPointsEXT = + PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) ); + vkCmdSetRasterizerDiscardEnableEXT = + PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) ); + vkCmdSetDepthBiasEnableEXT = + PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) ); + vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) ); + vkCmdSetPrimitiveRestartEnableEXT = + PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) ); + + //=== VK_EXT_color_write_enable === + vkCmdSetColorWriteEnableEXT = + PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) ); + + //=== VK_EXT_multi_draw === + vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) ); + vkCmdDrawMultiIndexedEXT = + PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) ); + + //=== VK_EXT_pageable_device_local_memory === + vkSetDeviceMemoryPriorityEXT = + PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) ); + + //=== VK_KHR_maintenance4 === + vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirementsKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) ); + vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirementsKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) ); + vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) ); + } + }; +} // namespace VULKAN_HPP_NAMESPACE namespace std { - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(accelerationStructureKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureNV const& accelerationStructureNV) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(accelerationStructureNV)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(buffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(bufferView)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(commandBuffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(commandPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(debugReportCallbackEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(debugUtilsMessengerEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(deferredOperationKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorSet)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorSetLayout)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorUpdateTemplate)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(device)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(deviceMemory)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(displayKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(displayModeKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(event)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(fence)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(framebuffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(image)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(imageView)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(indirectCommandsLayoutNV)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(instance)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(performanceConfigurationINTEL)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(physicalDevice)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipeline)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipelineCache)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipelineLayout)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(privateDataSlotEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(queryPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(queue)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(renderPass)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(sampler)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(samplerYcbcrConversion)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(semaphore)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(shaderModule)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(surfaceKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(swapchainKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(validationCacheEXT)); - } - }; -} // namespace std + //======================= + //=== HASH structures === + //======================= + + template + struct hash> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Flags const & flags ) const VULKAN_HPP_NOEXCEPT + { + return std::hash::type>{}( + static_cast::type>( flags ) ); + } + }; + + //=== VK_VERSION_1_0 === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( instance ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( physicalDevice ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( device ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( queue ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( deviceMemory ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( fence ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( semaphore ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( event ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( queryPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( buffer ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( bufferView ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( image ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( imageView ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( shaderModule ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipelineCache ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipeline ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipelineLayout ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( sampler ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorSet ) ); + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorSetLayout ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Framebuffer const & framebuffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( framebuffer ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( renderPass ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( commandPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( commandBuffer ) ); + } + }; + + //=== VK_VERSION_1_1 === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( samplerYcbcrConversion ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( descriptorUpdateTemplate ) ); + } + }; + + //=== VK_KHR_surface === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( surfaceKHR ) ); + } + }; + + //=== VK_KHR_swapchain === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( swapchainKHR ) ); + } + }; + + //=== VK_KHR_display === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( displayKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( displayModeKHR ) ); + } + }; + + //=== VK_EXT_debug_report === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( debugReportCallbackEXT ) ); + } + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_KHR_video_queue === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( videoSessionKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( videoSessionParametersKHR ) ); + } + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + //=== VK_NVX_binary_import === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( cuModuleNVX ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( cuFunctionNVX ) ); + } + }; + + //=== VK_EXT_debug_utils === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( debugUtilsMessengerEXT ) ); + } + }; + + //=== VK_KHR_acceleration_structure === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( accelerationStructureKHR ) ); + } + }; + + //=== VK_EXT_validation_cache === + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( validationCacheEXT ) ); + } + }; + + //=== VK_NV_ray_tracing === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( accelerationStructureNV ) ); + } + }; + + //=== VK_INTEL_performance_query === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL ) + const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( performanceConfigurationINTEL ) ); + } + }; + + //=== VK_KHR_deferred_host_operations === + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( deferredOperationKHR ) ); + } + }; + + //=== VK_NV_device_generated_commands === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( indirectCommandsLayoutNV ) ); + } + }; + + //=== VK_EXT_private_data === + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & privateDataSlotEXT ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( privateDataSlotEXT ) ); + } + }; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + //=== VK_FUCHSIA_buffer_collection === + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & bufferCollectionFUCHSIA ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( bufferCollectionFUCHSIA ) ); + } + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +} // namespace std #endif diff --git a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h --- a/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h +++ b/gfx/angle/checkout/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h @@ -23,39 +23,75 @@ #include "vk_platform.h" #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; -#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) +#ifndef VK_USE_64_BIT_PTR_DEFINES + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #define VK_USE_64_BIT_PTR_DEFINES 1 + #else + #define VK_USE_64_BIT_PTR_DEFINES 0 + #endif +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + #define VK_NULL_HANDLE nullptr + #else + #define VK_NULL_HANDLE ((void*)0) + #endif + #else + #define VK_NULL_HANDLE 0ULL + #endif +#endif +#ifndef VK_NULL_HANDLE + #define VK_NULL_HANDLE 0 +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else + #else #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif -#endif - + #endif +#endif + +// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. #define VK_MAKE_VERSION(major, minor, patch) \ ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 +#define VK_MAKE_API_VERSION(variant, major, minor, patch) \ + ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) + // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 172 +#define VK_HEADER_VERSION 197 // Complete version of this file -#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) - +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION) + +// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) -#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) - -#define VK_NULL_HANDLE 0 - + +// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) + +// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. +#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) + +#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) +#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) +#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) +#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) typedef uint32_t VkBool32; typedef uint64_t VkDeviceAddress; typedef uint64_t VkDeviceSize; typedef uint32_t VkFlags; typedef uint32_t VkSampleMask; @@ -82,25 +118,25 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) +#define VK_UUID_SIZE 16U #define VK_ATTACHMENT_UNUSED (~0U) -#define VK_FALSE 0 -#define VK_LOD_CLAMP_NONE 1000.0f +#define VK_FALSE 0U +#define VK_LOD_CLAMP_NONE 1000.0F #define VK_QUEUE_FAMILY_IGNORED (~0U) #define VK_REMAINING_ARRAY_LAYERS (~0U) #define VK_REMAINING_MIP_LEVELS (~0U) #define VK_SUBPASS_EXTERNAL (~0U) -#define VK_TRUE 1 +#define VK_TRUE 1U #define VK_WHOLE_SIZE (~0ULL) -#define VK_MAX_MEMORY_TYPES 32 -#define VK_MAX_MEMORY_HEAPS 16 -#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 -#define VK_UUID_SIZE 16 -#define VK_MAX_EXTENSION_NAME_SIZE 256 -#define VK_MAX_DESCRIPTION_SIZE 256 +#define VK_MAX_MEMORY_TYPES 32U +#define VK_MAX_MEMORY_HEAPS 16U +#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U +#define VK_MAX_EXTENSION_NAME_SIZE 256U +#define VK_MAX_DESCRIPTION_SIZE 256U typedef enum VkResult { VK_SUCCESS = 0, VK_NOT_READY = 1, VK_TIMEOUT = 2, @@ -332,19 +368,163 @@ VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, +#endif VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000, + VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001, + VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002, VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT = 1000039001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT = 1000040001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007, +#endif VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = 1000044000, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = 1000044001, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = 1000044002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = 1000044003, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = 1000044004, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, @@ -422,10 +602,11 @@ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, @@ -464,10 +645,11 @@ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000, #endif @@ -499,10 +681,31 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT = 1000187001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006, +#endif VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, @@ -550,18 +753,22 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000, VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002, VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, @@ -574,19 +781,24 @@ VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000, VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001, VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004, VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005, VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, @@ -596,14 +808,22 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000, + VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000, VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001, VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001, +#endif VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000, VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001, VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002, @@ -612,14 +832,19 @@ VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005, VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = 1000325000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000, @@ -633,17 +858,60 @@ VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000, VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, + VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, + VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, + VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, + VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003, + VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005, + VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007, + VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009, + VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000, + VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, + VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000, + VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = 1000413001, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = 1000413002, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = 1000413003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, @@ -771,18 +1039,36 @@ VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, +#endif VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, - VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, + VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, +#endif VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000, VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF @@ -820,38 +1106,47 @@ VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, +#endif + VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000, + VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001, VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000, + VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } VkObjectType; +typedef enum VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + typedef enum VkVendorId { VK_VENDOR_ID_VIV = 0x10001, VK_VENDOR_ID_VSI = 0x10002, VK_VENDOR_ID_KAZAN = 0x10003, VK_VENDOR_ID_CODEPLAY = 0x10004, VK_VENDOR_ID_MESA = 0x10005, VK_VENDOR_ID_POCL = 0x10006, VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF } VkVendorId; -typedef enum VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; - typedef enum VkSystemAllocationScope { VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, @@ -1104,10 +1399,14 @@ VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003, VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000, VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001, VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, @@ -1170,16 +1469,22 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, +#endif VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000, +#endif VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF } VkQueryType; typedef enum VkSharingMode { VK_SHARING_MODE_EXCLUSIVE = 0, @@ -1328,10 +1633,17 @@ VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010, VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011, + VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, + VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002, + VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004, + VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF } VkDynamicState; typedef enum VkFrontFace { VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, @@ -1457,24 +1769,28 @@ typedef enum VkAttachmentLoadOp { VK_ATTACHMENT_LOAD_OP_LOAD = 0, VK_ATTACHMENT_LOAD_OP_CLEAR = 1, VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, + VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000, VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentLoadOp; typedef enum VkAttachmentStoreOp { VK_ATTACHMENT_STORE_OP_STORE = 0, VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, - VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE_KHR = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE_KHR, + VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE_KHR, VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentStoreOp; typedef enum VkPipelineBindPoint { VK_PIPELINE_BIND_POINT_GRAPHICS = 0, VK_PIPELINE_BIND_POINT_COMPUTE = 1, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, + VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF } VkPipelineBindPoint; typedef enum VkCommandBufferLevel { @@ -1521,18 +1837,18 @@ VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, - VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, VK_ACCESS_NONE_KHR = 0, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, - VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkAccessFlagBits; typedef VkFlags VkAccessFlags; typedef enum VkImageAspectFlagBits { @@ -1577,13 +1893,25 @@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, +#endif VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000, +#endif VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, @@ -1642,13 +1970,32 @@ VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, - VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, +#endif VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, - VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, +#endif + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; typedef VkFlags VkImageUsageFlags; typedef VkFlags VkInstanceCreateFlags; @@ -1667,20 +2014,27 @@ VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; typedef enum VkQueueFlagBits { VK_QUEUE_GRAPHICS_BIT = 0x00000001, VK_QUEUE_COMPUTE_BIT = 0x00000002, VK_QUEUE_TRANSFER_BIT = 0x00000004, VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, VK_QUEUE_PROTECTED_BIT = 0x00000010, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, +#endif VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueueFlagBits; typedef VkFlags VkQueueFlags; typedef VkFlags VkDeviceCreateFlags; @@ -1710,19 +2064,19 @@ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, - VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, VK_PIPELINE_STAGE_NONE_KHR = 0, + VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, - VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; typedef VkFlags VkMemoryMapFlags; @@ -1773,10 +2127,13 @@ typedef enum VkQueryResultFlagBits { VK_QUERY_RESULT_64_BIT = 0x00000001, VK_QUERY_RESULT_WAIT_BIT = 0x00000002, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, +#endif VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryResultFlagBits; typedef VkFlags VkQueryResultFlags; typedef enum VkBufferCreateFlagBits { @@ -1800,16 +2157,28 @@ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, +#endif VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000, +#endif VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferUsageFlagBits; @@ -1820,14 +2189,10 @@ VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; - -typedef enum VkShaderModuleCreateFlagBits { - VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkShaderModuleCreateFlagBits; typedef VkFlags VkShaderModuleCreateFlags; typedef enum VkPipelineCacheCreateFlagBits { VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001, VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -1847,10 +2212,12 @@ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, @@ -1861,10 +2228,11 @@ VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100, VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200, + VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineCreateFlagBits; @@ -1892,10 +2260,11 @@ VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, @@ -2125,10 +2494,18 @@ const void* pNext; VkAccessFlags srcAccessMask; VkAccessFlags dstAccessMask; } VkMemoryBarrier; +typedef struct VkPipelineCacheHeaderVersionOne { + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; +} VkPipelineCacheHeaderVersionOne; + typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); @@ -4082,17 +4459,17 @@ #endif #define VK_VERSION_1_1 1 // Vulkan 1.1 version number -#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) -#define VK_MAX_DEVICE_GROUP_SIZE 32 -#define VK_LUID_SIZE 8 -#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) +#define VK_MAX_DEVICE_GROUP_SIZE 32U +#define VK_LUID_SIZE 8U +#define VK_QUEUE_FAMILY_EXTERNAL (~1U) typedef enum VkPointClippingBehavior { VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, @@ -4195,10 +4572,12 @@ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, @@ -4259,10 +4638,11 @@ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, @@ -4944,14 +5324,14 @@ #endif #define VK_VERSION_1_2 1 // Vulkan 1.2 version number -#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 - -#define VK_MAX_DRIVER_NAME_SIZE 256 -#define VK_MAX_DRIVER_INFO_SIZE 256 +#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 + +#define VK_MAX_DRIVER_NAME_SIZE 256U +#define VK_MAX_DRIVER_INFO_SIZE 256U typedef enum VkDriverId { VK_DRIVER_ID_AMD_PROPRIETARY = 1, VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, VK_DRIVER_ID_MESA_RADV = 3, @@ -4964,10 +5344,16 @@ VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, VK_DRIVER_ID_GGP_PROPRIETARY = 11, VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, VK_DRIVER_ID_MESA_LLVMPIPE = 13, VK_DRIVER_ID_MOLTENVK = 14, + VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, + VK_DRIVER_ID_JUICE_PROPRIETARY = 16, + VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17, + VK_DRIVER_ID_MESA_TURNIP = 18, + VK_DRIVER_ID_MESA_V3DV = 19, + VK_DRIVER_ID_MESA_PANVK = 20, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY, VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, @@ -5877,11 +6263,11 @@ uint32_t deviceMask; } VkAcquireNextImageInfoKHR; typedef struct VkDeviceGroupPresentCapabilitiesKHR { VkStructureType sType; - const void* pNext; + void* pNext; uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; VkDeviceGroupPresentModeFlagsKHR modes; } VkDeviceGroupPresentCapabilitiesKHR; typedef struct VkDeviceGroupPresentInfoKHR { @@ -6111,10 +6497,120 @@ #define VK_KHR_sampler_mirror_clamp_to_edge 1 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" +#define VK_KHR_dynamic_rendering 1 +#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 +#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering" + +typedef enum VkRenderingFlagBitsKHR { + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 0x00000001, + VK_RENDERING_SUSPENDING_BIT_KHR = 0x00000002, + VK_RENDERING_RESUMING_BIT_KHR = 0x00000004, + VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkRenderingFlagBitsKHR; +typedef VkFlags VkRenderingFlagsKHR; +typedef struct VkRenderingAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkResolveModeFlagBits resolveMode; + VkImageView resolveImageView; + VkImageLayout resolveImageLayout; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkClearValue clearValue; +} VkRenderingAttachmentInfoKHR; + +typedef struct VkRenderingInfoKHR { + VkStructureType sType; + const void* pNext; + VkRenderingFlagsKHR flags; + VkRect2D renderArea; + uint32_t layerCount; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkRenderingAttachmentInfoKHR* pColorAttachments; + const VkRenderingAttachmentInfoKHR* pDepthAttachment; + const VkRenderingAttachmentInfoKHR* pStencilAttachment; +} VkRenderingInfoKHR; + +typedef struct VkPipelineRenderingCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkPipelineRenderingCreateInfoKHR; + +typedef struct VkPhysicalDeviceDynamicRenderingFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRendering; +} VkPhysicalDeviceDynamicRenderingFeaturesKHR; + +typedef struct VkCommandBufferInheritanceRenderingInfoKHR { + VkStructureType sType; + const void* pNext; + VkRenderingFlagsKHR flags; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; + VkSampleCountFlagBits rasterizationSamples; +} VkCommandBufferInheritanceRenderingInfoKHR; + +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; + +typedef struct VkAttachmentSampleCountInfoAMD { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits* pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; + +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + +typedef struct VkMultiviewPerViewAttributesInfoNVX { + VkStructureType sType; + const void* pNext; + VkBool32 perViewAttributes; + VkBool32 perViewAttributesPositionXOnly; +} VkMultiviewPerViewAttributesInfoNVX; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR( + VkCommandBuffer commandBuffer, + const VkRenderingInfoKHR* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR( + VkCommandBuffer commandBuffer); +#endif + + #define VK_KHR_multiview 1 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; @@ -6245,12 +6741,14 @@ #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" #define VK_KHR_maintenance1 1 -#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 -#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION +#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); #ifndef VK_NO_PROTOTYPES @@ -6480,11 +6978,11 @@ typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; #define VK_KHR_incremental_present 1 -#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 +#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" typedef struct VkRectLayerKHR { VkOffset2D offset; VkExtent2D extent; uint32_t layer; @@ -6752,20 +7250,20 @@ VkBool32 allowCommandBufferQueryCopies; } VkPhysicalDevicePerformanceQueryPropertiesKHR; typedef struct VkPerformanceCounterKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkPerformanceCounterUnitKHR unit; VkPerformanceCounterScopeKHR scope; VkPerformanceCounterStorageKHR storage; uint8_t uuid[VK_UUID_SIZE]; } VkPerformanceCounterKHR; typedef struct VkPerformanceCounterDescriptionKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkPerformanceCounterDescriptionFlagsKHR flags; char name[VK_MAX_DESCRIPTION_SIZE]; char category[VK_MAX_DESCRIPTION_SIZE]; char description[VK_MAX_DESCRIPTION_SIZE]; } VkPerformanceCounterDescriptionKHR; @@ -6826,12 +7324,14 @@ VkDevice device); #endif #define VK_KHR_maintenance2 1 -#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION +#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; @@ -7080,12 +7580,14 @@ const VkBindImageMemoryInfo* pBindInfos); #endif #define VK_KHR_maintenance3 1 -#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION +#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); @@ -7257,11 +7759,11 @@ } VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; #define VK_KHR_fragment_shading_rate 1 -#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" typedef enum VkFragmentShadingRateCombinerOpKHR { VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0, VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1, @@ -7362,10 +7864,30 @@ typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; +#define VK_KHR_present_wait 1 +#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1 +#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait" +typedef struct VkPhysicalDevicePresentWaitFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait; +} VkPhysicalDevicePresentWaitFeaturesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout); +#endif + + #define VK_KHR_uniform_buffer_standard_layout 1 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; @@ -7526,10 +8048,56 @@ uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); #endif +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + #define VK_KHR_pipeline_library 1 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" typedef struct VkPipelineLibraryCreateInfoKHR { VkStructureType sType; @@ -7543,94 +8111,135 @@ #define VK_KHR_shader_non_semantic_info 1 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" +#define VK_KHR_present_id 1 +#define VK_KHR_PRESENT_ID_SPEC_VERSION 1 +#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id" +typedef struct VkPresentIdKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentIdKHR; + +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; + + + #define VK_KHR_synchronization2 1 typedef uint64_t VkFlags64; #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" typedef VkFlags64 VkPipelineStageFlags2KHR; -// Flag bits for VkPipelineStageFlags2KHR -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000; -static const VkPipelineStageFlags2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000; +// Flag bits for VkPipelineStageFlagBits2KHR +typedef VkFlags64 VkPipelineStageFlagBits2KHR; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; +#endif +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL; typedef VkFlags64 VkAccessFlags2KHR; -// Flag bits for VkAccessFlags2KHR -static const VkAccessFlags2KHR VK_ACCESS_2_NONE_KHR = 0; -static const VkAccessFlags2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001; -static const VkAccessFlags2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002; -static const VkAccessFlags2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004; -static const VkAccessFlags2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008; -static const VkAccessFlags2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040; -static const VkAccessFlags2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080; -static const VkAccessFlags2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100; -static const VkAccessFlags2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200; -static const VkAccessFlags2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400; -static const VkAccessFlags2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800; -static const VkAccessFlags2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000; -static const VkAccessFlags2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000; -static const VkAccessFlags2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000; -static const VkAccessFlags2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000; -static const VkAccessFlags2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; -static const VkAccessFlags2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000; -static const VkAccessFlags2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000; -static const VkAccessFlags2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000; -static const VkAccessFlags2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000; -static const VkAccessFlags2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000; -static const VkAccessFlags2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000; -static const VkAccessFlags2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000; -static const VkAccessFlags2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000; -static const VkAccessFlags2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000; -static const VkAccessFlags2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000; -static const VkAccessFlags2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000; -static const VkAccessFlags2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000; -static const VkAccessFlags2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000; -static const VkAccessFlags2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000; +// Flag bits for VkAccessFlagBits2KHR +typedef VkFlags64 VkAccessFlagBits2KHR; +static const VkAccessFlagBits2KHR VK_ACCESS_2_NONE_KHR = 0ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; +#endif +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL; typedef enum VkSubmitFlagBitsKHR { VK_SUBMIT_PROTECTED_BIT_KHR = 0x00000001, VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF @@ -7787,10 +8396,21 @@ uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); #endif +#define VK_KHR_shader_subgroup_uniform_control_flow 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow" +typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupUniformControlFlow; +} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR; + + + #define VK_KHR_zero_initialize_workgroup_memory 1 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory" typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR { VkStructureType sType; @@ -7960,13 +8580,124 @@ VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo); #endif +#define VK_KHR_format_feature_flags2 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2" +typedef VkFlags64 VkFormatFeatureFlags2KHR; + +// Flag bits for VkFormatFeatureFlagBits2KHR +typedef VkFlags64 VkFormatFeatureFlagBits2KHR; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; +#endif +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL; +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL; +#endif + +typedef struct VkFormatProperties3KHR { + VkStructureType sType; + void* pNext; + VkFormatFeatureFlags2KHR linearTilingFeatures; + VkFormatFeatureFlags2KHR optimalTilingFeatures; + VkFormatFeatureFlags2KHR bufferFeatures; +} VkFormatProperties3KHR; + + + +#define VK_KHR_maintenance4 1 +#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" +typedef struct VkPhysicalDeviceMaintenance4FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 maintenance4; +} VkPhysicalDeviceMaintenance4FeaturesKHR; + +typedef struct VkPhysicalDeviceMaintenance4PropertiesKHR { + VkStructureType sType; + void* pNext; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceMaintenance4PropertiesKHR; + +typedef struct VkDeviceBufferMemoryRequirementsKHR { + VkStructureType sType; + const void* pNext; + const VkBufferCreateInfo* pCreateInfo; +} VkDeviceBufferMemoryRequirementsKHR; + +typedef struct VkDeviceImageMemoryRequirementsKHR { + VkStructureType sType; + const void* pNext; + const VkImageCreateInfo* pCreateInfo; + VkImageAspectFlagBits planeAspect; +} VkDeviceImageMemoryRequirementsKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirementsKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirementsKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirementsKHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR( + VkDevice device, + const VkDeviceBufferMemoryRequirementsKHR* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirementsKHR* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirementsKHR* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, @@ -8000,12 +8731,15 @@ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000, + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF @@ -8278,10 +9012,81 @@ uint32_t counterOffset, uint32_t vertexStride); #endif +#define VK_NVX_binary_import 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) +#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1 +#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import" +typedef struct VkCuModuleCreateInfoNVX { + VkStructureType sType; + const void* pNext; + size_t dataSize; + const void* pData; +} VkCuModuleCreateInfoNVX; + +typedef struct VkCuFunctionCreateInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuModuleNVX module; + const char* pName; +} VkCuFunctionCreateInfoNVX; + +typedef struct VkCuLaunchInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuFunctionNVX function; + uint32_t gridDimX; + uint32_t gridDimY; + uint32_t gridDimZ; + uint32_t blockDimX; + uint32_t blockDimY; + uint32_t blockDimZ; + uint32_t sharedMemBytes; + size_t paramCount; + const void* const * pParams; + size_t extraCount; + const void* const * pExtras; +} VkCuLaunchInfoNVX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule); +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction); +typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX( + VkDevice device, + const VkCuModuleCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuModuleNVX* pModule); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX( + VkDevice device, + const VkCuFunctionCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuFunctionNVX* pFunction); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX( + VkDevice device, + VkCuModuleNVX module, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX( + VkDevice device, + VkCuFunctionNVX function, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX( + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); +#endif + + #define VK_NVX_image_view_handle 1 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" typedef struct VkImageViewHandleInfoNVX { VkStructureType sType; @@ -8790,12 +9595,14 @@ #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" #define VK_NV_viewport_array2 1 -#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION +#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME #define VK_NVX_multiview_per_view_attributes 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" @@ -8973,11 +9780,11 @@ #define VK_EXT_queue_family_foreign 1 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" -#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) +#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U) #define VK_EXT_debug_utils 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 @@ -9361,11 +10168,11 @@ #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" #define VK_EXT_image_drm_format_modifier 1 -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" typedef struct VkDrmFormatModifierPropertiesEXT { uint64_t drmFormatModifier; uint32_t drmFormatModifierPlaneCount; VkFormatFeatureFlags drmFormatModifierTilingFeatures; @@ -9406,10 +10213,23 @@ VkStructureType sType; void* pNext; uint64_t drmFormatModifier; } VkImageDrmFormatModifierPropertiesEXT; +typedef struct VkDrmFormatModifierProperties2EXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags2KHR drmFormatModifierTilingFeatures; +} VkDrmFormatModifierProperties2EXT; + +typedef struct VkDrmFormatModifierPropertiesList2EXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesList2EXT; + typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, @@ -9670,13 +10490,14 @@ typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; typedef enum VkGeometryInstanceFlagBitsKHR { VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002, + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF @@ -9691,10 +10512,11 @@ VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, @@ -10086,11 +10908,11 @@ } VkPipelineCompilerControlCreateInfoAMD; #define VK_EXT_calibrated_timestamps 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" typedef enum VkTimeDomainEXT { VK_TIME_DOMAIN_DEVICE_EXT = 0, VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, @@ -10565,11 +11387,11 @@ VkBool32 localDimmingEnable); #endif #define VK_EXT_fragment_density_map 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { VkStructureType sType; void* pNext; VkBool32 fragmentDensityMap; @@ -10599,12 +11421,14 @@ typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; #define VK_GOOGLE_hlsl_functionality1 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME #define VK_GOOGLE_decorate_string 1 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" @@ -10788,11 +11612,11 @@ typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; #define VK_EXT_validation_features 1 -#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 4 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" typedef enum VkValidationFeatureEnableEXT { VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, @@ -10808,10 +11632,11 @@ VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7, VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationFeatureDisableEXT; typedef struct VkValidationFeaturesEXT { VkStructureType sType; const void* pNext; @@ -10949,10 +11774,41 @@ VkBool32 ycbcrImageArrays; } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; +#define VK_EXT_provoking_vertex 1 +#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1 +#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex" + +typedef enum VkProvokingVertexModeEXT { + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0, + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1, + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkProvokingVertexModeEXT; +typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexLast; + VkBool32 transformFeedbackPreservesProvokingVertex; +} VkPhysicalDeviceProvokingVertexFeaturesEXT; + +typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexModePerPipeline; + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; +} VkPhysicalDeviceProvokingVertexPropertiesEXT; + +typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkProvokingVertexModeEXT provokingVertexMode; +} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; + + + #define VK_EXT_headless_surface 1 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; typedef struct VkHeadlessSurfaceCreateInfoEXT { @@ -11150,10 +12006,32 @@ VkStencilOp depthFailOp, VkCompareOp compareOp); #endif +#define VK_EXT_shader_atomic_float2 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2" +typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat16Atomics; + VkBool32 shaderBufferFloat16AtomicAdd; + VkBool32 shaderBufferFloat16AtomicMinMax; + VkBool32 shaderBufferFloat32AtomicMinMax; + VkBool32 shaderBufferFloat64AtomicMinMax; + VkBool32 shaderSharedFloat16Atomics; + VkBool32 shaderSharedFloat16AtomicAdd; + VkBool32 shaderSharedFloat16AtomicMinMax; + VkBool32 shaderSharedFloat32AtomicMinMax; + VkBool32 shaderSharedFloat64AtomicMinMax; + VkBool32 shaderImageFloat32AtomicMinMax; + VkBool32 sparseImageFloat32AtomicMinMax; +} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; + + + #define VK_EXT_shader_demote_to_helper_invocation 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { VkStructureType sType; @@ -11351,10 +12229,29 @@ VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); #endif +#define VK_NV_inherited_viewport_scissor 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor" +typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 inheritedViewportScissor2D; +} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; + +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport* pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; + + + #define VK_EXT_texel_buffer_alignment 1 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { VkStructureType sType; @@ -11372,11 +12269,11 @@ } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; #define VK_QCOM_render_pass_transform 1 -#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1 +#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform" typedef struct VkRenderPassTransformBeginInfoQCOM { VkStructureType sType; void* pNext; VkSurfaceTransformFlagBitsKHR transform; @@ -11410,11 +12307,11 @@ VkBool32 deviceMemoryReport; } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; typedef struct VkDeviceMemoryReportCallbackDataEXT { VkStructureType sType; - const void* pNext; + void* pNext; VkDeviceMemoryReportFlagsEXT flags; VkDeviceMemoryReportEventTypeEXT type; uint64_t memoryObjectId; VkDeviceSize size; VkObjectType objectType; @@ -11434,10 +12331,30 @@ void* pUserData; } VkDeviceDeviceMemoryReportCreateInfoEXT; +#define VK_EXT_acquire_drm_display 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + uint32_t connectorId, + VkDisplayKHR* display); +#endif + + #define VK_EXT_robustness2 1 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { VkStructureType sType; @@ -11581,12 +12498,12 @@ } VkDeviceDiagnosticsConfigCreateInfoNV; #define VK_QCOM_render_pass_store_ops 1 -#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2 -#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" +#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2 +#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" #define VK_NV_fragment_shading_rate_enums 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" @@ -11642,10 +12559,111 @@ VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); #endif +#define VK_NV_ray_tracing_motion_blur 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur" + +typedef enum VkAccelerationStructureMotionInstanceTypeNV { + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureMotionInstanceTypeNV; +typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; +typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; +typedef union VkDeviceOrHostAddressConstKHR { + VkDeviceAddress deviceAddress; + const void* hostAddress; +} VkDeviceOrHostAddressConstKHR; + +typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR vertexData; +} VkAccelerationStructureGeometryMotionTrianglesDataNV; + +typedef struct VkAccelerationStructureMotionInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t maxInstances; + VkAccelerationStructureMotionInfoFlagsNV flags; +} VkAccelerationStructureMotionInfoNV; + +typedef struct VkAccelerationStructureMatrixMotionInstanceNV { + VkTransformMatrixKHR transformT0; + VkTransformMatrixKHR transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureMatrixMotionInstanceNV; + +typedef struct VkSRTDataNV { + float sx; + float a; + float b; + float pvx; + float sy; + float c; + float pvy; + float sz; + float pvz; + float qx; + float qy; + float qz; + float qw; + float tx; + float ty; + float tz; +} VkSRTDataNV; + +typedef struct VkAccelerationStructureSRTMotionInstanceNV { + VkSRTDataNV transformT0; + VkSRTDataNV transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureSRTMotionInstanceNV; + +typedef union VkAccelerationStructureMotionInstanceDataNV { + VkAccelerationStructureInstanceKHR staticInstance; + VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance; + VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance; +} VkAccelerationStructureMotionInstanceDataNV; + +typedef struct VkAccelerationStructureMotionInstanceNV { + VkAccelerationStructureMotionInstanceTypeNV type; + VkAccelerationStructureMotionInstanceFlagsNV flags; + VkAccelerationStructureMotionInstanceDataNV data; +} VkAccelerationStructureMotionInstanceNV; + +typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingMotionBlur; + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; +} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; + + + +#define VK_EXT_ycbcr_2plane_444_formats 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcr2plane444Formats; +} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + + + #define VK_EXT_fragment_density_map2 1 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { VkStructureType sType; @@ -11663,11 +12681,11 @@ } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; #define VK_QCOM_rotated_copy_commands 1 -#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 0 +#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands" typedef struct VkCopyCommandTransformInfoQCOM { VkStructureType sType; const void* pNext; VkSurfaceTransformFlagBitsKHR transform; @@ -11696,10 +12714,21 @@ VkBool32 formatA4B4G4R4; } VkPhysicalDevice4444FormatsFeaturesEXT; +#define VK_EXT_rgba10x6_formats 1 +#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1 +#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats" +typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatRgba10x6WithoutYCbCrSampler; +} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; + + + #define VK_NV_acquire_winrt_display 1 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); @@ -11737,13 +12766,339 @@ const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists; } VkMutableDescriptorTypeCreateInfoVALVE; +#define VK_EXT_vertex_input_dynamic_state 1 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state" +typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; + +typedef struct VkVertexInputBindingDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; + +typedef struct VkVertexInputAttributeDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( + VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); +#endif + + +#define VK_EXT_physical_device_drm 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm" +typedef struct VkPhysicalDeviceDrmPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hasPrimary; + VkBool32 hasRender; + int64_t primaryMajor; + int64_t primaryMinor; + int64_t renderMajor; + int64_t renderMinor; +} VkPhysicalDeviceDrmPropertiesEXT; + + + +#define VK_EXT_primitive_topology_list_restart 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart" +typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitiveTopologyListRestart; + VkBool32 primitiveTopologyPatchListRestart; +} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; + + + +#define VK_HUAWEI_subpass_shading 1 +#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2 +#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading" +typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI { + VkStructureType sType; + void* pNext; + VkRenderPass renderPass; + uint32_t subpass; +} VkSubpassShadingPipelineCreateInfoHUAWEI; + +typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 subpassShading; +} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; + +typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; +} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; + +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); +typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + VkDevice device, + VkRenderPass renderpass, + VkExtent2D* pMaxWorkgroupSize); + +VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI( + VkCommandBuffer commandBuffer); +#endif + + +#define VK_HUAWEI_invocation_mask 1 +#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1 +#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask" +typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 invocationMask; +} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; + +typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); +#endif + + +#define VK_NV_external_memory_rdma 1 +typedef void* VkRemoteAddressNV; +#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma" +typedef struct VkMemoryGetRemoteAddressInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetRemoteAddressInfoNV; + +typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 externalMemoryRDMA; +} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( + VkDevice device, + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV* pAddress); +#endif + + +#define VK_EXT_extended_dynamic_state2 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" +typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState2; + VkBool32 extendedDynamicState2LogicOp; + VkBool32 extendedDynamicState2PatchControlPoints; +} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( + VkCommandBuffer commandBuffer, + uint32_t patchControlPoints); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( + VkCommandBuffer commandBuffer, + VkLogicOp logicOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); +#endif + + +#define VK_EXT_color_write_enable 1 +#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 +#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable" +typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; + +typedef struct VkPipelineColorWriteCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkBool32* pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32* pColorWriteEnables); +#endif + + +#define VK_EXT_global_priority_query 1 +#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT 16U +#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 +#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" +typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 globalPriorityQuery; +} VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + +typedef struct VkQueueFamilyGlobalPriorityPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t priorityCount; + VkQueueGlobalPriorityEXT priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_EXT]; +} VkQueueFamilyGlobalPriorityPropertiesEXT; + + + +#define VK_EXT_multi_draw 1 +#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1 +#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw" +typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 multiDraw; +} VkPhysicalDeviceMultiDrawFeaturesEXT; + +typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxMultiDrawCount; +} VkPhysicalDeviceMultiDrawPropertiesEXT; + +typedef struct VkMultiDrawInfoEXT { + uint32_t firstVertex; + uint32_t vertexCount; +} VkMultiDrawInfoEXT; + +typedef struct VkMultiDrawIndexedInfoEXT { + uint32_t firstIndex; + uint32_t indexCount; + int32_t vertexOffset; +} VkMultiDrawIndexedInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawInfoEXT* pVertexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawIndexedInfoEXT* pIndexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride, + const int32_t* pVertexOffset); +#endif + + +#define VK_EXT_load_store_op_none 1 +#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 +#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" + + +#define VK_EXT_border_color_swizzle 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle" +typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; + +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; + + + +#define VK_EXT_pageable_device_local_memory 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory" +typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( + VkDevice device, + VkDeviceMemory memory, + float priority); +#endif + + #define VK_KHR_acceleration_structure 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) -#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 11 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" typedef enum VkBuildAccelerationStructureModeKHR { VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0, VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1, @@ -11763,23 +13118,19 @@ VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF } VkAccelerationStructureCompatibilityKHR; typedef enum VkAccelerationStructureCreateFlagBitsKHR { VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004, VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkAccelerationStructureCreateFlagBitsKHR; typedef VkFlags VkAccelerationStructureCreateFlagsKHR; typedef union VkDeviceOrHostAddressKHR { VkDeviceAddress deviceAddress; void* hostAddress; } VkDeviceOrHostAddressKHR; -typedef union VkDeviceOrHostAddressConstKHR { - VkDeviceAddress deviceAddress; - const void* hostAddress; -} VkDeviceOrHostAddressConstKHR; - typedef struct VkAccelerationStructureBuildRangeInfoKHR { uint32_t primitiveCount; uint32_t primitiveOffset; uint32_t firstVertex; uint32_t transformOffset; diff --git a/gfx/angle/cherry_picks.txt b/gfx/angle/cherry_picks.txt --- a/gfx/angle/cherry_picks.txt +++ b/gfx/angle/cherry_picks.txt @@ -1,115 +1,12658 @@ -commit 23851a53779dfd3239b4cceb7f93df9ea6efb9c3 -Author: Jeff Gilbert -Date: Tue Sep 14 18:11:05 2021 -0700 - - If RoUninitialize iff SUCCEEDED(RoInitialize). - - S_FALSE is success, so `SUCCEEDED(result) || result == S_FALSE` == `SUCCEEDED(result)`. - RPC_E_CHANGED_MODE is an Error, so we should not call RoUninitialize in that case. - - Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1717151 - - Change-Id: Ia42fe38967425522964a4f27034e38e9292ab249 - -commit c79c27ff20b6a13441807d54ce2b8a487cc57d4a -Author: Jeff Gilbert -Date: Mon Jul 19 16:46:50 2021 -0700 - - Define ANGLE_IS_64_BIT_CPU in common/platform.h. - - This is more reliable and reduces reliance on build flags. - Vendoring into Firefox, it's not trivial to replicate build flags, - but C++-native checks always work. - - Bug: angleproject:6186 - Change-Id: Idafd4ef1954efbfa79eae86cddfaa8f2e3992296 - -commit 33ffc12336370c17ba8da02c8e1f0eeb44951a7b -Author: Jeff Gilbert -Date: Thu Jul 29 10:40:38 2021 -0700 - - Always include mac-only sources. - - Fixes build issues on mac until we can take b8d6f8aa93 instead. - - Change-Id: I4dafc86cdb167d23e8dd419ded9d0edfb3f76f3a - -commit 631763e48d2906e680112c79dd161522f553e0cc -Author: Jeff Gilbert -Date: Thu Jul 15 15:56:45 2021 -0700 - - Add missing header to build config. - -commit 5cf86083d48f3bae5a169d51e56b538afda56367 -Author: Jeff Gilbert -Date: Thu Feb 11 17:34:00 2021 -0800 - - Don't assert for non-sampleable non-ms sources in blitRenderbufferRect if we can CopySubResource. - - In Firefox, we can have a source from DirectComposition without - D3D11_BIND_SHADER_RESOURCE. This is fine so long as our formats etc - match enough to hit the CopySubResource path. - Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1692355 - -commit 400476a0b2e1ba6dfa8413375e20c15c2ec9188a -Author: Jeff Gilbert -Date: Wed Feb 3 18:50:38 2021 -0800 - - Add ANGLE_TRANSLATOR_ESSL_ONLY instead of using build system logic to choose. - - Build system logic is really hard to handle when vendoring into Gecko for Firefox. - -commit 406e1ed92a6fc4180257e65ec88398342a7015e7 -Author: Jeff Gilbert -Date: Mon Feb 1 17:35:56 2021 -0800 - - Build fixes needed by Gecko. - -commit d408f3f0f8d74427eef8a9200d29687629525502 -Author: Jeff Muizelaar -Date: Mon Nov 9 17:09:12 2020 -0500 - - Bug 1620075. Add a feature flag to allow ES3 on 10.0 devices. (#26) - - This lets us run WebRender on devices that only support D3D 10.0 - -commit 53f3a3515e4bcf626042cfe0bf445cca4e728cf1 -Author: Jeff Muizelaar -Date: Wed May 6 14:04:42 2020 -0400 - - Don't use ClearView if we previously used dual source blending on Intel gen6. (#22) - - Doing a ClearView after a dual source blend seems to cause a TDR on - Intel SandyBridge. Presumeably this is because the ClearView is - implemented as a regular draw and the driver doesn't properly set up the - state. - - If we detect that this is going to happen we fall back to the manual - draw call path. This lets us use ClearView most of the time still. - -commit 988c40cee12de022c9e7aa63d3d2de86d1310e1f -Author: Dzmitry Malyshau -Date: Thu Dec 5 13:02:14 2019 -0500 - - Restrict the slow texture upload workaround to 128bit formats. (#21) - - The workaround is slow for having a CPU-visible mirror of the texture, but that mirror is not properly recycled with regards to GPU usage, thus causing a CPU stall on update. - - Original reports were related to WebRender vertex texture updates that are RGBA32F and RGBA32U formats. Limiting the workaround to these formats would allow the affected platforms to upload regular texture data faster without stalls. - -commit 3a1d51f5784f13373f60e4138c80dcbebdab5524 -Author: Miko Mynttinen -Date: Tue Sep 3 18:54:54 2019 +0200 - - Disable debug layers - -Cherries picked -================================================================================ -Merge base from: origin/chromium/4515 - -commit 018f85dea11fd5e41725750c6958695a6b8e8409 +commit f4933235fb2c03b1d69f95624e97d159d1c78a1a +Author: Jamie Madill +Date: Tue Nov 9 14:02:08 2021 -0500 + + Vulkan: Fix edge case with changing base level. + + Bug: chromium:1267624 + Change-Id: I36b983fdbbb258454215abe827837517df5a5aff + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270971 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + (cherry picked from commit 0fcad6260a3e3943fb84657a3a7f488d1e155fb7) + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285444 + Reviewed-by: Jamie Madill + +commit f02b0f1c190702b7b1f98d5b4ec7732e408e2889 +Author: Shahbaz Youssefi +Date: Mon Nov 8 16:27:20 2021 -0500 + + M97: Fix invalidation of GL_FRAMEBUFFER invalidating READ FBO + + Per spec, GL_FRAMEBUFFER means GL_DRAW_FRAMEBUFFER for + glInvalidateFramebuffer. + + Bug: chromium:1267424 + Change-Id: I8c9ab61ecdbd4ccee4262dc8559b2feb02b4837c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266176 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270996 + Reviewed-by: Shahbaz Youssefi + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3271003 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276040 + +commit 00c5db3e59847ee46b0c068ead9f01f6d0a0fa3e +Author: Shahbaz Youssefi +Date: Tue Nov 9 00:26:13 2021 -0500 + + M97: Vulkan: Fix deferred clears vs invalidate + + In this scenario: + + - Clear color + - Invalidate depth + - Clear color + + The invalidate step flushed the deferred color clear, but the following + clear did not expect an open render pass without any draw calls in it. + + This change fixes this issue, while simultaneously optimizing invalidate + by making sure the clears accumulated during syncState() are redeferred + instead of flushed. + + This issue was discovered in + https://chromium-review.googlesource.com/c/angle/angle/+/3266176 where, + as part of an unrelated fix, an accidental render pass closure is + removed. + + Bug: chromium:1267424 + Change-Id: Icfc0a53dbf84e6339ee23960ed847444830054e6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266178 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270995 + Reviewed-by: Shahbaz Youssefi + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3271002 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276039 + +commit b79b2b1d26041600954090182fa41cc829e20dbf +Author: Shahbaz Youssefi +Date: Mon Nov 8 15:24:09 2021 -0500 + + M97: Sync framebuffer bindings in glInvalidateFramebuffer + + If a framebuffer binding change is followed by glInvalidateFramebuffer, + ANGLE was not syncing the framebuffer binding. + + - This means that invalidation was being done on the previous + framebuffer. + - Paired with deferred clears, this was causing ContextVk to start a + render pass on the previous, potentially deleted, framebuffer. + + Bug: chromium:1267027 + Change-Id: I092a0c8dd764db9e49258b694c970babb19cf24b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266175 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270994 + Reviewed-by: Shahbaz Youssefi + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3271001 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276038 + +commit 5805aa96af940456c564ce72d5ee92b94dfe70be +Author: Jamie Madill +Date: Thu Nov 4 13:22:47 2021 -0400 + + Reset cache in ProgramExecutable::updateActiveSamplers. + + This missing reset was causing incorrect state validation to + persist in a few instances. + + Bug: chromium:1266437 + Change-Id: I7ab47c81bf9f855e3ad75048f9d1aaefbc2291df + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262477 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + (cherry picked from commit 019ddad5932eb56b6bc185105de602aed9f45b40) + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265531 + Reviewed-by: Jamie Madill + +commit 8c9b8f03e0f3bfb58f2023231337db6d03b6fc84 +Author: Tim Van Patten +Date: Wed Nov 3 14:50:54 2021 -0600 + + Capture/Replay: Don't finish() destroyed Contexts + + If an app destroys a context, but keeps it current on a thread, ANGLE + will reset the context, but can't delete it. This can lead to a segfault + if ANGLE attempts to call Context::finish() on a destroyed context. + + To solve this, check if the context has been destroyed in + ShareGroup::finishAllContexts(). + + Bug: angleproject:6653 + Change-Id: Ib30e352ad6395e01f8fab0095cd6231dfb10d8ae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260726 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 45ffabd0b54e9090ad1c534d0c403fbfd4539294 +Author: Cody Northrop +Date: Thu Nov 4 09:45:03 2021 -0600 + + Skip world_cricket_championship_2 Intel Linux + + Timing out. + + Bug: angleproject:6657 + Change-Id: Ia4b6456adbffd41764ae2bccac6d1cf79f3b4fb6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262032 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 73da16481a196c1a12c78c76c15f0d9cdc161b80 +Author: Cody Northrop +Date: Thu Nov 4 09:26:00 2021 -0600 + + Tests: Skip zillow trace on desktop Vulkan + + Bug: angleproject:6658 + Change-Id: I0d0152c83930b6a789bd9660ad2f16e9a8e9f80a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262031 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 270a2c0ef4ee93f5c960f4b72871873278ca0cfe +Author: angle-autoroll +Date: Thu Nov 4 10:01:25 2021 +0000 + + Roll SwiftShader from 7a571328541a to e733a26e2ba0 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/7a571328541a..e733a26e2ba0 + + 2021-11-03 sugoi@google.com Add assert on illegal signed/unsigned blit + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I6e5ccc05abf5e57b8abbb15de7db0ebf3ea5362c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260749 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6791f0f1dd5476929aee691fe871fa9c92dcb818 +Author: angle-autoroll +Date: Thu Nov 4 10:01:23 2021 +0000 + + Roll vulkan-deps from d388b3abde67 to a46607dbd322 (20 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/d388b3abde67..a46607dbd322 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/d1608ab1ef..eb92526d5e + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/66adba17a8..04293e03fd + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/1380cbbec1..29817199b7 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/97d4495600..6b073f8992 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/d594f70127..51a326d756 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/830a0724aa..7e3866fa3a + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/7001f2eb37..aa16057108 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6fca9899aa..2ab8c47ee5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I6514851e18a1f6857f4dd79519c8835c9f600f67 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261593 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a5e039b7c62ff343f12c0df2c3a09f4ec06e5a32 +Author: angle-autoroll +Date: Thu Nov 4 07:44:23 2021 +0000 + + Roll Chromium from b8a060d71358 to ff76252a7394 (1883 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b8a060d71358..ff76252a7394 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/40d725c711..be7dd8702f + * buildtools/linux64: git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4..git_revision:90294ccdcf9334ed25a76ac9b67689468e506342 + * buildtools/mac: git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4..git_revision:90294ccdcf9334ed25a76ac9b67689468e506342 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/1876d99930..4c6e0991b1 + * buildtools/win: git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4..git_revision:90294ccdcf9334ed25a76ac9b67689468e506342 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0f63f0d38b..0be155b448 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/aaec1f1057..4f10fce35c + * third_party/android_build_tools/bundletool: OZ4is33usuZy-deP3FpWCtbKXaIY0qBLsElWte7556YC..2ZcLVDxyRwp8FzpeYLtLT0TfSRweZxvwh1-Kx1jZ_FoC + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/d1c5c4d011..0f5030b08c + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6f6dc831c9 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b3a1a797ba..8a0d05dea6 + * third_party/ijar: https://chromium.googlesource.com/chromium/src/third_party/ijar/+log/0c48c93118..1c4422cef7 + * third_party/r8: EU82Aqeu2B1PZzAmebHXfyOgeL2UZifcIJ1LPyoThw0C..nqWomZTwNDoogX26WeCSoFGg6aQN1FrwzoU4hCS0duEC + * third_party/turbine: 6QYCyqU5yXkAT7T-_K3sCPvfISI8ACXF_cW4OM5v9BgC..KbLQUR_KFiUEzVt1lMTORY96bz_PbMwC3GwIb1oGJmAC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/f827083d00..b2ffe54673 + * tools/luci-go: git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323..git_revision:68355732afb00a422ae0c70eed95c6a45f9868b1 + * tools/luci-go: git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323..git_revision:68355732afb00a422ae0c70eed95c6a45f9868b1 + * tools/luci-go: git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323..git_revision:68355732afb00a422ae0c70eed95c6a45f9868b1 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c063514f93..8c543dbf70 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/20319341da..bfbdc93fb6 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/930ae734b0..de187bb48c + Clang version changed llvmorg-14-init-7378-gaee49255:llvmorg-14-init-8033-gabb2a91b + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/f827083d005ba26aee9d9545b59793397af8368a..b2ffe54673072c834652fb16fb412e9f69ea8bd5/scripts/update.py + + Bug: angleproject:6037 + Tbr: cnorthrop@google.com + Change-Id: I9de8c27ecafc1a9c0457af98b36074920e37bf2a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261685 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 30b01d8fd1cfceffd9403227968f0a62e5d444af +Author: Shahbaz Youssefi +Date: Wed Nov 3 15:56:47 2021 -0400 + + Fix multiview framebuffer completeness check + + In the process of dropping ANGLE_multiview in favor of OVR_multiview, + the framebuffer completeness checks have become stale. In particular: + + - There is no requirement that the base layer of the attachments match + - There _is_ a requirement that base+count layers are within the texture + boundaries. + + Bug: chromium:1264988 + Change-Id: I86837b587ad5befaa6a545c5a24507e8dff0b568 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259272 + Reviewed-by: Alexis Hetu + Reviewed-by: Alexis Hétu + Commit-Queue: Shahbaz Youssefi + +commit 2091451e523384385471f901df887a08baae104d +Author: Cody Northrop +Date: Wed Oct 27 22:57:34 2021 -0600 + + GLES1: Create multiple shaders based on state + + This CL introduces the concept of having optimized shaders for given + state combinations. In this first pass, all uniform bools have been + moved to hard coded values in the GLES1 ubershader. + + Frame times on Android ARM with locked GPU clocks: + + Trace Before After + dr_driving: 27.8145 -> 4.2986 + sonic_the_hedgehog: 17.9779 -> 2.8223 + summoners_war: 93.2040 -> 15.9810 + wordscapes: 53.9227 -> 7.6167 + zillow: 15.0323 -> 2.9368 + + Bug: angleproject:6644 + Bug: angleproject:6652 + Change-Id: I548bc5c6aa24bad5fbd740b9552c4a703ae41354 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251688 + Reviewed-by: Lingfeng Yang + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 7e70818a62b1c089624123cb330640115f792fa0 +Author: Tim Van Patten +Date: Wed Nov 3 16:52:28 2021 -0600 + + Capture/Replay: Skip failing UniformTest tests + + The following tests are failing on win-trace: + + UniformTest.UnusedStructInlineUniform + UniformTest.UnusedStructInlineUniformWithSampler + + They were added by this CL: + https://chromium-review.googlesource.com/c/angle/angle/+/3256235 + + Bug: angleproject:6654 + Bug: angleproject:6641 + Change-Id: Ibce2a9ef1795ffeb50bce5546d558ce12166cd17 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260733 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 77eb8a491bdd322699ace345769fc0299ee21860 +Author: Kyle Piddington +Date: Fri Oct 29 10:36:06 2021 -0500 + + Metal: Reduce memory usage of attribute re-writing + + Rework vertex buffer caching to allow us to reuse parts + of converted buffers. + + Reusing conversions dramatically drops the memory usage + when drawing index ranges by offset with + unaligned attributes. + + Bug: angleproject:6638 + Change-Id: I79797da202629b1632e1397ce1227ee3d7a1c9d7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251467 + Commit-Queue: Kyle Piddington + Reviewed-by: Le Hoang Quyen + Reviewed-by: Jonah Ryan-Davis + +commit 0777af7050704371c8c4e1e0adee0cdeca44035a +Author: Amirali Abdolrashidi +Date: Tue Nov 2 11:14:06 2021 -0700 + + Env var for EXT_framebuffer_fetch_non_coherent + + * Added an environment variable/Android property to remove the + restriction on exposing GL_EXT_shader_framebuffer_fetch_non_coherent + on ARM and Qualcomm. + * Environment variable: ANGLE_ENABLE_EXT_SHADER_FRAMEBUFFER + _FETCH_NON_COHERENT_OVERRIDE + * Android property: debug.angle.enable.ext_shader_framebuffer + _fetch_non_coherent_override + + Bug: angleproject:6519 + Change-Id: I62e80f348c2ffda7d1d63496e3a2aedad9d69229 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258363 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + +commit 8aec7f358ee8ff0a34ca53aacb579c55893e280e +Author: Yuxin Hu +Date: Tue Nov 2 22:01:25 2021 +0000 + + Add World Cricket Championship 2 Trace + + Test: angle_perftests --gtest_filter="*world_cricket_championship_2*" + + Bug: b/194508692 + Change-Id: I0f36eba247b4726bc13b327634c429339ad1297c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258343 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Yuxin Hu + +commit afaa1287c7d8492cccf25cf2d3a1443f7db043ad +Author: Tim Van Patten +Date: Tue Oct 26 19:29:44 2021 -0600 + + Vulkan: Don't submit XFB queries when XFB is inactive + + Consider the following GL commands: + + glBeginQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) + glBeginTransformFeedback() + glDrawArrays() + glPauseTransformFeedback() + glDrawArrays() + glResumeTransformFeedback() + glDrawArrays() + glEndTransformFeedback() + glEndQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) + + The renderpass is broken for each of the draw calls, leading to + pauseRenderPassQueriesIfActive() and resumeRenderPassQueriesIfActive() + being called when the RP is stopped/started. This leads ANGLE to + generate 3 TransformFeedbackPrimitivesWritten queries when looping + through the "active" queries, since no consideration is made for XFB + actually being active/unpaused. + + ARM doesn't support the TransformFeedbackPrimitivesWritten query when + XFB is disabled. Instead, the query is never completed and the results + are never available. It could probably be argued that this is an ARM + bug, and they should just output '0' if XFB isn't active during the + query. + + Regardless, ANGLE shouldn't be issuing the queries when XFB is no + active, since it's wasteful. + + Bug: angleproject:6622 + Test: dEQP.GLES3/functional_transform_feedback* + Test: TransformFeedbackTest.TransformFeedbackQueryPausedDrawThenResume + Change-Id: I380fb60405d7f538b802bb0df72bf609f0bc58e9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246532 + Reviewed-by: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + +commit e50894a08f5805a4f1640aa77f6035463cc0e7c4 +Author: Cody Northrop +Date: Wed Nov 3 08:54:04 2021 -0600 + + DEPS: Update Android SDK source to android-31 + + Bug: angleproject:6650 + Change-Id: I7fd3a6c23d47966d055dfaa4dfffed95a9f41240 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259848 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 8df68fd477f0463c9f1919950370e0c3b8b73536 +Author: angle-autoroll +Date: Wed Nov 3 10:01:25 2021 +0000 + + Roll SwiftShader from 542593f0e311 to 7a571328541a (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/542593f0e311..7a571328541a + + 2021-11-02 sugoi@google.com Perform all blend operations in floating-point + 2021-11-02 swiftshader.regress@gmail.com Regres: Update test lists @ 542593f0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I1cd36fbf0483351d4d9b30be3108dafc366364e1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259062 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 0e9e321b578ad03e6ffbedffbf5560cf372dad9f +Author: Kyle Piddington +Date: Mon Nov 1 17:04:05 2021 -0500 + + Metal: Anonymous unused uniform structs not named. + + Due to some upstream changes, unused uniform structs are not being + given a name. These structs cause compilation failures, which has + completely caused shadertoy.com to fail to render. + + Skip the check when naming embedded structs to allow uniform struct + types to still be named, even when no uniform exists. + + Unskip targeted tests on the Metal backend which were added previously + in Issue 6641. These still need to be fixed more generically for the + Vulkan backend. + + Also suppress flaky WebGLCompatibilityTest.RG32FTextures test on Mac + Intel OpenGL, which affected this CL. + + Bug: angleproject:6642 + Bug: angleproject:6641 + Bug: angleproject:6570 + Change-Id: I598fc212f4db3d3b7c5617bd8a87f8b7db60706c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258341 + Commit-Queue: Kenneth Russell + Reviewed-by: Gregg Tavares + Reviewed-by: Geoff Lang + +commit 604610b410674e5a5bd12c55c69eec66ea7cb948 +Author: Gregg Tavares +Date: Mon Nov 1 12:03:31 2021 -0700 + + Metal: Use Depth32F for DEPTH_COMPONENT16 + + depth16unorm is broken on Metal. This is a workaround. + + Bug: angleproject:6597 + Change-Id: I1748f9fab587b22980d13e8a141fa880eb6f9db0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3255666 + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Commit-Queue: Gregg Tavares + +commit 88ca3b18abc6e3ff8eafb563f617e2722655c3d3 +Author: Kyle Piddington +Date: Mon Nov 1 16:54:40 2021 -0500 + + Expose translator issues with struct samplers. + + Struct samplers assert in the Vulkan and Metal backends during + rewriting. Add a test - skipped for now on these backends - to + highlight this issue. + + Bug: angleproject:6641 + Change-Id: I95cbc9e5f4122f1ac7db926ac44c4cccc1b6f87a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256235 + Reviewed-by: Geoff Lang + Commit-Queue: Kenneth Russell + +commit a517d4d95fce3019bc502ba4befb82967b013ebf +Author: Shahbaz Youssefi +Date: Mon Nov 1 16:21:06 2021 -0400 + + Vulkan: Regression test for xfb query before resume + + Bug: angleproject:6622 + Change-Id: If15195437e656dc20aed10d02cf8429ad15ae3d2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254432 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 38d5349a9000fa9b4144ffcb56c20bede1adc41c +Author: Jamie Madill +Date: Tue Nov 2 11:46:56 2021 -0400 + + Fix out of range access in MemoryBarrierTest. + + Bug: angleproject:6646 + Change-Id: Ia406e290d0a6d6bef6352ac5e46a591e980d33f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258006 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit fce240c005072a3eda3f960e357571a5293ff2db +Author: Tim Van Patten +Date: Fri Oct 29 12:35:48 2021 -0600 + + AOSP: Use '-Os' rather than '-Oz' + + Cuttlefish recently hit a clang compiler issue related to -Oz: + b/200617543 + + This is fixed by either disabling optimizations for ScopedExit or using + -Os. + + This CL will switch ANGLE to using -Os. + + When building CF in AOSP, the binary size is reduced with -Os vs -Oz: + -Oz: 16,383,489 bytes + -Os: 16,152,509 bytes + + Bug: b/200617543 + Change-Id: Ic920b0e0e4a61453d9657101a4560f74d90d5744 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253128 + Reviewed-by: Jason Macnak + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 0b56267f2d13b354526d6890eac84950d63f9ac2 +Author: Stephen White +Date: Tue Nov 2 12:25:40 2021 -0400 + + Implement ANGLE_FALLTHROUGH macro. + + Use it instead of ABSL_FALLTHROUGH_INTENDED. + (ANGLE shouldn't use absl unless angle_enable_absl is true. + This is breaking the roll of ANGLE into Dawn.) + + Bug: angleproject:6647 + Change-Id: I47f9a00841c4605fca52b17eeb68c0b1da5004c0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258008 + Commit-Queue: Stephen White + Reviewed-by: Geoff Lang + +commit c4921cd87a6009dfe103c6787bb6d93661543d7b +Author: Gert Wollny +Date: Thu Oct 28 12:06:42 2021 +0200 + + Capture/Replay: Capture name in GetProgramResourceIndex + + Bug: angleproject:6180 + Change-Id: I1ee7e49dcfa5df23ff5d81d8ca43dd1843c9b2e6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250880 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 7952f84cd6b708e13696949fe52461382a7f26f0 +Author: Gert Wollny +Date: Thu Oct 21 15:47:21 2021 +0200 + + Capture/Replay: Add ES3_1_Vulkan_SwiftShader expectations + + Bug: angleproject:6180 + Bug: angleproject:6605 + Bug: angleproject:6608 + Bug: angleproject:6609 + Bug: angleproject:6610 + Bug: angleproject:6611 + Change-Id: I340d1d9ead7e1f537ea447447e7d051b8725c534 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236986 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 548e7a2f71975974cbd6f1a4ffe21ec850dacf32 +Author: Jamie Madill +Date: Tue Nov 2 08:50:30 2021 -0400 + + infra: Expose ASAN configs in try. + + This will allow us to manually add ASAN tryjobs to test before + landing. + + Bug: angleproject:5795 + Change-Id: I1085b64f2dcf09e20f470aded0d57befbe4fb084 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3257025 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 02cc418d4e6baff23771bb9d71ca30791cb48063 +Author: Gert Wollny +Date: Tue Nov 2 08:12:49 2021 +0100 + + Capture/Replay: Mark test to be flaky on Windows + + The test is passing quite often, but not always. + + Bug: angleproject:6180 + Change-Id: I4bed6cd2907da61023ca91b20e20d8b0722302b7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3257321 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit aaf82f38fff4ee50c6be9e4900346328c8159bdc +Author: angle-autoroll +Date: Tue Nov 2 10:01:26 2021 +0000 + + Roll SwiftShader from 9d8950e082d8 to 542593f0e311 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/9d8950e082d8..542593f0e311 + + 2021-11-01 capn@google.com Implement support for VK_FORMAT_R16*_UNORM attachment formats + 2021-11-01 capn@google.com Clamp blend factors and color output + 2021-11-01 capn@google.com Refactor blending + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: If2c6d0503245d313c3101f98b2ee7321df4ff182 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256524 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6a749cdacdeeaea866ee1497368a468fb0a59fb7 +Author: Amirali Abdolrashidi +Date: Fri Oct 29 12:45:53 2021 -0700 + + Complete validation of glGetAttribLocation() + + -Added more checks to glGetAttribLocation() similar to + glBindAttribLocation(). + -Added the corresponding unit tests. Using a reserved + prefix in glGetAttribLocation() should return -1. + + Bug: angleproject:2419 + Change-Id: I3f691f344c7003f855e53d35cd5f9578069acdae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3252643 + Commit-Queue: Amirali Abdolrashidi + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + +commit a514df081df00d73bac78c7f39cd610d759ac82c +Author: YuxinHu +Date: Wed Oct 27 01:25:11 2021 +0000 + + Add detachShader capture calls in MEC + + This change adds a capture call to detach shader + object before deleting the shader object in function + GenerateLinkedProgram(), if that is also what the app does. + GenerateLinkedProgram() is part of the Mid Execution Capture + (MEC), and the purpose of the MEC is to setup a program that + more closely mirrors the original app. + + The game World Cricket Championship2 detaches the shader object + before deleting the shader object. With this change, we can follow + the same behavior in GenerateLinkedProgram(). This ensures that + the Shader Object refcount is decremented to 0 before the + CaptureDeleteShader call is applied, and the ShaderProgramID + handle assigned to the Shader Object will be released and + can be reused for subsequent glCreateShader calls. The total number + of ShaderProgramID we need will be consistent between + SetupReplayContextShared() and the game uses. + We are allocating memory slots for gUniformLocations2 array + based on the total number of ShaderProgramID the game uses. + Keeping the ShaderProgramID counts the same between + trace replay and the game ensures we allocate the right amount + of memory for the trace replay. + + Bug: angleproject:6621 + Bug: b/194508692 + Change-Id: Ib2810b486a6e9108db2a32f084d650a25f14bebd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246533 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Yuxin Hu + +commit ab514d4ac049d226d7b4045f3edb0144500a261b +Author: Steven Noonan +Date: Fri Oct 22 20:51:08 2021 -0700 + + d3d11: fix typo in pixel shader function signatures + + These two shaders used "TEXCORD0" instead of "TEXCOORD0" which made the + Direct3D debug layers unhappy: + + D3D11 ERROR: ID3D11DeviceContext::Draw: Vertex Shader - Pixel Shader + linkage error: Signatures between stages are incompatible. The input + stage requires Semantic/Index (TEXCORD,0) as input, but it is not + provided by the output stage. [ EXECUTION ERROR #342: + DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND] + + Fixing the typo makes that error go away. + + Bug: angleproject:6614 + Change-Id: Ifa1c8c01fb4502398b3b4e13a411ef50bc3db483 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3239013 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Geoff Lang + +commit 10356c0087c8c1bb92d6ce529675676e19f88fd5 +Author: angle-autoroll +Date: Fri Oct 29 22:45:52 2021 +0000 + + Roll VK-GL-CTS from 49afd2823061 to 06492d671a2d (6 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/49afd2823061..06492d671a2d + + 2021-10-29 rgarcia@igalia.com Add compute test with zero dispatch size + 2021-10-29 rgarcia@igalia.com Test contradictory parameters on swapchain creation + 2021-10-29 paulthomson@google.com Revert "Exclude cov-function-with-nested-loops-called-from-nested-loops" + 2021-10-29 juha.heiskanen@siru.fi Add buffer feature check for depth/stencil formats + 2021-10-29 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master + 2021-10-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC timvp@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,angle-bots+autoroll-info@google.com + Change-Id: Ie032d02c4b759ebfe3f4dfe5cf61b9d5fed96b2f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254001 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 616dc2688f8f61ff52d63a77fdf3ece7862e984d +Author: Jamie Madill +Date: Tue Oct 12 13:15:40 2021 -0400 + + infra: Add ANGLE-side configuration for ASAN tests. + + The ASAN builders will start by running compile-only and only in CI. + A follow-up change will enable sharded tests and CQ jobs. + + Bug: angleproject:5795 + Change-Id: I2e761b7bdd2d7215db2210c4538b6cafc4d9069a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254430 + Reviewed-by: Jamie Madill + +commit ab4267359030eb9f808db1837169aad247f76813 +Author: Gregg Tavares +Date: Fri Oct 29 13:54:09 2021 -0700 + + Template gl::Rectangle so it can be used for float + + Bug: angleproject:6598 + Change-Id: I8cf5894f0e34c56a6ad856c978be93ea9d5ae113 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253131 + Commit-Queue: Gregg Tavares + Reviewed-by: Shahbaz Youssefi + +commit a7b3551ef2b98f65967ad1e364508b56c3d03803 +Author: angle-autoroll +Date: Mon Nov 1 10:01:00 2021 +0000 + + Roll vulkan-deps from a03d00bd2a78 to d388b3abde67 (16 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/a03d00bd2a78..d388b3abde67 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/29632959d2..66adba17a8 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d997c83b10..97d4495600 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b9168891cb..6fca9899aa + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I19b0462854ae5eed5c49e1e38d79581e4de31018 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254967 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5a0e6c1e8589bb1dca591955b46f7c4e244b40b6 +Author: Shahbaz Youssefi +Date: Fri Oct 29 21:57:42 2021 -0400 + + Suppress failing test + + ProgramBinaryES3Test.SaveAndLoadDetachedShaders depends on + VK_EXT_provoking_vertex, which is not supported on many of our bots. + + Bug: angleproject:6526 + Bug: chromium:1264995 + Change-Id: I9ea26c1a113068381b18a65c4b79448cf642d476 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251224 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit d2b4d9aec1590dae5c33625a30878b5bcf423527 +Author: Tim Van Patten +Date: Sat Oct 30 00:27:56 2021 +0000 + + Revert "Vulkan: Don't expose MSRTT on SwiftShader" + + This reverts commit fb77afd3c76301e11f5c7397d9a63d283f86036c. + + Reason for revert: Breaks ANGLE roll into Chromium: + https://chromium-review.googlesource.com/c/chromium/src/+/3253966/ + + Please follow the directions here to update the reference images: + https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/web_test_expectations.md + + Original change's description: + > Vulkan: Don't expose MSRTT on SwiftShader + > + > Emulating this extension on SwiftShader is neither useful nor efficient + > (on the contrary, it hurts performance (which is true for all non-tiling + > architectures)). This extension was exposed purely to increase testing + > coverage, but is being disabled now as OOMs resulting from allocating + > the implict multisampled image is confusing Chrome. Note that + > SwiftShader exposes only a limited amount of memory. + > + > Bug: chromium:1263046 + > Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581 + > Reviewed-by: Geoff Lang + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1263046 + Change-Id: I554df85109282db840ed6d2dbf0b153da5a7a98f + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254007 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 50fc2909d8535f7587fab8cc5b0133027abe5da2 +Author: Kyle Piddington +Date: Wed Oct 27 21:37:02 2021 -0700 + + Merge Webkit up to Oct 27 2021 + + Merge the following commits from Webkit. This + change merges webkit from the following git commits + + Previous: + commit 703b234524e75109ca3e94febbf63098314022f5 + Author: Alex Christensen + Date: Tue Sep 28 16:22:30 2021 +0000 + Mostly fix Mac CMake build + https://bugs.webkit.org/show_bug.cgi?id=230868 + + Current: + commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f + Author: Kimmo Kinnunen + Date: Wed Oct 27 17:43:38 2021 +0000 + REGRESSION (Safari 15): Poor WebGL performance on + https://downloads.scirra.com/labs/particles + + Commits: + commit 8238f462c96e515dabd3db0e26c143b18f47340c + Author: Kyle Piddington + Date: Wed Oct 6 21:45:18 2021 +0000 + Shadertoy "truchet district" fails to compile with error: + Internal error compiling shader with Metal backend" + + commit 2fcb9af290e4b6c804f11ad4359555507c1492f9 + Author: Kyle Piddington + Date: Thu Oct 14 21:14:26 2021 +0000 + https://tankionline.com/play/ html5 engine not + working: crashes. (Metal shader not working) + https://bugs.webkit.org/show_bug.cgi?id=231490 + + commit e11955a258380a875115ded16ab8963142c4023b + Author: Kyle Piddington + Date: Fri Oct 15 23:57:12 2021 +0000 + REGRESSION (r283667): + webgl/2.0.0/deqp/functional/gles3/lifetime.html fails + https://bugs.webkit.org/show_bug.cgi?id=231682 + + commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f + Author: Kimmo Kinnunen + Date: Wed Oct 27 17:43:38 2021 +0000 + + REGRESSION (Safari 15): Poor WebGL performance on + https://downloads.scirra.com/labs/particles + https://bugs.webkit.org/show_bug.cgi?id=230749 + + Bug: angleproject:6630 + Change-Id: Icca411dc429538f839f05834f1851fbc54ef8a1d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248573 + Commit-Queue: Kyle Piddington + Reviewed-by: Gregg Tavares + Reviewed-by: Geoff Lang + +commit 683ab738910ab56a09a8a57f6ee72d70706a41a9 +Author: Tim Van Patten +Date: Thu Oct 28 14:02:49 2021 -0600 + + Android: Add back third_party/ to AOSP + + The ANGLE autoroller into AOSP is currently stuck due to a merge + conflict in third_party/glmark2. Specifically, this directory was + deleted in AOSP, but modified in upstream ANGLE. + + The solution is to add back the third_party/ directories into AOSP, and + the ANGLE-owned files. The full contents will not be added back if + they are a git submodule. + + Some third_party/ directories will continue to be deleted due to how + large they are: + + third_party/jdk + third_party/llvm-build + third_party/android_build_tools + third_party/android_sdk + + We can look into adding these back in the future if it becomes + necessary. + + Additionally, the license information in the Android.bp is being updated + to reflect the newly added files. + + Bug: angleproject:6635 + Change-Id: I793e5b0797218963a4d06a0399b3be80edd43b37 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251685 + Commit-Queue: Tim Van Patten + Reviewed-by: Geoff Lang + +commit 4a2446c6b440b45f41294a434b930f9085f57285 +Author: Jamie Madill +Date: Tue Oct 19 11:55:17 2021 -0400 + + Vulkan: Implement robust shader outputs. + + In this CL we change ANGLE to pass the mask of missing shader + outputs down to pipeline creation. We then use the color mask + bits to block SwiftShader writing to unused outputs. + This fixes the undefined behaviour present in Genshin Impact. + + Note that the other GLES implementations we tested don't seem + to modify outputs even if they're unused. + + It was easier to mask out the color attachments in initialize + rather than set up the pipeline desc to mask out the attachments. + This was because we manipulate the color mask in a fairly complex + way before we initialize the pipeline desc. + + Bug: angleproject:6566 + Change-Id: Ie659fcd511cd286fa573fd25e3e6a0b9e123ebd6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232435 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 800c6885e932a73c1fa20c882891bc72f1c01625 +Author: Tim Van Patten +Date: Mon Oct 25 13:37:39 2021 -0600 + + Vulkan: Only add samplable formats to outCompressedTextureFormats + + Only samplable texture formats should be added to + outCompressedTextureFormats in FormatTable::initialize(), so move that + to after the check of mActualSampleOnlyImageFormatID. + + Bug: angleproject:6277 + Change-Id: Id91908a04d7e94f2d6dd1f0fa499ebea6a1f107e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3243068 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Tim Van Patten + +commit 20ddb8027dd1069fd22b954e7cc31fbf83dfa809 +Author: Gregg Tavares +Date: Thu Oct 28 11:01:12 2021 -0700 + + Fix Blitting in Metal backend. + + The Metal backend was clipping in integer space. + If the src and dst are not the same size, + say src is 3 wide and dst is 4 wide, and src + starts at -1, then src will be clipped by one + making the src 2 wide. It got 1/3 smaller so the + dst get 1/3 smaller making it 2.666 pixels wide. + The dst then needs to be expanded to pixels so 3 wide. + But, that means the src also needs to be expanded + 0.3333 * 3(originalSrcWidth) / 4(originalDstWidth) + so its new left edge is -0.245 which is not an integer. + + Bug: angleproject:6598 + Change-Id: I2faa966b18b457f474a3e7f6844ef64bfa66dbe8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251683 + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Reviewed-by: Kyle Piddington + Commit-Queue: Gregg Tavares + +commit c31855eaf58a1dea14e353d6a326308952beebf9 +Author: Jamie Madill +Date: Thu Oct 28 13:29:17 2021 -0400 + + translator: Always report gl_FragData array size. + + Previously we would report it as size 1 always if the extension + was missing. This was breaking a dEQP. The test may have a bug, but + we need to work around the issue until the upstream test is fixed. + + See https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/3259 + + Bug: angleproject:6566 + Change-Id: I5ac654f472f0e227d63804896ecc388081bec5e8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251586 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 7bda9d735e408759744bc93f6c2a7d5ee4683d10 +Author: Lubosz Sarnecki +Date: Fri Oct 22 11:53:20 2021 +0200 + + DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID. + + Expose EGL_RECORDABLE_ANDROID in the config for all Vulkan drivers + on Android to provide app compatiblity with "My Talking Tom 2" and + "My Talking Tom Friends". + + Don't require config to be unavailable in EGLRecordableTest and request + a config with EGL_RECORDABLE_ANDROID enabled, but do not check for + results. + + Bug: angleproject:6612 + Change-Id: I25113b7c7f9a4a3b13dc625f01d96ba91cb3c6d7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237001 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit fb77afd3c76301e11f5c7397d9a63d283f86036c +Author: Shahbaz Youssefi +Date: Thu Oct 28 11:07:53 2021 -0400 + + Vulkan: Don't expose MSRTT on SwiftShader + + Emulating this extension on SwiftShader is neither useful nor efficient + (on the contrary, it hurts performance (which is true for all non-tiling + architectures)). This extension was exposed purely to increase testing + coverage, but is being disabled now as OOMs resulting from allocating + the implict multisampled image is confusing Chrome. Note that + SwiftShader exposes only a limited amount of memory. + + Bug: chromium:1263046 + Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581 + Reviewed-by: Geoff Lang + Commit-Queue: Shahbaz Youssefi + +commit 81d964a1ae031130e8fe1ccd0af91c228d1bdcba +Author: Peng Huang +Date: Thu Oct 28 10:50:51 2021 -0400 + + vulkan: implement EGLDevice for vulkan backend + + It allows ANGLE clients to get and use VkDevice and VkQueue + used by vulkan backend. + + Bug: chromium:1264439 + Change-Id: I338ac08152cfec50bb34c5025730e5e6368efba9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250964 + Reviewed-by: Peng Huang + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Peng Huang + +commit 32b3c96317697ef93440da2b66bc8fd0f4fa8211 +Author: Shahbaz Youssefi +Date: Thu Oct 28 11:00:03 2021 -0400 + + Vulkan: Remove MSRTT assertion in the presence of OOM + + When the MSRTT transient multisampled image is created, the emulated + clear staged update is removed (as it's also staged for the single + sampled image). This was done after allocating memory for the image, + which can fail, leaving the update staged and leading to an ASSERT + failure when the texture is used. + + Technically, the texture should not be used, and that's a Chrome bug + where the OOM result from ANGLE is being ignored. This change makes + sure the staged update is removed before allocating memory so the + multisampled image is in a more consistent state. + + Bug: chromium:1263046 + Change-Id: Ida8923ccbc517f740d76b4c2880086a039fa8a1f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251580 + Reviewed-by: Geoff Lang + Commit-Queue: Shahbaz Youssefi + +commit 694c50124e2a376c6f39cb2f2090cd84bf9dbdfb +Author: Lubosz Sarnecki +Date: Thu Oct 14 11:16:29 2021 +0200 + + capture_gles_3_2: Skip capturing debug calls + + This is analogous to capture_gles_ext. + + Bug: angleproject:6613 + Change-Id: I8917a4cfa060f71ad616ece56038d02bfa12a952 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237002 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + +commit 9f0db4a451a501565943925228f07c41d442f596 +Author: angle-autoroll +Date: Fri Oct 29 07:18:32 2021 +0000 + + Roll Chromium from 367ea8143d4d to b8a060d71358 (521 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/367ea8143d4d..b8a060d71358 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b726d24b66..40d725c711 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/850fe71738..80e4f838fa + * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/05a4a0312e..99015718c3 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0c771463fb..0f63f0d38b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..819f08fc14 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/8daf2442e2..b3a1a797ba + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/279e9ceb48..f827083d00 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c61ca72b5d..c063514f93 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2cb82b1a6d..930ae734b0 + No update to Clang. + + Bug: None + Tbr: timvp@google.com + Change-Id: I185edca8b556d5f9b4b30f6395bde35063d47d40 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3252787 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit bae19e0626f1c98ce37b57d4c26f10bd2a668b37 +Author: Charlie Lao +Date: Tue Oct 26 13:35:57 2021 -0700 + + Vulkan: Avoid unnecessary wait if mapBufferRange indicates read only + + When we call BufferVk::mapRangeImpl(), both from internal code paths for + data reads or due to glMapBufferRange call, we are not passing the + access bit to the call. This CL passes the proper access bits to the + call and only wait for GPU writes to finish if access is for read only. + + This CL also adds access bitfield to the BufferVk::mapImpl() API and + have various callers pass in the proper access bits as well. + + Bug: b/203582620 + Change-Id: Ica8493c902dbd7b15996266c81ce0fd4dbfc2520 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3245487 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Charlie Lao + +commit 5c914b57b582c00ac58e9bceff50b1a88c834cd2 +Author: Shahbaz Youssefi +Date: Thu Oct 28 13:27:04 2021 -0400 + + Vulkan: SPIR-V Gen: Fix float+matrix + + Found by a fuzzer, float+matrix was not handled correctly by the SPIR-V + output. + + Bug: chromium:1264212 + Change-Id: I09b13c3e48374621228f5fab4de68c33973ddfd4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251585 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit dacfa917783581a7368a103f0ce2ae228989d6f7 +Author: Tim Van Patten +Date: Thu Oct 28 12:49:33 2021 -0600 + + Disable flaky multithreaded tests + + The following multithreaded tests are flaky in CQ and are being + suppressed: + + VulkanMultithreadingTest.MultiContextDrawSmallDescriptorPools/ES3_Vulkan + MultithreadingTestES3.MultithreadFenceDraw/ES3_Vulkan_SwiftShader + + Bug: angleproject:5418 + Bug: angleproject:6633 + Change-Id: I170085064597165972b7206d98130917bb46fcaf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251684 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 191c236a6be026dd7e513e8727f1876dca595cab +Author: Jamie Madill +Date: Thu Oct 14 17:01:45 2021 -0400 + + Vulkan: Remove "current queue serial". + + Queries, semaphores, and pipelines instead use the normal + vk::Resource design to track their lifetimes. Removes the current + serial APIs from all classes. Current serials are still tracked + internally in the command queue classes. + + Bug: b/169788986 + Change-Id: Idcd2c2a93bc8225c6f3f7c247eb8fcfb76be1030 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223644 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 5da062baf1bcfe314e2831bf10db7c26d0ea2ea2 +Author: Brandon Schade +Date: Wed Oct 6 11:15:00 2021 -0500 + + Translator: Fixed textureGatherOffsets validation + + The parser only considered the case where the input to the + textureGatherOffsets() function is an aggregate constructor + node, but not if it is a pre-initialized constant variable. + Added code to handle the constant variable case. + + Tests:KHR-GLES32.core.gpu_shader5.texture_gather_offsets_color + KHR-GLES32.core.gpu_shader5.texture_gather_offsets_depth + Bug: angleproject:5362 + Change-Id: Ib1dd3450071341082ea6f0f2a243c3bb3ef6b95a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3217852 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Brandon Schade + +commit 3a9f18f135fe82f77cd684d559f73f7030f22525 +Author: Jamie Madill +Date: Mon Oct 18 10:44:38 2021 -0400 + + Refactor program pipeline handling. + + In preparation for moving more code from gl::Program to + gl::ProgramExecutable so it can be shared with ProgramPipeline. + + Bug: angleproject:6566 + Change-Id: Icb7ecccb37ae8e0d7d5fef8968f0dd7ef6fe6150 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226305 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 577cfeff9261ed64ee2981732c33d3fc44935ade +Author: Jamie Madill +Date: Wed Oct 27 12:08:25 2021 -0400 + + GN: Remove unneeded version header visibility rule. + + These Chrome targets are now migrated to use the encapsulated API. + + Bug: angleproject:2551 + Change-Id: I6970f7ad85af089fd41c79476a2bdd4e605949c3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248143 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 6ce6788639329c51ed84f09f5a1231191c58bc49 +Author: Hans Wennborg +Date: Thu Oct 28 13:45:18 2021 +0200 + + Drop -Wweak-template-vtables + + Clang is dropping suport for this flag, see bug. + + Bug: chromium:1264351 + Change-Id: I09b3d42889eecb8e786c52c205f28507fc797c5a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250885 + Reviewed-by: Nico Weber + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 8019c4e5e2b558d9d7fbeb4835d74501b5b7c1b8 +Author: angle-autoroll +Date: Thu Oct 28 10:01:03 2021 +0000 + + Roll vulkan-deps from e706a029a256 to a03d00bd2a78 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/e706a029a256..a03d00bd2a78 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/44b57597d8..d1608ab1ef + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/5a4c691700..830a0724aa + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/e200d91dc3..b9168891cb + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Iaf613182ff8cb36b241706c281cb8ea1f5ad6913 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250031 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 404fbc6a3694514e96c847d1828f886d07b9303e +Author: angle-autoroll +Date: Thu Oct 28 10:01:01 2021 +0000 + + Roll SwiftShader from d143249a93bc to 9d8950e082d8 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/d143249a93bc..9d8950e082d8 + + 2021-10-27 srisser@google.com Update git-hooks to HEAD revision + 2021-10-27 srisser@google.com Revert "Make git-hooks track with origin/main" + 2021-10-27 sugoi@google.com Refactor Queue::Submit to use internal structure + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I9cc40aff97fe50280cfc74ac97741296323eea3f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250554 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 540118b10fdeb03bf5e71c9046efb2278f99ca41 +Author: angle-autoroll +Date: Thu Oct 28 08:09:13 2021 +0000 + + Roll Chromium from 6e4379b531a3 to 367ea8143d4d (450 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/6e4379b531a3..367ea8143d4d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/4703a8520d..b726d24b66 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/26b101897f..1876d99930 + * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/bbd954d05f..05a4a0312e + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/847533d764..0c771463fb + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/14a17ad53a..aaec1f1057 + * third_party/android_build_tools/aapt2: oJ_fhfmT6sLorimH6Eo6hwWS2R2gU0c4ZUQfXvzae1UC..GlCdqxHxlg-8YkDGgj5cie-6COsEAZga9jyq-LAYxY4C + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f59fdc4257..d1c5c4d011 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..60bc3270d5 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/480c91d40b..8daf2442e2 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/819fa9604c..279e9ceb48 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/b3ad7f71e0..c61ca72b5d + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/4dc64cab42..20319341da + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2ff429a7b7..2cb82b1a6d + Clang version changed llvmorg-14-init-6722-g0fbd3aad:llvmorg-14-init-7378-gaee49255 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/819fa9604c76dc685de966a209c5d3f51b1729d1..279e9ceb4872fd2070bb9c2cb2eb7094bd2a484b/scripts/update.py + + Bug: None + Tbr: timvp@google.com + Change-Id: Icf82072a10099ebe93baeb0dc9a57105028a6780 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3249871 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e514e1595cd19050d6f726ff4fb59086005aa409 +Author: Tim Van Patten +Date: Wed Oct 27 17:54:00 2021 -0600 + + win-trace: Skip failing tests + + The following test is failing on win-trace: + + ProgramBinaryES3Test.SaveAndLoadDetachedShaders/ES3_Vulkan_SwiftShader + MultithreadingTest.MultiContextCreateAndDeleteResources/ES3_Vulkan_SwiftShader + MultithreadingTestES3.MultithreadFenceDraw/ES3_Vulkan_SwiftShader + MultithreadingTestES3.MultithreadFenceTexImage/ES3_Vulkan_SwiftShader + MultithreadingTest.MultiContextDrawWithSwapBuffers/ES3_Vulkan_SwiftShader + + This CL adds them to capture_replay_expectations.txt. + + Bug: angleproject:6631 + Change-Id: Ibb74afc6ff4b799e15bb8ead4d7fae0ce81620bb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248572 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit db83279a7f61c7cc037bbb4645d99b76c4ee311a +Author: Kyle Piddington +Date: Wed Oct 27 10:45:23 2021 -0700 + + Metal: Use 'fast' normalize to match DEQP expectations + + Normalize' has a fast math option that more conformantly + deals with INF in normalize functions. + + Use metal::fast::normalize instead of metal::normalize + This also matches SPIRV-Cross behavior for normalization + + Bug: angleproject:6629 + Change-Id: I61392ecd6f61b612d21f2832e07a135e26b53ad6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248145 + Commit-Queue: Kyle Piddington + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Reviewed-by: Gregg Tavares + +commit c1b42740b6dd421ed1b3dc73f77a079c01e3e1df +Author: Kyle Piddington +Date: Mon Oct 25 17:45:19 2021 -0700 + + Metal: Use ES3 validation for GL_R/RG8_EXT formats + + Fix 6 fboCompleteness tests by setting the Metal conformance version + to ES3, rather than ES2. This causes ANGLE to select the backwards + compatible ES3 validation rather than the ES2 validation. + + The FBO completeness test may have a bug related to extensions + in it, as limiting the Vulkan backend to ES2 conformance + causes it to fail in the same manner of Metal. + + Bug: angleproject:6618 + Change-Id: I64d87ea7b9e1957baab05b6380fe09e8271393a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244023 + Commit-Queue: Kyle Piddington + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + +commit 36eac05f9d3bf21eef7681abe09ce9c8ad5db3d6 +Author: Peng Huang +Date: Mon Oct 25 15:45:36 2021 -0400 + + VANGLE: change the default vulkan device choose logic + + To match the vulkan device choose logic in chrome, ANGLE will choose + the default device based on the order of (discret GPU > integrated GPU + > other GPU) + + TODO: for long term, ANGLE should provide a way to let chrome specify + the physical device. + + Bug: chromium:1260869 + Change-Id: Id023138485eb65fcc1d2758103d59a4e6cb2a51d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3242963 + Reviewed-by: Geoff Lang + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Peng Huang + +commit f6878e881454ee4306b1b94d4e0e524adb1de861 +Author: angle-autoroll +Date: Wed Oct 27 15:16:51 2021 +0000 + + Roll VK-GL-CTS from e2aeccde416b to 49afd2823061 (34 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e2aeccde416b..49afd2823061 + + 2021-10-26 rgarcia@igalia.com Split multiple interpolation tests using the sample decoration + 2021-10-22 ari.suonpaa@siru.fi Allow EGL tests to use ES3 with EGL_KHR_create_context + 2021-10-22 michal.jakubek@mobica.com Cover vkGetBufferMemoryRequirements*() routines tests + 2021-10-22 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master + 2021-10-22 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + 2021-10-22 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.1 into vk-gl-cts/master + 2021-10-16 rgarcia@igalia.com Add tcu::Nothing to improve tcu::Maybe usability + 2021-10-16 rgarcia@igalia.com Add basic signaled fence tests + 2021-10-16 piotr.byszewski@mobica.com Attachment rate tests + 2021-10-15 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master + 2021-10-12 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-10-12 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-10-11 vidar.lillebo@arm.com VK_EXT_rgba10x6_formats + 2021-10-11 venni.ihanakangas@siru.fi Improve coverage of MSAA copies with different layouts + 2021-10-11 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-10-11 anna.lesniewska@intel.com Change cache type to NO_CACHE in duplicate_batch_pipelines_no_cache test + 2021-10-08 piotr.byszewski@mobica.com maintenance4: Add LocalSizeId tests + 2021-10-08 gleese@broadcom.com Wire up support for maintenance4 validation + 2021-10-08 piotr.byszewski@mobica.com maintenance4: Add push-constant test + 2021-10-08 piotr.byszewski@mobica.com maintenance4: Add pipeline layout tests + 2021-10-08 lduc@nvidia.com Add image query tests for VK_KHR_maintenance4 + 2021-10-08 piotr.byszewski@mobica.com maintenance4: Add requirements matching tests + 2021-10-08 piotr.byszewski@mobica.com maintenance4: Add maxBufferSize limit tests + 2021-10-08 piotr.byszewski@mobica.com Extend decoration mismatch tests + 2021-10-08 piotr.byszewski@mobica.com Add tests for relaxed vector matching + 2021-10-08 piotr.byszewski@mobica.com Add tests for vector matching + 2021-10-08 piotr.byszewski@mobica.com Add decoration mismatch tests + 2021-10-08 pdaniell@nvidia.com Updated framework for VK_KHR_maintenance4 + 2021-10-08 pdaniell@nvidia.com Framework for VK_KHR_maintenance4 + 2021-10-08 gleese@broadcom.com Change RobustnessExt tests to use format_features2 + 2021-10-08 michal.jakubek@mobica.com Tests for VK_KHR_format_feature_flags2 extension + 2021-10-08 ari.suonpaa@siru.fi Add tests for VK_EXT_primitive_topology_list_restart + 2021-10-08 venni.ihanakangas@siru.fi Move anisotropic filtering support check to a function + 2021-10-08 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC timvp@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,angle-bots+autoroll-info@google.com + Change-Id: Ib2d4105f70a65b54c50dfebeaabe48b6693b1d25 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248161 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ca5e6f685c5d73b32bd729d5ed81115eaccbc9b3 +Author: Jamie Madill +Date: Wed Oct 27 11:28:08 2021 -0400 + + Vulkan: Fix accessing stale FB cached variable. + + This would happen when we start a query after deleting a + Framebuffer. + + Bug: chromium:1262091 + Change-Id: I595360bf55fe1757779669f168c95be802b70da5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248142 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit bbeba56a12dd3ffe9d3af12c94b915360d0ef2df +Author: Shahbaz Youssefi +Date: Wed Oct 27 04:56:50 2021 -0400 + + Switch to python3 in DEPS + + Bug: angleproject:6626 + Change-Id: I1ee7649f445804d637acc2a593df06277d26f0fd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244778 + Commit-Queue: Nico Weber + Reviewed-by: Nico Weber + +commit bc09d119479d13e3419715e6bcf52ec7fa2109a7 +Author: angle-autoroll +Date: Wed Oct 27 10:01:01 2021 +0000 + + Roll SwiftShader from 21810915c4f1 to d143249a93bc (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/21810915c4f1..d143249a93bc + + 2021-10-26 srisser@google.com Make git-hooks track with origin/main + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Id685fa7d80662122e0de5b4ad895ea3dfeb0b347 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246406 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ed1d809d2ac2a64e8fc08471fa5524f3cbfbe705 +Author: angle-autoroll +Date: Wed Oct 27 10:01:04 2021 +0000 + + Roll vulkan-deps from 06cd4429bf9e to e706a029a256 (10 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/06cd4429bf9e..e706a029a256 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/3afa350331..44b57597d8 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/92f21c9b21..1380cbbec1 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/17a5bacfa7..d997c83b10 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/87b2e6b02e..e200d91dc3 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I2887a2bf3ce1423a454b3adbf69c0da84df4fc21 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246539 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 10dee5b4e3d6c46ba132296d05fbbab5b72348a7 +Author: Nico Weber +Date: Tue Oct 26 21:42:11 2021 -0400 + + Run clang update script under python3 in angle + + Bug: chromium:1261812 + Change-Id: I01b0f6048ffa2273f6941ad3e6ca750cd61852f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246592 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 1d2752d84f497c8012af1f54b1b3ec52f9b5cc92 +Author: Alex Gough +Date: Tue Oct 26 11:41:58 2021 -0700 + + disable cfguards for all deqp tests + + Previous attempt[0] to fix this was too precise, this now disables + cfguards for angle tests at the angle_deqp (source_set, + shared_library, test) level. + + See crbug.com/1260874 - This works around a codegen bug for Windows + x86 that is blocking us landing CFG. + + Following now all pass: + + PASS: .\out\swangle\angle_deqp_gles2_tests.exe --use-angle=swiftshader --gtest_filter=dEQP.GLES2/functional_multisample_common_edge_big_quad --bot-mode + PASS: .\out\swangle\angle_deqp_egl_tests.exe --use-angle=swiftshader --gtest_filter=dEQP.EGL/functional_color_clears_multi_thread_gles1_other --bot-mode + PASS: .\out\swangle\angle_deqp_gles31_tests.exe --use-angle=swiftshader --gtest_filter=dEQP.GLES31/functional_state_query_texture_texture_2d_multisample_texture_swizzle_g_pure_int --bot-mode + + [0] https://chromium-review.googlesource.com/c/angle/angle/+/3241703 + + Test: CQ plus above + Bug: angleproject:6617 + Change-Id: I6d2647340592d3b9b5f2430d4fd077835528ef0b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244256 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 6e832bfe26aee2a132a7ffa6a13d2f2ca9d8274a +Author: angle-autoroll +Date: Wed Oct 27 07:01:21 2021 +0000 + + Roll Chromium from b7a27dd8face to 6e4379b531a3 (441 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b7a27dd8face..6e4379b531a3 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/0afcdef8ce..4703a8520d + * buildtools/linux64: git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148..git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4 + * buildtools/mac: git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148..git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/9b8228b4a9..26b101897f + * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/21acd3f622..bbd954d05f + * buildtools/win: git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148..git_revision:79c6c1b1a24c46df5a773cc61604bb5051ca6cf4 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/cf2207e083..847533d764 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/3b235c7e7c..f59fdc4257 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..b10243766b + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/378395bfb5..480c91d40b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/e193c0af0a..819fa9604c + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/3b242d6f87..b3ad7f71e0 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3ac732d74b..2ff429a7b7 + No update to Clang. + + Bug: angleproject:2551 + Tbr: timvp@google.com + Change-Id: I4a8cd6a0f37374313ef2fe559f8e1fb8f23a9673 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246537 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 421dbf200d361f661a7a79cb6d9cdc83df74ef6d +Author: Charlie Lao +Date: Tue Oct 26 19:06:19 2021 +0000 + + Revert "Vulkan: Use different strategy for buffer memory allocation" + + This reverts commit 0dbe308d91a3526e28fecd9014d873c649f4ef71. + + Reason for revert: crbug.com/1253325 + + Original change's description: + > Vulkan: Use different strategy for buffer memory allocation + > + > This CL uses different memory allocation strategy based on the requested + > size. If the requested size exceeds 1M, we use dedicated memory + > allocation to avoid memory waste associated with the sub-allocator. + > Otherwise we uses VMA's sub-allocator pool. This CL creates two sets of + > customized pool so that we uses different allocation strategy for each + > set of pool: the small pool uses buddy algorithm which favors speed over + > memory and large pool uses default algorithm that favors memory saving + > over speed. This CL also replaces vmaFindMemoryTypeIndexForBufferInfo + > with vmaFindMemoryTypeIndex to avoid create and destroy VkBuffer object + > just try to find memoryTypeIndex. + > + > Bug: b/195588159 + > Change-Id: I2bddbfffd77ba2ce6b9389d83a31051c4b748c4d + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939490 + > Commit-Queue: Charlie Lao + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Tim Van Patten + + Bug: b/195588159 + Change-Id: I2c8fe8cb2930d16f5212570d32be68e7c6a6e5f3 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244258 + Reviewed-by: Charlie Lao + Commit-Queue: Charlie Lao + Bot-Commit: Rubber Stamper + +commit 6b315a78453c17042ed53ee9b1f2a37e705ad059 +Author: Charlie Lao +Date: Tue Oct 26 19:04:06 2021 +0000 + + Revert "Vulkan: Let BufferVk call into VMA for allocation when possible" + + This reverts commit 894ce75fb2f75e718ce76e466b8938524f65ac07. + + Reason for revert: crbug.com/1253325 + + Original change's description: + > Vulkan: Let BufferVk call into VMA for allocation when possible + > + > Previously BufferVk class maintains a DynamicBuffer pool per BufferVk + > object. This CL makes BufferVk skip DynamicBuffer pool in most cases and + > do its own BufferHelper allocation directly. DynamicBuffer pool is only + > used when desired, which is controled by a flag. With this CL, only + > UBO/SSBO/AtomicBuffer will still use DynamicBuffer pool if the buffer + > has to be allocated more than once. + > + > Bug: b/195588159 + > Change-Id: I3aa08cef10ee9ee9f01f16403c6fbb99b37f4a8a + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901241 + > Commit-Queue: Charlie Lao + > Reviewed-by: Tim Van Patten + > Reviewed-by: Jamie Madill + + Bug: b/195588159 + Change-Id: Iecda3baa6bc887fa0caa86ab076994cae7c10f93 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244257 + Reviewed-by: Charlie Lao + Commit-Queue: Charlie Lao + Bot-Commit: Rubber Stamper + +commit 55bd8d8f9cfd9d484074ddee3d26e3d76ed5c1c9 +Author: Shahbaz Youssefi +Date: Tue Oct 26 10:38:28 2021 -0400 + + Translator: Fix precision bug in HLSL generation + + Bug: chromium:1263487 + Change-Id: I60bc3dc93867e4269756b6f54eb39cf29ad77d5f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244887 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 9ac2409e930a62b8fd4c41b5d4fbf0a124b5adb1 +Author: Tim Van Patten +Date: Tue Oct 26 00:55:06 2021 +0000 + + Reland "Vulkan: Flush descriptor set updates during flush*Commands()" + + This reverts commit 420e77a64e890ad4c585d72789ca59501be3ac75. + + Reason for revert: The crash is in ProgramExecutableVk::getOrAllocateShaderResourcesDescriptorSet(), which is unrelated to this change. Creating a CL to reland this (the reland button is failing), to try and investigate further. + + Original change's description: + > Revert "Vulkan: Flush descriptor set updates during flush*Commands()" + > + > This reverts commit 02b73c2fd738b237f1ab3ecd400feec222903a48. + > + > Reason for revert: Causes test to crash on Linux/Intel: anglebug.com/6591 + > + > Original change's description: + > > Vulkan: Flush descriptor set updates during flush*Commands() + > > + > > The intent of this CL is to reduce the number of descriptor set updates + > > by delaying the work until all of the GLES commands that could trigger a + > > re-update have been performed and the command stream is being flushed. + > > To achieve this, flushDescriptorSetUpdates() is being moved from + > > setupDraw()/setupDispatch() to + > > flushRenderPassCommands()/flushOutsideRPCommands(). + > > + > > This change also exposed an issue where the BufferView handles were not + > > being preserved until flushDescriptorSetUpdates() was called. To resolve + > > this, flushDescriptorSetUpdates() is also being called during + > > BufferViewHelper::release() before the BufferView memory is released. + > > + > > Bug: angleproject:5706 + > > Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19 + > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385 + > > Reviewed-by: Charlie Lao + > > Reviewed-by: Shahbaz Youssefi + > > Reviewed-by: Jamie Madill + > > Commit-Queue: Tim Van Patten + > + > Bug: angleproject:5706 + > Bug: angleproject:6591 + > Change-Id: I9d1ee3fcb3d1aebc86e60896e0065cab847a92b4 + > No-Presubmit: true + > No-Tree-Checks: true + > No-Try: true + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233901 + > Bot-Commit: Rubber Stamper + > Commit-Queue: Shahbaz Youssefi + + Bug: angleproject:5706 + Bug: angleproject:6591 + Change-Id: Ibc7e934b82e6cd90e766f43135583f7c45acfe39 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244024 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 6950c637835c567da6dcb78e765cce98ce9221a7 +Author: angle-autoroll +Date: Tue Oct 26 10:01:34 2021 +0000 + + Roll vulkan-deps from 19d99befaa5f to 06cd4429bf9e (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/19d99befaa5f..06cd4429bf9e + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/43eecb2360..29632959d2 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7326b494d0..17a5bacfa7 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/3e8a2188b5..87b2e6b02e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I23b8018d7dbf277496e3c992eddcd60a24df8e99 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3245138 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 411e94f56599ee3c0c101e491278c4fb38b9332d +Author: angle-autoroll +Date: Tue Oct 26 10:01:55 2021 +0000 + + Roll SwiftShader from c5e237273696 to 21810915c4f1 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c5e237273696..21810915c4f1 + + 2021-10-25 capn@google.com Delay extension support check until instance/device creation + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Iab4ba1bde3fcdd8a3b9ffbbd380e91b87f8028ab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244220 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d636ca1ad5e51d584897d950d42234480bcf382c +Author: angle-autoroll +Date: Tue Oct 26 09:23:13 2021 +0000 + + Roll Chromium from 9d26607df45d to b7a27dd8face (437 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9d26607df45d..b7a27dd8face + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/acad0f2115..0afcdef8ce + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/f5750f5bba..850fe71738 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e7d33e11b8..cf2207e083 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/e533cac788..3b235c7e7c + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c45ff7f0bb + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/372190eb3d..378395bfb5 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f4555781e5..3ac732d74b + * tools/skia_goldctl/mac: rhRaADork6USXDGEk0fWwnbWVaKKc0YLzENNVBVsHkAC..Ee-Y58INmdIA4z_rfmJjvZ-ljrcn-L2tk9nMJVDkidkC + No update to Clang. + + Bug: None + Tbr: timvp@google.com + Change-Id: I18a7db9d21bae5ce96514f87698bc4bbd18d7c05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3245137 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 894ce75fb2f75e718ce76e466b8938524f65ac07 +Author: Charlie Lao +Date: Fri May 21 10:59:14 2021 -0700 + + Vulkan: Let BufferVk call into VMA for allocation when possible + + Previously BufferVk class maintains a DynamicBuffer pool per BufferVk + object. This CL makes BufferVk skip DynamicBuffer pool in most cases and + do its own BufferHelper allocation directly. DynamicBuffer pool is only + used when desired, which is controled by a flag. With this CL, only + UBO/SSBO/AtomicBuffer will still use DynamicBuffer pool if the buffer + has to be allocated more than once. + + Bug: b/195588159 + Change-Id: I3aa08cef10ee9ee9f01f16403c6fbb99b37f4a8a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901241 + Commit-Queue: Charlie Lao + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 0dbe308d91a3526e28fecd9014d873c649f4ef71 +Author: Charlie Lao +Date: Fri Jul 16 14:26:20 2021 -0700 + + Vulkan: Use different strategy for buffer memory allocation + + This CL uses different memory allocation strategy based on the requested + size. If the requested size exceeds 1M, we use dedicated memory + allocation to avoid memory waste associated with the sub-allocator. + Otherwise we uses VMA's sub-allocator pool. This CL creates two sets of + customized pool so that we uses different allocation strategy for each + set of pool: the small pool uses buddy algorithm which favors speed over + memory and large pool uses default algorithm that favors memory saving + over speed. This CL also replaces vmaFindMemoryTypeIndexForBufferInfo + with vmaFindMemoryTypeIndex to avoid create and destroy VkBuffer object + just try to find memoryTypeIndex. + + Bug: b/195588159 + Change-Id: I2bddbfffd77ba2ce6b9389d83a31051c4b748c4d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939490 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 2ca35522660e780a13235d80c9c643dfb0e53faf +Author: Alex Gough +Date: Mon Oct 25 10:20:17 2021 -0700 + + Disable cfguard for tcu/depq test files + + These seem to be generated with bad unwinding and cause crashes when + exceptions are unwound. + + Specifically + + tcu::TestStatus RandomOrderExecutor::executeInner(TestCase *testCase, + const std::string &casePath) + + can be built with __declspec(guard(nocf). + + Test: CQ + .\out\swangle\angle_deqp_gles2_tests.exe --use-angle=swiftshader --gtest_filter=dEQP.GLES2/functional_multisample_common_edge_big_quad --bot-mode + Bug: angleproject:6617 + Change-Id: Iae75dc0f911a3430276909f4a14944d0f805fdf2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3241703 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit a02eb809aacb3b6e815f07126aec5aa8e74cad77 +Author: Kyle Piddington +Date: Tue Oct 19 20:09:43 2021 -0700 + + Metal: Allow zero-sized scissors + + Fixes the following ES2 tests: + dEQP-GLES2.functional.fragment_ops.scissor.outside_render_* + A zero sized scissor is a valid scissor rectangle. + Instead of ignoring this call, allow it. + + Bug: angleproject:6592 + Change-Id: Ifc5c145b43deae4a031025b63691eb2b54c598fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233935 + Commit-Queue: Kyle Piddington + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Gregg Tavares + +commit a800024023b40c93fef9184cd5aa8fe905dca25b +Author: Geoff Lang +Date: Tue Oct 5 13:12:22 2021 -0400 + + Don't release EGLImage refs until backends are respecified + + orphanImages is called before impl methods to respecify textures + and renderbuffers. This can cause the backend objects to reference + deleted images. TextureVk::handleImmutableSamplerTransition is one + such function that is called using "previousImage". + + Fix this by having orphanImages return a RAII object that deletes + the image when the caller chooses. In this case, after the impl + methods have been called to respecify the backend data. + + Bug: b/194432407 + Change-Id: Ifb265b4409ba43478731a1701e2409f089976b1d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206430 + Commit-Queue: Geoff Lang + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit d2c01d2ce5022ac386832929c74d2fcb41fe1669 +Author: Geoff Lang +Date: Fri Sep 17 12:57:14 2021 -0400 + + GL: Allow selecting virtualization groups at context creation + + Rewrite EGL_ANGLE_platform_angle_context_virtualization to + EGL_ANGLE_context_virtualization, changing the context virtualization + parameter to an identifier for what virtualization group the frontend + context should be added to. + + This allows ANGLE's GL backend to be used by multiple threads if the + user creates contexts with different virtualization groups. + + Bug: angleproject:6406 + Change-Id: I7414d4705ce10bdf63a9b824043d5dd040dad875 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169193 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Jamie Madill + Commit-Queue: Geoff Lang + +commit 48b605d845302dba7930788c9176fa0410dedb03 +Author: Shahbaz Youssefi +Date: Mon Oct 25 09:46:16 2021 -0400 + + Vulkan: Fix UBSAN error in CommandBatch + + CommandBatch doesn't initialize all fields, causing UBSAN errors in the + move constructor. + + Bug: chromium:1261861 + Change-Id: I46b963a415ccc08d3d9db40de98d1968eea311e8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3241544 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 7a8ad7cb90ff207617f440665ea054442fbf3855 +Author: angle-autoroll +Date: Mon Oct 25 10:01:34 2021 +0000 + + Roll vulkan-deps from 4b6798af71b9 to 19d99befaa5f (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4b6798af71b9..19d99befaa5f + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/38fd9221db..3afa350331 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/94dea2507e..43eecb2360 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/a9bc611dad..5a4c691700 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/11813abcad..3e8a2188b5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ibcb316a7549ba1a15512b4aefcb763ea06b2bf89 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3241242 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fc1fd31a5d3807d9e82a1be139e0053662e7d4c2 +Author: angle-autoroll +Date: Mon Oct 25 07:44:12 2021 +0000 + + Roll Chromium from 75578cc5e47d to 9d26607df45d (282 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/75578cc5e47d..9d26607df45d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/4d4596dc66..acad0f2115 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/be63497336..9b8228b4a9 + * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/6f77fbf9fa..21acd3f622 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/93811b76ab..e7d33e11b8 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e9a87dc9e5 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/7a6ff9824d..372190eb3d + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I9f0448d33ec2423aab41380da4b8ff6621a7688b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3240482 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b638d29d4009a57582cbd8f3639407bf0e75b1c8 +Author: Steven Noonan +Date: Wed Oct 20 18:30:48 2021 -0700 + + TransformFeedbackTest: fix buffer read overrun + + There were 5 floats there, but not 5 vertices (3x5 floats!). This + tripped the AddressSanitizer. + + Bug: angleproject:6600 + Change-Id: Ie3f96437b087b6ab897fdf451a90e9aac62c2403 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235905 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c6db6cb66a701cde93768177395aa445d9c19efd +Author: Shahbaz Youssefi +Date: Fri Oct 22 15:11:08 2021 -0400 + + Roll libunwind together with Chromium + + Bug: angleproject:6604 + Change-Id: I1232014324ecf5d571cc6357e024995a9ebc2f18 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237291 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Eric Boren + Commit-Queue: Shahbaz Youssefi + +commit 584f1b78cc48094744b6d1957ac8e51c8a36f8a5 +Author: Steven Noonan +Date: Thu Oct 14 17:55:47 2021 -0700 + + metal: fix crash when checking for flat attributes + + We can frontload the check of whether or not a shader program uses flat + interpolation for its attributes. + + This prevents a crash where an application does: + + glAttachShader + glLinkProgram + glDetachShader + glDeleteShader + + and the check tries to look at the shader attachments (which are no + longer valid). + + Also add some tests to ensure that detaching shaders after program link + doesn't cause crashes on indexed draws, and that the flat attribute + detection works across program save/load. + + Bug: angleproject:6526 + Signed-off-by: Steven Noonan + Change-Id: I70990808fdfd17608b4b720461cae1a0bdd064b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224663 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Kyle Piddington + Reviewed-by: Kenneth Russell + Reviewed-by: Tim Van Patten + +commit fb82ec3c3ad82f1458d407b7a3635f5d0a9b39a4 +Author: Steven Noonan +Date: Wed Oct 20 16:45:30 2021 -0700 + + FramebufferTest: fix read overruns in glTexImage2D upload + + The dimensions specified in glTexImage2D did not match the size of the + arrays of pixels. This was tripping AddressSanitizer, which noticed it + was reading past the end of the arrays. + + Bug: angleproject:4737 + Bug: angleproject:6600 + Change-Id: Ie9e1705136a4b7f853b3a897e3c294c953c475f6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235904 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 715b95f55859e9e9a853d3ff8b1ede6a2078aa22 +Author: Steven Noonan +Date: Wed Oct 20 16:44:47 2021 -0700 + + DrawBuffersTest: fix use-after-free bug + + The objects returned by toNormalizedVector() go out of scope after the + clearColor assignments are finished, so .data() pointers are invalid. + This tripped AddressSanitizer. + + Bug: angleproject:6600 + Change-Id: I1534490b38ef52202cead8c57b9462a56d09bf65 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235903 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit be9471985783641f0af2a6aa0aa61294d139563e +Author: Steven Noonan +Date: Wed Oct 20 17:33:34 2021 -0700 + + avoid reading past end of stack array in GetEnvironmentVar + + I ran into a case where GetEnvironmentVariableA returned a nonzero + value, but std::string() read past the end of the oldValue array when it + tried to strlen() it. + + It seems it tried to read an environment variable that was already huge, + because MSDN says: + + If lpBuffer is not large enough to hold the data, the return value + is the buffer size, in characters, required to hold the string and + its terminating null character and the contents of lpBuffer are + undefined. + + So if the buffer isn't large enough, it doesn't just truncate the value + (like GetModuleFilenameA would). It instead returns the size we would + need to allocate to store the value. It also vaguely states that the + contents of the buffer are undefined in this scenario, which means that + the std::array used here could still be filled with uninitialized data + without a null character in there. + + A better solution here is to use a FastVector, so we can resize it to + fit whatever variable we're reading (MSDN states the maximum environment + variable size is 32,767 characters, including the null terminator -- not + MAX_PATH as this code seems to have assumed). + + Bug: angleproject:6600 + Change-Id: I1582867578c5b879e71d58ab494a5134848b180f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235902 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit ee6721939459437ddfa422b204f0c66c3178d6ce +Author: Lubosz Sarnecki +Date: Wed Oct 6 16:51:42 2021 +0200 + + SurfaceVk: Use vkGetPhysicalDeviceSurfaceFormats2KHR. + + Use VK_KHR_get_surface_capabilities2 to determine if the requested + color space and surface format combination is supported. + + Create a DoesSurfaceSupportFormatAndColorspace helper function + and use vkGetPhysicalDeviceSurfaceFormatsKHR as a fallback + in a new DoesSurfaceSupportFormat helper function. + + Treat the surface format as not supported when a non-sRGB + colorspace was requested and VK_KHR_get_surface_capabilities2 + is not available. + + Move MapEglColorSpaceToVkColorSpace to anonymous namespace. + + Emit angle::Result::Incomplete if a suitable surface format is not + found. + + Bug: angleproject:2514 + Bug: b/201993125 + Change-Id: I28baf904cf8846ca575eaf83c93b3f593c1b63a2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208690 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Lubosz Sarnecki + +commit b4186c17fe1218c992bd7cb6e41d0c7aafa25711 +Author: angle-autoroll +Date: Fri Oct 22 10:01:36 2021 +0000 + + Roll vulkan-deps from f70ffc911963 to 4b6798af71b9 (11 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/f70ffc911963..4b6798af71b9 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/9290474dcf..38fd9221db + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/6d13c99273..94dea2507e + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f3fbd98ff5..7326b494d0 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/0162d1648f..a9bc611dad + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/cfe15faf1a..11813abcad + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I82348febc32151949d732180fd2e2a183a4a42f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3238577 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 673ddaa02d95036281bcacf4e88f4c30986bebe5 +Author: angle-autoroll +Date: Fri Oct 22 10:01:55 2021 +0000 + + Roll SwiftShader from 6683bca5f94e to c5e237273696 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/6683bca5f94e..c5e237273696 + + 2021-10-21 srisser@google.com Update git-hooks to latest version + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I44c692f5846e3235f1685358eaeb8e59f6fa99a7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237965 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b823c720eb9f224dfe1a0f02e67e07166fd0492a +Author: angle-autoroll +Date: Fri Oct 22 07:01:13 2021 +0000 + + Roll Chromium from af7960f051e8 to 75578cc5e47d (193 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/af7960f051e8..75578cc5e47d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/6e0530bf78..4d4596dc66 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/4c834abe6f..be63497336 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7f1b560fc2..93811b76ab + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e9a87dc9e5 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e023d44820..7a6ff9824d + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2b09788890..e193c0af0a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1ed010fa6e..3b242d6f87 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/75298278df..f4555781e5 + * tools/skia_goldctl/mac: Ee-Y58INmdIA4z_rfmJjvZ-ljrcn-L2tk9nMJVDkidkC..rhRaADork6USXDGEk0fWwnbWVaKKc0YLzENNVBVsHkAC + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com + Change-Id: Id8c7f4bbb2e40209f754e09ab9d0e054244480b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3238569 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9e8c929e7df9889ba9f40eeb52f569716cbd1a6b +Author: Steven Noonan +Date: Wed Oct 20 17:19:02 2021 -0700 + + FastVector: fix stack read overrun in ensure_capacity + + mSize should not be set until *after* calling ensure_capacity, otherwise + we will read past the end of our statically allocated buffer when + initializing the new array. + + This was caught by AddressSanitizer during one of the Vulkan BasicDraw + tests, when compiling a shader to SPIR-V. + + Bug: angleproject:6600 + Change-Id: I9ddb326d03ce5cda23973110e63d30b8829da2f6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235901 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 53b96df946bae2dd0c9938ec05962ac064c00e8f +Author: Shahbaz Youssefi +Date: Thu Oct 21 14:48:37 2021 -0400 + + Roll vulkan-deps from 59f9313742fc to f70ffc911963 (16 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/59f9313742fc..f70ffc911963 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/6351fcef28..9290474dcf + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/e4243b898c..6d13c99273 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/19e8350415..92f21c9b21 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/001604bd4a..f3fbd98ff5 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/dd99e0f51f..d594f70127 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/f524349518..0162d1648f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d3c917b9bf..cfe15faf1a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Change-Id: I365b37fa532dabf1ff1940188cef9340da0fd3ed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237828 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 52934a5dec6d0a72a4e27272c467dc02ca31e2da +Author: Shahbaz Youssefi +Date: Mon Oct 4 22:19:30 2021 -0400 + + Vulkan: Use the UNDEFINED layout for ExternalPreInitialized + + According to the spec, the UNDEFINED layout does not invalidate the + memory of external images. + + Bug: angleproject:6460 + Change-Id: I682e8c3501cc52431268ff2c3a063467ba9d2a65 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203796 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 7163d9e6db44ea500bfe40feafffee93a39d1b82 +Author: angle-autoroll +Date: Thu Oct 21 18:45:56 2021 +0000 + + Roll Chromium from 3601990474ad to af7960f051e8 (157 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3601990474ad..af7960f051e8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ee9068db6a..6e0530bf78 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b3b5060e52..7f1b560fc2 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/93c5e2d335..e533cac788 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2d036344bd + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ed33756c68..e023d44820 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/51a305b265..75298278df + * tools/skia_goldctl/mac: uNABaGj6En3IVtFLWvrw2nXvWtpM4JVX0Yynz3_7Yr0C..Ee-Y58INmdIA4z_rfmJjvZ-ljrcn-L2tk9nMJVDkidkC + No update to Clang. + + Bug: angleproject:6037,angleproject:6527 + Tbr: syoussefi@google.com + Change-Id: Id9219ab9f20b21499e3233c4502d01b9b2889b50 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237667 + Bot-Commit: angle-autoroll + Commit-Queue: Shahbaz Youssefi + +commit 39f7e9b42bf0ca72dd6e75442da717c56aaee3fc +Author: Shahbaz Youssefi +Date: Wed Oct 20 21:51:27 2021 -0400 + + Doc: Clarify purpose of listed build options in DevSetup.md + + This file lists a number of commonly overriden build options for + development or special platforms, but was mistakenly taken as a set of + "recommended" options. + + Bug: angleproject:1944 + Change-Id: Ia50b45724797d5ab071936997b485f9f80a72704 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3234079 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 4c2c6bd29158b7285ee0bbdc4a52d1131d2c5187 +Author: Steven Noonan +Date: Wed Oct 20 16:43:51 2021 -0700 + + vulkan: fix read overrun in commonDebugUtilsLabel + + The size of the incoming string should be the 3rd argument to + storePointerParameter(), not the aligned string size value. If we use + the latter, we read past the end of the incoming string. This tripped + the AddressSanitizer during the object label tests. + + Bug: angleproject:6600 + Change-Id: Idd72353803661684057753f5b01bb69af1d4a141 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235900 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 290d21eb964412293ece2ff7e2dcc41d6d00854b +Author: Sergey Ulanov +Date: Thu Oct 21 00:11:02 2021 +0000 + + Enable SwiftShader on Fuchsia + + SwiftShader is currently used on Fuchsia test bots. Enable SwiftShader + in Angle on Fuchsia. + + Bug: chromium:1225002 + Change-Id: I42beac94692d16987ce3bdf80abd629540a1b31f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233273 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit a716d88a51b2deb428f2f99a948fb2770a09dbd9 +Author: Shahbaz Youssefi +Date: Thu Oct 21 11:38:42 2021 -0400 + + Roll Chromium from 0d66e54fc44e to 3601990474ad (437 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/0d66e54fc44e..3601990474ad + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/d50a437691..ee9068db6a + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/aa2fb0187c..f5750f5bba + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/025086bfe7..4c834abe6f + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/1acfcd28c1..b3b5060e52 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/e7c7291277..14a17ad53a + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2d036344bd + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b6ce244503..ed33756c68 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c990ea1afe..2b09788890 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/a2b665b90f..1ed010fa6e + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/df163762a1..51a305b265 + * tools/skia_goldctl/linux: gBAjq66wEoX-xg7SYwdl9IwTb41P6_uogFXZWqmg42cC..odChSNaPr6zCeStFFbBuHC29-LH02C49Bm_9htJrpagC + * tools/skia_goldctl/mac: s5FQ4at83HB6cms6U4yFCQ-DS8LAIk6BsYD0SYwtiyMC..uNABaGj6En3IVtFLWvrw2nXvWtpM4JVX0Yynz3_7Yr0C + * tools/skia_goldctl/win: waM0kUtv5T9ysntYENPWn_NyN14lIcqEDgfIaITeL0gC..wgZW1xuI0RPDHDd63jpbn9w5KS6PRzkQrSqOp-Em3gQC + No update to Clang. + + Bug: angleproject:6037,angleproject:6527 + Bug: angleproject:6604 + Change-Id: I50bf083ec87360b78ee34da8824338f361a2bd8b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237387 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 7ef9ecf0a6c8546ad3d41eff69f0129f623a35cf +Author: Jamie Madill +Date: Fri Oct 15 14:38:03 2021 -0400 + + Add GL_ANGLE_robust_fragment_shader_output. + + This extension codifies expected behaviour on Android, where some + applications don't declare shader outputs that are active with the + Framebuffer. + + Bug: angleproject:6566 + Change-Id: I3538a0aca25b6567e4b11e40d4611f1b240579c7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226724 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 397a27bbd43f42eac67a38a01c718bf70ade09d1 +Author: Steven Noonan +Date: Wed Oct 20 20:33:20 2021 -0700 + + VertexArray: on destroy, remove observer on element array buffer + + Otherwise there will be a null pointer dereference in + gl::Buffer::onContentsChange(). + + Signed-off-by: Steven Noonan + Bug: angleproject:6599 + Change-Id: I73388b6d0ccc357ca1944452a18ccf462dd8046c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236206 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 85515acf149e200e5306d464d6322520d22ad88a +Author: angle-autoroll +Date: Thu Oct 21 10:01:55 2021 +0000 + + Roll SwiftShader from 2a86d62642ce to 6683bca5f94e (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/2a86d62642ce..6683bca5f94e + + 2021-10-21 sergeyu@google.com [Fuchsia] Fix Vulkan compilation + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I490d36324f498577a2b014736e049bb99e651504 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235704 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 66e8faf7e5bbd264870285638c34014c6b745838 +Author: Jamie Madill +Date: Wed Oct 20 14:06:08 2021 -0400 + + Remove ProgramExecutable's "isCompute" property. + + This consolidates the lists of uniforms, ssbos, etc into one. + Requires a few checks to change from graphics shader stages into + all shaders. + + Bug: angleproject:6596 + Change-Id: Ic8f6bfc4fa295c3bea9f5f1ded11e8fbca1c3164 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233361 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit aac5d67845a900573f51a983be2eee1bbb2c1ca6 +Author: Jamie Madill +Date: Wed Oct 20 11:48:57 2021 -0400 + + Make "isCompute" private to ProgramExecutable. + + This eliminates uses of "isCompute" is the Vulkan back-end. Instead + of checking the state flag, we can use the context of the current + command to determine if we're running a compute or a graphics + command. This will eventually lead to us being able to compile the + program pipeline objects before we run a draw or dispatch command. + + Changes the driver uniforms descriptor desc to bind to both graphics + and compute shader stages to simplify the code. This could have + theoretical but low-risk performance implications. + + Bug: angleproject:6595 + Change-Id: Ie30d419b6ece5b33f5066a034d3805fe96519b36 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233903 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit bdc633a8057ef1a688f7b89c05d83fd4028ebc71 +Author: Jamie Madill +Date: Wed Oct 20 12:33:42 2021 -0400 + + Pass command type down to ContextImpl::syncState. + + This mirrors the command type passed to the object sync functions. + It will be useful to determine if we're syncing for a draw or a + dispatch call. + + Bug: angleproject:6595 + Change-Id: Ia04bd14a3c2dd2eb211c47a6e55f8ddcbfedfaaa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233904 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit c621fd979eed2877cb824f01cc59a49c40e397fd +Author: Gert Wollny +Date: Tue Oct 12 20:09:49 2021 +0200 + + Capture/Replay: capture some ProgramPipeline parameters + + Bug: angleproject:6561 + Change-Id: Iff99153c0399f316d973b15fd55821a722401b07 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220634 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit f020c7135f241182fe0e531cded78b7409457d7d +Author: Gert Wollny +Date: Tue Oct 12 20:29:15 2021 +0200 + + Capture/Replay: Allow capturing Gen/Delete with zero elements + + This is allowed, and hence the capture/replay should also work. + + Bug: angleproject:6558 + Change-Id: Iae40e2870f9ff121c8396ee4c0caf0905d3fd84c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220632 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 8b627444c7c2c75b15d3f8f1a527d9d6231a8ed2 +Author: Gert Wollny +Date: Wed Oct 13 10:58:40 2021 +0200 + + Capture/Replay: capture program with ActiveShaderProgram too + + Here the program parameter is the second parameter, so + UpdateCurrentProgram needs some refactoring too, to support + specifying the parameter position. + + Bug: angleproject:6560 + Change-Id: Iea08e1c0b7271bcd82aba64898cec76c09edefbb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220690 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit b06606b992914f229fd6157ba10014f9b81ac5c4 +Author: Cody Northrop +Date: Wed Oct 20 14:45:02 2021 -0600 + + Tests: Add Zillow trace + + Test: angle_perftests --gtest_filter="*zillow*" + Bug: b/203693727 + Bug: angleproject:6596 + Change-Id: If1a29c452de60b124b234645953a6a8a53a35b67 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235480 + Commit-Queue: Tim Van Patten + Reviewed-by: Tim Van Patten + +commit 5a682795ccf9b50a5c245355f3054377be696b97 +Author: Cody Northrop +Date: Tue Oct 19 18:10:43 2021 -0600 + + Capture/Replay: Fix glAttachShader filtering + + Dota Underlords capture was filtering shaders that should be active. + It is using a pattern that creates shaders in advance, then attaches + them in later frames. This requires MEC to setup the shader, but + not the program. + + We were failing to set those active because glAttachShader refers to + two ShaderProgramIDs, and we've only been scanning for the first in + any given API call: + + glAttachShader(gShaderProgramMap2[1], gShaderProgramMap2[2]); + + This CL fixes it by scanning for all ShaderProgramIDs in each call. + + Test: Dota Underlords MEC + Bug: angleproject:5857 + Change-Id: I1f76ad3345178cdfeb00479a84489dd363858e13 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233875 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 78ae5d70b71077e86a4de32212c3da6241c83e6c +Author: Tim Van Patten +Date: Wed Oct 20 12:15:33 2021 -0600 + + Vulkan: Remove support for GL_RGB8 from DisplayVkAndroid + + The Android Vulkan loader doesn't support GL_RGB8, so remove it from + DisplayVkAndroid::generateConfigs(). + + The list of supported swapchain formats is available at: + https://cs.android.com/android/platform/superproject/+/master:frameworks/native/vulkan/libvulkan/swapchain.cpp;l=465-486?q=GetNativePixelFormat + + This fixes launching the Zillow app. + + Bug: angleproject:6277 + Change-Id: I34f06e2b45a1de77864701462bf11712285b7ae2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235466 + Commit-Queue: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Ian Elliott + +commit 43fd49e60c71f51cb65d2f5a25c5fff7f39b0b1a +Author: Kyle Piddington +Date: Tue Oct 19 14:42:57 2021 -0700 + + Metal: Add Shadow Sampler Grad workaround for AMD + + This change allows the direct translator to + use emulated gradient shadow compare functions for + AMD devices, and devices that don't support shadow compare + sampler. + + Bug: angleproject:5107 + Change-Id: I8cc8dcb6e6982531c2a858782869283e6dc97052 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232818 + Commit-Queue: Kyle Piddington + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Kenneth Russell + +commit 5ad7ae4a0266752e6ebefd06a12e230dcf49d691 +Author: Jamie Madill +Date: Wed Oct 20 11:15:43 2021 -0400 + + Remove Nexus 5X expectations from dEQP tests. + + Bug: angleproject:2322 + Bug: angleproject:3308 + Bug: angleproject:3309 + Bug: angleproject:3434 + Bug: angleproject:3715 + Bug: angleproject:3716 + Bug: angleproject:5169 + Bug: angleproject:5184 + Bug: angleproject:5665 + Bug: angleproject:6527 + Change-Id: If64efe229e12bb2a0bd4fe7f942899000a7aad76 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233902 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 420e77a64e890ad4c585d72789ca59501be3ac75 +Author: Shahbaz Youssefi +Date: Wed Oct 20 15:02:45 2021 +0000 + + Revert "Vulkan: Flush descriptor set updates during flush*Commands()" + + This reverts commit 02b73c2fd738b237f1ab3ecd400feec222903a48. + + Reason for revert: Causes test to crash on Linux/Intel: anglebug.com/6591 + + Original change's description: + > Vulkan: Flush descriptor set updates during flush*Commands() + > + > The intent of this CL is to reduce the number of descriptor set updates + > by delaying the work until all of the GLES commands that could trigger a + > re-update have been performed and the command stream is being flushed. + > To achieve this, flushDescriptorSetUpdates() is being moved from + > setupDraw()/setupDispatch() to + > flushRenderPassCommands()/flushOutsideRPCommands(). + > + > This change also exposed an issue where the BufferView handles were not + > being preserved until flushDescriptorSetUpdates() was called. To resolve + > this, flushDescriptorSetUpdates() is also being called during + > BufferViewHelper::release() before the BufferView memory is released. + > + > Bug: angleproject:5706 + > Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385 + > Reviewed-by: Charlie Lao + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + > Commit-Queue: Tim Van Patten + + Bug: angleproject:5706 + Bug: angleproject:6591 + Change-Id: I9d1ee3fcb3d1aebc86e60896e0065cab847a92b4 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233901 + Bot-Commit: Rubber Stamper + Commit-Queue: Shahbaz Youssefi + +commit d8c18ac6d819341d3a693556e11671182031cf9d +Author: Jamie Madill +Date: Fri Oct 8 13:00:19 2021 -0400 + + Re-land: "Isolate commit_id.h from other code." + + Re-land limits the angle_version deps to Windows to fix an iOS + visibility rule violation in GN. + + Instead of recompiling multiple source files, we can seal off the + files that include commit_id to prevent recompilations when the + commit changes and source files don't change. + + Bug: angleproject:2551 + Change-Id: I033f00ec7afe4bfd01e29e0eea8848eea27747a0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233899 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 4b75345a7d3b11605975b4a4e4fb22e9d5128c82 +Author: Shahbaz Youssefi +Date: Wed Oct 6 22:47:16 2021 -0400 + + Vulkan: Don't create pipeline with depthWrite if !depthTest + + depthWrite is ineffective without depthTest. This change makes sure + that depthWrite/depthTest combinations of true/false and false/false + generate the same Vulkan pipeline. + + Bug: angleproject:6410 + Change-Id: I47e1524379d40dfb956f026903e0affc7f4fc59d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210628 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 5ab95ec3448f968e452a5603b68ebf3c383e09aa +Author: Jamie Madill +Date: Wed Oct 20 10:07:10 2021 -0400 + + infra: In milo, split console into 'compile' and 'test'. + + This will provide an easier-to-read summary for wranglers because + test failures will be grouped instead of spread out in between + compile builders. + + Bug: angleproject:6496 + Change-Id: I45e2f1a868d887de22133684aa0b4821ed4c8f84 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233900 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 0fb59c09ee8b8043401782a91b057cf68d519117 +Author: Jamie Madill +Date: Mon Oct 18 08:25:26 2021 -0400 + + infra: Remove old bot configs. + + This can be landed after the change to switch the CQ to the new + configs. + + Bug: angleproject:6496 + Change-Id: I3b6ec4697a2fa7a279e5a761ea1717f652af84a1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231835 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e5dafc33150b25a3728389c4a5e1b30f5d0a0b7d +Author: angle-autoroll +Date: Wed Oct 20 11:08:57 2021 +0000 + + Roll SwiftShader from 85101b9ec148 to 2a86d62642ce (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/85101b9ec148..2a86d62642ce + + 2021-10-20 swiftshader.regress@gmail.com Regres: Update test lists @ 6b700ffc + 2021-10-19 srisser@google.com Add VK_KHR_shader_integer_dot_product structs + 2021-10-19 swiftshader.regress@gmail.com Regres: Update test lists @ 85101b9e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I49c11a73546735784c1c9b8d292c499b2ce62313 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3234358 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9a7b62ad40d5686af7a9457087bc8d1183d3efd6 +Author: Mohan Maiya +Date: Tue Oct 19 15:21:31 2021 -0700 + + Remove glext_angle.h, merge contents into gl2ext_angle.h + + Currently glext_angle.h file, which is for GLES 1.x, has enums for + GL_ANGLE_yuv_internal_format which is an ES 3.0+ extension. + Merge contents of glext_angle.h into gl2ext_angle.h and remove + glext_angle.h + + Bug: angleproject:6579 + Change-Id: Iec5427af131888a2d9c473f4f497afb71dcafdac + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232822 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 066fb91b41d2ccb6db036cb1c02a0699d5f92aa1 +Author: Shahbaz Youssefi +Date: Mon Oct 18 15:31:27 2021 -0400 + + Vulkan: SPIR-V Gen: Handle scalar(const) produced by index clamp + + Normally scalar(const) is folded into a constant. The index clamp + transformation may produce such a code where the index looks dynamic at + first (for example `false ? uniform_value : constant`), but becomes + constant after folding. + + This change makes SPIR-V generation robust in that case. A potential + future change could avoid the clamp entirely by making FoldExpressions + adjust the op of the EOpIndexIndirect node whose index is being replaced + with a constant with EOpIndexDirect (and apply the clamp on the + argument). + + Bug: chromium:1260651 + Change-Id: I552b7527d821d1cb52e0e53212cc481285674861 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226311 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit ca127443c8194b75e123779e5f0a96c9041bbbbf +Author: angle-autoroll +Date: Wed Oct 20 10:01:34 2021 +0000 + + Roll vulkan-deps from fe06f6ff26f8 to 59f9313742fc (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/fe06f6ff26f8..59f9313742fc + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/7f1d926a3a..6351fcef28 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/4578db3c41..001604bd4a + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f857c9258c..d3c917b9bf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I0a62cbf70784160e839aa8945a12d8caec00fd06 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233943 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 660c44db1e2720c553353b3b34ca386b6f995ce1 +Author: angle-autoroll +Date: Wed Oct 20 07:40:13 2021 +0000 + + Roll Chromium from 0d22e489aa33 to 0d66e54fc44e (485 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/0d22e489aa33..0d66e54fc44e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/40338b8d2a..d50a437691 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/cc9c74dc19..1acfcd28c1 + * third_party/android_build_tools/aapt2: QTle7uOqwUcpHkoK4T62iuIj5-BlSM7NC9sR8su220IC..oJ_fhfmT6sLorimH6Eo6hwWS2R2gU0c4ZUQfXvzae1UC + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2d036344bd + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/650f853ced..b6ce244503 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/51064c3ff6..c990ea1afe + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/aec1c87de6..a2b665b90f + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b403a49da0..df163762a1 + * tools/skia_goldctl/mac: uNABaGj6En3IVtFLWvrw2nXvWtpM4JVX0Yynz3_7Yr0C..s5FQ4at83HB6cms6U4yFCQ-DS8LAIk6BsYD0SYwtiyMC + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I8ebe976da6349e7fca82d38b3a7eba52aa284472 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233938 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ef237faf660c53cdf4e648aa8ccf435466b90d45 +Author: Shahbaz Youssefi +Date: Mon Oct 18 16:22:40 2021 -0400 + + Translator: Validate precision for function args + + In fragment shaders, float does not have a default precision. Any + declaration of this type must therefore specify the precision if a + default one is not provided. + + This was not validated for function arguments. + + Bug: chromium:1255089 + Change-Id: I0d17e226ec88610692ec7dd18793cf4d471f12e7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226314 + Reviewed-by: Geoff Lang + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 02b73c2fd738b237f1ab3ecd400feec222903a48 +Author: Tim Van Patten +Date: Wed Jul 14 15:45:47 2021 -0600 + + Vulkan: Flush descriptor set updates during flush*Commands() + + The intent of this CL is to reduce the number of descriptor set updates + by delaying the work until all of the GLES commands that could trigger a + re-update have been performed and the command stream is being flushed. + To achieve this, flushDescriptorSetUpdates() is being moved from + setupDraw()/setupDispatch() to + flushRenderPassCommands()/flushOutsideRPCommands(). + + This change also exposed an issue where the BufferView handles were not + being preserved until flushDescriptorSetUpdates() was called. To resolve + this, flushDescriptorSetUpdates() is also being called during + BufferViewHelper::release() before the BufferView memory is released. + + Bug: angleproject:5706 + Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385 + Reviewed-by: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit bf42f0096f57ed0bee779d1d808e2f18475764a4 +Author: Gregg Tavares +Date: Tue Oct 19 11:25:20 2021 -0700 + + Update bug number for point clipping AMD metal + + Bug: angleproject:6589 + Change-Id: Ibc33b9870ab566c2b36caa2b6ccdeb256078d3cf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232286 + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 83bb270544b699fb911c318574a95469e5433dd1 +Author: Gregg Tavares +Date: Tue Oct 19 15:20:41 2021 -0700 + + Update bug numbers in dEQP test expectations + + Bug: angleproject:6080 + Change-Id: Ic0fa2c41b9a132cdebfd81dfd6137cf6623632c0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232820 + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit d3753039db36035f8f64826366a59e87e7556d86 +Author: Lubosz Sarnecki +Date: Thu Oct 14 17:21:47 2021 +0200 + + Reland "RendererVk: Enable VK_KHR_image_format_list on SwiftShader." + + This is a reland of 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61 + + Original change's description: + > RendererVk: Enable VK_KHR_image_format_list on SwiftShader. + > + > This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba. + > + > Bug: angleproject:5281 + > Bug: chromium:1245774 + > Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679 + > Commit-Queue: Lubosz Sarnecki + > Commit-Queue: Jamie Madill + > Reviewed-by: Jamie Madill + + Bug: angleproject:5281 + Bug: chromium:1245774 + Bug: chromium:1260941 + Change-Id: Ic6992bcc4b44aa16a2931271350a6f6d2a23d9c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232555 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit eee3936bcd8ba92cc417713302c75ed6a0683237 +Author: Gert Wollny +Date: Tue Oct 12 20:08:27 2021 +0200 + + libANGLE: Assert on mExecutable when syncing images + + In the loop in syncImagesInit mExecutable is dereferenced + and mProgram is not even touched, so assert on mExecutable + + Bug: angleproject:6557 + Change-Id: Icf482bda281c574e952113a97cbaf1e1d93fc1e3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220631 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit e0de97cf2de7b938cf52b0cb8e1a48c1381f423a +Author: Jamie Madill +Date: Mon Oct 18 08:29:50 2021 -0400 + + infra: Remove SwANGLE bots from CQ. + + These configs are now included in win-tests and linux-tests. + + Bug: angleproject:6496 + Change-Id: I1ab3961e74bde6672617e4494027da1ff490b352 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226302 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e637e4c93b61c02bcba33b280d1b03288f198fb0 +Author: Shahbaz Youssefi +Date: Mon Oct 18 13:54:00 2021 -0400 + + Vulkan: Optimize updating blend state in pipeline desc + + Updating blend funcs and equations always updated all 8 slots. Now + that's only done for the attachments that are present. + + Bug: angleproject:6298 + Change-Id: I58fa7e4dfa27d05fef54cc9d56c7b2aa5ef43dd8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202550 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 7defdb604414192742a524af1d0835b358ef5397 +Author: Shahbaz Youssefi +Date: Tue Oct 19 14:07:07 2021 +0000 + + Revert "Isolate commit_id.h from other code." + + This reverts commit 6d7ebf656d06f1152967aa5f4457d3787a24732c. + + Reason for revert: Suspected reason for failing ANGLE roll into Chromium + + Original change's description: + > Isolate commit_id.h from other code. + > + > Instead of recompiling multiple source files, we can seal off the + > files that include commit_id to prevent recompilations when the + > commit changes and source files don't change. + > + > Bug: angleproject:2551 + > Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895 + > Commit-Queue: Jamie Madill + > Reviewed-by: Geoff Lang + > Reviewed-by: Jonah Ryan-Davis + + Bug: angleproject:2551 + Bug: angleproject:6588 + Change-Id: I19f41141f57d0683efb9a4ec043e078a9f7dc925 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226056 + Bot-Commit: Rubber Stamper + +commit 7fea17b9722c7785608a0eb823fe76fb1c32aa01 +Author: Jamie Madill +Date: Tue Oct 19 11:08:26 2021 -0400 + + infra: Add new configs to CQ. + + This leaves the old configs in place. We can't remove them + until the CQ bots switch over. + + Bug: angleproject:6496 + Change-Id: Id9ee70cfd65cd85a7525b42f08d78873f31a7cd8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226301 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 4bb0a7af9d5a6f201ce6fcce0ed614bb12409dac +Author: Shahbaz Youssefi +Date: Mon Oct 18 12:14:04 2021 -0400 + + Vulkan: Async Queue: Fix signal of external semaphores + + Per the Vulkan spec: + + > ... when a semaphore wait operation is submitted to a queue: + > + > - A binary semaphore must be signaled, or have an associated semaphore + > signal operation that is pending execution. + + It is incorrect for ANGLE to defer the submission that signals an + external semaphore, because then it's impossible for the application to + know when it can wait on the semaphore. + + Bug: angleproject:6574 + Bug: b/172704839 + Change-Id: I5469b500b2f7d402acec31d9848585a9947843c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226308 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit c9e0da8e5182d75216a63e0ec886552853ecb945 +Author: Shahbaz Youssefi +Date: Mon Oct 18 13:54:00 2021 -0400 + + Vulkan: Improve wording in DeferredClears.md + + Bug: angleproject:1944 + Change-Id: I268e8191cfb7aeb16e33c1f9b39382461c5ac3e7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226310 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Mohan Maiya + Reviewed-by: Jamie Madill + +commit aa630727e34a2d30c9b3a0d260499f883fb27006 +Author: Weiwei Lin +Date: Mon Oct 18 00:16:51 2021 +0000 + + [milo] migrate to new bug_url_template + + The old way of specifying bug template is deprecated. + + R: geofflang, jmadill + Bug: chromium:1218698 + Change-Id: I1b3dc9b4ebb3bdcbd6a1f574209f30a8b27f129e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230302 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 1d1b75735026e575017cf3e67a3ca13621193712 +Author: Gert Wollny +Date: Wed Oct 13 09:24:53 2021 +0200 + + Capture/Replay: Skip binary formats test when none are supported + + During capture/replay the number of supported binary formats is set to + zero, so the test can't run successfully, hence skip it. + + Bug: angleproject:6559 + Change-Id: Iabff38669bd6bbbbec770888ae940be3961b136e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220633 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit a213d0d2519c07151726f545b1b830456c6103a7 +Author: angle-autoroll +Date: Tue Oct 19 10:01:34 2021 +0000 + + Roll vulkan-deps from a9d8c46f2b61 to fe06f6ff26f8 (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/a9d8c46f2b61..fe06f6ff26f8 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/b9ba4c5743..7f1d926a3a + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/35fd0e17d0..4578db3c41 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/61688e09fe..f524349518 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/78b1f89454..f857c9258c + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I4ce4d083db48202aa306b7d5f8fda580cbd460b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230337 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b8131bf45660fdcadbb2dc6614efde49d0f7e16c +Author: angle-autoroll +Date: Tue Oct 19 10:01:56 2021 +0000 + + Roll SwiftShader from 33eaf1f76b60 to 85101b9ec148 (7 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/33eaf1f76b60..85101b9ec148 + + 2021-10-19 capn@google.com Avoid SPIR-V binary identifier clashes + 2021-10-19 capn@google.com Avoid recompiling identical SPIR-V binaries + 2021-10-19 capn@google.com Store the SPIR-V binary of a vk::ShaderModule in an sw::SpirvBinary + 2021-10-18 sugoi@google.com Fix uninitialized memoryOwner on unused DescriptorSet + 2021-10-18 sugoi@google.com Fix BC6h decoder + 2021-10-18 sugoi@google.com Fix blitting of various packed formats + 2021-10-18 srisser@google.com Update Vulkan headers to version 1.2.196 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I901482bde712e84c14748436fdcb25da57df4595 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230336 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2e0e9e8abc90dbe8fc5b1992a2b3804fcef60195 +Author: angle-autoroll +Date: Tue Oct 19 07:01:14 2021 +0000 + + Roll Chromium from 54930e1ff6ee to 0d22e489aa33 (634 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/54930e1ff6ee..0d22e489aa33 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/3df8a59b75..40338b8d2a + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/a9bc3e2831..aa2fb0187c + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/198699532a..025086bfe7 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/faf29ca944..cc9c74dc19 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2d036344bd + * third_party/nasm: https://chromium.googlesource.com/chromium/deps/nasm.git/+log/335fe83e13..9215e8e1d0 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/eff3136246..aec1c87de6 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/de168d1b50..b403a49da0 + * tools/skia_goldctl/mac: s5FQ4at83HB6cms6U4yFCQ-DS8LAIk6BsYD0SYwtiyMC..uNABaGj6En3IVtFLWvrw2nXvWtpM4JVX0Yynz3_7Yr0C + No update to Clang. + + Bug: angleproject:6501 + Tbr: syoussefi@google.com + Change-Id: I37c0d584aa61e15860a5544e1310e97132e58e4a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230333 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7f87a326e8784dd68151d33ad2335e481d80e50b +Author: Shahbaz Youssefi +Date: Mon Oct 18 13:06:29 2021 -0400 + + Vulkan: SPIR-V Gen: Fix crash in array of struct constant + + Bug: chromium:1260690 + Change-Id: I51fe85a2ebc23c3fcaa3c961c4ebf84688bbed31 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226309 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 9a323cd05e9e5d779a1c79face63ae5301d0bc05 +Author: Shahbaz Youssefi +Date: Mon Oct 18 22:02:46 2021 -0400 + + Vulkan: Suppress failing test on AMD/Linux + + EXTBlendFuncExtendedDrawTest.FragData/* has started flaking for an + unknown reason. This test has multiple suppressions for the Vulkan + backend on different hardware. + + Bug: angleproject:6585 + Change-Id: I7b97c8210a0846bbc6935812fcad743291c516be + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230522 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit bb0e0dead25848d4631d8ec11d5f9df57d7aeb0f +Author: Shahbaz Youssefi +Date: Mon Oct 18 21:46:44 2021 -0400 + + Roll vulkan-deps from 5be75e2ae595 to a9d8c46f2b61 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/5be75e2ae595..a9d8c46f2b61 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/06ebc4806b..35fd0e17d0 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/6d9e5b07d6..61688e09fe + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/77cd59ba80..78b1f89454 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6584 + Change-Id: I8da9da9f82ccaf781d89a4f7975fb7520d3b6b28 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226052 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit e2e77baa1381d9df741bf5e3b9479f4e9ef3c361 +Author: Cody Northrop +Date: Mon Oct 18 16:04:43 2021 -0600 + + Revert "Revert "Translator: Remove the SH_VALIDATE flag"" + + This reverts commit 701e8892f45e6f416dcbb0d23a155d346d0280fa. + + Reason for revert: Chromium dependency fixed in http://crrev/c/3214440 + + Original change's description: + > Translator: Remove the SH_VALIDATE flag + > + > The SH_VALIDATE flag is a noop, defined as zero (0). + > + > Also move option descriptions up in the file. + > + > Bug: angleproject:6501 + > Change-Id: I898106eb68b4508d8f94534cbff66652a69f4f3e + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207360 + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Cody Northrop + + Bug: angleproject:6501 + Change-Id: I4d1514d6ac04e5bedf3624facf8e9339828fa291 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229955 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 670b58d8c5706b0b6775bbb5b0a9f96c847a30eb +Author: Shahbaz Youssefi +Date: Mon Oct 18 19:50:10 2021 +0000 + + Revert "RendererVk: Enable VK_KHR_image_format_list on SwiftShader." + + This reverts commit 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61. + + Reason for revert: Causes MSAN failures. See crbug.com/1260941 + + Original change's description: + > RendererVk: Enable VK_KHR_image_format_list on SwiftShader. + > + > This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba. + > + > Bug: angleproject:5281 + > Bug: chromium:1245774 + > Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679 + > Commit-Queue: Lubosz Sarnecki + > Commit-Queue: Jamie Madill + > Reviewed-by: Jamie Madill + + Bug: angleproject:5281 + Bug: chromium:1245774 + Bug: chromium:1260941 + Change-Id: Id6712aed68ed04d2525549ae016594aa05243a5d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226312 + Bot-Commit: Rubber Stamper + Commit-Queue: Shahbaz Youssefi + +commit eb1d24741b7b34b02a957e09ee25febc8eac779f +Author: Tim Van Patten +Date: Mon Oct 4 20:23:26 2021 -0600 + + Vulkan: Add R8G8B8_UNORM to vk_format_map.json + + The map of R8G8B8_UNORM -> VK_FORMAT_R8G8B8_UNORM is missing from + vk_format_map.json. This leads to attempting to get format bits for + angle::FormatID::NONE / VK_FORMAT_UNDEFINED. + + This CL adds R8G8B8_UNORM to vk_format_map.json, so devices that support + it, like ARM, can use it. This allows those devices to import AHBs + created with R8G8B8_UNORM. + + This CL also adds some additional ASSERT() and UNREACHABLE() calls to + catch missing formats sooner. + + This allows the EGL tests to pass on ARM devices, but the tests are + still skipped due to Qualcomm not having the necessary support for + optimal tiling. + + Bug: angleproject:6277 + Test: dEQP-EGL.functional.image* + Change-Id: I41b7ead97a10ae80be4b6048d36d0d85ad71784f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204152 + Commit-Queue: Tim Van Patten + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 8996b1e6c4699fc9bd1c2c1136c0687fb373c263 +Author: Shahbaz Youssefi +Date: Mon Oct 18 12:13:09 2021 -0400 + + Vulkan: Suppress failing async queue tests + + Bug: angleproject:6574 + Change-Id: I2da6c65a43cc53bd6100c7be1a325d56766a175a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226307 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit bcd3ae6165f104ad7d14ad7d6d2e6eb411d0b582 +Author: Peter Kasting +Date: Mon Oct 18 09:36:49 2021 -0700 + + Fix some instances of -Wshadow. + + Bug: chromium:794619 + Change-Id: I5efe04e64800455585438467bcf6c262e91f398d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229095 + Commit-Queue: Peter Kasting + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit f7cbca80e0c7475ef3874d2ed959cb910667f05b +Author: Shannon Woods +Date: Mon Oct 18 12:33:14 2021 -0400 + + Update link to old presentation + + Bug: angleproject:1944 + Change-Id: I750bfe9fd15c51dbc0f2acc8da966cfdb07f51e5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229428 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 6d7ebf656d06f1152967aa5f4457d3787a24732c +Author: Jamie Madill +Date: Fri Oct 8 13:00:19 2021 -0400 + + Isolate commit_id.h from other code. + + Instead of recompiling multiple source files, we can seal off the + files that include commit_id to prevent recompilations when the + commit changes and source files don't change. + + Bug: angleproject:2551 + Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Jonah Ryan-Davis + +commit ddedcdaff28a7504bcb2cc49c33c14775660f5a3 +Author: Shahbaz Youssefi +Date: Thu Oct 14 23:35:45 2021 -0400 + + Vulkan: Recycle vkAcquireNextImageKHR semaphores + + This change optimizes CPU performance by recycling semaphores used for + ANI instead of creating and deleting them every frame. + + Bug: angleproject:6580 + Change-Id: I151ea227870ed7b8bd123cbf629a65723c4696d2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225085 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + +commit 87b4f0fbb2fdc0f09784d354d39f5862c3eecc33 +Author: Jamie Madill +Date: Mon Oct 18 08:52:29 2021 -0400 + + Suppress colorspace trace tests. + + These were recently enabled with a Vk SwiftShader CL. + + Bug: angleproject:6578 + Change-Id: I5f6716f3c8a4c314d0679f8393532b25f9f5c032 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226303 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit f3334d03610e42f3fbdef35b735b6664a73a8019 +Author: Shahbaz Youssefi +Date: Thu Sep 30 23:44:54 2021 -0400 + + Vulkan: Fix importing layered AHBs + + Bug: angleproject:6475 + Change-Id: Iceb0880cadc54552d3f01593d2e12088cafa10cc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198733 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Shahbaz Youssefi + +commit 8fbce1e02e5424e97a93545b82178bae1c4cf5d6 +Author: angle-autoroll +Date: Mon Oct 18 10:01:55 2021 +0000 + + Roll SwiftShader from ce1449fd798a to 33eaf1f76b60 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/ce1449fd798a..33eaf1f76b60 + + 2021-10-15 liyl@google.com Use smart pointer for the LibX11Exports singleton + 2021-10-15 swiftshader.regress@gmail.com Regres: Update test lists @ ce1449fd + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I6af8147eea2731f900481ad0024a5a60418e1fa5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229013 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 485cb718c0721fb3f4986808617a8cffdec7ae5c +Author: angle-autoroll +Date: Fri Oct 15 23:45:02 2021 +0000 + + Roll Chromium from 9fcbc0940fc3 to 54930e1ff6ee (222 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9fcbc0940fc3..54930e1ff6ee + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/7694937a1e..3df8a59b75 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/03fbde054b..faf29ca944 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..59de2526fa + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9a36d697d8..650f853ced + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c64ca6a1cc..eff3136246 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/cf5ad1a309..de168d1b50 + No update to Clang. + + Bug: None + Tbr: jonahr@google.com,ynovikov@google.com + Change-Id: Ie803eb43a59de40b0dfb6b458e5be22af63c54e2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3227701 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6c44865981d5261f031f1e7fa09a3d08676f9393 +Author: Ian Elliott +Date: Fri Oct 15 15:43:18 2021 -0600 + + Improve EGL validation errors + + Improvements: + - Report the numeric value of a bad attribute + - Show the requested/desired/unsupported version and the max version + - Correct printf attribute set and previous errors fixed + + Bug: b/186543601 + Change-Id: I889f2384afbe134496cad9e349766b7ff756dcee + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224566 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Yuxin Hu + +commit 4d5711291ed396ed6843439fa1fe5c7e1f1e1a8c +Author: Kenneth Russell +Date: Fri Oct 15 16:27:05 2021 -0700 + + Suppress ObjC exceptions in OSXWindow::messageLoop. + + Crashes have been seen inside the Cocoa-internal + NS_setFlushesWithDisplayLink function. Web searches indicate this is a + regression in macOS 11. See whether catching and ignoring these + exceptions improves stability. + + Bug: angleproject:6570 + Change-Id: Id0be68077163bf4e9f98189461eea016a35edd73 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3227697 + Commit-Queue: Kenneth Russell + Reviewed-by: Tim Van Patten + +commit eb9b3f8eb6f5b9601bd1a9d6c30b0d6dafe798a3 +Author: Gregg Tavares +Date: Thu Oct 14 17:10:23 2021 -0700 + + Update bug for intel metal mip test expectations + + Bug: angleproject:6571 + Change-Id: I3a7c46ad479b4fc5d15e261269a12742c841a955 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224101 + Commit-Queue: Kenneth Russell + Reviewed-by: Kenneth Russell + Reviewed-by: Yuly Novikov + +commit 6cd1a0a5db0917fb10fb65d030c319ff539f942e +Author: Gregg Tavares +Date: Thu Oct 14 17:32:42 2021 -0700 + + Metal: Update test expectations for AMD filtering issue + + Also adjust suppressions for incorrect lodMinClamp application on + Intel GPUs. + + Bug: angleproject:6466 + Bug: angleproject:6534 + Bug: angleproject:6571 + Change-Id: I574e0e92111c8d0a6021fe90f7a2076103435975 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224662 + Reviewed-by: Kenneth Russell + Reviewed-by: Brandon Jones + Reviewed-by: Yuly Novikov + Commit-Queue: Kenneth Russell + +commit 22ecd454a0a8100de0c4c938c6d502a35ab359df +Author: Charlie Lao +Date: Mon Jul 19 17:28:05 2021 -0700 + + Vulkan: Move BufferMemory class from vk_helpers.h to vk_utils.h + + In preparation for the StagingBuffer may also use BufferMemory, this CL + moves the class to vk_utils.h so that it can be used by any class + without create kinks on header file inclusion. + + Bug: b/195588159 + Change-Id: I97ab136be691322fe6284fd1b4b7336fdf1f904f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040106 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 60271a715ca3603b6238908734d83f2b5cbbf938 +Author: Jonah Ryan-Davis +Date: Fri Oct 15 10:14:35 2021 -0400 + + GL: Re-scope Intel/Mesa version for disableSyncControlSupport. + + This workaround's scope was widened due to issues detecting intel + GPUs in systems with multiple GPUs. That was fixed, so we can + re-scope the workaround. + + Bug: chromium:1187475 + Change-Id: Iaf946369273dc5c1e2f8f91a14758b6751615c7f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226721 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jonah Ryan-Davis + +commit f5d659228e74f674e7e51a98584db752ad2b9284 +Author: Shahbaz Youssefi +Date: Thu Oct 14 15:58:38 2021 -0400 + + Vulkan: Optimize QueryVk::getResult() + + This function always incurred a check for completed commands to ensure + forward progress for applications (or rather, tests) that busy-wait + until the query results become available. + + This change instead does an initial isCurrentlyInUse() check and only if + that's true will it check to see if there are any finished commands. + This should reduce one checkCompletedCommands() call when the + application queries the status of the Query well after it's issued. + + Based on patch authored by Igor Nazarov + + Bug: angleproject:6573 + Change-Id: Iad4ed6b7eb6ae5316707e6d916e5ca3054d6c5aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225083 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 6f69986bd134230de86de6ecf6ec5c63b00c4b4c +Author: angle-autoroll +Date: Fri Oct 15 15:43:05 2021 +0000 + + Roll Chromium from b35194229662 to 9fcbc0940fc3 (624 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b35194229662..9fcbc0940fc3 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com,jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e55f2dd692..7694937a1e + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/0054d1d20c..198699532a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/5a3fcbea80..03fbde054b + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/9b3ab9c811..e7c7291277 + * third_party/android_build_tools/aapt2: O9eXFyC5ZkcYvDfHRLKPO1g1Xwf7M33wT3cuJtyfc0sC..QTle7uOqwUcpHkoK4T62iuIj5-BlSM7NC9sR8su220IC + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..59de2526fa + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9fe4fb87a6..9a36d697d8 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c00aa10009..51064c3ff6 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/256755a787..c64ca6a1cc + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/bae49e6b9d..cf5ad1a309 + Clang version changed llvmorg-14-init-6355-gb2217b36:llvmorg-14-init-6722-g0fbd3aad + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/c00aa10009548ad073810d810cc4a71d2965f75b..51064c3ff683079293f80d071a9a726858fbaa12/scripts/update.py + + Bug: angleproject:2551 + Tbr: jonahr@google.com,jmadill@google.com + Change-Id: Iae0b73913324695c874fddb3eb76c75dcd54bb9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225995 + Bot-Commit: angle-autoroll + Commit-Queue: Jamie Madill + +commit 8ef1b2a2bd181cfa6bbb44064f7095d4fef2e859 +Author: Charlie Lao +Date: Thu Jul 15 15:27:15 2021 -0700 + + Vulkan: Add BufferMemoryAllocator class + + BufferMemoryAllocator class will be responsible for memory allocation + for vkBuffers. The original Allocator class remains the wrapper for + vmaAllocator. + + Bug: b/195588159 + Change-Id: I26d016e2f8d13ba459d0aa0bd4e1ebf4d0d48251 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036256 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 0c7018a596b4fe3940690671e4c7aa09762e8567 +Author: Jamie Madill +Date: Tue Oct 12 13:43:20 2021 -0400 + + infra: Update bot naming scheme. + + Old names: use config pairs when they can vary, e.g. + + android-arm-dbg + android-arm64-rel + linux-clang-dbg + win-clang-x64-rel + win-msvc-x86-dbg + win-trace-rel + + New names: use config names when they differ from the the + default test config for a system, and suffix with -compile + and -test for compile-only and compile-and-test bots. For + Android configs, we keep the full target arch. e.g. + + android-arm-dbg-compile + android-arm64-test + linux-dbg-compile + win-test + win-msvc-x86-dbg-compile + win-trace + + The new naming scheme prioritizes having short names to + avoid redundant or implicitly understood information. This + should reduce the mental load when looking at a set of test + results. + + This also adds SwiftShader win10-x64 configs so we can add + these to the CI easily. Also the plan is to turn off the GCC + configs for now. If we ever support GCC properly we can re- + enable them. + + This CL adds the new configs to CI, then a following CL will + add them to CQ and remove the old configs at the same time. + + Bug: angleproject:6496 + Change-Id: I0ecdcd392c4d7067d6b180664f160ba7c048d16d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219590 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + +commit 7aba3bc54ce98fe8ae64e0f0b1484a4a82f096f8 +Author: Shahbaz Youssefi +Date: Thu Oct 14 23:14:37 2021 -0400 + + Vulkan: Use a CircularBuffer helper class in SurfaceVk + + There are two instances of circular buffer in SurfaceVk. A common + helper class is introduced by this change to consolidate the + implementation. + + This is in preparation for a follow up change that introduces yet + another circular buffer in this class. + + Bug: angleproject:6401 + Change-Id: Id01b585567310a2528888114239a5c80ff93f1ee + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225084 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + +commit 58b47b1908a3be966613789e88f77f6e71141ee1 +Author: Jamie Madill +Date: Fri Oct 15 09:50:55 2021 -0400 + + GN: Disable SwiftShader by default with MSVC. + + This was broken as fallout from http://crrev.com/c/3189512 and is + currently breaking the Chromium -> ANGLE roll. Instead of trying + to fix the warnings, disable compiling SwiftShader with MSVC. + + Bug: angleproject:6572 + Change-Id: I041a4366b348b77f8213802495dd88c4050a714c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226720 + Commit-Queue: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + +commit 9e100e54ee16d3f64ee0904622feb4136ff723e2 +Author: angle-autoroll +Date: Fri Oct 15 10:01:34 2021 +0000 + + Roll vulkan-deps from 6fb1e5bb439b to 5be75e2ae595 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/6fb1e5bb439b..5be75e2ae595 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/3e6a85303d..06ebc4806b + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/e8b24f02d1..7001f2eb37 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/4defcad9cd..77cd59ba80 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ie756b9b4628e5e74de588302297165140446782d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225994 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a425ccea06b4dbbe5c3074805e6484386407a697 +Author: angle-autoroll +Date: Fri Oct 15 10:01:55 2021 +0000 + + Roll SwiftShader from e0af842a439e to ce1449fd798a (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/e0af842a439e..ce1449fd798a + + 2021-10-14 sugoi@google.com Fix Depth+Stencil image copy + 2021-10-14 sugoi@google.com Fix blitting of compressed images + 2021-10-14 sugoi@google.com Make decompression functions const + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ieb1cbf0862bc59b7c367689710652f9e1ff0a01e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225949 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 57b73c07bcbb79feaa3cfa6af9eee47f8a41a56a +Author: Shahbaz Youssefi +Date: Thu Oct 14 15:51:18 2021 -0400 + + Vulkan: SPIR-V Gen: TODO clean up + + This change removes a number of stale TODOs. + + Bug: angleproject:4889 + Change-Id: If21d55717e61383ffdd58a7f88da5961988e035f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223643 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit ca75c7bbde33376d8994128494e4b2498416ebaa +Author: Shahbaz Youssefi +Date: Wed Sep 29 16:28:11 2021 -0400 + + Vulkan: Fix async queue testing + + Due to a feature renaming, the async queue tests where actually ran + without the required feature that makes them async. This change fixes + the feature name so async queue testing will be resumed. + + Bug: angleproject:6437 + Change-Id: I73c9c8cd196576455265f72144399a93edc82bdf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193420 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 123ba58db7a93bc11835eaa96059386ad9e2f0fc +Author: Jamie Madill +Date: Thu Oct 14 11:56:35 2021 -0400 + + Vulkan: Remove "last submitted serial". + + This fixes race conditions with the async command processor. Instead + of querying specific serial numbers, we ask the command queue to + either wait for idle, or return the answer to "are you busy" directly. + + Bug: b/172704839 + Change-Id: I06a8268d9b58d8c33b783af00ca74979ee158316 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223641 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit b3d772088f1576b03cdef6b0511decf98882028e +Author: Shahbaz Youssefi +Date: Thu Oct 14 15:38:51 2021 -0400 + + Vulkan: SPIR-V Gen: Make unfolded constants SPIR-V constants + + If a constant is not folded by the translator, for example because it's + an array, this change makes sure that it becomes a constant in SPIR-V + anyway. This is particularly important to support cases where a + constant is required, for example as argument to textureGatherOffsets(). + + Bug: angleproject:4889 + Bug: angleproject:5362 + Change-Id: Ic43e4be13a8917bb100ea64902ba90048cfbb9ee + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223642 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 2aa5286d5f8af257733b44f3fb9d6d35960759b5 +Author: YuxinHu +Date: Tue Oct 12 17:05:48 2021 +0000 + + Add Entry Point name to validation errors + + Add gl/gles entry point names to validation error messages + + some special cases: + 1. Debug::insertPerfWarning() is invoked from multiple places, + such as TextureVK, ContextVK, + adding an extra entryPoint function parameter + in these files will need + extra investigations. + I am passing the entryPoint name GLInvalid as a + temp workaround. + + 2.ErrorSet::hangleError() is invoked from multiple + Context*.cpp files, + adding an extra entryPoint function parameter + in these files will need + extra investigations. + I am passing the entryPoint name GLInvalid as a + temp workaround. + + 3. Debug::insertMessage(), Debug::popGroup(), Debug::pushGroup() + can be invoked from more than one GL entry points, + e.g. Debug::pushGroup() can be invoked from + either GL_APIENTRY GL_PushDebugGroup() or + GL_APIENTRY GL_PushDebugGroupKHR() + through context->pushDebugGroup() call. + Right now the same entry point name glPushDebugGroup will + be printed out in the error message for both cases. + However, we should be able to tell the actual entry point + by checking which version: KHR version or core version the + application uses, and this helps avoid the confusion. + For now we will let the same entry point name + getting printed for both cases. + + Bug: angleproject:6523 + Change-Id: I64a5463d9168d8444d376d1f428c3b3d894f2ea9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3215063 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Yuxin Hu + +commit 9d3ec7d76f792c0eefdc66cc63a4e9a3d8fb8841 +Author: Kenneth Russell +Date: Thu Oct 14 13:50:59 2021 -0700 + + Mac: suppress frequent test flakes on OpenGL backend. + + Mac/NVIDIA: + ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB + + This test is crashing very frequently for an as-yet-unknown reason. + The NVIDIA MacBook Pros are not a critical testing configuration, so + skip this test for the time being to stabilize the CQ. + + Mac/Intel: + WebGLCompatibilityTest.L32FTextures + WebGLCompatibilityTest.R32FTextures + WebGLCompatibilityTest.RGB32FTextures + + These tests are occasionally failing with incorrect rendered pixel + values again for unknown reasons. Mark these as failing on this + configuration for the moment. + + Bug: angleproject:6570 + Change-Id: Ic9e3c5f8d06a1555a4b1dfed2d9495e98c32abf1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224361 + Commit-Queue: Yuly Novikov + Reviewed-by: Jamie Madill + +commit 1dc2b7028b4a4f2fd8976ef3bc0fa294df922710 +Author: Jamie Madill +Date: Wed Oct 13 16:02:37 2021 -0400 + + Vulkan: Pass shader module map to init pipelines. + + Instead of pulling out the shader modules from the shader map when + we start the call chain, pull them out right in the init call. This + saves a bunch of boilerplate code. + + Refactoring change only. + + Bug: angleproject:6566 + Change-Id: Ib8d79bd7284d7ddb83522270f3d4df9086ab7300 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3221134 + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 2615e6b2cf4e8fe2d4b7552f814d83938644efb5 +Author: Lingfeng Yang +Date: Thu Oct 7 07:07:46 2021 -0700 + + Remove the syncFramebufferBindingsOnTexImage workaround + + It's unused + + Bug: angleproject:6503 + Change-Id: Ia9039432006ec6988e93db08b9a572c7a7f837ed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212428 + Commit-Queue: Lingfeng Yang + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 06a4ce3b9e54cd56ca1c7e5519d112c698bbec37 +Author: angle-autoroll +Date: Thu Oct 14 17:57:37 2021 +0000 + + Roll vulkan-deps from bd01823faf6f to 6fb1e5bb439b (12 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/bd01823faf6f..6fb1e5bb439b + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/97a438d214..e4243b898c + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/5ea2d62e8c..19e8350415 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/b46995741b..3e6a85303d + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/fa27a13cf7..dd99e0f51f + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/aeffbbd6b9..6d9e5b07d6 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/4ddd7fa6ed..4defcad9cd + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com,ynovikov@google.com + Change-Id: Idf504a62c90f415d6456ce31d4c2299e4e848245 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224099 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61 +Author: Lubosz Sarnecki +Date: Thu Oct 14 17:21:47 2021 +0200 + + RendererVk: Enable VK_KHR_image_format_list on SwiftShader. + + This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba. + + Bug: angleproject:5281 + Bug: chromium:1245774 + Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679 + Commit-Queue: Lubosz Sarnecki + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit b95cdec382bbcca20c43fc13444ed1f62bfb89ae +Author: Cheryl Wei +Date: Tue Oct 12 11:26:15 2021 +0800 + + Vulkan: Switch to `std::unordered_map` to cache renderpass + + ANGLE use `flat_hash_map` by default,while it will not retain pointer + stability which causes random null pointer issue when running MH31 with + asynccommandqueue.This change switch to using `std::unordered_map` to + cache renderpass. + + Bug: angleproject:6436 + Bug: angleproject:6569 + Change-Id: Ia2829a41251eea39ce2a79a9a42b6fe9dff6b120 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219010 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit b30dc00cd03e9eab55ef6ac64bdaac79486d0b6d +Author: angle-autoroll +Date: Thu Oct 14 12:58:55 2021 +0000 + + Roll SwiftShader from ca2ada82f494 to e0af842a439e (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/ca2ada82f494..e0af842a439e + + 2021-10-14 srisser@google.com Remove LOG_TRAP + 2021-10-13 thakis@chromium.org Disable -Wbitwise-instead-of-logical for llvm-10.0 in swiftshader + 2021-10-13 swiftshader.regress@gmail.com Regres: Update test lists @ ca2ada82 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I46ff112a3d11b629f11e7c0465b597a82152d461 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223301 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9f179f864aeb7ee31c8f99284d8006d0124c6688 +Author: angle-autoroll +Date: Thu Oct 14 08:09:13 2021 +0000 + + Roll Chromium from a3c5add36792 to b35194229662 (448 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/a3c5add36792..b35194229662 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/edba8be55a..e55f2dd692 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/9eb0245224..0054d1d20c + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8eb878544b..5a3fcbea80 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/099aba70f7..9b3ab9c811 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/26700faf76..93c5e2d335 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e608069579 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/756e98f5aa..9fe4fb87a6 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/add20af232..6e73e226c4 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/a8ec5ddc8a..bae49e6b9d + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: I740af5e0f2d48b3be0abfaf0e39f38cf36e98069 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3222465 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f3d5dac3ba447c63096ef6a66eb53080e2d696ec +Author: Shahbaz Youssefi +Date: Mon Aug 23 17:25:15 2021 -0400 + + Vulkan: SPIR-V Gen: Drop dependency to glslang + + The SPIR-V gen path is now made default. Compilation through glslang is + still supported for debugging, and is enabled on the GLSL* end2end tests + for smoke testing. On release builds, glslang is not supported. + + To test with glslang, add the following gn arg (only necessary if dcheck + is disabled): + + angle_enable_spirv_gen_through_glslang = true + + Then enable the generateSPIRVThroughGlslang feature. This can be done + by setting an environment variable: + + ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests + + Binary size saving: + + - 1.3MB on Linux (SPIR-V gen itself: 240KB) + - 730KB on Android (SPIR-V gen itself: 140KB) + + Perf tests: + + - LinkProgramBenchmark.Run/vulkan_compile_single_thread + * Through glslang: + truncated mean: 1287033.36 + * Direct SPIR-V Gen: + truncated mean: 244495.91 (~80% reduction) + + - LinkProgramBenchmark.Run/vulkan_compile_multi_thread + * Through glslang: + truncated mean: 4565894.83 + * Direct SPIR-V Gen: + truncated mean: 1158164.10 (~75% reduction) + + Bug: angleproject:4889 + Bug: angleproject:6210 + Change-Id: I486342702977c8114e90073b97183aba115a8b2d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit d8471b290ccb5084ab93881250624cc15808cef8 +Author: Aditya Kushwah +Date: Sat Oct 2 10:36:33 2021 -0700 + + Fix ASAN bug caused by passing empty label string. + + This CL will fix the ASAN bug that was caused by passing empty label + string to getMultisampledRenderTarget, function of TextureStorage11. + Instead, pass mTextureLabel so we can get WebGL labels now. Also to + avoid this in future, convert ref mTextureLabel to now store copy. + + The change in the test reflects the steps to first set the label + string and later the label being used to initialize mTextureLabel via + texture storage creation. + + Bug: chromium:1254746 + Change-Id: I007bdf1c7a421a2b4b9288aa71fa4368c14cf333 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3201030 + Reviewed-by: Rafael Cintron + Reviewed-by: Jamie Madill + Commit-Queue: Rafael Cintron + +commit bf74475217514d76776b8ea232e2ca3440078b17 +Author: YuxinHu +Date: Mon Oct 4 23:57:15 2021 +0000 + + README.md maintenance + + -Mark the document OpenGL Insights chapter on ANGLE as historical + reference. + -Modify the visual studio build instruction in ANGLE'S orientation link. + -Point the Start Projects link to the angle starter bug lists. + -Remove doc/Starter-Projects.md. + (most bugs listed in Starter-Projects.md are closed. + mark bugs 2734, 2556, 2506 as starter bugs. + remove link to WebGL conformance on Windows as they are outdated) + -Remove IRC channel join info. + -Add more instructions on how to join Angle Slack channel. + -Add warning indicating the iframe tags are not displayed properly in + doc/dEQP-Charts.md. + + Bug: angleproject:6509 + Change-Id: Idd4364fe48b506b44d3a2b40fa0e6ebd9e810a1b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204132 + Commit-Queue: Yuxin Hu + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Geoff Lang + +commit d4c7b5946a49ff82f9937bb8dfee771ca2113091 +Author: YuxinHu +Date: Tue Oct 12 23:24:54 2021 +0000 + + Add fixes on the doc based on Jamie's Suggestions + + This is a follow up change based on comments Jamie + provided in a previous change list: + https://chromium-review.googlesource.com/c/angle/angle/+/3204430. + + Fixes include: + 1. Wrap each line into 80 characters. + 2. Add links to project files. + 3. Add one more future work. + 4. Modify the two simple wordings. + + Bug: angleproject:6508 + Change-Id: I84a5694682d8871ebb46c4dfe245399021e0cff7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219715 + Commit-Queue: Yuxin Hu + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit ea5804842bfea89a53ae2c2a84719f4cb78db408 +Author: Charlie Lao +Date: Tue Oct 5 13:40:01 2021 -0700 + + Vulkan: Add feature flag to prefer CPU copy instead of staged update + + For ARM GPU, use GPU to do buffer to buffer copy has performance penalty + due to potential bubble in the vertex pipeline. This CL adds a feature + flag preferCPUForBufferDataSubData so that we can enable this behavior + for ARM GPUs. + + This CL also tracks if GPU has referenced this BufferVk's storage since + it got new storage. Due to sub-allocation, we may get a new sub-range of + the same BufferHelper object when allocating new storage. But we + currently do not have a way to track GPU progress of the sub-range of a + buffer. So we will end up using BufferHelper's queueSerial to decide if + it is still GPU busy or not. This CL adds mHasBeenReferencedByGPU + boolean variable that will set to false when we got a new allocation and + set to true as soon as buffer is been referenced by any GPU command. We + use this to avoid checking queueSerial if it never been referenced by + GPU. This is a temporary workaround for the bug, the full fix is tracked + by https://issuetracker.google.com/201826021 + + Bug: b/200067929 + Change-Id: I231fb0a678b0165a2ce1775d0aa4dbe7512fb4a8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183398 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 9a48ad4ed0ecfe861b71ed7875164d0e0cf3fbac +Author: Charlie Lao +Date: Tue Oct 5 17:45:48 2021 -0700 + + Vulkan: Add test for acquireAndUpdate + + Add two new tests to IndexBufferOffsetTestES3 tests that will call + bufferSubData with more than 1/2 buffer size, which will force vulkan + backend go into a different code path. + + Bug: b/200067929 + Change-Id: Id831982bbb044a529e9711be62d82f3e8c05e1a7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213415 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 7d1b12eb59182042ccc5ef4d3179dedd364253dd +Author: Jonah Ryan-Davis +Date: Tue Oct 12 15:54:57 2021 -0400 + + Clean up PlatformMethods enum allocation + + EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX was allocated to 0x3482 + without reserving an enum in the ANGLE drive. This value was later + used for EGL_POWER_PREFERENCE_ANGLE, causing a collision. This CL + re-allocates the enum. + + Bug: angleproject:6105 + Change-Id: I0da95dbd307954e2f7f5107d0179d580ec536f2b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219591 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Jonah Ryan-Davis + +commit 100ebfd7f9c5e83d6eaa4bb744db82cf4adf0b65 +Author: Jamie Madill +Date: Wed Oct 13 12:07:21 2021 +0000 + + Revert "Re-enable PoolAllocatorAlignmentTest.Alignment" + + This reverts commit 7eada73ac4964df5ffd539efb7a0569a97e4fd3d. + + Reason for revert: Breaking Lollipop tester likely b/c of 32-bit issues. + + Bug: chromium:1259544 + + Original change's description: + > Re-enable PoolAllocatorAlignmentTest.Alignment + > + > The PoolAllocatorAlignmentTest.Alignment/64 variant of the test fails on + > windows/debug, so this change re-enables this test everywhere except for + > that variant (and speculatively /128) on windows. + > + > Bug: angleproject:6536 + > Change-Id: Ibc4fcbe04e7579f3ad7eb68f4f460078ee27ac88 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212329 + > Commit-Queue: Shahbaz Youssefi + > Reviewed-by: Yuly Novikov + + Bug: angleproject:6536 + Change-Id: I74ebf1c78c8b15c14c9d1496948adafd13e0d2ba + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220971 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 558eda6e2002b1ea97f06e5669f537ca2bb6f824 +Author: Shahbaz Youssefi +Date: Tue Oct 12 15:34:45 2021 -0400 + + Vulkan: Remove provoking-vertex structs from "custom" list + + This extension has been released. + + Bug: angleproject:4063 + Change-Id: I007c20a895819aa11382837a3ad654839e127365 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3217938 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit bb5dbd4956c629012f7240ea960de7b18f273432 +Author: Gert Wollny +Date: Tue Oct 5 11:57:44 2021 +0200 + + Capture/Replay: Handle TvoidPointer in specialization + + Bug: angleproject:6521 + Change-Id: I863ad5307498e6394f5fbe3e650ce29c821083b1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204960 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit f25d1b2105ec88f9d3ca8a77da75d67337a4e886 +Author: angle-autoroll +Date: Wed Oct 13 10:01:34 2021 +0000 + + Roll vulkan-deps from 0d9dbc23381d to bd01823faf6f (3 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/0d9dbc23381d..bd01823faf6f + + Changed dependencies: + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1230a564c7..4ddd7fa6ed + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I755e89ae0a5937cb9805cee31057c70290a7b27b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220244 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 697301645f85ae0d9bcf2e8e863bc5b64ef78264 +Author: angle-autoroll +Date: Wed Oct 13 10:01:55 2021 +0000 + + Roll SwiftShader from b0f8eb113c65 to ca2ada82f494 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b0f8eb113c65..ca2ada82f494 + + 2021-10-13 sugoi@google.com Fix border update when rendering to cube face + 2021-10-12 capn@google.com Revert "Kokoro: Disable gcp_ubuntu builds failing to update CMake" + 2021-10-12 sugoi@google.com Regres: Roll dEQP to master revision e2aeccd + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Id506f3aa88c51afc3b00bcacacc376ee2dd60e5d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220126 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f8b1306f9e11d7dbaf79e86063cb4f88737063b6 +Author: angle-autoroll +Date: Wed Oct 13 07:30:13 2021 +0000 + + Roll Chromium from 98d6c07f2252 to a3c5add36792 (519 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/98d6c07f2252..a3c5add36792 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ed0a6d903d..edba8be55a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/69da32119f..8eb878544b + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/49fa1a3684..26700faf76 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2ef79f5f33 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/4a06fb5432..756e98f5aa + * third_party/ijar: https://chromium.googlesource.com/chromium/src/third_party/ijar/+log/cb29a121b4..0c48c93118 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/edc0e0684f..6da1d53b97 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/203feb7891..c00aa10009 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c3e712a10a..256755a787 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/7ba7d556a2..a8ec5ddc8a + Clang version changed llvmorg-14-init-5759-g02895eed:llvmorg-14-init-6355-gb2217b36 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/203feb789163278951e55ffeb624d70e016508e3..c00aa10009548ad073810d810cc4a71d2965f75b/scripts/update.py + + Bug: angleproject:6527 + Tbr: jonahr@google.com + Change-Id: I2d04180c7bbd93afb078a3a11e559e134839e8f7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220235 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 43be4d9cd8e461e9c26fb28bb8f2f26b65aea75c +Author: Charlie Lao +Date: Mon Oct 11 13:50:28 2021 -0700 + + Vulkan: Fix unnecessary performance warnings for two tests + + Fix two existing tests so that it wont generate performance + warnings that is not related to the test and not intended anyway. + + Bug: b/200067929 + Change-Id: I64a9272be077c536627644ae44104d98cecee7cd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218270 + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit 7eada73ac4964df5ffd539efb7a0569a97e4fd3d +Author: Shahbaz Youssefi +Date: Thu Oct 7 11:09:50 2021 -0400 + + Re-enable PoolAllocatorAlignmentTest.Alignment + + The PoolAllocatorAlignmentTest.Alignment/64 variant of the test fails on + windows/debug, so this change re-enables this test everywhere except for + that variant (and speculatively /128) on windows. + + Bug: angleproject:6536 + Change-Id: Ibc4fcbe04e7579f3ad7eb68f4f460078ee27ac88 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212329 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + +commit 6793d50e4fb905fa100ab78286ef0a258a30eefc +Author: Charlie Lao +Date: Wed Oct 6 15:48:55 2021 -0700 + + Vulkan: Remove ImageHelper::setFirstAllocatedLevel and Add assertion + + ImageHelper::mFirstAllocatedLevel is set via ImageHelper::initExternal. + There isn't a good use to set the mFirstAllocatedLevel when mImage is + invalid, and semantically it is wrong to try to get mFirstAllocatedLevel + or format while its storage is invalid (i.e., not allocated). This CL + removes ImageHelper::setFirstAllocatedLevel() API all together and added + assertion that image is valid when ImageHelper::getFirstAllocatedLevel + and getActualFormat and various other get APIs whose value are set + during initExternal call. + + Bug: angleproject:6532 + Change-Id: I9c97f488b3e959443fec632540e7f0906a49dc13 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209838 + Commit-Queue: Charlie Lao + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit 185e48a735d3fc42b6034623193699c20c1b8d55 +Author: Charlie Lao +Date: Wed Oct 6 18:53:08 2021 -0700 + + Vulkan: Make TextureVk::mRedefinedLevels bitmask of gl::LevelIndex + + We have gl::LevelIndex and vk::LevelIndex. gl::LevelIndex means level + index at OpenGL concept and is used in TextureVk code. vk::LevelIndex + means already adjusted with baseLevel and is used by ImageHelper object. + This mRedefinedLevel is gl::TexLevelMask type, but it actually is a bit + mask of vk::LevelIndex right now. This is inconsistent and confusing. + This CL changes it to bit mask of gl::LevelIndex to be consistent with + the namespace of "gl". + + Bug: angleproject:6532 + Change-Id: Ic88e373f70d3bd3e3fea676765c82fd0941e245c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210726 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Charlie Lao + +commit 01341f94838325016519b159b854cd09acd05f82 +Author: Steven Noonan +Date: Mon Oct 11 19:26:07 2021 -0700 + + D3D11: implement EXT_clip_control + + This implements EXT_clip_control for the D3D11 renderer, so that I can + use a reversed-Z depth buffer with ANGLE. + + Tested with + angle_deqp_gles2_tests.exe --deqp-egl-display-type=angle-d3d11 --deqp-case=dEQP-GLES2.functional.clip_control.* + and + angle_end2end_tests.exe --gtest_filter=*D3D11* + + Bug: angleproject:6554 + Change-Id: I1d11cd04a6654c28530b11104470f0cad0009abe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218659 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 4b056a17b5a1ba63d19875009e729c032c41c343 +Author: Jamie Madill +Date: Fri Oct 8 11:15:25 2021 -0400 + + infra: Remove android-angle-try from CQ. + + The dEQP GLES / EGL tests on the Nexus 5x are not a configuration we + intend to ship. The 5x is over 5 years old and has been discontinued + without updates. Because it costs us resources and developer time to + maintain these configs, and we still have WebGL testing of this + device, remove the native dEQP tests from this config. + + Also includes a fix to the lucicfg presubmit on Windows. + + Bug: angleproject:6527 + Change-Id: I70bbd3ebdafc63bfd7572b79abcedb711acb4441 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212892 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit fde87f5d3840de1ae2eb5826a7109f0ae90138ba +Author: Mark Lobodzinski +Date: Wed Oct 6 15:10:09 2021 -0600 + + Fix negative fixed-point->float conversions + + The fixed-to-float conversion routine in mathutils only operated + correctly on positive numbers. This caused failures in some GLES1 + apps when negative fixed-point values were converted, as for + glTranslatex(). + + Bug: b/199919700 + Test: Manual -- Zillow app should show data on map + Change-Id: I2ac4794478d3ad4c50057527134c9c17c8680338 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209826 + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Mark Lobodzinski + Commit-Queue: Ian Elliott + +commit bcc8970347f1a51b650e4a79f5e4ddec11047e79 +Author: Shahbaz Youssefi +Date: Thu Oct 7 11:26:42 2021 -0400 + + Translator: Remove disableValidateFunctionCall from transformation + + This validation is disabled in three transformations and re-enabled + afterwards. Two of these benefit from the simplicity it brings, and + this change removes it from the other transformation. + + Bug: angleproject:6506 + Change-Id: I946b547ed0e2ed39062914a7771e9635ff5e406d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212289 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 8712495dabafc1ef3e1304afa08d782bfd4b508c +Author: Gert Wollny +Date: Tue Oct 5 11:56:32 2021 +0200 + + Capture/Replay: Don't handle void pointers as const + + TL;DR: glReadPixels needs a non-const pointer if a pack buffer + is bound, so change the code generation to keep TvoidPointer + non-const and regenerate the entry points. + + Long version: + + When no pack buffer is bound, then in WriteCppReplayForCall + param.readBufferSizeBytes is non-zero and the cast of the read + buffer pointer is using the type passed by the parameter + (TvoidPionter) to write the typecast by calling ParamTypeToString + directly, which returns "void *". + + If. OTOH, a pack buffer is bound, then param.readBufferSizeBytes + is zero, and the default WriteParamCaptureReplay is called. This + autogenerated function forwards the call to WriteParamValueReplay + by using an explicit type specification, and the autogeneration + code was translating TvoidPointer to call + WriteParamValueReplay + which would then translate to "const void *" in the parameter type + cast, and this would lead to a compilation failure, because the + parameter must be a non-const pointer. + + Change the autogeneration code so that TvoidPointer is not forced + to be a const pointer and regenerate the entry points. + + Bug: angleproject:6521 + Change-Id: I673c77f803a284fb7dfc08a2e0918aebdf698194 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204959 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit f13731ae0e629b0ddacf28bde44b2707cc955d96 +Author: Jamie Madill +Date: Wed Oct 6 10:04:24 2021 -0400 + + Enable dEQP EGL + GLES 2/3 tests on Pixel 4. + + This is in preparation for removing these tests from the N5X. + + Bug: angleproject:6527 + Change-Id: Ib44f876db47845935efd68a1727964834a675cbb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208746 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Yuly Novikov + +commit 2ab7a17810ffb26ead183d4675e17e95166a1ec8 +Author: Shahbaz Youssefi +Date: Wed Oct 6 13:22:19 2021 -0400 + + Vulkan: Remove suppressions for SPIR-V validation + + A bug in VVL produced validation errors regarding texel gather offset, + but it seems to be fixed now. + + Bug: angleproject:6491 + Bug: angleproject:6492 + Change-Id: Ia20816ea0be65aa185a8ee89cf58edd33e452875 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209086 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit fbf8d1ea1b5c55c9616df2ab9935b8660dc8bb8a +Author: Bruce Dawson +Date: Thu Oct 7 13:53:05 2021 -0700 + + Remove windows.h from common/platform.h + + Windows.h is expensive and causes lots of namespace pollution with the + macros that it defines. This change removes windows.h from platform.h + and debug.h and adds the necessary typedes and new include of windows.h + to let Chromium build. + + This reduces the number of Angle translation units that include + windows.h by about a third, from 624 to 440. Significant further + reductions will be difficult because of translation units that genuinely + need windows.h. + + Earlier versions of this change made it clear that the DeleteFile and + GetCurrentTime macros were renaming Angle functions. These angle + functions were renamed which makes this change much simpler. + + Bug: angleproject:6283 + Change-Id: Icddc8f98b19485e563b2cf616bba2ad4ea49228e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212639 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 44bef8ae5ffc616fa200ba06ef75f1abc227b6b6 +Author: Jamie Madill +Date: Fri Oct 8 15:01:37 2021 -0400 + + Remove traces of Feature Level 9_3 support from tests. + + Bug: angleproject:1284 + Bug: angleproject:3042 + Change-Id: Ic2f77d315e98c3b15c5fc8b0359168bce00867d4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213294 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 1713a1ddee7c43c80efc861059d15a53a2ce5e0d +Author: angle-autoroll +Date: Tue Oct 12 10:01:34 2021 +0000 + + Roll vulkan-deps from 5d47d7c31f5d to 0d9dbc23381d (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/5d47d7c31f5d..0d9dbc23381d + + Changed dependencies: + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/9112cf8f05..1230a564c7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I001b10da07243378df6c25e9742dbd4524cf8d2a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218940 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit ea419e7c440941f532f0951220935927075391a8 +Author: angle-autoroll +Date: Tue Oct 12 10:01:57 2021 +0000 + + Roll SwiftShader from eacf0cd26b0a to b0f8eb113c65 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/eacf0cd26b0a..b0f8eb113c65 + + 2021-10-12 capn@google.com Restore zero-initialization of device memory allocations for GN builds + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I445c6d759db7c3c4c26625252d6325dc91263918 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3217961 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5a83f3e40065a18005128a16f0d38c80f9be1e3c +Author: angle-autoroll +Date: Tue Oct 12 07:00:14 2021 +0000 + + Roll Chromium from 27780e77056e to 98d6c07f2252 (388 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/27780e77056e..98d6c07f2252 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/500434accf..ed0a6d903d + * buildtools/clang_format/script: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git/+log/99803d74e3..99876cacf7 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e0214688a4..69da32119f + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f460b9a636..49fa1a3684 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..876bab7910 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/97b5b5f83d..4a06fb5432 + * third_party/r8: ntKr-aGawyw4goIV50HidiUHTHey-mwhwgLiD3Th8jUC..EU82Aqeu2B1PZzAmebHXfyOgeL2UZifcIJ1LPyoThw0C + * third_party/turbine: EbT5V0csSPtrqE7MUYHXHhKwiBh8znOrUP46FVGfb9gC..6QYCyqU5yXkAT7T-_K3sCPvfISI8ACXF_cW4OM5v9BgC + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f0d113a0da..c3e712a10a + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ca89069ed0..7ba7d556a2 + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: If0b43260027aa49c1a70f436a55c6e0f530c4df3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218821 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 4349703b4c90633d70655850a0b86dd9eabeebf8 +Author: Tim Van Patten +Date: Wed Oct 6 11:00:53 2021 -0600 + + Compiler: Remove unnecessary TODO + + Remove the TODO related to removing the global pool allocator, since + that work won't be chased any further. + + For more details in this area, see: + http://anglebug.com/1286 + + Bug: angleproject:6497 + Change-Id: Ie9952e1c0e481c8d553cfdcf4a1d8ded8b64a95b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208510 + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + +commit 9ba5dcf604e7552be79a74a5e36cd73da7f70e4d +Author: Lingfeng Yang +Date: Thu Oct 7 06:56:14 2021 -0700 + + Vulkan: Fix inconsistency in half render area width/height + + The half render area rotation matrix should be removed. + DrawableArea is constant over rotations. + + The frag coord rotation matrix is still needed because + the frag coord generated by GPU is still rotated. + + Test: + DISPLAY=:0 out/Debug/angle_deqp_gles3_rotate90_tests + Using test config with: + linux + nvidia + debug + vulkan + prerotation + prerotation270 + + Test: Cuttlefish SwANGLE + ./cts-tradefed run cts -m CtsDeqpTestCases -t + dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_xyz + + Bug: angleproject:6504 + Change-Id: I37a6308fdb7586200b19a6138affc78c2c329a96 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212427 + Commit-Queue: Lingfeng Yang + Reviewed-by: Tim Van Patten + Reviewed-by: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 6cb599f9d29719faf517544e89b4dd62714510ca +Author: Charlie Lao +Date: Wed Oct 6 13:07:27 2021 -0700 + + Vulkan: Change dest to dst for consistency + + Cleanup only, no functional change. dst aligns better with src. + + Bug: angleproject:6502 + Change-Id: I69821b1aae50a7ce647c7cc876468b6de309eec8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208514 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Cody Northrop + +commit 59eebb173231160455c90cb744c2aca004d339b9 +Author: angle-autoroll +Date: Mon Oct 11 10:01:34 2021 +0000 + + Roll vulkan-deps from 651804d6bf55 to 5d47d7c31f5d (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/651804d6bf55..5d47d7c31f5d + + Changed dependencies: + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/6ca43559e0..e8b24f02d1 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/51279399ea..9112cf8f05 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I047dc36aa495a2390bc1dbfbc26994227f0eecee + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3216172 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 07363e5111113d45260a78e1df7bf2c0321ba108 +Author: angle-autoroll +Date: Mon Oct 11 10:01:55 2021 +0000 + + Roll SwiftShader from a1594b97ef0c to eacf0cd26b0a (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/a1594b97ef0c..eacf0cd26b0a + + 2021-10-09 capn@google.com Don't initialize device memory allocations in MSan builds + 2021-10-08 capn@google.com Don't initialize host memory allocations in MSan builds + 2021-10-08 thakis@chromium.org Disable C4244 when building LLVM for swiftshader + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I09054503f38be9089f804d37e329547fb8306a26 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3216414 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 83d94f456f7b44ac99344adaa1d5cdc629bbe156 +Author: angle-autoroll +Date: Mon Oct 11 07:01:18 2021 +0000 + + Roll Chromium from 5a257b4ccbc1 to 27780e77056e (441 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5a257b4ccbc1..27780e77056e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/64ad2a11a0..500434accf + * buildtools/linux64: git_revision:0153d369bbccc908f4da4993b1ba82728055926a..git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148 + * buildtools/mac: git_revision:0153d369bbccc908f4da4993b1ba82728055926a..git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148 + * buildtools/win: git_revision:0153d369bbccc908f4da4993b1ba82728055926a..git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/61b2ffca5e..e0214688a4 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/b00d460653..099aba70f7 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..89d8a1b2c5 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/7cdf1424b9..97b5b5f83d + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/bffc82b236..edc0e0684f + * tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323 + * tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323 + * tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/36fcc39dd5..f0d113a0da + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/08f5dc22c1..ca89069ed0 + * tools/skia_goldctl/linux: 8BEdZmdEb_Trpttj9e1dPv8UkzzT2TcgaA7HDWbfw_oC..gBAjq66wEoX-xg7SYwdl9IwTb41P6_uogFXZWqmg42cC + * tools/skia_goldctl/mac: rUm7H5eJ9geBU3-v0VR5qj_uAZoU9K1pEIiSVnxbDmIC..s5FQ4at83HB6cms6U4yFCQ-DS8LAIk6BsYD0SYwtiyMC + * tools/skia_goldctl/win: 6xtIsouHQ17XqTFF6ZHf3XyJvVUPt1OTvgPG2Opk56AC..waM0kUtv5T9ysntYENPWn_NyN14lIcqEDgfIaITeL0gC + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I788cddb5e95e206f42ac470136ef2b59642a946d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3216171 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e2d9121725bfbf43885f26c0116a837bc25dc205 +Author: Shahbaz Youssefi +Date: Fri Oct 8 15:55:58 2021 -0400 + + Vulkan: Lift helper_invocation suppressions + + Bug: angleproject:4110 + Change-Id: Ibfeeb835804b2d8349bd8e3911e4caa83e9cc6b3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213299 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 5812f66e45b0240f9b064b3e04fb4467663c112c +Author: Shahbaz Youssefi +Date: Fri Oct 8 16:21:13 2021 -0400 + + OpenGL: Lift image buffer windows/intel suppresions + + Bug: angleproject:3536 + Change-Id: Ib342caca706347ba4ff0cf82f0ea580907e5bb33 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213304 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit af691fa7b45e0fe52c7e95418fd59e30fb717e0c +Author: Shahbaz Youssefi +Date: Fri Oct 8 16:09:48 2021 -0400 + + Vulkan: Lift shader_image_load_store swiftshader suppression + + Bug: angleproject:4414 + Change-Id: I9965ccaeefd526fb01a490ee1b282dd4012aaa14 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213303 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 86a67b31fdc45f9beae13c0afa1bfbd20de9bc7a +Author: Shahbaz Youssefi +Date: Fri Oct 8 16:05:51 2021 -0400 + + Vulkan: Lift shader_image_load_store suppression + + Bug: angleproject:4315 + Change-Id: I649402f4c5032727cbd1a4a528ebf11716e9de9d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213300 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 53388e5421f619f9d4fb28ff84a0d58234f93140 +Author: Shahbaz Youssefi +Date: Fri Oct 8 15:43:34 2021 -0400 + + Vulkan: Remove VVL suppresions for VK_EXT_provoking_vertex + + Suppressions were added as ANGLE was using an unreleased extension. + This extension is released and supported by VVL now. + + Bug: angleproject:4063 + Change-Id: Ief23ac1ac3a3e6ecbd7b04a6b583302bbdf48398 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213298 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 4ad55d073f666facbcc33873f59d122306ae1234 +Author: Shahbaz Youssefi +Date: Tue Oct 5 15:45:05 2021 -0400 + + Vulkan: Turn 1-view multiview FBOs into no-multiview + + When only 1 view is enabled, ANGLE continued to append a + VkRenderPassMultiviewCreateInfo struct to the render pass. VVL produced + an error when transform feedback was used in this case, quoting that + multiview and transform feedback cannot mix. + + This change makes sure that 1-view framebuffers are threated as if they + were not multiview. + + Bug: angleproject:6478 + Change-Id: If079c9a052f822342a49a9cc880be2577a356b64 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206269 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c0ab6a77ef40ac791f7da6f0accf5ce3e7a05e8d +Author: Yuly Novikov +Date: Sat Oct 9 00:38:40 2021 -0400 + + Skip crashing pokemon_unite trace on Linux Intel + + Already skipped on Windows + + Bug: b/201900915 + Bug: angleproject:6494 + Change-Id: I4c586d88bb91ff13700157ee5ca585370e7c7887 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213755 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit a364ea59108d6a926ea0fbf85a2c8460d63077b0 +Author: Yuly Novikov +Date: Sat Oct 9 01:52:23 2021 +0000 + + Revert "Update old NVIDIA bug suppression." + + This reverts commit 0b779ac42a53e4656af3bd87fb74af88fb8a58a8. + + Reason for revert: fails on Win7 NVIDIA + http://ci.chromium.org/ui/p/chromium/builders/ci/Win7%20FYI%20x64%20Release%20(NVIDIA)/13643 + + Original change's description: + > Update old NVIDIA bug suppression. + > + > Only fails now on Linux. Move to expectations file. + > + > Bug: angleproject:2755 + > Change-Id: I28acc569764d94f1095c8eb96e15a1eb19e4695a + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212571 + > Reviewed-by: Jamie Madill + > Commit-Queue: Jamie Madill + + Bug: angleproject:2755 + Change-Id: If6d03c4ee840126cf1347feffdd672999d9bedf8 + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213752 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + Bot-Commit: Rubber Stamper + +commit 1fa59e56ab709712a32e6a3c4bdd938a7fb166f1 +Author: YuxinHu +Date: Tue Oct 5 01:15:13 2021 +0000 + + Add Overlay Debug Document + + Import the documentation go/vangle-debug-overlay as markdown + + Bug: angleproject:6508 + Change-Id: I1ecf9e6d4fd2c1b47c6e8f367390fcb72d7ecfe7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204430 + Commit-Queue: Yuxin Hu + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 4c23b817e08f2aa863a356f61c4e2a1443c008d8 +Author: angle-autoroll +Date: Fri Oct 8 19:29:08 2021 +0000 + + Roll vulkan-deps from d78bd80b30f6 to 651804d6bf55 (11 revisions) + + Suppressing SYNC-HAZARD-WRITE_AFTER_WRITE messages after + https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3403 + + https://chromium.googlesource.com/vulkan-deps.git/+log/d78bd80b30f6..651804d6bf55 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c8cdbac705..b9ba4c5743 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8c0ee92eb6..aeffbbd6b9 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7a6a52723b..51279399ea + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6550, angleproject:6551 + Tbr: ynovikov@google.com + Change-Id: I8b85fd82fc1042a5632027b8d6fada123533f276 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3214695 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 5794073ab4fa92d87ad3446d8bf1e51e506844bf +Author: Shahbaz Youssefi +Date: Fri Oct 8 15:20:02 2021 -0400 + + Vulkan: Lift copy_tex_image_conversion test suppressions + + Issue was fixed in anglebug.com/5502 + + Bug: angleproject:3817 + Change-Id: I1bdebac1e9cca71992818e0cb95ccc023149973f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213295 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit da8045307f91dba8e4bf1ccf282c01814af92841 +Author: Cody Northrop +Date: Fri Oct 8 12:52:04 2021 -0600 + + Capture/Replay: Skip pokemon_unite on Intel+Windows + + Test is getting inconsistent results around foliage edges. + + Test: angle_perftests --gtest_filter="*pokemon_unite*" + Bug: b/201900915 + Bug: angleproject:6494 + Bug: angleproject:6548 + Change-Id: I06a72bcd2e471613caf1787ee8e5fd6e7f22817d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3214691 + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit d134581bc81d457c43e7c8d68a7b98291a01d8ed +Author: Shahbaz Youssefi +Date: Thu Oct 7 16:09:25 2021 -0400 + + Vulkan: Remove SyncHelper::mEvent + + Now that inserting a sync object incurs a flush, we can use the serial + to perform synchronization. + + Bug: angleproject:6464 + Bug: angleproject:6481 + Change-Id: I8c82a12855b6497861ce34854d165af82956b384 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212573 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 9aa9f7c2f1d72117cc6ba23e5ba1bf5c7f249736 +Author: Jamie Madill +Date: Fri Oct 8 14:04:41 2021 -0400 + + Remove vertex attribute test suppressions. + + Bug: angleproject:2797 + Change-Id: I64b17d674e2d4a490c321357474e3260eb46f43c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212897 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 74b2886f587963b69348782bd81bee0d3409c0c0 +Author: Charlie Lao +Date: Wed Sep 22 13:49:57 2021 -0700 + + Vulkan: Try to use CPU to copy when preserving old buffer data + + When glBufferSubData is called, we may acquire a new buffer if buffer is + still GPU busy. When this happened, we have to preserve buffer content + if old buffer has valid data in it. Instead of always use GPU to do + copy, this CL will check if GPU is not writing to the buffer, we will + just use CPU to do the copy form old buffer to new buffer from the + ranges outside subData, controlled by the feature flag + preferCPUWhenPreservingBufferData. + + Bug: b/200067929 + Change-Id: I42053104b2be8da5f399cca92e934254988f2fd8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177322 + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit e437c4adfd63c6af8b3963eaf583369692bde74f +Author: Charlie Lao +Date: Wed Sep 22 09:15:19 2021 -0700 + + Vulkan: Only preserve buffer data when BufferVk has valid data + + When we receive glBufferSubData call and GPU is still accessing the + buffer, we have two code paths to update data. If subData is more than + half of the entire buffer range, we choose to acquire a new buffer and + use DMA to copy the rest of buffer that outside of subData range from + the old buffer back to the new buffer so that existing buffer data is + being preserved. Otherwise we stage subData to use GPU buffer to buffer + copy later on when buffer is been used. The reasoning behind is to + minimize the amount of data copy. The improvement here is that if + previously app called glBufferData with null pointer, we really do not + have any valid data in the buffer and there is no need to preserve the + existing buffer data. This CL tracks whether buffer has any valid data + or not and also put this into consideration when we pick which code path + to go. We also use this information to avoid preserve the existing data + in BufferVk::acquireAndUpdate + + Bug: b/200067929 + Change-Id: I266dd93bed2d3c07e3a5af3e4e613e7f6023b393 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176500 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 0b779ac42a53e4656af3bd87fb74af88fb8a58a8 +Author: Jamie Madill +Date: Thu Oct 7 14:08:10 2021 -0400 + + Update old NVIDIA bug suppression. + + Only fails now on Linux. Move to expectations file. + + Bug: angleproject:2755 + Change-Id: I28acc569764d94f1095c8eb96e15a1eb19e4695a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212571 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 666fcf386f877ea1ec2cdbde91336e0f76a360c7 +Author: Jamie Madill +Date: Fri Oct 8 12:19:15 2021 -0400 + + Rename functions that overlap with Windows APIs. + + Bug: angleproject:6283 + Change-Id: Ifcd9ea9e3bf729fd2066178eb9429050b2f10518 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212894 + Reviewed-by: Bruce Dawson + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit b03c47538657aa5b64a302d5a9bfe92e18bf2342 +Author: Jamie Madill +Date: Thu Oct 7 13:58:49 2021 -0400 + + Update suppressions for clear test. + + Bug: angleproject:2689 + Bug: angleproject:5165 + Change-Id: I3023735058ed11ac9060b4de9c67e20abd387e85 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212570 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e13bbea9e874544863ce0b6defe78d88fa78994f +Author: Geoff Lang +Date: Thu Oct 7 15:52:51 2021 +0000 + + Revert "Disable clearing textures for robust init on Mac." + + This reverts commit 33207313b2172525d7dc0526afd6d0aa51503bb1. + + Reason for revert: Spike in flush crashes + + Bug: chromium:1257538 + + Original change's description: + > Disable clearing textures for robust init on Mac. + > + > Suspecting this path generates errors and hangs. + > + > Bug: chromium:1253356 + > Change-Id: I0ef4a71578fa15631074f394d49e9878f3e301df + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187131 + > Commit-Queue: Kenneth Russell + > Reviewed-by: Jonah Ryan-Davis + + Bug: chromium:1253356 + Change-Id: I90630bdac02381511ae042b1ef91a729c7f859dc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212331 + Bot-Commit: Rubber Stamper + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + +commit 6ffaed865892f2ce43e6c77d2638f45375e5ae24 +Author: Jamie Madill +Date: Thu Oct 7 13:38:51 2021 -0400 + + Remove N5X workaround in point size test. + + Bug: angleproject:2553 + Change-Id: Id5db6517f86630cd7c6216af8a259399c827707d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212569 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 4029a734ceae40ba96c2ccbda8fe59b5315cbb3e +Author: Jamie Madill +Date: Thu Oct 7 13:34:49 2021 -0400 + + Enable previously slow Android Depth/Stencil tests. + + Bug: angleproject:2549 + Change-Id: I25c6cf2547a7eec544840cc641535048626b2fbe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212612 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 90403672fb96ac370f607bd51a6a415802a85e09 +Author: Nico Weber +Date: Fri Oct 8 09:50:47 2021 -0400 + + Fix Wbitwise-instead-of-logical warnings + + `a && b` only evaluates b if a is true. `a & b` always evaluates + both a and b. If a and b are of type bool, `&&` is usually what you + want, so clang now warns on `&` where both arguments are of type bool. + From what I can tell, in ANGLE it wasn't important if we evaluate both + branches or not in the places where this fired, so I went with `&&` + everywhere. + + Bug: chromium:1255745 + Change-Id: I7ac6a12c37f28a872de1fe9b9b96abf43e39b21c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212889 + Commit-Queue: Nico Weber + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 31426770ce491b7eb51bb7412616f6b3e955c2ae +Author: Jonah Ryan-Davis +Date: Fri Oct 8 10:18:18 2021 -0400 + + Re-add suppression for TransformFeedbackTest.BufferOutOfMemory + + This test fails on the Mac Intel/AMD bots. Suppression was removed + during the switch to the direct Metal backend but the test still + fails. + + Bug: angleproject:5345 + Change-Id: I64da76a5dbfc6337aef036de0977f8b035e5390d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213852 + Reviewed-by: Jamie Madill + Commit-Queue: Jonah Ryan-Davis + +commit 1d4566730e39194cc816b853bf4bdd4450b4c70e +Author: angle-autoroll +Date: Fri Oct 8 10:01:10 2021 +0000 + + Roll SwiftShader from 03fa329741b1 to a1594b97ef0c (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/03fa329741b1..a1594b97ef0c + + 2021-10-07 sugoi@google.com Move ExternalMemoryHost to its own file + 2021-10-07 capn@google.com Refactor DeviceMemory buffer allocation/freeing + 2021-10-07 capn@google.com Rename allocation functions + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I4b7d23124b45be009f726d92dba914d3412ce253 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213712 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit ce1a5798f264f9994979e089e97b16c710f1fa10 +Author: angle-autoroll +Date: Fri Oct 8 07:31:04 2021 +0000 + + Roll Chromium from 85479eaa91b7 to 5a257b4ccbc1 (538 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/85479eaa91b7..5a257b4ccbc1 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c40c33e32f..64ad2a11a0 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/fdbb91939f..9eb0245224 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/10c5874312..61b2ffca5e + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/1a68ade25b..72e09e98a6 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ee3f2f49c1 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/2ee0ca7fbb..7cdf1424b9 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/8640ca8315..203feb7891 + * tools/luci-go: git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af + * tools/luci-go: git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af + * tools/luci-go: git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f730ac681f..36fcc39dd5 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/d2f2e14917..08f5dc22c1 + * tools/skia_goldctl/linux: nd7yQQ-V4Vhc9bpvP_u3p7X0LVCxdlS946BHctVPg5MC..8BEdZmdEb_Trpttj9e1dPv8UkzzT2TcgaA7HDWbfw_oC + * tools/skia_goldctl/mac: 5DO-jjFFNcDssKFQDFLkkgvfeRqjlYUfRb9j2-QN2EYC..rUm7H5eJ9geBU3-v0VR5qj_uAZoU9K1pEIiSVnxbDmIC + * tools/skia_goldctl/win: rcX7oPaX2IWDB3XLoKp3dksyI7hhD7sMhOJrwNq46hAC..6xtIsouHQ17XqTFF6ZHf3XyJvVUPt1OTvgPG2Opk56AC + Clang version changed llvmorg-14-init-5410-gd0473681:llvmorg-14-init-5759-g02895eed + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/8640ca8315c0e88cf219c8181a15ce95739c2a4a..203feb789163278951e55ffeb624d70e016508e3/scripts/update.py + + Bug: angleproject:1506 + Tbr: ynovikov@google.com + Change-Id: Ib5e8495f7ba21a86cbe961c003eed34498ae4842 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213949 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 86fe5f292e9da0b7e2d8bf4de695f3aca962e5a6 +Author: Tim Van Patten +Date: Mon Oct 4 17:44:12 2021 -0600 + + VVL: Re-enable vkCmdDraw and vkCmdDrawIndexed + + Re-enable the following VVL checks: + VUID-vkCmdDraw-None-02690 + VUID-vkCmdDrawIndexed-None-02690 + + Bug: angleproject:4768 + Change-Id: I1469d21634b28c96e0ac2f2b8c4cd4dfec271d2e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203176 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 7ddfb56536356eca766adfbd05c1ba2e4f5cbdd3 +Author: Tim Van Patten +Date: Thu Oct 7 19:55:02 2021 -0600 + + Android: Re-enable Texture3DCopy.FloatFormats/*Vulkan + + The test Texture3DCopy.FloatFormats was skipped on Android+Vulkan. This + CL re-enables it. + + Bug: angleproject:4756 + Test: Texture3DCopy.FloatFormats/*Vulkan + Change-Id: Ia063b1efb5856f6623f6734f4430f06a8b143ba6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213419 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 57dd7095ffd4e020a17e2b575a3815997a6998ac +Author: Cody Northrop +Date: Thu Oct 7 17:48:06 2021 -0600 + + Capture/Replay: Suppress flaky ES3 test + + The following test is flaking out: + GLSLTest_ES3.ComplexCrossExpression/ES3_Vulkan_SwiftShader + + Bug: angleproject:6543 + Change-Id: Ia615a82727144520e863c686f1f6157aa71f2e58 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213420 + Commit-Queue: Yuly Novikov + Reviewed-by: Yuly Novikov + +commit 701e8892f45e6f416dcbb0d23a155d346d0280fa +Author: Yuly Novikov +Date: Fri Oct 8 02:56:38 2021 +0000 + + Revert "Translator: Remove the SH_VALIDATE flag" + + This reverts commit 4ca3d7d64388f043dab688d536776495df40532d. + + Reason for revert: breaks roll into Chromium crrev.com/c/3213239 + SH_VALIDATE is used in gpu_unittests. + + Original change's description: + > Translator: Remove the SH_VALIDATE flag + > + > The SH_VALIDATE flag is a noop, defined as zero (0). + > + > Also move option descriptions up in the file. + > + > Bug: angleproject:6501 + > Change-Id: I898106eb68b4508d8f94534cbff66652a69f4f3e + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207360 + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Cody Northrop + + Bug: angleproject:6501 + Change-Id: Ia9983eac58a07e2a6e3d5fe4d1bfccfb9c48ccd0 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212709 + Bot-Commit: Rubber Stamper + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit fab8834323c24e4fda791e48d930ff9c3c3e4ea2 +Author: Kyle Piddington +Date: Thu Oct 7 15:02:35 2021 -0700 + + WebGL Aquarium doesn't render with ANGLE Metal + + Blits should not be using the context's write mask, + this leads to missed color information on blits. + + Bug: chromium:1257769 + Change-Id: Iaf4ff00a727b1bec2424b4d3939fddd4c802a8ea + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212644 + Reviewed-by: Alexey Knyazev + Reviewed-by: Kenneth Russell + Commit-Queue: Kyle Piddington + +commit 4ca3d7d64388f043dab688d536776495df40532d +Author: Cody Northrop +Date: Tue Oct 5 23:10:09 2021 -0600 + + Translator: Remove the SH_VALIDATE flag + + The SH_VALIDATE flag is a noop, defined as zero (0). + + Also move option descriptions up in the file. + + Bug: angleproject:6501 + Change-Id: I898106eb68b4508d8f94534cbff66652a69f4f3e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207360 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Cody Northrop + +commit fe943910e86d3cfb36ce4d3d8728f2dac0a9d0fd +Author: Cody Northrop +Date: Sat Oct 2 21:55:34 2021 -0600 + + Tests: Add Pokemon UNITE trace + + Test: angle_perftests --gtest_filter="*pokemon_unite*" + Bug: b/201900915 + Bug: angleproject:6494 + Change-Id: I37b52a8557f135ca4d7e42eb964f17104d004513 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3201031 + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit af5ea7f9e31c00c82992f56ad05ed5e72e1817c2 +Author: Kyle Piddington +Date: Thu Oct 7 12:47:41 2021 -0700 + + PrimitiveRestart tests fail due to incorrect draw commands. + + Primitive restart draw commands were being encoded + incorrectly. Single element ranges were being disregarded, + and a maximum draw size was not being enforced when the + index buffer was aliased / reused. + + Bug: angleproject:6535 + Change-Id: I5affad4df46c4ab2b3702caa89b483ae685618a7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212629 + Commit-Queue: Kyle Piddington + Reviewed-by: Gregg Tavares + Reviewed-by: Kenneth Russell + +commit 5ab152c6857991ea8b2271817ca751e418f2cb5f +Author: Charlie Lao +Date: Mon Oct 4 14:08:15 2021 -0700 + + Vulkan: Add tests that triggers acquireAndUpdate + + Add test for shader storage write followed by bufferSubData Add test for + image store followed by bufferSubData. + + Bug: b/200067929 + Change-Id: I5895eaa31ee54e79333f0fe26d92e9378f427a3d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553171 + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Charlie Lao + +commit a52f40324cb8e5f001fba39901148aabca95fdd3 +Author: Charlie Lao +Date: Fri Sep 24 15:31:26 2021 -0700 + + Vulkan: Skip releaseImage call when image is invalid + + releaseImage is only useful if image is already valid. Otherwise it is + wasting CPU cycles to go through bunch of release calls that essentially + doing nothing. + + Bug: angleproject:6014 + Change-Id: I550b12bdc566cca699f6bf6662d176a01b2bce2e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183800 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 8770cefc54679cbd276065b359cf8dce761fa720 +Author: Cody Northrop +Date: Mon Oct 4 13:47:23 2021 -0600 + + Capture/Replay: Store enums to JSON as hex + + We're storing some enums in the per-trace JSON as decimal. + This makes them difficult to read, i.e.: + + "DisplayDeviceType": 12810, + "DisplayPlatformType": 13392, + "DrawSurfaceColorSpace": 12425, + + If we instead convert them to hex, they are much easier to + read and grep the source for. + + "DisplayDeviceType": "0x320A", + "DisplayPlatformType": "0x3450", + "DrawSurfaceColorSpace": "0x3089", + + Since JSON doesn't actually support hexadecimal values, this CL + stores them as strings. + + Ideally we could take this a step farther and store the enum + directly in JSON, but we have no facilities for converting + a string back to an enum. + + Bug: angleproject:5133 + Bug: angleproject:6515 + Change-Id: I7b5d4dc8958d43c611da1fe98887e089f3d855b2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204135 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit a559c7728914bf814b4697d4d156c2b216e76ef5 +Author: Cody Northrop +Date: Thu Oct 7 10:27:56 2021 -0600 + + Tests: Add BADLAND trace + + Test: angle_perftests --gtest_filter="*badland*" + Bug: b/202402554 + Bug: angleproject:6541 + Change-Id: I357b2a7bdb74c74628d5189d701528b60fa000de + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212627 + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 5862234e724ccccb960a87129879604a054a79ff +Author: Jamie Madill +Date: Thu Oct 7 13:15:31 2021 -0400 + + Remove old AMD/Windows/GLES expectation. + + Bug: angleproject:2486 + Change-Id: Ia7cb1195cabe79b0e93f2787ba627999636a2305 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212609 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 0f66c86181b59cde4aeacae782f10ba1ac23d660 +Author: Jamie Madill +Date: Thu Oct 7 09:32:35 2021 -0400 + + Add test that covers HLSL compiler bug. + + Bug: angleproject:2445 + Change-Id: I820b2dba3748bd10ca516ef47f226ff537b78849 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212328 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 212f4592dc1a5e8b9c15f6149ba0f625a730a2b9 +Author: Jonah Ryan-Davis +Date: Wed Sep 22 12:02:47 2021 -0400 + + Enable direct-to-metal backend by default + + We are switching over to Apple's direct-to-metal backend instead + of generating SPIRV in the metal backend. This CL enables the + direct-to-metal generation by default, but the SPIRV backend is + still accessible by overriding the feature directMetalGeneration. + + This CL comes with a change in test expectations to catch new + failures and clean up newly passing tests. + + Bug: angleproject:6080 + Change-Id: I4b10ad93c641b88857079a08fb45d3dc575d71f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3175664 + Reviewed-by: Gregg Tavares + Reviewed-by: Kenneth Russell + Commit-Queue: Jonah Ryan-Davis + +commit b600d212d7c3fc1905d1beded07292ed956b5fa1 +Author: Charlie Lao +Date: Fri Sep 24 15:05:34 2021 -0700 + + Vulkan: Consolidate calls to respecifyImageStorageAndLevels + + respecifyImageStorage() calls respecifyImageStorageAndLevels with the + same arguments that respecifyImageStorageAndLevels() could easily get + from the mImage and TextureState. This CL get rid of + respecifyImageStorageAndLevels and only uses respecifyImageStorage(). + + Bug: angleproject:6532 + Change-Id: I388af1f1db0e3ce6c77475a03667fca451ab7013 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183399 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Charlie Lao + +commit 34ee74be58becacf1c35da9a9a3fc75493fb81fc +Author: Charlie Lao +Date: Wed Oct 6 15:00:49 2021 -0700 + + Vulkan: Remove unused imageBaseLevel from TextureVk::setImageHelper + + We used to store baseLevel in ImageHelper object. Since then we have + removed baseLevel from ImageHelper to make ImageHelper object able to be + immutable for immutable textures. During that effort, the usage of + baseLevel has been switched to retrieve directly from TextureState + directly. This CL removes imageBaseLevel from the call. + + Bug: angleproject:4999 + Change-Id: I6ea8a651ee81bebc8529ffaaaba22c3ce4f8ac90 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209831 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 80e31738aaaf10ff11571029e82b5323e89fcccd +Author: Cody Northrop +Date: Thu Oct 7 09:08:51 2021 -0600 + + Capture/Replay: Suppress failing ES2 and ES3 tests + + Bug: angleproject:6180 + Bug: angleproject:6425 + Bug: angleproject:6513 + Bug: angleproject:6538 + Change-Id: I175f3f6d3b333aefc2cfcd8aeeff077ca762d396 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212626 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + +commit 27e7c4dda9fe3f206d5e203debc1e61da02e51ca +Author: Tim Van Patten +Date: Fri Oct 1 13:43:57 2021 -0600 + + Vulkan: Submit commands when Sync objects are initialized + + This CL calls ContextVk::flushImpl() after the sync object (VkEvent) has + been created and initialized, so it has a valid Serial when it's waited + on later. + + This change allows us to remove any tracking of pending sync objects, + since all sync objects will be flushed and submitted by the end of + SyncHelper::initialize(). + + Bug: angleproject:6464 + Test: MultithreadingTest.CreateFenceThreadAClientWaitSyncThreadBDelayedFlush + Change-Id: I47e7ced452727b434ed974368311fb3439a107c9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200274 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + +commit 62414cf8f7692a4109561e491f8a6bcfadb15039 +Author: Shahbaz Youssefi +Date: Wed Oct 6 16:07:03 2021 -0400 + + Fix GPU-time-tracking in WebGL perf tests + + GL_EXT_disjoint_timer_query is not enabled by default in WebGL mode. + This change ensures that extension is enabled. + + Bug: angleproject:4794 + Change-Id: I1835f7ed2afd7a155ff9b63fad74a066df59ea4f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210626 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 95a5bbd4fa6606e561d8261e0af0efe4aa066716 +Author: Lingfeng Yang +Date: Mon Oct 4 13:38:43 2021 -0700 + + Rename FullScreenQuad.vert to FullScreenTri.vert + + Bug: angleproject:6505 + Change-Id: Iafe26ddce51862edcb405f7ca85997a7c3b26fa7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203172 + Commit-Queue: Lingfeng Yang + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 8f9b6d29a7b025563ed104af575bd113d520bb0c +Author: Lingfeng Yang +Date: Mon Oct 4 13:35:30 2021 -0700 + + Add advice to download commit-msg hook + + Thought this was taken care of with `gclient sync` but it seems like a + manual download is needed now. + + Bug: angleproject:6517 + Change-Id: I87499149b810c873827883628104963178a14fed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203171 + Commit-Queue: Lingfeng Yang + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 22ec42ac12d97129bd252be18c3b79e2de6cba51 +Author: Jamie Madill +Date: Thu Oct 7 08:37:43 2021 -0400 + + Remove Skip for unsupported AMD config. + + Bug: angleproject:2423 + Change-Id: I70237576fa1e458276675d4bcb36ad890b5f5806 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212327 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 69e44a3ea8d06d7e5ed2c9bd39baeeae5be10a6b +Author: angle-autoroll +Date: Thu Oct 7 10:01:09 2021 +0000 + + Roll vulkan-deps from 60326f21d82c to d78bd80b30f6 (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/60326f21d82c..d78bd80b30f6 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/581897f462..c8cdbac705 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/ae217c1780..5ea2d62e8c + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/63a3912326..b46995741b + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/4d52412bcf..8c0ee92eb6 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/37b8cc153e..7a6a52723b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Id904e9ebaea61009b7d2cdeb4875a12a80795481 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3211381 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7e49055060180435b688902fe7df4fb1e0cc1af6 +Author: Tim Van Patten +Date: Wed Oct 6 11:16:08 2021 -0600 + + Cleanup Android/Vulkan deqp_egl_test_expectations.txt + + There are several bugs marked as "fixed", but still have tests marked as + fail/skip in deqp_egl_test_expectations.txt. This CL cleans those + up. + + Note that "cleanup" in this case means restricting the fail/skip to just + NEXUS5X, since many are still failing on that device. This CL doesn't + look to make the list exactly correct, since that testing on that device + is in the process of being deprecated anyway. + + Bug: angleproject:2546 + Bug: angleproject:2635 + Bug: angleproject:2715 + Bug: angleproject:3081 + Bug: angleproject:3270 + Bug: angleproject:6533 + Change-Id: I6cb9444727671997b38770f8d7ba5b3c6a1b019a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208512 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 386a38bb73d8ed49372e64bf42fb404b7734d939 +Author: angle-autoroll +Date: Thu Oct 7 10:01:08 2021 +0000 + + Roll SwiftShader from 8c181d7d1165 to 03fa329741b1 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/8c181d7d1165..03fa329741b1 + + 2021-10-06 capn@google.com Separate device memory allocations from host allocations + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Id90bdc882d6b962dfea2b61330291e6b251bc6c7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212066 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit df06a59f8e286c8cb815b8f2e194e2a20d65c302 +Author: angle-autoroll +Date: Thu Oct 7 07:31:05 2021 +0000 + + Roll Chromium from 34d255f7dd4d to 85479eaa91b7 (1955 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/34d255f7dd4d..85479eaa91b7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/fd29545e5e..fdbb91939f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ee3f2f49c1 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/281edf7577..2ee0ca7fbb + * tools/luci-go: git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4..git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4 + * tools/luci-go: git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4..git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4 + * tools/luci-go: git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4..git_revision:4d27a30eafb95ffb43c55cce949d5ce225ba92f4 + No update to Clang. + + Bug: angleproject:6486,angleproject:6489 + Tbr: ynovikov@google.com + Change-Id: I5908ee1faa4b9a82cc718ed847f7b46b29a8bfa6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210001 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 995d1741940a725a282457d64df57c0a2911618b +Author: angle-autoroll +Date: Thu Oct 7 06:15:01 2021 +0000 + + Roll Chromium from 34d255f7dd4d to 8db0ca66018a (1757 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/34d255f7dd4d..8db0ca66018a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ebad853384..c40c33e32f + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/9959b06ccd..fd29545e5e + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e0231d3d66..10c5874312 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/413eeeaef1..b00d460653 + * third_party/android_build_tools/bundletool: nK0LSzIJHh_OqyIEMh3zye_Ad54jw57inqQF5jFJzdYC..OZ4is33usuZy-deP3FpWCtbKXaIY0qBLsElWte7556YC + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/33e6ca6da3..f460b9a636 + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/7a11b799ef..1a68ade25b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ee3f2f49c1 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0e2fb336b2..281edf7577 + * third_party/jinja2: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/6db8da1615..ee69aa00ee + * third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/ff19e5b2e1..49836d72bd + * third_party/turbine: OxN4BOHObt6tbi4fpsSFeUAxSiaf2Cto-QlpFzGzC_IC..EbT5V0csSPtrqE7MUYHXHhKwiBh8znOrUP46FVGfb9gC + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/dfa96e8145..bffc82b236 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c06edd1f45..8640ca8315 + * tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4 + * tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4 + * tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:ec7a06c4fcde59629839f8e89c52a08d647e75f4 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/b7c66a0d49..f730ac681f + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/e0429447bd..4dc64cab42 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/04d66f45ae..d2f2e14917 + Clang version changed llvmorg-14-init-4918-ge787678c:llvmorg-14-init-5410-gd0473681 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/c06edd1f455183fc89e9f8c2cf745db8f564d8ea..8640ca8315c0e88cf219c8181a15ce95739c2a4a/scripts/update.py + + Bug: angleproject:6486,angleproject:6489 + Tbr: ynovikov@google.com + Change-Id: I495b4d43e1b6adcdf7c1fdf5135c22685020d793 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210960 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 66c89b0fe4ed2ddf2a33a48adfb35a1ae37d1f57 +Author: angle-autoroll +Date: Wed Oct 6 16:28:42 2021 +0000 + + Fix and disable MSVC warnings + + Needed because some warnings are no longer disabled after + http://crrev.com/c/3189512. + + Also includes https://github.com/KhronosGroup/OpenCL-Headers/pull/179, + needed after clang upgrade to llvmorg-14-init-5410-gd0473681 + + Bug: chromium:1257173 + Change-Id: I4f844aa972362c488cb6d37244439e2126f2c1c3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210629 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 161668b6656d112dba8d91a6ce7668cfeb0f7929 +Author: Shahbaz Youssefi +Date: Wed Oct 6 21:12:39 2021 -0400 + + Refix ANGLE_DISABLE_POOL_ALLOC build + + mAlignmentMask was removed in the normal path, but wasn't entirely from + this path. This change cleans that up. + + Bug: angleproject:3167 + Change-Id: I34474c114cd50cf94c5bc3c22ad4548414e9baac + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210627 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + +commit d14d0c395885ad56aff266f1ef3c4b51ecc87cf6 +Author: Yuly Novikov +Date: Wed Oct 6 20:41:12 2021 -0400 + + Redisable PoolAllocatorAlignmentTest.Alignment in Debug + + Was enabled by crrev.com/c/3206255, but fails. + + Bug: angleproject:3167, chromium:1257395 + Change-Id: Ibe34128c4479c7c2706270e04ef39b5ec29eb1a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210013 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 9a776e890de9931a06b948ca32d86ef880d1c5f8 +Author: Yuly Novikov +Date: Wed Oct 6 18:08:18 2021 -0400 + + Fix ANGLE_DISABLE_POOL_ALLOC build + + Broken by crrev.com/c/3206255 + Fails rolling into Chromium in crrev.com/c/3208847 on + linux-libfuzzer-asan-rel and win-libfuzzer-asan-rel. + + Bug: angleproject:3167 + Change-Id: If5d085492dfa87120c7c24a7102161d625d68e4e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209966 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 83613eb05d2959656b3ddef3284675baa0c1243f +Author: Lingfeng Yang +Date: Mon Oct 4 13:26:38 2021 -0700 + + Add advice to cipd auth-login on macOS for Googlers + + Bug: angleproject:6516 + Change-Id: I9ab1d0b5c0b64a2310b2e01263bb94e157991cde + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203170 + Commit-Queue: Lingfeng Yang + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 7b19a535be79b99d00c94f315fbf72f85473bc98 +Author: Yuly Novikov +Date: Wed Oct 6 17:13:52 2021 -0400 + + Fix iOS build + + Broken in crrev.com/c/3206017. + ANGLE roll into Chromium crrev.com/c/3208766 fails on ios-simulator + due to unused function OperatingSystemVersionNumbers. + + Bug: chromium:1255114 + Change-Id: I2cca5e3cd922733950a51bbc08bf9f41558f8436 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209207 + Reviewed-by: Yuly Novikov + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 26f9041b1f52a3a9367cb88a6dc5455222f0ab66 +Author: Lubosz Sarnecki +Date: Wed Oct 6 16:50:47 2021 +0200 + + DisplayVk: Always expose EGL_KHR_gl_colorspace. + + In the case of the sRGB color space the VK_EXT_swapchain_colorspace is + actually not required to create a swap chain. + + The requirement should be lowered and VK_KHR_get_surface_capabilities2 + should be used to enumerate if the color spaces from + VK_EXT_swapchain_colorspace are available. + + Bug: angleproject:2514 + Bug: b/201993125 + Change-Id: Id0d8be05016d3833d14395f6638b85110615164b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208689 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 207906c1b3bf1ecbab9ae11b974812cdd11a11ce +Author: Jonah Ryan-Davis +Date: Tue Oct 5 15:09:38 2021 -0400 + + Clean up Metal test expectations. + + Before switching to the direct metal backend, we should clean up + some passing test expectations so we can track the new test + results post-switch. + + TBR: ynovikov@chromium.org + Bug: angleproject:6467 + Bug: angleproject:6466 + Bug: angleproject:6485 + Change-Id: I33e0bd48b41906eb11cc4de09bf86f3ebd44a24f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206691 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Gregg Tavares + Commit-Queue: Jonah Ryan-Davis + +commit 84f601ebb06b12860a2a68c21b088f68ce5bde52 +Author: Jamie Madill +Date: Wed Oct 6 13:23:21 2021 -0400 + + Lift Intel specific test expectations. + + Bug: angleproject:2349 + Change-Id: Ib0b6356424452740150b0913e61507839961cf85 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209087 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 4e22c2c31a4b030f7f70b389a4db4adacb986ac7 +Author: Geoff Lang +Date: Tue Jan 19 12:42:38 2021 -0500 + + EGL: Merge DisplayAndroid/Gmb into DisplayEGL. + + These classes classes have a lot of duplicated code for no reason. + + DisplayGmb still needs more work. + + Bug: angleproject:5563 + Change-Id: Ia3d3d7f0bd7c03b4ac1aece4369c49118426b9de + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140498 + Reviewed-by: Jamie Madill + Reviewed-by: Maksim Sisov + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Geoff Lang + +commit d920e4d145a446abffcf68f7ed19cb0fb3a5a725 +Author: Shahbaz Youssefi +Date: Tue Oct 5 22:36:06 2021 -0400 + + Assert that float32->float10/11 doesn't shift by more than 32 + + some_uint32_value >> 32 has undefined behavior. The code that converts + float32 to float10 and float11 should not be shifting by values larger + than 32, and this change asserts that. + + Bug: angleproject:4962 + Change-Id: I9f2a914bad7084157cc35a8fb7f0be6f448a854b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207528 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Alexis Hétu + +commit 8906f242b5ef538d83c22d954f0687beb12b5603 +Author: Shahbaz Youssefi +Date: Tue Oct 5 15:20:33 2021 -0400 + + Change default alignment of pool allocator to pointer-aligned + + The translator uses the pool allocator with its default alignment. The + alignment was previously 16, which is unnecessary. That is changed to + sizeof(void *) such that allocations are pointer aligned. + + Running TracePerfTest.Run/vulkan_manhattan_10 on Linux, the total size + of allocations made by this class for the translator goes down from + 376832 bytes to 360448 bytes for a ~4.3% improvement. + + Bug: angleproject:3167 + Change-Id: I72c13bc78c1a4ba7c800eccdac82de39c25795f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206256 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 71984bff9a0f4c1a96d80da65b3c433b027c8cad +Author: Shahbaz Youssefi +Date: Tue Oct 5 14:59:26 2021 -0400 + + Reduce memory waste in PoolAllocator due to alignments + + Prior to this change, the PoolAllocator wasted memory in alignments. + This was due to the fact that alignment was made to the wrong values, + and they were fixed with more alignments and conservative extra space + allocations. + + This change makes sure that alignment is applied once, and such that the + actual pointer that needs to be aligned is aligned, not the header that + might come before it, and that allocation size is calculated precisely. + + This improves memory allocation by reducing waste, but only affects + the use of the pool in the translator, as Vulkan secondary command + buffers (the other user) use an alignment of 1 and take a different + path. + + Running TracePerfTest.Run/vulkan_manhattan_10 on Linux, the total + size of allocations made by this class for the translator goes down from + 466944 bytes to 376832 bytes for a ~20% improvement. + + Bug: angleproject:3167 + Change-Id: Ib4e6fd23ac32c8fb21810b20cd383758b8bff47f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206255 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 1cd6708a2ad3be7ddb5afe28f5d321ee670de577 +Author: Shahbaz Youssefi +Date: Tue Oct 5 10:24:35 2021 -0400 + + Clean up the PoolAllocator class + + Many things were unnecessarily in the header and are now moved to the + source file. + + Bug: angleproject:3167 + Change-Id: I52b83fdde5b6e984c5f5491c2ce050debf78f8b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206072 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit ce63bc1f00f95d39781cc2676aac78fc0bbcf78f +Author: Weiwei Lin +Date: Wed Oct 6 07:37:24 2021 +0000 + + [milo] update test presentation config to group by test_suite + + R: jmadill,ynovikov + Bug: chromium:1249703 + Change-Id: I37ea518a61df324750c7e8d6f18f0446b6316324 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207826 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 1b669f5d7ff5321e43d4dabcfcc13ade8eddbf74 +Author: Jamie Madill +Date: Tue Oct 5 15:55:58 2021 -0400 + + Add test names and metric names for BitSetIteratorPerf. + + New names are like so: + + [ RUN ] BitSetIteratorPerfTest/BitSetArray_96.Run + *RESULT BitSetIteratorPerfTest/BitSetArray_96.wall_time: run= 8609.2511842004 ns + + .. etc ... + + Bug: angleproject:2244 + Change-Id: I461f52a0ee098875544203c618c6b24598281f73 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206257 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit d78bd8360fd7ba38a2683eb828e077a17a5fc78e +Author: Nico Weber +Date: Tue Oct 5 16:10:27 2021 -0400 + + win: Remove call to deprecated GetVersionEx + + Bug: chromium:1255114 + Change-Id: Ie0539205d5547b1da05ec957096a369f7d9ababe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206017 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit a33c90fc6bf3d90cd986bd7c6c346f3161261a1b +Author: angle-autoroll +Date: Wed Oct 6 10:01:07 2021 +0000 + + Roll SwiftShader from 70178a763bb9 to 8c181d7d1165 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/70178a763bb9..8c181d7d1165 + + 2021-10-05 capn@google.com Deep copy specialization info + 2021-10-05 swiftshader.regress@gmail.com Regres: Update test lists @ 70178a76 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I7e29e0363bd8f2b18d77a092e4da6cfea531c2ea + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207383 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 0a85f8f741a46a43617572ec37da075511537f52 +Author: angle-autoroll +Date: Wed Oct 6 10:01:09 2021 +0000 + + Roll vulkan-deps from 9f83659e6f7d to 60326f21d82c (8 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/9f83659e6f7d..60326f21d82c + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/2d12367ced..63a3912326 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/d47266c7ee..4d52412bcf + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/a956d1a0e5..6ca43559e0 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d360374f4c..37b8cc153e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ibabf41c8c5175e65b28aaf386400570cfd808fa9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207817 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit dba896cf4b16d4a10dfb4179eb6f5091ad8b75d9 +Author: Cody Northrop +Date: Mon Oct 4 22:17:48 2021 -0600 + + Vulkan: Suppress modified device count warning + + This is a loader warning added in the following commit: + https://github.com/KhronosGroup/Vulkan-Loader/commit/8daad81803f5ed9b36a172c299140dde7a8c4494 + + It fires on our corp laptops that contain multiple GPUs (one + high-performance, one integrated). Most likely caused by Nvidia's + Optimus Vulkan layer. + + It doesn't quite match the patterns of validation layers, but is + straightforward to skip by searching for the beginning of the + message. + + Bug: angleproject:6514 + Change-Id: Ia93896364cae9e879faf068a100064f2edd04af2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204141 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit daaaba0a9b643c02b55ec5fbf5f4faa7e848431e +Author: Shahbaz Youssefi +Date: Mon Oct 4 22:28:56 2021 -0400 + + Translator: Fix uniform/struct separation for anonymous arrays + + When a uniform array of anonymous structs was separated into a struct + declaration and uniform array, the uniform symbol was being replaced, + but not the intermediate nodes that index it. This caused an AST + validation error. + + Bug: angleproject:4740 + Change-Id: Ib9d0115bd01c39d1a007f644e46b5e35c12c9304 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204590 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 27a98cf485c9f3aeacf926a5f122329022bfb1b2 +Author: Shahbaz Youssefi +Date: Mon Oct 4 23:39:16 2021 -0400 + + Vulkan: Allow debug labels inside render pass + + Debug groups and events were previously recorded to the outside-RP + command buffer. With this change, they are inserted in the RP command + buffer if render pass has started, or outside-RP command buffer + otherwise. This creates a more accurate view of groups the application + creates. + + Bug: angleproject:4597 + Change-Id: If165bb88e3e66219bad2fe4acc1cc4653c97fb1b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204591 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + Reviewed-by: Ian Elliott + +commit bab0e7171f0161671c0144b26e23222937c2c6ca +Author: Shahbaz Youssefi +Date: Mon Oct 4 14:09:53 2021 -0400 + + Update script to install ANGLE binaries in installed Chromium + + Useful when debugging a WebGL test, the script that installs ANGLE + binaries in Chrome Canary on Windows is updated to also allow installing + ANGLE binaries in Chrome Dev on Linux. On Linux, the script needs to + run as root. + + Bug: angleproject:6507 + Change-Id: I812d3a85528217dab478b1e8a0f266ae231f10af + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202554 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 69a91b3d7877a16bcbceb56a0c81ccc9bcf7c540 +Author: Jamie Madill +Date: Mon Oct 4 08:59:55 2021 -0400 + + Add SwANGLE test configs to Linux and Win. + + These will be used to replace SwANGLE tests on the CQ. + + Bug: angleproject:6496 + Change-Id: Id8d021067ec05e226daac5c1d5992977ef295efb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3199993 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit dde409be9769a4a628039b9fa034961a789f3c9d +Author: Shahbaz Youssefi +Date: Mon Oct 4 22:05:47 2021 -0400 + + Translator: Produce error on func(void, int) + + If void is specified, another parameter cannot follow. This change + ensures that this produces an error. + + Bug: angleproject:6338 + Change-Id: I18602ea4b52c96e498f4f2dc627d4ba2210d6fa7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203795 + Reviewed-by: Tim Van Patten + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit 0364270d67816897e0fc0065e8415a030506ba64 +Author: Alexis Hetu +Date: Mon Oct 4 17:54:03 2021 -0400 + + Alignment fix for IOSurface + + A wrong alignment was causing an issue in some tests. + This CL doesn't fix any single WebGL conformance test + entirely, but it fixes 564 of the 1292 failing sub-cases + within the conformance/textures/webgl_canvas/* category. + + Bug: chromium:1099979 + Change-Id: Id6051b24cb3c335d2f97f2c38c8de1dc7afde52f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203790 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Geoff Lang + Commit-Queue: Alexis Hétu + +commit ab7b5838b0c8e93d71b779f3719a5191fdd5dbab +Author: Jamie Madill +Date: Tue Oct 5 10:58:10 2021 -0400 + + GL: Remove old NVIDIA workaround. + + This affects drivers from ~ early 2017. These drivers should be + fairly rare by now. + + Bug: angleproject:2059 + Change-Id: I0d086ee00a0cc0c38ffdbf2294341fe832f80fd7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206070 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + +commit dccc0f8c06f5e0146bb2d275a1fb7e650b6027da +Author: Jamie Madill +Date: Tue Oct 5 09:22:19 2021 -0400 + + Add docs for DXGI and D3D11 format tables. + + Bug: angleproject:1691 + Change-Id: I7a07228853aaf8f1536b145657a737dcf3e0e1f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205798 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + +commit 22c9f779f121efe7c5e41419980282ab67e746f4 +Author: Jamie Madill +Date: Tue Oct 5 08:53:12 2021 -0400 + + Add shader targeting language to WebGL compat spec. + + Bug: angleproject:1687 + Change-Id: Ia7e05b7ff4af995e5cb3e72584866bba8c1907a5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205797 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 18aa5d22ed72a212adc45a49fec823ee5b266229 +Author: Jamie Madill +Date: Tue Oct 5 08:40:48 2021 -0400 + + dEQP 3.1: Lift NVIDIA/Win/GL expectation. + + Should be fixed on the bots now. + + Bug: angleproject:1665 + Change-Id: I70431434ac57dae3330c486d42b964b94a237491 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205796 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 234ebd583bbcbf258ad7b78ee604e350fcb7f909 +Author: Jamie Madill +Date: Tue Oct 5 08:34:12 2021 -0400 + + Lift old AMD/Win/GL expectations. + + No longer tested on the bots. + + Bug: angleproject:1643 + Change-Id: I5e1ca8b9c2f673ebcb44c67879829f9fd346edf0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205795 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 831f017e89d2c7cdd6031b6a0ec052b52f5fee27 +Author: Jamie Madill +Date: Tue Oct 5 08:05:52 2021 -0400 + + Lift AMD desktop GL DrawBuffersTest expectations. + + We no longer test on this config. + + Bug: angleproject:1533 + Bug: angleproject:1535 + Change-Id: Iba45a9426ba316e5c83f4501918070f6439daae9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205793 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit d4d4808f97ebf16310b30c8acc1cf293bd2437ff +Author: Gert Wollny +Date: Mon Oct 4 18:15:04 2021 +0200 + + Capture/Replay: Update more expectations and add bugs + + Bug: angleproject:6180 + Bug: angleproject:6221 + Bug: angleproject:6286 + Bug: angleproject:6425 + Bug: angleproject:6510 + Bug: angleproject:6511 + Bug: angleproject:6512 + Bug: angleproject:6513 + Bug: angleproject:6521 + Change-Id: If360279bfb1d6f9a1cb3be336e85b29f64b580c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200615 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit de7c228041f732e219cfc69ffb5ba26a2523adaa +Author: angle-autoroll +Date: Tue Oct 5 11:36:09 2021 +0000 + + Roll vulkan-deps from 3f11eb9d9ae7 to 9f83659e6f7d (9 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/3f11eb9d9ae7..9f83659e6f7d + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9529d3c2c6..2d12367ced + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/e500c7c809..fa27a13cf7 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/0cc98ec7ac..d47266c7ee + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/bdcc9c66af..d360374f4c + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ib75a29fc6d9eab06a6291920eb362245aa8ec2bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205651 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9a45582596eaf7b1aa23a8eda2b06cca293f091c +Author: Jamie Madill +Date: Tue Oct 5 07:51:31 2021 -0400 + + dEQP: Enable Android mipmap tests on GLES. + + These should be running correctly on the Pixel 4. + + Bug: angleproject:1529 + Change-Id: Ieb55b63d8934d8dd2c516c0f1ce71e84584d4471 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205791 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit f85ec039a7dcfde3b4a8d9ddfa8baa84ae5ce927 +Author: Jamie Madill +Date: Tue Oct 5 07:42:41 2021 -0400 + + Lift failing Android expectations. + + These failures were related to the N5X. + + Bug: angleproject:1488 + Change-Id: I57b8fdeb914a8e33793b0cd011255205baf7858f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205790 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit a49394ae29d4c10b22cc84f8361cacb616ac17ab +Author: Jamie Madill +Date: Mon Oct 4 16:30:58 2021 -0400 + + Lift failing Android test expectations. + + These were in the fbo.completeness.renderable.texture group. + + Bug: angleproject:1487 + Change-Id: I96f7e4428ebe4e018bdaee7f4ba5fd3bba131405 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203210 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit f00f100916bcc7774d67116ba1dabdab4c384aad +Author: Gert Wollny +Date: Thu Sep 30 18:59:25 2021 +0200 + + Capture/Replay: Fix readback of zero-sized renderbuffers + + Only read back the renderbuffer content if the renderbuffer has a + non-zero size. Add a test to test the capture/replay in this case. + + Bug: angleproject:6425 + Change-Id: I943804884f18a3a2b9de526309dd500de9dd6fd4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197572 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 2c9226e6ca537983319abaed987045d40fecaf06 +Author: Jamie Madill +Date: Mon Oct 4 16:07:23 2021 -0400 + + Add docs on how to request CQ/issue tracker access. + + Bug: angleproject:3096 + Change-Id: I375c19826855ad10d94ae24c8f32a06df93245aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202477 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 4f0e7e7f2328b009d15de64bf8b2911a167b2d7a +Author: Jamie Madill +Date: Mon Oct 4 14:50:10 2021 -0400 + + Vulkan: Remove extraCopyBufferRegion workaround. + + Bug: angleproject:2838 + Change-Id: I53ba3cf307f930ae9550d1bfee4650df6e826930 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202475 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 914ac20f6b4ccd84f9d3c8f0a880b7d12fa75fbc +Author: angle-autoroll +Date: Tue Oct 5 10:01:07 2021 +0000 + + Roll SwiftShader from f43b9df4c8a9 to 70178a763bb9 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/f43b9df4c8a9..70178a763bb9 + + 2021-10-04 capn@google.com Refactor swapchain image creation + 2021-10-04 capn@google.com Increase the maximum 1D, 2D, and Cube image dimension to 16384 + 2021-10-04 nicolascapens@google.com Kokoro: Disable gcp_ubuntu builds failing to update CMake + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie88ff43a25ecfa4d74d41c74c3f67fc7731095de + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205630 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2f1d503bcdbb85be639ecadfc7007b93e5fd15e7 +Author: Shahbaz Youssefi +Date: Thu Sep 16 21:49:14 2021 -0400 + + Vulkan: Fix Vulkan secondary command buffers + + This change abstracts initialization, begin/end, reset and recycle of + command buffers such that both Vulkan and ANGLE secondary command + buffers are supported. + + Bug: angleproject:6100 + Change-Id: I8c79764ac98b599fda08fe45cf8c4f0a6573f0f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987873 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit ad8e4d99a977073074a36fe231477398843f1501 +Author: Geoff Lang +Date: Tue Sep 28 11:48:46 2021 -0400 + + Remove EGL_ANGLE_flexible_surface_compatibility + + This extension has been superseded by EGL_KHR_no_config_context. + + Bug: chromium:1253930 + Change-Id: Ie299c34baa84e9f47c73ddb5a0636536bf510d72 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190612 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 58626b82411444ae8a301236483d994a1326dd01 +Author: Tim Van Patten +Date: Mon Oct 4 13:01:17 2021 -0600 + + Vulkan: Enable BlitFramebufferANGLETest tests + + The following tests were disabled for the Vulkan backend, but appears to + now be working locally: + + BlitFramebufferANGLETest.MultisampledBGRAToRGBA + BlitFramebufferANGLETest.MultisampledRGBAToBGRA + + Bug: angleproject:4694 + Test: BlitFramebufferANGLETest.MultisampledBGRAToRGBA + Test: BlitFramebufferANGLETest.MultisampledRGBAToBGRA + Change-Id: Icd88c484fbbbe65561634e97df43c51841d61c10 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198402 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Shahbaz Youssefi + +commit 54d4bfe5f9d3ba6683c53fc50534bc7a1e3d78f0 +Author: Kyle Piddington +Date: Tue Sep 28 17:27:57 2021 -0700 + + Update ANGLE Metal to Webkit at Sept 29 2021 + + This commit merges changes from Webkit into ANGLE upstream. + The following commits were used: + Current: + https://git.webkit.org/?p=WebKit.git;a=commit;h=e01d0bda8f4b7dc2fd834b92802d15d8c15735f + + Previous: + https://git.webkit.org/?p=WebKit.git;a=commit;h=492f078198748e8ff248eea0bb979cf79e5f5adfj + + The following commits were merged in from the Webkit Repository: + (Hashes from git://git.webkit.org/WebKit-https.git) + + 03ea44c78ce5665d4ec9add271260121cbc7bc6c + Problems with drawElements in some conditions + https://bugs.webkit.org/show_bug.cgi?id=230107 + c8dc8e0c4d1109d39a62eb197b45e95132380290 + ANGLE Metal: single-component swizzles do not compile + https://bugs.webkit.org/show_bug.cgi?id=230472 + 7285dbaaf5af15877d6c332b30ef7a4d67225460 + webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal + https://bugs.webkit.org/show_bug.cgi?id=229941 + 4c72f92967ecd2a095666fef431384c4f5f60fb4 + fragcolor-fragdata-invariant.html fails + https://bugs.webkit.org/show_bug.cgi?id=223317 + cd943145467f54e5928793c0dd3dfa2313c007dd + ANGLE Metal index buffer restart range cache could be maintained.. + https://bugs.webkit.org/show_bug.cgi?id=227451 + f075ff77e592eabd54dd659a8e13617cc5faedc8 + ANGLE Metal infinities and NaNs generated with incorrect syntax + https://bugs.webkit.org/show_bug.cgi?id=229439 + 5862073269122f4b2d43d96d3922757557755e86 + [Metal ANGLE] Fix over-autorelease of + rx::DisplayMtl::getMetalDeviceMatchingAttribute()... + + 85f797ad31db048cb82cbafd428ef77f0b839312 ANGLE Cocoa compiles.... + https://bugs.webkit.org/show_bug.cgi?id=228987 + a67918ba279ad4842b6ae84a79c3f1c0cdc35ace Avoid infinite recursion... + https://bugs.webkit.org/show_bug.cgi?id=228978 + d341f67de0033adcf1ec6373ace6a54b06c4a031 + Cherry-pick ANGLE: Revise WebGL's shaderSource validation + https://bugs.webkit.org/show_bug.cgi?id=228951 + 1e2714d981e97de8234ba055570dfdf56e8b6944 + 3.5 MB system-wide footprint impact due to thread-locals... + https://bugs.webkit.org/show_bug.cgi?id=228240 + d32e5cca34081997d32504b0b56c18b9703ff3be + Build Default Metal library offline + https://bugs.webkit.org/show_bug.cgi?id=227333 + 33702279faccfd4c8d1c8a6d549925f9ca9a4e8f + WebGL2 demo doesn't work due to failing compilation.... + https://bugs.webkit.org/show_bug.cgi?id=226865 + 0a075885d242db38c4e435a6597173dc3b082173 + rAF driven WebGL submits excessive amount of GPU work... + https://bugs.webkit.org/show_bug.cgi?id=227059 + f38a92b3e7c17efda269caa7066e7ffe2f828e72 + WebGL shader link error in iOS 15 beta: "Internal error..." + https://bugs.webkit.org/show_bug.cgi?id=227723 + 98d48f011d561531470d97f26a022767b5452fb7 + REGRESSION (r279466): [Big Sur] webgl/1.0.3/conformance &... + https://bugs.webkit.org/show_bug.cgi?id=227596 + + Bug: angleproject:6471 + Change-Id: I07166d0dc4b5c3579d98353485b3245b81c7b882 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3194322 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Kenneth Russell + Commit-Queue: Jonah Ryan-Davis + Commit-Queue: Kyle Piddington + +commit a44197b5ac7715e2f893cced41121b1c19792684 +Author: YuxinHu +Date: Thu Sep 30 17:21:21 2021 +0000 + + Tests: Add Mini World Creata Trace + + Vulkan test failed on Pixel4XL due to a + vulkan validation layer error + VUID-vkDestroyBuffer-buffer-00922. + + As a temp work around, + I add a condition in TracePerfTest.cpp + to skip the vulkan test on Qualcomm GPU + + Test: angle_perftests --gtest_filter="*mini_world*" + Bug: b/194508684 + Bug: angleproject:6443 + Change-Id: I382b9dfc9aafeed92b89223214d8a4aeb75425a7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195194 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Yuxin Hu + +commit f9410d5ef077e6950ba2b1bcbbc5e2d46c1ee4cc +Author: Jamie Madill +Date: Mon Oct 4 11:05:47 2021 -0400 + + Update shader translator docs. + + Bug: angleproject:528 + Change-Id: I73cea8b2127abfe6ffa363f7abaabe039290c680 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3199995 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 57f67599d8bb04b34a5d7f20cc2e1bb1023c1650 +Author: angle-autoroll +Date: Mon Oct 4 10:01:10 2021 +0000 + + Roll vulkan-deps from 78a1201f0716 to 3f11eb9d9ae7 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/78a1201f0716..3f11eb9d9ae7 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/3234daada7..9529d3c2c6 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6d54fa0fe0..bdcc9c66af + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I6ede3de308d3ecc659c62b25b88cc6c81a51d266 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202083 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1720c6aa065fdd035035fbd8d10d6479ee1fc3e6 +Author: angle-autoroll +Date: Mon Oct 4 10:01:08 2021 +0000 + + Roll SwiftShader from 1cdfcb680631 to f43b9df4c8a9 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/1cdfcb680631..f43b9df4c8a9 + + 2021-10-02 vadimsh@chromium.org Add realms.cfg to LUCI configs. + 2021-10-01 capn@google.com Add padding to VkBuffer size to avoid access violation + 2021-10-01 capn@google.com Remove the legacy GLSL ES vertex shader fuzzer + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6444 + Tbr: syoussefi@google.com + Change-Id: I5a9c1809a588ab84a32124521af2732dfbf35839 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3201564 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d3764f080f6cdf010df34c5c205b4df83cb8c92f +Author: Kyle Piddington +Date: Thu Sep 30 13:46:15 2021 -0700 + + Fix dEQP.GLES3/functional_fragment_out_array* on Direct to Metal + + Fragment arrays with locations assigned were not being + correctly transformed. + + Fix ModifyStruct to handle the changing location when + locations are set + + Bug: angleproject:6477 + Change-Id: Icbacd50e265abdbaff3be230b2ec201eaa868a14 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198807 + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 076366cc9fa6164979fcfcac69537532954e4c02 +Author: Mateusz Przybylski +Date: Fri Oct 1 23:42:04 2021 +0000 + + Revert "VertexArray: Don't syncState on Buffer map/unmap." + + This reverts commit 3d429f597fde950e789ca3684abbabd540157773. + + Reason for revert: This change is causing crashes in ANGLE stack. + + Original change's description: + > VertexArray: Don't syncState on Buffer map/unmap. + > + > Map/unmap calls are now treated like contents change events. Similar + > to BufferSubData calls. + > + > Bug: angleproject:6371 + > Change-Id: Ie0a4c521ffdedfa723d47eddd21c6f68dde044ac + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187811 + > Commit-Queue: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Tim Van Patten + + Bug: angleproject:6371 + Change-Id: I57480a18f3c70a1bf2a539e3047402c71802655d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200288 + Bot-Commit: Rubber Stamper + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 0d9568093ddac955f0c7fc30d4b69f5168d15f15 +Author: angle-autoroll +Date: Fri Oct 1 23:44:46 2021 +0000 + + Roll VK-GL-CTS from 5d72b170aad6 to e2aeccde416b (13 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/5d72b170aad6..e2aeccde416b + + 2021-10-01 antto.makinen@siru.fi Add coverage for sampling a compressed texture that has been written to by a compute shader + 2021-10-01 piotr.byszewski@mobica.com Extend multisample tests to support FSR + 2021-10-01 jari.komppa@siru.fi Stencil resolve tests without samplerate shading + 2021-10-01 alex.lan@arm.com Add a new GLES2TextureSharingTest + 2021-10-01 gleese@broadcom.com Initialise dot product required feature struct + 2021-10-01 siglesias@igalia.com Fix early fragment tests validation errors + 2021-10-01 rgarcia@igalia.com Fix image view type for multiview multi draw tests + 2021-10-01 tapani.palli@intel.com Fix for the bounding box tests with GL 4.5 + 2021-10-01 slawomir.cygan@intel.com Fix stencil data unpacking in dEQP-VK.fragment_operations test + 2021-10-01 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master" + 2021-10-01 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + 2021-09-30 ilkka.saarelainen@siru.fi Update vkDeviceFeatureTest.inl + 2021-09-27 quic_mnetsch@quicinc.com Notice of withdrawal of Vulkan CTS 1.2.4.x + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ianelliott@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com,angle-bots+autoroll-info@google.com + Change-Id: I79129b4fff3c4b7299854d00024758e0dd075fcb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200289 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7c1622ca37ffe7b1e606eb9a8241563d4f932a38 +Author: Ian Elliott +Date: Fri Oct 1 16:42:29 2021 -0600 + + Fix links with Handling Test Failures CL + + After landing + https://chromium-review.googlesource.com/c/angle/angle/+/3192171, I + clicked on all of the new links and found a few problems, which this + CL fixes. + + Bug: angleproject:6462 + Change-Id: I57a440fa8d8c3554c4ae05222e9a174c0e3a3314 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200286 + Reviewed-by: Yuly Novikov + Commit-Queue: Ian Elliott + +commit 98a6e0a46587caff217f631a8ec30c82368f6b77 +Author: Ian Elliott +Date: Fri Oct 1 15:06:07 2021 -0600 + + Suppress VUID-RuntimeSpirv-OpImage-06376 + + Bug: angleproject:6492 + Change-Id: I5963506164ae70edf4f2e77401dc86794157f8f2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200277 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 2c8afb6c44e8c842e26eb009cecb7f8c2ab09277 +Author: Gregg Tavares +Date: Thu Sep 30 09:45:50 2021 -0700 + + Update ANGLE_robust_resource_initialization about depth + + ANGLE_robust_resource_initialization implementations seem + to clear depth components to 1.0 but the specification + says they should be cleared to zero. It looks like the + intent was to clear to 1.0 which is what the WebGL spec + requires. + + https://www.khronos.org/registry/webgl/specs/latest/1.0/#4.1 + + Bug: angleproject:6473 + Change-Id: Ib880d6e30d04f68a9cfd06df8011fdfbe8f9536b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197697 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Kenneth Russell + Commit-Queue: Gregg Tavares + +commit fca9de6f6f963e186170cbc59ae88e916e8bbf35 +Author: Gregg Tavares +Date: Wed Sep 29 14:59:06 2021 -0700 + + Fix Metal backend not clearing stencil buffer + + If you had a depthstencil buffer the stencil portion + was not being cleared. + + Bug: angleproject:6389 + Change-Id: Iad3f12ae627bc12625d959f9a52fdb1dcb8c9bc3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198800 + Commit-Queue: Gregg Tavares + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Kyle Piddington + +commit 61dc7698a4ce9246b70f544a22d7f1d561399792 +Author: Ian Elliott +Date: Tue Sep 28 15:07:20 2021 -0600 + + Add documentation about suppressing test failures + + Bug: angleproject:6462 + Change-Id: Ia46f58ea66ec3e2b50fca91a645fe0e8969689d0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192171 + Commit-Queue: Ian Elliott + Reviewed-by: Yuly Novikov + Reviewed-by: Jamie Madill + +commit 12e5a7db66ac074d0c76f6e4a44a69a8ad4ccf3c +Author: Ian Elliott +Date: Fri Oct 1 13:52:37 2021 -0600 + + Suppress VUID-RuntimeSpirv-OpImage-06377 + + Bug: angleproject:6491 + Change-Id: I0e9f8908077ea10685b7796b2c42086ae6520d05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200275 + Reviewed-by: Ian Elliott + +commit 32d6e8060a89cbcb56b0cab10cf0abee8a7fc43d +Author: Shahbaz Youssefi +Date: Fri Sep 24 23:50:54 2021 -0400 + + Vulkan: Fix rotation of interpolateAtOffset + + interpolateAtOffset's offset was multiplied by flipXY*rotationMatrix, + which is a vector. This was unable to actually apply rotation to the + offset. The multiplier is changed to a matrix. + + Can be tested by running interpolate_at_offset*default_framebuffer tests + in deqp gles3.1 together with pre-rotation: + + ./angle_deqp_gles31_tests + --deqp-case=dEQP.GLES31/functional_shaders_multisample_interpolation_interpolate_at_offset_no_qualifiers_default_framebuffer + --emulated-pre-rotation=90 + + Bug: angleproject:5843 + Change-Id: I9727371375e999f07463b69153df3fd8b28c2a71 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183108 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Commit-Queue: Shahbaz Youssefi + +commit 043120eee3d4c35c2edbbca9e1d9447004ab4fbf +Author: Jamie Madill +Date: Wed Sep 29 15:56:46 2021 -0400 + + Capture/Replay: Allow disabling program trimming. + + The ANGLE_CAPTURE_TRIM_ENABLED variable disables program trimming + when set to 0. This is useful for trace validation, which expects + the GL state vectors to be identical. + + Bug: angleproject:5133 + Change-Id: I3ab41de80af7b223c4cb8a1b7e14f049717305fc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193417 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit f2f268b38f9f3a634ac89c4700e2e0bf2a80d4f5 +Author: Jamie Madill +Date: Fri Oct 1 14:56:19 2021 -0400 + + Fix invalid Windows header include. + + Was detected from the recent loader roll. + + Bug: angleproject:6476 + Change-Id: Ifebf6d642727a92b7daff018723b7bf8f227ed6f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198742 + Reviewed-by: Ian Elliott + Commit-Queue: Jamie Madill + +commit da3db87ec4a491a650d86d3d2776466a48135972 +Author: Kenneth Russell +Date: Tue Jul 6 14:00:58 2021 -0700 + + Upstream latest changes to Metal backend from Apple to 7/1/2021 + + This CL merges in the ANGLE changes between these two WebKit commits: + https://git.webkit.org/?p=WebKit.git;a=commit;h=8648b353ab1d7730438c2e08319e1a4d64982c31 + https://git.webkit.org/?p=WebKit.git;a=commit;h=166e4924a52971d6a32ad48247a439b16c00e062 + + Include provoking vertex buffer out of bounds fix + from https://bugs.webkit.org/show_bug.cgi?id=230107 + + Fix bad merge of resetting of dirty bits, breaking + DepthStencilFormatsTest.DepthTextureRender test and perhaps others. + + Disable GL_APPLE_clip_distance when the direct-to-Metal compiler is + active. It can not yet handle the gl_ClipDistance array. + + Disable use of rectangular textures for IOSurfaces. Metal can bind + IOSurfaces to 2D textures, and this was passing all tests in the + SPIR-V Metal backend. Introducing rectangular textures breaks the + SPIR-V Metal backend, and the tests currently fail on the + direct-to-Metal backend. + + Fix several bugs with ProvokingVertex, which was causing + both the SpirV and Direct backends to incorrectly draw + indices. + (https://bugs.webkit.org/show_bug.cgi?id=230107) + + Skip the following tests on the Metal backend which is still failing + RobustResourceInitTestES3.BlitDepthStencilAfterClearBuffer + GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_Metal + + With these changes, angle_end2end_tests again runs to completion. + + Bug: angleproject:6395 + Change-Id: I3cc58f531426a95fc8f177a4ad87f56c1855a546 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167010 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Kenneth Russell + Commit-Queue: Kyle Piddington + +commit 0b4508e5d9177b3c3919ad73b4fc74e8d1184380 +Author: Jamie Madill +Date: Fri Oct 1 11:49:52 2021 -0400 + + Add script to automatically download extension data. + + The script uses the 'bb' and 'swarming' tool to download build info + and artifacts. See the script for more info. + + Bug: angleproject:6379 + Change-Id: I65444771a69dc2f6eee39f6ba8d471fdd8ca2cff + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198737 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + Reviewed-by: Jonah Ryan-Davis + +commit 2a8be9de18ea57d996046ca6160b0e508ec10e54 +Author: Shahbaz Youssefi +Date: Fri Oct 1 01:26:19 2021 -0400 + + Vulkan: OES_shader_multisample_interpolation is now conformant + + This extension was not conformant due to an imprecision in the GL spec + which is now rectified. See: + + https://gitlab.khronos.org/opengl/API/-/issues/149 + + The OpenGL CTS has been fixed here: + + https://gerrit.khronos.org/c/vk-gl-cts/+/7862 + + Bug: angleproject:6190 + Change-Id: I0c37332939f70291a5f76ca36fa9f24b179ce414 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197513 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit a097ee2ea7a9ae47aea22719ffb2a7eb87f5b6c9 +Author: Shahbaz Youssefi +Date: Mon Sep 27 15:18:02 2021 -0400 + + Vulkan: Fix clearing external images with emulated format + + External images may already have data, and clearing them due to their + format being emulated is incorrect. + + This change makes sure that only the emulated channels are cleared. + + The RGBXDataPreservedAHB test is based on one contributed by + Jason Macnak . + + Bug: b/192315789 + Change-Id: Ibc8953fdac356f2a62a5b46512a51e1916b4a1b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193416 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 22d8115a208bfeb19c8bd95f08b26e6d18a81ebe +Author: angle-autoroll +Date: Fri Oct 1 10:01:09 2021 +0000 + + Roll vulkan-deps from 11c6360dd46f to 78a1201f0716 (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/11c6360dd46f..78a1201f0716 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/ba4b390c36..3234daada7 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/edccdb3444..0cc98ec7ac + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Id346d2b190aa0dd088f047fb4e9deae17fd65a9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3199480 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c39bff929aa317722b92814943550b576ae57dfd +Author: angle-autoroll +Date: Fri Oct 1 10:01:08 2021 +0000 + + Roll SwiftShader from cde65f7a8816 to 1cdfcb680631 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/cde65f7a8816..1cdfcb680631 + + 2021-10-01 capn@google.com Fix macOS build requiring Objective-C++17 compilation + 2021-10-01 capn@google.com Restore zero-initialization of memory allocations + 2021-09-30 capn@google.com Refactor config constants + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I5d7e684d5e7bc1b2aa33164cccefbf78561ff4a2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3199718 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit f679d11e998e17642981d96ca89f88ea70ca11e1 +Author: angle-autoroll +Date: Fri Oct 1 07:01:42 2021 +0000 + + Roll Chromium from 37e9c2c2d559 to 34d255f7dd4d (493 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/37e9c2c2d559..34d255f7dd4d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/28fa03fe59..ebad853384 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/31a366089a..9959b06ccd + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d9c7befabb..e0231d3d66 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/caeb227a35..33e6ca6da3 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..01df326efe + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9c24aede92..0e2fb336b2 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/278dd91c9c..c06edd1f45 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/0a0c4c7a05..b7c66a0d49 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3f71c7b4a1..04d66f45ae + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I98e152e872e35cf8488ac8833cf7cde6e42c3979 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3199476 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 3de06bcd0c815bef8274342d7da947e7e7349ddc +Author: angle-autoroll +Date: Thu Sep 30 21:46:13 2021 +0000 + + Roll vulkan-deps from 788a2f62acbe to 11c6360dd46f (144 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/788a2f62acbe..11c6360dd46f + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/e0771b5d4c..581897f462 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c2500e504d..97a438d214 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/6cae8216a6..ae217c1780 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7e860e3831..ba4b390c36 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9e62d02763..e500c7c809 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/20cf221e72..edccdb3444 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/642da192c8..a956d1a0e5 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1e6ed74d5d..6d54fa0fe0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6478 + Change-Id: I28a46296e5b3590601a61707f438d8b238be3ff6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198645 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 1fdedbd45a55ff06b98e038c39915bd025bf3dfa +Author: Ian Elliott +Date: Thu Sep 30 12:33:04 2021 -0600 + + Except "loader_windows.h" in export_targets.py + + This should unblock the "vulkan-deps" autoroller + + Bug: angleproject:6476 + Change-Id: I106d23cb6531d41ebf0b8eb4495cb37ee07c51ba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197704 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 35708f98ac7285a03473684631c213fe1d282656 +Author: Jamie Madill +Date: Thu Sep 30 11:54:34 2021 -0400 + + Merge extension support docs. + + We previously had an existing document in doc/ExtensionSupport.md. + This merges the new SupportedExtensions.md into the old location + and includes a bit more info on EGL extension support. + + Bug: angleproject:6379 + Change-Id: Ibb60a9e9db9200abe609383531131903ca698e60 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197770 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 4cb34637fa399c2d7a952158c93a6665dae4a7b1 +Author: Shahbaz Youssefi +Date: Wed Sep 29 16:40:11 2021 -0400 + + Vulkan: Fix crash in async queue + + The change also fixes a regression introduced by + 2d79918fdb0276cdb57488d72abd803250f962a3 which caused a segfault when + async queue is used. + + Unfortunately, due to anglebug.com/6437, async queue tests are not run + on the bots at the moment. This will be fixed in a follow up change. + + Bug: angleproject:6436 + Change-Id: I3c2f63549149fbd9c9ab61107e98e8015cdb1c77 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193419 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 0004ecc2a494ad9c63607508dbe98133da8bae30 +Author: Jamie Madill +Date: Wed Sep 22 13:39:55 2021 -0400 + + Write GL info to test artifact in end2end_tests. + + These will show up as glinfo.json in the "cas outputs" of the shard + that runs these tests. + + We currently have information for Pixel 4, NVIDIA and Intel Win/Linux, + and SwiftShader Windows. GLES 1.x extensions are treated separately. + Some WebGL/Mac-only/D3D-only extensions show as unsupported anywhere. + + In order to capture artifacts on Android, we use a render test output + parameter. + + Bug: angleproject:6379 + Change-Id: I560b219b5a586cdbb68d272090f38eedc76aba20 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176780 + Commit-Queue: Jamie Madill + Reviewed-by: Ian Elliott + Reviewed-by: Tim Van Patten + Reviewed-by: Jonah Ryan-Davis + +commit 3d429f597fde950e789ca3684abbabd540157773 +Author: Jamie Madill +Date: Mon Sep 27 14:27:31 2021 -0400 + + VertexArray: Don't syncState on Buffer map/unmap. + + Map/unmap calls are now treated like contents change events. Similar + to BufferSubData calls. + + Bug: angleproject:6371 + Change-Id: Ie0a4c521ffdedfa723d47eddd21c6f68dde044ac + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187811 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit cf8c5678588f197d2e117a4f3cbb877e8113238f +Author: Jamie Madill +Date: Fri Sep 17 13:16:36 2021 -0400 + + Vulkan: Don't sync VAOs after BufferSubData calls. + + We still need to syncState after buffers that contain converted + attributes are updated. Includes a perf regression test. + + Bug: angleproject:6371 + Change-Id: I54227fc43e7b3fe79072da7783dab0177ccb0486 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182706 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit b930b9d32e68386b2652582b47494af221382130 +Author: Jamie Madill +Date: Wed Sep 8 09:08:28 2021 -0400 + + Capture/Replay: Remove redundant "capture" from label + + old: trex_200_capture_context1_frame001.cpp + new: trex_200_context1_frame001.cpp + + The 'capture' word wasn't really adding any useful information. + Take it out so the filenames are a bit shorter. + + Bug: angleproject:5133 + Change-Id: Ibd7d47df2aa1f24a641c5d5b2a6dd14d6ce240e1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149370 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit a78310ee7b8a10153c73aa4020a437d45187e581 +Author: Shahbaz Youssefi +Date: Wed Sep 29 12:37:42 2021 -0400 + + Clean up ImageTest.cpp + + Removed manual gen/delete calls and replaced GLuints with RAII types. + + Bug: b/192315789 + Change-Id: Ic2e7f3fcc3cefe83917d3b8dcc4ec2979c732b21 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193415 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Commit-Queue: Shahbaz Youssefi + +commit 8870a4e204bbc549875ea4456ed0ebd97c45184b +Author: angle-autoroll +Date: Thu Sep 30 10:01:08 2021 +0000 + + Roll SwiftShader from d625b6424dba to cde65f7a8816 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/d625b6424dba..cde65f7a8816 + + 2021-09-29 capn@google.com Don't initialize memory allocations in MSan builds + 2021-09-29 yikong@google.com Fix unused-command-line-argument warning + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ib34187139d84ca0b08a493f0d97947a664b00df4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195814 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 326761afb50885cfdad8b2ecc92293df0e092f0f +Author: angle-autoroll +Date: Thu Sep 30 07:02:00 2021 +0000 + + Roll Chromium from 5353b9932896 to 37e9c2c2d559 (481 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5353b9932896..37e9c2c2d559 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/97037cb717..28fa03fe59 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/50e90b8650..31a366089a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/c06de74c13..d9c7befabb + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/8aecb680df..413eeeaef1 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f058930f07..caeb227a35 + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/6e5dc9acd2..7a11b799ef + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..01df326efe + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/764c927d7d..9c24aede92 + * third_party/nasm: https://chromium.googlesource.com/chromium/deps/nasm.git/+log/4e6fe9d154..335fe83e13 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/622a4163de..0a0c4c7a05 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/33f90a99eb..3f71c7b4a1 + * tools/python: https://chromium.googlesource.com/chromium/src/tools/python/+log/dda1627b52..d17f53e496 + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ie25a16ff9333c78cb69227004ae5a2791137da8b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195197 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8d1e74abd5d65d39b7b1249af3bf83cfe30855d0 +Author: Weiwei Lin +Date: Thu Sep 30 00:53:39 2021 +0000 + + [milo] update test presentation config to show GPU column + + So it will be easier for users to distinguish tests run on different + GPUs. + + R: jmadill,ynovikov + BUG: chromium:1249703 + Change-Id: I393d305c963f5fc654c9c32fc86cda6c7f019086 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195351 + Commit-Queue: Yuly Novikov + Reviewed-by: Yuly Novikov + +commit 5e02940105dbfda6f057f6cca12b46e008136632 +Author: Aditya Kushwah +Date: Tue Sep 28 15:49:20 2021 -0700 + + Add a new variant to the labeling API. + + This CL will create a new variant which will take both internal name + and KHR debug name and send them over to the D3D. This will help us + capture KHR debug label better and also prevent for the cases where + ANGLE was dropping the KHR labels on the floor when calling the label + API right after the commands like glTexStorage2D, glTexImage2D etc. + + Bug: chromium:1164111 + Change-Id: Ifebe8df5435a34692c601c5c35fddc1911bf9d0c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192180 + Reviewed-by: Rafael Cintron + Reviewed-by: Jamie Madill + Commit-Queue: Rafael Cintron + +commit 85de22fde459f45da1854db98587f4b44d3ce9ce +Author: Gregg Tavares +Date: Wed Sep 29 13:27:42 2021 -0700 + + Set the viewport missing from a few tests + + A few places seem like they should be setting the viewport. + Bascially any place that creates a framebuffer that's different + size than the backbuffer (defined as kWidth, kHeight) should + probably be setting the viewport. + + Bug: angleproject:6394 + Change-Id: Iee64f6700e3f93c236ab46d3d5debd47c49d2fa0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195054 + Commit-Queue: Gregg Tavares + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 4647e4c5de81423c8b62a81cd02c09eb63c4cd8f +Author: Alexis Hetu +Date: Mon Sep 27 17:03:05 2021 -0400 + + SwANGLE copy to IOSurface + + This CL performs a buffer to image copy on bindTexImage + and an image to buffer copy on a releaseTexImage on MacOS + in order to copy from/to an IOSurface which has an arbitrary + internal layout. + + It also changes the internal format used by GL_BGRX8_ANGLEX + to GL_RGBX8_ANGLEX in order to have an internal format which + accurately represents the {GL_RGB, GL_UNSIGNED_BYTE} format + with the color channels in the correct order. + + Bug: chromium:1209250 + Bug: angleproject:4369 + Change-Id: I62b66c7055f8ba8a4c943abeb2e35a3825efc392 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169472 + Reviewed-by: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Alexis Hétu + +commit 84bf49a5bc6c14b8abab3dddd2646390d6768478 +Author: Brandon Schade +Date: Mon Sep 27 15:20:22 2021 -0500 + + Vulkan: Fixed an issue with primitives generated query + + The primitives generated query does not work with rasterizer discard, + as such rasterizer discard is disabled with the beginQuery call and + re-enabled with the endQuery call. + The issue is that previously rasterizer discard was not being disabled + until ContextVk::resumeRenderPassQueriesIfActive in some cases. This + led to cases where primitives generated query did not work. + The fix is to insure all beginQuery calls disable rasterizer discard + when primitives generated query is active. + + Added the following end2end test to cover the failure: + TransformFeedbackTestES32.MultiPrimitivesGeneratedVsRasterizerDiscard + + Bug: angleproject:5557 + Tests: KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule* + Change-Id: I7e1a0a0bc4a3100349c2c5dbdbe6becd1e0dda29 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193100 + Commit-Queue: Brandon Schade + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 30878d2ad55367c3c57cdc62663b9c2f36ad88e1 +Author: Jamie Madill +Date: Fri Sep 24 09:23:56 2021 -0400 + + Buffer: Notify contents changed in a separate observer list. + + Buffer contents changed will only notify VertexArray. Also this + list is separated from the other observers because in the future + most of the time we won't need to notify the VertexArrays when + buffer contents changed, to avoid iterating over a large list of + VertexArray observers on simple SubData calls. + + Bug: angleproject:6371 + Change-Id: I6142a5757868caf33dc6594a1975f817f80553e8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182701 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 696f853333d1b047ee6a390ea9415a88121e9efc +Author: Gregg Tavares +Date: Tue Sep 28 15:21:51 2021 -0700 + + fix GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays + + The test was using a gl_PointSize of 1000.0 but GL_POINTS + are only required to support a max size of 1.0 + + Bug: angleproject:6463 + Change-Id: I8a44607085583cbc7cef06f21b118121cc1fef24 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192177 + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + Commit-Queue: Gregg Tavares + +commit 5db7885f635708596ce68eec25f566c08e292eca +Author: Cody Northrop +Date: Tue Sep 28 17:16:40 2021 -0600 + + FrameCapture: Fix GLES1 VertexArrayState + + Broke recently when adding support for ES3.1 semantics. + GLES1 traces are hitting the loop below, generating + BindVertexBuffer. + + Test: Zillow MEC (GLES 1) + Bug: b/199919700 + Change-Id: Ibe83d1b4009b00f891903cae889449d42e9f510b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192990 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit d5e0769641a37313a495b84bf5612365f71cc9de +Author: angle-autoroll +Date: Wed Sep 29 10:01:08 2021 +0000 + + Roll SwiftShader from 562df4889b81 to d625b6424dba (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/562df4889b81..d625b6424dba + + 2021-09-28 capn@google.com Regres: Skip the Vulkan Loader + 2021-09-28 swiftshader.regress@gmail.com Regres: Update test lists @ 562df488 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I70e00931a2f420e499bdfd1a69acb8c01dc4c31d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193648 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f90e2fd7b3f51e90aaa3d8ab8c0d5568e9798811 +Author: angle-autoroll +Date: Wed Sep 29 07:00:15 2021 +0000 + + Roll Chromium from de11715e63f4 to 5353b9932896 (497 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/de11715e63f4..5353b9932896 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/a76920d402..97037cb717 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7c7b5a9283..c06de74c13 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..5afc36517c + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ce514ad38e..764c927d7d + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2e80143c50..278dd91c9c + * tools/luci-go: git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172..git_revision:a373a19da0fbbbe81b2b684e3797260294393e40 + * tools/luci-go: git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172..git_revision:a373a19da0fbbbe81b2b684e3797260294393e40 + * tools/luci-go: git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172..git_revision:a373a19da0fbbbe81b2b684e3797260294393e40 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/bffe6d494f..622a4163de + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e3425a115f..33f90a99eb + * tools/skia_goldctl/linux: qxkaCck3N7NNLCHvQM2gksDboY80QAXbM9dfnJD0-y8C..nd7yQQ-V4Vhc9bpvP_u3p7X0LVCxdlS946BHctVPg5MC + * tools/skia_goldctl/mac: U5z-9pZVF7_n6d_eDRqkGGExXzWAwaI9weKVJ0UNCWIC..5DO-jjFFNcDssKFQDFLkkgvfeRqjlYUfRb9j2-QN2EYC + * tools/skia_goldctl/win: mXlfDemOBUbOngfIwncHzw56bAtEBcVh15WyA9ikp2cC..rcX7oPaX2IWDB3XLoKp3dksyI7hhD7sMhOJrwNq46hAC + Clang version changed llvmorg-14-init-4855-ged687c02:llvmorg-14-init-4918-ge787678c + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/2e80143c5087a724d7da26530fa7d104ac65414c..278dd91c9c2f982e3bf5f0b5372ac326713d5448/scripts/update.py + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I44e446678cc093b57a57d5cd5a1d21cd9a22a65f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193594 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 394dc64df28bf49f0e433d2ba7ed6ad2e507be06 +Author: Gregg Tavares +Date: Mon Sep 27 14:07:32 2021 -0700 + + Change this expectation to skip on AMD only + + This appears to be an AMD only issue + + Bug: angleproject:6387 + Change-Id: I596341ed3d4b655312abfaa8b8e768fea742074b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192173 + Reviewed-by: Kenneth Russell + Commit-Queue: Gregg Tavares + +commit c0aa61082d7dcdbf70ed2fbeeb7d4b5053c9b87c +Author: Alexis Hetu +Date: Fri Sep 17 16:22:55 2021 -0400 + + Add new GL_RGBX8_ANGLEX format + + Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE} + are natively represented with GL_BGRX8_ANGLEX, which we use + instead of other RGBA formats in order to avoid issues when + a canvas uses 'no alpha': + https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44 + + This unfortunately causes some other issues because of the + implicit RGB <-> BGR conversion like type mismatches in + subresource updates. This CL adds a new type, RGBX8, which + will be usable by IOSurface objects and which behaves exactly + like the BGRX8 format with the B and R channels flipped. + + Bug: chromium:1209250 + Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910 + Commit-Queue: Alexis Hétu + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit dff5c7525c93f05c2ffb5c070a9c704c0fc931b8 +Author: Ian Elliott +Date: Tue Sep 28 11:27:06 2021 -0600 + + Suppress VVL error: *InterfaceTypeMismatch + + Suppress VVL error: + UNASSIGNED-CoreValidation-Shader-InterfaceTypeMismatch + + Bug: angleproject:6442 + Change-Id: I1d5412a1be7cba0b3571225d3f3d94c72349742f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191390 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit 20be5bed84f184175a273042a4d1f49d20bfe3f0 +Author: Geoff Lang +Date: Tue Sep 28 11:31:50 2021 -0400 + + Expose EGL_KHR_no_config_context on more backends. + + EGL_KHR_no_config_context can be exposed on any backend that supports + EGL_ANGLE_flexible_surface_compatibility + + Bug: chromium:1253930 + Change-Id: Iec75ce944fc463a8c476579234be77028f74113b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190611 + Reviewed-by: Peng Huang + Commit-Queue: Geoff Lang + +commit 8f8ca06dfb903fcc8517c69142c46c05e618f40d +Author: angle-autoroll +Date: Mon Sep 6 10:01:37 2021 +0000 + + Roll vulkan-deps from b1e5bf7dd9c3 to 788a2f62acbe (13 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/b1e5bf7dd9c3..788a2f62acbe + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/51d8e7be94..c2500e504d + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/789de0dc4b..7e860e3831 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/ee4d7bb1bf..20cf221e72 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/cf9d49e461..642da192c8 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/2fdf7a587b..1e6ed74d5d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6442 + Tbr: ianelliott@google.com + Change-Id: Id6bcd349462f7c0a61fcb3ccf831e5238334382d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188612 + Reviewed-by: Ian Elliott + Reviewed-by: Geoff Lang + Commit-Queue: Ian Elliott + +commit c42ef6096c7c61bfb32d4fb704722a37ef12a013 +Author: angle-autoroll +Date: Tue Sep 28 10:01:07 2021 +0000 + + Roll SwiftShader from efbbb2f07b36 to 562df4889b81 (7 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/efbbb2f07b36..562df4889b81 + + 2021-09-27 capn@google.com Implement support for regular scaled buffer formats + 2021-09-27 capn@google.com Eliminate Subzero's dependency on llvm::FoldingSet + 2021-09-27 nicolascapens@google.com Fix dEQP setup documentation for Linux + 2021-09-27 capn@google.com Fix obtaining the execution model from the intended entry point + 2021-09-27 srisser@google.com Implement VK_EXT_4444_formats + 2021-09-27 capn@google.com Revert "Work around dEQP-VK output_location test flakiness" + 2021-09-27 capn@google.com Increase maxStorageBufferRange to MAX_MEMORY_ALLOCATION_SIZE (1 GiB) + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I14704451dbad4f4db3d386a7287cc8ca04d7a89e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3189961 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit a394a0b7dde19ac4d3bc79da941758fb5f29167e +Author: angle-autoroll +Date: Tue Sep 28 07:01:07 2021 +0000 + + Roll Chromium from f340a513a5b7 to de11715e63f4 (90 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f340a513a5b7..de11715e63f4 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7e3c9d52a1..7c7b5a9283 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2146b04faf + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/c11a583b20..ce514ad38e + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/02bfd7b422..e3425a115f + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I7f6d0add71e18b8fdb4396ec093830633fb1e2fd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188669 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 33207313b2172525d7dc0526afd6d0aa51503bb1 +Author: Geoff Lang +Date: Mon Sep 27 10:45:17 2021 -0400 + + Disable clearing textures for robust init on Mac. + + Suspecting this path generates errors and hangs. + + Bug: chromium:1253356 + Change-Id: I0ef4a71578fa15631074f394d49e9878f3e301df + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187131 + Commit-Queue: Kenneth Russell + Reviewed-by: Jonah Ryan-Davis + +commit 998fd0d9e315b0c740f7debd2421c23b3e7025ed +Author: angle-autoroll +Date: Tue Sep 28 01:34:23 2021 +0000 + + Roll Chromium from 832ba3ce1a28 to f340a513a5b7 (398 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/832ba3ce1a28..f340a513a5b7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/6476f40242..a76920d402 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9d33a71117..a9bc3e2831 + * buildtools/linux64: git_revision:de86ec4176235871a7cb335756987e41246dae4a..git_revision:0153d369bbccc908f4da4993b1ba82728055926a + * buildtools/mac: git_revision:de86ec4176235871a7cb335756987e41246dae4a..git_revision:0153d369bbccc908f4da4993b1ba82728055926a + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/c883cb129d..50e90b8650 + * buildtools/win: git_revision:de86ec4176235871a7cb335756987e41246dae4a..git_revision:0153d369bbccc908f4da4993b1ba82728055926a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/6b0a116062..7e3c9d52a1 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/a46a6332f7..8aecb680df + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/300b75650f..f058930f07 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..eec3f1824d + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/4a17839cda..c11a583b20 + * third_party/turbine: EIJ2nS3aoQlV-cKpmxr4hNR4E1Qs82brcidjG4A1I5QC..OxN4BOHObt6tbi4fpsSFeUAxSiaf2Cto-QlpFzGzC_IC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/efd7c814c2..2e80143c50 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4853b26dab..bffe6d494f + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f6c353e258..02bfd7b422 + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com,ynovikov@google.com + Change-Id: Ie464f78498aa48e7fe470adb4c8ef16a55df1ea8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3189554 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit 3719c172ccb914dbc069d75726b502d4da6bf478 +Author: Cody Northrop +Date: Mon Sep 20 17:33:14 2021 -0600 + + FrameCapture: Filter program setup calls + + This CL adds filtering to shared setup calls based on whether + a resource is used during the frame capture. Calls that are + filtered out will not be written to SetupReplayContextShared. + This eliminates setup for unused resources. + + This has become critical for apps like Fortnite that compile + tens of thousands of programs before running any frames. This + can take multiple minutes to perform before rendering a frame. + + To achieve this, we do the following: + - Add an active status to every call (default to TRUE). + - Mark setup calls for tracked resources to FALSE during MEC. + - During the run, track for any use of the resource, and mark + its setup calls back to TRUE. + - Enable tracking for ShaderPrograms. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: I5070297d339de3b80f870640e8955077a2bc20aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3150387 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 5e182d2c676b81d5da09da2728355a2624eef177 +Author: Shahbaz Youssefi +Date: Thu Sep 23 14:29:48 2021 -0400 + + Add traces to CommandBuffer + + Additionally, use CommandBuffer's `reset` instead of direct Vulkan call. + + Based on patch by Igor Nazarov + + Bug: angleproject:6401 + Change-Id: Ib473ed2fd33ebb68852d4f4e7776a8e484ac8610 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179770 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Charlie Lao + +commit 1a0a0764aaeebe91ce1ca72e5edea2db5bacfa5a +Author: Shahbaz Youssefi +Date: Mon Sep 27 12:56:57 2021 -0400 + + Translator: Fix outputting anonymous struct types + + Anonymous struct types have an "empty" symbol name, so instead of + outputting their name, it's specified that they are anonymous. + + Bug: chromium:1253208 + Change-Id: Ic70767ba32bda6ceb214dfc3d0b4928173665d81 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187810 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit d9882db5f694c1c4fdaba6781ecd1ef41ff0fe17 +Author: Shahbaz Youssefi +Date: Fri Apr 16 21:47:25 2021 -0400 + + Vulkan: Destroy unused resources in a timely manner + + Deletion of garbage that's eligible for immediate cleanup is currently + delayed until the next submission. + + Fix this by checking if garbage can be freed immediately and deleting it + right away if it's not used. Some missing retain() calls needed to + be added to semaphore operations in order to avoid freeing resources + in use by a memory barrier. + + Based on a change by spang@chromium.org + + Bug: angleproject:4628 + Change-Id: I034c24d7631c973b4546952f7718a0cd4114763f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832002 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 1168bd28849f5e381dad7a673f5bfbf78ef840cf +Author: angle-autoroll +Date: Mon Sep 27 22:35:44 2021 +0000 + + Roll VK-GL-CTS from 8e89717bf4ed to 5d72b170aad6 (5 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/8e89717bf4ed..5d72b170aad6 + + 2021-09-24 syoussefi@google.com Fix GL_MAX_FRAGMENT_INTERPOLATION_OFFSET limit check + 2021-09-24 juha.heiskanen@siru.fi Test non-Sample Shading FragCoord.xy + 2021-09-24 ilkka.saarelainen@siru.fi Test vkCreateDevice with unsupported features + 2021-09-24 venni.ihanakangas@siru.fi Test anisotropic filtering of single-level images + 2021-09-24 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ianelliott@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com,angle-bots+autoroll-info@google.com + Change-Id: Ie8f76d9590cf1afe0780bcae9b99caf7e6e2b16a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188581 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5b699b4b726164db25679196e452de24b2a0eb59 +Author: angle-autoroll +Date: Mon Sep 20 15:14:42 2021 +0000 + + Roll VK-GL-CTS from 7103920041db to 8e89717bf4ed (52 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7103920041db..8e89717bf4ed + + 2021-09-20 gleese@broadcom.com Add missing checking of integer dot product features + 2021-09-20 gleese@broadcom.com Don't silently drop features that were requested + 2021-09-20 gleese@broadcom.com Update checking of VulkanFeatures structs + 2021-09-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + 2021-09-17 mikko.tiusanen@siru.fi Tests for OpenGL ES 3.1 and 3.2 compressed formats + 2021-09-17 siglesias@igalia.com dEQP-VK.subgroups.*ray_tracing* missing extension check + 2021-09-17 ari.suonpaa@siru.fi Re-enable protected memory tests + 2021-09-17 rgarcia@igalia.com Depth/Stencil descriptor tests + 2021-09-17 piotr.byszewski@mobica.com Test multiview with different depth ranges + 2021-09-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-09-16 root@qnegfx2.qualcomm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-09-14 piotr.byszewski@mobica.com Test blitting from ASTC formats + 2021-09-14 gleese@broadcom.com Fix workgroup memory tests for int16s + 2021-09-14 ari.suonpaa@siru.fi Check support for EGL 1.5 or higher when using GLES3 + 2021-09-14 gleese@broadcom.com Accept NaN as valid in atan2 precision tests + 2021-09-10 peter.kohaut@arm.com Update Vulkan headers + 2021-09-08 mika.vainola@siru.fi Fix Clang -Wcomma warnings + 2021-09-08 mika.vainola@siru.fi Fix qpReleaseInfo generation with non-ASCII paths + 2021-09-08 ari.suonpaa@siru.fi Add tests for VK_EXT_load_store_op_none + 2021-09-07 peter.kohaut@gmail.com Merge branch 'vulkan-cts-1.2.7' + 2021-09-07 stuart.brady@arm.com Add tests for VK_KHR_shader_integer_dot_product + 2021-09-03 peter.kohaut@arm.com Merge branch 'vulkan-cts-1.2.7' + 2021-09-03 mika.vainola@siru.fi Remove unreachable breaks + 2021-09-03 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-09-03 mika.vainola@siru.fi Fix GLES3 Clang UBSan errors + 2021-09-02 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-09-02 juha.heiskanen@siru.fi Add test for finding unknown memory property flag sets + 2021-09-02 mika.vainola@siru.fi Fix loop over cube map faces in GL4 + 2021-09-02 lionel.g.landwerlin@intel.com Fix fragment shading rate validation layer warning + 2021-09-02 jari.komppa@siru.fi Add run mode that verifies amber requirements + 2021-09-02 mika.vainola@siru.fi Remove extra semicolons + 2021-08-30 gleese@broadcom.com Fix warning in gcc-8 + 2021-08-28 juha.heiskanen@siru.fi Enable Vulkan matrix determinant and inverse precision tests + 2021-08-26 jasuarez@igalia.com Do not overflow when copy data + 2021-08-26 Neslisah.Torosdagli@amd.com Issue in serial storage address computation + 2021-08-26 antto.makinen@siru.fi Add coverage for sampling a cubemap that has been rendered to + 2021-08-20 galazin@protonmail.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-08-20 venni.ihanakangas@siru.fi Check support in synchronization operation tests + 2021-08-20 slawomir.cygan@intel.com Read stencil aspect from image in DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL layout + 2021-08-20 ilkka.saarelainen@siru.fi Optimize image clearing tests + 2021-08-20 venni.ihanakangas@siru.fi Ensure that destroying old swapchain has no effect + 2021-08-20 marcin.zajac@mobica.com Conservative rasterization with SampleMask + 2021-08-19 galazin@protonmail.com Update Vulkan headers + 2021-08-19 italonicola@collabora.com Implement getProcAddress for surfaceless platform + 2021-08-19 tapani.palli@intel.com Fix for the various multisample tests with GL 4.5 + 2021-08-19 tapani.palli@intel.com Fix to multisample texture test shaders with GL 4.5 + 2021-08-19 tapani.palli@intel.com Fix for the common function tests with GL 4.5 + 2021-08-13 alexander.galazin@arm.com Remove shaders.arrays from the Khronos mustpass + 2021-08-13 ilkka.saarelainen@siru.fi Fix Android system memory requirements + 2021-08-13 piotr.byszewski@mobica.com Test multiViewport with different depth ranges + 2021-08-13 piotr.byszewski@mobica.com Test OpImageQueryLod when fwidth(UV) == 0 + 2021-08-13 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC geofflang@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6441 + Change-Id: Ifc95da798a2d6de0a794cef59ea61fb6a353f21d + Tbr: geofflang@google.com,angle-bots+autoroll-info@google.com + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188073 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit dc99db91403c240bbd51e01cab1ac7680ec9b780 +Author: Shahbaz Youssefi +Date: Thu Sep 16 21:45:35 2021 -0400 + + Vulkan: Allow Vulkan secondary CBs to count their commands + + This is used by render pass related code to determine if some command + has been issued since a previous event. With ANGLE + SecondaryCommandBuffer, the memory pointer where the commands are being + written to are used for this purpose. For Vulkan secondary command + buffers the code simply increments a counter. + + Bug: angleproject:6100 + Change-Id: I85320f8453bd3325793df85aabde3d42b1eeb22a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167214 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit cebca7c2257ef06c25d33543e4ab795d3c92ec70 +Author: Jamie Madill +Date: Fri Sep 24 07:55:38 2021 -0400 + + Texture: Ignore buffer contents changed events. + + Texture doesn't need to care when its attached buffer gets different + contents via a SubData call. This CL updates the BufferVk logic to + ensure that SubData calls trigger a storage changed notification when + there's a new storage, and otherwise Texture can ignore SubData calls. + + Will make it easier to split "contents" changed notifications to their + own event, for optimizing Vertex Buffer updates. + + Bug: angleproject:6371 + Change-Id: I4f15ad3ad2da5d838bd51fb065184b7344b188d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181562 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit bc8fe7dd5c66a8d5ac01da071df7b1fa87b9be58 +Author: Shahbaz Youssefi +Date: Fri Sep 24 22:50:32 2021 -0400 + + Translator: Fix removing inactive output vs SH_INIT_OUTPUT_VARIABLES + + The code that SH_INIT_OUTPUT_VARIABLES adds for inactive outputs is also + removed with this change. + + Bug: chromium:1253016 + Change-Id: I3caeb628487354de943f7b53f7462f58baa3eca8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183107 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 9391199053684d3464f5d3f759ce1653040c3cad +Author: Jamie Madill +Date: Fri Sep 24 12:14:33 2021 -0400 + + Add regression test for PBO write to vertex buffer. + + There was no test coverage for the "packBuffer->onDataChanged()" call + in Framebuffer::readPixels. + + Bug: angleproject:6371 + Change-Id: Ib7ccf965a2375077046e21949dc26dc800abff09 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182700 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 55690b1c65dd2fa4e15cf7d6dfa427e169124880 +Author: Gert Wollny +Date: Mon Sep 20 17:06:31 2021 +0200 + + Capture/Replay: Updated expectations: one fixed, one skip + + Bug: angleproject:6324 + Bug: angleproject:6180 + Change-Id: I8537e684e63c2000bb877b585f9d8e9be42546f5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169657 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 32279f6e69b1038b7c9117eaf3388ef33be38d2f +Author: angle-autoroll +Date: Mon Sep 27 10:01:08 2021 +0000 + + Roll SwiftShader from c710de974936 to efbbb2f07b36 (5 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c710de974936..efbbb2f07b36 + + 2021-09-24 capn@google.com Rename rasterOperation() to blendColor() + 2021-09-24 capn@google.com Support self-resolving vkGetInstanceProcAddr + 2021-09-24 nicolascapens@google.com Regres: disable logging of decompiled SPIR-V and empty loginfo + 2021-09-24 capn@google.com Fix exported extension functions + 2021-09-24 capn@google.com Refactor SPIR-V binary optimization + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I2c7ecd7d3f1ef8759b4f6e3021a5dcd5f1d7def5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3186271 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 22f838dffcc61a1b9e2b7c0d9053fbb6ecbd34f9 +Author: angle-autoroll +Date: Mon Sep 27 07:00:26 2021 +0000 + + Roll Chromium from 7292aaf5e212 to 832ba3ce1a28 (499 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/7292aaf5e212..832ba3ce1a28 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/a1987bce29..6476f40242 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/bd027a9094..6b0a116062 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/4402489ec5..a46a6332f7 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..444aba89e1 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a6baf70a45..4a17839cda + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/77c132322f..dfa96e8145 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/77d41f045a..efd7c814c2 + * tools/luci-go: git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182..git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172 + * tools/luci-go: git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182..git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172 + * tools/luci-go: git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182..git_revision:e9585787c808e21d6eaa2c7d7a928dbc19999172 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/2b72175863..4853b26dab + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/8cd780c1ff..e0429447bd + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2946be9172..f6c353e258 + * tools/skia_goldctl/linux: NzB8fnDNSFKL_tbRaBl6gO6f7Ljdwcdt9VbE3hQfjaoC..qxkaCck3N7NNLCHvQM2gksDboY80QAXbM9dfnJD0-y8C + * tools/skia_goldctl/mac: AjcIwArqfleDRrG1XpbN5DU5ZILcha99HMwrLEidm7kC..U5z-9pZVF7_n6d_eDRqkGGExXzWAwaI9weKVJ0UNCWIC + * tools/skia_goldctl/win: FqoNmLPfLGQu3lutK7aebZdmo2pHBMK9hZoKUkC9njkC..mXlfDemOBUbOngfIwncHzw56bAtEBcVh15WyA9ikp2cC + Clang version changed llvmorg-14-init-3940-gafc45ff0:llvmorg-14-init-4855-ged687c02 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/77d41f045a522bd39d8ec5e9307363bda56a036c..efd7c814c2f02b1a1219ff649489b8fcfff342f4/scripts/update.py + + Bug: None + Tbr: geofflang@google.com + Change-Id: I7dbd19837483fe7ed4bc9ae568f5fcdf3340fa60 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3185015 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 29c01d51866489160e894b12827048b9498096ce +Author: Gert Wollny +Date: Mon Sep 20 20:49:29 2021 +0200 + + Capture/Replay: Write the context serialization file correctly + + This is what was done before we switched to not changing the working + directory, and what is expected by the test script. + In addition, the captured contexts were also written to the wrong files, + i.e. the replay context to the CapturedContext file, and the captured + context to file ReplayedContext file, so fix that too. + + Bug: angleproject:6412 + Change-Id: I81906e3f64b2caf0002ca6a28cfce2a3d552fc8f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171354 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 9994110baeb4741382849c8a909bed00dedd3508 +Author: Lubosz Sarnecki +Date: Thu Sep 9 15:29:13 2021 +0200 + + Tests: Add Nier Reincarnation trace. + + Requires EGL_KHR_gl_colorspace and GL_KHR_texture_compression_astc_ldr. + + Test: angle_perftests --gtest_filter="*nier_reincarnation*" + Bug: angleproject:6366 + Change-Id: Ibb71520762cf9c0a17047324557e70215754bbbb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151818 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit e024635d2050fb6b8038a8070bd7d162f212f403 +Author: Lubosz Sarnecki +Date: Fri Sep 10 13:56:28 2021 +0200 + + ANGLEPerfTest: Skip tests when missing color space support. + + Make tests where a non-linear colorspace was requested on platforms + that do not support EGL_KHR_gl_colorspace non-fatal. + + Add a initializeGLWithResult function to GLWindowBase, returning a + new GLWindowResult enum and wrap it in EGLWindow and WGLWindow. + + Bug: angleproject:6366 + Change-Id: Ib57327c4d988d82064272f229f8ad59287541623 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151833 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 952cb6a1e483871623e4f4b40c911e064e767383 +Author: Lubosz Sarnecki +Date: Fri Sep 24 11:24:15 2021 +0200 + + WGLWindow: Add support for color spaces. + + Add WGL_ARB_pixel_format and WGL_EXT_colorspace to generate_loader.py. + + Call wglChoosePixelFormatARB from WGL_ARB_pixel_format and use + enums from WGL_EXT_colorspace. + + Fall back to ChoosePixelFormat if wglChoosePixelFormatARB is not + available or does not find a format. + + Bug: angleproject:6366 + Change-Id: I900f6fd6ee0501d5343f21c303b40f1347a53765 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181720 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Lubosz Sarnecki + +commit eb1d5ca5e932677904769232bba23b0a4f8074b5 +Author: Shahbaz Youssefi +Date: Fri Jan 29 15:34:49 2021 -0500 + + Vulkan: Enable sync validation + + Based on a change by tobine@google.com + + Bug: angleproject:5290 + Change-Id: Ieae1be5a29f0dcb3ea8aaa04e77fc402380a08b1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171432 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit afe0dd9edf76dd798af7615e347725afd284924c +Author: Jamie Madill +Date: Fri Sep 24 12:02:08 2021 +0000 + + Revert "rename use_x11 to ozone_platform_x11" + + This reverts commit 86f2854579ae7aaa4e425b8846693e44c3aede36. + + Reason for revert: Suspected for breaking the ANGLE roll: + https://crrev.com/c/3171455 + + Original change's description: + > rename use_x11 to ozone_platform_x11 + > + > Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is + > deprecated. During the transition period use_x11 == ozone_platform_x11. + > + > Bug: chromium:1096425 + > Change-Id: Ia691ce249bc49040956bed033891799127a57bbc + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755 + > Reviewed-by: Geoff Lang + > Commit-Queue: Geoff Lang + + Bug: chromium:1096425 + Change-Id: Ifa0a2f5f1323704d7e9d308210efb26c9987b5cd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181561 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + Bot-Commit: Rubber Stamper + +commit a427a7f403362680f0c61b9694ffa8956245c5d2 +Author: angle-autoroll +Date: Fri Sep 24 10:01:40 2021 +0000 + + Roll SwiftShader from 6cbc24686901 to c710de974936 (4 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/6cbc24686901..c710de974936 + + 2021-09-23 geofflang@google.com Only use -Wno-shadow on clang builds. + 2021-09-22 capn@google.com Compute the image size in 64-bit arithmetic + 2021-09-21 pkasting@chromium.org Force -Wno-shadow to avoid variable shadowing warnings. + 2021-09-21 swiftshader.regress@gmail.com Regres: Update test lists @ 6cbc2468 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I93d78ec8cf6b6f60160c2b34fdc3c56004a1ac0b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181484 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8d70df38ff1e970648356cb72182da1c0c2e0db7 +Author: angle-autoroll +Date: Fri Sep 24 07:00:09 2021 +0000 + + Roll Chromium from 00cee3eca956 to 7292aaf5e212 (453 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/00cee3eca956..7292aaf5e212 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c2c1dc6ddc..a1987bce29 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/7ea3a871db..9d33a71117 + * buildtools/linux64: git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263..git_revision:de86ec4176235871a7cb335756987e41246dae4a + * buildtools/mac: git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263..git_revision:de86ec4176235871a7cb335756987e41246dae4a + * buildtools/win: git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263..git_revision:de86ec4176235871a7cb335756987e41246dae4a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d7cd466bd1..bd027a9094 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/ba539c18fc..4402489ec5 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/9e54ae41a0..300b75650f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..3d49e1ccfd + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/04d9c83459..a6baf70a45 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/948efd2585..77d41f045a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/13d38aef23..2b72175863 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/c3ea3d1418..8cd780c1ff + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2a0d7f0fb7..2946be9172 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: I83e831c929a7048293c6d08cde73110ca85b22df + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3180789 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2d79918fdb0276cdb57488d72abd803250f962a3 +Author: Shahbaz Youssefi +Date: Thu Sep 16 16:43:53 2021 -0400 + + Vulkan: Pass command pool around + + Preparatory work for re-enabling support for Vulkan secondary command + buffers. The command pool being passed around is not yet used. + Additionally, the work to allocate, initialize, reset and recycle + command buffers has been refactored to a helper class for better + abstraction. + + The CommandBufferHelper class now holds a pointer to the pool it was + allocated from for clean up. Each ContextVk has its own command pool, + where Vulkan secondary command buffers are allocated from. The command + pool that CommandProcessor had was unused and is removed by this change. + + Bug: angleproject:6100 + Change-Id: I0d4fa6a76ef06e88779145ffe9c613518a8eb390 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167213 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 783936149f1daa24283465e4f8e79802d164187b +Author: Ian Elliott +Date: Tue Sep 21 19:14:15 2021 -0600 + + Vulkan: Fixed bugs about VK_SUBOPTIMAL_KHR Image Acquire result + + This change fixes the following bugs in rx::WindowSurfaceVk with + VK_SUBOPTIMAL_KHR Image Acquire result: + + - Bug in acquireNextSwapchainImage() method: + - If VK_SUBOPTIMAL_KHR returned from vkAcquireNextImageKHR(), + the method simply returns since the result, and + vk::DeviceScoped acquireImageSemaphore, will be + destroyed. However, acquireImageSemaphore can't be destroyed + because it is already used by the Presentation Engine. + + - Bug in initializeImpl() method: + - Method allows VK_SUBOPTIMAL_KHR as successful result. However, + acquireNextSwapchainImage() will not finish, leaving incomplete + state. Attempting to use the framebufer will cause ASSERT/Crash. + + Solution: + - Changed acquireNextSwapchainImage() method to ignore + VK_SUBOPTIMAL_KHR result. + - Remove checks for VK_SUBOPTIMAL_KHR from Acquire in other places. + + This solution was chosen, because it is simplest, and VK_SUBOPTIMAL_KHR + is properly handled in the computePresentOutOfDate() method. + + Patch authored by Igor Nazarov + + Bug: angleproject:6401 + Change-Id: I90bef7871c3bdcf28240a034927d5b2c705f4367 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174729 + Commit-Queue: Ian Elliott + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit d71dc819c19c1477c25ee61e14ef3d92dfdc2f15 +Author: Gregg Tavares +Date: Wed Sep 22 16:01:06 2021 -0700 + + Fixes for RowMajor test failures + + row_major matrices get translated to column major matrices + and the expressions rewritten. To do this temporary variables + that contain the column and row index expressions are moved + to separte statements before the matrix expression itself. + When this happens it breaks side effects and short circuits + in the expression. + + The solution is to call SeparateCompoundExpressions before + calling RewriteRowMajorMatrices. + + Bug: angleproject:6386 + Change-Id: I4d819ade959e2a875495f62733e11d86560d3fab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177337 + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Gregg Tavares + +commit 6106da49879e9374d70bf0164f7069da37083a1d +Author: Gregg Tavares +Date: Wed Sep 22 16:18:21 2021 -0700 + + Indent Generated GLSL + + Before: + + in vec4 _ua_position; + void main(){ + (gl_Position = vec4(0.0, 0.0, 0.0, 0.0)); + (gl_Position = _ua_position); + } + layout(shared) uniform _uG{ + float _ufoobar; + } _ug; + struct _uS { + int _ufoo; + float _ubar; + }; + layout(shared) uniform _uT{ + _uS _us; + float _um; + } _ut; + float _ufunc(in _uS _ustructVar){ + return _ustructVar._ubar; + } + out vec4 _uoutColor; + void main(){ + float _uv = 0.0; + for (int _ui = 0; (_ui < _ut._us._ufoo); (++_ui)) + { + int _uk = 0; + while ((_uk < _ut._us._ufoo)) + { + (_uv += _ufunc(_ut._us)); + if ((_uv > 100.0)) + { + break; + } + else + { + (_uv += 5.0); + } + switch (_uk) { + case (0): + (_uv += 3.0); + break; + case (1): + (_uv += 1.0); + break; + default: + (_uv -= 2.0); + break; + } + } + } + (_uoutColor = (vec4(_uv) + vec4(_ug._ufoobar))); + } + + After: + + in vec4 _ua_position; + void main(){ + (gl_Position = vec4(0.0, 0.0, 0.0, 0.0)); + (gl_Position = _ua_position); + } + layout(shared) uniform _uG{ + float _ufoobar; + } _ug; + struct _uS { + int _ufoo; + float _ubar; + }; + layout(shared) uniform _uT{ + _uS _us; + float _um; + } _ut; + float _ufunc(in _uS _ustructVar){ + return _ustructVar._ubar; + } + out vec4 _uoutColor; + void main(){ + float _uv = 0.0; + for (int _ui = 0; (_ui < _ut._us._ufoo); (++_ui)) + { + int _uk = 0; + while ((_uk < _ut._us._ufoo)) + { + (_uv += _ufunc(_ut._us)); + if ((_uv > 100.0)) + { + break; + } + else + { + (_uv += 5.0); + } + switch (_uk) { + case (0): + (_uv += 3.0); + break; + case (1): + (_uv += 1.0); + break; + default: + (_uv -= 2.0); + break; + } + } + } + (_uoutColor = (vec4(_uv) + vec4(_ug._ufoobar))); + } + + Bug: angleproject:6428 + Change-Id: Ica25151e68eb0defd85a3b6241db442d8eb84743 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177339 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Gregg Tavares + +commit a1b829dd96394ec15dc7c2bcaa5857d394f68812 +Author: Tim Van Patten +Date: Wed Sep 22 18:29:08 2021 -0600 + + Vulkan: Retain src buffer in acquireAndUpdate() + + It's possible for acquireBufferHelper() to garbage collect the original + (src) buffer before copyFromBuffer() has a chance to retain it, so it + must be retained before then. + + Previously, we were relying on the retain calls in copyFromBuffer() to + be sufficient. However, there is a race condition when the asynchronous + CommandProcessor is enabled, since the garbage could be freed before + copyFromBuffer() has a chance to retain the buffer (and allow + destroyIfComplete() to skip destroying the object). + + For the full context, see the comment chain here: + https://chromium-review.googlesource.com/c/angle/angle/+/3146319/16..24/src/libANGLE/renderer/vulkan/BufferVk.cpp#b833 + + Bug: angleproject:5971 + Change-Id: I7c812069343fdad948189d696bfebab8da68c1a3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179866 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Tim Van Patten + +commit 4f2b299521212877bc736767559e791aeb59e4a5 +Author: Peter Kasting +Date: Thu Sep 23 09:50:46 2021 -0700 + + Fix -Wshadow. + + This still disables the warning for glmark2 instead of fixing it, to + avoid needing to upstream a patch. + + Bug: chromium:794619 + Change-Id: Ice602996041d6090c9b09ee81c8ed095c4fa6b2e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179860 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit e1a9af6ae127def0e60b681807b2c8eb3aba0c14 +Author: Shahbaz Youssefi +Date: Mon Sep 20 10:42:03 2021 -0400 + + Translator: Fix HLSL vs for loop's init not having initializer + + The handleExcessiveLoop code expected that if a for loop has an init + expression that it must necessarily have an initializer as well. That + is not true in (fuzzer-produced) code such as following: + + for (int i; ...; ...) + + Bug: chromium:1238182 + Change-Id: Id761e937a34a6b2feac1266e22207350a3bd616c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170114 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit da02c6d9a5a5210563e9d03337442f7a3f4dccc9 +Author: Lubosz Sarnecki +Date: Wed Sep 22 11:54:42 2021 +0200 + + samples: Improve TorusLighting samples. + + Adjust the code style of the ES1 and ES2 TorusLighting samples to match + the one of TorusBufferStorage. + + Use the step function override to calculate rotation and move state + changes that are required only once out of the draw function. + + Bug: angleproject:5751 + Change-Id: Ie663c7ecfd306504b6f9e9390ec24b251194f970 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3178904 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Lubosz Sarnecki + +commit 3369f72057ddd9c6d1285263619e31fce8208b89 +Author: Lubosz Sarnecki +Date: Wed Sep 8 15:23:22 2021 +0200 + + samples: Add torus bufferstorage ES3 sample. + + Adds a sample that uses GL_EXT_buffer_storage and the + GL_MAP_COHERENT_BIT_EXT to update colors. + + Expose IsGLExtensionEnabled in SampleApplication. + + Bug: angleproject:5857 + Change-Id: I1ba2962cda939da527a17c49a3ef430a69486c52 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168628 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit 3e234e2431d36a4605222d58c51a3d39b8d0c769 +Author: Jamie Madill +Date: Fri Sep 17 11:45:01 2021 -0400 + + PerfTests: Updates to several tests. + + Bug: angleproject:6371 + Change-Id: If71c79fd363f7463098b571550af6ceb0634c00d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176440 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Cody Northrop + +commit 368c0ce944727b983933191e4ee1d94ab8c5dead +Author: angle-autoroll +Date: Thu Sep 23 07:53:00 2021 +0000 + + Roll Chromium from 0ca662a00a61 to 00cee3eca956 (280 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/0ca662a00a61..00cee3eca956 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/66bad00683..c2c1dc6ddc + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d4c1fd4eeb..d7cd466bd1 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e155ea5c89 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/eff810e93d..04d9c83459 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: I853b4aac50807583c6c3de7901af62af12ee422a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3178242 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 17b50dbcf8963e6eea73f6e4e49ef20ffc420206 +Author: angle-autoroll +Date: Wed Sep 22 23:35:45 2021 +0000 + + Roll Chromium from f50ae42daa8b to 0ca662a00a61 (158 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f50ae42daa8b..0ca662a00a61 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f34057a8e4..d4c1fd4eeb + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/48418f3dd7..ba539c18fc + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..25814bb53d + * third_party/turbine: n2quuVAecebwosy5EPRjDGSO5EQU94aFRBg_EdrYtpsC..EIJ2nS3aoQlV-cKpmxr4hNR4E1Qs82brcidjG4A1I5QC + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/126012e8f7..2a0d7f0fb7 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com,ynovikov@google.com + Change-Id: Iadccb0fdf49e99b68e18977a3b3c6ae39ffe1424 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177641 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a58749edbcf86dc960b5285d272f49f4b47149b0 +Author: Yuly Novikov +Date: Wed Sep 22 22:50:10 2021 +0000 + + Revert "Add standalone experimental Mac Intel and AMD bots" + + This reverts commit a5bbfe2afe29ec53eccf22d33cee200be25de673. + + Reason for revert: qualification complete + + Original change's description: + > Add standalone experimental Mac Intel and AMD bots + > + > For qualifying Mac OS 11 on Mac Retina AMD and Mac Mini 8,1 + > + > Bug: chromium:1241597, chromium:1128540 + > Change-Id: I753b504f5910541f5d3f244d117d369937a06d38 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3150752 + > Reviewed-by: Jamie Madill + > Commit-Queue: Yuly Novikov + + Bug: chromium:1241597, chromium:1128540 + Change-Id: I4eb71219783651c0e63188e2c94c6ee286625430 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177332 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 92f1eb7becdfcc3536436d75307f7f09e09fb367 +Author: Tim Van Patten +Date: Wed Sep 22 16:57:01 2021 -0600 + + Skip Linux+AMD ComputeShaderTest test failures + + The following tests are failing on Linux w/ RX 5500 XT: + ComputeShaderTest.ImageBufferMapWrite/ES3_1_OpenGL + ComputeShaderTest.BufferImageBufferMapWrite/ES3_1_OpenGL + + These tests were added as part of: + 3146319: Vulkan: Add ResourceWrite to track Read and Write Access + https://chromium-review.googlesource.com/c/angle/angle/+/3146319 + + They are being suppressed since it's only the OpenGL backend that's + failing this combination, and the ANGLE changes in the CL were only in + the Vulkan backend. + + Bug: chromium:1252169 + Test: ComputeShaderTest.ImageBufferMapWrite/ES3_1_OpenGL + Test: ComputeShaderTest.BufferImageBufferMapWrite/ES3_1_OpenGL + Change-Id: I607979979814327eda9f3823ae3c774b86e94c2f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177071 + Reviewed-by: Charlie Lao + Commit-Queue: Tim Van Patten + +commit c3e0eafaf38d9d834d16da7e4961668057eb1cd6 +Author: Jamie Madill +Date: Wed Sep 22 13:35:04 2021 +0000 + + Revert "Perf Tests: Split samples into sub-tests on desktop." + + This reverts commit 90c981dafc06d6bc0696749dface1337e37784d2. + + Reason for revert: Causing timeouts on perf bots. + + Original change's description: + > Perf Tests: Split samples into sub-tests on desktop. + > + > This adds an option to the perf test runner to split each sample of + > each test into a sub-test. The sub-tests then are split among the + > shards like ordinary tests, and distributed across machines. The + > intent is that running on different machines will reduce inter-build + > variance because of differences between test machines. + > + > This sampling change is only added to desktop (Linux/Win) because + > Android device variance seems to be lower. + > + > Bug: angleproject:6090 + > Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 + > Commit-Queue: Jamie Madill + > Reviewed-by: Cody Northrop + > Reviewed-by: Yuly Novikov + + Bug: angleproject:6090 + Change-Id: I92bffb98999f35274ec31a3b7567d87453feff94 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174274 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 49ac15a58190a1ed019ed139e25dd716bddeae18 +Author: Jamie Madill +Date: Mon Sep 20 11:29:01 2021 -0400 + + Optimize VAO bindings. + + This CL makes the XFB binding tracking WebGL-only. That will + speed up VAO binding changes in non-WebGL considerably. + + Also has a few inline micro-optimizations that may not have + a large effect. + + Bug: angleproject:6371 + Change-Id: Ib0a26a3b956dcd6ff78626e5cd6514b46270d882 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170116 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 47992c0a8deb11784261a995198bcd9ef7eed36a +Author: angle-autoroll +Date: Wed Sep 22 08:30:49 2021 +0000 + + Roll Chromium from 0537997114eb to f50ae42daa8b (490 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/0537997114eb..f50ae42daa8b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b4be3eb78f..66bad00683 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2d497d93e4..f34057a8e4 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/be66ead525..9e54ae41a0 + * third_party/android_sdk/public: yODElY4RdHopNEfpOnqjRcrpa6JMzbhYYqGD53-DjJwC..AuYa11pULKT8AI14_owabJrkZoRGuovL-nvwmiONlYEC + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..25814bb53d + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9a76798c9e..eff810e93d + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/7ea32d7ed3..948efd2585 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f7f70b8408..13d38aef23 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/459b0ee485..126012e8f7 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ifb56113c0c01a74609c2026121a4d30d4220f303 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174097 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 68c0da839bc6c381284108da9553a6b7fc4b0c79 +Author: Tim Van Patten +Date: Wed Sep 15 12:00:08 2021 -0600 + + Vulkan: Inform frontend when new buffer is allocated + + When a buffer is mapped with GL_MAP_INVALIDATE_BUFFER_BIT while it's + currently in use, the Vulkan backend will allocate a new buffer, map it, + and return the pointer to the new buffer. This was missing a call to + inform the frontend that a new buffer was allocated, causing the old + buffer data to be accessed in subsequent draw calls. + + The fix is to add a onStateChange(angle::SubjectMessage::SubjectGhosted) + call when the new buffer is allocated, to inform the frontend. + + Bug: angleproject:5971 + Bug: angleproject:6396 + Test: TextureBufferTestES31.MapTextureBufferInvalidateThenWrite + Change-Id: I9984d1049ab4d6a2066f4440fc710c9b93ff6ab8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163244 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + Reviewed-by: Shahbaz Youssefi + +commit 9158436e1e73d4c440329c4c289e5b4c14b9a3f0 +Author: Tim Van Patten +Date: Sat Jul 31 18:26:16 2021 -0600 + + Vulkan: glMapBuffer(): Create new buffer (Buffer Ghosting) + + When glMapBuffer() is called, if the buffer is in use but not being + written to by the GPU: + 1.) Create a new buffer. + 2.) Copy the contents of the old buffer into the new buffer. + 3.) Map the new buffer and return the pointer. + + Creating a new buffer prevents ending the renderpass and flushing the + commands to allow the in-use buffer to be mapped. This change increases + Idle Heroes performance from 40FPS to 125FPS. + + Bug: angleproject:5971 + Test: VulkanPerformanceCounterTest.MappingGpuReadOnlyBufferGhostsBuffer + Test: BufferDataTest.MapWriteArrayBufferDataDrawQuad + Test: BufferDataTest.MapWriteArrayBufferDataDrawArrays + Change-Id: I1d433d179f9f5110a948f191c5aedda5397acac8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065799 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 57d59e8365d7edbf0d5a58a6ca4e896b44cdd9ae +Author: Tim Van Patten +Date: Tue Sep 7 17:41:11 2021 -0600 + + Vulkan: Add ResourceWrite to track Read and Write Access + + vk::Resource currently only tracks accesses in general, not which type + of access is being performed. This CL adds the new class ResourceWrite + to track whether the access is a Read or Read/Write access and when + the access completes. + + This allows a follow-on CL to know when a buffer is being written to by + the GPU or if the GPU is only reading from a buffer. Tracking write + accesses to buffers is required when attempting to "Ghost" (duplicate) + GPU-read-only buffers to prevent breaking the render pass when the CPU + maps the buffer memory. + + Bug: angleproject:5971 + Test: ComputeShaderTest.ImageBufferMapWrite + Change-Id: I965e3e75730719ccce77334744ae4feae33c6101 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3146319 + Commit-Queue: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 06c73b3d23c3737634c043d1bbf41b726d6781d2 +Author: Jamie Madill +Date: Tue Sep 21 13:37:29 2021 -0400 + + Vulkan: Lift DS feedback read-only suppression. + + This is now fixed upstream in the spec and the VVL. + + Bug: angleproject:4975 + Change-Id: I6938bae49c982cc4f366c01ab10aedcaa784f972 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3173252 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 7dd2361b62d977372e2c68d9fd2f8dd83860677f +Author: Kyle Piddington +Date: Fri Sep 17 15:43:22 2021 -0700 + + Metal: ANGLE Metal AutoObjCPtr == nullptr comparison is inverted + + Port the fix from Webkit for this inverted comparsion + Unify the nullptr type throughout all functions + + Bug: angleproject:6351 + Change-Id: Id856af31c9eea5cc79993c3454e452d1c14d0d0e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169436 + Commit-Queue: Kenneth Russell + Reviewed-by: Kenneth Russell + Reviewed-by: Le Hoang Quyen + Reviewed-by: Gregg Tavares + +commit f6616c711bdc54431d09926c949bd421bc226275 +Author: Kyle Piddington +Date: Tue Sep 14 17:42:22 2021 -0700 + + Reimplement transform feedback on direct-to-Metal backend + + Connect the Transform Feedback code generation from Webkit ANGLE + to the shader specialization code. + + Bug: angleproject:6393 + Change-Id: I090c44c6ee97e8e0af8c38433bfb74c2080784f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161455 + Reviewed-by: Kenneth Russell + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Gregg Tavares + Commit-Queue: Kenneth Russell + +commit a09dca6847be9ab4476230b155eaea9098509bfc +Author: YuxinHu +Date: Mon Sep 20 23:40:28 2021 +0000 + + Fix app trace heap buffer overflow + + During runMidExecutionCapture(), we need to update + mMaxAccessedResourceIDs[idType] for idType==ShaderProgram, so that we + have enought slot in gShaderProgramMap2 to store the + temp shader we create in GenerateLinkedProgram(). + + Changes in this CL: + 1.Renaming Jamie's mMaxAccessResourceIDS array update function + updatePreCallResourceCounts() to updateResourceCounts(). + + 2. Adding updateResourceCounts() to Cody's setup call post processing + function scanSetupCalls(). In GenerateLinkedProgram(), + we add the temp shader create call with its' tempShaderID + into the shareGroupSetupCalls. + After that we will run the function scanSetupCalls(), + where we will be able to loop through the tempShaderID + and update the mMaxAccessResourceIDS[ShaderProgram] with the correct + count. + + Bug: angleproject:6398 + Change-Id: Iee78b3b7c1908a90ee8456476902f5e52e4615dc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3172005 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Yuxin Hu + +commit 3666f00f918b8dd9b46b653cbed23ff15455fd9a +Author: Jamie Madill +Date: Mon Sep 20 16:20:50 2021 -0400 + + GN: Remove the "no GTest" dEQP targets. + + These were unused and removing them cleans up the VS projects. + + Bug: None + Change-Id: I1e1787ad1ceac15ecc88d9338e65b3072496066d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3173251 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 59d31ea61afdff7c0a6e02d53b373679fb833a7c +Author: Kyle Piddington +Date: Fri Sep 17 17:43:13 2021 -0700 + + Metal Direct: TinyDepthStencilWorkaroundTest.DepthTexturesStick + + Change code to rewrite attributes by searching for both the standard, + and rewritten name. We will match with any vertex attribute + variables that experienced a renaming during shader processing + + Bug: angleproject:6388 + Change-Id: Ia6f5b87092990e9df42f1dbb87a8bf393ba50c4c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169438 + Reviewed-by: Kenneth Russell + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Kenneth Russell + +commit 786d38af559d0719a9b3935d12054d68fc2d2442 +Author: Jamie Madill +Date: Fri Sep 10 17:58:39 2021 +0300 + + Fix build in some configurations. + + Relevant configuration: + - is_debug = true + - angle_enable_annotator_run_time_checks = true + + Patch authored by Igor Nazarov + + Bug: angleproject:6401 + Change-Id: I8c1ad38e71a90db8ef45d431bfefb1ff1153c1b4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3165656 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Jamie Madill + +commit 90c981dafc06d6bc0696749dface1337e37784d2 +Author: Jamie Madill +Date: Fri Sep 10 11:04:19 2021 -0400 + + Perf Tests: Split samples into sub-tests on desktop. + + This adds an option to the perf test runner to split each sample of + each test into a sub-test. The sub-tests then are split among the + shards like ordinary tests, and distributed across machines. The + intent is that running on different machines will reduce inter-build + variance because of differences between test machines. + + This sampling change is only added to desktop (Linux/Win) because + Android device variance seems to be lower. + + Bug: angleproject:6090 + Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Yuly Novikov + +commit baeab3d2123661725515a94317f2905c22cb7f03 +Author: angle-autoroll +Date: Tue Sep 21 10:01:34 2021 +0000 + + Roll SwiftShader from b7de6caa43b9 to 6cbc24686901 (7 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b7de6caa43b9..6cbc24686901 + + 2021-09-20 srisser@google.com Set all provoking vertex feature bools + 2021-09-20 srisser@google.com Fully support all 16-bit packed texture formats + 2021-09-20 capn@google.com Optimize SPIR-V binary cache reuse + 2021-09-20 capn@google.com Add optimization state to the optimized SPIR-V binary cache key + 2021-09-20 capn@google.com Cache optimized SPIR-V binaries instead of compiled shaders + 2021-09-20 capn@google.com Fix use of deleted shader during compute execution + 2021-09-20 capn@google.com Refactor SPIR-V binary storage + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I7fb69b6fe3c6710f5a3b7510b2c3b0870232aa08 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3172535 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 479864e8a99a2d6374d4120557f80779f5e8932e +Author: angle-autoroll +Date: Tue Sep 21 07:58:49 2021 +0000 + + Roll Chromium from e515fa6a510e to 0537997114eb (434 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/e515fa6a510e..0537997114eb + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ae8cb5d4ef..b4be3eb78f + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fb01508eb9..2d497d93e4 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/6569bfcb58..48418f3dd7 + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/a03fafa895..1b1e9a3bef + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/d3031dbe70..be66ead525 + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/37226d67bc..fc91ebbf8a + * third_party/android_sdk/public: ZT3JmI6GMG4YVcZ1OtECRVMOLLJAWAdPbi-OclubJLMC..yODElY4RdHopNEfpOnqjRcrpa6JMzbhYYqGD53-DjJwC + * third_party/android_sdk/public: qi_k82nm6j9nz4dQosOoqXew4_TFAy8rcGOHDLptx1sC..g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8ec776f0d7 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/cf9d64363b..9a76798c9e + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6f44cf51dc..7ea32d7ed3 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/aaa76f06ab..c3ea3d1418 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/056f0e44a7..459b0ee485 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: I98ab3ac2f6115b9194909ba7facd22778acc2557 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3172475 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9184973fc1bea024dc564a45ad2b864ebc46d842 +Author: Jamie Madill +Date: Wed Jul 21 08:28:30 2021 -0600 + + Add GetCompressedTexImageANGLE to ANGLE_get_image + + Includes front-end support for reading back compressed texture images. + Back-end support is incomplete and will be implemented in a future CL. + + CL authored by cnorthrop@google.com. + + Bug: angleproject:6177 + Change-Id: I1482b15e5ffec6120f09f51b2718cdbef07c93c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163359 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 0babcb0887be028e83fa078c00a5098f76855259 +Author: Cody Northrop +Date: Tue Sep 14 10:49:06 2021 -0600 + + FrameCapture: Scan Setup instructions + + The ability to add calls from a multitude of locations rather than a + centralized spot has become a useful feature. But some locations + were updating the max read buffer size via updateReadBufferSize, + while others weren't. + + Rather than force everything to call a central spot for tracking, add + post process scanning of Setup calls to handle updates. This is + already done for frame calls in maybeCapturePreCallUpdates. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: I51d3a39ea40073d2dca50339ef4b38712b81f4ca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3160500 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 46149c0e12a0183159b637e3564fe9f497d1198d +Author: Shahbaz Youssefi +Date: Fri Sep 17 15:38:47 2021 -0400 + + Translator: Fix pruning functions that declare a struct + + When pruning unused functions, the entire declaration of the function is + removed. If the function declares a struct as part of its return value, + the declaration of that struct was lost. This change makes sure that + declaration survives the pruning. For example: + + struct S { vec4 v; } unused_func() { ... } + + is now replaced with: + + struct S { vec4 v; }; + + This change also makes struct usage validation more stringent. + + Bug: chromium:1248753 + Change-Id: Idd9a87fd2e785135775cfea62995fd33adaf3c09 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169691 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 86f2854579ae7aaa4e425b8846693e44c3aede36 +Author: Maksim Sisov +Date: Thu Sep 9 15:34:23 2021 +0300 + + rename use_x11 to ozone_platform_x11 + + Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is + deprecated. During the transition period use_x11 == ozone_platform_x11. + + Bug: chromium:1096425 + Change-Id: Ia691ce249bc49040956bed033891799127a57bbc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755 + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + +commit 1ae7981088c22832b5812082aaad1d04f3f03721 +Author: Gert Wollny +Date: Thu Sep 16 08:47:20 2021 +0200 + + Capture/Replay: Update expectations and add bugs + + Bug: angleproject:6314 + Bug: angleproject:6334 + Bug: angleproject:6399 + Bug: angleproject:6400 + Change-Id: Ibf1e747080bcbf482e399db18c1f14e8af61fd26 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162438 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit c843d71a9749effc94e6e003bc1010870601fc9d +Author: angle-autoroll +Date: Mon Sep 20 07:01:23 2021 +0000 + + Roll Chromium from 8878e9feb127 to e515fa6a510e (388 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/8878e9feb127..e515fa6a510e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/48f708c077..ae8cb5d4ef + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/01b94c6d53..fb01508eb9 + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/2d100d89bb..a03fafa895 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..bb0675d848 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/5a0f43aebe..cf9d64363b + * third_party/r8: j4P6kTwiJeMkYRbaOqRCB-ZrYyISP0NrcyNNAd8MRM0C..ntKr-aGawyw4goIV50HidiUHTHey-mwhwgLiD3Th8jUC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c8d8b3ecbd..6f44cf51dc + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/a9a88b2c1d..f7f70b8408 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/85ea130fcb..aaa76f06ab + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/0c6e9713c2..056f0e44a7 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ic3c7c54a2d7fe5a05de30ba6801a34d0c5bf5a97 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170708 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 458389f249b0b68f430d7fe954c21205d22cd33e +Author: Shahbaz Youssefi +Date: Thu Sep 2 22:41:40 2021 -0400 + + Vulkan: Support Linux dma-bufs + + This change adds support for EGL_EXT_image_dma_buf_import and + EGL_EXT_image_dma_buf_import_modifiers on top of Vulkan's + VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier. + + Bug: angleproject:6248 + Change-Id: I581987f88e9ddcf351dc721f499f63912dca05f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145610 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c85d9a19ffc0c4955d27e5823ff5bca12b9c8769 +Author: Tim Van Patten +Date: Tue Sep 7 11:41:10 2021 -0600 + + Destroy all unreferenced Contexts resources during terminate() + + When eglTerminate() is called, all of the Contexts that the Display owns + need to be destroyed if they are not referenced by (current to) any + Threads. This also requires a change to Display::releaseContext(), to + remove the recursive call to Display::terminate() that could occur when + releasing the Contexts during terminate(). + + Bug: skia:12413 + Test: EGLContextSharingTestNoFixture.EglTerminateMultipleTimes + Change-Id: Ibd0a3e22725d29875c4089bdaae47c98e5084f35 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144146 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit c8e13389c5ee170af77db4d816ec94381629986d +Author: Rafael Cintron +Date: Thu Sep 16 16:25:11 2021 -0700 + + Fix memory leak in StreamProducerD3DTexture.validateD3DTexture + + Calling ID3D11DeviceChild::GetDevice will add a reference to the D3D + device before passing it to the caller. Hence, we need to release + the device when we're finished using it. + + Bug: angleproject:6403 + Change-Id: I68cc8f64b3f9866cd6f1105334d86ee6774da52c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167013 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Rafael Cintron + +commit 1af5c46c7a4f5eedecbb3f3ab83089a8cdded05e +Author: Jamie Madill +Date: Tue Sep 14 14:40:49 2021 -0400 + + Move JsonSerializer from libANGLE to common. + + This lets us use the serializer from outside of libANGLE. The plan is + to use it to serialize a list of supported extensions from the tests. + + Bug: angleproject:6379 + Change-Id: Ib7b64cca32e733e342b80f893d3752318089f0c2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163361 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 48f869416e6b2e037fa4b51f5652d0f1126e8249 +Author: Jamie Madill +Date: Fri Sep 17 12:01:53 2021 -0400 + + Fix libpng warning. + + Bug: chromium:1190892 + Change-Id: I72c4c03878b3e26b7b79d4cc5975c71a21bf2d08 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169192 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 89c555f16430a2e455472cc1d72ed72ee49a77b3 +Author: Shahbaz Youssefi +Date: Fri Sep 17 00:46:22 2021 -0400 + + Roll libpng to current upstream top of tree + + Bug: chromium:1190892 + Change-Id: I8327962578d2696f2da060b7823bc0aad21e5659 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167752 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 455362d3935da439cd4d8a1277f74881798a3b82 +Author: Joe Mason +Date: Thu Sep 16 19:14:51 2021 -0400 + + Update link to Chromium Modern C++ style guide + + Bug: chromium:1243839 + Change-Id: I6a6a25fdb86db1b2dfefbf156697bd0898cb948e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167210 + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + Commit-Queue: Jamie Madill + +commit bf7fac123ca96b1c88ffaaabae771d2f7a966374 +Author: Shahbaz Youssefi +Date: Thu Sep 16 21:18:04 2021 -0400 + + Vulkan: Fix getting driver priority with async command queue + + Bug: angleproject:6245 + Change-Id: Id6b6f83177dde85867685f814c5bdef4a5c97367 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167212 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 883dcaae607504138413f881d1de24d5428e6669 +Author: angle-autoroll +Date: Fri Sep 17 10:01:34 2021 +0000 + + Roll SwiftShader from 0fa19bd6c285 to b7de6caa43b9 (4 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/0fa19bd6c285..b7de6caa43b9 + + 2021-09-16 srisser@google.com Return error for requested unsupported features + 2021-09-16 capn@google.com Clamp depth before the depth test + 2021-09-16 capn@google.com Skip depth bounds test when there is no depth attachment + 2021-09-16 capn@google.com Rename render target to color buffer + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ibb8bfb09c455bd6a618424151269e3f49dd94383 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168038 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7daecc63db6e0e5ebb2f3339b515e7b18775037b +Author: angle-autoroll +Date: Fri Sep 17 08:14:49 2021 +0000 + + Roll Chromium from eac868c597aa to 8878e9feb127 (440 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/eac868c597aa..8878e9feb127 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f2c0273757..48f708c077 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/a5b6419452..c883cb129d + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/9b804c0010..01b94c6d53 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6b072fac88 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/53075227f3..5a0f43aebe + * third_party/turbine: Om6yIEXgJxuqghErK29h9RcMH6VaymMbxwScwXmcN6EC..n2quuVAecebwosy5EPRjDGSO5EQU94aFRBg_EdrYtpsC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/83b09bd609..c8d8b3ecbd + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b44ad59461..0c6e9713c2 + Clang version changed llvmorg-14-init-3710-gd11a0c5d:llvmorg-14-init-3940-gafc45ff0 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/83b09bd60932858bb4c44c1ce043f81d35a56a61..c8d8b3ecbd25e2ad08a56a7eacc74928772aafe3/scripts/update.py + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ib950ab2d4a7566da1b11e28de90a7688524aee2c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167862 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e3e221f9445996b593c2e78ccb23d95dc9dbb58f +Author: Gregg Tavares +Date: Wed Sep 15 14:28:34 2021 -0700 + + Make backend ObjC struct match uniform block + + The structure defined in ContextMtl.h needs to + match the uniform block defined in DriverUniform.h/.cpp. + + XCode will sometimes assert when they don't match. + + Bug: angleproject:6394 + Change-Id: I8f3fe2bcc6ad9b96dec2c3e77cdb99515736cdc1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163861 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + +commit 23b1674302bdf77470aa8c664474c29ddbc4bd09 +Author: Jamie Madill +Date: Tue Sep 14 10:29:14 2021 -0400 + + Fix compilation when disabling D3D back-ends. + + Common code areas weren't compiling when disabling combinations + of the D3D9 and D3D11 back-ends. With manual testing this fixes + various combinations of angle_enable_d3d9/d3d11/gl. + + Bug: angleproject:5925 + Change-Id: Ie14f2b4c6169cf96c662e7ae6999751007d9adb0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162836 + Commit-Queue: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Geoff Lang + +commit 653973e47223bc3dd1ade96961797926eb3050d7 +Author: Jamie Madill +Date: Wed Sep 15 14:06:34 2021 -0400 + + Capture/Replay: Disable when no arguments specified. + + Bug: angleproject:6397 + Change-Id: I09fb060044fd280f50a3b8ce71d8d455dbd4985f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163360 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 14539cab3350b968c0730a541d300dbe68c7d52b +Author: Jonah Ryan-Davis +Date: Thu Sep 16 12:06:09 2021 -0400 + + Suppress failing end2end tests on direct-to-metal/M1 + + Two tests from UniformBlockWithOneLargeArrayMemberTest fail when + using the direct-to-metal backend. Suppress until this is fixed. + This CL also adds parsing for the Mac M1 chips to our end2end + test expectations. + + Bug: angleproject:5505 + Bug: angleproject:6390 + Change-Id: Ia578e4c582f1522eec9e1cb2c499e3e717b67c87 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3164820 + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + Commit-Queue: Jonah Ryan-Davis + +commit 44935e7951a5b64a77b458cd70e2fd2551440e15 +Author: Ian Elliott +Date: Wed Sep 15 15:23:10 2021 -0600 + + Change top-level AGI debug marker to not show parameters + + Per AGI usability request. + + Bug: b/195784227 + Change-Id: I674848944e9bc9eb9da1369c977b9d7d624a0788 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163480 + Commit-Queue: Ian Elliott + Reviewed-by: Cody Northrop + Reviewed-by: Shahbaz Youssefi + +commit dc08289d7ae865a66dc745d72ba96491d0215464 +Author: Yuxin Hu +Date: Mon Sep 13 16:48:58 2021 -0700 + + Add a cubemap array texture validation + + In ValidateTexture3DDestinationTarget(), + Check if the cube map array extension is enabled if the TextureTarget is + CubeMapArray. + + This helps catch the missing extension error earlier in + ValidateES3TexImage3DParameters(), and the program won't crash when + getTextureByType() is called later in + ValidateES3TexImageParametersBase(). + + Bug: angleproject:6152 + Change-Id: I2f1876f81688e7eef68bdf99276a3a9fafa224da + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161440 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Yuxin Hu + +commit 158ef351fc8b827c201e056a8ddba50fd4235671 +Author: Alexis Hetu +Date: Wed Sep 15 13:40:28 2021 -0400 + + Fix integer overflow in BlockLayoutEncoder + + BlockLayoutEncoder::mCurrentOffset's computation had the + possibility of causing integer overflows in multiple places, + so this CL adds CheckedNumeric variables in a number of + these occurrences in order to prevent integer overflows and + causing issues. + + The issue in this case was an integer overflow causing the + code in ValidateTypeSizeLimitations.cpp to use an invalid + result from "layoutEncoder.getCurrentOffset()", which ended + up compiling a shader which would later cause an OOM error. + + Bug: chromium:1248665 + Change-Id: I688d669f21c6dc2957e43bdf91f8f8f08180a6f7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163356 + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Commit-Queue: Alexis Hétu + +commit b918b1c6564dfaa5eaf95fc4fc0fda7b8edbca8a +Author: Jamie Madill +Date: Fri Sep 10 16:44:59 2021 -0400 + + Auto-generate GLES extensions. + + Uses the data from registry.xml combined with gl.xml to produce the + necessary header and source file with the strings map. Also updates + the list of supported extensions. Several extensions were missing + from the supported extensions map. + + ARB_sync and NV_robustness_video_memory_purge require some specific + tweaks to get the generator to accept them as gles extensions. + + Also includes a generate markdown file that lists supported exts. + + Bug: angleproject:6379 + Change-Id: I95bd589aa31a62b4a008de24408c7823a49023ed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157418 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Jonah Ryan-Davis + +commit 4fbbd097085c58a8ee3897d76b7b67568295a41a +Author: angle-autoroll +Date: Thu Sep 16 07:01:17 2021 +0000 + + Roll Chromium from 971faecbb6fc to eac868c597aa (476 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/971faecbb6fc..eac868c597aa + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/3244870546..f2c0273757 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/a8dc305c6e..9b804c0010 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/fec7b4e901..6569bfcb58 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6b072fac88 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/287ed7c2da..53075227f3 + * tools/luci-go: git_revision:dc21267f89df3981e809fe9566591d6916ae758b..git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182 + * tools/luci-go: git_revision:dc21267f89df3981e809fe9566591d6916ae758b..git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182 + * tools/luci-go: git_revision:dc21267f89df3981e809fe9566591d6916ae758b..git_revision:028cd41e0f4b2bec99d94c780caf2f978e09b182 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/be3cc1296f..85ea130fcb + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/872882ff0e..b44ad59461 + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ifa25013e5cdb14e161329c56edcdf32a834cbc98 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163871 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2eba872a937e8ab639f8bd06fe128033079f5539 +Author: Gert Wollny +Date: Wed Sep 15 12:33:34 2021 +0200 + + Capture/Replay: Run binary save/load tests only when supported + + Bug: angleproject:6325 + Change-Id: Ibd4a62f93030cd01b30e8636e7663176a1763119 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162436 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 9121a79d649d04ffa0cdbdb476df40a5c429a6fd +Author: Gert Wollny +Date: Tue Sep 14 11:57:32 2021 +0200 + + Capture/Replay: Don't set CWD and pass path information instead + + With that we avoid complication when evaluating the module path that + is used to load the test modules. + + Fixes: 2f3e4db838068584a0c15653cb07893683a55300 + Capture/Replay: Serialize trace metadata to a JSON file. + + Bug: angleproject:6385 + Change-Id: If4e348237d9b0e99e404f49b28dddba1ac50ef92 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157907 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit c78ebccdb5270c7eb1daece313cf0b6da3a99963 +Author: Tim Van Patten +Date: Thu Sep 9 16:47:26 2021 -0600 + + Perf: Add _many_tex_draw test + + Add a new perf test _many_tex_draw, which draws with 8 textures bound. + + The intent of this test is to stress calls like retain() with various + implementations of vk::Resource. + + Additionally, this CL updates the textures to use format GL_RGBA, rather + than GL_RGB, to avoid the emulation step that's required due to the lack + of support for the 3 channel format. + + Bug: angleproject:5971 + Test: DrawCallPerfBenchmark.Run/*_many_tex_draw + Change-Id: Iffb39b76fab68cc2a76dfd2da38db7e77cb4dac0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152171 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Tim Van Patten + +commit 0cea3fe2dc6e157aa765f0ee62ed48b3f45fb19e +Author: Gregg Tavares +Date: Wed Sep 15 14:02:47 2021 -0700 + + Suppress more flaky tests + + Bug: angleproject:5505 + Change-Id: I6e77769b36a2cccb22f4048ff4fe47258e58d7c5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163493 + Reviewed-by: Kenneth Russell + Commit-Queue: Gregg Tavares + +commit e84b0154230b70240811853fbdc8bea848bf7bf1 +Author: Jamie Madill +Date: Mon Sep 13 16:04:20 2021 -0400 + + Update extension boolean names. + + This is in preparation for auto-gen, which uses a simple naming + scheme. This fixes the bool names to be totally consistent with the + extension names. + + Bug: angleproject:6379 + Change-Id: Ia212449be04accb0e4f006b55b1813ab4481fa0b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157417 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 085ab6e80c9451230bbc17ee27fc1b580a2a5cf0 +Author: Gregg Tavares +Date: Thu Sep 9 10:22:04 2021 -0700 + + Turn on Direct Metal tests + + Bug: angleproject:5505 + Change-Id: I8de95f28698785e5467dd82d04cbc7636d6df042 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152156 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + +commit fc9457fb45ee3a1ffbc169d4e90ffb82efbfa7b3 +Author: Cody Northrop +Date: Wed Sep 15 10:46:55 2021 -0600 + + Revert "Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch" + + This reverts commit 62c70b449d2ef5e195c583f7a7627f14587a51dc + + Reason for revert: VVL bug fixed upstream + https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3264 + + Original change's description: + > Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch + > + > New VVL error causing test failures. + > + > Bug: angleproject:6382 + > Change-Id: I61801828c0879a33502a2d9582e2e7da1bdb9250 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3155571 + > Reviewed-by: Cody Northrop + > Reviewed-by: Brandon Jones + > Commit-Queue: Shahbaz Youssefi + + Bug: angleproject:6382 + Change-Id: I41202a1d577fb6d9204ead32df134e6c5b3a1a86 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163238 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Cody Northrop + +commit 2d40fa98503a982688f0b4bad0ab7733d523a75a +Author: angle-autoroll +Date: Wed Sep 15 10:01:34 2021 +0000 + + Roll SwiftShader from 40adeaba22a6 to 0fa19bd6c285 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/40adeaba22a6..0fa19bd6c285 + + 2021-09-14 kjlubick@google.com Delete explicit copy assignment operator + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Idd923d3e2b33f4b33dabc552aea7e384446a2b05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161962 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit cc559b6fc41f9cfa0a0449900cc69f224474ef08 +Author: angle-autoroll +Date: Wed Sep 15 07:00:56 2021 +0000 + + Roll Chromium from d2cc0410ebf0 to 971faecbb6fc (455 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/d2cc0410ebf0..971faecbb6fc + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f16814bd98..3244870546 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0ee65525e0..a8dc305c6e + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/56517cb829..d3031dbe70 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6b072fac88 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/984ce942a4..287ed7c2da + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/e74330fba0..83b09bd609 + * tools/luci-go: git_revision:4a0f3da2840eaa5341470174b57047313e074ecd..git_revision:dc21267f89df3981e809fe9566591d6916ae758b + * tools/luci-go: git_revision:4a0f3da2840eaa5341470174b57047313e074ecd..git_revision:dc21267f89df3981e809fe9566591d6916ae758b + * tools/luci-go: git_revision:4a0f3da2840eaa5341470174b57047313e074ecd..git_revision:dc21267f89df3981e809fe9566591d6916ae758b + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4bf6f5e188..872882ff0e + * tools/skia_goldctl/linux: WXOZRajOQcNcLH7M4Un-WnE8Uw9Fv7XHOV0cWFEiIMMC..NzB8fnDNSFKL_tbRaBl6gO6f7Ljdwcdt9VbE3hQfjaoC + * tools/skia_goldctl/mac: Js84h2dElAXI-6j3tIs5oGaaEymkLbyu50DlJXn6WJIC..AjcIwArqfleDRrG1XpbN5DU5ZILcha99HMwrLEidm7kC + * tools/skia_goldctl/win: 93HPekEUblvrn33MgtM_mPQjnsJ5_IqJUTt3XiUUloYC..FqoNmLPfLGQu3lutK7aebZdmo2pHBMK9hZoKUkC9njkC + Clang version changed llvmorg-14-init-3191-g0e03450a:llvmorg-14-init-3710-gd11a0c5d + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/e74330fba0bac614a0a86ff1dedf07543b5fea8a..83b09bd60932858bb4c44c1ce043f81d35a56a61/scripts/update.py + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ifab6712643eabc883ce9df1f63fb20277d631057 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161607 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1ca1589fed63b9b8c684f558b6b3a679f4cd6508 +Author: Jamie Madill +Date: Mon Sep 13 10:56:58 2021 -0400 + + Give GLES extension bools a vendor suffix. + + This is in preparation for auto-generation which will give all of + these bools suffixes. + + Bug: angleproject:6379 + Change-Id: I7e3f6c9b644c41a2165e6bf7b62d661fd352a250 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158503 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 9ada074a7709302b88c480367689baf912e31207 +Author: Jamie Madill +Date: Fri Sep 10 16:18:19 2021 -0400 + + Move capability values from gl::Extensions to gl::Caps. + + Several extensions stored extra information in the wrong structure. + Move them to the Caps structure in prepraration for auto-generating + the Extensions struct. + + Bug: angleproject:6379 + Change-Id: If5643b72039e299cb0f7c49591d13b3c7cd8a36c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158403 + Reviewed-by: Cody Northrop + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 9112b1a96d49967d87142179758ff6f32ca132e8 +Author: Shahbaz Youssefi +Date: Mon Sep 13 15:39:53 2021 -0400 + + Vulkan: SPIR-V Gen: Fix precision of findMsb + + In GLSL, findMsb operates on a highp operand, while returning a lowp + result. In SPIR-V, RelaxedPrecision cannot be applied on the FindSMsb + instruction as that affects the operand as well. This change makes sure + RelaxedPrecision is not applied to a FindSMsb instruction. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I6a0defbbd53ec703c7ecbad5cd5c79d215b11c32 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158506 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit f2b7de84ba84a48d638f96f02f217f3261f5523f +Author: angle-autoroll +Date: Tue Sep 14 10:01:35 2021 +0000 + + Roll SwiftShader from 7f2c7d18de0c to 40adeaba22a6 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/7f2c7d18de0c..40adeaba22a6 + + 2021-09-13 sugoi@google.com Add derived class for every type of external memory + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: If8575ae4f4e1845152cb59ce772c67afdda8de08 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3160402 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 0546d7ba10a2b1a0515d0b3531b6df602c30fda0 +Author: angle-autoroll +Date: Tue Sep 14 07:01:18 2021 +0000 + + Roll Chromium from b089638487b7 to d2cc0410ebf0 (426 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b089638487b7..d2cc0410ebf0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/38820a51f5..f16814bd98 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/eb40873b37..0ee65525e0 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/bc688ce0a6..56517cb829 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6b072fac88 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/8f09549ffc..984ce942a4 + * tools/luci-go: git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7..git_revision:4a0f3da2840eaa5341470174b57047313e074ecd + * tools/luci-go: git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7..git_revision:4a0f3da2840eaa5341470174b57047313e074ecd + * tools/luci-go: git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7..git_revision:4a0f3da2840eaa5341470174b57047313e074ecd + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/44b5fa4d2e..a9a88b2c1d + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/06f05b4837..be3cc1296f + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/6c1e38e8fc..4bf6f5e188 + * tools/skia_goldctl/linux: rnLFFuc3uwQMer-UqF4iPw87LYBXcTHecmsEr5XSsqEC..WXOZRajOQcNcLH7M4Un-WnE8Uw9Fv7XHOV0cWFEiIMMC + * tools/skia_goldctl/win: fLni5XbrGVSo96Fpye2OmTEwheZVoDU49HrRUCzw_L0C..93HPekEUblvrn33MgtM_mPQjnsJ5_IqJUTt3XiUUloYC + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: If777f7d1ac837d53d05ce27c425c2911568ad514 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3160176 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 54e89a1b28f36de38e9eece8220d40d3fd3cfe33 +Author: Gert Wollny +Date: Thu Sep 2 16:48:42 2021 +0200 + + Capture/Replay: handle param reading of glGetUniformuiv + + Enable the test that was fixed by this. + + Bug: angleproject:6108 + Change-Id: I0bd46a85c2337e3c1a236954c8f131df12c499b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140155 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit e10a4031b176f89b1c7409341c7c2e15e4cab39a +Author: Cheryl Wei +Date: Wed Sep 8 15:57:00 2021 +0800 + + Vulkan: Add a test to triger large VAO dirty bit handling. + + Some traces bind one VBO to a large number of VAOs,this will cause + glBufferData spending a lot of time doing VAO dirty bit handling,which + leads to high cpu load in these traces.This test could triger this + issue. + + Bug: angleproject:6371 + Change-Id: Iedc6630b497cb0f62ea0129aefc19c717c3ef905 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147173 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Sunny Sun + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 371542cd1696f142031e152a9772bc4d3cc8c46d +Author: Shahbaz Youssefi +Date: Mon Aug 23 23:10:09 2021 -0400 + + Vulkan: Use VK_EXT_load_store_op_none + + With read-only depth/stencil attachments, ANGLE utilizes storeOp=NONE to + optimize memory bandwidth (by avoiding write back of tile memory at the + end of the render pass). Simultaneoulsy, this avoids a synchronization + hazard with the next write to that depth/stencil image. + + If a framebuffer contains a depth/stencil attachment but it's unused, + ANGLE utilizes loadOp=NONE/storeOp=NONE to effectively remove any memory + bandwidth wasted on the attachment. + + Bug: angleproject:5371 + Change-Id: I76cbadbf1194041532ac4b690ffe087298f2de51 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114232 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit ca70b6367d657f53ff0e6509e317d25e6998589e +Author: Charlie Lao +Date: Thu Sep 9 16:34:34 2021 -0700 + + Vulkan: Reformat staged buffer data using CPU + + When a R4G4B4A4 texture is attached to FBO, we dynamically choose a new + format to fallback to R8G8B8A8 on some GPU that can't render to + R4G4B4A4. During this format switch, if we already have a staged buffer + update with old format, we must reformat the data to new format. Right + now this is done by initImage and flush out staged update and read back + and restage. This is very inefficient. This CL adds a new code path that + just uses CPU to convert the staged data from old format to new format. + + Bug: b/198788068 + Change-Id: I9b763dafdc9431d4fbbc26169c156b09ac13c815 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3153055 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit e83f1b9a13044b5d5f8e4a4e210e41f72fe99049 +Author: Charlie Lao +Date: Mon Sep 13 09:31:50 2021 -0700 + + Reland "GL: Relax the assertion to exclude BoundAsAttachment bit" + + This is a reland of b27bca08ef4ee20a0952b8efeb7c132bdb2ebb50 + + Original change's description: + > GL: Relax the assertion to exclude BoundAsAttachment bit + > + > Front end has added DIRTY_BIT_BOUND_AS_ATTACHMENT when texture is + > attached to FBO. This bit usually is processed at Texture::syncState + > time. But there are situations that This call may not been called before + > texture is been used, since existing code not expecting merely attach + > tetxure to FBO will insert dirty bit to texture and there is this place + > updateProgramTextureBindings() in GL backend is hitting assertion + > because of this new bit. This CL adds a new check + > hasAnyDirtyBitExcludingBoundAsAttachmentBit to avoid hitting assertion. + > + > Bug: angleproject:6381 + > Change-Id: I615c27e5d5efe751a25d5c9ecf11c1409a699f46 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158547 + > Reviewed-by: Jamie Madill + > Reviewed-by: Geoff Lang + > Commit-Queue: Charlie Lao + + Bug: angleproject:6381 + Change-Id: I29eb759a0b4500b7ab6d3d4ce73a27bc71882b57 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158299 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit 3ad0b862d9a05dd907590c29b6e695f8bad33c94 +Author: Charlie Lao +Date: Mon Sep 13 20:10:10 2021 +0000 + + Revert "GL: Relax the assertion to exclude BoundAsAttachment bit" + + This reverts commit b27bca08ef4ee20a0952b8efeb7c132bdb2ebb50. + + Reason for revert: Wrong fix. + + Original change's description: + > GL: Relax the assertion to exclude BoundAsAttachment bit + > + > Front end has added DIRTY_BIT_BOUND_AS_ATTACHMENT when texture is + > attached to FBO. This bit usually is processed at Texture::syncState + > time. But there are situations that This call may not been called before + > texture is been used, since existing code not expecting merely attach + > tetxure to FBO will insert dirty bit to texture and there is this place + > updateProgramTextureBindings() in GL backend is hitting assertion + > because of this new bit. This CL adds a new check + > hasAnyDirtyBitExcludingBoundAsAttachmentBit to avoid hitting assertion. + > + > Bug: angleproject:6381 + > Change-Id: I615c27e5d5efe751a25d5c9ecf11c1409a699f46 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158547 + > Reviewed-by: Jamie Madill + > Reviewed-by: Geoff Lang + > Commit-Queue: Charlie Lao + + Bug: angleproject:6381 + Change-Id: I0e7bf066a3736c72918f1fe36d195b5c516b569c + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158297 + Reviewed-by: Charlie Lao + Bot-Commit: Rubber Stamper + Commit-Queue: Charlie Lao + +commit 6688622837d519611b8f682c82ea60a52337e9bc +Author: Hailin Zhang +Date: Mon Sep 13 11:58:31 2021 -0700 + + delete a wrong comment + + delete a wrong comment for test DrawElementsElementArrayBufferMapped + + Signed-off-by: Hailin Zhang + + Change-Id: Idc95b50f3fd2ca2da65b090a20f5fdc36605b8e6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158291 + Reviewed-by: Cody Northrop + +commit e1befb35d4688500faf05736d0b2b8cbec2585a9 +Author: Hailin Zhang +Date: Thu Sep 9 15:53:32 2021 -0700 + + fix a EXT_buffer_storage issue. + + According to spec, GL_MAP_PERSISTENT_BIT_EXT indicates that + it is not an error for the GL to read data from or write data + to an immutable buffer while it is mapped. + + Bug: b/188685164 + Change-Id: I899a978dbf9c1d1ad3489063028fd5500c4bd5e1 + Signed-off-by: Hailin Zhang + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151278 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + +commit 077b8eef1ea806bf894f3dbffdaec30f1c4c80f7 +Author: Cody Northrop +Date: Thu Aug 26 22:15:54 2021 -0600 + + FrameCapture: Add ES 3.1 Vertex Attrib MEC support + + ES 3.1 adds new, more explicit ways to bind vertex buffers to + different format combinations. This allows changing how data is + interpreted without respecifying all the data as well. + + Apps using new ES 3.1 vertex attribute functions can be incompatible + with our MEC setup that uses VertexAttribPointer. This was caught + recently by Jamie's changes to enforce ES2 only conditions. Fortnite + is the first app that uses ES3.1 semantics exclusively. + + To support this, add VertexAttribFormat and VertexAttribBinding to + to our attribute setup loop. For binding indexes that *aren't* used + with VertexAttibPointer, set them up with BindVertexBuffer. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Bug: angleproject:6274 + Change-Id: Id0cd10f6270fc96354797c3008ac181a4d008031 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124339 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit b27bca08ef4ee20a0952b8efeb7c132bdb2ebb50 +Author: Charlie Lao +Date: Mon Sep 13 09:31:50 2021 -0700 + + GL: Relax the assertion to exclude BoundAsAttachment bit + + Front end has added DIRTY_BIT_BOUND_AS_ATTACHMENT when texture is + attached to FBO. This bit usually is processed at Texture::syncState + time. But there are situations that This call may not been called before + texture is been used, since existing code not expecting merely attach + tetxure to FBO will insert dirty bit to texture and there is this place + updateProgramTextureBindings() in GL backend is hitting assertion + because of this new bit. This CL adds a new check + hasAnyDirtyBitExcludingBoundAsAttachmentBit to avoid hitting assertion. + + Bug: angleproject:6381 + Change-Id: I615c27e5d5efe751a25d5c9ecf11c1409a699f46 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158547 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Charlie Lao + +commit 5650273a144c3892e63fff36b57737491f624c42 +Author: Jamie Madill +Date: Tue Sep 7 09:41:59 2021 -0400 + + Capture/Replay: Capture trace file list to JSON. + + Instead of using a text file, we can use a JSON file to store the + list of files in a trace. We can use this list in the GN to pull + the trace files directly instead of using auto-generated code. It + also consolidates the trace metadata in a single location. + + Also captures the Windows Surface ID to the JSON file. + + Bug: angleproject:5133 + Change-Id: I236b614f7d0c844e7c4a5276dd6ac5964e5c393d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144214 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 112ca0796000e15cc3c6d8be4b2002e857bb1f69 +Author: angle-autoroll +Date: Mon Sep 13 10:01:34 2021 +0000 + + Roll SwiftShader from 446e61c24b37 to 7f2c7d18de0c (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/446e61c24b37..7f2c7d18de0c + + 2021-09-10 capn@google.com Fix decompression of cube-compatible layered 2D images + 2021-09-10 capn@google.com Refactor image decompression and cube border update + 2021-09-10 capn@google.com Refactor cube compatibility + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I717d31cafe1cd55d1afa1cf0333fcf6c3a5591b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157933 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 47ab1198748d67a5ee018c49592d9c8bfaedb0ec +Author: angle-autoroll +Date: Mon Sep 13 07:00:02 2021 +0000 + + Roll Chromium from 6aa22be0c26f to b089638487b7 (525 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/6aa22be0c26f..b089638487b7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/0c04087fbf..38820a51f5 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/17de75220a..a5b6419452 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2829dbd8e1..eb40873b37 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7a4741cd1f + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e1482c5548..8f09549ffc + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/664e4259b1..e74330fba0 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c56679b89f..44b5fa4d2e + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/ea8b20f92a..06f05b4837 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/184ebcc93f..6c1e38e8fc + * tools/skia_goldctl/win: 93HPekEUblvrn33MgtM_mPQjnsJ5_IqJUTt3XiUUloYC..fLni5XbrGVSo96Fpye2OmTEwheZVoDU49HrRUCzw_L0C + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: If27382d67b1c4e4222f91f7e48c972ce22ef8129 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157696 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 62c70b449d2ef5e195c583f7a7627f14587a51dc +Author: Cody Northrop +Date: Fri Sep 10 16:54:49 2021 -0600 + + Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch + + New VVL error causing test failures. + + Bug: angleproject:6382 + Change-Id: I61801828c0879a33502a2d9582e2e7da1bdb9250 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3155571 + Reviewed-by: Cody Northrop + Reviewed-by: Brandon Jones + Commit-Queue: Shahbaz Youssefi + +commit 9c6f6c39879597e9df8459d420a2384a2422566d +Author: Gregg Tavares +Date: Fri Sep 10 14:46:18 2021 -0700 + + nullptr_t to std::nullptr_t + + The Skia build requires std::nullptr_t + + Bug: angleproject:6377 + Change-Id: Ic41955e1dfefcf24bc39240d164ad938f523717c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3154997 + Reviewed-by: Kenneth Russell + Commit-Queue: Gregg Tavares + +commit 7e8fa429930926fc330c46e9a7740749e01ecf9d +Author: Jamie Madill +Date: Wed Sep 8 11:56:45 2021 -0400 + + Capture/Replay Tests: Script cleanups. + + Minor cleanup changes and removes some outdated parameters. + Includes logging information about how much time the script spends + running each child process. + + Bug: angleproject:6102 + Bug: angleproject:6299 + Change-Id: I0b4da535b858ced3cdc21c341c2c001ffe9c8192 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149190 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 247ee1c3a59a99c2cce3e8bc666c028e6c41d637 +Author: Jamie Madill +Date: Fri Sep 10 09:38:25 2021 -0400 + + Perf Tests: Output results in "msBestFitFormat" again. + + The histogram bins for "ms" would cause excessive rounding for tests + that run very quickly. For example, 0.0012354 ms would be rounded to + 0.001 ms. This would produce very flat graphs that don't accurately + represent the real results. + + Bug: angleproject:6090 + Change-Id: I9293b2083d7e54dc2663648c361f4883278806ec + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152746 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit eb8ffe2ff28e65cab14e9249240a51946c33ad6b +Author: Jamie Madill +Date: Tue Sep 7 09:53:22 2021 -0400 + + JsonSerializer: Allow adding values to root node. + + Previously we would only allow a single group at the root document + node. This change allows us to have multiple members. It also changes + the API slightly. Instead of calling startDocument, you now can add + values and groups on an empty serializer object. It also removes the + implicit endGroup call in endDocument. Groups must now be manually + ended. + + Bug: angleproject:5133 + Change-Id: Id39016233d73270d1e20d99d59c1729fbcdd8860 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144213 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 2795866cec55c23bd2b103f13cb1d503eed2b9ec +Author: Gregg Tavares +Date: Fri Sep 10 02:08:40 2021 -0700 + + Fix ConvertUnsupportedConstructorsToFunctionCalls + + The code was not hanlding nested expressions. For example: + + mat4(vec4(mat2x2), ...) + + Switched to using TIntermRebuild + + Bug: angleproject:5505 + Change-Id: I845d94326324ac48d7489225d42d0c6e38622492 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152168 + Commit-Queue: Kenneth Russell + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + +commit 0e021199ac2517c4c51234bba2414d4a6f7f5e92 +Author: Jamie Madill +Date: Wed Sep 8 12:31:47 2021 -0400 + + Gold Tests: Append "show all results" to triage links. + + This should allow for easier triage when CL authors run into new + images that don't match the goldens. + + Bug: skia:12428 + Change-Id: I60fee615f23f5a1b36ddbe6c6708498fb3def46e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149571 + Reviewed-by: Brian Sheedy + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit ac453e29bffd39333e4397ac468d2557cdec8b2e +Author: angle-autoroll +Date: Fri Sep 10 10:01:26 2021 +0000 + + Roll SwiftShader from 35209220317c to 446e61c24b37 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/35209220317c..446e61c24b37 + + 2021-09-09 sugoi@google.com Refactor VkMemoryAllocateInfo parsing + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I7952ae87850c3a0e55f4590e9dfdee697eda8386 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3153817 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 958dce52450b961e503cbb5ffb42b6214c00be81 +Author: Gregg Tavares +Date: Thu Sep 9 14:36:37 2021 -0700 + + Move IntermRebuild.h/cpp to tree_util + + Bug: angleproject:5505 + Change-Id: I7b68057fff0a0eb0d86c1aed01599fa9dbb7db3b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152167 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + +commit 1d4fd4add32e69a9cfc29be26ba8c123914b6c59 +Author: angle-autoroll +Date: Fri Sep 10 07:00:13 2021 +0000 + + Roll Chromium from 5d40b790bf31 to 6aa22be0c26f (470 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5d40b790bf31..6aa22be0c26f + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e67d73ade4..0c04087fbf + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4546ca026e..2829dbd8e1 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8141144003 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/728566654b..e1482c5548 + * third_party/r8: dvPOJ_8iAF6OHGO79d86VbJjyKj7Xn0SFxlVVC9LHdcC..j4P6kTwiJeMkYRbaOqRCB-ZrYyISP0NrcyNNAd8MRM0C + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/e10d2c4210..c56679b89f + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4bcd417841..184ebcc93f + * tools/skia_goldctl/mac: pVAcgyVH6SCBfGwBIo8rh8OmaC-pELwEF2poDrV7l7QC..Js84h2dElAXI-6j3tIs5oGaaEymkLbyu50DlJXn6WJIC + * tools/skia_goldctl/win: t3Pbf0D6FK3Ikw4LRVJKDboTc8F2ex24RLVVsYTB9wgC..93HPekEUblvrn33MgtM_mPQjnsJ5_IqJUTt3XiUUloYC + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I9eb13b7cd22c5cb6a70aa965bee0ff7db1d722db + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3153695 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 10d6e9b0b2ece4a2a97470b06a68e465dd4188af +Author: Yuly Novikov +Date: Thu Sep 9 20:39:50 2021 -0400 + + Suppress dEQP GLES3 failures on Mac Intel UHD 630 + + Bug: angleproject:6376 + Change-Id: I10338ca3ec35d301195a04fc15b2148c7b7a5f4a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152858 + Commit-Queue: Yuly Novikov + Reviewed-by: Jamie Madill + +commit 0a592aa433a67789d5bd5cda0d017630a7ab4c2f +Author: Charlie Lao +Date: Wed Sep 1 19:00:24 2021 -0700 + + Vulkan: Add warning when a fallback texture format is used. + + Emit a performance warning message when a fallback texture format is + been used for sampling. Emit a performance warning when we have to do + data copy during format fallback transition. + + Bug: b/196456356 + Change-Id: Ifbe66069e506597dbacfefda10e699a8e9f320d5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139239 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 1a3b17dacdb021b0748c356a3e9f4e6fd185e34c +Author: Jamie Madill +Date: Thu Sep 9 17:26:56 2021 -0400 + + Capture/Replay: Fix GN build when JSON not available. + + This change makes it so we no longer build frame capture when JSON + is not available. In Skia's build this is the case. Also updates + the GN scripts to use a new variable 'angle_has_frame_capture'. + + Bug: angleproject:5133 + Bug: angleproject:6374 + Change-Id: I30290a160f6ebe6419f371e36d304a61bf0a85ac + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152557 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 13e9817b74cca2a57b4dd81a8affb5513b2a834a +Author: Shahbaz Youssefi +Date: Wed Sep 8 11:57:00 2021 -0400 + + Translator: Fix assert in ScalarizeVecAndMatConstructorArgs + + This transformation assumed that precision can be derived for constants + in every possible scenario, but that's not true. The fuzzer produced + the following code: + + void main() + { + mat4 m; + mat2(0, bvec3(m)); + } + + In the above, the constant 0 legimitately has no precision. The assert + was in a function that attempted to make a temporary out of the + constant, which this commit changes to use the original constant as-is. + + Bug: chromium:1246781 + Change-Id: I6f247264e5213cfd9449fdfb1dc312d02b99f2f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149191 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit ac78d7231b10ef62c0e7992ac8f61fd60d484c7c +Author: Jamie Madill +Date: Wed Sep 8 12:19:40 2021 -0400 + + Capture/Replay Tests: Allow 3 concurrent ninja processes. + + This is an attempt to fix the flaky ninja error when running + multiple processes while still getting pretty good test times. + The previous fix eliminated the flakiness but doubled the test + time. In local testing this is a bit slower but not 2x slower. + + Bug: angleproject:6299 + Change-Id: Ibcd462712d3eab759c5923ca229e009046783e9b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149570 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 44ab7a14c5d96af3ce2ed5f9160f77a2d799b2ba +Author: Jamie Madill +Date: Thu Sep 9 10:05:19 2021 -0400 + + Capture/Replay: Mark one test as flaky. + + WebGLCompatibilityTest.DrawArraysBufferOutOfBoundsNonInstanced + + Bug: angleproject:6373 + Change-Id: I0c26511b3ab0cc4938fd7b7242a6ac033b22df42 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149377 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit a5bbfe2afe29ec53eccf22d33cee200be25de673 +Author: Yuly Novikov +Date: Fri Sep 3 19:24:29 2021 -0400 + + Add standalone experimental Mac Intel and AMD bots + + For qualifying Mac OS 11 on Mac Retina AMD and Mac Mini 8,1 + + Bug: chromium:1241597, chromium:1128540 + Change-Id: I753b504f5910541f5d3f244d117d369937a06d38 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3150752 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit f8ad5bbb9ea98019e7e326ba51cf0d248d41bcf5 +Author: Gregg Tavares +Date: Thu Sep 9 10:53:53 2021 -0700 + + Don't advertize GL_APPLE_clip_distance on direct metal + + The direct metal backend does not support + gl_ClipDistance array. + + Bug: angleproject:5505 + Change-Id: I9a1736bd70ee3543ecbe82b36b6ea30df0dac3c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152216 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + +commit 1a6fd9d05aac4e64b45957fc7564aeb0ed8333e4 +Author: Tim Van Patten +Date: Thu Sep 9 10:32:26 2021 -0600 + + Capture/Replay: Remove debug logging + + The debug logging is flooding the terminal with the following: + Frame 0: x 0 y 0 (screen x 64, screen y 133) + Frame 1: x 1 y 0 (screen x 74, screen y 133) + Frame 2: x 2 y 0 (screen x 84, screen y 133) + Frame 3: x 3 y 0 (screen x 94, screen y 133) + Frame 4: x 4 y 0 (screen x 104, screen y 133) + Frame 5: x 5 y 0 (screen x 114, screen y 133) + Frame 6: x 0 y 1 (screen x 64, screen y 166) + Frame 7: x 1 y 1 (screen x 74, screen y 166) + Frame 8: x 2 y 1 (screen x 84, screen y 166) + Frame 9: x 3 y 1 (screen x 94, screen y 166) + + This drowns out all over log statements, so it's being removed. + + Bug: b/186881553 + Change-Id: Ib2235a18b56b993f16e7532249c488403383bd65 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152155 + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit c12d2f3780757f55ea8e39afdb1475bc43eb3e2f +Author: Jamie Madill +Date: Thu Sep 9 12:11:14 2021 -0400 + + Capture/Replay: Remove unused function in header. + + Bug: angleproject:5133 + Change-Id: I80f22d95101263f2ff37835c9e0f634b96d41622 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3150258 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 3dded466d186db1e9ff3df47b61d583c590a5813 +Author: Lubosz Sarnecki +Date: Thu Sep 9 15:28:07 2021 +0200 + + Tests: Add Blockman Go trace. + + Test: angle_perftests --gtest_filter="*blockman_go*" + Bug: angleproject:6365 + Change-Id: I5f1008288ff1b4ec049e721fbdf72e80902fe8fc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151816 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit af4bb9fb43031f475b5416dd76b56c9b26ceffd0 +Author: angle-autoroll +Date: Thu Sep 9 10:01:25 2021 +0000 + + Roll SwiftShader from 83556eae921f to 35209220317c (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/83556eae921f..35209220317c + + 2021-09-08 capn@google.com Remove vulkan_fuchsia_extras.h + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Iddfe2053e60ea3cad01e123adf68489d11aa15af + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151696 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit befc99a83c38cec0c17a330b03db04baf1fcba23 +Author: angle-autoroll +Date: Thu Sep 9 07:00:10 2021 +0000 + + Roll Chromium from 3ce06be375f3 to 5d40b790bf31 (538 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3ce06be375f3..5d40b790bf31 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/0cd7560da6..e67d73ade4 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/fc376196a1..17de75220a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/3d3d7b154f..4546ca026e + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/789af048b3..fec7b4e901 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/49a18738d0..728566654b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/195c102c5a..664e4259b1 + * tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7 + * tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7 + * tools/luci-go: git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e..git_revision:7b62727dc713b47d7a7ce9bca27500cb8e82ebd7 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/34e8fbf156..e10d2c4210 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/997a49b937..4bcd417841 + * tools/skia_goldctl/linux: piyuI_96IF7jF_1vY-tHI0jfepKADnKhEEILxpHKvz4C..rnLFFuc3uwQMer-UqF4iPw87LYBXcTHecmsEr5XSsqEC + * tools/skia_goldctl/mac: hLDvCRtQ02S_V4ABz5oABBehzUF-j18kIHZwnU6gctYC..pVAcgyVH6SCBfGwBIo8rh8OmaC-pELwEF2poDrV7l7QC + * tools/skia_goldctl/win: AfrF2K3fb2csgVwLyDcljBC9fLFeLBpCqtTzxBiyMxgC..t3Pbf0D6FK3Ikw4LRVJKDboTc8F2ex24RLVVsYTB9wgC + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I20db9f29b98eea8bf8072c9bd1c1392625a5e3b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151313 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 856a0e03402b3108e5ef773ad547cda79807be0a +Author: Charlie Lao +Date: Wed Sep 1 18:09:14 2021 -0700 + + Vulkan: Make vk::Format from struct to class + + With all the recent changes that there are two actualImageFormatIDs, + retrieve the actual format requires pass in a renderable boolean. And + the vertex format also has a similar requirement to the real format may + differ depends on if it is compressed or not. This struct no longer safe + to expose the underline data members directly. This CL turns it into a + class and expose the actual format via method that requires renderable + or compressed boolean. + + Bug: b/196456356 + Change-Id: Ie2f8308cc408bde1b0787e0b392e143187cc4425 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139236 + Commit-Queue: Charlie Lao + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit a33d902bc3e28f91f1b4f06294ab7fbf0cbfaee6 +Author: Brandon Schade +Date: Mon Aug 16 12:01:53 2021 -0500 + + Add Entry points for GL_EXT_EGL_image_storage + + Code generation for GL_EXT_EGL_image_storage + + Bug: angleproject:6346 + Change-Id: Ib918619205bfe7bd8fba0748ff6db593c858151f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133763 + Commit-Queue: Brandon Schade + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 8ea87a67670ca3a2bb0e306719725babc62c237f +Author: Charlie Lao +Date: Tue Aug 17 18:46:36 2021 -0700 + + Vulkan: Avoid texture format fallback when possible + + Some texture formats are not renderable on some hardware. For example, + R4G4B4A4 are not renderable on nvidia and not blendable on ARM. + R5G5B5A1 are also not blendable on nvidia. Right now when we generate + format table, we are being most conservative, picking an actual format + that is always renderable and blendable. This means when R4G4B4A4 is + used on one of these GPUs, we are always falling back to R8G8B8A8 + regardless if the texture is actually being used as color attachment or + not. This CL adds a actualRenderableImageFormatID field in vk::Format. + Initially we will pick actualImageFormatID which only ensures texture + sample capability. If later on the texture is being attached to FBO, + then we will switch to actualRenderableImageFormatID and do data copy if + necessary. This way we save memory and reduce texture bandwidth for most + usage of these textures. For renderBuffer and surfaces and EGLImages, we + always pick the renderable textures. + + Bug: b/196456356 + Change-Id: I02eec3365c2a317b0d1bad6dbdc3e741114c5bba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104514 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit fa9f4cf36a06e9a5519ba397b8f0080a39faa85a +Author: Gregg Tavares +Date: Wed Sep 8 12:58:59 2021 -0700 + + Fix AST validation error with gl_FragCoord + + Bug: angleproject:6370 + Change-Id: Ia575e0329da74c84365b74b39398551b572b91a5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149725 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Gregg Tavares + +commit 851ecf494a63a863cdc3ac125b14c61a92fa8f39 +Author: Geoff Lang +Date: Wed Sep 8 14:40:41 2021 -0400 + + GL: Temporarily disable MSRTT on Android. + + This extension is causing validation errors and graphics corruption + in Chrome. Disable it until the bugs are resolved. + + Bug: chromium:1238327 + Change-Id: I823303f2d75f2d6422cf5680a8751b9b79c8580b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149573 + Reviewed-by: Peng Huang + Commit-Queue: Geoff Lang + +commit c9acd7992699f56f6348d15c9572855e0ad84b18 +Author: Gregg Tavares +Date: Tue Sep 7 22:25:23 2021 -0700 + + Only rewrite constructors for scalars/vectors/matrices + + Bug: angleproject:5505 + Change-Id: I50b3a9a585b2eec6e4d7bd9b3197206a973d4400 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147071 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Gregg Tavares + +commit 46555145d8cc55464021a054bfe56e0be34e8dae +Author: Sunny Sachanandani +Date: Thu Sep 2 14:55:02 2021 -0700 + + d3d11: Allow binding R/RG texture to EGLImage + + Also allows GL_RED/RG/R16/RG16_EXT as well as GL_RGB10_A2_EXT which was + left out previously by accidently to match Chromium behavior. Adapts + the existing ClearTextureImage test to parameterize over a number of + texture formats. + + Bug: angleproject:6369 + Change-Id: I91110a06b08379a3067a2161e345258415cd5e16 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140744 + Reviewed-by: Geoff Lang + Commit-Queue: Sunny Sachanandani + +commit e1bc8de3e9d54db9a27e192499d3ce4409e6ebeb +Author: Jamie Madill +Date: Wed Sep 8 07:59:37 2021 -0400 + + Change links from 'master' to 'main' branch. + + Bug: chromium:1226949 + Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 5726158f0ffb7ca3a5493af06481e7e0451fb00b +Author: Jamie Madill +Date: Wed Sep 8 13:31:40 2021 -0400 + + Trace Tests: Fix test data path. + + A prior refactor was missing the path separator between the trace + folders. This CL also makes the error more visible by forcing the + test step to fail if there's a missing path. Previously it would + print an error message but silently continue. + + Bug: angleproject:5133 + Change-Id: I71e7c751662a08d6ff199f0f802310d0ef52ed5e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149572 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit f1cbaac7ccbb2dc4f6f6223e95e48a3dda9bcdea +Author: Tim Van Patten +Date: Wed Sep 8 10:21:40 2021 -0600 + + Capture/Replay: Disable world_of_kings for Win+Intel + + The world_of_kings trace is flaky, particularly on Windows+Intel. + In most instances (every?) it's off by 1: + + Left Pixel rgba(32, 105, 119, 255) #206977FF <<--- good + Diff rgba(0, 0, 1, 0) + Right Pixel rgba(32, 105, 118, 255) #206976FF <<--- bad + + Bug: angleproject:6372 + Bug: b/198101940 + Change-Id: I6be7138e050d63df3dd8a189882b64dadfe62740 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149433 + Reviewed-by: Cody Northrop + Commit-Queue: Tim Van Patten + +commit 2f3e4db838068584a0c15653cb07893683a55300 +Author: Jamie Madill +Date: Thu Sep 2 10:31:13 2021 -0400 + + Capture/Replay: Serialize trace metadata to a JSON file. + + This will allow us to remove more code auto-generation for the trace + tests. The trace info now can be loaded directly from JSON instead of + from the autogenerated information. + + Bug: angleproject:5133 + Change-Id: I04e22b9279b19282df274bc8defcd363d0449111 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 8b2fd983e61aa3993a8272291c398247d7c279e0 +Author: Shahbaz Youssefi +Date: Wed Sep 8 11:36:17 2021 -0400 + + Translator: Fix validation failure in RemoveDynamicIndexing + + This transformation adds function definitions to the tree after the + fact, so function call validation is disabled until the transformation + is complete. + + Bug: chromium:1246686 + Change-Id: I40f77cb25cf272d5ebc42ece572371ce5161e819 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148850 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 9874be3119702aa77857105d2a3d67b97af45307 +Author: Jamie Madill +Date: Thu Sep 2 10:25:21 2021 -0400 + + Trace Tests: Load trace list from JSON file. + + Instead of using the auto-generated enum for the trace list, load + directly from restricted_traces.json. This will lead to more CLs + that entirely remove the auto-generated code from the trace tests. + + Bug: angleproject:5133 + Change-Id: I6515624a2145319d097b43085741cf9c48f1792e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140217 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit a931b5fc4f2dd58fd2ca08ea51890cf940fdc9d0 +Author: Ian Elliott +Date: Tue Sep 7 14:19:00 2021 -0600 + + Add note that OWNERS should only be updated upstream + + After resolving b/198165924, several downstream merge-conflicts + existed. The lesson learned is that all edits to OWNERS should occur + in the upstream ANGLE repository's main branch. Definitely NO CHANGES + should be made in the downstream Android repositories, except in + branches that will only be cherry-picked to. Otherwise, changing order + of the Android auto-merger can result in difficult-to-overcome merge + conflicts. + + Bug: b/199189291 + Change-Id: If10572756b34acfcbf69b0acc3eb6139267f7aba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145843 + Reviewed-by: Tim Van Patten + Reviewed-by: Geoff Lang + Commit-Queue: Ian Elliott + +commit 5519d3184d2d33a4866210c2bb74f91cad03f594 +Author: Alexey Knyazev +Date: Sat Sep 4 00:25:19 2021 +0400 + + Vulkan: Enable VVL on macOS + + Bug: angleproject:4082 + Change-Id: I4c8c28b4d885e7716967f43518ee611ab47c104a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140172 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 5e2d0c2f0dbe55fd8992fc59b049b94ce3b4fec9 +Author: angle-autoroll +Date: Wed Sep 8 10:01:26 2021 +0000 + + Roll SwiftShader from aed9a7633481 to 83556eae921f (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/aed9a7633481..83556eae921f + + 2021-09-07 capn@google.com Use the shorter promoted Vulkan structure and enum names + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I9b274f1359f29d1a147ec08107db00165dae8344 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147238 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 2efa847817e76a6c7181f764515d233f7b26da1a +Author: angle-autoroll +Date: Wed Sep 8 07:00:42 2021 +0000 + + Roll Chromium from e1a053dddd92 to 3ce06be375f3 (419 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/e1a053dddd92..3ce06be375f3 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e2b29e04ac..0cd7560da6 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/eeafbf2b44..3d3d7b154f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/d579cbcbc2..49a18738d0 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/1277083d6f..195c102c5a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/56d74d41aa..34e8fbf156 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/df796b313d..997a49b937 + Clang version changed llvmorg-14-init-2175-g945cde8b:llvmorg-14-init-3191-g0e03450a + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/1277083d6fef317ff83fceee3bc0364d9ba1009f..195c102c5a6c13f21b08b991389814fe63e5dff7/scripts/update.py + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I43d9a762b15b348c1a4cda69ee65e066f092899a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147082 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5a7b8c612591102e0cf9d31bd53f88f6de95566f +Author: Brandon Schade +Date: Tue Aug 31 14:58:06 2021 -0700 + + Vulkan: Removed size check when handling mismatched vertex attributes + + If locations are specified to be noncontiguous or out of order when + there is a mismatch between the attribute type specified by + glVertexAttribPointer and the shader, the program's attribute type + from ProgramExecutable's getProgramInputs() method would fail. + This is due to using attribIndex which refers to the attribute's + location rather than the position in the vector returned from + getProgramInputs(). + + This change removes the size check as it's not needed for + GL_ANGLE_relaxed_vertex_attribute_type. + + Bug: angleproject:5762 + Test: + VertexAttributeTestES3.DrawWithMismatchedComponentCountLocationSpecified + Change-Id: Ie15f2095e618e12403d1524273d1add74b00cdbd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3137273 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Brandon Schade + +commit 48da7e7e7c1a78c96712ff5f65f695b19dfa6b03 +Author: Geoff Lang +Date: Tue Sep 7 15:49:07 2021 -0400 + + Add a gn arg to enable collecting Vulkan system info on Linux + + Some ANGLE users may wish to enable this path before the crashes + are resolved. + + Bug: angleproject:5717 + Change-Id: I7ed3a575e639cda9d88475cc38f32d7bbc37e84c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144372 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 0bb3fcbb02c394eb3f6aa9459c5b72ba7e95ac49 +Author: Shahbaz Youssefi +Date: Tue Sep 7 14:28:09 2021 -0400 + + Translator: Fix precision of gl_PointSize on ES3+ + + In ESSL100, gl_PointSize is declared as mediump. In ESSL300+, it's + declared as highp. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Ie904a12fdaaca04e2507f1796d9d0fe34b154eab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145615 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit d6afeaddc1ecca7ef12eac03aec952bbf81410e6 +Author: Brandon Schade +Date: Mon Aug 30 14:44:59 2021 -0700 + + Vulkan: Make descriptor set bindings consistent across shader stages + + Previously if a uniform or uniform block was used in a program's + shader, a different descriptor set binding index would be used + for each linked shader stage. Now, the bindings chosen for + uniforms and blocks of the same name will be identical. + + This change also updates mActiveImagesMask in ProgramExecutable + for separable programs. + + Bug: angleproject:4512 + Tests: KHR-GLES3*.core.geometry_shader.api.max_image_uniforms + ProgramPipelineTest31.MaxFragmentShaderStorageBufferObjects + ProgramPipelineTest31.MaxFragmentUniformBufferObjects + ProgramPipelineTest32.MaxGeometryImageUniforms + GeometryShaderTestES32.MaxGeometryImageUniforms + Change-Id: I3662d06b4dec284f4c51c6047e6b684b82925e3f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068381 + Commit-Queue: Brandon Schade + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit c5d1112869ada3aa50d0d9e45ad51125d972b19b +Author: Charlie Lao +Date: Thu Sep 2 18:18:02 2021 -0700 + + Vulkan: Skip but keep incompatible updates. + + If texture has a level incompatibly specified, right now we are still + oding the copy. This will trigger VVL and is incorrect. This CL skip the + flush and keep it. + + Also Add various tests for 16 bit texture format in preparation for + future CLs that may pick a more native format for 16 bit texture instead + of always fallback to 32 bit. + + Test: VulkanFramebufferTest.R4G4B4A4TextureSampleOnlyActuallyUses444Format + Bug: b/196456356 + Change-Id: I9d53a97bb72208b52fb25e429abb49bbbc53c50c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141030 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit ad09f98c0befc1178bb810f6f56695d86b871d7f +Author: Charlie Lao +Date: Fri Sep 3 18:20:01 2021 -0700 + + Vulkan: Simplify TextureVk::initImage() call. + + This CL moves the logic that check if immutable texture or not and + decide what levels should be allocated from callers in various places to + TextureVk::initImage() to simplify the code a bit. + + Bug: b/196456356 + Change-Id: Ida31a5a06402cc627d0493032f8424baae3e7264 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141974 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit fefdf81e09aec54ecc71b4e8de3e0e9d7ca77966 +Author: Geoff Lang +Date: Tue Sep 7 14:26:37 2021 -0400 + + Remove Vulkan System info collection on Linux. + + There is a high volume of crashes in VulkanLibrary::getVulkanInstance + + Bug: chromium:1192586,angleproject:5717 + Change-Id: I08fbe6c57eb3c419790adab55dc4ffa9ddbe1526 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145614 + Reviewed-by: Jamie Madill + Commit-Queue: Geoff Lang + +commit c5a3897631f80e96fd4d6222ae56e5467e3b7df9 +Author: Jamie Madill +Date: Wed Sep 1 07:35:40 2021 -0400 + + Capture/Replay: Add expression trigger validation calls. + + Setting the environment variable "ANGLE_CAPTURE_VALIDATION_EXPR" + will make ANGLE's capture logic evaluate this expression every + captured call to see if it should insert a validation checkpoint. + + The retracing script also accepts --validation-expr as an argument. + + For instance, the expression: + ((frame == 2) && (call < 1189) && (call > 1100) && ((call % 5) == 0)) + + Will insert validation checkpoints on frame 2, between calls 1100 and + 1189 and will validate every 5th call. The 'call' here is the count of + captured calls, which are mostly GL calls with a few ANGLE replay + calls in the mix. + + We add a small single-header library that can evaluate arthithmetic + expressions in order to parse these expressions, as well as an option + to the retracing script. + + Bug: angleproject:5133 + Change-Id: Ic369e85d8e905a3a7a32fa098f7d8ebe7baf4ab9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136094 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit e22afce9e828d9c0c568dfdb835e6611c41655ea +Author: Shahbaz Youssefi +Date: Tue Sep 7 12:34:10 2021 -0400 + + Vulkan: Drop requirement for inheritedQueries + + At this point only timer queries depend on this feature, which can be + disabled instead of dropping support to ES2.0. + + Bug: angleproject:6100 + Change-Id: I8389a593d308830e3f820a4541d7accc886fb70f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145611 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit eb6a3b514ae0958517c648820c02a45ddedb73b3 +Author: angle-autoroll +Date: Tue Sep 7 08:02:05 2021 +0000 + + Roll Chromium from 00f987fef929 to e1a053dddd92 (210 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/00f987fef929..e1a053dddd92 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/bd46f69f54..e2b29e04ac + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b9f645d7b5..eeafbf2b44 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/4b2a96e76c..d579cbcbc2 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/403247ef95..1277083d6f + * tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e + * tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e + * tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:3e1f1f7a109ed8aefc7feba94fa737f0b5b4847e + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/34afcf02c4..56d74d41aa + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9a83325bb7..df796b313d + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I3dcc403225187cb83212c7ef1d27e1599ca44463 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144731 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ae555e855ce27d297ad571898800480a8b253fcb +Author: Shahbaz Youssefi +Date: Sun Sep 5 21:43:03 2021 -0400 + + Translator: Fix uninitialized TStructure::mAtGlobalScope + + This flag was not set in SeparateDeclarations when creating a struct. + + Bug: chromium:1246301 + Change-Id: I673a7158bcc8ead0fd36a5b00696dd990950a8c0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139663 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 569cbbc694615a78d02a715306f66833a0b42609 +Author: angle-autoroll +Date: Mon Sep 6 10:01:25 2021 +0000 + + Roll SwiftShader from bac3c5559b2b to aed9a7633481 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/bac3c5559b2b..aed9a7633481 + + 2021-09-03 sugoi@google.com Revert "Add external memory parameter to size computations" + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Ibb5a5bbeac8ac37daa3b39c52f763e315786079c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3143441 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a1525a1c5ac8883eb49ad1684f07c438da44919d +Author: angle-autoroll +Date: Mon Sep 6 07:02:16 2021 +0000 + + Roll Chromium from 6261dad8e8ea to 00f987fef929 (158 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/6261dad8e8ea..00f987fef929 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e5ab797c9a..bd46f69f54 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/607ff8a8ca..b9f645d7b5 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: If3106d34f9ed33dd53a16e605572b804f32587ba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3143128 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6370dec2b7b0c43fd225e029583690032a789fc2 +Author: Yuly Novikov +Date: Fri Sep 3 19:29:57 2021 -0400 + + Fix doc to refer to a standalone Mac bot + + Instead of a decommissioned chromium.angle Mac bot + + Bug: chromium:1246552 + Change-Id: I84d5b35cbebbcb91218c6d2d4aa008728e7ccc0b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141682 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 81af4bc6b3aed8abf391bfa32d8f408bb2e73477 +Author: angle-autoroll +Date: Sat Sep 4 03:15:28 2021 +0000 + + Roll Chromium from 8ef1e4544ed5 to 6261dad8e8ea (60 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/8ef1e4544ed5..6261dad8e8ea + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/23c068f715..e5ab797c9a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2fbd84b15f..607ff8a8ca + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/8723bc48f3..34afcf02c4 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com,ynovikov@google.com + Change-Id: I803ec23cd4869a9e0bf7c15849658653951a3bae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3142490 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 178b8481d6465549d4dcfdd3190dcc9146f88225 +Author: Zequan Wu +Date: Fri Sep 3 23:30:52 2021 +0000 + + Revert "Skip validation of stderr in TestSuiteTest.RunFlakyTests" + + This reverts commit 89dbbb2ac6875c92c99feb24353641142bbd49b1. + + Reason for revert: The test failure was gone in latest clang roll. + + Original change's description: + > Skip validation of stderr in TestSuiteTest.RunFlakyTests + > + > There is a bug (crbug.com/1234124) causing the profile runtime to print + > errors about failing to write the profraw file. Don't validate stderr in + > these builds until that is fixed. + > + > Bug: chromium:1234124 + > Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1234124 + Change-Id: If33e92b533c99677d2b8f55de618ecf15e3f19d2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141973 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 3ae1f33606d674e81aeda7f952b190332955d8ba Author: Jamie Madill Date: Fri Sep 3 09:34:10 2021 -0400 WebGL: Make unsuccessful links fail subsequent draw calls. @@ -120,7 +12663,21878 @@ Bug: chromium:1241123 Change-Id: Ie892654c3a58c69d6e35ba3c41758ab6269d8193 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140496 Reviewed-by: Geoff Lang Commit-Queue: Yuly Novikov - Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152556 - Reviewed-by: Jamie Madill + +commit e22267e7a369b89f2bf0b103b1da984836fe08dd +Author: angle-autoroll +Date: Fri Sep 3 22:54:33 2021 +0000 + + Roll Chromium from f60c2130504a to 8ef1e4544ed5 (272 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f60c2130504a..8ef1e4544ed5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/5c325311f3..23c068f715 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/7de86cbf37..fc376196a1 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f7a7906002..2fbd84b15f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a6bd3ae446..4b2a96e76c + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ddfcfd93c1..9a83325bb7 + No update to Clang. + + Bug: angleproject:6358 + Tbr: geofflang@google.com,ynovikov@google.com + Change-Id: I073dd24264ebec8988a2f33ff510b5a3d27f2d2a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140745 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit ab187c35b601569f8830a896ae0e29842ab53773 +Author: Gregg Tavares +Date: Thu Sep 2 14:46:29 2021 -0700 + + Handle comparing arrays of scalars/vectors/matrices + + Fixes: + UniformBlockWithOneLargeArrayMemberTest.MemberArrayOperations/ES3_Metal + + Bug: angleproject:5505 + Change-Id: Ife35db2146ac8ce8c0880cdb98df57dc75cb35cb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140712 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + +commit b0dfd268e049668bda6c21e36c37758e845bed71 +Author: Gert Wollny +Date: Thu Sep 2 10:53:57 2021 +0200 + + Capture/Replay: Handle Gen/Delete ProgramPipelines + + Enable the test that failed compilation before. + + Bug: angleproject:6180 + Change-Id: Id15a5b82c8ee5dab291090375d15ce93b8908535 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139900 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 066edc2b4b6a43b4bdfc9fb3894891fbcedc8e37 +Author: Gert Wollny +Date: Thu Sep 2 10:11:03 2021 +0200 + + Capture/Replay: Handle glGetFragDataLocation + + Enable the test that is now passing + + Bug: angleproject:6180 + Change-Id: I3aadc708ebf0b5d751af0a45713aaf4b72526188 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139899 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 349d555db82e41f7a0cc88cf5cf5245e2bbfc3ed +Author: Gert Wollny +Date: Thu Sep 2 10:07:26 2021 +0200 + + Capture/Replay: handle glGetBooleani_v + + This also fixes a test. + + Bug: angleproject:6180 + Change-Id: Icad2d089738f4458c90b87620337e9798adb9141 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139898 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 584a10cc990b288421ba569cfa50a3835fec039b +Author: Jamie Madill +Date: Fri Jul 2 15:24:32 2021 -0400 + + Capture/Replay: Use flat map for uniform locations. + + Similarly to prior changes that change the resource map lookup, this + change switches the uniform lookup from an unordered map to a plain + pointer lookup. It internally uses an unordered_map of vectors, and + caches each vector base pointer whenever a program updates uniform + locations. + + Testing with Manhattan 3.0, this CL decreases the binary size in a + Windows/Release build from 6.125MB to 4.413 MB. This is about a 28% + decrease. This allows for longer traces and also reduced replay + overhead. + + Bug: angleproject:5133 + Change-Id: I0957bc1075ec87ed9dca4a2525f27149c61cbe12 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3002511 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Gert Wollny + Reviewed-by: Cody Northrop + +commit ec8418dac68829f9e44fe64f691a25e5ebdae303 +Author: Jamie Madill +Date: Fri Jul 2 09:55:39 2021 -0400 + + Capture/Replay: Use plain arrays for resource maps. + + Instead of using the templated wrapper class, use C++ arrays that + are dynamically allocated with "new". This saves a fair bit of binary + size spent in calling the operator[] function. To get the right size + this CL adds tracking to the capture for each resource type, then + updates trace initialization to store the maximum allocated resource + ID for each type. + + Tested with Manhattan 3.0: on Windows with Release, binary size for + the trace shared object went from 7.053 MB to 6.125 MB. About a 13% + decrease in binary size. That will allow for longer captures and will + also reduce trace overhead. + + Bug: angleproject:5133 + Change-Id: I2cd7515262a9ec76112d5f790001e3a6e9acd3a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3003383 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Gert Wollny + Reviewed-by: Tim Van Patten + +commit b6e99bb382ded5fe3a681dab286495d2903f0861 +Author: Jamie Madill +Date: Thu Sep 2 13:47:34 2021 -0400 + + Rename and expand shader variable init feature. + + This feature now forces both output and unitialized locals to be + initialized by the shader translator. This feature is needed by the + trace validator to ensure we get deterministic behaviour in traces + that exhibit some undefined results. + + Bug: angleproject:5133 + Change-Id: Id1242cd077a57e891eed217f7671976ce1631a58 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140216 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 9c05f55aa4a41e1252556a676cd691cc7d2371a9 +Author: Jamie Madill +Date: Thu Jul 15 10:58:10 2021 -0400 + + Capture/Replay: Add replay state validation. + + We can use this to validate traces that have slight differences + when retracing. The valdation works by embedding the "expected" + JSON into a string at the end of each captured frame. The replay + also embeds a callback which fires right before the swap in the + replay harness. The harness then gets the "actual" JSON and runs + a comparison. On a mismatch it calls "diff" externally. + Currently the diff call is hard-coded to work on Linux only. + + Note that when running validation it's important to replay on + SwiftShader since that's what we use to retrace. + + Bug: angleproject:5133 + Change-Id: Icbf0031d07be8bd916607c537dec235f9a512c43 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066008 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 6fae709db21f0fa3718476480bff810af166fd10 +Author: angle-autoroll +Date: Fri Sep 3 10:01:56 2021 +0000 + + Roll SwiftShader from c82c59307208 to bac3c5559b2b (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c82c59307208..bac3c5559b2b + + 2021-09-02 srisser@google.com Update git-hooks to latest revision + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I8d9b4aa367e41614f6d5fe8fe7581c9b6ef1e5b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141354 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ab51a497cb57c718aa5b5998a4c4da869b9e05be +Author: angle-autoroll +Date: Fri Sep 3 10:01:30 2021 +0000 + + Roll vulkan-deps from 4862c4c6196b to b1e5bf7dd9c3 (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4862c4c6196b..b1e5bf7dd9c3 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/0c09258e07..789de0dc4b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ie3f56b52ea9d1618a96f8dfcdef8edc70388288e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140776 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 4747b32536bbc71417c97f680a06861284f7c049 +Author: angle-autoroll +Date: Fri Sep 3 08:21:28 2021 +0000 + + Roll Chromium from b5237d627f0d to f60c2130504a (425 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b5237d627f0d..f60c2130504a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b69c335c66..5c325311f3 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/9f0517e240..7de86cbf37 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/51de17f337..f7a7906002 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/d6b0ef3291..bc688ce0a6 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2331f08854 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/789dfc223b..a6bd3ae446 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/8a4182f2f3..8723bc48f3 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e209c2d667..ddfcfd93c1 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ib831b25a2c28617891a9da5568519dcd4fbc917b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140775 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 603b6ef426ee2d4dcd155930d03519793a1565c2 +Author: angle-autoroll +Date: Fri Sep 3 02:48:28 2021 +0000 + + Roll vulkan-deps from 84f860ef94ee to 4862c4c6196b (10 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/84f860ef94ee..4862c4c6196b + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/2fb89a0072..e0771b5d4c + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/d6fe75df10..51d8e7be94 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/bd3a271ce3..0c09258e07 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/140738f852..ee4d7bb1bf + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/04bdaa2c45..2fdf7a587b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com,syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com,syoussefi@google.com + Change-Id: I4473ac5f3e0e01e0ceb425eccbf9bf3e3ac8987c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141090 + Bot-Commit: angle-autoroll + Commit-Queue: Alexey Knyazev + +commit 2a7855d21a6d957abc90d3b494e4ac8cb09faf39 +Author: Shahbaz Youssefi +Date: Wed Sep 1 14:53:31 2021 +0000 + + Revert "Vulkan: Suppress layered FB validation error." + + This reverts commit 9872e5af32c31064b0a80eb5bf3fc8ce70db0dbf. + + Reason for revert: VVL bug fixed in https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/3237 + + Original change's description: + > Vulkan: Suppress layered FB validation error. + > + > This is popping up with a new roll of the VVL. Instead of fixing it, + > we can disable it for now. + > + > Bug: angleproject:6293 + > Change-Id: I6cd12a24b26a4f536db16631e198317e8c4d9fcc + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103505 + > Reviewed-by: Jamie Madill + > Commit-Queue: Jamie Madill + + Bug: angleproject:6293 + Change-Id: I9eb48aea1920a45a9bdad7953b2122dd595d31c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136096 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 8bb3c8276dfa84d91f5628ceff8a2778d7f5dcc6 +Author: Tim Van Patten +Date: Thu Jul 22 19:06:40 2021 -0600 + + Fix Multithreaded eglDestroyContext()/eglTerminate() + + The following EGL calls can lead to a crash in eglMakeCurrent(): + + Thread A: eglMakeCurrent(context A) + Thread B: eglDestroyContext(context A) + B: eglTerminate() <<--- this release context A + Thread A: eglMakeCurrent(context B) + + The eglMakeCurrent(context B) call will assert when attempting to + unMakeCurrent(), since thread A doesn't know that context A was already + destroyed by thread B. + + To fix this: + 1.) A Context will only be released once there are no Threads that + currently have a reference to it (no longer have the Context current). + - Context::mIsCurrent is being removed, since it was inaccurate and not + thread-safe. For example, when eglTerminate() was called, the + eglTerminate()'ing-Thread would "steal" the Context that was current on + another Thread to destroy it. + + 2.) A Display will only be fully terminated and its resources released + once all Contexts have been destroyed and are no longer current. + Otherwise, Display::terminate() will return if any Contexts are still in + use by a Thread. + + EGL 1.5 Specification + 3.2 Initialization + If contexts or surfaces, created with respect to dpy are current (see + section 3.7.3) to any thread, then they are not actually destroyed + while they remain current. If other resources created with respect to + dpy are in use by any current context or surface, then they are also + not destroyed until the corresponding context or surface is no longer + current. + + With this fix, the app com.netmarble.sknightsmmo can start. + + This also exposed an issue with GlslangFinalize(), since glslang can + only be initialized/finalized once per process. Otherwise, the + following EGL commands will call GlslangFinalize() without ever being + able to GlslangInitialize() again, leading to crashes since + GlslangFinalize() cleans up glslang for the entire process. + dpy1 = eglGetPlatformDisplay() | + eglInitialize(dpy1) | GlslangInitialize() + dpy2 = eglGetPlatformDisplay() | + eglInitialize(dpy2) | GlslangInitialize() + eglTerminate(dpy2) | GlslangFinalize() + eglInitialize(dpy1) | isInitialized() == true + + Since Display::isInitialized() == true, the rest of + Display::initialize() is skipped and GlslangInitialize() is not called. + Later, the next test that attempts to compile a program will crash due + to glslang no longer being initialized. + + Finally, this exposed the following tests leaking EGLContext handles: + - EGLSurfaceTest::initializeContext() + - EGLContextSharingTest.DisplayShareGroupContextCreation + - EGLCreateContextAttribsTest.IMGContextPriorityExtension + - EGLMultiContextTest.TestContextDestroySimple + + Other tests were failing to reset the context, preventing the Display + from being terminated since there were still references to Contexts + owned by the display: + + eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + + Bug: angleproject:6208 + Bug: angleproject:6304 + Bug: angleproject:6322 + Test: EGLContextSharingTest.EglTerminateMultiThreaded + Test: EGLContextSharingTestNoFixture.EglDestoryContextManyTimesSameContext + Test: Load com.netmarble.sknightsmmo + Change-Id: I160922af93db6cabe0ed396be77762fa8dfc7656 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046961 + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 9040106761020dcfd470714046e76776c73eee8f +Author: Tim Van Patten +Date: Thu Sep 2 13:33:16 2021 -0600 + + Android: Remove premake/LICENSE.txt from Android.bp + + The ANGLE roll is failing in AOSP due to: + + https://android-build.googleplex.com/builds/pending/P25700586/aosp_arm64-userdebug/latest/view/logs/build_error.log + error: external/angle/Android.bp:7126:1: module + "external_angle_license": module source path + "external/angle/third_party/vulkan_memory_allocator/premake/LICENSE.txt" + does not exist + + The issue is that file was removed as part of the roll, so + scripts/generate_android_bp.py needs to be updated to remove the file + from the 'license_text' block. + + Bug: angleproject:6356 + Change-Id: I7db3a14ac07ea164deced630621bac2c26cd9d39 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140561 + Reviewed-by: Ian Elliott + Commit-Queue: Tim Van Patten + +commit 3271dea1673a600774109c2b17746fff03f0905f +Author: Cody Northrop +Date: Thu Sep 2 11:02:53 2021 -0600 + + FrameCapture: Check EXT before limiting tex buffer + + Only apply the limit to textureBufferOffsetAlignment when the + extension is enabled, otherwise the default alignment is zero + and the assert will fire. + + This was missed previously because most of us (including the bots) + run with the following GN arg enabled: + + angle_expose_non_conformant_extensions_and_versions = true + + Test: FrameCapture on Pixel 4 + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: Iea0618f439efeb3351300ee5af54066bfe526f71 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140097 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 5015bf857edcf22422992f4d6a1faf5c044cd60d +Author: Cody Northrop +Date: Thu Sep 2 10:47:21 2021 -0600 + + GetTexImage: Fix image initialization + + The extra checks were preventing texture updates from flushing, + triggering the following assert in readPixels during capture: + + ASSERT(!hasStagedUpdatesForSubresource(levelGL, layer, 1)); + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: If4209cbe9587c4222e3bf93d1551e454b1d8248d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140096 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 797ebdde9894b4411ed304a83fdaeb8d8a91fe56 +Author: Alexey Knyazev +Date: Thu Sep 2 23:15:34 2021 +0400 + + Vulkan: Suppress VUID-vkCmdDraw-blendEnable + + A new VVL causes failures in BlendIntegerTest.MRT* + + Bug: angleproject:6355 + Change-Id: If62b1a7934574acaeb95601d7fb0a61dc5d9c99a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140159 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit de09f8db317d13b2d031a00b0741303882eff0f7 +Author: Geoff Lang +Date: Thu Sep 2 18:21:37 2021 +0000 + + Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY" + + This reverts commit 4b5a774e855af2493d64b0635f56053bd795c5c5. + + Reason for revert: broken on iOS and Skia + + Original change's description: + > GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY + > + > Bug: angleproject:3020 + > Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167 + > Reviewed-by: Jamie Madill + > Commit-Queue: Geoff Lang + + Bug: angleproject:3020 + Change-Id: I54d81a7b734d007f65ff97990008f5e6eb8536f6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140453 + Bot-Commit: Rubber Stamper + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 50391b8131c3ffec7717061eea2f52f759e574e1 +Author: Charlie Lao +Date: Wed Sep 1 16:27:36 2021 -0700 + + Vulkan: Change TextureVk's vk::FormatID usage to angle::FormatID + + This is preparation change to replace some vk::Format usage in + TextureVk.cpp to angle::FormatID so that they will not get affected by + the next CL which will change how you retrieve actualImageFormatID from + vk::Format. + + Bug: b/196456356 + Change-Id: I30ad8314da917e7a9c8a642ccbdc6facc44f9719 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139233 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Commit-Queue: Charlie Lao + +commit 08b42714f51dc87e16d52757b4b115037218a4ba +Author: Lubosz Sarnecki +Date: Thu Aug 5 17:39:41 2021 +0200 + + RendererVk: Skip VK_KHR_image_format_list on SwiftShader. + + Enabling the extension produces timeouts on Linux when running Chromium + test suites like viz_unittests with a Debug configuration. + + Bug: angleproject:5281 + Bug: chromium:1245774 + Change-Id: I6241597dfe0300f3793524d5a73a4ef2cf0dc4eb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140158 + Commit-Queue: Lubosz Sarnecki + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 794b13ce9f874d472729ebd69897bc7ab9340a4b +Author: Jamie Madill +Date: Wed Sep 1 12:17:26 2021 -0400 + + D3D11: Fix overflow in GenerateInitialTextureData. + + Our use of unchecked math was causing OOB accesses with very large + textures. Unfortunately it's not easy to make a passing test that + reproduces this OOB access. + + Bug: chromium:1241036 + Change-Id: Icd2749f5b3116bb51390ce769fef22c49a11f307 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136733 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 6977fa6f8cb257c4075b3759ed25d71658217659 +Author: Charlie Lao +Date: Tue Aug 31 09:47:59 2021 -0700 + + Vulkan: Store actualFormatID (not intendedFormat) in RenderPassDesc + + Today we store intendedFormatID in the RenderPassDesc. At unpack time, + we convert intendedFormatID to vk::Format and then get the actual + VkFormat. This is a bit complex and unnecessarily confusing. And this + will be very error prone in the future when vk::Format has two actual + image formats. This CL packed actualFormatID into RenderPassDesc and + converts to VkFormat directly. Once packed in the RenderPassDesc, we + never needs to reference to intendedFormat or vk::Format since all these + does not matter. The only format matters is actualFormatID once you + packed into the RenderPassDesc. This simplifies the logic and prepare + for the future CLs. + + Bug: b/196456356 + Change-Id: Ia282115c824e3ec446d2be15b40b1e2974b99afa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133761 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit 550bf6ce29dc8c9fa895a3ed8645de985ecb3e7c +Author: Charlie Lao +Date: Wed Sep 1 13:09:12 2021 -0700 + + Vulkan: Keep track of data format for staged updates for ImageHelper + + We stage updates from a buffer or another ImageHelper object, even when + the destination ImageHelper object has not been initialized (i.e, format + is unknown). And we do not track what data format the staged updates are + in. Right now this works because the format we end up choose will always + the same as the staged data. But this may not be true in the future. + This CL remembers the data format of the staged update and assert at + flushStagedUpdate time that the format we staged is the same as the + ImageHelper's actual format. + + Bug: b/196456356 + Change-Id: Ib8124a47ca31f7782b9ec89c1fcb7e3000c747b7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3137419 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Commit-Queue: Charlie Lao + +commit 58ec0fbfd6aa3052e54db90e2c291849297acc80 +Author: Shahbaz Youssefi +Date: Thu Sep 2 11:47:48 2021 -0400 + + Vulkan: Remove the forceCPUPathForCubeMapCopy workaround + + This workaround has been disabled since + https://chromium-review.googlesource.com/c/angle/angle/+/2594707 + + Bug: angleproject:2822 + Bug: angleproject:3055 + Change-Id: Ie9cc12c7616cd9e1801dbd92e21822c63f4d0bef + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140214 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit ea609fba5ef0deeda660012cd2a64edb1d83feb2 +Author: Gert Wollny +Date: Mon Aug 30 10:43:29 2021 +0200 + + Capture/Replay: Change workdir for debug runs and annotation + + Append "Debug" to the capture_replay_tests workdir if it wasn't + overridden to avoid having to recompile everyithing when running + with or without the --debug flag given. + + Also add annotation for test that only fail when run with the + --debug flag. + + Bug: angleproject:6282 + Change-Id: I7c5251d8a6b1a010f3c0950909db60feeb58c611 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129360 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit fefbc3fb7852a394c8348820ba2abbf2d18111e4 +Author: Shahbaz Youssefi +Date: Wed Sep 1 16:26:20 2021 -0400 + + Vulkan: SPIR-V Gen: Re-fix precision of constructors + + In f3aea7447eae7f5a4a5ad1425ab375b66048ba3f, the precision of + constructors was changed such that it would be derived from its + operands, but also be able to be promoted based on neighboring operands. + Based on https://gitlab.khronos.org/opengl/GLSL/-/issues/58 this is + incorrect, and indeed the precision of the constructor (when possible) + solely depends on its own operands. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Ic2560d17973f56d4d836e3c7112d6649197a306c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3138534 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 3f4fc14fe734c73da7af2fae5841248303a78fad +Author: Gert Wollny +Date: Thu Sep 2 10:13:42 2021 +0200 + + Capture/Replay: Update expectation for fixed test + + Bug: angleproject:6180 + Change-Id: Ice84b0b104fe0e6b38e3830e9598f2c71efbc738 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3138511 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 0852ca367e7c09c03783fb71b8eaeb5ad8545e2b +Author: angle-autoroll +Date: Thu Sep 2 10:01:56 2021 +0000 + + Roll SwiftShader from b75ca3758a80 to c82c59307208 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b75ca3758a80..c82c59307208 + + 2021-09-01 srisser@google.com Remove erroneous ASSERT for format lists + 2021-09-01 srisser@google.com Minimize usage of global constructors in Reactor + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I6003392e31d7e7f105b67a40fc6dde2800b5ff29 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139469 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f360847278ae74d0d22598c4bc1e4089d65eceb3 +Author: angle-autoroll +Date: Thu Sep 2 08:52:29 2021 +0000 + + Roll Chromium from a5102f13fe96 to b5237d627f0d (446 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/a5102f13fe96..b5237d627f0d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8885581657..b69c335c66 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/c1c757c6a4..7ea3a871db + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/be47d0e66a..9f0517e240 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/01d86b5206..51de17f337 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/fd8a9510c5..789af048b3 + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/e98c753917..6e5dc9acd2 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..d9a9ebbe89 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9c1a533152..789dfc223b + * tools/luci-go: git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2..git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31 + * tools/luci-go: git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2..git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31 + * tools/luci-go: git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2..git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/144fef581b..8a4182f2f3 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4ba9d5a7e5..e209c2d667 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: I7e17de146abdb2ff148e6f61f3df12ce2876001b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139491 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e02753fc41d9183c80d1b123d098b22813675885 +Author: Gregg Tavares +Date: Tue Aug 31 21:09:45 2021 -0700 + + Convert constructors to function calls where needed. + + MSL does not do as many conversions between types + and has more strict constructors than GLSL so + convert to function calls where necessary. + + Fixes: + GLSLTest_ES3.AmbiguousConstructorCall2x2/ES3_Metal + GLSLTest_ES3.AmbiguousConstructorCall2x3/ES3_Metal + GLSLTest_ES3.ConstructMatrixFromNonFloat/ES3_Metal + GLSLTest_ES3.ConstructNonFloatVectorFromMatrix/ES3_Metal + GLSLTest_ES3.ScalarConstructor/ES3_Metal + UniformBufferTest.Std140UniformBlockWithRowMajorQualifier/ES3_Metal + UniformBufferTest.Std140UniformBlockWithPerMemberRowMajorQualifier/ES3_Metal + UniformBufferTest.Std140UniformBlockWithPerMemberColumnMajorQualifier/ES3_Metal + UniformBufferTest.Std140UniformBlockWithRowMajorQualifierOnStruct/ES3_Metal + SimpleUniformTest.FloatMatrix2UniformStateQuery/ES2_Metal + SimpleUniformTest.FloatMatrix2UniformStateQuery/ES3_Metal + SimpleUniformTest.FloatMatrix3UniformStateQuery/ES2_Metal + SimpleUniformTest.FloatMatrix3UniformStateQuery/ES3_Metal + SimpleUniformTest.ArrayOfMat3UniformStateQuery/ES2_Metal + SimpleUniformTest.ArrayOfMat3UniformStateQuery/ES3_Metal + UniformTestES3.MatrixArrayUniformStateQuery/ES3_Metal + + Bug: angleproject:6306 + Change-Id: Iea8a9a261f94f121f482c2ea9678192ca056570c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3134963 + Commit-Queue: Gregg Tavares + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Kenneth Russell + +commit 606de9b707b688dafcded97c874b384ff2d20a1b +Author: Gert Wollny +Date: Wed Sep 1 12:22:08 2021 +0200 + + Capture/Replay: Handle glInvalidateSubFramebuffer + + Enable tests that are fixed by this + + Bug: angleproject:6180 + Change-Id: I1efa6c34babf729a22ff42fa0f2d745e75e3521f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3135316 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 12beec302290212e03394ca7adb44eebf864a96d +Author: angle-autoroll +Date: Thu Sep 2 02:50:30 2021 +0000 + + Roll vulkan-deps from d54279d797f8 to 84f860ef94ee (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/d54279d797f8..84f860ef94ee + + Changed dependencies: + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/131472cb86..04bdaa2c45 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com,syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com,syoussefi@google.com + Change-Id: I8f7d406512d70e0d7290e02d98d2a1dbe0558d6c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139056 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit df957576679ce0beb852a96612b14900298c26e7 +Author: Shahbaz Youssefi +Date: Tue Aug 31 23:02:51 2021 -0400 + + Avoid redundant blend state dirty bit setting + + This change no-ops a number of blend-related state setting functions + when the state doesn't actually change given the parameters. + + Bug: angleproject:6298 + Change-Id: I156e20685089aa71bd64eae560153e5def891d63 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133823 + Reviewed-by: Sunny Sun + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 9d0e285177302764af65bf4a6ab4579f2c589b5d +Author: Shahbaz Youssefi +Date: Wed Sep 1 00:42:58 2021 -0400 + + Fix SeparateDeclarations vs struct specifiers + + Bug: chromium:1237696 + Change-Id: I3b00f3797800e814ca83226a8e4f25b2a43cc641 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133824 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit fa53afa4e9a7c173156c9da4e0109991556854d4 +Author: Jamie Madill +Date: Wed Sep 1 08:52:13 2021 -0400 + + Capture/Replay: Add uniforms to program serialization. + + Previously we weren't serializing the uniform data. This meant that + buggy uniform capture wouldn't show up as diffs in the serialization. + Verified that this new uniform capture caught a bug when retracing + PUBG mobile, which uses indexed array uniform locations. + + Bug: angleproject:5133 + Change-Id: I2a9f6ca45f1247b1a81337e47b7fb7a3d3ab4953 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136093 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit b8c50f393c5d535ee96a8f27c37e110fdca6cfa3 +Author: Jamie Madill +Date: Wed Aug 25 09:05:03 2021 -0400 + + Support syncing traces to experimental CIPD prefix. + + This lets us test a retrace without first committing it to the + immutable "angle" prefix. + + Bug: angleproject:5133 + Change-Id: Ia52ccffe69faf099d6fc92eaf392610eefa549f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118270 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit f015ae81e53a46d2dd181adc4e8a4e72484bde84 +Author: Aditya Kushwah +Date: Mon Aug 2 12:47:32 2021 -0700 + + Implement onLabelUpdate method. + + This change will implement the onLabelUpdate method by calling from + every TextureStorage object. Instead of using setDebugName, + introduced two new functions, setInternalName and setKHRDebugLabel, + which will set the internal name and KHR label respectively that will + further be sent to D3D string. + + Bug: chromium:1164111 + Change-Id: I401ca9f6e8a2099a8807f0d7f321efe74269f9f0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067921 + Reviewed-by: Rafael Cintron + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Rafael Cintron + +commit a544ab096e7767bc7c207f66328f435ee67007da +Author: Jamie Madill +Date: Wed Sep 1 09:46:17 2021 -0400 + + Style cleanups in JsonSerializer. + + Refactoring change only. + + Bug: angleproject:5133 + Change-Id: Iae2e81218dceb8f7fbfc25e9a02aa1ce8b59a09b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136095 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 047e9833a971e054e19339a3d8b8b5c39632df0b +Author: Jamie Madill +Date: Mon Aug 30 10:00:51 2021 -0400 + + Traces: Move skia gold Python scripts. + + Moving this folder up one level allows us to enforce that every + subdirectory in the restricted_traces folder is a trace folder. This + makes it easier to batch delete or move traces. + + Bug: angleproject:5133 + Change-Id: I5af24ce6c233f50dea2e6ffcaef6d489b03914c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130441 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 58f8c824d081b22bde3110bc2961f9f887d6503a +Author: Gert Wollny +Date: Wed Sep 1 12:36:31 2021 +0200 + + Capture/Replay: Update expectation bugs, remove passing test + + Bug: angleproject:6334 + Bug: angleproject:6180 + Change-Id: I7ba4e7d19e394b43e59abbd7d5a89752b6098c10 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136573 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 3f6c0cf900c424e9280487627cd5897056240294 +Author: angle-autoroll +Date: Wed Sep 1 10:01:28 2021 +0000 + + Roll vulkan-deps from 562b4d73eae2 to d54279d797f8 (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/562b4d73eae2..d54279d797f8 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/0e2880ab99..d6fe75df10 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/702e6af380..bd3a271ce3 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/d6a5a7ae31..140738f852 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/6c444b2c9f..cf9d49e461 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I572fa17001764b28d0cae6c9f7ccd260afe83fa7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3135239 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fbc9d893f1a6de91394a414298ca15df6f92dc11 +Author: angle-autoroll +Date: Wed Sep 1 10:01:56 2021 +0000 + + Roll SwiftShader from a6ca3d4c0ccd to b75ca3758a80 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/a6ca3d4c0ccd..b75ca3758a80 + + 2021-08-31 jmadill@chromium.org Increase maxComputeSharedMemorySize. + 2021-08-31 tikuta@google.com update angle revision + 2021-08-30 srisser@google.com Turn BC6 constructors into constexpr + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I1f62fcfd40eda7beb0081b2ad475d72e29b7831b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3135218 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8bb1df7d1636edfd051d786f8fdd68a35848e6ff +Author: Gert Wollny +Date: Mon Aug 30 17:17:44 2021 +0200 + + Capture/Replay: Clean up tests that pass and add new failures + + Bug: angleproject:6331 + Bug: angleproject:6333 + Bug: angleproject:6334 + Bug: angleproject:6345 + Change-Id: I9f6df69f50f6c8c21eaad09e476aac956c78517a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129361 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit f8d51d183cffbcac171d08e54dd8d205b4fd34f0 +Author: angle-autoroll +Date: Wed Sep 1 07:13:28 2021 +0000 + + Roll Chromium from abe7c480d95d to a5102f13fe96 (417 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/abe7c480d95d..a5102f13fe96 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/36b1f71274..8885581657 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/ac4ea2d086..c1c757c6a4 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e8a7cf1d99..01d86b5206 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..83a41f1a90 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/d4534cc15d..9c1a533152 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2785bed68c..4ba9d5a7e5 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: I897b1e68b2f6ae6aee4b9f2bee732d3c7ef81be4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3134972 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8ce42fd3aa2c17b962e2f3887173e09bd368d362 +Author: Charlie Lao +Date: Tue Aug 24 17:33:05 2021 -0700 + + Vulkan: Remove mFormat from ImageHelper + + The only thing we need from ImageHelper::mFormat is to get + intendedImageFormat. This CL simplifies the interface by simply pass in + intendedImageFormat into initExternal so that ImageHelper class will not + need to reference to vk::Format at all. + + Bug: b/196456356 + Change-Id: I5fcb0d7226cae44dc865a7cfb0149d74e5756f11 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111451 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit 11fd7a140ec8405be5b406ac4e3675e7a88a7596 +Author: Charlie Lao +Date: Wed Aug 18 13:46:30 2021 -0700 + + Vulkan: Pass actualFormatID directly into ImageHelper::initExternal + + Since vk::Format alone won't tell us what the actual format is. This CL + let caller pass actualFormatID directly into ImageHelper::initExternal() + call and let ImageHelper object keeps record of mActualFormatID without + need to refer to vk::Format object. + + Bug: b/196456356 + Change-Id: I3c47caae7f946805a32f57519348528f8d47cf4a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104513 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit f3aea7447eae7f5a4a5ad1425ab375b66048ba3f +Author: Shahbaz Youssefi +Date: Wed Aug 25 22:09:58 2021 -0400 + + Vulkan: SPIR-V Gen: Fix precision of constructors + + According to the spec, constructors don't have a precision (and thus + their precision is derived from the operands they are used in. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I557386764abf5493fbe59803dc8e260312c04b48 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119352 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 6eeab192da0c0e1779d2c09020ea8e58de972280 +Author: Tim Van Patten +Date: Fri Aug 27 16:26:25 2021 -0600 + + Vulkan: Don't defer clear for read render target + + We shouldn't collect deferred clears for the read render target because + they get applied to the draw render target. This CL flushes stages + updates to the read render target only if it's not the same as the draw + render target. This can happen when the read render target is bound to + another surface. + + Bug: b/192327017 + Change-Id: I7c9e804f4eff10728aed7aeeaf41ef3869c9bdbd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3125462 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit fbdd0516ef237c4f98d25bdf9efdb6bbdbf197df +Author: Shahbaz Youssefi +Date: Fri Aug 27 00:04:11 2021 -0400 + + Vulkan: SPIR-V Gen: Fix precision of imageLoad + + According to the spec, imageLoad should return highp. However, glslang + produces the same precision as the image (which makes more sense). This + seems to be a spec bug per the discussion in this issue: + + https://gitlab.khronos.org/opengl/GLSL/-/issues/57 + + This change aligns ANGLE with glslang w.r.t to the precision of + imageLoad. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Ia0ce493a0deab21810458da6b48fdf51dfbd41a2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122317 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 108460732a22eb94828397776e718abddca74863 +Author: Brandon Schade +Date: Mon Aug 30 14:41:16 2021 -0700 + + Allow image uniforms to be used in separable programs + + This change updates mActiveImagesMask in ProgramExecutable + for separable programs. Previously image uniforms would only + work in the first shader stage. + + Bug: angleproject:4512 + Tests: ProgramPipelineTest31.ImageUniforms + Change-Id: Ib35bed94bb8fac883fd67f8bfa052186926d0ce4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3131582 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Brandon Schade + +commit af57475ee2d870d850c774c67b0fd78d145210d3 +Author: YuxinHu +Date: Fri Aug 27 00:33:39 2021 +0000 + + Improve Error Messaging + + Improving error messaging for egl validations. + + Bug: b/186543601 + Change-Id: Iec9a8f14998bc105785eca990f6512b72385191a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124071 + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Yuxin Hu + +commit 4b5a774e855af2493d64b0635f56053bd795c5c5 +Author: Geoff Lang +Date: Fri Apr 3 14:56:36 2020 -0400 + + GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY + + Bug: angleproject:3020 + Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167 + Reviewed-by: Jamie Madill + Commit-Queue: Geoff Lang + +commit 3e9fda9850133afcfb22057c49041605448e1eb6 +Author: angle-autoroll +Date: Tue Aug 31 11:18:28 2021 +0000 + + Roll vulkan-deps from 4c030a49cdb9 to 562b4d73eae2 (11 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4c030a49cdb9..562b4d73eae2 + + Changed dependencies: + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/449bc986ba..6cae8216a6 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/b8fce5f9e6..702e6af380 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/39dd126e16..d6a5a7ae31 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/5805106266..6c444b2c9f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/a9124f2166..131472cb86 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I17e66ab81ce86cf2624a74b78f07358ba9fd764b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3132725 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit a8f1a916a5e800739e3fbe64445689482ce20da3 +Author: Jamie Madill +Date: Thu Aug 26 17:53:56 2021 -0400 + + GetTexImage: Remove syncState calls & add early error exit. + + Instead of calling syncState to force the Vulkan staged textures to + flush, we ensure the Texture is marked initialized by sending a + message up to the Texture when there are no more pending updates. + + Also adds handling for textures with extra mips. Instead of crashing, + we now return an error with a warning. Also adds a test with a + texture that has extra (outside the mip chain) defined levels. + Also adds a test and handling for empty texture levels. + + This should lead to more consistent behaviour in the trace test + serialization logic, where often the prior logic would behave + differently depending on if GetImage was called from MEC or from + the serialization code. + + Also updates the generateMipmap logic to syncState after calling + initializeContents so the updates happen in the correct order on + Vulkan. + + Bug: angleproject:5133 + Bug: angleproject:6336 + Change-Id: Iab1c2a22b9f9435e7f3c0f870c86bbed3460482e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123168 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 959b80b4c2c0f5c18e252771c0bffa688d0425c3 +Author: angle-autoroll +Date: Tue Aug 31 08:17:29 2021 +0000 + + Roll Chromium from ca199aff3bc7 to abe7c480d95d (1237 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/ca199aff3bc7..abe7c480d95d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ac9a0c826b..36b1f71274 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/66ed2345b7..ac4ea2d086 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/996cd744d6..be47d0e66a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/91dcb9cd46..e8a7cf1d99 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/33892fe47e..fd8a9510c5 + * third_party/android_build_tools/aapt2: PHj2SHpCe6Sr9lcIR9W1onhKN4FIIPL2Mho5aAQG-QIC..O9eXFyC5ZkcYvDfHRLKPO1g1Xwf7M33wT3cuJtyfc0sC + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/dd8bbe8204..d6b0ef3291 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..af4c715a74 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0daa723a77..d4534cc15d + * third_party/r8: version:2@3.1.16..dvPOJ_8iAF6OHGO79d86VbJjyKj7Xn0SFxlVVC9LHdcC + * third_party/turbine: Xj6IyKuFSYmVNG3QQ4Co4FGcczKmWK3gykG73WjMciEC..Om6yIEXgJxuqghErK29h9RcMH6VaymMbxwScwXmcN6EC + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/563140dd9c..77c132322f + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/5ab37cd7bd..403247ef95 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/629df05b75..144fef581b + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/cf7ada42dc..ea8b20f92a + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/dec67cd252..2785bed68c + Clang version changed llvmorg-14-init-1380-gee659383:llvmorg-14-init-2175-g945cde8b + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/5ab37cd7bdc39c0cbe420c8e048c58d254eebbcd..403247ef95e2b17530ab2a46980dac16245b7852/scripts/update.py + + Bug: angleproject:6343 + Tbr: geofflang@google.com + Change-Id: I3d0a7533a0d900c4c0eaab2f419b11591425463a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3132054 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5090cb22e9ce716623524dbf5098534c1a45642e +Author: Cody Northrop +Date: Mon Aug 30 22:12:59 2021 -0600 + + Tests: Add Words With Friends 2 trace + + Test: angle_perftests --gtest_filter="*words_with_friends_2*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/198232783 + Bug: angleproject:6348 + Change-Id: Iacb62540b8680574dc34b7fa299948dd56c76074 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3132340 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 27517801121e28cdf303cc5e499826d5ead4fc9f +Author: Cody Northrop +Date: Thu Aug 26 15:42:05 2021 -0600 + + Capture/Replay: Set texture buffer offset alignment + + Set a texture buffer offset alignment value (256) that is divisible + by most device's actual GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT. This is + the highest and most common recorded value on gpuinfo.org. It is + also listed in the spec as the minimum value. + + Specifically, this allows running the trace on SwiftShader. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: Ied58000221465b8bdafb189a54d0418e58996ec3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123956 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 3a9df22fcc51510a8e0aace8fddc2905b79906fb +Author: Cody Northrop +Date: Sun Aug 29 21:05:04 2021 -0600 + + Tests: Add World of Kings trace + + Test: angle_perftests --gtest_filter="*world_of_kings*" + Tbr: timvp@google.com, jmadill@chromium.org + Bug: b/198101940 + Bug: angleproject:6339 + Change-Id: Id19ebe19d6a3dee3bc7c1c59801e7b9a4dc4fdb2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127943 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 0d5b59708d2dc15b9f92919b08ce2d2afeec861e +Author: Ian Elliott +Date: Mon Aug 30 11:42:55 2021 -0600 + + Split OWNERS by domain + + Android has a policy that only @google.com and @android.com email + addresses can be in OWNERS files. The upstream ANGLE OWNERS files also + have @chromium.org addresses. Currently, all of these email addresses + are sorted alphabetically, which makes auto-roll/merge into Android + fail to merge. + + We will start splitting the email addresses by domain. + + Bug: b/198165924 + Change-Id: Ibb3addd7dbf39b549dfe68dbd88b19a85d0f8666 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130346 + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit ef96bde8b0fff13517c65e6a35d291ae65c4d505 +Author: Cody Northrop +Date: Sat Aug 28 23:59:33 2021 -0600 + + Vulkan: Fix VVL error regarding geometryStreams + + Addresses new validation error: + + [ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Validation Error: [ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Object 0: handle = 0xb400007e8176af60, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf1034461 | pCreateInfos[0].pRasterizationState pNext chain includes VkPipelineRasterizationStateStreamCreateInfoEXT, but geometryStreams feature is not enabled. The Vulkan spec states: VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324) + + The validation was added in this commit: + https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/bdaec8454a27e65dd81f46bbfad1889b7a3e34f6 + + Test: World of Kings MEC + Bug: b/198101940 + Bug: angleproject:6339 + Change-Id: I3cfacc20d231d246500e83451c9ec6b74d9372f2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127942 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Cody Northrop + +commit ab1a5dbeb406bfeba1a7a31f9b4317694bcc56c2 +Author: Charlie Lao +Date: Tue Aug 17 15:42:43 2021 -0700 + + Vulkan: Use angle::Format for ImageViewHelper class + + ImageViewHelper class only needs actualFormatID. Instead of passing + vk::Format to ImageViewHelper, this CL passes actualImageFormatID to the + ImageViewHelper API to further reduce the exposure to vk::Format where + getting actualImageFormatID needs extra information (renderable or not) + + Bug: b/196456356 + Change-Id: I26afc1f37980a3b2419a66510cf720d79ad0a111 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3101928 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit 5dd1c04215554cce8d87acbab13cb3c456aa5bf2 +Author: Geoff Lang +Date: Mon Aug 30 12:11:26 2021 -0400 + + Roll third_party/vulkan_memory_allocator + + Bug: angleproject:6343 + Change-Id: I4a6fca0dee39dc33c93b759bbc63dbd55843d4a8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130380 + Reviewed-by: Jamie Madill + Commit-Queue: Geoff Lang + +commit e98539f03071a74cd1028c110c6aeef044b3c562 +Author: Charlie Lao +Date: Tue Aug 17 14:42:26 2021 -0700 + + Vulkan: Add ImageHelper::getIntendedFormatID() + + This adds helper API to return intendedFormat directly from ImageHelper + object instead of vk::Format, to make API symmetrical. It is also + necessary. It is also needed in some places where we no longer have + access to vk::Format any more due to refactoring. + + Bug: b/196456356 + Change-Id: Ie0502793623138ded28c3f01320c57ffea2d93df + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3101925 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Charlie Lao + +commit ec50e22b0ddf4d2b1ac0932f8b9bdf2f8a340603 +Author: Gert Wollny +Date: Fri Aug 27 10:17:12 2021 +0200 + + Capture/Replay: Show some expectation when skipped tests are run + + These tests were marked "PASS or new tests", when failing + which is misleading. + + Bug: angleproject:6282 + Change-Id: I2adf4a29690f8442682e65e5326d173e4e157842 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129142 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit a29b07d878085c9379bd19d77c6d2305b15db8d6 +Author: Jamie Madill +Date: Thu Aug 26 13:11:29 2021 -0400 + + InitializeVariables: Init shader IO block outputs. + + These variables were not handled in the pass because we had no prior + test coverage of them. Some frame capture testing uncovered this gap. + + The variables must be initialized field-by-field, since there seems + to be no defined way to initialize an entire block at once. + + Bug: angleproject:6326 + Change-Id: Ib7aecfb76b97b4236d786b44b3dfb706c573e221 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123228 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit 4811896c4c213bfc1a95a4088b6f057042d5d710 +Author: angle-autoroll +Date: Mon Aug 30 10:01:28 2021 +0000 + + Roll vulkan-deps from 3e5496ec4fdf to 4c030a49cdb9 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/3e5496ec4fdf..4c030a49cdb9 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/ee30773650..b8fce5f9e6 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/c5b7a2fa18..9e62d02763 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/0a5b930506..a9124f2166 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I9a19da7a0e1a133cbccc08bd71aff3c928a2dbd5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3128787 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit bc89eda7bb6e5ecb753c60bc71f8f93686fb5605 +Author: Gert Wollny +Date: Thu Aug 26 21:30:41 2021 +0200 + + Capture/Replay: honor base level when serializing textures + + Bug: angleproject:6331 + Change-Id: Ibd1eba995b0aec02854da5c3c16196c6d079e94d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123407 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 58bb11ca62765dfe28b5b6d0a965a0d44ef2c01e +Author: Tim Van Patten +Date: Fri Apr 16 12:28:50 2021 -0600 + + Capture/Replay: Multi-Context Support + + Add support for capturing and replaying multiple contexts. + + 1.) Create and initialize the Contexts in the share group during + SetupReplay(). + 2.) Track the Context the command stream is for, and if the Context ID + changes, inject an eglMakeCurrent() call to switch to the new Context. + 3.) Intercept eglCreateContext() and eglMakeCurrent() to route to either + EGLWindow or WGLWindow, depending on the current platform. + + Specifically, this enables capturing and replaying Asphalt 9. + + Bug: angleproject:5878 + Change-Id: I5bc9b7ece5388ce405ba3f9e9dc3967e78662000 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830145 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 4c56534f31716339769a322372614bfbbbc037bf +Author: Gregg Tavares +Date: Wed Aug 25 15:56:59 2021 -0700 + + Include globals when defering global initializers + + Fixes these tests: + + GLSLTest.StructWithInitializer/ES2_Metal + GLSLTest.StructWithInitializer/ES3_Metal + GLSLTest.StructWithUniformInitializer/ES2_Metal + GLSLTest.StructWithUniformInitializer/ES3_Metal + GLSLTest_ES3.SequenceOperatorEvaluationOrderDynamicVectorIndexingInLValue/ES3_Metal + WebGL2GLSLTest.InitUninitializedLocals/ES3_Metal + + Bug: angleproject:5505 + Change-Id: Ib8258898c60b9e9ffbb71f0024f8189dc6cf4d5b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3120093 + Commit-Queue: Gregg Tavares + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + +commit 82423ad1388702883b6557d868fd81303bf5ad84 +Author: Alexey Knyazev +Date: Fri Aug 27 11:48:22 2021 +0400 + + Cleanup ValidateES2TexImageParametersBase; update tests + + Non-compressed TexImage entry points consistently reject + compressed format enums. They no longer have a special + case for four S3TC formats. + + Expanded coverage of CompressedTextureFormatsTest. + + Bug: angleproject:5731, angleproject:6280 + Change-Id: I058a1e745a0d5257bd5e0333d71b238b0a2e7b96 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123414 + Commit-Queue: Alexey Knyazev + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + +commit c90a6dcacc4e4819df8a266f2e36da2bbe7784c0 +Author: Kenneth Russell +Date: Thu Aug 26 21:54:54 2021 -0700 + + Deduplicate autoroller docs. + + Leave them centralized in ANGLEWrangling.md, link to them from + BranchingAndRolling.md, and add the Chromium-into-ANGLE autoroller. + + Bug: angleproject:6323 + Change-Id: I913954b92dbe3545320e662de122daf26140d425 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124341 + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + Commit-Queue: Kenneth Russell + +commit 9a3f60f2201341a1673a39ff8887577b1058950a +Author: Jamie Madill +Date: Thu Aug 26 10:30:23 2021 -0400 + + Capture/Replay: Allow serializing cube map array data. + + This ASSERT was firing which was preventing several traces from + re-tracing. + + Bug: angleproject:5133 + Change-Id: I86d956bf0c95210bef5572a30fb786555d14522f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123226 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit d72cad5e3e1636a9c9193664d9b54220ec3001cd +Author: Jamie Madill +Date: Thu Aug 26 13:40:49 2021 -0400 + + Capture/Replay: Serialize buffer texture buffer IDs. + + Instead of trying to serialize buffer texture contents, we can + serialize the ID of the bound buffer. The buffer contents are + already serialized in the buffer manager iteration. + + This prevents an ASSERT failure in PUBG. + + Bug: angleproject:6328 + Change-Id: I5427df86c7146d27cf10e316db0b1436b6774747 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123229 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 9c27164587e6efe81658b2ea1e93465c3c319da1 +Author: Shahbaz Youssefi +Date: Fri Aug 27 13:07:06 2021 -0400 + + Vulkan: SPIR-V Gen: Fix gl_PerVertex without clip/cull support + + When the clip/cull distance extension is not supported, the + gl_ClipDistances and gl_CullDistances arrays were given a size of 0, + which made them translate as OpRuntimeArray. + + This change makes sure that these arrays always have a non-zero size. + + Bug: angleproject:4889 + Change-Id: I8d2ffe3a7c1df9316e91eebc2aa53bdc2c87ccc1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123354 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 77151a6c870c0bcf85f470fd23c5ce60906317b6 +Author: Alexey Knyazev +Date: Thu Aug 26 19:32:35 2021 +0400 + + Cleanup ValidateES2CopyTexImageParameters; add test + + Compressed and depth formats are rejected earlier with + ValidateCopyTexImageParametersBase. + + Added a new Texture2DTest.CopyAfterCompressed test to + ensure that validation code for non-subImage case does not + fail new assertions. + + Bug: angleproject:5731, chromium:1216276 + Change-Id: I11d2ac3389418731b6cc6e2bd5c9655b1590b02d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122156 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Alexey Knyazev + +commit caef7c5367b9855ad1f20b463bf1599add7a5324 +Author: Jamie Madill +Date: Thu Aug 26 18:24:18 2021 -0400 + + infra: Disable perf tests on Win/Intel. + + These were killing the bots for some reason. Disable them until we + can find the root cause. + + Bug: angleproject:6090 + Bug: angleproject:6332 + Change-Id: I48b633118f098570e371ea81d9e512e35ab04cd6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123169 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit edc8e8526751ccf401d15d18aee3a5dc5d176915 +Author: Jamie Madill +Date: Thu Aug 26 09:58:08 2021 -0400 + + Capture/Replay: Skip one additional ES3 test. + + RenderbufferMultisampleTest.IntegerInternalformat/ES3_Vulkan_SwiftShader + + Also sorts the list of crashed tests alphabetically. + + Bug: angleproject:6180 + Change-Id: If329c4a47188a8ca6ffd9bffaba588439344b06d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122445 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 25d61ae5accde00bc27e3705fa87bfcc2af45621 +Author: angle-autoroll +Date: Fri Aug 27 10:01:56 2021 +0000 + + Roll SwiftShader from 518056981519 to a6ca3d4c0ccd (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/518056981519..a6ca3d4c0ccd + + 2021-08-26 capn@google.com Implement VK_EXT_load_store_op_none + 2021-08-26 capn@google.com Refactor determining the aspects to clear + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: If941b2d8e3f7ac67cbaf258ba2fb0a6839d9850a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124006 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8d45b13fd3074778f8ec58a79cf2d8b49421dded +Author: angle-autoroll +Date: Fri Aug 27 10:01:28 2021 +0000 + + Roll vulkan-deps from 5e51e6f8ccd4 to 3e5496ec4fdf (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/5e51e6f8ccd4..3e5496ec4fdf + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/2a5cc342fb..ee30773650 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/90fd66f60f..39dd126e16 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b8705a0145..0a5b930506 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I1bf06b9c05c83767b4ed1aac2d658464e1e9e4c5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3124078 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f162e4bc36c0e30dfbe89708c9465c84220459a8 +Author: Lubosz Sarnecki +Date: Thu Aug 26 14:44:03 2021 +0200 + + SRGBFramebufferTest: Add test that used to fail on Vulkan. + + This commit adds a test that reproduces a Vulkan validation error + found in several suites of the Chromium CI. + + The error was caused by enabling the VK_KHR_image_format_list + extension on SwiftShader and thus exposing the + GL_EXT_sRGB_write_control GL extension. + + Commit bd19620fcd599947a2fada3e02061d02d690d9eb reverted the change and + disabled the extension for all platforms besides AMD and ARM. + + The issue was fixed in angle by either of the following commits: + cf090996c7850074d76ce8408af4661a3c91e5e2 + e70a1444af85c77a39e82a69569f723098c8d37c + + To reproduce the Vulkan validation error, both commits need to be + reverted. + + Bug: angleproject:5281 + Bug: angleproject:6244 + Change-Id: Idd7d8d955004506a5f4b1b822ad568c727e19f1f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122645 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit 41f7dedd61c7993503980e7ecad9390c54202f91 +Author: Lubosz Sarnecki +Date: Thu Aug 5 16:48:17 2021 +0200 + + Reland "VulkanExternalHelper: Use VK_KHR_image_format_list extension." + + This reverts commit bd19620fcd599947a2fada3e02061d02d690d9eb. + + Bug: angleproject:5281, chromium:1233561 + Change-Id: I0dc2a142dc7de83c0bdbf2256e9fb372e56d177a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122124 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit b3d062da2dcd7a523c0abdbd4d7731bf25a6abbf +Author: Gert Wollny +Date: Thu Aug 26 20:41:42 2021 +0200 + + Capture/Replay: Handle glCopyTexture3DANGLE + + Bug: angleproject:6331 + Change-Id: I704a34587600e612dd1d8d16b87225a7c66d4e82 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122164 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 78e0ae81d924142fd3c862a24a390f8e5aa82829 +Author: Gert Wollny +Date: Wed Aug 25 18:59:15 2021 +0200 + + Capture/Replay: Add specific bug IDs for crashing tests + + Bug: angleproject:6313 + Bug: angleproject:6314 + Bug: angleproject:6315 + Bug: angleproject:6324 + Bug: angleproject:6325 + Bug: angleproject:6329 + Bug: angleproject:6331 + Change-Id: I881e19f9501f4b6b1a80df120b5772dbc24044b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118549 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 58930a73ce909537ebca498c8d9a27815915ee3a +Author: Shahbaz Youssefi +Date: Sat Aug 7 22:05:27 2021 -0400 + + Translator: Facilitate integration in FireFox; Part 2 + + Support for desktop GLSL builtins is now controlled by a gn arg, instead + of being tied to is_android. + + Bug: angleproject:6188 + Change-Id: Ia152d31bd49ca6de2b29873ee4998c1598904382 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076285 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 5f092f8b5161dc05f0f1d6f2fd6687c15365b741 +Author: Cody Northrop +Date: Tue Aug 17 17:15:59 2021 -0600 + + FrameCapture: Support glProgramBinary + + This CL allows applications to use glProgramBinary. Normally this is + a problem because we need program source in order to recreate shaders + in use during mid-execution capture. Use of program binaries + means an app can start and render frames without having submitted + source for that run. + + To support this, we will embed program source into ANGLE's binary + format. This will allow us to extract it when the app submits the + binary. We will only embed this when capture is enabled to prevent + increased binary size in the common case. Since this changes ANGLE's + binary format, apps will recreate binaries when capture is enabled. + + Additionally, we can't allow captures to have glProgramBinary calls + in the middle of captured frame ranges, so intercept those calls and + replace with a full linking sequence. + + Changes include: + + - Add new frontend feauture enableProgramBinaryForCapture that allows + OES_get_program_binary during capture. + - Update ANGLE's binary format to include program source when + capture is enabled. + - Update maybeOverrideEntryPoint to handle multiple new calls + instead of a single call. + - Override calls to glProgramBinary that occur mid-capture + to instead emit a full GenerateLinkedProgram sequence. + - Add checks for created/attached shaders during FrameCapture since + they won't be available for programs populated by the app using + glProgramBinary. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: Ib2a0e9e434d3ee0f384d128c48b2a7d4834f5b0f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105390 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit cf24931abf276494329fab131cb0280385699172 +Author: Charlie Lao +Date: Tue Aug 17 10:48:23 2021 -0700 + + Vulkan: Add ImageHelper::getActualFormat() + + This is preparation for future CLs. In the future vk::Format may not + tell you what actual format is. This CL adds a new method of + ImageHelper::getActualFormatID() and ImageHelper::getActualFormat() so + that we can use these two APIs and avoid using vk::Format, thus reduce + reliance on vk::Format. + + Bug: b/196456356 + Change-Id: Ic50e664e033feb5e066f40269c33cffe96024172 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100319 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Ian Elliott + +commit 9f59cac0aa886838158da1d090c5e5058be34458 +Author: Cody Northrop +Date: Tue Aug 17 16:37:03 2021 -0600 + + FrameCapture: Move MEC of program binaries to a helper + + This creates a new function called GenerateLinkedProgram that will + facilitate capture support of glProgramBinary. + + Note this also moves one line out of the GenerateLinkedProgram path + because it modifies state. The new function needs to be run against + const state mid-capture in the next CL. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: I4e3a7f3ff8d31b07bb0ebc220858a66e91e24933 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105389 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 5e1bd524288edd3b67972eb6d5eaad686c4b5284 +Author: Jamie Madill +Date: Thu Aug 26 10:28:57 2021 -0400 + + Perf Tests: Fix histogram units. + + There was another place where we needed to set "smallerIsBetter". + Also prefer "ms" instead of "msBestFitFormat". + + Bug: angleproject:6090 + Change-Id: I489089ae03f46b4c427821019917294d2d01dbcd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123225 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit 936fd6cfb9733a4918771511b18fa11652e76166 +Author: Kenneth Russell +Date: Wed Aug 25 19:15:03 2021 -0700 + + Add documentation for autorollers. + + Document the location and purpose of the ANGLE-into-Chromium and + Chromium-into-ANGLE autorollers, to make them easier to find for + people who don't often use them. + + Also fix several broken links due to misplaced newlines pointed out by + syoussefi@. + + Bug: angleproject:6323 + Change-Id: Id3d2f0e5627729acd2447b4954d2920375c37db2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3120408 + Commit-Queue: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + +commit 5441c5198177ff88e10535b4d510464c7971d9f2 +Author: Jamie Madill +Date: Thu Aug 26 11:17:19 2021 -0400 + + GN: Fix duplicate include of VersionGLSL.h + + The duplicate include was confusing the MSVC project loader. + + Bug: None + Change-Id: I3637d9f0f26272e77cf4ab723532f53e12c13f51 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123227 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit f3bccd9d03d5b1e0fa80762de28d4ea43e64effd +Author: Geoff Lang +Date: Thu Aug 26 18:04:13 2021 +0000 + + Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY" + + This reverts commit 8d7f4cc986778bfff0b242dbea6083346da6c54d. + + Reason for revert: Broke CrOS build. + + Original change's description: + > GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY + > + > Bug: angleproject:3020 + > Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929 + > Commit-Queue: Geoff Lang + > Reviewed-by: Jamie Madill + + Bug: angleproject:3020 + Change-Id: I0930c1bdb5356d533fae563428893aa8a9f91a52 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123266 + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + Bot-Commit: Rubber Stamper + +commit 24a1650a2483dae60141c71c6ef98ff410f0d19f +Author: Charlie Lao +Date: Mon Aug 23 18:48:24 2021 -0700 + + Vulkan: set TextureVk::mImageUsageFlags for extern mem backed texture + + For external memory backed texture, mImageUseFlags are never set. Not + exactly sure what harm will cause, but I am seeing when + TextureVk::syncState is called we are incorrectly recreating storage due + to we think there is usage flags change. + + The other fix here is the test + VulkanExternalImageTest.ShouldClearOpaqueFdWithSemaphores is not using + deviceMemorySize and causing VVL to complain. + + Bug: b/197578056 + Change-Id: Icca89de973ee3cb93b7e0fe8083ae674df81cae8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115333 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Charlie Lao + +commit a5e95c07aff6520883501399277e665d23f59948 +Author: Alexey Knyazev +Date: Thu Aug 26 02:40:10 2021 +0400 + + Adjust TexStorage2DEXT validation; update tests + + - Use common texture format support function. + - Enforce size restrictions for compressed formats. + - Expand CompressedTexture* and + WebGLCompatibilityTest.CompressedTexImage* tests. + - Adjust GL_DEPTH_COMPONENT16 support condition on ES 2.0. + - Adjust GL_DEPTH24_STENCIL8 support condition on ES 2.0. + - Adjust GL_RGB10_A2 support condition on ES 2.0; adjust + VulkanExternalImageTest.TextureFormatCompatChromium* tests. + - Do not use integer formats in + TextureRectangleTest.TexStorage2D. + + Bug: angleproject:5731, angleproject:6230 + Change-Id: I2f288f459b511cc004601238df717aa78433be7f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118553 + Commit-Queue: Alexey Knyazev + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Kenneth Russell + +commit dd5994dff38848fa71e02ab99ba202066f91d1bd +Author: Jamie Madill +Date: Wed Aug 25 18:39:31 2021 -0400 + + Capture/Replay Tests: Fix Renderbuffer readback. + + Renderbuffer readback would use an unimplemented size function, + ending up with a zero sized buffer. Also cleans up some of the + code for reading back both Renderbuffers and Textures. + + One Depth/Stencil test that was crashing due to a recent change to + read back depth data is now failing comparison because of missing + combined depth/stencil support. + + Also updates the capture/reply self-test to handle ASAN-only test + expectations. + + Bug: angleproject:4688 + Change-Id: Idb6c05d15329f405f44502c2e5282764c7f780fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119057 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit f7b2ab5cca7c0379f23594a5465fa7df4887c399 +Author: Jamie Madill +Date: Wed Aug 25 19:00:44 2021 -0400 + + Perf tests: Add 3 new skips after updating perf run times. + + MultisampledRenderToTexturePerf on P4 and Intel Linux + TextureUploadPerf on Intel Linux + + Bug: angleproject:5120 + Bug: angleproject:6319 + Bug: angleproject:6320 + Change-Id: Ia201a4d62e95f82ec42f64abebc4222e31d41e9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119058 + Reviewed-by: Yuly Novikov + Reviewed-by: Ian Elliott + Commit-Queue: Jamie Madill + +commit dc304c7053654145eed8b2c505c6ad96ff29da0b +Author: angle-autoroll +Date: Thu Aug 26 10:01:56 2021 +0000 + + Roll SwiftShader from e32890c54793 to 518056981519 (5 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/e32890c54793..518056981519 + + 2021-08-26 capn@google.com Refactor command execution + 2021-08-25 capn@google.com Update Vulkan headers to version 1.2.189 + 2021-08-25 capn@google.com Eliminate custom Vulkan constants + 2021-08-25 srisser@google.com Don't use global variables for CPUID + 2021-08-25 srisser@google.com Remove global constructor from BC6 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ic6a7b305812610bafc5e611b7a0813d267158379 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3121390 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 766e603f69b49982d83e45faeaf6e83f974ac2e2 +Author: angle-autoroll +Date: Thu Aug 26 10:01:28 2021 +0000 + + Roll vulkan-deps from 1262ad6fdd3f to 5e51e6f8ccd4 (19 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/1262ad6fdd3f..5e51e6f8ccd4 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/a4599ef756..2fb89a0072 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c062b6b852..0e2880ab99 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d699296b4d..2a5cc342fb + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/931cff66d7..b8705a0145 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ib3af9e93d4e7ea816861357fec77f24dfb31151c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3121646 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c2ea35c45b0a3abf6662a37b98f6d37b68b37e5f +Author: angle-autoroll +Date: Thu Aug 26 07:01:09 2021 +0000 + + Roll Chromium from f03e89d82d9f to ca199aff3bc7 (410 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f03e89d82d9f..ca199aff3bc7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/27f0221c9b..ac9a0c826b + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/88e9a2946f..66ed2345b7 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/545a3dabc0..91dcb9cd46 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/1fcccaceef..33892fe47e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..4241fcac6b + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/64a9f33bdd..0daa723a77 + * third_party/turbine: Om6yIEXgJxuqghErK29h9RcMH6VaymMbxwScwXmcN6EC..Xj6IyKuFSYmVNG3QQ4Co4FGcczKmWK3gykG73WjMciEC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/cb4a58d414..5ab37cd7bd + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4ab0042cf0..629df05b75 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4b589c46b5..dec67cd252 + No update to Clang. + + Bug: angleproject:4889 + Tbr: ianelliott@google.com + Change-Id: I06e2a6cc47922763c609d0b435762d2530776f6c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3120885 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c61fd91904a5438270607157ac502ec4175534e2 +Author: Jamie Madill +Date: Wed Aug 25 08:29:55 2021 -0400 + + Fix array texture readback with GetTexImage. + + According to the desktop GL specs, GetTexImage retrieves entire + mips of a texture for 2D array and cube array textures. The prior + code was only retrieving one layer and didn't have any way to get + the layers other than layer zero. + + Fix this by using similar logic to how we read back 3D textures. + Also adds regression tests to GetImageTest. + + Bug: angleproject:5133 + Bug: angleproject:6132 + Change-Id: I8b22bc10ac1fdfe6389ac309450b92681f087cda + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118266 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 39e58580412303e23a7c60b0eef5cfa477d33564 +Author: Ian Elliott +Date: Wed Aug 25 14:50:49 2021 -0600 + + Move some end2end suppressions to expectations file + + With 2 previous Wrangler-suppression CLs, I followed the pattern + initially done for bug 5945. Jamie pointed out that these are better + handled in the expectations file. This CL moves all 3 suppressions. + + Bug: angleproject:5945 + Bug: angleproject:6318 + Change-Id: Ib70c3ede4c1fcd92cfd7dc65f2b37e221380fefe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119683 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit 8d7f4cc986778bfff0b242dbea6083346da6c54d +Author: Geoff Lang +Date: Fri Apr 3 14:56:36 2020 -0400 + + GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY + + Bug: angleproject:3020 + Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929 + Commit-Queue: Geoff Lang + Reviewed-by: Jamie Madill + +commit 0394fc62a3dc0b63f265d0e4645683d919218594 +Author: Shahbaz Youssefi +Date: Wed Aug 25 15:18:44 2021 -0400 + + Vulkan: Fix transform feedback pause on UtilsVk clear + + Transform feedback was paused after vkCmdBindPipeline, but should be + done before as that command is not valid while transform feedback is + active. + + Bug: angleproject:6317 + Change-Id: Ifcea8de07e24c71a19a74e738cb700576f7f53cc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118812 + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + Commit-Queue: Shahbaz Youssefi + +commit 1be6d1d4d955cfec54a736a2de5cee76a222604b +Author: Jamie Madill +Date: Tue Aug 24 10:03:13 2021 -0400 + + Capture/Replay: Sync textures before serialization. + + This ensures we get a consistent value for the texture init status + and pixel data between when we capture the trace and when we run + the replay. Because syncState is normally only called for textures + that are currently bound for sampling, and here we are calling + syncState when texture are not (and may never be) bound, we have to + rely on a few extra checks to ensure we return a correct result. + + Bug: angleproject:5133 + Change-Id: I2ca76743e8a6550a730dc55d935ba69d88679589 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118265 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit f9d261f5747c25043be80e97601e586ab1855aa7 +Author: Shahbaz Youssefi +Date: Wed Aug 25 10:23:48 2021 -0400 + + Translator: Don't promote precision from initializer + + Take the following GLSL code: + + precision mediump float; + uniform highp float u; + + float x = u; + + When `x` is declared, its precision is mediump due to + `precision mediump float`. Its initializer (`u`) however is highp. + Previously, ANGLE generated the following code to ensure the precision + of the initializer is applied to the variable: + + highp float x = u; + + Compiling the same code with glslang and looking at the SPIR-V (both + SPIR-V for OpenGL and SPIR-V for Vulkan), such a promotion is not done. + The generated SPIR-V is equivalent to: + + mediump float x = u; + + This change aligns ANGLE's output with glslang's by outputting the + precision of the variable itself instead of the precision of the + assignment (which is highp due to promotion from the two operands). + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I6f338a865c0a7710329fc13bc171fd245dd30b31 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118965 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 1fc754b02698ebb28c764392c539fdfb814ae528 +Author: Jamie Madill +Date: Wed Aug 25 08:34:36 2021 -0400 + + GetTexImage: Read back depth from combined depth/stencil. + + This at least allows ANGLE to verify some of the depth/stencil + pixel data, when using trace serialization. The correct behaviour + would be to pack depth/stencil the same way as we unpack it. + + Bug: angleproject:4688 + Bug: angleproject:5133 + Change-Id: I5fc6649f577c7bd07aafabc9717c8235a5429e10 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118267 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 0d80bc8c42ab5facc8e9426486d83b4c4b4d950e +Author: Ian Elliott +Date: Wed Aug 25 13:47:05 2021 -0600 + + Suppress EGLBlobCacheTest.FragmentOutputLocationKey on Metal + + EGLBlobCacheTest.FragmentOutputLocationKey is flaky on mac-rel + + Bug: angleproject:6318 + Change-Id: I67c8f09ae75498d29f923d5c2d6cd52ca86bc249 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119679 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit bd5ac5df279145284f74c6664a8b8145bce87220 +Author: Ian Elliott +Date: Wed Aug 25 13:30:55 2021 -0600 + + Suppress MultithreadingTest.MultiContextClear on Linux+Nvidia + + MultithreadingTest.MultiCreateContext/ES3_Vulkan_NoVirtual is flaky on + "Linux FYI GPU TSAN Release" with linux-clang-rel NVIDIA, so it's + being suppressed for now. + + Bug: angleproject:5945 + Change-Id: I7f169641e19c893542ad8a51b81861b38d16a587 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119677 + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 6290a86b2741522d8c86cf8aa5cd62ea33e4b6d9 +Author: Jamie Madill +Date: Wed Aug 25 09:34:19 2021 -0400 + + Capture/Replay Tests: Add lock around ninja calls. + + This should prevent huge numbers of calls to goma from causing test + flakiness. Uses the Python multiprocessing.lock. + + Bug: angleproject:6299 + Change-Id: I60fb38aaad363204de12d06f9d155bacb7ddd928 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118269 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 1b2febb9b7f726a113c80e40b9729a9350ab70df +Author: Jamie Madill +Date: Mon Aug 23 12:39:16 2021 -0400 + + Trace Tests: Refactor calibration logic. + + Instead of calling glFinish every step we now run a few warmup loops + to try and figure out the right step interval. On each run we refine + the step interval until we reach a number that completes in the + specific time after a single glFinish call. This method will use the + specified test time much more consistenty. + + Also a couple other improvements. Will use more test time on the bots + because previously they were using a calibration/warmup time of 1 + second per run loop, and this bumps it up to 3 per run loop. + + Long explanation below. + + What we did before: + + step() + glFinish() + step() + glFinish() + .. repeat for "gCalibrationTime" seconds + then take the number of steps, the actual time ran, and compute an + estimate for "mStepsToRun". + + When we run for real, we go: + + step() + step() + step() + .. repeat for "mStepsToRun" steps. + glFinish() + + this has an obvious performance difference, because after each step() + (one frame in a trace) you had a complete stall. + + The new code first does the above to compute a tentative mStepsToRun, + then uses the results of the second run to compute a much more accurate + mStepsToRun by using the "actual" time it took to run the estimate. + + Bug: angleproject:6090 + Change-Id: I0ff19873580e13f2af5a145a21f5b1c59fb15795 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114606 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit c4d4bd36936176fa775e98dc7e9b5bc1ee45bf42 +Author: Gert Wollny +Date: Tue Aug 24 09:13:41 2021 +0200 + + Capture/Replay: Add ES3_Vulkan_SwiftShader expectations + + Bug: angleproject:6180 + Change-Id: I47d68d8a6e21fa4b89e48898f27c365b51f70404 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118547 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 47279c726e5ac0f5574c4796d6251b6d1614a566 +Author: Alexey Knyazev +Date: Sun Aug 15 23:20:32 2021 +0400 + + Adjust compressed texture validation; add test + + - Format check happens before target check to accommodate + for unknown / disabled format enums. + - PVRTC1 and ETC1 enums are not allowed for 2D Array + and 3D targets. + - PVRTC1 sRGB formats require enabling two extensions. + - New noCompressedTexture3D limitation for older Metal + versions. + + The test checks that only the appropriate entry points + are affected after enabling compressed texture extensions. + + Bug: angleproject:5731, angleproject:6280 + Change-Id: I4943cd3a82f60f9348215caa8639e0bc3e8b45db + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094018 + Reviewed-by: Alexey Knyazev + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + Commit-Queue: Jamie Madill + +commit aad1bd6833c3a0044eadd451eef12e3b5e89c6c0 +Author: Takuto Ikuta +Date: Tue Aug 24 14:22:45 2021 +0900 + + remove swarming_client + + Python client is deprecated. + + This removes all the reference in this repository. + https://source.chromium.org/search?q=swarming_client&sq=&ss=chromium%2Fchromium%2Fsrc:third_party%2Fangle%2F + + Bug: chromium:984869 + Change-Id: Ic165f4a637208b914a057257e9e73ab251df9c53 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114154 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 1bc22a79a123bc04e1f626bf370be4da081c00f1 +Author: angle-autoroll +Date: Wed Aug 25 10:01:56 2021 +0000 + + Roll SwiftShader from 6aad52e1aef6 to e32890c54793 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/6aad52e1aef6..e32890c54793 + + 2021-08-23 capn@google.com Fix Subzero Optimizer run time variability + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I80f3a200c560ef99cd9af8a619988aa531a1408a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116964 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 28453e119e1b1ad6915a8e2e29d74c3074e7a811 +Author: angle-autoroll +Date: Wed Aug 25 07:01:26 2021 +0000 + + Roll Chromium from 2136fe7a73f0 to f03e89d82d9f (870 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/2136fe7a73f0..f03e89d82d9f + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/3d596a3537..27f0221c9b + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/ffda0347a4..996cd744d6 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/56ae8bbfb2..545a3dabc0 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/eb31fd8aa1..1fcccaceef + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..77ae1d689a + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/52b4510cde..64a9f33bdd + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/f2eeaf2ef3..add20af232 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6002926a08..cb4a58d414 + * tools/luci-go: git_revision:24b519169c7848dbeae2dba04698c41666388a45..git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2 + * tools/luci-go: git_revision:24b519169c7848dbeae2dba04698c41666388a45..git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2 + * tools/luci-go: git_revision:24b519169c7848dbeae2dba04698c41666388a45..git_revision:e08764bfcf2e87425a025e3a1d196c5740385da2 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/bf467773c4..4ab0042cf0 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/35d7ec7c98..4b589c46b5 + * tools/skia_goldctl/linux: jQH5G1XR31QSX-Y7BEw3-HCqj-rqMbmFt8ia4QT9X_IC..piyuI_96IF7jF_1vY-tHI0jfepKADnKhEEILxpHKvz4C + * tools/skia_goldctl/mac: rBeQmF5YzW5gOYg2G0CKoVli5wQ536stUnVW9UXdTagC..hLDvCRtQ02S_V4ABz5oABBehzUF-j18kIHZwnU6gctYC + * tools/skia_goldctl/win: XTbWn-rB8RlBWCMTnyklV8yZV_fBb4VoUNOZ9dgtQJgC..AfrF2K3fb2csgVwLyDcljBC9fLFeLBpCqtTzxBiyMxgC + No update to Clang. + + Bug: angleproject:6245 + Tbr: ianelliott@google.com + Change-Id: Icf8a141c98eef6ff952be6f1764ad2988570c7d1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3117027 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 72ecb3711faf0a1e768ea995c89ccbbd4087bf8a +Author: Gert Wollny +Date: Tue Aug 24 11:17:12 2021 +0200 + + Capture/Replay: further rework of replay script: + + * Simplify the code by using dictionaries to store + the batch and final results + * Use unified result specifiers + * Group the unexpected result output by result type + + Bug: angleproject:6282 + Change-Id: I90107efdeb51e183aa122ef67d1a646c8c1fd86a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114655 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 96a48a30fc0759ddd4f8553b9423f3c14612e92a +Author: Cody Northrop +Date: Wed Aug 18 14:33:41 2021 -0600 + + FrameCapture: Only finish contexts that have been current + + The finish() was crashing during initial Fortnite debug. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: If8c7376c8ff3ee82581db40c5611309cf700c00d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105388 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 257ef4e287b0e78c534521a7532c93c443f4e4b6 +Author: Cody Northrop +Date: Tue Aug 17 16:26:46 2021 -0600 + + FrameCapture: Add more helpful texture errors + + Rather than asserting, print an error message that provides + some helpful details to guide capture triage. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: I03ee2a12fa1185698650643f8767cd758bd87a4d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105387 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 3408ea3ea402119928c78dcb5e5f56b3e0ca0502 +Author: Shahbaz Youssefi +Date: Tue Aug 24 11:41:42 2021 -0400 + + Translator: Fix precision of gl_FragCoord on ES3+ + + In ESSL100, gl_FragCoord is declared as mediump. In ESSL300+, it's + declared as highp. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I42583d07fb745421f195be95fa404c617227b02e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116307 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 03fdde066ffa8ada8eae710f376318b5d7b64fbf +Author: Cody Northrop +Date: Tue Aug 17 16:21:07 2021 -0600 + + FrameCapture: Adjust CopyImageSubData target + + Our PackedEnums don't line up exactly with the texture targets + used by glCopyImageSubData. Adjust the CUBE selection to use + a face instead. + + Test: Fortnite MEC + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: I855f9e68f3b78212ccb03d9e2ffe947084db85b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105386 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 800e82c6571daaffef51f0428767ec277dde958d +Author: Shahbaz Youssefi +Date: Mon Aug 23 11:05:23 2021 -0400 + + Translator: Validate precisions + + When declaring a variable, a struct field, function parameter etc, + there's a precision necessarily applied to the entity being declared. + AST Validation is added to enforce this. Intermediate nodes derive + their precision from these entities automatically. + + Consistency of intermediate nodes is not validated. This is because AST + transformations replace a node with a transformed one, and that may not + have the same precision. Take the following code: + + mediump float x = ...; + mediump float y = ...; + ... x + y ... + + and assume is transformed as such: + + highp float driver_uniform; + ... (x * driver_uniform) + y ... + + The addition was originally done in mediump, but would seemingly need to + be done in highp after transformation. There are a number of options + here: + + - Make sure that when nodes are replaced, the precision is unaffected. + This can be intrusive, requiring temp variables. + - Bubble up the new precision + - Accept the discrepancy + + ANGLE opts for the last option, which actually respects the original + shader's intended precision for operations, even if some transformation + needs to temporarily evaluate an expression at a higher precision. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Ibcde3a230de159157783b1c6d5ef1cd63ceb4d8f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114027 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit d240f1040cea7d990e81df47a642c51ccabe66c0 +Author: Jamie Madill +Date: Mon Aug 23 16:25:20 2021 -0400 + + Perf Tests: Update histogram units. + + Use "ms_smallerIsBetter" instead of "msBestFitFormat". This matches + the requirements of the online docs as well as ensuring the dashboard + knows which way to track the regressions. + + https://chromium.googlesource.com/catapult/+/HEAD/docs/histogram-set-json-format.md + + Bug: angleproject:6090 + Change-Id: I0b234725b55d4abb1dd1e8153e132fdbcbad1c60 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115225 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit a08b667d324dc1362bed1794a40297496da05454 +Author: Shahbaz Youssefi +Date: Tue Aug 24 12:13:23 2021 -0400 + + Translator: Stabilize autogenerated builtin function parameters + + When pruning the list of builtin function parameters, sorted() is used + to stabilize the result. This makes reviews of changes to the + autogenerated output easier. + + Bug: angleproject:4889 + Change-Id: I97afc31de2a62b34a0a8183bb5a47eab9e62d9fc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116306 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 411137bf2f582fcf0c31289cde27a7963afb7e90 +Author: Gregg Tavares +Date: Tue Aug 24 11:46:51 2021 -0700 + + Emit INFINITY for infinite constants + + GLSL had `v = 1.0e40` which was output as + `v = inff` in MSL. Changed to output + `v = INFINITY`. + + Fixes Tests: + + GLSLTest_ES3.LiteralInfinityOutput/ES3_Metal + GLSLTest_ES3.LiteralNegativeInfinityOutput/ES3_Metal + + Bug: angleproject:5505 + Change-Id: Ib651583e608351784dcd49d602a23b5ecb8475cb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116548 + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + Commit-Queue: Gregg Tavares + +commit 023867c8f568d1e1b2f0c614a571a5189481212e +Author: Cody Northrop +Date: Tue Aug 24 11:42:07 2021 -0600 + + Tests: Add Wordscapes trace + + Test: angle_perftests --gtest_filter="*wordscapes*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/197646838 + Bug: angleproject:6310 + Change-Id: Idb5b8fe7e30f93ab0da0a749ee691eaeed4eac63 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116367 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 460618ad02d253832e691e3ae7b40c2e2e4a33f1 +Author: Tim Van Patten +Date: Fri Aug 20 18:34:10 2021 -0600 + + Refactor EGLMultiThreadSteps.h -> MultiThreadSteps.h + + The class ThreadSynchronization is very useful when synchronizing + multiple threads in ANGLE tests, so it's being moved from + egl_tests/EGLMultiThreadSteps.h to test_utils/MultiThreadSteps.h. + + Bug: angleproject:5971 + Change-Id: I5df469aa68b79cf72d95e0276f42ab33a091314e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111887 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 5df7c7da71ff86dffa2a990ee3416cc983fc1c70 +Author: Ian Elliott +Date: Tue Aug 24 09:15:48 2021 -0600 + + Add Cody, Charlie, and Ian to OWNERS + + Bug: angleproject:0 + Change-Id: I6b9c9c6d8451ad22912710cc2c80691fc371d403 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115921 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit 0e06d2f3ff4a6ffd845c65973085f84814f3c204 +Author: Cody Northrop +Date: Mon Aug 23 20:18:48 2021 -0600 + + Tests: Add Scrabble Go trace + + Test: angle_perftests --gtest_filter="*scrabble_go*" + Bug: b/197580447 + Bug: angleproject:6308 + Change-Id: I624c5f201dbadb6b51fe39cbb832da2454c3cb39 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114492 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 637e543ffcfe69461363eb81551458e34f41e124 +Author: Gert Wollny +Date: Mon Aug 23 13:28:52 2021 +0200 + + Capture/Replay: beautify the result output + + Instead of writing a diff between expected and real output + list the tests that have results that differ from the + expectations with their real and expected results. + + While at it also clean up the result printing a bit. + + Bug: angleproject:6282 + Change-Id: Id95de9aa659b39f3a2fe3f63402e285ad875a4e7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3113553 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit a141cb52458dcd26b2b4b02e3827522239a16086 +Author: Gregg Tavares +Date: Mon Aug 23 13:52:57 2021 -0700 + + Test vector and matrix scalarization does not affect output + + Vector and matrix scalarization was turned off because + it affects the rendering output. We need to turn it + back on in some form for Metal. This test is added to + check that rendering output is not affected. + + Test adapted from WebGL CTS test + https://github.com/KhronosGroup/WebGL/pull/3214 + + Bug: angleproject:6306 + Change-Id: Ic1db18920064726761d6168f9dd5111772028598 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115013 + Commit-Queue: Gregg Tavares + Reviewed-by: Kenneth Russell + +commit 13e521241115ba59964213f20672ec86c7609f9e +Author: Jamie Madill +Date: Mon Aug 23 08:44:13 2021 -0400 + + ANGLEPerfTest: Fix a couple comment typos. + + Bug: angleproject:6090 + Change-Id: I2c1a2f4c6b25bb1d4e462bcb20bd788529e255e1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114605 + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 259ae49ca9b0186ee27cdcdce0c66ab465a1ec92 +Author: Jamie Madill +Date: Fri Aug 20 10:51:31 2021 -0400 + + Capture/Replay: Isolate trace export definitions. + + This small fix to the export header means we no longer include + the "restricted_traces_autogen.h" in each and every trace file. + That means when we change/add/remove a trace we no longer need to + recompile each and every trace. Speeds up iteration time when + working with the traces. + + Also fixes inconsistent path generation on Windows. + + Bug: angleproject:5133 + Change-Id: I357d65477a683455d01379379e2e98431af2ed55 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110749 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 8933a6e3e059a2ba1a88aa7ee71f6ded43fe06c0 +Author: Gert Wollny +Date: Tue Aug 17 12:09:21 2021 +0200 + + Capture/Replay: Update expectation bug number + + Bug: angleproject:6166 + Change-Id: I7bdb1778fc78d9c1e433b9658225322ff6c21030 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097380 + Commit-Queue: Gert Wollny + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 14656a5deb1c7f131737afcfedce71494d287822 +Author: Jamie Madill +Date: Mon Aug 23 07:23:29 2021 -0400 + + Skip all dEQP-EGL.functional.resize.surface_size on Linux/NV. + + This seems to be a persistent flake in the test suite. + + Bug: angleproject:5753 + Change-Id: I4917ea54bba5ae1a01606038698e099ee8559f47 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3112198 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 27b6a42279f1cb0a3f8203d5f9473fdf5a36006d +Author: angle-autoroll +Date: Mon Aug 23 10:01:45 2021 +0000 + + Roll SwiftShader from 9eb5acaba94c to 6aad52e1aef6 (5 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/9eb5acaba94c..6aad52e1aef6 + + 2021-08-23 capn@google.com Fix Chromium's swiftshader_unittests + 2021-08-20 capn@google.com Deprecate libEGL and libGLESv2 CMake build targets + 2021-08-20 srisser@google.com Remove Config::Edit::None default object + 2021-08-20 lgrey@chromium.org Mac: use default visibility + 2021-08-20 andre.kempe@arm.com Add PA and BTI to SwiftShader + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I96d8066188b6c02f5b69fb7194c4815541eb62d2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3112496 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 49a1d9ff553a36a0ab0ddb57b316a1fa76b4c72c +Author: angle-autoroll +Date: Mon Aug 23 10:01:58 2021 +0000 + + Roll vulkan-deps from 1dec6c3c106b to 1262ad6fdd3f (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/1dec6c3c106b..1262ad6fdd3f + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/bab4e5911b..c062b6b852 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b3f17dc515..931cff66d7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I0eaa013fb32dd07d2d223ada25d37dc1eae73f40 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3113446 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 210773db1acea921f5dd5645cc59788a7124ad98 +Author: Shahbaz Youssefi +Date: Thu Aug 5 10:41:59 2021 -0400 + + Translator: Be more explicit about precisions + + GLSL ES requires that every symbol (variable, block member, function + parameter and return value) is appropriately qualified with a precision, + either individually or through the global precision specifier. + + Some tree transformations however produced symbols with EbpUndefined + precision. In text GLSL output, these would produce unqualified symbols + which was often incorrect. + + In this change, the transformations are made to produce explicit / more + consistent precisions. The validation (that caught these issues) is not + included in this change as there are still a few corner cases left to + address. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Icca8a0a5476f8646226e7243aa8f501f44acc164 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075127 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit b9709a46bf4561767ecbccda37c2e4820df3de65 +Author: angle-autoroll +Date: Mon Aug 23 07:01:15 2021 +0000 + + Roll Chromium from 873a11ee2df8 to 2136fe7a73f0 (293 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/873a11ee2df8..2136fe7a73f0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/4636eb3d7e..3d596a3537 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/e4b161d43b..ffda0347a4 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/07ee0ecea6..56ae8bbfb2 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ebf22ea4f9 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/2b4ec95534..52b4510cde + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4893aadcb6..35d7ec7c98 + No update to Clang. + + Bug: None + Tbr: jmadill@google.com + Change-Id: Ia5878d8d3c3ff27e2fe03b7cacb510a9a57e929b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3112653 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8c05fd4fe56a42fb8e8d91b928e89a808da0557e +Author: Alexey Knyazev +Date: Sat Aug 21 23:03:16 2021 +0400 + + Add ASTC & PVRTC to GLenumToString + + Bug: angleproject:4093 + Change-Id: Iab19fddd2e0680a39741d2ef0b9003af5a808d49 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110552 + Reviewed-by: Alexey Knyazev + Reviewed-by: Jamie Madill + Commit-Queue: Alexey Knyazev + +commit 2f45d93d5be7731488c47bb597834e665b9ed1a6 +Author: Jamie Madill +Date: Wed Aug 18 16:58:44 2021 -0400 + + Capture/Replay: Init shader outputs during self-tests. + + This forces all uninitialized variables to have default values. + For instance if the application doesn't initialize the output + color, or a varying that's use in the output, this will ensure we + don't use any undefined values in the computation. + + Found when working on a re-trace of T-Rex, which doesn't write to + the alpha channel in the final rendering pass. Also fixes undefined + values in GLSLTest.InactiveVaryingInVertexActiveInFragment. + + Bug: angleproject:5133 + Change-Id: Ia291338e5adf23dab5263cb2ebe737dc05852d3e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110225 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit b196eec017ee24b69b639b229a0ddd265741a1b9 +Author: Jamie Madill +Date: Fri Aug 20 12:32:03 2021 -0400 + + translator: Fix InitializeVariables with gl_ClipDistance. + + The extension allows for the shader to redeclare this variable with + a different size. This would sometimes put the tree in an inconsistent + state when used with the InitializeVariables feature. Fix this by using + the user declaration of gl_ClipDistance when available. + + Found when working on trace validation, where using the init output + variables option in the compiler would then cause tree validation to + fail for one specific test. + + Test: ClipDistanceTest.ThreeClipDistancesRedeclared + Bug: angleproject:5133 + Change-Id: I42c9bfbe313826ac5d391068d9fc18eb5793375f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110752 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit e30dd478f0a39d797b5628cfa27a5f3717075ac1 +Author: Jamie Madill +Date: Fri Aug 20 17:10:51 2021 -0400 + + infra: Update Milo perf short names. + + Use the name of the Android device or GPU manufacturer. + + Bug: angleproject:6090 + Change-Id: I2e26586578c51f9a714fed23586854bb14030242 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111028 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 6a956ef90784b7e2a2c483e2e9b882706ee9d09b +Author: Jamie Madill +Date: Fri Aug 20 17:04:01 2021 -0400 + + infra: Update angle_mb_config.pyl with new perf names. + + Was missing from the prior CL. + + Bug: angleproject:6090 + Change-Id: I454605fad48690a2d84a2fe3a436140931e2cb9e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111027 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit ba6b8287d3c8a391006834a83520243996418bd7 +Author: angle-autoroll +Date: Fri Aug 20 18:58:42 2021 +0000 + + Roll Chromium from 40a15381a86b to 873a11ee2df8 (930 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/40a15381a86b..873a11ee2df8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/02ca29f24d..4636eb3d7e + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/6f9b470988..88e9a2946f + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/8452f0657d..e4b161d43b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/c5717aa498..07ee0ecea6 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/dc7fdb25d6..eb31fd8aa1 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/38a0c99ec5..dd8bbe8204 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a5d06af47f + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9a0189cd7a..2b4ec95534 + * third_party/jinja2: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/6ac5f7effd..6db8da1615 + * third_party/r8: Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC..version:2@3.1.16 + * tools/luci-go: git_revision:a5735121c6339dee9b1b3644535e230744daaac9..git_revision:24b519169c7848dbeae2dba04698c41666388a45 + * tools/luci-go: git_revision:a5735121c6339dee9b1b3644535e230744daaac9..git_revision:24b519169c7848dbeae2dba04698c41666388a45 + * tools/luci-go: git_revision:a5735121c6339dee9b1b3644535e230744daaac9..git_revision:24b519169c7848dbeae2dba04698c41666388a45 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/128a63e365..bf467773c4 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/494ba2a758..cf7ada42dc + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/447b548acd..4893aadcb6 + No update to Clang. + + Bug: None + Tbr: jmadill@google.com,ynovikov@google.com + Change-Id: I3240bfab01a73b31ba6108046d56fa291c8dda95 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111453 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6c1ad60bd8206f66db97aa75d1e41f425317ab3d +Author: Jamie Madill +Date: Fri Aug 20 09:30:47 2021 -0400 + + infra: Make perf builders GPU-config-specific. + + Separating only by OS makes the perf dashboard uploads land in the + same bucket for NVIDIA and Intel results. The two are intermingled + on the dashboards. Split this by separating the GPU configs into + their own builders. + + Must land before http://crrev.com/c/3110765 + + Bug: angleproject:6090 + Change-Id: Icee3b19d3462977b4ec86bfe08d7c44431426d24 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110745 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit d2d1f41fdc05b91d8ed19637eb089b51f33b709c +Author: Jamie Madill +Date: Mon Aug 16 08:05:55 2021 -0400 + + Add EGL extension to create window with a swap interval set. + + On Vulkan this allows creating a window once without needing to + recreate the swapChain after we specify the swap interval. + + Also adds a simple regression test and EGL enum assertion + printing formatting. + + Bug: angleproject:5133 + Change-Id: I72af124cb0e8f7cddfa810988a9862c0f36a0e46 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097806 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit f65d6acc973f566edb0230e44a50f137928e49a9 +Author: Jamie Madill +Date: Wed Aug 18 12:20:40 2021 -0400 + + Test Runner: Determine slow tests from test expectations. + + This updates the test harness to handle slow test based on the TIMEOUT + test expectation. It removes the "registerSlowTests" API in favor of + using the test expectation files. + + Also updates some of the timeout handling for various angle tests, + including on SwiftShader for multithreading tests. + + Increases the timeout for tests in a batch to attempt to fix the + problem of the first test being much slower. + + Bug: angleproject:6261 + Change-Id: I7427344da5a0c1ea26d8c2d6eb0e9be2557b56e6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104007 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Yuly Novikov + +commit 0adaabfc491472cc8547ce867d2cbd3f72fe1652 +Author: Jamie Madill +Date: Wed Aug 18 16:29:12 2021 -0400 + + Ensure RGB10A2 format properly uses 4 pixel bytes. + + This fixes a problem with capture/replay where using pixelBytes was + returning a 3 byte stride for this 4 byte format. Note this format + is a bit odd, because it forces the alpha to 1.0, but the format + is specified as using 4 byte upload width, with 2 bits unused. + + Also adds compile and run-time checking to ensure our bits are always + multiples of 8. This flushed out an issue with 565 formats which were + using an extra 1 bit for alpha. + + Test: TexureUploadFormatTest + Bug: angleproject:5133 + Change-Id: Ia41e86a4980fc041bb1a19b548c32329fa486d03 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104686 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit fc09350ab0cd5b8bffbeca66dbd5c3218dd9edef +Author: Geoff Lang +Date: Wed Aug 18 12:24:39 2021 -0400 + + GL: Update VertexArrayGL to use ANGLE_GL_TRY. + + Bug: angleproject:3020 + Change-Id: If3409d0d4bc9fdc5c990cece92461e2526c752c9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1809058 + Reviewed-by: Jamie Madill + Reviewed-by: Peng Huang + Commit-Queue: Geoff Lang + +commit f6b8db1d7cc38705be4d293d76837442db5e6058 +Author: Jamie Madill +Date: Wed Aug 18 15:20:10 2021 -0400 + + Capture/Replay: Don't access OOB in TexImage2D. + + The last row of pixels is treated specially because we don't need + to round up to the unpack alignment. This fixes an ASAN error with + some 1x1 texture tests with small-sized formats. + + Test: TextureUploadFormatTest + Bug: angleproject:5133 + Change-Id: I4c56958b83406aff380bda56b90d3258020a1f99 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104685 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit e2485d60f5dfb5feb6feb67fec81e7a65dd6a45f +Author: Gert Wollny +Date: Sat Aug 14 17:40:14 2021 +0200 + + Capture/Replay: Add the layer to the texture data label string + + Otherwise the output map will seperate the hash from the raw data + when multiple layers are written for the same mip-map level. + + Bug: angleproject:5133 + Change-Id: I7636b6dc66f7ec31958e6eb44591c0a9b9280b00 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093814 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit c72e92645a202081f06f0cdfccc6d0d7d396e915 +Author: angle-autoroll +Date: Fri Aug 20 10:01:58 2021 +0000 + + Roll vulkan-deps from 4a1a688a34d6 to 1dec6c3c106b (3 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4a1a688a34d6..1dec6c3c106b + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/1ad8b71359..d699296b4d + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f6bb4bbc6c..b3f17dc515 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Id6d870efb085965b8c9742dc33a25c5719243ab3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3109711 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 54e311162ff31a7a0ce502c5476cda41ff73fee8 +Author: Gregg Tavares +Date: Thu Aug 19 15:02:16 2021 -0700 + + Add delimeter to attribute search + + Attributes are written in MSL as + + type nameOfAttrib __unassigned_attribute__ + + and then at link time a string substitution + replaces __unassigned_attribute__ + + The test had these attributes + + metal::float4 floatInput __unassigned_attribute__; + metal::uint4 uintInput __unassigned_attribute__; + metal::int4 intInput __unassigned_attribute__; + + and was searching for "intInput __unassigned_attribute__" + which matching "uintInput __unassigned_attribute__". + + Adding a space in front of the search string fixes the issue. + + This fixes this test: + WebGL2CompatibilityTest.VertexShaderAttributeTypeMismatch/ES3_Metal + + Bug: angleproject:5505 + Change-Id: Ide07e5120e88927b1fdeb3cc32b456a661092802 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3108339 + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + Commit-Queue: Gregg Tavares + +commit 6a8abffcbd8632b0f5dd7138697947e8ccd79403 +Author: Jonathan Ross +Date: Thu Aug 19 17:24:24 2021 +0000 + + Turn off ProgramBinaryES3Test direct-to-Metal tests + + We enabled these tests, however they are failing consistently on Intel. + + Original change: + https://chromium-review.googlesource.com/c/angle/angle/+/3105442 + Bug: angleproject:5505 + Bug: angleproject:6301 + Change-Id: Iddc36400d55e8b06b15663c2d9bc00df7e04ce02 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3107508 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 762db3c096da64a237dc2d67875023924368316c +Author: Jamie Madill +Date: Wed Aug 18 09:06:42 2021 -0400 + + Capture/Replay: Improvements to testing script. + + Using new Python APIs for multiprocessing logging. Also updates + some logging to be simpler / more consistent. Also a few other + small fixes. + + Bug: angleproject:5133 + Change-Id: I4acbc9173a3891989f409cc499c8e6431e712c0c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104006 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit b2cb9e50033dfb77b1646ea6572409f9aee21e0e +Author: Jamie Madill +Date: Thu Aug 19 07:37:28 2021 -0400 + + Capture/Replay: Fix extra frame captured with trigger. + + A prior CL erroneously removed the -1 from the trigger frame count. + Restore this to ensure we capture the right number of frames. + + Bug: angleproject:5133 + Change-Id: Ic24404fbfeb8578badd6204db8316f081eafaa53 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104693 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 588897992f7032418d308d88454572ac8c77600c +Author: angle-autoroll +Date: Thu Aug 19 12:10:43 2021 +0000 + + Roll SwiftShader from 803ceb58c92c to 9eb5acaba94c (4 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/803ceb58c92c..9eb5acaba94c + + 2021-08-19 sugoi@google.com Add external memory parameter to size computations + 2021-08-19 sugoi@google.com Remove useless 'target' parameter + 2021-08-19 capn@google.com Separate analysis info from SPIR-V execution modes + 2021-08-18 capn@google.com Update Marl to 49602432d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: If60bba4501248b549f3713af8604f3a19176409a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3106172 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 49af677aef0b0187ed020bc78fdc3e95aaaeefdf +Author: Jamie Madill +Date: Mon Aug 16 07:59:18 2021 -0400 + + Capture/Replay: Update serialization logic. + + - Uses more common toString methods instead of custom ones. + - Uses enum to string in more places intsead of numeric enums. + - Adds missing group scopes in several places. + - Skips serializing empty image levels. + + Bug: angleproject:5133 + Change-Id: I2c9523981aba4ec0afb5f0623cb34154db263e6b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097805 + Reviewed-by: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit f219db4824fbacf4e78c1350b6549fd7f37680f3 +Author: angle-autoroll +Date: Thu Aug 19 10:01:58 2021 +0000 + + Roll vulkan-deps from 370f9682fb33 to 4a1a688a34d6 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/370f9682fb33..4a1a688a34d6 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/7ca4dfa061..a4599ef756 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/926ff6d1ba..1ad8b71359 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/25679b5cb7..f6bb4bbc6c + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Icd10e9c930281a7675ea9b3f38225470d08cebb3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3106170 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8ffb4602b3f42c0409f9fd686bfeb896d5d74914 +Author: Kenneth Russell +Date: Wed Aug 18 16:55:56 2021 -0700 + + Turn on the first few direct-to-Metal tests by default. + + All of the subtests of these previously-asserting tests are passing + with --bot-mode: + + ProgramBinaryES3Test + UniformTest + WebGLGLSLTest + + so start running them on ANGLE's CQ. + + Bug: angleproject:5505 + Change-Id: Ibdaa814cec846379e2c073117efa816fc871be33 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105442 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 5ca0953de6379822e9e5c563b03bf1eb16606c82 +Author: Gregg Tavares +Date: Wed Aug 18 13:22:22 2021 -0700 + + Use the correct attribute locations in Metal + + Fixes these tests: + + BlendIntegerTest.MRTSigned/ES3_Metal + BlendIntegerTest.MRTUnsigned/ES3_Metal + DrawBuffersTest.Gaps/ES3_Metal + DrawBuffersTest.BlendWithGaps/ES3_Metal + DrawBuffersTest.FirstAndLast/ES3_Metal + DrawBuffersTest.FirstHalfNULL/ES3_Metal + DrawBuffersWebGL2Test.TwoProgramsWithDifferentOutputsAndClear/ES3_Metal + WebGLCompatibilityTest.DrawBuffers/ES3_Metal + + Bug: angleproject:5505 + Change-Id: I9ea82a8c7a0c5bbc78eb69eb92552909e3f437f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105439 + Reviewed-by: Kenneth Russell + Commit-Queue: Kenneth Russell + +commit eb458fbe59eacba235087d55b95d766035d05673 +Author: Alexey Knyazev +Date: Wed Aug 18 14:17:31 2021 +0400 + + GL: Add emulateImmutableCompressedTexture3D workaround + + The workaround replaces glTexStorage3D with a series + of glCompressedTexImage3D calls. + + Bug: chromium:1060012 + Change-Id: I08e026e68dd697654cc4ab8feb190a35e56ea133 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103070 + Commit-Queue: Alexey Knyazev + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + +commit 02005fdc89ae102e1fb921de046439f9e22e359c +Author: Jamie Madill +Date: Wed Aug 18 12:22:58 2021 -0400 + + Fix Texture2DTest.TextureSize. + + This CL fixes a number of issues: fixes the calls to texture + size query, fixes an uninitialized memory read, fixes some + incomplete texture cases, and fixes an out-of-bounds with the + color array. It also cleans up the test logic, and splits the + test into four sub-tests so it runs more smoothly in CI. + + Noticed while working on the capture/replay harness with ASAN. + + Bug: angleproject:5982 + Change-Id: I15459381b92332db5adad2bd91c0b9eb0f8b5961 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104005 + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit b2238a3c14dfd50f1bc389359a5dead75a641010 +Author: Jamie Madill +Date: Mon Aug 16 08:23:00 2021 -0400 + + Capture/Replay: MEC consistency improvements. + + Fixes a few very small bugs in MEC. The current program wasn't always + captured correctly. Also texture bindings were not always left in the + right state. Fixes this by tracking the currently bound GL state + between the "shared" and "aux" MEC capture functions. Also updates the + vertex array capture to detect when to use ES 2.0 semantics. ES 3.1 + is left unimplemented as it was before. + + Bug: angleproject:5133 + Change-Id: I5f03b8ffbdccec2664fda4698581b166a36fabdd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097809 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 839d5318fcc3688af1335b063a52166d858158dc +Author: Jamie Madill +Date: Mon Aug 16 08:29:28 2021 -0400 + + Capture/Replay: Changes to MEC first frame capture. + + Recent changes made it so it was impossible to trigger MEC *after* + the first frame and *before* the second frame. Instead it was only + possible to capture *before* the first frame or *after* the second + frame. Makes it possible for the retracing script to do identical + captures. + + Also includes a number of refactorings to make it simpler to follow + the code, including renaming methods, and removing some extra + output files. + + Bug: angleproject:5133 + Change-Id: Ice6a189eb9f4d53e8ee1ba39beb537af2ef5fd9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097807 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 2967166e5e034614c4f2c4dbd2a37fdcdba3f07d +Author: Yuly Novikov +Date: Wed Aug 4 19:31:54 2021 -0400 + + Reland "Properly report xcb_connect failures in DisplayVkXcb" + + This is a reland of 81bee2e7f6deeda15691dd0b7fca90626b66bfb8 + + Changes for the reland: + Do not attempt to use Xcb if DISPLAY is not defined - for headless ozone. + + Original change's description: + > Properly report xcb_connect failures in DisplayVkXcb + > + > Bug: chromium:1223431 + > Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383 + > Reviewed-by: Jamie Madill + > Commit-Queue: Yuly Novikov + + Bug: chromium:1223431 + Change-Id: I19be7d10cbd3692e1de6458bc0e2db5996a755af + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099674 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit f2c968874230190cc1d7719f77b07abccd46a20a +Author: Gert Wollny +Date: Mon Aug 16 15:23:34 2021 +0200 + + Capture/Replay: Pop only after using values it in endGroup + + When running the replay in valgrind the use of an undefined + value in the JsonSerializer::endGroup shows that 'name' value + on the stack is handled in an unexpected fashion, i.e + the pop seems to invalidate the values that should have + already been moved. + + Using the reference of the top() values and doing pop() only + after the new group entry has been created avoids this. + + Bug: angleproject:6180 + Change-Id: I8e5f8dd3d14928d4763faabe236379b40a4f6f4c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093815 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 56a4dce62fa6ff6fa25da67b755fd635427740b2 +Author: angle-autoroll +Date: Wed Aug 18 14:39:31 2021 +0000 + + Roll Chromium from df8e98bc8f6e to 40a15381a86b (437 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/df8e98bc8f6e..40a15381a86b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/4ea12fb9e6..02ca29f24d + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/671803fd96..8452f0657d + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/53ffcd7342..c5717aa498 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/5d3907f90f..dc7fdb25d6 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..77a7089299 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/af70e1bf3b..9a0189cd7a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1a399d5b62..128a63e365 + No update to Clang. + + Bug: angleproject:5543,angleproject:6037,angleproject:6245 + Tbr: jmadill@google.com + Change-Id: Ic4d71e98c678648e19a085ec1dafef7045930748 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3101478 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ffb974d6508bbfc3e09678cad044212bde0859fc +Author: angle-autoroll +Date: Wed Aug 18 13:10:59 2021 +0000 + + Roll vulkan-deps from 59563d9384fb to 370f9682fb33 (10 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/59563d9384fb..370f9682fb33 + + Changed dependencies: + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/e71feddb3f..449bc986ba + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/b2e36b67ec..926ff6d1ba + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/521f91d793..c5b7a2fa18 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8a3a1676ef..90fd66f60f + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/415320f80f..5805106266 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d6be28f1b1..25679b5cb7 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I4e7933ee13759a78fccbc806237ef25d9b7b946c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3101476 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ad286e7111e796c93b1d4cd3bed6017a43a6fab6 +Author: Jamie Madill +Date: Tue Aug 17 10:43:47 2021 -0400 + + Capture/Replay: Clean up ResourceTracker access. + + This reduces the boilerplate needed to tracked genned/deleted + resources. + + Refactoring change only. + + Bug: angleproject:5133 + Change-Id: I81f8877b2c308fe9d4136999f3ca63371a070720 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100591 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 9872e5af32c31064b0a80eb5bf3fc8ce70db0dbf +Author: Jamie Madill +Date: Wed Aug 18 07:56:38 2021 -0400 + + Vulkan: Suppress layered FB validation error. + + This is popping up with a new roll of the VVL. Instead of fixing it, + we can disable it for now. + + Bug: angleproject:6293 + Change-Id: I6cd12a24b26a4f536db16631e198317e8c4d9fcc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103505 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e3f2acb978d84b9da06e66515d2183b82fa29865 +Author: Jamie Madill +Date: Wed Aug 18 08:03:26 2021 -0400 + + Trace Tests: Skip sakura school sim on Win/Intel. + + This test seems to produce non-deterministic rendering/flakiness. + + Bug: angleproject:6294 + Change-Id: I5cb72318c865f21814d114fd13a18dfd44e5db60 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103506 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 7e040640ef1ce4dcc2c7b17c851b2536129405e1 +Author: Jamie Madill +Date: Mon Aug 16 08:43:17 2021 -0400 + + libANGLE: Minor cleanups. + + Removes a couple duplicated cached members in gl::State. Also a few + other small refactorings. + + Bug: angleproject:5133 + Change-Id: I0c6cd4c6544ef1690a4ce95d40dac70c688c7092 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097808 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit cc52e7cde43cbac98787e885ab1fd86127165b66 +Author: Brandon Schade +Date: Mon Apr 19 21:37:20 2021 -0700 + + Prevent separable programs from relying on attached shaders + + Previously, several linking functions were reliant on the + HasAttachedShaders interface. The information stored there has been + moved to ProgramExecutable. + + Linking information such as uniforms and uniform blocks from + attached shaders is now also stored in temporary pending variables + inside ProgramExecutable. + + Bug: angleproject:5506 + Test: ProgramPipelineTest31.VaryingLocationMismatch* + Test: GeometryShaderTest.RecompileSeparableVSWithVaryings* + Test: ProgramBinaryES31Test.SeparableProgramLinkedUniforms* + Change-Id: I93591431959c1c4c547ada92ec358369a3417723 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909760 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Brandon Schade + +commit d55d57ac5632fa8642c0e9b75f8d93491c4c1934 +Author: Jamie Madill +Date: Tue Aug 17 14:16:07 2021 -0400 + + GN: Disable unreachable code warnings in GLES 1 tests. + + Bug: chromium:1240679 + Change-Id: Ib140cbd32386a7836acf9a4f477693b14bf3c6d1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100590 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 63bb0e53680b0939d405746b09c5ec82ddd962b5 +Author: Gregg Tavares +Date: Mon Aug 16 16:30:32 2021 -0700 + + Add depth fix to convert from GL to Metal + + Vertex shaders need to convert from GL's -1 to +1 z range + to Metal's 0 to +1 z range with: + + z = (z + w) * 0.5 + + This code is being upstreamed from WebKit. + + It fixes these end to end tests. + + BlitFramebufferTest.MultisampleDepthClear/ES3_Metal + BlitFramebufferTest.MultisampleDepthClear/ES3_Metal_NoStencilOutput + BlitFramebufferTest.BlitDepthStencilPixelByPixel/ES3_Metal + BlitFramebufferTest.BlitDepthStencilPixelByPixel/ES3_Metal_NoStencilOutput + ClearTest.ClearStencilMask/ES2_Metal + ClearTest.ClearStencilMask/ES3_Metal + ClearTestES3.ClearMultipleAttachmentsIndividually/ES3_Metal + ClearTestES3.MaskedClearHeterogeneousAttachments/ES3_Metal + ClearTestES3.ScissoredClearHeterogeneousAttachments/ES3_Metal + ClearTestES3.ClearBufferivStencilMask/ES3_Metal + ClearTestES3.ClearBufferfiNoStencilAttachment/ES3_Metal + MaskedScissoredClearTest.Test/ES2_Metal__clear_s + MaskedScissoredClearTest.Test/ES2_Metal__clear_s_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_s_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__clear_d + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_d + MaskedScissoredClearTest.Test/ES2_Metal__clear_ds + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_ds + MaskedScissoredClearTest.Test/ES2_Metal__clear_ds_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_ds_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__clear_cs + MaskedScissoredClearTest.Test/ES2_Metal__clear_cs_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cs_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__clear_cd + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cd + MaskedScissoredClearTest.Test/ES2_Metal__clear_cds + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cds + MaskedScissoredClearTest.Test/ES2_Metal__clear_cds_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cds_mask_s + MaskedScissoredClearTest.Test/ES2_Metal__clear_cs_mask_cs + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cs_mask_cs + MaskedScissoredClearTest.Test/ES2_Metal__clear_cd_mask_c + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cd_mask_c + MaskedScissoredClearTest.Test/ES2_Metal__clear_cds_mask_c + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cds_mask_c + MaskedScissoredClearTest.Test/ES2_Metal__clear_cds_mask_cs + MaskedScissoredClearTest.Test/ES2_Metal__scissored_clear_cds_mask_cs + MaskedScissoredClearTest.Test/ES3_Metal__clear_s + MaskedScissoredClearTest.Test/ES3_Metal__clear_s_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_s_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__clear_d + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_d + MaskedScissoredClearTest.Test/ES3_Metal__clear_ds + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_ds + MaskedScissoredClearTest.Test/ES3_Metal__clear_ds_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_ds_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__clear_cs + MaskedScissoredClearTest.Test/ES3_Metal__clear_cs_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cs_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__clear_cd + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cd + MaskedScissoredClearTest.Test/ES3_Metal__clear_cds + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cds + MaskedScissoredClearTest.Test/ES3_Metal__clear_cds_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cds_mask_s + MaskedScissoredClearTest.Test/ES3_Metal__clear_cs_mask_cs + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cs_mask_cs + MaskedScissoredClearTest.Test/ES3_Metal__clear_cd_mask_c + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cd_mask_c + MaskedScissoredClearTest.Test/ES3_Metal__clear_cds_mask_c + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cds_mask_c + MaskedScissoredClearTest.Test/ES3_Metal__clear_cds_mask_cs + MaskedScissoredClearTest.Test/ES3_Metal__scissored_clear_cds_mask_cs + DepthStencilFormatsTest.DepthTextureRender/ES2_Metal + DepthStencilFormatsTest.DepthBuffer16/ES2_Metal + DepthStencilFormatsTest.DepthBuffer24/ES2_Metal + DepthStencilFormatsTest.VerifyDepth32UploadData/ES2_Metal + DepthStencilFormatsTest.VerifyDepth16UploadData/ES2_Metal + TinyDepthStencilWorkaroundTest.DepthTexturesStick/ES3_Metal + DiscardFramebufferEXTTest.ClearDepthThenDrawWithDepthTestThenDiscard/ES2_Metal + DiscardFramebufferEXTTest.ClearDepthThenDrawWithDepthTestThenDiscard/ES3_Metal + + Bug: angleproject:5505 + Change-Id: I9b52bb46569678636afc6a243bfa8779f101b6af + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097161 + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + Commit-Queue: Kenneth Russell + +commit 162847ca3a9df21329107744aa3f580b2a4ed0eb +Author: Jamie Madill +Date: Tue Aug 17 13:26:06 2021 -0400 + + infra: Increase sharding in CI angle_perftests. + + The test shards right now are taking 20-30+ minutes. Sometimes they + time out on the test infra. Increase sharding because the overhead + from sharding is very small relative to the test time used by shards. + + Bug: angleproject:6090 + Change-Id: I45c7bf077da7242743559d68b45d45dbea18355e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100586 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 17d41054a9ea3f8864f3f9bbdb248b350d60b86f +Author: Jamie Madill +Date: Tue Aug 17 13:22:46 2021 -0400 + + Skip a flaky test on SwANGLE. + + The test was already marked flaky on Windows. Mark it TIMEOUT everywhere + since likely the root causes are the same. + + KHR-GLES31.core.arrays_of_arrays.SizedDeclarationsPrimitive + + Bug: angleproject:5755 + Change-Id: Ief208a5a2cb533e5ba4b88ef65e82a2a14dcf0b3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100585 + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 864b0204be83a3e036489de40e07768141551064 +Author: angle-autoroll +Date: Tue Aug 17 12:44:26 2021 +0000 + + Roll Chromium from aeae79104c34 to df8e98bc8f6e (460 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/aeae79104c34..df8e98bc8f6e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/a0d51919fe..4ea12fb9e6 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/6810b870e0..6f9b470988 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/c0ea7c3386..53ffcd7342 + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/9b466c11a1..2d100d89bb + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..77a7089299 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0c42eff6d1..af70e1bf3b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/f1ab49ba22..6002926a08 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2a295d6d76..447b548acd + Clang version changed llvmorg-14-init-1002-gb5e470aa:llvmorg-14-init-1380-gee659383 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/f1ab49ba228127b73e1e590a9687d7edfdc65151..6002926a08a57b7bd87c4f7780ce43981a320bbb/scripts/update.py + + Bug: angleproject:6281 + Tbr: jmadill@google.com + Change-Id: Ia6fae91c48e98daf6eeb474960dc8a7a59b2a55c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099885 + Bot-Commit: angle-autoroll + Commit-Queue: Jamie Madill + +commit 98e2410d3cc04b92ccc3ec91e184b0e06b08525d +Author: Jamie Madill +Date: Tue Aug 17 07:52:03 2021 -0400 + + dEQP: Remove Pixel 2/XL test expectations. + + We no longer support Vulkan on the P2. + + Bug: angleproject:2808 + Bug: angleproject:3683 + Bug: angleproject:3816 + Bug: angleproject:4024 + Bug: angleproject:4097 + Bug: angleproject:4159 + Bug: angleproject:4166 + Bug: angleproject:4194 + Bug: angleproject:4219 + Bug: angleproject:4344 + Bug: angleproject:4822 + Bug: angleproject:5340 + Bug: angleproject:5370 + Bug: angleproject:5572 + Bug: angleproject:6008 + Bug: b/161540999 + Change-Id: Ie2cb634201c2d604cb247eb0369d5e90d7600e8b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3098490 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit ae1882b97f4ab62defc3423af92962bc2a41f464 +Author: angle-autoroll +Date: Tue Aug 17 10:01:45 2021 +0000 + + Roll SwiftShader from 526b987888fb to 803ceb58c92c (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/526b987888fb..803ceb58c92c + + 2021-08-16 sugoi@google.com Xcb: Check if geom is valid before using it + 2021-08-16 capn@google.com Fix integer overflow in vertex buffer access robustness check + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Ifc8ff74a3bc55a04fcf6968be64de55b23dafe76 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099214 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 680ce669e4c32005060063c4d8d7ca5c882419fc +Author: angle-autoroll +Date: Tue Aug 17 10:01:58 2021 +0000 + + Roll vulkan-deps from 510c98092bc0 to 59563d9384fb (18 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/510c98092bc0..59563d9384fb + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/00b106e769..b2e36b67ec + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/de99f8f6be..8a3a1676ef + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d1f10bf970..d6be28f1b1 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I7892ee95335521af54023759d4599dd8c3210457 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099079 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7007e472f7049a45f5dfe8c84b14aea362d0f9ea +Author: Jamie Madill +Date: Tue Aug 17 07:11:49 2021 -0400 + + Manually roll android bundle tool. + + This is necessary to unblock the Chromium->ANGLE roll. + + Bug: angleproject:6287 + Change-Id: Ief694fbfd78f8f1d7d40ec7031747379fd288210 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099786 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 130a8b6366ee67bc632b8cbe244e954d11eb520e +Author: Jamie Madill +Date: Mon Aug 16 17:09:10 2021 -0400 + + Perf Runner: Properly merge histograms. + + The prior method was emitting 5 histograms per test. The new script + method merges the 5 histogram samples together and recomputes the + running statistics. + + Should improve reporting on the dashboard. + + Bug: angleproject:6090 + Change-Id: I58a5e020f3a3257a8545df2785bc3eaa811ee38e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3096550 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 0be285c6ee727a2fd7bb0e239e46693bf1958c7d +Author: Jason Macnak +Date: Tue Jul 20 11:36:22 2021 -0700 + + Vulkan: Flush read RT if color attachment is the read buffer + + Prior to this change, the following sequence: + + * eglMakeCurrent(..., draw=surface1, read=surface1, ...); + * glClear(...); + * eglMakeCurrent(..., draw=surface2, read=surface1, ...); + * glBlitFramebuffer(...); + * eglMakeCurrent(..., draw=surface1, read=surface1, ...); + * glReadPixels(...); + + would end up with the `vkCmdClearColorImage()` on surface1 + occuring after the `vkCmdBlitImage()`. + + This CL updates flushColorAttachmentUpdates() to flush any staged + updates to both the read and draw attachments, since they can be + different if different read and draw surfaces are bound. + + Adds a test which is a small repro of + android.opengl.cts.FramebufferTest#testBlitFramebuffer failure. + + Bug: b/192327017 + Test: EGLSurfaceTest.BlitBetweenSurfaces/* + Change-Id: Iabad26dfcd8633e9dcfcee2fb16ba352bc3931d5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078980 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit 4aedb71f4b51f7fc0cecb11b5288ddec7c3faa65 +Author: Gert Wollny +Date: Wed Aug 11 17:00:41 2021 +0200 + + Capture/Replay: Force count and length in CaptureShaderSource + + The problem ist that there is a mix on how the captured shader + source is written out, in some cases one string is written, e.g. + with the test ZeroShaderLength, and in others case an array if + strings is written, a with MixedShaderLengths. + + Be constistent about it and capture the shader source always as + one string and handle it like this, and override the count to be 1 + to reflect this and set the length to {-1} to use the new + accumulated shader strings automatically. + + Bug: angleproject:6268 + Change-Id: Ide927db1a6e4facdbab4d35c023b9bce4b6c30d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087448 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit a835912f83aa6a7a8c66cd70654fc1b1f41cdeb4 +Author: Jamie Madill +Date: Mon Aug 9 13:58:37 2021 -0400 + + Texture: Mark initialized after syncState. + + This fixes an issue with retracing where textures that are never + used or only used once may have different init states on re-tracing. + + Bug: angleproject:5133 + Change-Id: I29fdc477e3522582c8e2eece0b4b86384ecf6d9a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081762 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 1b9d95fccaee868635c99ab7a89a19c130396009 +Author: angle-autoroll +Date: Mon Aug 16 10:01:57 2021 +0000 + + Roll vulkan-deps from 4d36e22f8cc6 to 510c98092bc0 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4d36e22f8cc6..510c98092bc0 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/aa2d4bd2f4..7ca4dfa061 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/54524ffa6a..00b106e769 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/69c0fb545d..d1f10bf970 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Ib71e5808f06dd6cfb503bc2b15978d34f65198c0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097090 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 55e217717d0d6739493b9975caf7ff42ecb03a3b +Author: angle-autoroll +Date: Mon Aug 16 07:00:14 2021 +0000 + + Roll Chromium from 30bbd66599a2 to aeae79104c34 (422 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/30bbd66599a2..aeae79104c34 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/d09a3175f2..a0d51919fe + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/f063da141c..6810b870e0 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b1a5d27579..c0ea7c3386 + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/61d9d5c057..9b466c11a1 + * third_party/android_build_tools/aapt2: aKJ5MrSRXjVPtBx2DoBnJtmmjO6W6PkQrTYuBtdu46YC..PHj2SHpCe6Sr9lcIR9W1onhKN4FIIPL2Mho5aAQG-QIC + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/12d2cf1a46..38a0c99ec5 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..126f6a8996 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/699d70d878..0c42eff6d1 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/541f598e64..1a399d5b62 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/eb8f364120..2a295d6d76 + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Iccff80dd6649971bb655d920d9efc6f8c645877c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097128 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d20afde45f071e0d45c4730f94a7a6361fc4d5ce +Author: Shahbaz Youssefi +Date: Thu Aug 5 23:06:44 2021 -0400 + + Vulkan: Retain precision of uniform variables + + When gathering in a uniform block, the precision of default uniforms was + dropped. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Ie6a8e2e7cef7cd3808cee08d20f886fc4e762cd5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076124 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 1fb846cbed194e990c76bd475987665c37009c1a +Author: Alexey Knyazev +Date: Tue Aug 3 01:57:49 2021 +0400 + + Validate texStorage dimensions with compressed formats + + Bug: angleproject:6230 + Change-Id: I501ec1e6974bdc7e6731dcb88045edb0aa22b888 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067329 + Commit-Queue: Alexey Knyazev + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + +commit d8cb996768a3d1536efe6d4edb1f92b0e6e86240 +Author: Kenneth Russell +Date: Wed Aug 4 18:15:51 2021 -0700 + + In WebGL, constrain base level of compressed textures. + + Enforce that if a mipmap level > 0 is specified for a compressed + texture, that it implies that the size of the base level of the + texture is a multiple of the format's block size. + + Makes the test changes in + https://github.com/KhronosGroup/WebGL/pull/3304 largely pass. There + are some needed follow-on fixes to that PR, and this CL changes a + sub-test result in the existing S3TC and S3TC-sRGB tests which will + need to be suppressed Chromium-side first. + + Bug: angleproject:6245 + Change-Id: I7723d7882091b78a353d8d273e80b819dd384021 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072568 + Commit-Queue: Kenneth Russell + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 728baa5089f889dc325f5e3bd4fd6630cbe2c605 +Author: Yuly Novikov +Date: Fri Aug 13 18:47:50 2021 +0000 + + Revert "Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal" + + This reverts commit bf4eb2636ebae19cfa8d3edb9828bdb464360df5. + + Reason for revert: branch created before + angle_end2end_tests_expectations.txt existed, + need to use the old-fashioned suppression method. + + Original change's description: + > Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal + > + > Fails in M92 branch, e.g. + > https://ci.chromium.org/ui/p/chromium-m92/builders/try/mac_optional_gpu_tests_rel/67/overview + > + > Bug: chromium:1234829 + > Change-Id: I74b9694a16fccc4ba358db5dc1168cf9e21ecab0 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094707 + > Reviewed-by: Yuly Novikov + > Commit-Queue: Yuly Novikov + + Bug: chromium:1234829 + Change-Id: Ifd01947e0ae79619cec3290e4afe1489933a650e + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093248 + Bot-Commit: Rubber Stamper + Commit-Queue: Yuly Novikov + +commit bf4eb2636ebae19cfa8d3edb9828bdb464360df5 +Author: Yuly Novikov +Date: Fri Aug 13 14:09:14 2021 -0400 + + Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal + + Fails in M92 branch, e.g. + https://ci.chromium.org/ui/p/chromium-m92/builders/try/mac_optional_gpu_tests_rel/67/overview + + Bug: chromium:1234829 + Change-Id: I74b9694a16fccc4ba358db5dc1168cf9e21ecab0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094707 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 26cf48c1575111d423c459dc54d16ac7b5da2db0 +Author: angle-autoroll +Date: Fri Aug 13 11:27:36 2021 +0000 + + Roll VK-GL-CTS from bf3d63599bad to 7103920041db (7 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/bf3d63599bad..7103920041db + + 2021-08-13 alexander.galazin@arm.com Merge pull request #276 from Ella-0/master + 2021-08-12 ilkka.saarelainen@siru.fi Add missing items to android cts mustpass list + 2021-08-12 soroush.kashani@imgtec.com Fix bug in compressed PixelStorageModes tests + 2021-08-12 david.emett@broadcom.com Work around bogus GCC 9 warnings + 2021-08-12 antto.makinen@siru.fi Fix a GraphicsFuzz coverage test + 2021-08-06 ari.suonpaa@siru.fi Added layered AHB EGL tests + 2021-08-06 rgarcia@igalia.com Improve buffer to buffer copy tests + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Manually suppressing some newly added tests in + dEQP-EGL.functional.image.*android_native* + + Bug: angleproject:6277 + Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com + Change-Id: I8c942b49e5e8216695d449b8d1ef38d0f1198d0c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093790 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 6c32e8d9dec5d43f67d9085b1447c3b3972e778b +Author: angle-autoroll +Date: Fri Aug 13 10:01:38 2021 +0000 + + Roll vulkan-deps from 20a966e2b2fd to 4d36e22f8cc6 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/20a966e2b2fd..4d36e22f8cc6 + + Changed dependencies: + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/76a2e6cc59..69c0fb545d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie87bb497994d5421d2d2fa30acf3a9ffed3abf86 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093789 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fe6804e82d8e937aec7ab1dff2a563ee64f2b330 +Author: angle-autoroll +Date: Fri Aug 13 10:01:49 2021 +0000 + + Roll SwiftShader from b2af6a85583d to 526b987888fb (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b2af6a85583d..526b987888fb + + 2021-08-12 eugenis@google.com Disable hwasan in llvm-10.0. + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie09182e918b9e2136b6f58996a7abf15d3d6a2aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3092883 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1698ba2b98ca9ec1a8e71f0dc0d009c965f0fd12 +Author: angle-autoroll +Date: Fri Aug 13 07:01:11 2021 +0000 + + Roll Chromium from 5a1d66a9d8fb to 30bbd66599a2 (82 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5a1d66a9d8fb..30bbd66599a2 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/4d07fd6ad5..d09a3175f2 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/37dc929ecb..f063da141c + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7a163851ec..b1a5d27579 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..bd47f22ad2 + * third_party/nasm: https://chromium.googlesource.com/chromium/deps/nasm.git/+log/e9be5fd6d7..4e6fe9d154 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/aedb340bd7..eb8f364120 + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Idb68a1639a9e21134a24202dae711bed9d5ea418 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093787 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 201960e4aa83b532bd21166d133aa73883dac9be +Author: angle-autoroll +Date: Fri Aug 13 00:25:18 2021 +0000 + + Roll Chromium from 00e190ef4059 to 5a1d66a9d8fb (406 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/00e190ef4059..5a1d66a9d8fb + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry + To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/ee35ebe42c..4d07fd6ad5 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/eed07007f8..671803fd96 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/44c5a11573..7a163851ec + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/380b3ce66e..61d9d5c057 + * third_party/android_build_tools/aapt2: R2k5wwOlIaS6sjv2TIyHotiPJod-6KqnZO8NH-KFK8sC..aKJ5MrSRXjVPtBx2DoBnJtmmjO6W6PkQrTYuBtdu46YC + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..bd47f22ad2 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/4b973b6e6e..699d70d878 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f7a26285a7..aedb340bd7 + No update to Clang. + + Bug: angleproject:5543,angleproject:6245 + Tbr: ynovikov@google.com + Change-Id: I1fe2692a1e32889f3e17fefd311eae9a270e8492 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3092967 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2ae998ac1e221211dcbaea34833d6484fa643243 +Author: Yuly Novikov +Date: Thu Aug 12 16:24:11 2021 -0400 + + Enable ResultDB on standalone Try builders + + Including the presubmit builder. + + crrev.com/c/3087640 missed Try builders and only enabled ResultDB on CI. + + Bug: angleproject:6275 + Change-Id: Ia645205973008c535a2334b3b78b0d95a791c95d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3092465 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit e6d9ef98db4a6cdc44d20abce452bbb66ed32945 +Author: Yuly Novikov +Date: Thu Aug 12 14:53:07 2021 -0400 + + Enable ResultDB adapter for standalone bots + + In crrev.com/c/3087640 'has_native_resultdb_integration' was erroneosly + enabled on ANGLE standalone bots. + Disable it, so that the Chromium recipe would enable result adapter from + JSON to ResultDB format. + + Bug: angleproject:6275 + Change-Id: I1f94a8f2cbd1159be89bc1413669ed90e249c5b1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3092045 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit fa74421d4326262373fa2bc73f515aa6f816d41c +Author: Tim Van Patten +Date: Fri Aug 6 18:30:57 2021 -0600 + + Capture/Replay: Add LoadEGL() + + Add LoadEGL() to gen_restricted_traces.py. This is a pre-requisite to + frame capture being able to generate EGL calls, which is required for + multi-context support. + + Bug: angleproject:5878 + Change-Id: I210035aecad42173626834588bae51019deaa076 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078994 + Commit-Queue: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 62cac8b55f785af53e94050e7ba4d6c1d37c583c +Author: Tim Van Patten +Date: Fri Aug 6 18:24:52 2021 -0600 + + Capture/Replay: Add EGL support to generate_entry_points.py + + Add EGL support to generate_entry_points.py. This is a pre-requisite to + frame capture being able to generate EGL calls, which is required for + multi-context support. + + Bug: angleproject:5878 + Bug: angleproject:4035 + Change-Id: I3b8e9c91f9e2820b5207fc02d858e8109921f581 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078993 + Commit-Queue: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit ce6b0cd7fd71bd9da5c24f6696fc46724d5eeb89 +Author: angle-autoroll +Date: Thu Aug 12 16:15:11 2021 +0000 + + Roll vulkan-deps from 95cbcd95b33b to 20a966e2b2fd (8 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/95cbcd95b33b..20a966e2b2fd + + Changed dependencies: + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/e7b49d7fb5..e71feddb3f + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/de69f32e89..54524ffa6a + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/fbb56aacce..de99f8f6be + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/2fe826b04c..76a2e6cc59 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I3eb2bbedb4915f399ab6e6a87770bfa15922bd07 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3090816 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ac2d14341bfe40cc32d7e982d07c6c33a8c49390 +Author: Yuly Novikov +Date: Wed Aug 11 15:48:57 2021 -0400 + + Enable resultdb for ANGLE standalone builders + + Otherwise, they fail with https://crrev.com/c/3088213, e.g. + https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/23678/overview + + Doesn't actually upload to BigQuery yet, pending declaring the tables. + + Bug: chromium:1135718 + Change-Id: Ia429260e2f53f836279383aa84ca3e8e58c3392b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087640 + Commit-Queue: Yuly Novikov + Reviewed-by: Jamie Madill + +commit bfad749c86071e731bd130731f1cc46e45113b16 +Author: angle-autoroll +Date: Thu Aug 12 07:01:05 2021 +0000 + + Roll Chromium from 176cfbd86223 to 00e190ef4059 (514 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/176cfbd86223..00e190ef4059 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/bbf7f0ed65..ee35ebe42c + * buildtools/linux64: git_revision:eea3906f0e2a8d3622080127d2005ff214d51383..git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263 + * buildtools/mac: git_revision:eea3906f0e2a8d3622080127d2005ff214d51383..git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/24e92c2bee..eed07007f8 + * buildtools/win: git_revision:eea3906f0e2a8d3622080127d2005ff214d51383..git_revision:69ec4fca1fa69ddadae13f9e6b7507efa0675263 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/30fcc783eb..44c5a11573 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/32263815a7..5d3907f90f + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/5be11071ec..380b3ce66e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..3ef3f2c876 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/49a703f3d9..4b973b6e6e + * third_party/jinja2: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/7c54c1f227..6ac5f7effd + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6a8e571efd..f1ab49ba22 + * tools/luci-go: git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe..git_revision:a5735121c6339dee9b1b3644535e230744daaac9 + * tools/luci-go: git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe..git_revision:a5735121c6339dee9b1b3644535e230744daaac9 + * tools/luci-go: git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe..git_revision:a5735121c6339dee9b1b3644535e230744daaac9 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/836d7670f0..541f598e64 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/7235d59a2b..494ba2a758 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8552b7ec98..f7a26285a7 + Clang version changed llvmorg-14-init-591-g7d9d926a:llvmorg-14-init-1002-gb5e470aa + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/6a8e571efd68de48d226950d1e10cb8982e71496..f1ab49ba228127b73e1e590a9687d7edfdc65151/scripts/update.py + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I0e8d45c81fdc66b37c9fea29c8be703fadb638b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3089661 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ff64d2c7e562f401bf174ba2030bc10583a4b307 +Author: Kenneth Russell +Date: Fri Aug 6 21:24:09 2021 -0700 + + Choose direct-to-Metal translator through a feature. + + Define directMetalGeneration in FeaturesMtl.h. If + ANGLE_ENABLE_METAL_SPIRV is defined to 1 (still the default), + directMetalGeneration defaults to false. It can be overridden via the + standard ANGLE mechanism: + ANGLE_FEATURE_OVERRIDES_ENABLED=directMetalGeneration + + It can also be overridden by instantiating angle_end2end_tests with + the directives: + WithDirectMetalGeneration(ES2_METAL()) + WithDirectMetalGeneration(ES3_METAL()) + + These directives aren't working properly yet though. The + direct-to-Metal compiler is instantiated, but the _DirectMetalGen + versions of the tests fail. They pass when switching the Metal + backend's default behavior using the above environment variable. This + will be debugged in follow-on CLs. + + Thanks to syoussefi@ for the prototype of this CL: + https://chromium-review.googlesource.com/3076129 + + Bug: angleproject:5505 + Change-Id: I188ab89abc75bf89c5ed2d90102af311feaa1960 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3079083 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Kenneth Russell + +commit 331be08ffaade7caffe6e824ffb446188f96cec9 +Author: Lubosz Sarnecki +Date: Wed Aug 11 11:28:29 2021 +0200 + + Tests: Add Sonic The Hedgehog trace. + + Test: angle_perftests --gtest_filter="*sonic_the_hedgehog*" + Bug: angleproject:6181 + Change-Id: I40a5affe804a747445ef620c4f78e842c1eed1ad + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087444 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit d3031c6540e50d66609f70c6f598d424d1f3b774 +Author: Gert Wollny +Date: Wed Aug 11 12:30:01 2021 +0200 + + Capture/Replay: Update expectations with bug IDs + + In addition, update two tests that are just failing and no longer + crashing. + + Bug: angleproject:6166 + Change-Id: I9f19bf411c79c39f4f1f3156a9f8682609d6b3d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087445 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 29270a6369bb96efd16086bf9904d98a7384a973 +Author: angle-autoroll +Date: Wed Aug 11 10:01:12 2021 +0000 + + Roll vulkan-deps from 902c4504128f to 95cbcd95b33b (8 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/902c4504128f..95cbcd95b33b + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/c4c6f2ba5c..de69f32e89 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9fe958cdab..521f91d793 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/a2edd93673..fbb56aacce + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/8dca1fa770..415320f80f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/bc1468932d..2fe826b04c + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I231ec887713f25bc84328640a07cb70526f481e3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087841 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 88725917703f979419720105ef226933bbeb404d +Author: angle-autoroll +Date: Wed Aug 11 07:00:58 2021 +0000 + + Roll Chromium from 6db26672c5bd to 176cfbd86223 (476 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/6db26672c5bd..176cfbd86223 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8e6db3edf0..bbf7f0ed65 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/c54c079bce..30fcc783eb + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/09da6e47b4..32263815a7 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..abc7ba7d87 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/24dc2c7823..49a703f3d9 + * third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/ad8b3b0f84..ff19e5b2e1 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/77b4e6e8d4..f2eeaf2ef3 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/79ff382907..836d7670f0 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e4df839dbe..8552b7ec98 + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ibed6651e595c5cfa7fa5a01b016c7346411e4760 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3088002 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 392ba63fc9b9ed695db2ea3918df7054cd28378a +Author: Yuly Novikov +Date: Tue Aug 10 19:20:47 2021 -0400 + + Suppress 2 dEQP GLES3 tests on Win SwANGLE + + functional.shaders.operator.unary_operator.minus.lowp_uvec3_vertex + functional.shaders.operator.unary_operator.minus.mediump_uvec3_vertex + Fails on x86 when llvmorg-13-init-15561-gf98ed74f Clang rolled. + Unfortunately, expectation file doesn't support architecture, + so suppressing on both x86 and x64 Windows, keeping the test running on + x64 Linux. + + Bug: angleproject:6265 + Change-Id: I15f8955eaf38c95d0d3036378d97afdb1871d44e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3088016 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 6136620b7a76c0b7273ca7bc4fb94ee83e713e8d +Author: Jeff Vigil +Date: Thu Mar 25 15:43:06 2021 -0700 + + Reland "EGL: GLES: Implement GL_EXT_protected_textures" + + This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa + This removes changes in gl backend. + + Original change's description: + > EGL: GLES: Implement GL_EXT_protected_textures + > + > Implement EGL_EXT_protected_content Images + > Add protected member to Images and Textures + > Add error when creating objects if not supported or + > does't match native buffer + > When creating siblings pass protected state + > Add extension caps + > Add Validation + > Add GetTexParameter and SetTextparameter + > Add protected to Texture and state + > Expand tests for images and textures + > + > Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest + > + > Bug: angleproject:3965 + > Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852 + > Commit-Queue: Mohan Maiya + > Reviewed-by: Geoff Lang + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + + Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest + + Bug: angleproject:3965 + Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825 + Commit-Queue: Brandon Schade + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + +commit 0bd5cac20cf47c89e1f5b0959588393ba4fbf950 +Author: Cody Northrop +Date: Fri Aug 6 17:56:58 2021 -0600 + + Allow BufferSubData with persistently mapped buffers + + Per the GL_EXT_buffer_storage extension: + + What commands are affected by the relaxed errors for persistently + mapped buffers? + + RESOLVED: In GL 4.5 the following commands have the relaxed + language BufferSubData, ClearBufferSubData, CopyBufferSubData, + GetBufferSubData and InvalidateBufferSubData. Of these commands + the only ones that apply to ES 3.1 are BufferSubData and + CopyBufferSubData. However, if additional extensions add any of + the other commands and EXT_buffer_storage is supported, they + would have the same behavior in ES. + + Therefore we need to allow BufferSubData and CopyBufferSubData on + persistently mapped buffers. + + Current we fail these scenarios in validation. This was detected when + running Fortnite on Android using the game's GLES backend. + + Also added two tests: + - StorageCopyBufferSubDataMapped to recreate the exact Fortnite + scenario using glCopyBufferSubData. + - StorageBufferSubDataMapped is a contrived case to cover + glBufferSubData + + Test: BufferStorageTestES3.StorageCopyBufferSubDataMapped/* + Test: BufferStorageTestES3.StorageBufferSubDataMapped/* + Bug: b/180418810 + Bug: angleproject:5658 + Change-Id: Ib678e84f367934656ec10f0f4ad0d35ac687f0b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078316 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 8f214193940b2e7eda70746b7b42f96b0b4ce73b +Author: Yuly Novikov +Date: Tue Aug 10 20:40:36 2021 +0000 + + Revert "Properly report xcb_connect failures in DisplayVkXcb" + + This reverts commit 81bee2e7f6deeda15691dd0b7fca90626b66bfb8. + + Reason for revert: fails on + https://ci.chromium.org/ui/p/chromium/builders/try/linux-ozone-rel/918054/overview + + Original change's description: + > Properly report xcb_connect failures in DisplayVkXcb + > + > Bug: chromium:1223431 + > Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383 + > Reviewed-by: Jamie Madill + > Commit-Queue: Yuly Novikov + + Bug: chromium:1223431 + Change-Id: I1da24861375a29f448e61771a609396e777c2e29 + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087555 + Bot-Commit: Rubber Stamper + Commit-Queue: Yuly Novikov + +commit 0b651e4258e8ef456f7275cce525c82c63975467 +Author: Geoff Lang +Date: Tue Jul 20 11:48:38 2021 -0400 + + Vulkan/D3D11/Metal: Expose GL_NV_framebuffer_blit + + GL_NV_framebuffer_blit is equivalent to ES3 blit which these backends + support. + + Bug: chromium:1220246 + Change-Id: I6ef0b80f9e9ba7828d6720cdbe19c83c4abdc4cf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041878 + Commit-Queue: Geoff Lang + Reviewed-by: Jamie Madill + +commit 81bee2e7f6deeda15691dd0b7fca90626b66bfb8 +Author: Yuly Novikov +Date: Wed Aug 4 19:31:54 2021 -0400 + + Properly report xcb_connect failures in DisplayVkXcb + + Bug: chromium:1223431 + Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 97c21277da0bb3bd3b1f9e157da750e5e3e3d6b9 +Author: Lubosz Sarnecki +Date: Tue Aug 3 15:06:37 2021 +0200 + + FrameCapture: Don't capture default drawbuffers state. + + When capturing framebuffers during mid-execution-capture the + drawbuffers state is now compared with the default one and skipped + when equal. + + This prevents capturing the unavailable glDrawBuffers call when using + OES_framebuffer_object on GLES 1 contexts. + + Bug: angleproject:6181 + Change-Id: Id2076223067dc5f89df88fe6a3a48b09fa9a3f5d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068957 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 856228b0b472bcc2d5c796e08a624137abfffa9d +Author: Alexey Knyazev +Date: Thu Aug 5 23:10:25 2021 +0400 + + D3D9: Expose EXT_sRGB and EXT_texture_compression_s3tc_srgb + + sRGB reads are supported on D3D9 via SetSamplerState. + sRGB writes are supported on D3D9 via SetRenderState. + + Bug: angleproject:6258 + Change-Id: I841c25ce66486e93ae2122b370e910f383fed774 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076359 + Reviewed-by: Jamie Madill + Reviewed-by: Kenneth Russell + Commit-Queue: Alexey Knyazev + +commit 595ce2b8e9abac6b62bf72b9008e89c48e1cb5ed +Author: Lubosz Sarnecki +Date: Tue Aug 3 15:06:14 2021 +0200 + + FrameCapture: Use OES suffixes for framebuffer functions on ES1. + + Functions using the GL_OES_framebuffer_object extension on GLES 1.1 + require the OES suffix or will otherwise crash on certain native OpenGL + drivers. + + The framebuffer capture functions are stored in a struct. + + This patch makes replay of Sonic The Hedgehog possible on Pixel 4 XL + native GL. + + Bug: angleproject:6181 + Change-Id: I689267b024824818bfcf28e652b835e075208415 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068956 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit d25c9d7f5bb02ec22e6b9f519e69dc84c4bb2150 +Author: Jamie Madill +Date: Wed Jul 7 12:15:12 2021 -0400 + + Add perf tests runner script. + + This script will be responsible for running the perf tests + multiple times to try and stabilize measurements. We'll use it on + the bots instead of just running the perf tests directly. + + Because the script invokes the binary multiple times, this slows + down execution. Most significantly on Android, where we now need + to use 20 shards, up from 6. + + Also marks one test as flaky on OpenGL. + + Bug: angleproject:6090 + Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 4eac0bf1a95b299fe8a0445c6abbe3b3def4588f +Author: angle-autoroll +Date: Tue Aug 10 10:01:12 2021 +0000 + + Roll vulkan-deps from 8e25231b71ac to 902c4504128f (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/8e25231b71ac..902c4504128f + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/e0f3fdf433..aa2d4bd2f4 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/706dc27a62..c4c6f2ba5c + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/9db21837b8..bc1468932d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I790425565050497ad4a4632a4283afa9b021d5ce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3085081 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 17d4ff96ce5c3de106056ccb6a77b0ea6247a865 +Author: angle-autoroll +Date: Tue Aug 10 07:13:16 2021 +0000 + + Roll Chromium from bfd7c5a55cd0 to 6db26672c5bd (464 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/bfd7c5a55cd0..6db26672c5bd + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/1b131580ae..8e6db3edf0 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/97a17ccfc8..c54c079bce + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/d5413f72f6..5be11071ec + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/b291e88d8e..e98c753917 + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/ff9352c23f..37226d67bc + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..b35ee4986e + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e989bf92db..24dc2c7823 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/9ce4c7a678..77b4e6e8d4 + * tools/luci-go: git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04..git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe + * tools/luci-go: git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04..git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe + * tools/luci-go: git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04..git_revision:1120f810b7ab7eb71bd618c4c57fe82a60d4f2fe + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/55fedb1a47..79ff382907 + * tools/protoc_wrapper: https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper/+log/57697a9873..c16b0dc8db + * tools/skia_goldctl/linux: H5Ax0_QmNml9Df-r61hCscndRQDsCim7j6-ST_Bqc7QC..jQH5G1XR31QSX-Y7BEw3-HCqj-rqMbmFt8ia4QT9X_IC + * tools/skia_goldctl/mac: VP9yR_72z50Efyz4lp6uXyLhZowfvEScnoGf8RMWlHAC..rBeQmF5YzW5gOYg2G0CKoVli5wQ536stUnVW9UXdTagC + * tools/skia_goldctl/win: P8MltnujOo50R-Kl3rxhuKLOYs02wz_YJUkzOruEDYwC..XTbWn-rB8RlBWCMTnyklV8yZV_fBb4VoUNOZ9dgtQJgC + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I71abad2ab63c443a3cc09364a24745d722f3d426 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3084071 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1d49cb6620a7856ebb78006436dafe8f1585ca4b +Author: angle-autoroll +Date: Mon Aug 9 10:01:13 2021 +0000 + + Roll vulkan-deps from ad1ae9d489da to 8e25231b71ac (9 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/ad1ae9d489da..8e25231b71ac + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/175ecd49ed..706dc27a62 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/4c901a731a..a2edd93673 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/28bd6d60be..9db21837b8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I5b2573412586f8460f4ab802e59adcdfea2ea7d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3080663 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit b1b760e74e0024ffe25554a0bac3aeec2986caee +Author: Yuly Novikov +Date: Mon Aug 9 13:37:10 2021 -0400 + + Ignore VUID-vkCmdClearAttachments-baseArrayLayer-00018 + + New message added in + https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3133 + Blocks vulkan-deps rolls. + + Bug: angleproject:6262 + Change-Id: Iaaafe7539092cbe7eadd01e47b67071d60779929 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081376 + Commit-Queue: Yuly Novikov + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 23a50a7cade6ef51441ebf7afb13b4493b09e012 +Author: Jamie Madill +Date: Fri Aug 6 18:15:30 2021 -0400 + + Serialization: Fix groups & ensure compile resolution. + + This change has two fixes: + + 1) Some texture groups had multiple duplicate keys. Namely image + descs and image contents. + 2) Programs and Shaders would serialize non-deterministically + because we would not ensure the compile/link was resolved. Fix + this by explicitly ensuring the shaders/programs are done. + + Bug: angleproject:5133 + Change-Id: I2f7f7768c76f90275f81e032ac08e3f2bc828ea2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076134 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit 06b19ed81e8a6aaf19d95a7487ab9ac418da0d07 +Author: Tim Van Patten +Date: Fri Aug 6 17:02:36 2021 -0600 + + Framecapture: Update file naming + + Update the file naming to add "shared" and remove the unnecessary frame + numbering: + + angle.angledata.gz + angle_capture_context1.cpp + angle_capture_context1.h + angle_capture_context1_files.txt + angle_capture_context1_frame001.cpp + angle_capture_shared.cpp + angle_capture_shared.h + + Bug: angleproject:6256 + Change-Id: I6454a3dc412896557f29faee1269dfa55146d43b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078908 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Tim Van Patten + +commit 4686da27b37bf7bc01c581468662b7bccb7da624 +Author: Jamie Madill +Date: Fri Aug 6 18:13:14 2021 -0400 + + Add GetImage test with RGB. + + This test covers a case in T-Rex with an unused RGB texture that + was tripping up serialization. It isn't currently possible to make + the test fail but it does cover some new code paths. + + Bug: angleproject:5133 + Change-Id: I87c066779f270752bed3c1c1882951c71f16d378 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076133 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 0e88f240246e218e5c5edb7634abfaa5836a80d8 +Author: Jamie Madill +Date: Fri Aug 6 18:20:05 2021 -0400 + + EGLWindow: Add option to force robust init. + + Not currently used but may be useful in the future. + + Bug: angleproject:5133 + Change-Id: I11c082a3285587217d5b955048547b0617b8c51b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076132 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 7ed0729dc5a0c05d712eac6df10f0026d70e430a +Author: Jamie Madill +Date: Fri Aug 6 15:10:58 2021 -0400 + + EGLWindow: Add option to enable capture limits. + + This will be useful for the replay serialization validation. + + Bug: angleproject:5133 + Change-Id: Ib5bb2a9522b0e35e47bdf2b1321fe6a18dcdb897 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076131 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit fd4590a63abc72d434921a531878e6bc0b44dc91 +Author: angle-autoroll +Date: Mon Aug 9 07:01:03 2021 +0000 + + Roll Chromium from 29702b8b93b0 to bfd7c5a55cd0 (62 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/29702b8b93b0..bfd7c5a55cd0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8388d56981..1b131580ae + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4d423d82f5..97a17ccfc8 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c71b1c718d + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I4919c503ec72b7325511a3901abb873779845f19 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3080699 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6c41548762d6236bb4247606164bd4fe6c9180ac +Author: Gert Wollny +Date: Mon Jul 26 13:08:46 2021 +0200 + + Capture/Replay: Add option to override test disabling + + In order to be able to easily run disabled tests, add a flag + --force-run-capture + that makes it possible to ignore the SKIP_FOR_CAPTURE designation. + + Bug: angleproject:6166 + Change-Id: I195248045d5c928d965f16b5ae17681d78686374 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053363 + Commit-Queue: Gert Wollny + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit af35fd22de30132b443021da0e5a73de664216e4 +Author: Gert Wollny +Date: Mon Jul 12 14:58:01 2021 +0200 + + Capture/Replay: rework test runner to use expectations + + This CL changes the test runner to use a expectation + file for all the tests including failing tests. + + The expectation file is also used to disable running certain + tests. e.g. because they are known to crash or result in + compilation failures, which then take down all the test + in the corresponding batch. + + The capture_replay_tests.py script will report failure if the + test result doesn't meet the expectation. In order to keep + the current behaviour to run subsets of tests in tact, the + test filter is also applied to the expectation. + + In addition to the "normal" expectations, FLAKY was added to + tag tests that can be captured and compiled correctly but have + unstable results. + + This CL also adds the expectation for ES2_Vulkan_SwiftShader + and ES2_Vulkan + + Bug: angleproject:6166 + Change-Id: Ica05303e6ae3b7c6d2b6749c2c9c6593b659cc1a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024209 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 7f38e2892cc9a10c14c273bcae429167cd13c02b +Author: angle-autoroll +Date: Sun Aug 8 01:17:25 2021 +0000 + + Roll Chromium from 54236e566eab to 29702b8b93b0 (355 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/54236e566eab..29702b8b93b0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/1398273c28..8388d56981 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/90f7ea6722..4d423d82f5 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c71b1c718d + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/5339c686ff..e989bf92db + * tools/luci-go: git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b..git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04 + * tools/luci-go: git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b..git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04 + * tools/luci-go: git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b..git_revision:e7749d37e8e52fd6eb9c79266a17d7fcb6f6ec04 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/da62336ef6..55fedb1a47 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/22df772766..e4df839dbe + No update to Clang. + + Bug: angleproject:6158,angleproject:6228 + Tbr: syoussefi@google.com + Change-Id: Iec4d0184871e7eaf74d4acd49d1f822451603e01 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3079560 + Bot-Commit: angle-autoroll + Commit-Queue: Shahbaz Youssefi + +commit 1654537d49a084e76bbfd09156ba7c23b47508e6 +Author: Kenneth Russell +Date: Fri Aug 6 17:49:52 2021 -0700 + + Fix default and driver uniforms' binding indices. + + These abstractions were introduced in the SymbolTable during + upstreaming of the direct-to-Metal compiler and were accidentally + swapped, leading to widespread test failures. + + Fix the comment reference in ContextMtl's DriverUniforms struct. Add + missing emulatedInstance field, and add a TODO about its missing + support in direct-to-Metal translator. Define it in SPIR-V Metal + translator; the driver uniforms for the two must match. + + Bug: angleproject:6259 + Change-Id: I0330ab4efca5b64a749b9cca90564fdbc84d7a80 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078998 + Commit-Queue: Kenneth Russell + Reviewed-by: Yuly Novikov + Reviewed-by: Shahbaz Youssefi + +commit e70a1444af85c77a39e82a69569f723098c8d37c +Author: Shahbaz Youssefi +Date: Thu Aug 5 12:49:21 2021 -0400 + + Vulkan: Fix draw FBO1 followed by resolve FBO2 + + When syncing the framebuffer for blit/resolve, the render pass was not + closed. This would be done later when necessary, except that + onFramebufferChange called from FramebufferVk::syncState attempted to + adjust the render area of the render pass (as it considered it open). If + FBO2 is larger than FBO1, this would cause the render area of the + previous render pass to become larger than the framebuffer size. + + This change makes sure that onFramebufferChange considers the render + pass closed no matter what. + + Test is based on patch from steven@valvesoftware.com + + Bug: angleproject:6244 + Change-Id: Iaec04232cfd2af04ba2564fd2de1dd5f08a40df6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076620 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c664601d17949a03a77f03f4fbfd007ebea9ccf0 +Author: Brandon Schade +Date: Mon Apr 26 17:08:06 2021 -0700 + + Allow drawing if a fragment shader isn't present + + According to the OpenGL ES 3.1 spec: + + 7.3 PROGRAM OBJECTS + If there is no active program for the vertex or fragment shader + stages, the results of vertex and fragment shader execution will + respectively be undefined. + + If there isn't an active program for only one of these shader + stages, the results of the other shader stage are still defined. + + To handle this, we no longer no-op the draw call if one of these + is missing. We only no-op the draw if there's no vs. + + This allows for transform feedback to be captured when there's only + a geometry and vertex shader. + + Tests: KHR-GLES32.core.geometry_shader.api.program_pipeline_vs_gs_capture + Tests: KHR-GLES32.core.separable_programs_tf.geometry_active + Tests: ProgramPipelineTest31.PipelineWithoutVertexShader* + Tests: ProgramPipelineTest31.PipelineWithoutShaders* + Bug: angleproject:5579 + Change-Id: If9849cc398c307232435b167ab12431fa4258201 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906723 + Commit-Queue: Brandon Schade + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit cf090996c7850074d76ce8408af4661a3c91e5e2 +Author: Shahbaz Youssefi +Date: Thu Aug 5 16:20:39 2021 -0400 + + Vulkan: Call onFramebufferChange from a single place + + When sRGB control mode was dirty, onFramebufferChange was called which + may not have been necessary if the actualy state hadn't changed. This + removes a call to onFramebufferChange() in this path, and leaves it to + be naturally called if the framebuffer desc actually changes. + + Bug: angleproject:5075 + Change-Id: I177572a3cb819d7e1ecd589f46e03da4b967529e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076619 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit d191bc32a44273f1b66651bce7062bb6877ec224 +Author: Kenneth Russell +Date: Fri Aug 6 12:59:39 2021 -0700 + + Reintroduce TType::isRank0. + + This concept was used in the direct-to-Metal compiler, and its + replacement with isScalar wasn't completely correct. Fixes several + assertion failures in tests. + + Bug: angleproject:4889 + Bug: angleproject:5505 + Change-Id: I9b8800ed50591560c8e53faa81eca581c4f07a02 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078474 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Kenneth Russell + +commit 934ffac6a6f4baa3fc58ed0508adb6e6783ea039 +Author: Charlie Lao +Date: Thu Aug 5 15:43:32 2021 -0700 + + Vulkan: Propagate BufferData changes to shader storage buffer binding + + This CL adds context to the observer list of shader storage buffer. When + BufferData is called on the current bound shader storage buffer, context + gets notified and DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING gets set. + + Bug: b/195678877 + Change-Id: Id8a5266942e33f0a834d7c57fdde75f57e93d347 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076177 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 63248e7fdf2b55dd331c790adcadba91bef1e637 +Author: Shahbaz Youssefi +Date: Thu Aug 5 23:49:23 2021 -0400 + + Translator: Fix dead-code-elimination corner case + + The DCE code had a corner case bug where a switch case containing + multiple DCE'ed `break`s followed by another case would cause some of + the DCE'ed statements in the first case to be doubly pruned, failing on + an assertion. + + This was due to the fact that visitBlock() was asking traversal to + continue if a new case was visited while pruning nodes, but the + traversal does not take into account that some statements need to be + skipped and so would also visit the pruned statements. If the pruned + statements contain a branch instruction, they get re-pruned. + + The visitBlock() function that does the pruning is reworked so that it + more clearly traverses the statements. + + Bug: chromium:1237200 + Change-Id: Ib078c2ea73ade756c7d7ef5a5c489fa53c39f352 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3077659 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 07c21bccda27c15dd298a96f4b6cf0952a1c8bd4 +Author: Kenneth Russell +Date: Fri Aug 6 01:54:58 2021 -0700 + + Add run-time switch for direct-to-Metal compiler. + + Setting the environment variable: + ANGLE_USE_MSL_COMPILER=1 + will switch from the SPIR-V Metal to the direct-to-Metal compiler. + + This makes it easier to diagnose regressions as the direct-to-Metal + compiler is upstreamed. + + Bug: angleproject:5505 + Change-Id: I78593e8ddc4e483bb0795960c432bcfa17e0a5b1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076332 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Kenneth Russell + +commit 0cd997792d4e6cf0267a10241b1b33a5fa472ec5 +Author: Shahbaz Youssefi +Date: Thu Aug 5 10:35:10 2021 -0400 + + Translator: Propagate precision to children nodes + + Similarly to glslang, when the precision of a node is determined, + propagate that precision to any of its children that doesn't already + have a precision. Ultimately these should only include + TIntermConstantUnion nodes. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I121231d04c7cf92fc3f07716019ffe88eca48b88 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075126 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c6f5b67ea8422e323ddab28a95dc9eb9b7549d67 +Author: Jamie Madill +Date: Thu Aug 5 08:09:24 2021 -0400 + + Give auto-roller ownership over ANGLE. + + This will allow the auto-roller to both update DEPS and the auto- + generated sources. + + Bug: angleproject:6247 + Change-Id: Ib142ea94e34889ff4662b3c19420497c449c8789 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075121 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 8387f10feac7f0ee980fa955b802e137b1dff351 +Author: Alexey Knyazev +Date: Fri Aug 6 21:46:02 2021 +0400 + + D3D9: Mark destination images dirty after CPU-copy path + + Fixes WebGL CTS failures for L and LA formats in: + + conformance/textures/image_bitmap_from_canvas + conformance/textures/webgl_canvas + + Bug: angleproject:2192 + Change-Id: If3a9bd81298c76320ed029617fd4965efe4e8ef0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076720 + Commit-Queue: Alexey Knyazev + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + +commit 16a61bbbde1f64e39e88b58ac68f5567893a181c +Author: SeongHwan Park +Date: Thu Aug 5 23:06:22 2021 +0900 + + D3D: Fix not notifying RenderTarget release in TextureD3D + + This could lead to use-after-free for the RenderTarget object. + + Bug: chromium:1234829 + Change-Id: I73d4547b8f09f2f2cf3f7f8394f7f573fe5a4ef5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063858 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit c5fa9a44b7acba83638048618b0698d908667547 +Author: Charlie Lao +Date: Thu Aug 5 15:27:47 2021 -0700 + + Vulkan: Add test for BufferData change is propagated to SSBO properly + + When BufferData is called while previous reference is still pending, + ANGLE may allocate a new storage. When this happened, we need to ensure + context gets notified so that it can pick up new buffer storage. + + Bug: b/195678877 + Change-Id: Idb591ed49e7d2c9e2dc5803f65d00894687ae1d3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076820 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit e28fb127bff1610c26ac1173cc9b0a211b89ddf4 +Author: Charlie Lao +Date: Thu Aug 5 14:32:16 2021 -0700 + + Vulkan: Propagate BufferData changes to atomic counter binding + + This CL adds context to the observer list of atomic counter buffer + so that it gets notified when BufferData is called on atomic counter + buffer and set dirty bit accordingly. + + Bug: b/195678877 + Change-Id: I924cf12ef54b5986d5c56b9e3b71584039490206 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076170 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 9acae0d58a60b1f1be930b75820e59bce970a9f5 +Author: angle-autoroll +Date: Fri Aug 6 15:03:18 2021 +0000 + + Roll Chromium from 3d40e0a2ae46 to 54236e566eab (96 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3d40e0a2ae46..54236e566eab + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com,jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/3ad4b0999c..1398273c28 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8b9e975e71..90f7ea6722 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2e0d77d800 + No update to Clang. + + Bug: angleproject:6090 + Tbr: syoussefi@google.com,jmadill@google.com + Change-Id: Id60635cd7fdfb8ca79f1a187c9be7d68d9ced469 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078204 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 52aae056c075f5f8bc81bdf9b61778d0595200c4 +Author: Charlie Lao +Date: Thu Aug 5 14:22:26 2021 -0700 + + Vulkan: Test for buffer storage propagate to AtomicCounter properly + + When BufferData call result in storage change, it should propagate the + change to atomic counter buffer binding properly. This CL adds a test to + call BufferData on the same buffer while the previous usage of buffer is + still pending (thus may trigger reallocation of buffer storage) and see + if shader reads correct atomic counter buffer data. + + Bug: b/195678877 + Change-Id: Iac94c3bd0a73573da0bfc814d33b5cd43475772d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076819 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Charlie Lao + +commit 4a841e6afff23530a17158c1953371c159095fb7 +Author: Lubosz Sarnecki +Date: Tue Jul 27 13:30:26 2021 +0200 + + PerfTests: Replay EGL color spaces. + + Add EGL_GL_COLORSPACE_KHR to the EGLWindow's surface attributes if + EGL_KHR_gl_colorspace is available. + + Require the extension to be available if the color space differs from + the default EGL_COLORSPACE_LINEAR value. + + Bug: angleproject:5857 + Change-Id: Ib33cbed7d4b115979bd847418cb5cd2b96f4f173 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056374 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit 89dbbb2ac6875c92c99feb24353641142bbd49b1 +Author: Reid Kleckner +Date: Thu Aug 5 13:14:12 2021 -0700 + + Skip validation of stderr in TestSuiteTest.RunFlakyTests + + There is a bug (crbug.com/1234124) causing the profile runtime to print + errors about failing to write the profraw file. Don't validate stderr in + these builds until that is fixed. + + Bug: chromium:1234124 + Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 6520b6c38ed229b69d1128eefefd3bd8cee01cf8 +Author: angle-autoroll +Date: Fri Aug 6 10:01:36 2021 +0000 + + Roll SwiftShader from e4b7794ddbee to b2af6a85583d (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/e4b7794ddbee..b2af6a85583d + + 2021-08-06 swiftshader.regress@gmail.com Regres: Update test lists @ 8532b0f2 + 2021-08-05 capn@google.com Implement VK_EXT_custom_border_color + 2021-08-05 swiftshader.regress@gmail.com Regres: Update test lists @ e4b7794d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: angleproject:6200 + Tbr: syoussefi@google.com + Change-Id: I6589300f60d944fb32479102efad7bf4d093d0ec + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3077722 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 12ddb00727e34fa06d73840c23f8ccfc55803def +Author: angle-autoroll +Date: Fri Aug 6 10:01:16 2021 +0000 + + Roll vulkan-deps from 5a3686a46647 to ad1ae9d489da (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/5a3686a46647..ad1ae9d489da + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/366d1be5e8..175ecd49ed + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/27a13fa6a1..28bd6d60be + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I917dcb4b03a4248015755eca5c8dd568bbb99e35 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076333 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 25d6030521aa9e4d7c2f0b1e8464ff7579d1d268 +Author: angle-autoroll +Date: Fri Aug 6 08:52:24 2021 +0000 + + Roll Chromium from 4867b99b3f43 to 3d40e0a2ae46 (416 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/4867b99b3f43..3d40e0a2ae46 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8607487b3e..3ad4b0999c + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/36299f559a..8b9e975e71 + * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/c3565d6e1f..d5413f72f6 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2e0d77d800 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0a4dd4181a..5339c686ff + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/a6e918faf0..6a8e571efd + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/0026263559..da62336ef6 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/42dc1265c0..22df772766 + No update to Clang. + + Bug: angleproject:6230 + Tbr: syoussefi@google.com + Change-Id: Icec5796cbfbeeebdddc975e0fbc6e80524cca8c3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076331 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9b646c132d63ad296f57656335751879870360a1 +Author: Cody Northrop +Date: Wed Aug 4 17:24:18 2021 -0600 + + Tests: Add Final Fantasy trace + + Test: angle_perftests --gtest_filter="*final_fantasy*" + Bug: b/195607411 + Bug: angleproject:6246 + Change-Id: Ie0f02d082d408a6eb18555741ab01cccc446d01f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073380 + Commit-Queue: Tim Van Patten + Reviewed-by: Tim Van Patten + +commit ab19e742fbce6aee74115540cac2f84eb26953d3 +Author: Ian Elliott +Date: Wed Aug 4 18:41:51 2021 -0600 + + Match DebugAnnotator::{begin|end}Event() calls + + The tests for whether ScopedPerfEventHelper::~ScopedPerfEventHelper() + should call DebugAnnotator::endEvent() were not valid: + + - The test in ScopedPerfEventHelper::begin() simply checks whether a + DebugAnnotator has been initialized. + + - In addition, ScopedPerfEventHelper::~ScopedPerfEventHelper() also + checks whether DebugAnnotator::getStatus() returns true, which will + always be false when the generic LoggingAnnotator is pluged in. + + - The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() must + take into account whether EGL_Initialize() or EGL_Terminate() + changed g_debugAnnotator, and whether ScopedPerfEventHelper::begin() + called DebugAnnotator::beginEvent(), and so a matching endEvent() + should be called. + + The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() is now + simplified. + + Bug: angleproject:6158 + Change-Id: I7fbd19cd0a372ef3ce3600c5d3fc50234b53ca38 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072564 + Commit-Queue: Ian Elliott + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 2e8a2d3c2842e2cf4422671ed7244c9fd728eaa2 +Author: Shahbaz Youssefi +Date: Wed Aug 4 11:04:44 2021 -0400 + + Translator: Helpers to derive precision + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: I75e2084c76139ccb24b266f262d5e5597d8aa4ca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071599 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 3fd572c40076bda02985f2098e91e20acf19c43a +Author: Tim Van Patten +Date: Wed Aug 4 12:45:09 2021 -0600 + + FrameCapture: Fix setCaptureActive() and MEC timing + + Frame capture is currently off by one when calling setCaptureActive() + and collecting the mid-execution capture state. The MEC state is + collected at frame N, but setCaptureActive() isn't called until frame + N+1, meaning all of the maybeCapturePreCallUpdates() and + maybeCapturePostCallUpdates() calls are not tracking resources correctly + for frame N. + + This CL fixes when setCaptureActive() is called relative to when + setupSharedAndAuxReplay() is called, so the trace is active for the + first frame and all of the resources are correctly tracked. + + Additionally, setCaptureActive() during the FrameCaptureShared() ctor if + frame capture starts with the first frame. + + Bug: angleproject:6225 + Change-Id: Id07e78b2da9c9d33779e20ab6a42f63cd103a6a6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071940 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 061188a7e9798db5403737462cbdbd7ec83708ff +Author: Shahbaz Youssefi +Date: Wed Aug 4 10:07:47 2021 -0400 + + Translator: General clean up + + General clean up done as part of other changes, split to simplify + review. + + Bug: angleproject:4889 + Bug: angleproject:6132 + Change-Id: Iade9954d187a759be9edd0e3754be007f4133c56 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071598 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit f9c287f0d9e3f99cc6a04f7443828e59b35d151f +Author: Cody Northrop +Date: Wed Aug 4 17:24:02 2021 -0600 + + Capture/Replay: Fix reset for immutable textures + + Before this CL, we were including TexStorage in the calls to reset an + immutable texture. This throws an error in GL, as you can only call + TexStorage once on a texture. + + Example from ResetReplay(): + + glBindTexture(GL_TEXTURE_2D, gTextureMap[52]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9729); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, 6403); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); + glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512); // <== ERROR + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 512, + GL_RED, GL_UNSIGNED_BYTE, ...); + + To fix this, move TexStorage into the calls used to regen the + texture rather than restore its contents. This means ResetReplay will + only call TexStorage again if the texture was actually deleted. + + Example new regen sequence, if the texture had been deleted: + + const GLuint deleteTexturesPacked[] = { gTextureMap[52] }; + glDeleteTextures(1, deleteTexturesPacked); + glGenTextures(1, reinterpret_cast(gReadBuffer)); + UpdateTextureID(52, 0); + glBindTexture(GL_TEXTURE_2D, gTextureMap[52]); + glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512); + + Also rename texCalls to texSetupCalls to more easily distinguish + from texGenCalls, now that they intermingle. + + Test: Final Fantasy MEC + Bug: b/195607411 + Bug: angleproject:6246 + Change-Id: I37daaeb6ea4337969cb241a20256fec07dce514e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073379 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 6fe918814fa1f4e02f07623ce9397b78b227f781 +Author: Shahbaz Youssefi +Date: Mon Aug 2 11:13:13 2021 -0400 + + Translator: Simplify RecordConstantPrecision + + Just before ESSL output, this transformation made some constants + specified through temp variables such that their precision can be + specified. This was done in cases where the precision actually affected + the expression being evaluated. + + This transformation is simplified by declaring constants more + conservatively as variables, and not stringently attempting to identify + whether that's necessary. This is still not done in trivial cases. + + This change is in preparation for another change that overhauls + precision propagation through the nodes. This change removes all + references to TIntermTyped::getPrecision() outside the precision + promotion code itself. + + Bug: angleproject:4889 + Change-Id: I135b2b3241aa2f76219b209241c3844f1d09ccd2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067948 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 9926ed76ed2eea0fc4a3b3f43fe8331d34b8d0aa +Author: angle-autoroll +Date: Thu Aug 5 13:12:02 2021 +0000 + + Roll VK-GL-CTS from 0eb84cfc3d3f to bf3d63599bad (5 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/0eb84cfc3d3f..bf3d63599bad + + 2021-08-05 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-08-05 rgarcia@igalia.com Test multiview with VK_EXT_multi_draw + 2021-08-05 piotr.byszewski@mobica.com Add sample mask test for FSR + 2021-08-05 venni.ihanakangas@siru.fi Remove fallback and unify testing for image clearing tests + 2021-08-04 piotr.byszewski@mobica.com Portability: fix osx target + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC syoussefi@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com,angle-bots+autoroll-info@google.com + Change-Id: I0953e406bbeafdbcb6c01eeae463e5897545ecc4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3074825 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 798c520010ce4b1160a89cf0125fc50a3dfa29e1 +Author: Shahbaz Youssefi +Date: Sat Jul 31 22:17:48 2021 -0400 + + Translator: Make precise-ness a property of AST nodes + + Instead of creating a "set of precise nodes", the nodes themselves are + marked precise. This change is preparation for another change that + overhauls precision propagation through the nodes, and which would also + be storing the promoted precision in the nodes. + + Bug: angleproject:4889 + Change-Id: Ieec8864be5cd2e95ed6fb4d90b367946d9f33fa1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065569 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 39c7f077233b4f3992fad539e7c886449b6542dd +Author: angle-autoroll +Date: Thu Aug 5 11:58:29 2021 +0000 + + Roll vulkan-deps from 2395f179eff3 to 5a3686a46647 (30 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/2395f179eff3..5a3686a46647 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/5737dbb068..366d1be5e8 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/b8c57b0a09..9fe958cdab + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/3aeed853ab..4c901a731a + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/ba8c411641..8dca1fa770 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7dea9e9e08..27a13fa6a1 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: Ieeab4f85f83433474ede63bc6ae90bbc25f039de + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3074821 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7754534c31b382a2a472c76c1b35f9c0bb69d004 +Author: angle-autoroll +Date: Thu Aug 5 10:01:44 2021 +0000 + + Roll SwiftShader from d4483095765e to e4b7794ddbee (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/d4483095765e..e4b7794ddbee + + 2021-08-04 capn@google.com Remove unimplemented MaskedStore/MaskedLoad usage + 2021-08-04 capn@google.com Optimize OpImageFetch for single-level mipmaps + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I72ddd02f0beb84d61c5fe1978099c9c090e8afbb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3074363 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 324887054e0d0fba155a7911f1803a5c614179d1 +Author: angle-autoroll +Date: Thu Aug 5 08:29:41 2021 +0000 + + Roll Chromium from 9177048d3b1a to 4867b99b3f43 (252 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9177048d3b1a..4867b99b3f43 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f050dfee22..8607487b3e + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e2e54e87a4..36299f559a + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..cb61e19efb + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/7a262eba20..0a4dd4181a + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/dd02422d01..a6e918faf0 + * tools/luci-go: git_revision:b32fc6edde4d5608ec57871438ff6d232155c225..git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b + * tools/luci-go: git_revision:b32fc6edde4d5608ec57871438ff6d232155c225..git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b + * tools/luci-go: git_revision:b32fc6edde4d5608ec57871438ff6d232155c225..git_revision:467ab48f5ed9f3ef32ae17f5b73a117e0c86566b + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/2571e59ac5..0026263559 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c2731e757d..42dc1265c0 + * tools/skia_goldctl/linux: Pc3OHV2QqhJ1IA5WQWr_kZ72iUVitbAX-iQN7j8sfcQC..H5Ax0_QmNml9Df-r61hCscndRQDsCim7j6-ST_Bqc7QC + * tools/skia_goldctl/mac: KASmGKR0ayqtBOEyjhnO0Bt_YP_U602cxGcJOOjhAPoC..VP9yR_72z50Efyz4lp6uXyLhZowfvEScnoGf8RMWlHAC + * tools/skia_goldctl/win: XfCGeDXrOWGLHwo_HFFlERuqKHW2zZGUGnF1DzCyCP0C..P8MltnujOo50R-Kl3rxhuKLOYs02wz_YJUkzOruEDYwC + Clang version changed llvmorg-13-init-15561-gf98ed74f:llvmorg-14-init-591-g7d9d926a + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/dd02422d012e13533d684953a97ebcdc491b5770..a6e918faf00591d454b99946f298e9603fd6994b/scripts/update.py + + Bug: None + Tbr: syoussefi@google.com + Change-Id: If476129c22853a2c07a03179fb4fb6a585af3a48 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073900 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9da4e52b5bb60aaf031cda9d00107c3d879db96e +Author: Cody Northrop +Date: Wed Aug 4 09:13:33 2021 -0600 + + Tests: Add PUBG Mobile battle royale trace + + Test: angle_perftests --gtest_filter="*pubg_mobile_battle_royale" + Bug: b/180418573 + Bug: angleproject:6087 + Bug: angleproject:6240 + Change-Id: I722f249a7aafdd52be96f214d56b7cfa650ae778 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071662 + Commit-Queue: Tim Van Patten + Reviewed-by: Tim Van Patten + +commit 14802390ba03a5443941bb27ee7ba7928ebd9f58 +Author: angle-autoroll +Date: Wed Aug 4 18:40:40 2021 +0000 + + Roll Chromium from 0b6b7ef9940d to 9177048d3b1a (237 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/0b6b7ef9940d..9177048d3b1a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f8bccc2739..f050dfee22 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/492ff4a1fb..e2e54e87a4 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/ae11d2854e..09da6e47b4 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..cb61e19efb + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a992238bf0..7a262eba20 + * tools/luci-go: git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9..git_revision:b32fc6edde4d5608ec57871438ff6d232155c225 + * tools/luci-go: git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9..git_revision:b32fc6edde4d5608ec57871438ff6d232155c225 + * tools/luci-go: git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9..git_revision:b32fc6edde4d5608ec57871438ff6d232155c225 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/5058076121..2571e59ac5 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2e8aac4859..c2731e757d + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com,ynovikov@google.com + Change-Id: I9133d321bf3a83355a83813e7a276e680219de66 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071939 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit e4156549041a50ad1b2765684f6fe43a9af1730d +Author: Yuly Novikov +Date: Wed Aug 4 17:28:53 2021 -0400 + + Roll googletest + + Needed to build latest abseil crrev.com/c/3070639 to roll Chromium + + Bug: None + Change-Id: I628b11649bf49936b96e0c74a1b15500b68d5693 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071944 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 1ce7839728d75b47042004c137531677415a6d5b +Author: Shahbaz Youssefi +Date: Fri Jul 30 16:51:45 2021 -0400 + + Remove support for WEBGL_debug_shader_precision + + This extension was rejected, and the implementation was hacky. This + clean up is part of an ongoing work to improve precision handling. + + Bug: angleproject:6059 + Change-Id: If08581ec6f19cf1698ffa3dd6d248dc5e68a1d31 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064303 + Reviewed-by: Kenneth Russell + Commit-Queue: Shahbaz Youssefi + +commit 7c072f7ed7ab788109f849e87026236e490d5875 +Author: Cody Northrop +Date: Wed Aug 4 09:02:30 2021 -0600 + + Tests: Add PUBG Mobile skydive trace + + Test: angle_perftests --gtest_filter="*pubg_mobile_skydive" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/180418573 + Bug: angleproject:6087 + Bug: angleproject:6240 + Change-Id: Ibcc7a5e84676d7e7e0df3fdad7aada0e23482bf2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071661 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 884b86748d613688ca78f0b6acd67bd9fa441372 +Author: angle-autoroll +Date: Wed Aug 4 03:41:14 2021 +0000 + + Roll Chromium from b3e57670ca16 to 0b6b7ef9940d (588 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b3e57670ca16..0b6b7ef9940d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e5cb50de93..f8bccc2739 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/734ceaa3d4..492ff4a1fb + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..56c45f54de + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a806594b95..a992238bf0 + * tools/luci-go: git_revision:db421da12bad8e57f97ee45b24147e34ec882007..git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9 + * tools/luci-go: git_revision:db421da12bad8e57f97ee45b24147e34ec882007..git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9 + * tools/luci-go: git_revision:db421da12bad8e57f97ee45b24147e34ec882007..git_revision:ef18edd2fa067d8bf14c006abc03993f2c1eb1b9 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b61f89672a..2e8aac4859 + No update to Clang. + + Bug: angleproject:6059 + Tbr: syoussefi@google.com,ynovikov@google.com + Change-Id: I8527b9a3ff5aabded248465354fab6c97969adc8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3070298 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + Reviewed-by: Yuly Novikov + +commit 091fb9b974ec2ede1fee90d1d9103a6fe33959cb +Author: Shahbaz Youssefi +Date: Fri Jul 23 10:44:35 2021 -0400 + + Reland "Reland "GL: Fix GPU detection"" + + This is a reland of a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1 + + It was assumed that getting the GPU info from the system will always + yield a valid Device ID, but this seems to be incorrect on some + platforms (e.g. Apple M1). Reland reverts to the old logic of silently + accepting 0 as Device ID. + + Original change's description: + > Reland "GL: Fix GPU detection" + > + > This is a reland of 30dea869a7dc939f94048de23d70705247905c51 + > + > Original change's description: + > > GL: Fix GPU detection + > > + > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this + > > ensures that the correct GPU is used to determine workarounds. + > > GetSystemInfo is still broken in that it assumes the discrete GPU to be + > > active, but with this change it will only affect the test infrastructure + > > (and not users). + > > + > > Bug: chromium:1187475 + > > Bug: angleproject:6174 + > > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c + > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 + > > Reviewed-by: Kenneth Russell + > > Reviewed-by: Jamie Madill + > > Commit-Queue: Shahbaz Youssefi + > + > Bug: chromium:1187475 + > Bug: angleproject:6174 + > Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 + > Reviewed-by: Jamie Madill + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: Ie13854da314d8963c33f61f1fd1628a674fae434 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067768 + Reviewed-by: Kenneth Russell + Commit-Queue: Shahbaz Youssefi + +commit 09d5047b41d0e700a497262b140ab61eb587baf3 +Author: Shahbaz Youssefi +Date: Tue Aug 3 01:31:03 2021 -0400 + + GL: Remove the rewriteVectorScalarArithmetic workaround + + This workaround was implemented for a bug in Nvidia driver 387 which is + end-of-life. More recent driver branches (390 and 4XX) are fixed, and + so this workaround is no longer required. The implementation of the + workaround itself could introduce bugs. + + Bug: chromium:772651 + Bug: chromium:1201084 + Change-Id: I3db179eb90d9124235bdad2daacc712302906d8e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067952 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + Reviewed-by: Kenneth Russell + +commit 10d50f649863aa166cd2e4734a7020bf8c0342f1 +Author: Shahbaz Youssefi +Date: Wed Aug 4 14:17:17 2021 +0000 + + Revert "Reland "GL: Fix GPU detection"" + + This reverts commit a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1. + + Reason for revert: assertion failure on mac ARM bots: anglebug.com/6242 + + Original change's description: + > Reland "GL: Fix GPU detection" + > + > This is a reland of 30dea869a7dc939f94048de23d70705247905c51 + > + > Original change's description: + > > GL: Fix GPU detection + > > + > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this + > > ensures that the correct GPU is used to determine workarounds. + > > GetSystemInfo is still broken in that it assumes the discrete GPU to be + > > active, but with this change it will only affect the test infrastructure + > > (and not users). + > > + > > Bug: chromium:1187475 + > > Bug: angleproject:6174 + > > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c + > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 + > > Reviewed-by: Kenneth Russell + > > Reviewed-by: Jamie Madill + > > Commit-Queue: Shahbaz Youssefi + > + > Bug: chromium:1187475 + > Bug: angleproject:6174 + > Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 + > Reviewed-by: Jamie Madill + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: Ice7a1246cb7ad0c257e685b1da4424aba8eaf406 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067767 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + Bot-Commit: Rubber Stamper + +commit 215d00b13df2a05e7a556cf4e5f2cb2ed59d1246 +Author: SeongHwan Park +Date: Tue Aug 3 23:34:02 2021 +0900 + + D3D11: Add validation for storages size in updateBufferStorage + + The source/dest BufferStorage used by the updateBufferStorage + may have a raw buffer ptr value of null. + + Add size validation to prevent null crashes. + + Bug: angleproject:6235 + Change-Id: I57ed1ae0e558bd2f61273c64ed067958a1603425 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069000 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 217acac2b4a791a1d87dcd100ecd32bd6cd7e8c4 +Author: Brandon Schade +Date: Wed Jul 21 12:42:56 2021 -0700 + + Vulkan: Add support for EXT_primitive_bounding_box + + 1. Added support for EXT_primitive_bounding_box extension + 2. Renamed shader variable gl_BoundingBoxEXT[] to ANGLEBoundingBox[] + + Bug: angleproject:3576 + Test: dEQP-GLES31.functional.primitive_bounding_box.* + Change-Id: I15fa9af50c6fd8e86d225670ddd8eb39f6e65d35 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053618 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit cb0b4b7e9c9ad41a00f3dcd88ec12907fcdb25e5 +Author: Jamie Madill +Date: Wed Aug 4 08:05:14 2021 -0400 + + Perf Bots: Upload proper build URL. + + We were missing setting the 'project' when communicating with + the upload script. + + Bug: chromium:1236071 + Bug: angleproject:6090 + Change-Id: I984761483d9b47aecfe52366c47a972700266829 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065831 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit db599f658e6a79f6d745ce4ca0b99d468221596b +Author: angle-autoroll +Date: Wed Aug 4 10:01:44 2021 +0000 + + Roll SwiftShader from dcfc0a6e2d84 to d4483095765e (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/dcfc0a6e2d84..d4483095765e + + 2021-08-03 capn@google.com Fix computing anisotropy factor for single-level mipmap + 2021-08-03 swiftshader.regress@gmail.com Regres: Update test lists @ dcfc0a6e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I068fe41787f0e207d40b16069ca3ed2e57a280be + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069431 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 35bdaf8dc48511b2a44bba188c05978e42b64e9a +Author: Jamie Madill +Date: Tue Aug 3 08:12:26 2021 -0400 + + Capture/Replay: Minor cleanups. + + Removes a duplicate assignment to the enabled variable. In the cpp + it's set to true, and in the header it was false. Also updates a + few variable names to be consistent with the group. + + Bug: angleproject:5133 + Change-Id: I3fb00ecc474191bea7c3a650ce23805b6f02d667 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066007 + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 5bbaa2c58216b6b608e1fc5b9f219f1a5e73ebed +Author: Cody Northrop +Date: Mon Aug 2 15:50:11 2021 -0600 + + Capture/Replay: Track arrayed uniform locations + + Arrayed uniform values consume multiple locations. Until now we've + only tracked the starting location in our lookup table. This breaks + down when applications update uniforms in the middle of an array. + We don't have a location to provide. We need to start tracking a + location per entry. + + To support this, pass in the uniform count to UpdateUniformLocation + and track a location for each array entry. Do it with an overload to + preserve functionality with existing traces. + + Test: PUBG Mobile MEC + Bug: b/180418573 + Bug: angleproject:6087 + Bug: angleproject:6234 + Change-Id: I74fbe201cb37273d1a5f361ef0c951e00ca89a88 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068199 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 8ca013e1ff17b19f3d23ebb8ab3d1a3c7f8c2ca3 +Author: angle-autoroll +Date: Tue Aug 3 21:22:31 2021 +0000 + + Roll Chromium from c96bed01e3be to b3e57670ca16 (245 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/c96bed01e3be..b3e57670ca16 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9ee6ac6515..e5cb50de93 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8872b6cf61..734ceaa3d4 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..0ad63d2356 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/6075f1fabd..563140dd9c + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/d0097bccba..dd02422d01 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/56a35530fc..5058076121 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9c1129d333..b61f89672a + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com,ynovikov@google.com + Change-Id: I38e023adaf1a78946475e0fa2ed8fb215df4b470 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069720 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + Reviewed-by: Yuly Novikov + +commit f99426400493a4623d55d59a9c51cfee87b30bbf +Author: Shahbaz Youssefi +Date: Tue Aug 3 11:45:31 2021 -0400 + + Translator: Fix fuzzer crashing on assertion + + An assertion was triggered by the fuzzer when generating an invalid + shader that redeclared a built-in. The assertion itself was unnecessary + and the parser would appropriately generate an error if that assertion + would have fired. + + Bug: angleproject:4889 + Bug: chromium:1235229 + Change-Id: I294b2e329491c75d4e87622b602570252555869f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063910 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1 +Author: Shahbaz Youssefi +Date: Fri Jul 23 10:44:35 2021 -0400 + + Reland "GL: Fix GPU detection" + + This is a reland of 30dea869a7dc939f94048de23d70705247905c51 + + Original change's description: + > GL: Fix GPU detection + > + > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this + > ensures that the correct GPU is used to determine workarounds. + > GetSystemInfo is still broken in that it assumes the discrete GPU to be + > active, but with this change it will only affect the test infrastructure + > (and not users). + > + > Bug: chromium:1187475 + > Bug: angleproject:6174 + > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 + > Reviewed-by: Kenneth Russell + > Reviewed-by: Jamie Madill + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit a65b405607d37146a1cc561311cd16a439ef61f4 +Author: Shahbaz Youssefi +Date: Fri Jul 30 23:00:57 2021 -0400 + + Reland "Translator: Clean up type cloning" + + This is a reland of f016c4352f5203c10511df078b1ed5359afc1b35 + + Original change's description: + > Translator: Clean up type cloning + > + > TType has a constructor that aids cloning + helpers to convert between + > types. A number of places where a type is constructed from the + > information gathered from another type is changed to clone the type and + > then use one of these helpers. + > + > This clean up is part of an ongoing work to improve precision handling. + > This change removes many references to TType::getPrecision(). + > + > Bug: angleproject:4889 + > Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 + > Commit-Queue: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + > Reviewed-by: Tim Van Patten + + Bug: angleproject:4889 + Change-Id: I35772f178eb4f6cf2b64bfeb37a4a144acdb4daf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067802 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c5c8a25a8e1b0ee4e3d4d967769c649616aa376c +Author: Austin Eng +Date: Tue Aug 3 14:40:33 2021 +0000 + + Revert "Translator: Clean up type cloning" + + This reverts commit f016c4352f5203c10511df078b1ed5359afc1b35. + + Reason for revert: Suspect for crbug.com/1236060 + + Original change's description: + > Translator: Clean up type cloning + > + > TType has a constructor that aids cloning + helpers to convert between + > types. A number of places where a type is constructed from the + > information gathered from another type is changed to clone the type and + > then use one of these helpers. + > + > This clean up is part of an ongoing work to improve precision handling. + > This change removes many references to TType::getPrecision(). + > + > Bug: angleproject:4889 + > Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 + > Commit-Queue: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + > Reviewed-by: Tim Van Patten + + Bug: angleproject:4889 + Change-Id: I9b5ecacc410b41be382232292ceae2f7ea7906c7 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064393 + Bot-Commit: Rubber Stamper + Commit-Queue: Austin Eng + +commit 1f0e2916e59c47bbc475444928d139261183474c +Author: Jamie Madill +Date: Tue Aug 3 13:42:28 2021 +0000 + + Revert "GL: Fix GPU detection" + + This reverts commit 30dea869a7dc939f94048de23d70705247905c51. + + Reason for revert: Breaking roll into Chrome, see bug. + + Original change's description: + > GL: Fix GPU detection + > + > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this + > ensures that the correct GPU is used to determine workarounds. + > GetSystemInfo is still broken in that it assumes the discrete GPU to be + > active, but with this change it will only affect the test infrastructure + > (and not users). + > + > Bug: chromium:1187475 + > Bug: angleproject:6174 + > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 + > Reviewed-by: Kenneth Russell + > Reviewed-by: Jamie Madill + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: I815c456b0e9775115ae6d2577b40399818b5bff5 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067800 + Bot-Commit: Rubber Stamper + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e990fd0f01c845528e997addbf32aec37a343aba +Author: angle-autoroll +Date: Tue Aug 3 10:01:15 2021 +0000 + + Roll SwiftShader from 44660405ea6c to dcfc0a6e2d84 (6 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/44660405ea6c..dcfc0a6e2d84 + + 2021-08-02 capn@google.com Fix ignoring fragment shader depth for EarlyFragmentTests mode + 2021-08-02 capn@google.com Include multisample handling into fragment pipeline stages + 2021-08-02 capn@google.com Only process active fragment samples + 2021-08-02 capn@google.com Refactor sample shading state determination + 2021-08-02 srisser@google.com Add Bias and Fetch to divergent Lod sampling + 2021-08-02 srisser@google.com Optimize Lod and Grad texture sampling + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I03ec6fa5deb5cceb50786f835101d48ece5e6d9e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068651 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 747d5323fa994de86f61889e3e058f9d61b2ff94 +Author: Lubosz Sarnecki +Date: Tue Jul 27 13:30:59 2021 +0200 + + gen_restricted_traces: Add kReplayDrawSurfaceColorSpace. + + Use default color space if the trace doesn't specify one. + + Use Python 3.6 f-strings for the possibility to have default + values at all positions and remove the now redundant defaults string. + + This breaks Python 2 compatibility for gen_restricted_traces.py. + + See PEP 498: https://www.python.org/dev/peps/pep-0498/ + + Bug: angleproject:5857 + Change-Id: I532014e8e64ea792604a96a42ad998564882d801 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056372 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit ac5bcdb3c6f2d24c7c0976588d8dff3b190d4345 +Author: Jamie Madill +Date: Mon Aug 2 18:04:49 2021 -0400 + + Vulkan: Use custom volk init function. + + This should ensure we're using ANGLE's version of the loader. + + Bug: chromium:1235314 + Change-Id: Ia7318a922e192ce669a8cece070ab518ea421fd5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067511 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 262dc97c41c674d12ca5abeff2974dbc76f68439 +Author: Lubosz Sarnecki +Date: Tue Jul 27 11:13:59 2021 +0200 + + FrameCapture: Capture the EGL color space. + + Add a SurfaceParams struct containing extents and color space so + a single map can be used for all draw surface parameters. + Persist the color space in the trace's header. + + Bug: angleproject:5857 + Change-Id: I327da8c8870f2d76d057954af57d977a10ebb59f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056371 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 85e490535a1f3c5466fd0716b50a1294e254b301 +Author: angle-autoroll +Date: Mon Aug 2 07:50:32 2021 +0000 + + Roll Chromium from 7ad7eb435b84 to c96bed01e3be (1394 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/7ad7eb435b84..c96bed01e3be + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/96a4da9412..9ee6ac6515 + * buildtools/linux64: git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e..git_revision:eea3906f0e2a8d3622080127d2005ff214d51383 + * buildtools/mac: git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e..git_revision:eea3906f0e2a8d3622080127d2005ff214d51383 + * buildtools/win: git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e..git_revision:eea3906f0e2a8d3622080127d2005ff214d51383 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/88e2d8b080..8872b6cf61 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/368be24f93..ae11d2854e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..4505381167 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/2229323ff7..9ce4c7a678 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/dfbc590f58..6075f1fabd + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2a8bb1ca80..d0097bccba + * tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:db421da12bad8e57f97ee45b24147e34ec882007 + * tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:db421da12bad8e57f97ee45b24147e34ec882007 + * tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:db421da12bad8e57f97ee45b24147e34ec882007 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ef691997d9..56a35530fc + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b210baf513..9c1129d333 + Clang version changed llvmorg-13-init-16514-gb1777b04:llvmorg-13-init-15561-gf98ed74f + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/2a8bb1ca80b166cb11a81ffc35e8f374af240e04..d0097bccbaab2f439b83ba93c6634ba91ca882fb/scripts/update.py + + Bug: None + Tbr: geofflang@google.com + Change-Id: I2dd100192c502e329200d8c94bd013fecbbece05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067054 + Bot-Commit: angle-autoroll + Commit-Queue: Shahbaz Youssefi + +commit 30dea869a7dc939f94048de23d70705247905c51 +Author: Shahbaz Youssefi +Date: Fri Jul 23 10:44:35 2021 -0400 + + GL: Fix GPU detection + + Always use GL_VENDOR to determine vendor. On multi-GPU systems, this + ensures that the correct GPU is used to determine workarounds. + GetSystemInfo is still broken in that it assumes the discrete GPU to be + active, but with this change it will only affect the test infrastructure + (and not users). + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit f016c4352f5203c10511df078b1ed5359afc1b35 +Author: Shahbaz Youssefi +Date: Fri Jul 30 23:00:57 2021 -0400 + + Translator: Clean up type cloning + + TType has a constructor that aids cloning + helpers to convert between + types. A number of places where a type is constructed from the + information gathered from another type is changed to clone the type and + then use one of these helpers. + + This clean up is part of an ongoing work to improve precision handling. + This change removes many references to TType::getPrecision(). + + Bug: angleproject:4889 + Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 61517a160f016bcc4922fe49255405986ccf8182 +Author: Jamie Madill +Date: Mon Aug 2 16:49:32 2021 -0400 + + Remove extra angle:: uses from ANGLEPestTest.cpp. + + Bug: None + Change-Id: I7101398504c547b97b9184c56b252bef5198cecb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067510 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit fc6ce9ba1d8647af58af42f151ab661efae908b8 +Author: Jamie Madill +Date: Mon Aug 2 13:47:36 2021 -0400 + + Fix unreachable case in test instantiate. + + This error would only trigger when the "null" back-end was + disabled. This would happen on official builds of Chrome. + + Bug: chromium:1235656 + Change-Id: Icd516513fe28b2b6d6a451503fc690093371acb3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067759 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 26329cb935b571fdc6530dc790ad81e3a70e92b6 +Author: Jamie Madill +Date: Fri Jul 30 09:55:24 2021 -0400 + + Test Runner: Allow listing tests on Android. + + Because of quirks with the Chromium-provided Android test runner, + we need to use a few tricks to get the test list output. We add + placeholder output for a single test to trick the test runner into + thinking it ran the tests successfully. We also add an end marker + for the tests list so we can parse the list from the more spammy + Android stdout log. + + Will enable a Python wrapper script to list and run performance + tests outside of the GTest harness. + + Bug: angleproject:6090 + Change-Id: I810d4722e9a6efa03ef94208e516401890af1c37 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062240 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 0ce5f85f15b9f0ddb83bd04d5bd6c3d7e2b6a45b +Author: Jamie Madill +Date: Mon Aug 2 12:05:17 2021 -0400 + + Capture/Replay Tests: Skip crashing test. + + PBOCompressedTextureTest.PBOCompressedSubImageWithUnpackRowLength/* + + Was added in a CL that didn't test win-trace-rel. + + Bug: None + Change-Id: I91b056b50b53a302816564d6f12a0ef0f765e675 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067758 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit aca9f2e28f5d905cf3c47b54fda35612c27e59a0 +Author: Shahbaz Youssefi +Date: Thu Jul 29 17:49:26 2021 -0400 + + Vulkan: SPIR-V Gen: Fix constructors with uniform parameters + + When the constructor contains parameters from interface blocks, they may + have SPIR-V type specializations that was not previously accounted for. + The code is made more robust by retrieving the column/component types + when generating constructors through TTypes instead of modifying + SpirvTypes directly. + + Bug was caught by the WebGL CTS. + + Bug: angleproject:4889 + Change-Id: I6c9df17a97fac8622dea55ed67c7bae1ce16d1bd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061640 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 3a6a0e910080d2544be3391b56e85bce1549bfc2 +Author: Jamie Madill +Date: Mon Aug 2 08:01:33 2021 -0400 + + Remove ASSERT in computeRowPitch about row length. + + Compressed texture image uploads ignore unpack parameters. So it's + not an error if these parameters have non-default values. We just + ignore them anyway. This ASSERT was causing a crash in some edge + cases in debug and dcheck builds. + + ASSERT introduced in https://crrev.com/c/348064 + + Bug: chromium:1235031 + Change-Id: I1db6ebc9f5572a92ab16bb13da4c236f6fcb8ce2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064986 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit a16cb097c899dd8ab0eccacc8a90307ae298f5ea +Author: angle-autoroll +Date: Mon Aug 2 10:01:30 2021 +0000 + + Roll vulkan-deps from eca94bf2bef7 to 2395f179eff3 (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/eca94bf2bef7..2395f179eff3 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/50849374cb..e0f3fdf433 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I33270a2bf008d12ecc0fd2aab637c2fb595adc32 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067171 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d4d6c23c7c21c0b2d361ffa54f6bc8eeb43cd365 +Author: Peter Kasting +Date: Sat Jul 31 11:41:29 2021 -0700 + + Fix a recently-introduced case of -Wunreachable-code-aggressive. + + Also enable this and -Wunused-but-set-variable to avoid regressing them. + + Bug: chromium:1066980 + Change-Id: I1fd7a57c2bf14513d657b69b70e35ad727c75ffd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065355 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit a379730191b995d184997764db25dd686c8335ab +Author: angle-autoroll +Date: Sat Jul 31 01:20:15 2021 +0000 + + Roll vulkan-deps from 55a0cb8b66ac to eca94bf2bef7 (22 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/55a0cb8b66ac..eca94bf2bef7 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/d433cccb8a..50849374cb + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/1964799fba..bab4e5911b + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/983ee2313c..5737dbb068 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/99a7440204..3aeed853ab + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8fb97f0282..7dea9e9e08 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I022ee6a176063c3fe0c1565cc0ae4e022aaef1a0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064846 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ae8ef0397ad115d073a7506d299b6268ca2bf0e2 +Author: Shahbaz Youssefi +Date: Fri Jul 30 00:43:14 2021 -0400 + + Translator: Correctly respect precision of gl_FragColor/Data + + These builtins are declared with a mediump precision. However, during + translation to Vulkan GLSL, the precision was not output and as such + glslang treated them as highp. + + Discovered through comparison with SPIR-V output from ANGLE which + included more RelaxedPrecision operations. + + Bug: angleproject:4889 + Change-Id: I7974478e87ad20115345d679f8f035492be1f349 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062204 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 246e95a53b95c8723d5ab1050b2f38d9832f030c +Author: Shahbaz Youssefi +Date: Fri Jul 30 21:40:48 2021 -0400 + + Disable Precise unittests without SPIR-V gen enabled + + Half the tests fail with glslang, which have the expectations set + appropriately. When SPIR-V gen is disabled in build, when the unittest + attempts to run the SPIR-V gen path it will use glslang instead and + cause test failures. The whole suite is disabled temporarily when + SPIR-V gen is disabled (i.e. non-dcheck builds). + + Bug: angleproject:4889 + Change-Id: I8686eafef6821c6207c94f991cd8af2fb65a87ef + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063943 + Commit-Queue: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + Reviewed-by: Tim Van Patten + +commit 8fb5c2f2df480c0a855cd97b4c02775d6ad0eb25 +Author: Shahbaz Youssefi +Date: Thu Jul 29 23:41:08 2021 -0400 + + Vulkan: SPIR-V Gen: Fix OpImage* on multisampled images + + Lod should not be implicitly specified on multisampled images per spec. + This change fixes a crash on Intel/Mesa with the + TextureSampleShadingTest.Basic/ES3_1_Vulkan test. + + Old spirv-val catches this bug, but ToT has regressed this: + + https://github.com/KhronosGroup/SPIRV-Tools/issues/4424 + + Bug: angleproject:4889 + Change-Id: Ic2a661ce5264beb1f47f4e52706fe6556176628d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062203 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit ebe943e2faef27be83f3dcaf4213e465ab9eee5c +Author: Shahbaz Youssefi +Date: Thu Jul 29 11:19:33 2021 -0400 + + Vulkan: SPIR-V Gen: Fix gl_Clip/CullDistance + + These built-ins can be redeclared in the shader. The translator took + these redeclarations (and gl_LastFragData) as UserDefined symbols. + There were a number of hacks such as in name generation and + CollectVariables, to special-case these redeclarations. + + This change instead makes sure that these variables continue to be + considered built-ins with the appropriate qualifiers. A number of fixes + are made accordingly: + + - Hacks are removed. + - In fragment shaders, ANGLEClipDistance was initialized with + gl_ClipDistance for further use by the shader. The code generation + however mistakenly produced `gl_ClipDistance[0] = + ANGLEClipDistance[0];`, which caused compilation failures by glslang, + but passed the tests accidentally because they expected link failures + (see next item). + - CollectVariables is fixed to correctly collect gl_Clip/CullDistance + in fragment shaders; previously they were collected as output + varyings, and therefore the aforementioned link error was not produced + in the tests after the compilation error was fixed. + + Additional fixes: + + - The transformation of gl_Clip/CullDistance was always ever done on one + of them due to misplaced breaks in the loop that detected their + presence. + - The transformation of gl_CullDistance was skipped when it was not + redeclared. + + Validation is added to make sure these built-ins always have the correct + qualifier even when redeclared. SPIR-V gen support for these variables + have been fixed as well. + + Bug: angleproject:4889 + Change-Id: Ic8bf2c508357035cb937ef41a28ae22ffc533ebe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059921 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit a83c9108c743d1dcbb1727ab5b8202d7d58e6911 +Author: Shahbaz Youssefi +Date: Thu Jul 29 17:13:41 2021 -0400 + + Vulkan: SPIR-V Gen: Fix nested ternary operators + + The OpPhi instruction used to implement ternaries referenced to the + blocks pregenerated for the true and false cases. However, if there + were other code nested inside that could generate blocks (other + ternary expressions or short-circuits), that would be wrong. + + Instead, the last block id is taken every time the true or false case is + entirely visited (similar to how it's done in the short-circuit + implementation). + + Bug was caught by the WebGL CTS. + + Bug: angleproject:4899 + Change-Id: I71be86989dfe9596a13940ce657a7e67849e86bf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061639 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 2b23aae4cc6775414f5dbc5be3612ed7c32730a1 +Author: Shahbaz Youssefi +Date: Thu Jul 29 16:39:28 2021 -0400 + + Vulkan: SPIR-V Gen: Support vec(..., mat) + + Matrices specified in vector constructor arguments were not correctly + handled w.r.t to casting (caught by the WebGL CTS). + + Bug: angleproject:4889 + Change-Id: I70253f049a651fc5f439b56d1e4d8f785813b605 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061638 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit f549594f44d2a9499522a2e2bd330624bdff6c0a +Author: angle-autoroll +Date: Fri Jul 30 19:15:05 2021 +0000 + + Roll VK-GL-CTS from 571256871c2e to 0eb84cfc3d3f (25 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/571256871c2e..0eb84cfc3d3f + + 2021-07-29 gleese@broadcom.com Add more tests for YCbCr plane compatibility + 2021-07-29 gleese@broadcom.com Remove invalid reserved keywords tests + 2021-07-29 rgarcia@igalia.com Test line stipple factor is ignored if not used + 2021-07-29 rgarcia@igalia.com Test zero-size unused specialization constants + 2021-07-28 slawomir.cygan@intel.com Fix build on CLang failing due to -Wunused-private-field + 2021-07-28 venni.ihanakangas@siru.fi SwiftShader script improvements + 2021-07-28 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-07-27 alexander.galazin@arm.com Update glslang, SPIR-V Tools, headers + 2021-07-27 jason.ekstrand@intel.com Add tests for VK_EXT_shader_atomic_float2 + 2021-07-27 rgarcia@igalia.com Tests for VK_KHR_present_id and VK_KHR_present_wait + 2021-07-27 alexander.galazin@arm.com Update Vulkan headers + 2021-07-23 jin.zhou@amd.com Fix uninitialized local variables in generated shader. + 2021-07-23 siglesias@igalia.com Fix most dEQP-VK.sparse_resources.shader_intrinsics.* validation errors + 2021-07-23 rgarcia@igalia.com Additional dynamic depth bias tests + 2021-07-23 rgarcia@igalia.com Test VK_EXT_multi_draw with geometry and tessellation shaders + 2021-07-22 gleese@broadcom.com Remove unused test cases from gen-keywords script + 2021-07-22 post@arntzen-software.no Test dynamic vertex stride of 0. + 2021-07-22 gleese@broadcom.com Add Image Store tests to BGRA images + 2021-07-22 piotr.byszewski@mobica.com Test fragment shading rate limits and rates + 2021-07-22 siglesias@igalia.com Add more test related to early fragment tests + 2021-07-22 alexander.galazin@arm.com Remove replacement of bool32 + 2021-07-22 alexander.galazin@arm.com Replace DWORD with uint32_t + 2021-07-22 siglesias@igalia.com Fix early destruction of VkPipelineLayout + 2021-07-22 mikko.tiusanen@siru.fi Reorder vulkan enum elements + 2021-07-19 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC angle-bots+autoroll-info@google.com,timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: angle-bots+autoroll-info@google.com,timvp@google.com + Change-Id: I3f0e4dbc7dfd3043f4c2318f56626d6cb3646b9a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064027 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit aec5e65cb77a503d466d7c414e72d03f3a0b39d3 +Author: Kenneth Russell +Date: Wed Jul 28 00:36:12 2021 -0700 + + Get direct-to-Metal backend to run angle_end2end_tests. + + Cherry-pick nameless struct fix from Apple in + https://bugs.webkit.org/show_bug.cgi?id=227482 . + + Fix SeparateCompoundStructDeclarations pass to stop generating + multiple declarations; thanks syoussefi@ for advice. + + Incorporate additional passes from TranslatorVulkan + (MonomorphizeUnsupportedFunctionsInVulkanGLSL, + RewriteArrayOfArrayOfOpaqueUniforms, + SeparateStructFromUniformDeclarations) needed by RewriteStructSamplers + pass in TranslatorMetalDirect. Fixes many assertion failures in GLSL + tests. Moved these passes out of tree_ops/vulkan. Thanks again to + syoussefi@ for advice and help. + + Disable a validation check related to the RewritePipelines pass. Skip + two tests that were failing for other reasons. + + With these changes, angle_end2end_tests runs to completion when the + direct-to-Metal backend is turned on. There are still ~1300 failures + of the ~4000 tests which will be investigated next. + + Bug: angleproject:5505 + Change-Id: Ibca77822543e8e8e8d2a8c862e92cdf74bfa3545 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058524 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Kenneth Russell + +commit 22ae4ce0ea69c1efae2eea09b3d2d0d2fcf7d638 +Author: Shahbaz Youssefi +Date: Wed Jul 28 16:06:49 2021 +0000 + + Revert "Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout" + + This reverts commit f4f866ce289423d691a0edc0d44d13f4de16f897. + + Reason for revert: These tests should not be disabled. The culprit is + fixed per crbug.com/1233361 + + Original change's description: + > Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout + > + > The tests are blocking the CQ due to flakiness. + > + > Bug: chromium:1233361 + > Change-Id: Ib0283e201c271379364a177bea130d63322eee53 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058233 + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Shahbaz Youssefi + + Bug: chromium:1233361 + Change-Id: I24682f74d790d40f58a9526aaaaa842c3df23ec0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058502 + Bot-Commit: Rubber Stamper + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 96ccf3f43e9e4707738b35ffe7142d38a934da7b +Author: Shahbaz Youssefi +Date: Thu Jul 29 12:38:21 2021 -0400 + + Translator: Consolidate EvqFragDepth and EvqFragDepthEXT + + They were the same thing. Fixes SPIR-V generation which only handled + EvqFragDepth. + + Bug: angleproject:4889 + Change-Id: Id2c35f4c5a26e43ad16a420cc0306756a1add082 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059922 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 014460d8ad7aa1bdb5275b47cb5a658ee0683c54 +Author: Alexis Hetu +Date: Fri Jul 30 09:19:50 2021 -0400 + + Rename WebSwapLayerCGL to WebSwapCGLLayer + + Renaming WebSwapLayerCGL to fix the following MacOS warning: + + Class WebSwapLayerCGL is implemented in both + /System/Library/Frameworks/WebKit.framework/Versions/A/ + Frameworks/WebCore.framework/Versions/A/WebCore + and + .../chromium/src/out/.../Chromium.app/Contents/Frameworks/ + Chromium Framework.framework/Versions/.../Libraries/ + libGLESv2.dylib + One of the two will be used. Which one is undefined. + + Bug: angleproject:5253 + Change-Id: I016e7467994d3ecf7b22750af2606314593dd516 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062212 + Reviewed-by: Jamie Madill + Commit-Queue: Alexis Hétu + +commit cad2bcb8250deb5f8cd516593e8e772912e66413 +Author: Lubosz Sarnecki +Date: Tue Jul 27 11:40:25 2021 +0200 + + packed_egl_enums: Add ColorSpace. + + Add EGL ColorSpace enum consisting of sRGB and Linear entries. + + Bug: angleproject:5857 + Change-Id: I1e30db6fca6ad65db17a6369a26eae886468a85d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056370 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + +commit 3036e0903c8d1e4f8c9b64bb67ad86812cc027d5 +Author: Shahbaz Youssefi +Date: Thu Jul 29 15:55:39 2021 -0400 + + Vulkan: Direct SPIR-V Gen: Support the precise keyword + + The precise keyword is different in GLSL in that it defines what + arithmetic operations _that have led to the value being assigned to a + variable_ should be done precisely (i.e. not "contracted"). + + A tree traverser is implemented that detects precise access chains and + applies precise-ness to the right hand side of assignment expressions to + said access chains. This is only done if the shader uses the precise + keyword in the first place. The algorithm for this is inspired by the + implementation in glslang. + + This change additionally: + + - Fixes parser to allow precise on function parameters + - Fixes GLSL code generation to output precise on struct members and + function parameters. + + Bug: angleproject:4889 + Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 8f77e0bc6e73efa93d368c6000564e5061f7027c +Author: Shahbaz Youssefi +Date: Thu Jul 29 15:54:26 2021 -0400 + + Define angle::HashSet potentially using abseil + + Split change from CL using it for simplicity. + + Bug: angleproject:4889 + Change-Id: Ie3e621dee624020581e9fd7679639332718948f6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061439 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 71fb0352c3d7819efc44045407aa33bdf7d206f9 +Author: angle-autoroll +Date: Thu Jul 29 10:01:13 2021 +0000 + + Roll vulkan-deps from ecc420b25566 to 55a0cb8b66ac (8 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/ecc420b25566..55a0cb8b66ac + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/1978c7692f..d433cccb8a + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/cf653e4ca4..e7b49d7fb5 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/11cd875ed8..983ee2313c + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/a4ee3cacbb..ba8c411641 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Ida81847ef1271bcdcac1485e40e6e848b6130ff4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059844 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b7eec5c63262308c3372bb09794763b7499550eb +Author: angle-autoroll +Date: Thu Jul 29 10:01:14 2021 +0000 + + Roll SwiftShader from b8bcc42a41e5 to 44660405ea6c (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b8bcc42a41e5..44660405ea6c + + 2021-07-28 capn@google.com Initialize llvm::orc::ExecutionSession with default SelfExecutorProcessControl + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Ieb2440c196b8544dcae8c0965fb8c351ac5dc4bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3060439 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e74638fed769977a36038f74fdba10a71eee233f +Author: Kenneth Russell +Date: Wed Jul 28 19:03:43 2021 -0700 + + Disable Metal shader cache again in angle_end2end_tests. + + This hooking was removed in + https://chromium-review.googlesource.com/3010486 and sped up local + test runs, but seems to have reintroduced flakiness on the Mac AMD + Retina bots. + + Bug: chromium:1233864 + Bug: angleproject:5505 + Change-Id: I46d95545fbbedc0e881e3a2832a5ac5d5384f405 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057823 + Commit-Queue: ccameron + Reviewed-by: ccameron + +commit ae24c9d387827b13b6f8c724c57b1416243112fa +Author: Aditya Kushwah +Date: Mon Jul 19 12:11:41 2021 -0700 + + Remove space from internal debug name strings. + + This changes will reduce the amount of memory used by labels by + removing the in between spaces from internal debug name strings. + + Bug: chromium:1164111 + Change-Id: I0ec657789dade2c3c053966ffccfbd673186fdad + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039119 + Reviewed-by: Rafael Cintron + Reviewed-by: Jamie Madill + Commit-Queue: Rafael Cintron + +commit b8e8c8229ca6e19a2e44c2b4ff646ac16a11bed0 +Author: Brian Sheedy +Date: Tue Jul 27 11:19:59 2021 -0700 + + Suppress Mac 11.4 failures + + Suppresses several Mac 11.4 AMD failures that were found after we + started testing the configuration. + + Bug: angleproject:6222, angleproject:6223 + Change-Id: I4f0f5ac0ab14d2645bb76def3e4ec55d999940fa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056839 + Reviewed-by: Yuly Novikov + Commit-Queue: Brian Sheedy + +commit 8593e0a249af6dcf69b4372c275e754bc708a09b +Author: Shahbaz Youssefi +Date: Wed Jul 28 13:52:06 2021 -0400 + + TestSuite tests: Don't validate stderr until fixed + + Bug: chromium:1233361 + Change-Id: Ibcd66520d7b842211eafb26f9188298c281cbe64 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058503 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit b751b18595e43046c4d0b99d0a64ecc66f22107a +Author: Shahbaz Youssefi +Date: Thu Jul 22 22:10:22 2021 -0400 + + infra: Enable gles3.2 deqp tests with direct SPIR-V generation + + Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4. + + Bug: angleproject:4889 + Change-Id: I3050ed53b48cc114c940486871910a3b9c5adea5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047383 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + Reviewed-by: Jamie Madill + +commit 630077c5f7ab8ed8052dde52d8dc5be3b6cd1bda +Author: Shahbaz Youssefi +Date: Thu Jul 22 22:08:21 2021 -0400 + + infra: Enable gles3.1 deqp tests with direct SPIR-V generation + + Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4. + + Bug: angleproject:4889 + Change-Id: Id82c909e368cdc189aea2e44f6371a27d8232e37 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047382 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + Reviewed-by: Jamie Madill + +commit f4f866ce289423d691a0edc0d44d13f4de16f897 +Author: Anton Bikineev +Date: Wed Jul 28 10:55:12 2021 +0200 + + Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout + + The tests are blocking the CQ due to flakiness. + + Bug: chromium:1233361 + Change-Id: Ib0283e201c271379364a177bea130d63322eee53 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058233 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 111c9a1578f4e516ee7fad65a35698e8f41e4e4c +Author: angle-autoroll +Date: Wed Jul 28 10:01:13 2021 +0000 + + Roll vulkan-deps from 42c7e9bc00c2 to ecc420b25566 (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/42c7e9bc00c2..ecc420b25566 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/9158061398..1978c7692f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/459cb6009e..8fb97f0282 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I37235d3641b8c0d02bdd1cd1997c0765eeed861f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057818 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c72bb3616a381792bd322d16779bc023016de079 +Author: angle-autoroll +Date: Wed Jul 28 10:01:14 2021 +0000 + + Roll SwiftShader from 915947134128 to b8bcc42a41e5 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/915947134128..b8bcc42a41e5 + + 2021-07-27 capn@google.com Remove -Wno-unused-but-set-variable flag usage + 2021-07-26 pkasting@chromium.org Fix some instances of -Wunused-but-set-variable. + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Ib9f66aa6a4e1970b9115679d94678c5520e9deed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058731 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 48a618894387d3e39f4e58f2eacb33580184b4ab +Author: angle-autoroll +Date: Wed Jul 28 07:00:02 2021 +0000 + + Roll Chromium from f18a56e21b43 to 7ad7eb435b84 (470 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f18a56e21b43..7ad7eb435b84 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/2e6288eaef..96a4da9412 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/bfcda91989..24e92c2bee + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/ed11dbd7ea..88e2d8b080 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/69fa5ec37a..2a8bb1ca80 + * tools/luci-go: git_revision:04c7051e7a02d7000bf28b53a575fea10220b555..git_revision:75ff299b9adf969190cafebe902255856a346f0b + * tools/luci-go: git_revision:04c7051e7a02d7000bf28b53a575fea10220b555..git_revision:75ff299b9adf969190cafebe902255856a346f0b + * tools/luci-go: git_revision:04c7051e7a02d7000bf28b53a575fea10220b555..git_revision:75ff299b9adf969190cafebe902255856a346f0b + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/a577fc1092..ef691997d9 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e39d397fb7..b210baf513 + * tools/skia_goldctl/linux: kaeAzSau0swqM5_PxvyRfHSMDvXSjyDsqgPiP5rpoYEC..Pc3OHV2QqhJ1IA5WQWr_kZ72iUVitbAX-iQN7j8sfcQC + * tools/skia_goldctl/mac: sZ1aXBq0Ae2kaeyAtTGpMuEEGdcqMzga658pAaCAl0IC..KASmGKR0ayqtBOEyjhnO0Bt_YP_U602cxGcJOOjhAPoC + * tools/skia_goldctl/win: 67QQ3-xX3VTYrb9YrwUR0VedVqNq7sebZZeHS823QdcC..XfCGeDXrOWGLHwo_HFFlERuqKHW2zZGUGnF1DzCyCP0C + No update to Clang. + + Bug: None + Tbr: timvp@google.com + Change-Id: Ie43056dba44cde445c38237c6e2aab6740a41922 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058570 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7c6da49358141c7bbcbc06a4fcc6eaedffb1c1c9 +Author: Shahbaz Youssefi +Date: Mon Jul 26 21:24:25 2021 -0400 + + Translator: Make sure built-in variables are consistent + + Some transformations left the tree in an inconsistent state, for example + if it used gl_SampleMask from ES3.1+OES_sample_variables and the + transformation added a usage of gl_SampleMask from ES3.2. The offending + transformations are fixed and AST validation is improved to catch such + errors. + + Bug: angleproject:4889 + Change-Id: I9d9ea5bb43a9408dd4c6dc3e89ec20d60dfeff73 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054613 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 0d06c3cf936a6b8db0707b3f4b04feb7d060e751 +Author: Peter Kasting +Date: Mon Jul 26 04:30:39 2021 -0700 + + Fix some instances of -Wunused-but-set-variable. + + Bug: chromium:1203071 + Change-Id: I144165ae5ec47aba88658030a6ba3e371bf31ee7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053616 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit c8c9e15b5c22993287b7d23a8b945232451e014e +Author: Shahbaz Youssefi +Date: Mon Jul 26 22:51:49 2021 -0400 + + Translator: Fix sizing of tessellation shader arrays + + If layout(vertices=N) is specified after implicitly sized array + declarations, the correct size was not being specified on them. + + Bug: angleproject:4889 + Change-Id: I86ccf45a7f264b493a137b87316eff744079ed6c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054614 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit bd19620fcd599947a2fada3e02061d02d690d9eb +Author: Yuly Novikov +Date: Tue Jul 27 23:45:11 2021 +0000 + + Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension." + + This reverts commit 4222d5e5a03f85ca07253d54f3087684fe9447b3. + + Reason for revert: errors on multiple builders when rolling into Chromium + https://chromium-review.googlesource.com/c/chromium/src/+/3057227 + e.g. + https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/924126/overview + + Original change's description: + > VulkanExternalHelper: Use VK_KHR_image_format_list extension. + > + > To retrieve correct size requirements when the VK_KHR_image_format_list + > extension is enabled, it must be used to match VkImages created in + > vk_helpers. + > + > RendererVk: Fully enable VK_KHR_image_format_list. + > Enable the extension on non-AMD and non-ARM platforms. + > + > Bug: angleproject:5281 + > Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 + > Commit-Queue: Lubosz Sarnecki + > Reviewed-by: Jamie Madill + > Reviewed-by: Cody Northrop + > Reviewed-by: Mohan Maiya + + Bug: angleproject:5281, chromium:1233561 + Change-Id: I3b15bb2fc2fb779adac8bbf5d805727a25b5795c + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057071 + Bot-Commit: Rubber Stamper + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 1dd33c0525aa15a5ff216b4701f0935ed915d745 +Author: angle-autoroll +Date: Tue Jul 27 21:56:15 2021 +0000 + + Roll vulkan-deps from d85297cbd31b to 42c7e9bc00c2 (37 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/d85297cbd31b..42c7e9bc00c2 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/cd22336a38..1964799fba + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d9f8925785..11cd875ed8 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/872fa25bb6..b8c57b0a09 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/a0c69f0d3a..99a7440204 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/893fc802e4..459cb6009e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Id2402348bcf414ce7bebb8e5c647f0db54537557 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057520 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5bda5f91e6669dbefd7edb974b673d68b947ae3f +Author: Peter Kasting +Date: Mon Jul 26 20:37:52 2021 -0700 + + Fix some instances of -Wunreachable-code-aggressive. + + Bug: chromium:1066980 + Change-Id: I1e769b78c51d939067e8855beab32ec7c006c00e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3055794 + Reviewed-by: Nico Weber + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Nico Weber + +commit 4222d5e5a03f85ca07253d54f3087684fe9447b3 +Author: Lubosz Sarnecki +Date: Fri Jul 16 16:26:17 2021 +0200 + + VulkanExternalHelper: Use VK_KHR_image_format_list extension. + + To retrieve correct size requirements when the VK_KHR_image_format_list + extension is enabled, it must be used to match VkImages created in + vk_helpers. + + RendererVk: Fully enable VK_KHR_image_format_list. + Enable the extension on non-AMD and non-ARM platforms. + + Bug: angleproject:5281 + Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 + Commit-Queue: Lubosz Sarnecki + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Mohan Maiya + +commit ef406f1b437dd2ac0603cc10db8621960b6e28b0 +Author: Lubosz Sarnecki +Date: Fri Jul 16 12:19:23 2021 +0200 + + FrameCapture: Capture GLES1 matrix stack. + + Capture the modelview and projection matrix stack. This is required for + GLES1 applications that do not reset the stack every frame. + + Bug: angleproject:6181 + Change-Id: I71befc15ca287cf91fcebf9d972c7badaeb23605 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035050 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Lubosz Sarnecki + +commit edb4a7a8da08e456cf18e9d0764cd1d63c881cd8 +Author: Lubosz Sarnecki +Date: Fri Jul 16 12:19:06 2021 +0200 + + GLES1State: Add getMatrixStack function. + + FrameCapture requires access to the whole matrix stack. This function + also exposes stacks that are not currently set. + + Bug: angleproject:6181 + Change-Id: I595feaa0cbd3e5a62e398aa7a0578ecf6425ffe6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035049 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Lubosz Sarnecki + +commit 9b95caf462bbf3dd8653e31df86a6d6737595d27 +Author: angle-autoroll +Date: Tue Jul 27 07:01:41 2021 +0000 + + Roll Chromium from 779c0d440060 to f18a56e21b43 (464 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/779c0d440060..f18a56e21b43 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/958a8ec2c1..2e6288eaef + * buildtools/linux64: git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b..git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e + * buildtools/mac: git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b..git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/e8bf577fbf..bfcda91989 + * buildtools/win: git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b..git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/412b2038bc..ed11dbd7ea + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/94ebf0661e..69fa5ec37a + * tools/luci-go: git_revision:81e548572494391fa74559e816562d60c767bc69..git_revision:04c7051e7a02d7000bf28b53a575fea10220b555 + * tools/luci-go: git_revision:81e548572494391fa74559e816562d60c767bc69..git_revision:04c7051e7a02d7000bf28b53a575fea10220b555 + * tools/luci-go: git_revision:81e548572494391fa74559e816562d60c767bc69..git_revision:04c7051e7a02d7000bf28b53a575fea10220b555 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/159bcd47b2..a577fc1092 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/48df54f532..e39d397fb7 + Clang version changed llvmorg-13-init-15561-gf98ed74f:llvmorg-13-init-16514-gb1777b04 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/94ebf0661eb5b6ed2a2cbc46eb7a579a06c040b0..69fa5ec37acc53d9fecfa6fe61ed9993f8f44412/scripts/update.py + + Bug: None + Tbr: timvp@google.com + Change-Id: Ia2424c4760473583dbf054535a9cc3b0bdb00a68 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3055648 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b8d6f8aa936d643c788f0ed9088f2ae162defc38 +Author: Shahbaz Youssefi +Date: Thu Jul 22 22:31:29 2021 -0400 + + Translator: Facilitate integration in FireFox + + Instead of relying on is_apple to build workarounds applied on apple + hardware, a new build argument is added for this purpose. This allows + FireFox to more easily include these files in their build system (which + builds every workaround on every platform). + + The workarounds are reorganized too and moved from tree_ops/gl/mac to + tree_ops/apple. RewriteRowMajorMatrices is moved there too as it's now + used by both gl and metal. This workaround is large, and removing it + from non-apple builds improves binary size (~40KB on Linux). + + Bug: angleproject:6188 + Change-Id: I8e1dab44d0235bb6b8341d53721bdd0d157d46c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047385 + Reviewed-by: Jeff Gilbert + Reviewed-by: Yuly Novikov + Commit-Queue: Shahbaz Youssefi + +commit dbe986d710ada5ba1eda14d08ebffb26cd620d5d +Author: Shahbaz Youssefi +Date: Mon Jul 26 01:43:44 2021 -0400 + + Vulkan: SPIR-V Gen: Fixes to tessellation shader support + + - TCS barrier() built-in is correctly looked up + - Patch decorations are fixed + + Bug: angleproject:4889 + Change-Id: I1befcaca85a965c9d46b1b41ec74597de44bf2b2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052687 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit acfd63a4cca84e2cd4c4e78639942efc98477132 +Author: Shahbaz Youssefi +Date: Mon Jul 26 01:02:11 2021 -0400 + + Translator: Remove GLSL rules from the ESSL-only symbol table + + Shaves ~36KB off of ANGLE's binary size on Android. + + Bug: chromium:1084580 + Change-Id: I4711c6bd28437a43b7dc63be4cfcdaed7ae11ba2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052686 + Reviewed-by: Yuly Novikov + Commit-Queue: Shahbaz Youssefi + +commit 63fa70809ca7b92ba9d70776ab5a003dc1908726 +Author: Shahbaz Youssefi +Date: Sun Jul 25 23:19:02 2021 -0400 + + Vulkan: SPIR-V Gen: Fix bugs with ES3.1 texture* builtins + + - Add missing ImageCubeArray capability for image cube arrays + - Remove extra Lod image operand for sampler/image buffers + + Bug: angleproject:4889 + Change-Id: I96545092528b7dcecf902561e194b17636217ef4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052683 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 4ff80bb5f76e5d93466fe477bdddf4dce7ec1018 +Author: Shahbaz Youssefi +Date: Thu Jul 22 21:52:35 2021 -0400 + + infra: Enable gles3 deqp tests with direct SPIR-V generation + + Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4. + + Bug: angleproject:4889 + Change-Id: I2462b7fa7801b766f4359103a5253209b7fded28 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047381 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + Reviewed-by: Jamie Madill + +commit 715bab1f17e1a3d9b27cca9a6bb5b4d13733c9d5 +Author: Shahbaz Youssefi +Date: Sun Jul 25 23:35:17 2021 -0400 + + Vulkan: SPIR-V Gen: Fixes to geometry shader support + + - max_vertices=0 is invalid in SPIR-V and is fixed (similarly to + anglebug.com/5411) + - gl_PrimitiveID used in fragment shaders requires the Geometry + capability. + + Bug: angleproject:4889 + Change-Id: If8c6a9d455d0582d61c3c52b5f773bcb5ca64b53 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052684 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit ff7eafb56cac8902a45c1d6ed29e578e954df8e1 +Author: Shahbaz Youssefi +Date: Sun Jul 25 23:05:26 2021 -0400 + + Vulkan: SPIR-V Gen: Fix .length() vs ssbo arrays + + Bug: angleproject:4889 + Change-Id: Ib490a46fabf058064fc1b18d2c084a4bc5f9277d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052682 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit b19fbbdabece717b2e7db2a8d966af3ec24d44e8 +Author: Shahbaz Youssefi +Date: Sun Jul 25 21:57:12 2021 -0400 + + Vulkan: SPIR-V Gen: Support multiview + + Bug: angleproject:4889 + Change-Id: Ibe66f53357473dbb4435af58775b524d83ed250b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052675 + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 3bd2273b4fe58aba99653b3216ff726280409bd5 +Author: Jamie Madill +Date: Fri Jul 16 12:33:11 2021 -0400 + + Capture/Replay: Only perform call updates on valid calls. + + Bug: angleproject:5133 + Change-Id: Ib1a6ae1ca9ff9717c4e51f8908f5a4ee132d72ab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035443 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Gert Wollny + Commit-Queue: Jamie Madill + +commit 2ce8181788dec2d17bd05159824f8d21ee1c8a06 +Author: angle-autoroll +Date: Mon Jul 26 07:00:05 2021 +0000 + + Roll Chromium from 172cae01c41b to 779c0d440060 (322 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/172cae01c41b..779c0d440060 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/5e09be1ee6..958a8ec2c1 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/47f98e89a3..412b2038bc + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/131233f789..94ebf0661e + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/42bdc1223f..48df54f532 + Clang version changed llvmorg-13-init-15163-g98033fdc:llvmorg-13-init-15561-gf98ed74f + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/131233f78952301416fd1599964b58fe4af76285..94ebf0661eb5b6ed2a2cbc46eb7a579a06c040b0/scripts/update.py + + Bug: None + Tbr: jmadill@google.com + Change-Id: Id07aacc82c17d56790faec87e042b77db4f39d17 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053611 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d67cab22880d3f24669e2ed9236e62c9c641ff7a +Author: Gert Wollny +Date: Mon Jul 12 13:48:22 2021 +0200 + + Capture/Replay: Handle missing context serialization + + Some ContextLost* tests do weird things with the context + serialization which results in a mis-match of available context + serializations. + + In this case check whether both serializations are missing, if so + consider this to be an equal contexts states, otherwise, if only + one serialization is available, report failure. + + While touching this code, also remove an unused parameter from + the context serialization compare function. + + Disable tests that still fail with this change. + + Bug: angleproject:6157 + Change-Id: Iee6cc7d65437112e38919cff59804e2b7f9467da + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021061 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit a5b7655cb25a2195e9374421b21d36628e78a919 +Author: Shahbaz Youssefi +Date: Fri Jul 23 22:46:35 2021 -0400 + + Vulkan: Unsupress fixed test + + Fix landed in glslang. + + Bug: angleproject:6178 + Change-Id: Ie3d2a9535b4ed0d484c97e08be069ff9e27cdde1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051313 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 939ea5f41eff2bc7c8863efe9614cd93785c7f26 +Author: Shahbaz Youssefi +Date: Fri Jul 23 15:53:17 2021 -0400 + + Vulkan: SPIR-V Gen: Fixes to tessellation builtins + + On TCS, TES and FS, gl_PrimitiveID is actually an input. Additionally, + `patch` variables (including gl_TessLevel* built-ins) need to be + decorated with Patch. + + Bug: angleproject:4889 + Change-Id: I326ec4b0c011fe8eaafbad4f8bcb0f537005f96f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048320 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 9416e84e178178303e1d92b39f61472702023b9e +Author: Shahbaz Youssefi +Date: Fri Jul 23 14:53:43 2021 -0400 + + Vulkan: SPIR-V Gen: Add missing DepthReplacing execution mode + + Shaders writing to gl_FragDepth need this execution mode specified. + + Bug: angleproject:4889 + Change-Id: I315c90f9161f4d3d51b1c856f1364fb26a4bd404 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048317 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit de8dc2c9314e7b1686a057035ff94310c8345657 +Author: Shahbaz Youssefi +Date: Fri Jul 23 15:45:28 2021 -0400 + + Vulkan: SPIR-V Gen: Support OES_sample_variables + + Built-ins from this extension are now decorated. + + Bug: angleproject:4889 + Change-Id: I12f80d67e3595f94fc64bdc8cb3031d36b98c279 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048319 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 8bf2e5ec101e48c8ce9cf293307eb94c4764670b +Author: Shahbaz Youssefi +Date: Fri Jul 23 16:54:16 2021 -0400 + + Vulkan: SPIR-V Gen: Fix switch with default at the end + + A minor bug was making a switch with default at the end to jump to the + merge block instead of the default block. + + Bug: angleproject:4889 + Change-Id: Ied434fab949b10d45a0db1242c1b8535a5f4f773 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048321 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 82d7d888f592183272d2142be48e94785a630484 +Author: Shahbaz Youssefi +Date: Thu Jul 22 21:46:21 2021 -0400 + + Vulkan: SPIR-V Gen: Fix bugs with texture* builtins + + With this change, deqp ES3 tests pass. + + Bug: angleproject:4889 + Change-Id: Ica158d4e9012c7bb3e458da62b4a7f92aee5c6de + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047380 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 31bc922649725a1b9470ff7b9391b8141b2ebd3d +Author: Shahbaz Youssefi +Date: Fri Jul 23 15:16:27 2021 -0400 + + Vulkan: SPIR-V Gen: Fix unpack* built-ins + + The parameter to these built-ins was getting extended to a vector. + + Bug: angleproject:4889 + Change-Id: Idddce008c9b4f6bf9205b1e20f6e89ef657ea3a1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048318 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 24610ba60c20d480562202e9136f742d625bab50 +Author: Shahbaz Youssefi +Date: Fri Jul 23 22:46:11 2021 -0400 + + Suppress failing SPIR-V gen tests + + Bug: angleproject:4889 + Change-Id: Ie5a5cb5c8f947e2d90861371893367b9ec341f19 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051312 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 6b5cec154a475c0509b9aa5eb3f376e01fee3fff +Author: Shahbaz Youssefi +Date: Thu Jul 22 17:01:41 2021 -0400 + + Vulkan: SPIR-V Gen: Fixes to scalar->vector promotion + + With the ternary operator, the condition may be a bool-in-interface + block that needs to be cast. This cast is now part of + createConstructorVectorFromScalar so it can't be missed. + + Bug: angleproject:4889 + Change-Id: I0e24cd4127301d33a3ac677ccaf560c4468e0799 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047379 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit d0c03ff49ef81557a91a00843275b2a2e42e53b7 +Author: Shahbaz Youssefi +Date: Thu Jul 22 14:55:51 2021 -0400 + + Vulkan: SPIR-V Gen: Fix lvalues passed to in/inout parameters + + In GLSL, these values are semantically copied when passed to a function + as an in or inout parameter. For example in: + + bool f(inout vec4 a, inout vec4 b) + { + a = vec4(0); + return all(equal(a, b)); + } + + var = vec4(1); + bool result = f(var, var); + + result is expected to be false. In SPIR-V, every parameter is + semantically passed by "reference". + + glslang conservatively uses temporaries to pass to functions. An + optimization in ANGLE didn't create temporaries for unindexed lvalues, + which did not take into account the above fact. This optimization is + limited to out parameters now. + + Bug: angleproject:4889 + Change-Id: Ie1b4b1cecba847ba63d5810d01d0856823b89ddc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046103 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit cc69d861ab98a39cb7830b4c9f022f0775fd2dd3 +Author: Shahbaz Youssefi +Date: Thu Jul 22 12:49:39 2021 -0400 + + Vulkan: SPIR-V Gen: Fix textureProj's coordinate adjustment + + The OpCompositeInsert's parameters were given in the wrong order. + Additionally, some instructions were not having RelaxedPrecision applied + correctly; this is fixed by deriving the decorations from the type of + the argument that's passed in a function instead of the type of the + parameter itself. + + Bug: angleproject:4889 + Change-Id: I34a54fcc0ef1699e554f9e1abb94c93a5b34b6d3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046102 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 9d23ae62c841783de6f325ca5869f4aca4c3bbf6 +Author: Shahbaz Youssefi +Date: Thu Jul 22 12:32:44 2021 -0400 + + Vulkan: SPIR-V Gen: Fix conditionals with pruned blocks + + Rewored the visitIfElse function to simplify the logic and correctly + handle if-else constructs where the true block is pruned. + + Bug: angleproject:4889 + Change-Id: Ib968a2fe65f4b6463158fd76e7d67757115ee832 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046101 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit ad8c32578dfc18be605ecdb71383555f0621ba0f +Author: Shahbaz Youssefi +Date: Thu Jul 22 11:40:01 2021 -0400 + + Vulkan: Fix bresenham line emulation in shaders with return + + RunAtTheEndOfShader should have been used to ensure that the appended + code runs at the end of the shader no matter if the shader includes + return statements. + + Bug: angleproject:4889 + Bug: angleproject:6206 + Change-Id: I848eafdf3c7bc63206a7f82cdf0badad335fa3bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046100 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 1f72aa14a27be5c5e7f397a645028d3fc427a77f +Author: angle-autoroll +Date: Fri Jul 23 17:39:28 2021 +0000 + + Roll Chromium from 208fab302a17 to 172cae01c41b (609 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/208fab302a17..172cae01c41b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/2ef6eae721..5e09be1ee6 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b8e44ff539..47f98e89a3 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b + * third_party/r8: gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC..Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/609c3a5216..159bcd47b2 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/7668723204..42bdc1223f + No update to Clang. + + Bug: angleproject:6090 + Tbr: jmadill@google.com + Change-Id: I75f1c7a574cea4e64c53b531a4953a06b9ebee4a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049710 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 02c5cdbdbda066e924b5acb7bf863c9dc6554d01 +Author: Shahbaz Youssefi +Date: Wed Jul 21 23:08:17 2021 -0400 + + infra: Enable gles2 deqp tests with direct SPIR-V generation + + Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4. + + Bug: angleproject:4889 + Change-Id: I50c5e31097bd7e1539caf7b229a249cbfa62b93d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042557 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + +commit fbffcf7bb31e13b2d1d466c07ffbef66e06bef7a +Author: Jamie Madill +Date: Fri Jul 23 14:15:18 2021 -0400 + + dEQP: Suppress two tests with undefined behaviour. + + dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex + dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex + + See bug for more details. + + Bug: angleproject:6214 + Change-Id: Ibc69dbcd1524470da620c31d41da20f69dfbaae2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049254 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 8f6f52b563668bad1a2d8571e69bb6653516417f +Author: Shahbaz Youssefi +Date: Fri Jul 23 10:14:27 2021 -0400 + + GL: Temporarily disable sync control on all GPUs on Linux + + This workaround is supposed to be limited to Intel GPUs with a recent + mesa version, but due to anglebug.com/6174 is not actually enabled on + dual-GPU systems. + + The workaround is temporarily disabled on all GPUs until said issue is + fixed. + + Bug: chromium:1187475 + Bug: angleproject:6174 + Change-Id: Ieee430b1e2a04e36d6f8d60cabc9e391f0e49988 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048237 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 348eaf1523fbc6d58ba9f4a1ad63ece7d828110e +Author: Tim Van Patten +Date: Fri Jul 23 11:26:09 2021 -0600 + + roll_aosp.sh: Add dcheck_always_on = false + + The GN args 'dcheck_always_on' was recently enabled by default, which + resulted in an increase to ANGLE's APK size in AOSP from 16.3MB to + 20.6MB. Adding 'dcheck_always_on = false' to roll_aosp.sh to disable the + feature reduces the APK back to the original 16.3MB size. + + Bug: b/189125396 + Change-Id: I606c30fe49291fa893228644c4b1fe4dd5fbeabf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048933 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit f18bb9c0ee86ff26dff183c0f2dce4f111deee15 +Author: Jamie Madill +Date: Fri Jul 23 08:57:19 2021 -0400 + + Roll Chromium DEPS manually. + + Because the packages list changed, the roll_chromium_deps script + was failing. Manually roll and update the failure assertion to + make the required action clear. + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/488aac0b88..2ef6eae721 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8c3404999d..b8e44ff539 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/9211d9e376..368be24f93 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/0ab40df9d1..12d2cf1a46 + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/76bd51b56b..ff9352c23f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b + * third_party/r8: Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC..gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC + * tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69 + * tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69 + * tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/2db94c0aa3..609c3a5216 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4682254401..7668723204 + * tools/skia_goldctl/linux: 4iy6PO3bO0fujafbQ4I4eWhD8ErkBKf5xAnGzPrziIUC..kaeAzSau0swqM5_PxvyRfHSMDvXSjyDsqgPiP5rpoYEC + * tools/skia_goldctl/mac: _9rtsnZzHBJ4851DtK33jnz7UzMZ77SqJ9sYpciBwiMC..sZ1aXBq0Ae2kaeyAtTGpMuEEGdcqMzga658pAaCAl0IC + * tools/skia_goldctl/win: NsVk6Er035r7JVK4foqbqAksO65XEzgIT9Bjwf0Q1q0C..67QQ3-xX3VTYrb9YrwUR0VedVqNq7sebZZeHS823QdcC + No update to Clang. + + Bug: angleproject:6211 + Change-Id: I152572fd15066a100cb5f379f7adbd967dc6eac8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048852 + Reviewed-by: Jamie Madill + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 62628799194bce358bbba6d4782b0d3cbfbe7954 +Author: Shahbaz Youssefi +Date: Wed Jul 21 22:55:22 2021 -0400 + + Vulkan: SPIR-V Gen: Support dEQP + + A temporary condition for direct SPIR-V generation is added to test + expectations while this work is in progress, so test suites can be + partially enabled. 32 tests are currently failing. + + Bug: angleproject:4889 + Change-Id: Icf0f6ef80d30fdb7564d8ecf928e67ca58ace86f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042556 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 729cbcf172c81076d418fdb8ee2c19791e7369de +Author: Alexis Hetu +Date: Fri Jul 23 11:18:18 2021 -0400 + + Make Display and X11 available in the same build + + Chromium can use the 'use_ozone' and 'use_x11' build flags + simultaneously, so we need the Vulkan display to still be + selectable, even when the 'use_x11' flag is used. + + This is required to make SwANGLE work with Ozone/Wayland, which + is going to use EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE + when SwANGLE is requested. + + Bug: chromium:1231934 + Change-Id: I2ac1d3d9bc231608d7f77e9a2540f4c538840076 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049351 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Alexis Hétu + +commit 91b35c909e3022bb6fbe127cd769bd8ac81b451a +Author: Jamie Madill +Date: Wed Jun 30 09:28:17 2021 -0400 + + infra: Add perf results processing script. + + This script is a modified version of the Chromium script: + https://chromium.googlesource.com/chromium/src/+/main/tools/perf/process_perf_results.py + + The primary change is to add additional build info to the + histogram set before upload. This additional info isn't + available to the test harness and is required for the perf + dashboard upload. + + We can also use this as a basis for uploading to the Skia + perf dashboard. + + Test: led launch + Bug: angleproject:6090 + Change-Id: Ie439ed34a24ce66f4b60b947f221e4cb96cf7d25 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997002 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 2c60b88a0ebc35f32026c8e630db717e6b7d3019 +Author: Jamie Madill +Date: Fri Jul 23 09:46:37 2021 -0400 + + Make the trybot exclusion filter a proper regex. + + Bug: angleproject:6212 + Change-Id: I20ca648675a5dd4773d1c3e44b251388318197f5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048854 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 646c02b9eba8b884cc0f35852fd1bed44b6f1d73 +Author: Jamie Madill +Date: Fri Jul 23 09:29:55 2021 -0400 + + Update angle_assert_always_on condition. + + A prior CL would miss the standalone case. + + Bug: chromium:1227171 + Change-Id: Ib1c06d0ae7eed0feb082516690b227b964de72b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048853 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit aed52e6704eab09f27a7cf27297f8c040e27ef9a +Author: Jamie Madill +Date: Fri Jul 23 08:43:17 2021 -0400 + + Set dcheck_always_on on every ANGLE builder. + + This GN argument is necessary because some build components + reference it directly. Letting it be specified implicitly will + caused undesired side-effects. + + Bug: chromium:1227171 + Change-Id: Ib12cc3add58ecc8ae0360f816d30587158d756c1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048850 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 9f7a86a80874b202fbd5338d79fd4f6eca5d9485 +Author: Shahbaz Youssefi +Date: Wed Jul 21 14:54:03 2021 -0400 + + Vulkan: SPIR-V Gen: Fix bugs with matrix ops + + A number of matrix operations are fixed in this change, such as + matrix/scalar, ++matrix etc. + + This change fixes most of the failing dEQP-GLES2.* tests. The test + suite will be enabled once the remaining 32 failures are fixed. + + Bug: angleproject:4889 + Change-Id: I0905dfaeabe50716432ce354b890be35f2a16e59 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042555 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 951b04bb3108388f53b508907c323573076c48ac +Author: Shahbaz Youssefi +Date: Wed Jul 21 12:20:13 2021 -0400 + + Vulkan: SPIR-V Gen: Support scalar constructors + + In GLSL, the scalar constructor can be given a vector and matrix, in + which case the first element is selected. This case was not previously + handled. + + Bug: angleproject:4889 + Change-Id: Ibf276883fc7396b750981a4e469ff9b152c6e700 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042554 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 45d4641a4ce4f27fa99a1f878f99bce4c332ed0d +Author: Shahbaz Youssefi +Date: Wed Jul 21 10:58:29 2021 -0400 + + Vulkan: SPIR-V Gen: Support tessellation shaders + + Bug: angleproject:4889 + Change-Id: I7370e037a82689260e27bfd5e72c5c8c982efa58 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041624 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 7f199d7514ba7e6f84c7048e240d5d83a531e4ea +Author: Shahbaz Youssefi +Date: Tue Jul 20 00:11:23 2021 -0400 + + Vulkan: SPIR-V Gen: Support geometry shaders + + Geometry shader built-ins are implemented. A bug in + DeclarePerVertexBlocks is fixed w.r.t to gl_PerVertex arrays and a new + AST validation option is added to catch that sort of error. + + Bug: angleproject:4889 + Change-Id: I40b2929e450eac8ae840bbf1a1583e6c4c047c88 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041623 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 05716b9f3f6e906fc0ced46798a2f4a8a8588b98 +Author: Tim Van Patten +Date: Thu Jul 22 16:01:06 2021 -0600 + + Cleanup license_text to remove missing license files + + The initial list of files speficied for license_text in + generate_android_bp.py included license files that aren't present after + issuing: git clean -f -x -d -f + + While the list will build correctly when rolling ANGLE locally, since + roll_aosp.sh doesn't issue a 'git clean', it fails to build on the + Android presubmit bots. + + Bug: b/191882454 + Test: git clean -f -x -d -f ; m ANGLE -j50 + Change-Id: I31efba1f5030b118838ba1a21501f32200c93db3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046958 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 2ec44d079db9b05ce2e4ac554dca5c0faeb673b6 +Author: Tim Van Patten +Date: Thu Jul 22 14:15:03 2021 -0600 + + List all license files in Android.bp + + Update generate_android_bp.py to list all of the license files in + external/angle. + + Bug: b/191882454 + Change-Id: Ie13fb9199c7216b5468bf91994526fdcd8552be1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046509 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit 27ccdc850ce6d1f17a29716c7c41b68a923804e2 +Author: Jamie Madill +Date: Thu Jul 22 13:13:45 2021 -0400 + + Add Chromium perf result processing script. + + We will override this script in a follow-up CL to meet ANGLE's + specific needs. + + Bug: angleproject:6090 + Change-Id: I8d3a326645367e90ae79f49ef15ace700d6af106 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042213 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 20ae10c2dc82db2adb781aae4cd85ff942d7ce94 +Author: Alexis Hetu +Date: Thu Jul 22 11:46:40 2021 -0400 + + Enable SwANGLE on all ozone platforms. + + SwANGLE should be available on all ozone platforms. + This will also compile the vulkan backend. + + Bug: chromium:1227864 + Change-Id: I4971e52f45e70fed91567c3d2f369dafe160ff4f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043626 + Reviewed-by: Jamie Madill + Commit-Queue: Alexis Hétu + +commit b5630d5c60d1ccd4a8073d085acc4bc34d08fae0 +Author: Cody Northrop +Date: Mon Jul 19 20:39:02 2021 -0600 + + Capture/Replay: Add textures to resource tracking + + This CL: + - Shifts resource reset tracking to be stored in an array of structs + indexed by type. This helps curb the complexity of adding more + resource types. + - Moves buffer and program tracking to the new layout. + - Adds textures to the resource tracker, using new layout. + + Note that only aspects common to all ResourceIDTypes have been moved + to the new layout. Unique pieces of data, like buffer mapping state + and GLSync handling, remain in resource tracker alone. + + Since texture setup is quite involved, this CL takes the approach of + having each call applied to two call chains at the same time; + SetupReplay calls and ResetReplay calls. + + ResetReplay ends up with a sequence similar to buffers: + + ... + const GLuint deleteTextures[] = { + gTextureMap[1], gTextureMap[2], ... gTextureMap[n]}; + glDeleteTextures(, deleteTextures); + ... + glGenTextures(1, reinterpret_cast(gReadBuffer)); + UpdateTextureID(1, 0); + glGenTextures(1, reinterpret_cast(gReadBuffer)); + UpdateTextureID(2, 0); + glGenTextures(1, reinterpret_cast(gReadBuffer)); + UpdateTextureID(3, 0); + ... + glBindTexture(GL_TEXTURE_2D, gTextureMap[1]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9729); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, 33071); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, 33071); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, 33071); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, 519); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); + glTexImage2D(GL_TEXTURE_2D, 0, 6406, 512, 512, 0, GL_ALPHA, GL_UNSIGNED_BYTE, + reinterpret_cast(&gBinaryData[183263280])); + glBindTexture(GL_TEXTURE_2D, gTextureMap[2]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9987); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, 519); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 6); + glTexStorage2D(GL_TEXTURE_2D, 7, GL_COMPRESSED_SRGB8_ETC2, 64, 64); + ... + + Test: PUBG Mobile MEC + Bug: b/180418573 + Bug: angleproject:6087 + Change-Id: I9f8e151c12aec5b2b7af376b8e0ff644ff9c61c4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016114 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit c408926fc8153b040374db83fc7dae2ca50a42c0 +Author: Jamie Madill +Date: Thu Jul 22 12:00:59 2021 +0000 + + Revert "EGL: GLES: Implement GL_EXT_protected_textures" + + This reverts commit 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa. + + Reason for revert: Suspected for breaking ANGLE->Chrome roller. + + Bug: angleproject:6204 + + Original change's description: + > EGL: GLES: Implement GL_EXT_protected_textures + > + > Implement EGL_EXT_protected_content Images + > Add protected member to Images and Textures + > Add error when creating objects if not supported or + > does't match native buffer + > When creating siblings pass protected state + > Add extension caps + > Add Validation + > Add GetTexParameter and SetTextparameter + > Add protected to Texture and state + > Expand tests for images and textures + > + > Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest + > + > Bug: angleproject:3965 + > Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852 + > Commit-Queue: Mohan Maiya + > Reviewed-by: Geoff Lang + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + + Bug: angleproject:3965 + Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + Bot-Commit: Rubber Stamper + +commit c5f83c34f3a91cf2f96814f44562b49aba62703a +Author: Jamie Madill +Date: Thu Jul 22 11:56:25 2021 +0000 + + Revert "Vulkan: Suppress VVL errors triggered by external formats" + + This reverts commit f46df3978ab6102768048a6bf40e6f4989276065. + + Reason for revert: VVL change rolled into ANGLE + Chrome. + + Original change's description: + > Vulkan: Suppress VVL errors triggered by external formats + > + > Since several tests are hitting these and it may be a VVL bug, + > moving to ignore rather than skips. + > + > Bug: angleproject:6155 + > Bug: angleproject:6168 + > Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809 + > Reviewed-by: Tim Van Patten + > Reviewed-by: Jamie Madill + > Reviewed-by: Mohan Maiya + > Commit-Queue: Cody Northrop + + Bug: angleproject:6155 + Bug: angleproject:6168 + Change-Id: I11696095300c214ca0b68624b0eb6763ba9d31f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043888 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 03cf78880e3a1bc209920cc91485f87690cfbc3b +Author: Jamie Madill +Date: Thu Jul 22 08:32:25 2021 -0400 + + Test Runner: Remove extra quotes from histograms. + + We were double-quoting the test names. + + Bug: angleproject:6090 + Change-Id: I69ce089ef20068b408de7156bdbade922cdefe95 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043890 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 8ddd1807e3c4e1c00f6eee3f47eea0cd40a634a1 +Author: angle-autoroll +Date: Thu Jul 22 11:14:16 2021 +0000 + + Roll vulkan-deps from 436e27578f75 to d85297cbd31b (10 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/436e27578f75..d85297cbd31b + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/18f3cd6810..cd22336a38 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/1d4e3a7e3a..cf653e4ca4 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/033768c24b..d9f8925785 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/33a87ce6da..a4ee3cacbb + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/194db6870e..893fc802e4 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Icd49cf0abb072acb3c9bd2c79cfef3a3f8103e23 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3045222 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e759ff888e92f9f9acec625420ec95abe136177a +Author: angle-autoroll +Date: Thu Jul 22 07:02:21 2021 +0000 + + Roll Chromium from f8ef6fcfb849 to 208fab302a17 (1307 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/f8ef6fcfb849..208fab302a17 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/fd86d60f33..488aac0b88 + * buildtools/linux64: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b + * buildtools/mac: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/7d5c92f6cf..e8bf577fbf + * buildtools/win: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f619f21d40..8c3404999d + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/8c49b419c2..0ab40df9d1 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..9ac1fdf373 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c81b8b948f..131233f789 + * tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d + * tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d + * tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/df951e112c..2db94c0aa3 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/49df801dea..4682254401 + * tools/skia_goldctl/linux: up6EUcZzuFZnm2JCEV1eW0TwCEAZjPcqtS2CsZN-3qAC..4iy6PO3bO0fujafbQ4I4eWhD8ErkBKf5xAnGzPrziIUC + * tools/skia_goldctl/mac: eR_S1Urlw9be4WKiQcXwEcBn9KiDrWknodT82I6vw-kC.._9rtsnZzHBJ4851DtK33jnz7UzMZ77SqJ9sYpciBwiMC + * tools/skia_goldctl/win: pLY1rCmGsL8vtV0wWxgqY3sOWkwIxuRh6PMIn_0BDcAC..NsVk6Er035r7JVK4foqbqAksO65XEzgIT9Bjwf0Q1q0C + No update to Clang. + + Bug: angleproject:6090,angleproject:6198 + Tbr: jmadill@google.com + Change-Id: I30e0cc2e8d8820cca7abb589a35cbca09d325a30 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3045218 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 0e1c90cf4f1737acbf3f5279a63248824da02c26 +Author: Shahbaz Youssefi +Date: Wed Jul 21 10:24:26 2021 -0400 + + Translator: Validate function parameter qualifiers + + This change cleans up a confusion in EvqConst and EvqConstReadOnly, + where the former was frequently used instead of the latter for function + parameters. + + The change makes the following renames to make the intent of the + relevant qualifiers clearer: + + EvqIn -> EvqParamIn + EvqOut -> EvqParamOut + EvqInOut -> EvqParamInOut + EvqConstReadOnly -> EvqParamConst + + Bug: angleproject:4889 + Change-Id: Idedd32c08a91de069b91b1657d6b783dddece04a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041622 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 6e26145335520844ad9a0cff693188f616e68fe5 +Author: Shahbaz Youssefi +Date: Tue Jul 20 22:34:33 2021 -0400 + + Vulkan: SPIR-V Gen: Fix I/O block arrays + + Since the qualifier on intermediate nodes are EvqTemporary, the code + that autodeduced the block storage of I/O blocks was incorrectly + assigning them std140 when an indexed I/O block array was encountered. + This resulted in duplicate types in the SPIR-V. This is generally + benign (other than creating an unnecessary type) except for gl_PerVertex + as it adds BuiltIn decorations. gl_PerVertex may be an array in + geometry and tessellation shaders. + + Bug: angleproject:4889 + Change-Id: Iaa8e414ae01a4be127dc52df0e9406546b23d24c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041621 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit d6a7b0172cf2c22b18d1ec5d203ae6f40185ab78 +Author: angle-autoroll +Date: Wed Jul 21 12:24:52 2021 +0000 + + Roll vulkan-deps from a42815069bad to 436e27578f75 (16 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/a42815069bad..436e27578f75 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/e51630595f..18f3cd6810 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f084bcfe2b..033768c24b + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/0193e158bc..872fa25bb6 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/99c0b1433a..a0c69f0d3a + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d444097efd..194db6870e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I802bb8f42ef0c62d8f17b47b6652b22c0d498541 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043744 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit 8a737c5d4089d7b5d6bfa9184ce6f7f1bd218601 +Author: Tim Van Patten +Date: Wed Jul 21 16:38:05 2021 -0600 + + Capture/Replay: Update unpack state in Shared MEC + + The shared context state MEC performed by + CaptureSharedContextMidExecutionSetup() needs to include updating the + pixel unpack state before capturing texture contents. Otherwise, + computeRowPitch() will compute the wrong value, leading to a crash in + memcpy() when capturing Pokemon GO. + + Bug: angleproject:6203 + Change-Id: Id1b2d0b4f3bc79e615778ba513f50aabaeb4a56e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3044356 + Commit-Queue: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit f8d277e45238e55be81b738afbcd7059ee6f3728 +Author: Nicolas Capens +Date: Wed Jul 21 15:14:16 2021 -0400 + + Document the need for is_component_build = false + + Setting `is_component_build = false` in the GN args is highly + recommended for standalone builds on Windows, to support the common + practice of moving libEGL.dll and libGLESv2.dll to an application's + directory. It makes them self-contained instead of depending on other + DLLs (like e.g. ext-ms-win-kernel32-sidebyside-l1-1-0.dll). + + One notable exception is that the non-component build still depends on + d3dcompiler_47.dll, if the Direct3D backend is being used. + + Bug: angleproject:6202 + Change-Id: Id13e902d3169b37ec00a8065d9063ec7d683134b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042543 + Reviewed-by: Geoff Lang + Commit-Queue: Nicolas Capens + +commit 1a4ac82a0bea4be05bf0ac96865292a8b60a42bc +Author: Jamie Madill +Date: Wed Jul 21 09:39:46 2021 -0400 + + Vulkan: Disable border color on SwiftShader. + + A bug with floating point clamping is breaking some tests on SwS. + + Bug: angleproject:6200 + Change-Id: Id608f5610a09e85f1bc41e38f20c6f7f0330f77b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041741 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit b129170fb6494dc62d4fd897501cf9d82cb8c810 +Author: angle-autoroll +Date: Wed Jul 21 10:01:02 2021 +0000 + + Roll SwiftShader from 7a7993b54e62 to 915947134128 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/7a7993b54e62..915947134128 + + 2021-07-20 mail@eliasnaur.com Add missing dependency for LLVM 10 CMake builds + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: Icfed951a2265a1759554ad67685e26e7bd977b2b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043778 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit f9dbd4efb3b8c15504d8608dd4d7794c5b9f0e6f +Author: Brandon Schade +Date: Mon Mar 29 16:31:26 2021 -0700 + + Vulkan: Add Validation checks in FramebufferTextureEXT + + This change makes FramebufferTextureEXT set a validation error + if is not a supported texture level. + + This change also makes FramebufferTextureEXT set a validation error + if is the name of a buffer texture. + + Test: KHR-GLES32.core.geometry_shader.layered_fbo.fb_texture_invalid_level_number + Test: KHR-GLES32.core.geometry_shader.layered_fbo.fb_texture_argument_refers_to_buffer_texture + Bug: angleproject:5579 + Change-Id: Iedba8adc8faec02822374c3c1862b7abd031fcc2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796152 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Mohan Maiya + +commit e9decf0c6d9976aa1d279de9715b8fa89a430fb0 +Author: Shahbaz Youssefi +Date: Mon Jul 19 14:29:21 2021 -0400 + + Vulkan: SPIR-V Gen: Support framebuffer fetch + + Bug: angleproject:4889 + Change-Id: Ia75b45b5d0f6cb3b6ca8a8f8a987bb857e45ad33 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040120 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit a3df80ea7b4c9da13689a8b96846014a5524e3cb +Author: Shahbaz Youssefi +Date: Mon Jul 19 17:15:13 2021 -0400 + + Translator: Validate AST consistency w.r.t function calls + + This ensures that tree transformations don't create invalid function + calls. Additionally, it's validated that no raw function calls are + issued, as that's deprecated. + + Bug: angleproject:4889 + Change-Id: Iabbb493dcc0a5654bbb5f930e402bf3492c89979 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040119 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + +commit 05eb0a32912107663b501be9722b68c68a5d168f +Author: Shahbaz Youssefi +Date: Mon Jul 19 16:14:34 2021 -0400 + + Translator: Allow subpassLoad in AST in ESSL + + subpassLoad is available to desktop GLSL, but not GLSL ES. With this + change, subpassLoad is made available internally to the AST so that + framebuffer fetch's use of this built-in can be simplified. + Additionally, this makes the tree more consistent in that there's no + function call without a corresponding function declaration. + + A follow up change will add an AST validation to enforce this. + + Bug: angleproject:4889 + Bug: angleproject:5454 + Change-Id: I3fa502dc4b29eab7f34940466e283cffd218d746 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040118 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa +Author: Jeff Vigil +Date: Thu Mar 25 15:43:06 2021 -0700 + + EGL: GLES: Implement GL_EXT_protected_textures + + Implement EGL_EXT_protected_content Images + Add protected member to Images and Textures + Add error when creating objects if not supported or + does't match native buffer + When creating siblings pass protected state + Add extension caps + Add Validation + Add GetTexParameter and SetTextparameter + Add protected to Texture and state + Expand tests for images and textures + + Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest + + Bug: angleproject:3965 + Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852 + Commit-Queue: Mohan Maiya + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit d2b659f9a1ee4dd0dc521d33ae113a2a8cccda69 +Author: Jeff Vigil +Date: Thu Mar 25 15:40:58 2021 -0700 + + EGL: implement EGL_EXT_protected_content Context + + Add Validation check to Contexts and Surfaces + Add Vulkan protected memory features and properties + Add protected member to Surfaces and Contexts + Implement hasProtectedContent in Vulkan + Add QueueFamily helper, extent DeviceQueueMap + Protected Swapchains always on for Android + Add EGLProtectedContentTest + + Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest + + Bug: angleproject:3965 + Change-Id: I9352b1e594f71bb4e89cee7137a468940d186b1b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800413 + Commit-Queue: Mohan Maiya + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + +commit a8807cbf129e7dd5e5ac30cfa47a0153b6f9630d +Author: Shahbaz Youssefi +Date: Sat Jul 17 00:00:27 2021 -0400 + + Vulkan: SPIR-V Gen: Support interpolateAt* + + The interpolateAt* builtins take their first argument as a pointer, so + only the OpAccessChain result should be given to the corresponding + SPIR-V instruction. + + A test is written in this change to handle interpolateAt* when given a + swizzled lvalue, which is not representable in SPIR-V. This can be + supported by having the AST transform: + + interpolateAtX(value.zy) + + to: + + interpolateAtX(value).zy + + which can be done right when the function is parsed and the AST node for + it is created (by taking the swizzle out of the parameter and applying + it to the node). However, swizzled lvalues as parameter to + interpolateAt* is only allowed in desktop GLSL, and so the test is + disabled. From the GLSL ES3.2 spec: + + > Component selection operators (e.g. .xy) may not be used when + > specifying interpolant. + + Bug: angleproject:4889 + Change-Id: I043969f22011e6171c7ae225ded3a5013e8cfa4e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035588 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit fd0579ac7d5a51267fa7efcfd27d1bd37c5f1258 +Author: Jamie Madill +Date: Tue Jul 20 09:46:27 2021 -0400 + + trigger.py: Add -realm to swarming args. + + This should fix recent permissions changes. + + Bug: chromium:1231092 + Change-Id: Ie9b39449c861f3ab774334c4d392d1700c638ea9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040565 + Reviewed-by: Jamie Madill + Reviewed-by: Andrii Shyshkalov + Commit-Queue: Jamie Madill + +commit 7108f83c8ad1bad4072e4f32da3db6d59cf51400 +Author: Ivan Murashov +Date: Tue Jul 20 13:16:44 2021 +0300 + + GCC: Remove double declaration of ContextSet + + After the CL + https://chromium-review.googlesource.com/c/angle/angle/+/2965780 + the build with GCC failed with error: + /third_party/angle/src/libANGLE/Display.h:325:37: error: declaration of + 'typedef class std::__1::set egl::Display::ContextSet' + changes meaning of 'ContextSet' [-fpermissive] + /third_party/angle/src/libANGLE/Display.h:75:7: note: 'ContextSet' + declared here as 'using ContextSet = class std::__1::set' + + To fix the error the double declaration of ContextSet is removed. + + Bug: angleproject:5878, chromium:819294 + Change-Id: Id9e52061af53ea18dd5d13b960daaa67a14f61ca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3038804 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit e635f6c2f6f8aea77e5ec42df9615a9f5257d0cb +Author: Jamie Madill +Date: Tue Jul 20 08:41:07 2021 -0400 + + Add -Wno-implicit-fallthrough to GLES 1 CTS. + + Bug: angleproject:6198 + Bug: chromium:995993 + Change-Id: Ib8eb640d567c63d85645f64cc870a286227fb9c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040160 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit afda22b0856d8acfb35026a921bfafe4175278ce +Author: Jeff Gilbert +Date: Mon Jul 19 16:46:50 2021 -0700 + + Define ANGLE_IS_64_BIT_CPU in common/platform.h. + + This is more reliable and reduces reliance on build flags. + Vendoring into Firefox, it's not trivial to replicate build flags, + but C++-native checks always work. + + Bug: angleproject:6186 + Change-Id: Idafd4ef1954efbfa79eae86cddfaa8f2e3992296 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036589 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit d100187f019a8d09a1b36716007440fd6fed4e16 +Author: angle-autoroll +Date: Tue Jul 20 10:01:01 2021 +0000 + + Roll SwiftShader from c6747d98397d to 7a7993b54e62 (16 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c6747d98397d..7a7993b54e62 + + 2021-07-20 capn@google.com Remove -Xclang -fuse-init-array from the Android build flags + 2021-07-19 capn@google.com Move remaining Subzero x86 traits to their corresponding class + 2021-07-19 capn@google.com Move Subzero Inst traits to the Inst header/source + 2021-07-19 capn@google.com Move Subzero Assembler traits to the Assembler header/source + 2021-07-19 capn@google.com Refactor AsmAddress creation + 2021-07-19 capn@google.com Make AsmAddress producing methods static + 2021-07-19 capn@google.com Increase Subzero x86-64 stack alignment to 16 + 2021-07-19 capn@google.com Fix RequiredStackAlignment initialization + 2021-07-19 capn@google.com Rename Subzero Address to AsmAddress + 2021-07-19 capn@google.com Rename Subzero traits Operand to AsmOperand + 2021-07-19 capn@google.com Specialize Subzero X86 backends for 32- or 64-bit + 2021-07-19 capn@google.com Don't templatize based on X86 traits + 2021-07-19 capn@google.com Deduplicate X86 condition codes + 2021-07-19 capn@google.com De-templatize the IceAssemblerX86Base class + 2021-07-19 capn@google.com Duplicate X86 headers into X8632 and X8664 ones + 2021-07-19 capn@google.com Define specialized PoolTypeConverter constants in the header + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I6a3818c2961e05bbfbeb5efac2ce9e495f3a832d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040826 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 748a6d3180ebf09dc361be3dff5b8acb13ce3061 +Author: angle-autoroll +Date: Tue Jul 20 10:01:52 2021 +0000 + + Roll vulkan-deps from 7c4121a2cfd0 to a42815069bad (28 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/7c4121a2cfd0..a42815069bad + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/4b7b86d568..9158061398 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/be3988b13c..e51630595f + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/640b17b5fb..f084bcfe2b + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8b83ca019c..d444097efd + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I32ca60c8087c6107f39ed0eb13baec3b997beaa5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040923 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 32196d8f769199db663f1d2986d8755537894515 +Author: Shahbaz Youssefi +Date: Fri Jul 16 14:49:08 2021 -0400 + + Vulkan: SPIR-V Gen: Support built-ins with out parameters + + Some built-ins have out parameters; modf, frexp, uaddCarry, usubBorrow, + umulExtended and imulExtended. In SPIR-V, they are translated as such: + + - modf and frexp: Returns the same result as GLSL, with a pointer to + store the output parameter. Since SPIR-V cannot create pointers to + swizzles, a temp variable is used in that case. + - uaddCarry, usubBorrow, umulExtended and imulExtended: These return a + struct in SPIR-V, which contains the two output parameters; with lsb + in field 0 and msb in field 1. + + Bug: angleproject:4889 + Change-Id: Ic5114f74b9c1013093007e91939f78d5218f2a07 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036088 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 6a86d2079fd372377c27073fc7a0c875bef54634 +Author: Jeff Gilbert +Date: Fri Jul 16 18:28:13 2021 -0700 + + Add a feature flag allowES3OnFL10_0 to allow ES3 on d3d10.0. + + (Originally by Jeff Muizelaar ) + This lets us run WebRender on devices that only support D3D 10.0. + + Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1620075 + + Bug: angleproject:6189 + Change-Id: I77c09851c50dee206702b1da25a9ef0c05eeb6c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036598 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Jeff Gilbert + +commit 4b74189bd5834822fe81d6dce190a23567241ae7 +Author: Jeff Gilbert +Date: Mon Jul 19 16:19:12 2021 -0700 + + Add missing header to build config. + + Bug: angleproject:6185 + Change-Id: Ia3292935489e808bc53a6df3723d81355789b460 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036588 + Commit-Queue: Jeff Gilbert + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit 60d76ec1f80ddddac95adbd588f8f1b460ace9dc +Author: Jamie Madill +Date: Fri Jun 25 17:35:22 2021 -0400 + + Trace Tests: Autodetect Goma. + + Checks for the existence of the compiler_proxy process. + + Bug: angleproject:6102 + Change-Id: I58848dc7cd62aeb65c28990212f29df6ff66db1a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989672 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + +commit b3cbfd55859c950636bccc5ac51c2fa758a4ed31 +Author: Kenneth Russell +Date: Wed Jul 7 12:31:57 2021 -0700 + + Fix multiple end2end crashes in direct-to-MSL compiler. + + This set of changes: + + - Adds a single place (CompilerMtl::useDirectToMSLCompiler) where the + direct-to-MSL compiler can be enabled, still at compile time rather + than run time. It is still disabled by default. + - Initializes MTLWaitableCompileEventImpl::mShader, without which all + shader compiles crash. + - Fixes a mismatch of the ANGLERasterizerDisabled variable name in + the generated MSL. + - Removes the transform feedback bindings as an argument to the + vertex shader's main0(). Transform feedback support needs to be + reimplemented in this compiler backend. + - Added an option to the DriverUniform class to emit as either an + interface block or a struct. The direct-to-MSL backend assumes it + is a struct. + - Disable variable reference validation when referencing either + sample mask or rasterizer discard functionality in the shader. + - Disable struct usage validation when inserting references to + ANGLE_TextureEnv. This occurs during pipeline rewriting and it's + infeasible to disable it at that point, so disable it during + pipeline rewriting - which means it's disabled for all shaders. + - For angle_end2end_tests, disable the file API hooking which + disables the Metal shader cache. This speeds up the tests + significantly - by roughly a factor of 5. + + With these changes, several hundred angle_end2end_tests run without + any assertion failures, though still with many test failures. The next + crash is in: + GLSLTest.NamelessScopedStructs/ES2_Metal + and will likely require a larger bug fix, or more changes to be + upstreamed from WebKit's repository. + + Bug: angleproject:5505 + Change-Id: Ia1ea9a13867f00035d4aeccf907fd032255588e3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010486 + Commit-Queue: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jonah Ryan-Davis + +commit 2b86e2d60f03d6cd6aa59c9aec78ff0ff604eaff +Author: Jamie Madill +Date: Mon Jul 19 10:30:57 2021 -0400 + + GN: Update dcheck/assert conditions. + + In preparation for a Chromium change that makes dchecks enabled + by default in Release builds, we'll keep ASSERT disabled in + Release by default. We add a new flag 'angle_assert_always_on' + for controlling ANGLE ASSERT behaviour. + + Also slightly refactors the direct SPIR-V generation GN. + + Chromium CL: https://crrev.com/c/2893204 + + Bug: chromium:1225701 + Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Dirk Pranke + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 8c1cbc5a85e5ce57f45b88d1fcfe5dcc4da9fb6b +Author: Jamie Madill +Date: Fri Jul 16 14:01:53 2021 -0400 + + Implement EGL_KHR_mutable_render_buffer in the front-end. + + Note that we do not currently expose any mutable configs. + + Bug: b/192352791 + Change-Id: Ib97f7889fedd91d09ef32dc7e7494ea4476cd7bd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035583 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + +commit 011ef7edf24c5ba8304a82d8bb83486ae49759b9 +Author: Shahbaz Youssefi +Date: Fri Jul 9 01:33:57 2021 +0000 + + Revert "Ignore VUID-VkSpecializationMapEntry-constantID-00776" + + This reverts commit 0beafe862b4c21299d40b5ffcf98816828254a2a. + + Reason for revert: VVL error no longer reproducible + + Original change's description: + > Ignore VUID-VkSpecializationMapEntry-constantID-00776 + > + > New check added in + > https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/2903 + > Blocks VVL rolls. + > + > Bug: chromium:1226682 + > Change-Id: Iaf12187c33a0c3736acae6e772277dbe6aa4c402 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007137 + > Reviewed-by: Jamie Madill + > Commit-Queue: Yuly Novikov + + Bug: chromium:1226682 + Change-Id: I7df7373fb52a1a64d94fd1973927cef4f89f2f05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3017555 + Commit-Queue: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit d84d12880f3b1179f6d80f6682991797ccd52e36 +Author: Torne (Richard Coles) +Date: Fri Jul 16 12:08:03 2021 -0400 + + android: Explicitly specify exported activities. + + Android 12 requires all components with an to explicitly + specify whether they are exported, instead of being exported by default. + Update various remaining cases in our tests/sample code/tools. + + Bug: chromium:1223110 + Change-Id: Iab37881d947da25d771bf757d2f7581ad782c73f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035442 + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + +commit 9a938e82c8fefc45cbee89add39a9cdb37b70a53 +Author: Mohan Maiya +Date: Thu Jul 15 13:41:43 2021 -0700 + + Bug fix in ValidateCopyImageSubDataBase + + ValidateCopyImageSubDataBase had a few missing validations + and was returning the incorrect error enum. + + Bug: angleproject:3593 + Test: dEQP-GLES31.functional.debug. + negative_coverage.callbacks.buffer.copy_image_sub_data + negative_coverage.log.buffer.copy_image_sub_data + negative_coverage.get_error.buffer.copy_image_sub_data + error_filters.case_24 + Change-Id: I6f96c49ae6cf584559cb56fc614ac289b5e00c77 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2970944 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Mohan Maiya + +commit 5c8bf0816b340424a45fafc8b21ec5457e97d878 +Author: Mohan Maiya +Date: Tue Jun 8 13:12:24 2021 -0700 + + Vulkan: Add support for YUV internal format extension + + 1. Add a function to upload YUV image data to textures + 2. Modify stageSubresourceUpdate method to account for YUV images + 3. Create VkSamplerYcbcrConversion when initializing ImageHelper + 4. Update hasImmutableSampler to account for native YUV format support + 5. Skip initializeNonZeroMemory for YUV formats + + Bug: angleproject:5773 + Test: Texture2DTestES3.TexStorage2D*Yuv*Vulkan* + Change-Id: I270f04bbf903cf2bf19f100eb95f32953d491c39 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947767 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 0a83d95838cdb18f8abb3652b01b1c34d2581663 +Author: Jamie Madill +Date: Mon Jul 19 09:52:13 2021 -0400 + + Capture/Replay tests: Fix missing usage of ApplicationDir. + + This was changed to ModuleDir in http://crrev.com/c/3035444 + + Fixed the capture/replay self-tests. + + Bug: chromium:1219969 + Change-Id: Iaada421e9748db1e8afe17acf0705d5a89db6edb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035248 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 75c0d67c87fcf1a4618a33bc8c8e86aff2490c09 +Author: Jeff Gilbert +Date: Fri Jul 16 18:05:36 2021 -0700 + + Build fixes needed by Firefox circa 2021-feb. + + Bug: angleproject:6187 + Change-Id: Ife2c9f08ca213358b8fb06a858664d235a860730 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036592 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit a7056fe674b69c7892897f90437ef253fe12773f +Author: angle-autoroll +Date: Mon Jul 19 11:53:03 2021 +0000 + + Roll VK-GL-CTS from 6b9a0f391fa4 to 571256871c2e (17 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/6b9a0f391fa4..571256871c2e + + 2021-07-16 alexander.galazin@arm.com Use uintptr_t in the framework + 2021-07-16 alexander.galazin@arm.com Use [u]int64_t in the framework + 2021-07-16 gleese@broadcom.com Extend image tests to support formats with no formats + 2021-07-16 gleese@broadcom.com Define a framework function for getting SPIR-V format tokens + 2021-07-15 piotr.byszewski@mobica.com Test blitting from compressed formats + 2021-07-15 siglesias@igalia.com Add test of vkCmdCopyImage with both layers and mipmaps + 2021-07-15 rgarcia@igalia.com Test dynamic topology with tessellation shaders + 2021-07-15 gleese@broadcom.com Remove extended image format capabilities from more tests + 2021-07-15 gleese@broadcom.com Simplify image extend operand tests for extended formats + 2021-07-15 alexander.galazin@arm.com Use [u]int16_t in the framework + 2021-07-15 alexander.galazin@arm.com Use [u]int8_t in the framework + 2021-07-15 alexander.galazin@arm.com Use [u]int32_t in the framework + 2021-07-15 alexander.galazin@arm.com Require to enable implicit layers + 2021-07-14 jajones@nvidia.com Fix FreeBSD build of VK_EXT_physical_device_drm tests + 2021-07-09 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master + 2021-07-09 alexander.galazin@arm.com Deprecation notice for Vulkan CTS 1.2.3.x + 2021-07-09 siglesias@igalia.com Added tests to check ignored Vk*PipelineCreateInfo members + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC cnorthrop@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com,angle-bots+autoroll-info@google.com + Change-Id: I3be9b8f86434efa3e0f09b8de96797840b27b1f8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037214 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a3f44ab830ec74066be76ed57773b0d61c902227 +Author: Jamie Madill +Date: Mon Jul 19 08:23:27 2021 -0400 + + Vulkan: Remove loader logging message in RendererVk. + + This was causing issues with a Chrome test. + + Bug: chromium:1230474 + Change-Id: I0e5e3df5c9ad5774d6f5a2b41f4f1429000fe81e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035247 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 4ee176abe10ddbe936962b6ef5d12c043aaca39a +Author: angle-autoroll +Date: Mon Jul 19 11:15:02 2021 +0000 + + Roll SwiftShader from ba18c78e4696 to c6747d98397d (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/ba18c78e4696..c6747d98397d + + 2021-07-19 adrian.ratiu@collabora.corp-partner.google.com Backport LLVM fix for mallinfo deprecation + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I55f120389b2c651b9f13f31e20a093210e90cb0f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037890 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fb26ba6aac352e8cbc62cf1bad5dcf0efb052cc0 +Author: Yang Gu +Date: Tue Jul 6 14:24:29 2021 +0800 + + Extend Intel graphics driver version to 2 fields + + The 4th field of Intel new graphics driver will overflow soon. For + example, the lastest driver version is 27.20.100.9466 and the 4th field, + 9466, will meet the maximum 9999 soon. Future driver will bump the 3rd + field from 100 to 101. This CL extends driver version check from 4th + field to both 3rd and 4th fields. + Check below 2 documents for more details. + https://www.intel.com/content/www/us/en/support/articles/000005654/graphics.html + https://docs.google.com/document/d/1Xm4afyGR3Ow3W2G-uig9fLQR01XzmSXeanM9OXDVhlg/edit#heading=h.k8onwbxk2ig + + Bug: angleproject:6138 + Change-Id: Iefb1d56b48d0f08e79c329c422a6ef142b33553d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007570 + Commit-Queue: Yang Gu + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit 926fe3575bcab7206becc5695cbf171eedf8695c +Author: angle-autoroll +Date: Mon Jul 19 07:01:44 2021 +0000 + + Roll Chromium from ac347590d69b to f8ef6fcfb849 (67 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/ac347590d69b..f8ef6fcfb849 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/36da2dc511..f619f21d40 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..5cb305306a + * tools/luci-go: git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876..git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756 + * tools/luci-go: git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876..git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756 + * tools/luci-go: git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876..git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ed1db6c6b3..df951e112c + * tools/skia_goldctl/linux: v3HXOS7MJkC2TfycHGZS1dHlQ_BosbzqLeuDXXLbxMUC..up6EUcZzuFZnm2JCEV1eW0TwCEAZjPcqtS2CsZN-3qAC + * tools/skia_goldctl/mac: nx0V9Budj8K1DfPIdKA9oakeQE7SPTMIvVwqzX0DkF4C..eR_S1Urlw9be4WKiQcXwEcBn9KiDrWknodT82I6vw-kC + * tools/skia_goldctl/win: 5vRobMZ1N26UvonRAdJZ66IEfzd3vF8r6z8j4Nqrhc8C..pLY1rCmGsL8vtV0wWxgqY3sOWkwIxuRh6PMIn_0BDcAC + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I33441c8cc8defd3a974de75172e16ac403d88a3b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037212 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5fb3a549f6a976c03cf7f94a7114d06d8e2c35d9 +Author: Cody Northrop +Date: Sun Jul 18 22:15:12 2021 -0600 + + Skip GLSLTest_ES31.BoolInInterfaceBlocks/ES3_1_OpenGL AMD Linux + + Bug: angleproject:6192 + Change-Id: I853864cfce5edb78be940c6f59f22187dce7e47b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037629 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 4d9e1f230fa71e799a9aa4f6854131faa2527474 +Author: Cody Northrop +Date: Sun Jul 18 21:15:41 2021 -0600 + + More skips for GLSLTest_ES31.TypesUsedInDifferentBlockStorages + + Also disable the test on the Linux AMD OpenGL backend. + + Bug: chromium:1230024 + Change-Id: I9ff2d798cf7410db55802fb86635b5d833d32284 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037628 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 32829f093e413f2df5ab0a4672a0a071fa546926 +Author: angle-autoroll +Date: Sat Jul 17 19:45:34 2021 +0000 + + Roll Chromium from ec932ff42c9b to ac347590d69b (492 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/ec932ff42c9b..ac347590d69b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c0b24c3c75..fd86d60f33 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/2500c1d8f3..37dc929ecb + * buildtools/linux64: git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8..git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b + * buildtools/mac: git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8..git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/486cb62885..7d5c92f6cf + * buildtools/win: git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8..git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d5800742c1..36da2dc511 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/3a5a816917..9211d9e376 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..5cb305306a + * third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/e9e400e0af..ad8b3b0f84 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/7cf9863263..2229323ff7 + * tools/luci-go: git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f..git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876 + * tools/luci-go: git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f..git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876 + * tools/luci-go: git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f..git_revision:d10ff2af1182ccaad573bc5acb84a36f4c280876 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8e00ef0f0d..49df801dea + No update to Clang. + + Bug: angleproject:6182 + Tbr: cnorthrop@google.com,ynovikov@google.com + Change-Id: I126380502db06c46d8e1ddada145a3f6f0c85b39 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035951 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9ddaa68604ae0563743909fa1d27b56a47777fee +Author: Tim Van Patten +Date: Fri Jul 16 14:57:13 2021 -0600 + + Call getNearestSamples() in Framebuffer::setAttachment() + + The app jp.garud.ssimulator uses the same sample count of '2' for both + glRenderbufferStorageMultisampleEXT() and + glFramebufferTexture2DMultisampleEXT(). However, when + glRenderbufferStorageMultisampleEXT() is called, + Renderbuffer::setStorageMultisample() calls + TextureCaps::getNearestSamples() which rounds up the sample count from + '2' to '4'. Later, when the app tries to draw with the framebuffer, + an error is generated by ANGLE: + + Framebuffer is incomplete: Attachments have different sample counts. + + The fix is to also call TextureCaps::getNearestSamples() in + Framebuffer::setAttachment() to make sure the sample count passed + into glFramebufferTexture2DMultisampleEXT() is also rounded up to + match the renderbuffer. + + Bug: angleproject:6183 + Test: MultisampledRenderToTextureTest.FramebufferCompletenessSmallSampleCount + Change-Id: I58be9986077257f4767f2e528c2f87e496d9d774 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036254 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit ab197a2bd3bd6fcdf6b84ca25090f10aaf51554b +Author: Cody Northrop +Date: Fri Jul 16 16:08:08 2021 -0600 + + Skip GLSLTest_ES31.TypesUsedInDifferentBlockStorages AMD Linux + + The following test is failing on AMD Linux bots: + GLSLTest_ES31.TypesUsedInDifferentBlockStorages/ES3_1_OpenGL + + It is skipped on many platforms, so adding another. + + Bug: chromium:1230024 + Change-Id: Ie24aa04c1b8ab4d4ecdb5c4449d320ae180ecb54 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035864 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 312e91c88113b543c70d0134b8739896ffd3edb5 +Author: Ian Elliott +Date: Fri Jul 16 14:25:35 2021 -0600 + + Two fixes to DevSetup.md + + Change master->main and eliminate a redundant/premature Linux + instruction. + + Bug: angleproject:0 + Change-Id: Ic7171f860de8acc22050a4d4858cfd318f36b9e3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035863 + Commit-Queue: Ian Elliott + Reviewed-by: Cody Northrop + Reviewed-by: Shahbaz Youssefi + +commit 232e523656fccfacabeb8e5ce0cbc2e6dcc1ec4e +Author: Geoff Lang +Date: Thu Jul 8 15:08:35 2021 -0400 + + Remove the explicit context extension. + + This extension currently has no known users and doubles the + number of entry points that ANGLE exports which is a significant + binary size cost. + + This saves about 130kb of binary size on Android. + + Bug: chromium:1084580 + Change-Id: Ib0fc4930b38a33bd61434f7d0030ba9fb9b93ba7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015518 + Commit-Queue: Geoff Lang + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit f4ce6d00c47d43cbd2342d05dee66fdc8988e584 +Author: Shahbaz Youssefi +Date: Thu Jul 15 11:07:25 2021 -0400 + + Vulkan: SPIR-V Gen: Support bool in interface blocks + + SPIR-V doesn't allow bool in interface blocks. Another type + specialization is added for this purpose, turning those bools to uint. + + Bug: angleproject:4889 + Change-Id: I803bffcf5ea58c913d4df6e7aae3386c67901b25 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032021 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 48da1c3594095fe363bd18e58982d9856f6654fa +Author: Jamie Madill +Date: Fri Jul 16 13:24:34 2021 -0400 + + Vulkan: Prefer the local vulkan loader over the system one. + + Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to + volk. This allows us to always prefer loading from the current module + directory instead of using the platform-specific ordering. + + Refactor angle::Library loading to use ModuleDir instead of + ApplicationDir. + + CL originally authored by Geoff Lang. + + Bug: chromium:1219969 + Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit dd0e8a1fc0a73d3c0b168752dbc92767cc39c2cb +Author: Jamie Madill +Date: Fri Jul 16 10:33:57 2021 -0400 + + Capture/Replay tests: Enable dcheck_always_on. + + This will enable release ASSERTs. ASSERTs were unintentionally + disabled when switching to release builds. + + Bug: angleproject:5133 + Change-Id: Ie19e9fd02624b10283192467c4e22e3cf2b382c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035521 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + +commit 2a713d929969dba4d31035b0cbfc54e7da45514b +Author: Pujun Lun +Date: Thu Jul 15 14:58:54 2021 -0700 + + Avoid recreating activity when rotating the display. + + Reference: + https://developer.android.com/guide/topics/resources/runtime-changes#HandlingTheChange + + Bug: b/193828422 + Change-Id: I4caa80941e4d32bdf5c830985a19536efd041069 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032150 + Reviewed-by: Cody Northrop + Reviewed-by: Charlie Lao + Reviewed-by: Yuly Novikov + Commit-Queue: Cody Northrop + +commit 966c6a9aa0d4531169236aa480073d4f806f164f +Author: Jamie Madill +Date: Thu Jul 15 12:50:09 2021 -0400 + + Capture/Replay: Don't try to serialize compressed textures. + + Instead we write out a simple string indicating compressed texel + contents. We in the future could implement a GetCompressedTexImage + API. + + Bug: angleproject:6176 + Change-Id: I6673ec85ac94d5268b24bda4d510247a63fa97e4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032022 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + +commit ac61386dcbca3d5800c4735b29b7d7e6ed12c0c2 +Author: Jamie Madill +Date: Thu Jul 15 11:08:48 2021 -0400 + + Capture/Replay Tests: Swap before TearDown. + + Swapping before TearDown lets the capture and serialization logic + see all the test resources that will be cleaned up by the fixture. + This will increase coverage quite a bit because many tests do + automatic cleanup which would previously skip serialization. + + Bug: angleproject:6175 + Change-Id: I85aa3f6d9bcf2fd66836523e55862a2d5f0d8e32 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031702 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 044856565e688373cacc8cc988c87a6f6c9d625b +Author: Gert Wollny +Date: Thu Jul 15 13:46:54 2021 +0200 + + Capture/Replay: Capture WaitSemaphore and SignalSemaphore + + Enable tests that now pass, but keep tests that time out or + still crash on the skip list. + + Bug: angleproject:6164 + Change-Id: I39e56f0a1bfae09c74a54b06367f7eef41d1063c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024208 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 1e75181f31bc326de22ec787687396984b668593 +Author: Gert Wollny +Date: Thu Jul 15 13:39:08 2021 +0200 + + Capture/Replay: redesign capturing of arrays passed by pointer + + Instead of doing a lookup of the number of passes array when the + call is written, store the number of array values in the + ParamCapture when the call is captured. + + Bug: angleproject:6164 + Change-Id: I87b0e2f776a6884b999cc50844e0777cda26b380 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031543 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 1d2c60da34d82f1d67dfe260bcbf87aca0a3ff29 +Author: Gert Wollny +Date: Mon Jul 12 21:44:24 2021 +0200 + + tests: GL_NUM_BINARY_FORMATS is a ES 3.0 property + + Enable according test. + + Bug: angleproject:6165 + Change-Id: Idb0908024ebce485ac182463a02eba415f0ffec8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024207 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit ab440fe932ff235f228bf4f4efd214869bb87504 +Author: angle-autoroll +Date: Fri Jul 16 07:00:48 2021 +0000 + + Roll Chromium from 8cd71c4b8d72 to ec932ff42c9b (494 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/8cd71c4b8d72..ec932ff42c9b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/a0ffb5c18b..c0b24c3c75 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/bb278658aa..486cb62885 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fc691f716e..d5800742c1 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..88e3e03477 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/9ae36fe326..c81b8b948f + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/8160e2a4da..ed1db6c6b3 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f6e0d38cba..8e00ef0f0d + * tools/skia_goldctl/linux: akNu1KJYVHgTQNr5JP2zeDRr55on3hTjOig4L_oTFC8C..v3HXOS7MJkC2TfycHGZS1dHlQ_BosbzqLeuDXXLbxMUC + * tools/skia_goldctl/mac: tZIg-mPdIZ6uAOSczjKk5xX2bYbpRxpWf03pIR1H57UC..nx0V9Budj8K1DfPIdKA9oakeQE7SPTMIvVwqzX0DkF4C + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I6c4e73b53f31d2a956769a84e9a32136cf561906 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3033965 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 106ed74c5b2b0d0b421fd15ce0f115188031187d +Author: Gert Wollny +Date: Mon Jul 12 20:55:33 2021 +0200 + + Capture/Replay: Capture FenceNV parameters + + Enable according tests. + + Bug: angleproject:6163 + Change-Id: I4435a650530006997ed3f14315461060729b836a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024206 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit 397fc145b8b330605ac3eb4010cc1990411fea7e +Author: Qin Jiajia +Date: Thu Jul 15 09:20:28 2021 +0800 + + Fix the ext-texture-norm16 with RG16 failures + + Don't apply the readPixelsUsingImplementationColorReadFormatForNorm16 + workaround for Intel GPU. With this workaround, below error will be + printed: + GL_INVALID_OPERATION in glReadPixels(invalid format GL_RG and/or type + GL_UNSIGNED_SHORT) + in FramebufferGL.cpp, readPixelsAllAtOnce + + Test: + conformance2/extensions/ext-texture-norm16.html + + Bug: chromium:1208297 + Change-Id: Ic9016c3afd8a0d2add61247adbf0d9434e8ce9f4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028810 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Jiajia Qin + +commit 96aa681ce39d288a58692debacb6dc2107971c07 +Author: Jonah Ryan-Davis +Date: Wed Jul 14 17:12:18 2021 -0400 + + Enable SwANGLE on ozone headless + + To switch ozone testing to SwANGLE we need ANGLE to be able to run + vulkan/swiftshader on the ozone headless platform. + + Bug: chromium:1227864 + Change-Id: Icb8dc8fc4b3a5bc2402be2e41334350815fdd4dd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027045 + Reviewed-by: Jamie Madill + Commit-Queue: Jonah Ryan-Davis + +commit 298fafd7f887dc49d3efff98f1f6adc725115fdb +Author: Tom Anderson +Date: Wed Jul 14 13:57:30 2021 -0700 + + [GLX] Allow usage of multiple visuals + + When using AMGLE_x11_visual, a single visual is specified for the whole + session. This is limiting since windows can have different visuals. + For example, one window may want transparency and another window may + not. This CL makes it not-an-error to use a window with a visual other + than the one set with ANGLE_X11_VISUAL_ID. In this case, ANGLE will + fallback to using a child window, as if ANGLE_X11_VISUAL_ID had not been + specified. + + Long term, a better solution would be to allow specifying + ANGLE_X11_VISUAL_ID per window. + + Bug: chromium:1225953 + Change-Id: Ibec411cfd1341c30b2842a7ddba3fea6023de2b3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028803 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jonah Ryan-Davis + +commit 9c6fb52c74fbe4428499b3589dbe7ca3be6c299d +Author: Shahbaz Youssefi +Date: Tue Jul 13 14:10:41 2021 -0400 + + Vulkan: SPIR-V Gen: Assignment between mismatching SPIR-V types + + In general, GLSL qualifiers translate to SPIR-V decorations on SPIR-V + variables. In the case of blocks (struct or interface block), + OpMemberDecorate is used, which due to its specification in SPIR-V, can + only apply decorations to direct members of a block. This makes it + impossible for example to decorate a nested member of a block through + its variable id. + + As such, some decorations such as RowMajor and Invariant apply to + members of a block given its _type_ id. Unfortunately SPIR-V requires + ArrayStride to also be applied to a type directly, rather than a member + of a block. This implies that some types, such as structs used in + uniform/buffer interface block, or decorated with invariant or + row_major, as well as arrays (of any type) used inside and outside + interface blocks to produce different SPIR-V types from the same GLSL + type. The SpirvTypeSpec data previously introduced specialize these + types. + + It's necessary to "cast" between these types when needed. The + translator handles casts at load/store boundary: + + - Upon load, the value is cast to the type with the default + SpirvTypeSpec. + - Upon store, the value is cast from the default to the store target + SpirvTypeSpec. + - All intermediate results use the default SpirvTypeSpec. + + Bug: angleproject:4889 + Change-Id: I6fa28e518ec6b517ff163f44b6892859eb4b10fd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3026145 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 5e579a18790e5d2f056e0090e9b81f0bd2a96d62 +Author: Shahbaz Youssefi +Date: Tue Jul 13 01:22:48 2021 -0400 + + Vulkan: SPIR-V Gen: Support row-major blocks + + The SPIR-V type generation is refactored to contain all + type-differentiating properties in a specific struct that is passed + around. The following can lead to different SPIR-V types generated from + the same GLSL type: + + - Block storage for blocks + - Invariant for blocks + - Row-major for blocks with matrices + - Row-major for matrix arrays in blocks + - Bool when used inside an interface block (not yet implemented) + + Previously, block storage and invariant were passed around. Instead, + with this change the aggregate of all the above is passed around. The + row-major specialization is added in this change. + + This change also refactors the uniform/buffer block encoding to use the + existing encoders in blocklayout.h. + + Bug: angleproject:4889 + Change-Id: I3cfa8bd96bb380a1f1f05fbbd6b3eebd702c9e24 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021670 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 992a2f7094bf26daacad305bfb74d084f15ef9f6 +Author: Yuly Novikov +Date: Thu Jul 15 14:32:11 2021 -0400 + + Skip DrawRepeatUnalignedVboChange on Mac ARM Metal + + SimpleStateChangeTest.DrawRepeatUnalignedVboChange/ES2_Metal + flaky on Mac FYI arm64 Release (Apple DTK) + + Bug: angleproject:6171 + Change-Id: I9fa8b39e172c6422d9430ab3a0aa8ce9e7558b9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032024 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 4b47e8f30f18f7b3bad04581fe2155ae900b0eea +Author: Jamie Madill +Date: Wed Jul 14 13:29:29 2021 -0400 + + GL-CTS: Add option to run on D3D11 refrast. + + Bug: None + Change-Id: Ia28afed48b3fddcd9725094f4892a1aa27957fd4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027540 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit f46df3978ab6102768048a6bf40e6f4989276065 +Author: Cody Northrop +Date: Wed Jul 14 19:41:03 2021 -0600 + + Vulkan: Suppress VVL errors triggered by external formats + + Since several tests are hitting these and it may be a VVL bug, + moving to ignore rather than skips. + + Bug: angleproject:6155 + Bug: angleproject:6168 + Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Reviewed-by: Mohan Maiya + Commit-Queue: Cody Northrop + +commit 669acb00b23255c63136563b0422bddf3db08b48 +Author: Mohan Maiya +Date: Tue Jun 8 13:36:38 2021 -0700 + + Add YUV format utils and validation code + + 1. Add YuvFormatInfo struct and a few YUV format helpers + 2. Update ES3 validation code to account for YUV formats + + Bug: angleproject:5773 + Change-Id: I82ababe8bf2a065e7d5c4f868e4a512ba8c9d7d2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947766 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 4264138a69fb4d026a8c313bbd5e97d9c8acae53 +Author: angle-autoroll +Date: Thu Jul 15 10:01:54 2021 +0000 + + Roll vulkan-deps from a03f2d365426 to 7c4121a2cfd0 (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/a03f2d365426..7c4121a2cfd0 + + Changed dependencies: + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/dada63db18..8b83ca019c + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I4a3aa5dfe053be1cc20824d07143c99fd347195c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031221 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 4b9b435bd55947d195a5483fe2b70824883674a4 +Author: angle-autoroll +Date: Thu Jul 15 07:00:29 2021 +0000 + + Roll Chromium from 47358b0400b8 to 8cd71c4b8d72 (448 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/47358b0400b8..8cd71c4b8d72 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c8b96e2021..a0ffb5c18b + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/6803464b0f..bb278658aa + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/70c4b1c859..fc691f716e + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/ea5c2c2838..76bd51b56b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f61fac0492 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/9d0a403e85..9ae36fe326 + * tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f + * tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f + * tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/9f08bce929..8160e2a4da + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/1f94e8277f..f6e0d38cba + * tools/skia_goldctl/linux: McKpb1_oys52qBLvSwGec9-adPkk72RTCSdOBnzZiakC..akNu1KJYVHgTQNr5JP2zeDRr55on3hTjOig4L_oTFC8C + * tools/skia_goldctl/mac: Ea5khSEBtnBiIUjc8YOW1PTAiFTBzcSCJcQXyS_RcV8C..tZIg-mPdIZ6uAOSczjKk5xX2bYbpRxpWf03pIR1H57UC + * tools/skia_goldctl/win: hrfC-m0pHo7gMu28Bdo4wR8Fnxk_GQkMcO9LyPNPThoC..5vRobMZ1N26UvonRAdJZ66IEfzd3vF8r6z8j4Nqrhc8C + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Iee7633c3b092fc9399383a24b5d0f812b9841e13 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028523 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 223cd0ac248d8f5be5a52aa583146590de4f6529 +Author: Tim Van Patten +Date: Tue Jun 15 18:46:07 2021 -0600 + + Capture/Replay: Refactor shared context handling + + This is the initial CL to enable capture/replay of multi-context + applications. + + This CL refactors FrameCapture and FrameCaptureShared to move much of + the functionality into FrameCaptureShared, since most everything is + shared by Contexts in the share group. For example, the setup of the + majority of the GL objects is done in the new SetupReplayContextShared() + function in the new $LABEL_capture_context_shared_frame001.cpp file. The + setup is performed by (for example): + + void SetupReplay() + { + $LABEL::InitReplay(); + $LABEL::SetupReplayContextShared(); + SetupReplayContext2(); + } + + This performs the shared setup first, followed by the context-specific + setup, which may reference shared objects careated by + LABEL::SetupReplayContextShared(). + + No re-capturing is required with this change, since the external APIs + (i.e., SetupReplay()) are still the same. + + Bug: angleproject:5878 + Test: Manual MEC and replay of Magic Tiles 3, Candy Crush Soda Saga, Temple Run 2 + Change-Id: Iab7bfe651437e9be1dee83514cd97acc20c61d1d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965780 + Commit-Queue: Tim Van Patten + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit db54b8dd65edaf50c79a81a8d3eeeeb9dc20ecab +Author: Mohan Maiya +Date: Tue Jun 8 21:44:10 2021 -0700 + + Add YUV format support to frontend + + Add GL_G8_B8R8_2PLANE_420_UNORM_ANGLE and + GL_G8_B8_R8_2PLANE_420_UNORM_ANGLE formats to InternalFormatInfoMap + + Bug: angleproject:5773 + Change-Id: Iaad4043f803c2702a5d41d3b9dc3a00c5f6aed73 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947765 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 979876586da6be6bb0b828df40e4b01cecee0680 +Author: Mohan Maiya +Date: Sun Jun 6 11:36:49 2021 -0700 + + D3D: Update format table with new YUV formats + + They are currently mapped to angle::FormatID::NONE + + Bug: angleproject:5773 + Change-Id: I0cba77158ef06bf39fbb30702e0fa91a37f660a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947764 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 8a7217405589c7762b92af2042c3e72236be6c83 +Author: angle-autoroll +Date: Wed Jul 14 19:04:56 2021 +0000 + + Roll vulkan-deps from 015a6f8b338d to a03f2d365426 (30 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/015a6f8b338d..a03f2d365426 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/9e707294f1..4b7b86d568 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/1ae2b58f19..be3988b13c + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/ddf3230c14..1d4e3a7e3a + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/c26baf4c93..640b17b5fb + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/3bdb32d29f..99c0b1433a + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/8b86fbac17..33a87ce6da + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f2912cd0f6..dada63db18 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I9c7df90a144727812e03fb5417ea0df22ba34bae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027273 + Bot-Commit: angle-autoroll + Commit-Queue: Cody Northrop + +commit e66e334491da1971a1763c352b9256241f5af36c +Author: Mohan Maiya +Date: Mon Jul 12 13:28:54 2021 -0700 + + Vulkan: Add GL_ANGLE_yuv_internal_format extension + + 1. Add a new extension to support creation of immutable textures with + sized internal YUV formats + 2. Rename YUV format enums from *_ANGLEX to *_ANGLE + 3. Move YUV format enums from angleutils.h to glext_angle.h + + Bug: angleproject:5773 + Change-Id: Ibfe732f4c9a4a536be56481f33e4768f6227c212 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820153 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit cd73949c48491314189cf00dc57079ff2248b371 +Author: Cody Northrop +Date: Wed Jul 14 14:25:06 2021 -0600 + + Skip SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData P4+VK + + New validation layers are triggering failures. + + Test: SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData + Bug: angleproject:6168 + Change-Id: I4070bd028a598e8d91a3b8f2172b42f3e782c932 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028802 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 3dda3afa2ff040d81b9b4f2360711474590fe87b +Author: Shahbaz Youssefi +Date: Wed Jul 14 16:11:01 2021 -0400 + + Vulkan: SPIR-V Gen: Add missing SampleRateShading capability + + Bug: angleproject:4889 + Bug: chromium:1229324 + Change-Id: I8782ea4b0f9967c12b205a8c48d5f85bd94e950c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027044 + Reviewed-by: Kenneth Russell + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 715a49c754fb5e67fcf40fd1f58b6d93b8b148e4 +Author: Mohan Maiya +Date: Sat Jul 3 08:48:07 2021 -0700 + + Vulkan: Handle incompatible immutable sampler formats + + If the immutable sampler format of an active texture is not + compatible with those supported by the pipeline layout, recreate + the pipeline layout. + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Test: ImageTest.SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData*Vulkan + Change-Id: Iea78e1738ea2fb133a24dc88f5b68daf4cc1bdfe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997289 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit ead83da9331965513bcc10e2e94b04218d846a49 +Author: Jamie Madill +Date: Wed Jul 14 12:29:14 2021 -0400 + + Add environment variable args to trigger script. + + This can allow specifying args such as VK_LOADER_DEBUG. + + Bug: chromium:1228274 + Change-Id: Idf9298e32a0c6a353891eb8b929a3524d27541b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027539 + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 31b06f5f79a85789d27192477ee30475dab7725f +Author: Mohan Maiya +Date: Mon Jul 12 10:06:04 2021 -0700 + + Vulkan: Account for immutable samplers that need multiple descriptors + + It is valid for immutable samplers to need more than 1 descriptor count. + Account for this possiblity while calculating descriptor pool size. + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Bug: angleproject:6141 + Change-Id: Ifb0ed3e4b3c01c61d81dd0c628101f31d4c8bd05 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3005329 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Mohan Maiya + +commit cfc8db0b918f77cd9712082f8f688b3e60412eaf +Author: Cody Northrop +Date: Wed Jul 14 10:37:11 2021 -0600 + + Skip SimpleStateChangeTest.RedefineFramebufferTexture on NV+WIN + + Bug: chromium:1229184 + Change-Id: I68339ddf1bd3ac2ae04c1191045bd27c321131fd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027264 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 41980f05a0ba9032b1496cab969c2acb727b1a89 +Author: Jamie Madill +Date: Wed Jul 14 09:42:32 2021 -0400 + + Download rc binaries for win cross-compile. + + This copies code missing from the Chromium DEPS file. + + Bug: angleproject:6170 + Change-Id: I0f12fe185bf97e9d316a03bec57e4e3ce2fee080 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025126 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 45965e725aca52c5f34b126ee9a34a177cf530ef +Author: Cheryl Wei +Date: Thu Jun 17 10:21:26 2021 +0800 + + Vulkan: Translate border color's channel by image view format + + ANGLE implementes some formats as other formats,such as ALPHA8 to R8, + this caused some tests failed due to missing border color's channel + translation,this change add a new textureBorderLoadFunction to + translate channels of border color by image view format. + + Bug: angleproject:6046 + Change-Id: I94ce719b4db3724ffd3dc862b51a412b5d9f3cce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2972328 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 45c344c19bca3d5c7d6c62509eeb3bb86531c099 +Author: Peter Kasting +Date: Wed Jul 14 06:46:25 2021 -0700 + + Roll third_party/glmark2/src/ 9e01aef1a..ca8de51fe (52 commits) + + Bug: chromium:1066980 + Change-Id: Id364f9039fb563eafc80b2e05e3d0709aae1647f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024962 + Commit-Queue: Shahbaz Youssefi + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit 07c39616b50004ad66fb28e50bb0234983b35514 +Author: Shahbaz Youssefi +Date: Thu Jul 8 17:01:31 2021 -0400 + + Vulkan: SPIR-V Gen: Enable GLSLTest* + + This change includes an assortment of small fixes to enable most of + GLSLTest* end2end tests. + + - User-defined std140 storage buffers were mistakenly turned to std430. + - External and WEBGL samplers were redundantly redeclaring the sampler2D + type. + - `invariant` specified on a field of struct type didn't apply it to + said struct's members. + - Arrays of struct as a member of an interface block didn't have their + size aligned, producing incorrect stride + - Interpolation and auxiliary qualifiers are now generated + - Arrays of opaque uniforms are now correctly passed to functions when + indexed. + - atan(x, y)'s built-in Op is fixed + - early_fragment_tests is now generated + + Additionally, the SPIR-V transformer didn't handle the Invariant + decoration applied to gl_PerVertex built-ins, which is possible as a + result of: + + #pragma STDGL invariant(all) + + This bug existed in the transformer due to two bugs: + + - ANGLE didn't generate this line when generating GLSL to feed to + glslang. This is fixed by this change. + - glslang itself ignores this line: + https://github.com/KhronosGroup/glslang/issues/2689 + + Bug: angleproject:4889 + Change-Id: I15ad9fcc178abc1eae944e7a58f4e6153fa5dfd9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016762 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 2ec3f57428f97ee56ddb34f6d87d4cc617643c61 +Author: angle-autoroll +Date: Wed Jul 14 10:01:02 2021 +0000 + + Roll SwiftShader from 4716eec90fcb to ba18c78e4696 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/4716eec90fcb..ba18c78e4696 + + 2021-07-13 thakis@chromium.org Define NO_SANITIZE_FUNCTION on win/clang too + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I5252213e220a9fc516b80592ead71b8f68947337 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025289 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7bbd3224ae298c86fb51b002c3021bb28e98b2b9 +Author: angle-autoroll +Date: Wed Jul 14 07:37:44 2021 +0000 + + Roll Chromium from 624f8c7a15ff to 47358b0400b8 (511 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/624f8c7a15ff..47358b0400b8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9c63d2e3b0..c8b96e2021 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/cb34896ebd..6803464b0f + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d749d1b98b..70c4b1c859 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/329436118b..8c49b419c2 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a67592355d + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/f376b41126..dfbc590f58 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/aca9f71bde..9d0a403e85 + * tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd + * tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd + * tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1820a3adb0..9f08bce929 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/6dad62e2eb..1f94e8277f + * tools/skia_goldctl/linux: R0Jd4IlcndZlI5C9Pejy7DqtmVEQT8Sc6Ye09MGyFxYC..McKpb1_oys52qBLvSwGec9-adPkk72RTCSdOBnzZiakC + * tools/skia_goldctl/mac: 5NoUEq08DuYUlQWnf2yj6rQvBtlMvWiDqfuUuE5nJFIC..Ea5khSEBtnBiIUjc8YOW1PTAiFTBzcSCJcQXyS_RcV8C + * tools/skia_goldctl/win: M2_R9AXWaN0xmm6nz_nRzKlhpzzOp3P9EUxNaLZ5owMC..hrfC-m0pHo7gMu28Bdo4wR8Fnxk_GQkMcO9LyPNPThoC + Clang version changed llvmorg-13-init-14732-g8a7b5ebf:llvmorg-13-init-15163-g98033fdc + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/aca9f71bde89a71cb8588f5d77868c612a163274..9d0a403e85d25b5b0d3016a342d4b83b12941fd5/scripts/update.py + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I4e4fd8a8207ae99ad7d2ba90a3584941e3ea6f42 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3026068 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2534ee4c5b9da63cfc7a60b14ecd925116105ed4 +Author: Kenneth Russell +Date: Fri Jul 2 12:18:07 2021 -0700 + + Limit the size of declared variables in WebGL shaders. + + Add an implementation-specific limit for the sizes of variables + (specifically arrays, structs, and arrays of structs) in WebGL 1.0 and + 2.0 shaders, and interface blocks in WebGL 2.0 shaders, no matter + whether they're input, output, or local variables. + + It is legal in the OpenGL ES and OpenGL ES Shading Language + specifications to fail to compile shaders for implementation-specific + reasons. + + Add WebGLCompatibilityTests covering the new limit. + + Bug: chromium:1220237 + Change-Id: I6c1d24a5d9a382ba4454c2dfbb856ab9468f5409 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023033 + Commit-Queue: Kenneth Russell + Reviewed-by: Shahbaz Youssefi + +commit 2a668d9219dd91c3c0ab648be36d367d9a6086a5 +Author: Kenneth Russell +Date: Tue Jul 13 16:49:16 2021 -0700 + + Fix iOS Simulator build after direct-to-Metal upstreaming. + + Bug: angleproject:5505 + Change-Id: I4e690099502be2f2404a25d67356d452cf63451b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025240 + Reviewed-by: Cody Northrop + Reviewed-by: Yuly Novikov + Commit-Queue: Cody Northrop + +commit 15581f35e9a90f8551f20d4615e244b1c98c2ede +Author: Qin Jiajia +Date: Tue Jul 13 15:01:56 2021 +0800 + + Fix the INVALID_ENUM error + + This PR fixes the GL_INVALID_ENUM error caused by framebufferTexture2D + in copySubTextureCPUReadback with TEXTURE_EXTERNAL_OES as the texture + target. + + TEST + conformance/textures/video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html + conformance/textures/video/tex-2d-luminance-luminance-unsigned_byte.html + conformance/textures/video/tex-2d-alpha-alpha-unsigned_byte.html + conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html + conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html + conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html + conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html + conformance2/textures/video/tex-2d-rgb16f-rgb-float.html + conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html + conformance2/textures/video/tex-2d-rgb32f-rgb-float.html + + Bug: chromium:1208297 + Change-Id: Ic62ba95ad6fd70f293a7261dc640a95dcabe7ba2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023666 + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Jiajia Qin + +commit 4d9dbf9cb79affe51a106cfdfbe3acea954f0daa +Author: Kenneth Russell +Date: Tue Jul 13 15:23:30 2021 -0700 + + Use "frameworks" rather than "libs" for iOS dependencies. + + The angle_test_expectations static library has added this dependency + but it fails to build on the ios-simulator bot. Try using "frameworks" + instead. + + Bug: angleproject:5505 + Change-Id: Ia08240a042f241c7eefe0de730b6942a60047054 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025238 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 4efcd10c6fe6c6b3d1e96d1325561025b8096947 +Author: Cody Northrop +Date: Tue Jul 13 15:37:43 2021 -0600 + + Skip SourceYUVAHBTargetExternalRGBSampleInitData on Pixel4 + + Two new Vulkan validation errors are being triggered. + + Test: SourceYUVAHBTargetExternalRGBSampleInitData + Bug: angleproject:6168 + Change-Id: I11c86bcb8e47f0dbf8032652aae3988279478ace + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025486 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 7c4404da1d256711f46a3f8129fd2051bc7463f6 +Author: Jason Macnak +Date: Fri Jul 9 13:37:29 2021 -0700 + + Vulkan: update D/S state in ContextVk::onFramebufferChange + + ANGLE needs to ensure that the stencil test is correctly handled + when framebuffers are cleared before stencil attachments are + configured. + + Adds two stencil tests for clearing fbo before stencil attached + which fail before this change and which replicate the behavior of + CtsNativeHardwareTestCases's StencilAffectsDrawAcrossContexts. + + BUG=b/192315789 + TEST=newly added tests on Cuttlefish + Change-Id: I58d97af97d3f78787051b069d2594041ccd2bfba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018486 + Commit-Queue: Jason Macnak + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit b202d5cf30685cb9b51df60ccf8311b1bec48b64 +Author: Jonah Ryan-Davis +Date: Tue Jul 13 13:34:19 2021 -0400 + + Suppress BlitFramebufferTest.MultisampleDepth on Metal + + This test is failing on Intel as well, expand the suppression. + + Bug: chromium:1228433 + Bug: angleproject:5505 + Change-Id: I98e240897b996d5d8d9a5977ef777f928b25c9dd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024591 + Reviewed-by: Cody Northrop + Reviewed-by: Yuly Novikov + Commit-Queue: Jonah Ryan-Davis + +commit 16a9a89250f1c269f03e670c825789b5cf0a308e +Author: Tim Van Patten +Date: Mon Jul 12 15:30:57 2021 -0600 + + Cleanup license data and remove Android.mk files + + In an effort to better satisfy the Android legal/license requirements: + 1.) Cleanup the license data in the generated Android.bp. + 2.) Remove unused Android.mk files. + + Bug: b/191882454 + Change-Id: Ia1937c1e2e822e688cca2a4d3ebc9a294f67ad69 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021851 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 634d156f5ec128ab93b417ef696a4ddf1472248d +Author: Cody Northrop +Date: Thu Jul 8 12:42:21 2021 -0600 + + TracePerfTests: Add ScreenShotFrame option + + Allows the user to specify a frame to capture instead + of defaulting to the first one. + + Usage: --screenshot-frame + + Bug: angleproject:4615 + Change-Id: I000ee17aa9b3019188816aa6203f3266b39155b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016356 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 428d7c4d9bfc5c65675b8e401a26e86d70065d8c +Author: Jonah Ryan-Davis +Date: Mon Jul 12 15:23:45 2021 -0400 + + GL: Widen scope of disable_sync_control_support workaround. + + Crashes and hangs are still happening on Linux/Intel/Mesa 20. This + should already not expose the OML_sync_control extension, so widen + the scope of the workaround to see if there is an issue detecting + Mesa version. + + Bug: chromium:1187475 + Change-Id: I6397f459cd58dba449913ef1c7ce897e8a06cbd1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3022222 + Reviewed-by: Geoff Lang + Commit-Queue: Jonah Ryan-Davis + +commit 783c2f93ba3a357c75beb2b841c3cf8aebe6515a +Author: angle-autoroll +Date: Tue Jul 13 08:27:44 2021 +0000 + + Roll Chromium from 7d1a6713a379 to 624f8c7a15ff (526 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/7d1a6713a379..624f8c7a15ff + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/70f58488ed..9c63d2e3b0 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e065358b5a..d749d1b98b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..3345f09ed6 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/199485df6c..f376b41126 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/3fa819890a..aca9f71bde + * tools/luci-go: git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86..git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3 + * tools/luci-go: git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86..git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3 + * tools/luci-go: git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86..git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/783612b47d..1820a3adb0 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/511dbaffd9..6dad62e2eb + * tools/skia_goldctl/linux: tu1vY2W9BQ6Wx0o3zk5oqBwnr5rfFQGiaztbTpGiRNgC..R0Jd4IlcndZlI5C9Pejy7DqtmVEQT8Sc6Ye09MGyFxYC + * tools/skia_goldctl/mac: DPVSayDIq4ga78XaXXcfTzeTE2v33yM8z1w-eaD-ZuQC..5NoUEq08DuYUlQWnf2yj6rQvBtlMvWiDqfuUuE5nJFIC + * tools/skia_goldctl/win: HMJwTrgrkRmSqDuyQtWly6YxYSHJXsM6zQJFLkojAVwC..M2_R9AXWaN0xmm6nz_nRzKlhpzzOp3P9EUxNaLZ5owMC + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Ie14d842df225cfc1f60d087386147904a8120ae4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023670 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a8e98a2385216771a14e67e03e4ae78e73a6f64a +Author: Peng Huang +Date: Sat Jul 10 15:25:20 2021 -0400 + + Fix gl::Context::unMakeCurrent crashes + + The crash is because Display::makeCurrent() may fail, in that case, + egl_stubs.cpp will not update the current context in global_state and + Thread accordingly. And then Context::refCount could be reach 0, + and be released, however egl_stubs.cpp still thinks the context is + current, and then user-after-free happens. + + This CL fixes the problem by updating current context of Thread in + Display::makeCurrent, and reading the current context of Thread in + egl_stubs.cpp and setting it to global_state. + + Bug: chromium:1171371 + Change-Id: Ifc5fffb0e4902c9c72514839d03e5783d50fe283 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3017210 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Geoff Lang + Commit-Queue: Peng Huang + +commit 36eb2f1448a005b7134484669d46799305037ed7 +Author: Jonah Ryan-Davis +Date: Mon Jul 12 15:21:33 2021 -0400 + + Metal: Populate feature list in the Metal backend. + + The metal-specific features were not being populated when features + were queried (eg. by Chrome's about::gpu page). Only the frontend + features were populated. + + Bug: angleproject:6161 + Change-Id: I65703dfb5cf561d734b3698da66a8838187b0ef4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3022221 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jonah Ryan-Davis + +commit 9274911d43f1479784a499b5e4584920d80a4b2e +Author: Jamie Madill +Date: Mon Jul 12 10:41:16 2021 -0400 + + Vulkan: Update cube map array support check. + + Bug: angleproject:5143 + Change-Id: I0b774096ae762ae088a27ef1b4d52bf446562736 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021283 + Reviewed-by: Nicolas Capens + Commit-Queue: Jamie Madill + +commit d33a22228ee2999ab5e2d2eda4d405c5768555d2 +Author: Kyle Piddington +Date: Mon Apr 26 16:56:15 2021 -0700 + + Upstream Apple's direct-to-Metal backend: compile libANGLE. + + This change is meant to merge the metal backend changes from Apple's + direct-to-Metal backend. Taken from Kyle Piddington's CL: + https://chromium-review.googlesource.com/c/angle/angle/+/2857366/ + The goal of this CL is to merge the metal backend code in a state + that compiles, but not to switch the Metal backend over to using + the direct-to-metal backend yet. + + Bug: angleproject:5505 + Bug: angleproject:6127 + Change-Id: If6783e06e0086b3a1dd25c6f53caca5cfc96cb86 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950067 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Kenneth Russell + Commit-Queue: Jonah Ryan-Davis + +commit b7cfbac4f8c5f77a1e45064ea9decb6bf654544c +Author: angle-autoroll +Date: Mon Jul 12 10:01:00 2021 +0000 + + Roll SwiftShader from 65498c15ca60 to 4716eec90fcb (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/65498c15ca60..4716eec90fcb + + 2021-07-09 thakis@chromium.org Stop building with -fno-operator-names + 2021-07-09 thakis@chromium.org Stop defining _WINDLL + 2021-07-09 thakis@chromium.org Remove workaround for 32-bit gold ICF bug + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I71d6929e0f58b3e48f9a45112e4094e2d53993d7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3020289 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a7d8f8cd51151d4c2453320a321e14d143091e48 +Author: angle-autoroll +Date: Mon Jul 12 07:00:51 2021 +0000 + + Roll Chromium from e09623df2fbf to 7d1a6713a379 (478 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/e09623df2fbf..7d1a6713a379 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9d1af1fefb..70f58488ed + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e1152a2ffc..e065358b5a + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f691b8d997 + * third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/b7bef8c05b..e9e400e0af + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2c35569e9f..3fa819890a + * tools/luci-go: git_revision:6808332cfd84a07aeefa906674273fc762510c8c..git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86 + * tools/luci-go: git_revision:6808332cfd84a07aeefa906674273fc762510c8c..git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86 + * tools/luci-go: git_revision:6808332cfd84a07aeefa906674273fc762510c8c..git_revision:2f836b4882d2fa8c7a44c8ac8881c3a17fad6a86 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/0039c5300b..511dbaffd9 + * tools/skia_goldctl/linux: gyVsF3sYTmaXRfH5ZxgrkitNlEIMmcqWZBcixfrfJ30C..tu1vY2W9BQ6Wx0o3zk5oqBwnr5rfFQGiaztbTpGiRNgC + * tools/skia_goldctl/mac: b-Qs2BgADASerBkyWLb2sUtPJBkhTpZQJNAwASkgrmcC..DPVSayDIq4ga78XaXXcfTzeTE2v33yM8z1w-eaD-ZuQC + * tools/skia_goldctl/win: qrVPZODzWaMfj0T74i2cbqiMzFoqTbUk01Xft2ZTSRMC..HMJwTrgrkRmSqDuyQtWly6YxYSHJXsM6zQJFLkojAVwC + No update to Clang. + + Bug: angleproject:5505 + Tbr: timvp@google.com + Change-Id: I3c077b02c889b5a1d02a8fb15fb4c4682b9a0eae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3020444 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 04cb5e1d7d8917fb2bcd6d806afd6263f8c1e573 +Author: Peter Kasting +Date: Sat Jul 10 11:39:49 2021 -0700 + + Disable -Wimplicit-int-float-conversion for gles1_conform. + + Bug: chromium:989932 + Change-Id: I0038440470a6816bb0c4198af2224b7b85aa42b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018692 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit c6784c9ccdd3b02e6540e2cd2e2828964371f789 +Author: Shahbaz Youssefi +Date: Fri Jul 9 16:48:55 2021 -0400 + + Vulkan: SPIR-V Gen: Fix size of matrix in std140 layout + + Matrices are treated like arrays, so the size of each column should also + be expanded to the size of vec4, similar to how it's done for arrays of + smaller-than-vec4 elements. + + Bug: angleproject:4889 + Change-Id: I1f4d8d0e06922c4bb9261fbbf0f4565dfdec55c8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018641 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit c9a66d2cdc3719029414aa8d4b1241f55c8d51be +Author: angle-autoroll +Date: Fri Jul 9 15:07:49 2021 +0000 + + Roll VK-GL-CTS from 875c981f4c59 to 6b9a0f391fa4 (5 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/875c981f4c59..6b9a0f391fa4 + + 2021-07-08 rgarcia@igalia.com Check required extension core versions + 2021-07-08 rgarcia@igalia.com Test more dynamic vertex input variants + 2021-07-08 rgarcia@igalia.com Improve tests checking sign extension with images + 2021-07-06 alexander.galazin@arm.com Update Vulkan headers + 2021-07-02 michal.jakubek@mobica.com Update bottom AS's addresses during top AS deserialization + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC timvp@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,angle-bots+autoroll-info@google.com + Change-Id: I3a81408cebcfc749790ec444ffd69356749fbf2e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3017197 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e2710f598e9bdcb61c17bc9a63cbd7345306b8cb +Author: Shahbaz Youssefi +Date: Tue Jul 6 17:29:08 2021 -0400 + + Vulkan: SPIR-V Gen: Fix image atomic built-ins + + The `imageAtomic*` built-ins additionally include coordinate and + sample parameters that need to be fed to OpImageTexelPointer before the + atomic operation can be generated. + + This change passes all *image*atomic* GLES31 deqp tests as well as: + + GLSLTest_ES31.ArraysOfArraysOfR32fImages/ES3_1_Vulkan_DirectSPIRVGen + + Bug: angleproject:4889 + Change-Id: I9ed729d09914cb01467d4de504de38c931a9196e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011419 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 8d0eb08c46b037d1a020a3ce5faeff05355f8754 +Author: Shahbaz Youssefi +Date: Mon Jul 5 23:22:24 2021 -0400 + + Vulkan: SPIR-V Gen: Take advantage of OpConstantNull + + As part of fixing GLSLTest*.MissingReturn* tests, refactoring is done + such that complex null values are declared concisely with + OpConstantNull. The tests are fixed by making the SPIR-V generator + implicitly add a `return ;` if the return + statement is missing from GLSL. + + Bug: angleproject:4889 + Change-Id: Iffd80c5e6ce66afcdbf3813bffade6928f292007 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010578 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit a34f668d870104cf2a380144205767b1dc38155e +Author: Tim Van Patten +Date: Fri Jul 9 10:55:48 2021 -0600 + + Skip BlitWithDepthUserToDefault for Linux+Intel+OpenGL + + The test BlitFramebufferANGLETest.BlitWithDepthUserToDefault/ES2_OpenGL + is failing on Linux+Intel. This CL skips the test to unblock the + vulkan-deps roll into Chromium. + + Bug: angleproject:6154 + Change-Id: I098622ca23b79027e6166d3308c3c41948eca285 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018109 + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit aa727b78a032dcaf18b16fefbfd299dac74f6dec +Author: Tim Van Patten +Date: Fri Jul 9 11:26:36 2021 -0600 + + Skip ImageTests generating VUID-vkCmdDraw-None-02699 + + The latest VVL roll is generating VUID-vkCmdDraw-None-02699 on Pixel 4 + devices. This CL will skip the failing tests to unblock the roll while + the VVL error is investigated. + + Bug: angleproject:6155 + Change-Id: Ie9e21f7df13baa8b9252a3273d1985513404bdfe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018114 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + +commit 3a6e22d5562e30203dde9f568e12f361cbd6f0de +Author: Jamie Madill +Date: Fri Jul 9 12:09:53 2021 -0400 + + Trace Tests: Update retracing script. + + Adds an option to skip retracing traces that already exist. That makes + the script much easier to use on folders that already have traces + partially retraced. It also catches exceptions when running the traces + so that ANGLE crashes and ASSERTions don't need you to restart the + retrace. + + Bug: angleproject:5133 + Change-Id: I059ca545145eadc1aa8c373a2fde762bbeb52b55 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018302 + Reviewed-by: Cody Northrop + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 8c07f3c185d9036ffa90c1f8ca71be4770687402 +Author: Jamie Madill +Date: Fri Jul 9 12:35:31 2021 -0400 + + Enable cube map arrays on SwiftShader. + + Bug: angleproject:5142 + Change-Id: I51c58d20da155b90980f27425a99cff2555345fe + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018303 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit e3e7447a45a8024435ccbabdff2be408419984a5 +Author: Shahbaz Youssefi +Date: Thu Jul 8 22:22:19 2021 -0400 + + Vulkan: Fix flipXY for 180 degree prerotation and spec consts + + The multiplier used for flipXY in this configuration was incorrect. + + Bug: angleproject:5348 + Bug: angleproject:5349 + Bug: angleproject:5350 + Change-Id: I0b3771f6a9da6ab2af02ed5ee5fe7b49d0415410 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016768 + Reviewed-by: Ian Elliott + Reviewed-by: Charlie Lao + Commit-Queue: Shahbaz Youssefi + +commit 913eb9168ef7b660328bab079d759d5b9eddfeb1 +Author: Shahbaz Youssefi +Date: Mon Jun 28 12:51:12 2021 -0400 + + Vulkan: (Mostly) re-unify secondary command buffer interfaces + + SecondaryCommandBuffer and CommandBuffer in vk_wrapper had diverged in + API, which this change helps alleviate to some extent. + + Bug: angleproject:6100 + Change-Id: I0d59b24c659afbaf58865b3d85f275c545e3acce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987872 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Ian Elliott + +commit 6d46bf71a630ce759e9bb6c872f2fb0f2dfe5257 +Author: angle-autoroll +Date: Fri Jul 9 10:01:00 2021 +0000 + + Roll SwiftShader from 9534228df856 to 65498c15ca60 (11 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/9534228df856..65498c15ca60 + + 2021-07-09 thakis@chromium.org Remove -Wno-error flags + 2021-07-09 thakis@chromium.org Remove now-unused gni imports + 2021-07-09 thakis@chromium.org Remove x86/x64-specific arch flags + 2021-07-08 thakis@chromium.org Try to unbreak build after https://swiftshader-review.googlesource.com/c/SwiftShader/+/55608 + 2021-07-08 thakis@chromium.org Remove mips-specific arch flags + 2021-07-08 thakis@chromium.org Share ANGLE_DISABLE_TRACE-setting code between win and non-win + 2021-07-08 thakis@chromium.org Stop passing -fomit-frame-pointers in swiftshader build file + 2021-07-08 thakis@chromium.org Remove sysroot and mmacosx-version-min flag for mac/arm builds + 2021-07-08 thakis@chromium.org Remove explicit -msse2 flags (and some other minor things) + 2021-07-08 thakis@chromium.org Remove unnecessary flags from BUILD.gn + 2021-07-08 capn@google.com Delete the legacy OpenGL ES build for Android + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Id94e37160fd9400500d6c946ece5f5adbd50e0a0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016020 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fd6049374b6dbb6b6a21463fc216db826d625bc4 +Author: angle-autoroll +Date: Fri Jul 9 07:00:23 2021 +0000 + + Roll Chromium from 8b6aa9a9bcc2 to e09623df2fbf (441 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/8b6aa9a9bcc2..e09623df2fbf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/27e956c028..9d1af1fefb + * buildtools/linux64: git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062..git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8 + * buildtools/mac: git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062..git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8 + * buildtools/win: git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062..git_revision:24e2f7df92641de0351a96096fb2c490b2436bb8 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7a41b10cc1..e1152a2ffc + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e397699bcd + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/f4241bd0f2..7cf9863263 + * third_party/r8: gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC..Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/293314acab..2c35569e9f + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/95d98b6900..783612b47d + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c3d86f5268..0039c5300b + No update to Clang. + + Bug: angleproject:6127 + Tbr: timvp@google.com + Change-Id: I10606038a0319d675a1ddfc205b9ef3d4ebfbce5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016365 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 17a4b6e7f6bd329953a46f9b2050670b0f27bfd0 +Author: Qin Jiajia +Date: Wed Jul 7 11:00:48 2021 +0800 + + Fix that clear-srgb-color-buffer is not correct + + This change removes the limitation that syncClearState/ + syncClearBufferState is only for STANDARD_GL_DESKTOP so that it works on + chromeos. + + Test: + conformance2/rendering/clear-srgb-color-buffer.html + deqp/functional/gles3/fbocolorbuffer/clear.html + + Bug: chromium:1208297 + Change-Id: I7c5fed3545f623cca3f2245c67fddaf3401388b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010630 + Reviewed-by: Geoff Lang + Commit-Queue: Jiajia Qin + +commit b73eee719c5515eaef883f493f5b270a5ed7e943 +Author: Sergey Ulanov +Date: Wed Jul 7 18:51:35 2021 -0700 + + Reland: [Vulkan] Add DisplayVkNull + + Currently all DisplayVk implementations depend on VK_KHR_swapchain and + VK_KHR_surface extensions. When running Chromium on Fuchsia these + extensions are never used (content is shown on the screen using + ImagePipe API without dependency on swapchain). ANGLE still depended + on these extensions for DisplayVkFuchsia. + This CL adds DisplayVkNull, which allows to run ANGLE without dependency + on swapchain. It's usable only offscreen and cannot present content on + a surface. + + Bug: chromium:1203879 + Change-Id: I5cadcdf46ed1cfb5ebb3cb69dbfef063e9e2b826 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3012368 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 89f2a619299b92b64bc9a5ab731a5edec1e479a5 +Author: Yuly Novikov +Date: Thu Jul 8 21:45:11 2021 +0000 + + Revert "GL: Use glClear for robust init on Android." + + This reverts commit 37c5d36fef783406c30a8ed8b8b4455f35374834. + + Reason for revert: crashes on Pixel 4, see + https://chromium-review.googlesource.com/c/chromium/src/+/3016164 + + Original change's description: + > GL: Use glClear for robust init on Android. + > + > The allowClearForRobustResourceInit was used to work around driver + > bugs on other Windows and Linux and has a lot of CPU overhead. + > + > Re-enable it on Android (except some older Adreno). + > + > Bug: chromium:983167 + > Change-Id: Ibfb4eb4fcdc7310fb6181c57f5c8d7a645ffad9d + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011420 + > Reviewed-by: Peng Huang + > Commit-Queue: Geoff Lang + + Bug: chromium:983167 + Change-Id: I74e9a61484de77fd66e8dde8d50665fdbb470a95 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016763 + Bot-Commit: Rubber Stamper + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 81ed8d4064325832ca0bce48f123cfd8f1906eea +Author: Shahbaz Youssefi +Date: Fri Jul 2 00:54:25 2021 -0400 + + Vulkan: SPIR-V Gen: Support barrier* built-ins + + This change enables the ComputeShaderTest suite and additionally + includes the following fixes: + + - OpArrayLength was given the array type instead of variable. + - Struct arrays inside interface blocks were not decorated with + ArrayStride. + + Bug: angleproject:4889 + Change-Id: Ibae95371bcea10e58c86b8fe1d1e172a18d56a09 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3001908 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit dc2d76cdca9115a3a2407a20c82dd04a439db017 +Author: Jamie Madill +Date: Thu Jul 8 10:04:15 2021 -0400 + + Trace Tests: Clean up mock ICD skip condition. + + Bug: angleproject:6090 + Change-Id: I943eb35da56a24c5a2c9961eb458b9b6e27ea83a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015515 + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 62398e82b4bf1aa4336182d655afb260e1e65480 +Author: Jamie Madill +Date: Thu Jul 8 14:06:04 2021 -0400 + + Capture/Replay: Fix missing rpath on Linux. + + This was causing the test script to fail to find angleutil. + + Bug: angleproject:5133 + Change-Id: I621da4e71c0b61161694d95263b7dad643a728ed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015516 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + +commit afdf378f65a297c17b55e6c9c2f0116c9b266dbb +Author: Shahbaz Youssefi +Date: Thu Jul 1 21:55:58 2021 -0400 + + Vulkan: SPIR-V Gen: Support == and != on complex types + + In GLSL, == and != produce a bool. In SPIR-V, there are only + component-wise comparison operations. For ==, OpAll should be used to + reduce it to a single bool, and for !=, OpAny. For matrices, the + comparison is done column by column with a similar reduction for each + column, and one for the final result. For structs and arrays, the + comparison is similarly done field by field or element by element + respectively. + + Bug: angleproject:4889 + Change-Id: I8157c1931b7d1dedd74a3825967f5e212d346900 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3001905 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit c9dcc5535edadfeb722202e1cc7da6ebb77152a1 +Author: Aditya Kushwah +Date: Tue Jun 22 18:55:39 2021 -0700 + + Move Objectlabel from Texture object to TextureState object. + + Created a subscriber function onLabelUpdated in the storage base + class. The derived storage class will pass the label reference to + the base storage class in the constructor. Future changes will use + this label reference to update the label string with D3D. + + Bug: chromium:1164111 + Change-Id: Ic5ca73bac61427afe392bb5bcc6a6eab8e785941 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981451 + Reviewed-by: Rafael Cintron + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Rafael Cintron + +commit cb87d78c58c1017026540a0e8eea7ec668e20379 +Author: Jamie Madill +Date: Thu Jul 8 08:28:04 2021 -0400 + + Enable -Wshadow with Clang. + + Also fixes a few instances of variable shadowing in the code. + + Bug: angleproject:6148 + Change-Id: Ic51d722a3f953f246f51af6d74abb302f832cf44 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3014875 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 54ade7158ad6143f6633bac82da521a78a907ef2 +Author: Gert Wollny +Date: Tue Jun 29 11:40:37 2021 +0200 + + Enable passing tests out of BlitFramebufferANGLETest.*/* + + Bug: None + Change-Id: I680f22bdc18af84547dcc51491923b0662e2b389 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987993 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 0e1ed36c563b67ce8da43cabb10dcc7269f6d163 +Author: Jamie Madill +Date: Fri Jul 2 12:32:03 2021 -0400 + + Trace Tests: Improve state serialization. + + This encapsulates several colliding states into grouped scopes. + It also improves serialization of several of the resources by + including the resource ID in the serialization key. Also other + minor improvements. + + This change should improve detection of state mis-management. + + Bug: angleproject:5133 + Change-Id: I6ee5c02bb3ba70e91a595db2408076b15e4a9e67 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3003384 + Reviewed-by: Jamie Madill + Reviewed-by: Gert Wollny + Commit-Queue: Jamie Madill + +commit 68d4e3921c1f7ee28e58a4a509cdcb4fdb730728 +Author: Jamie Madill +Date: Fri Jul 2 14:18:54 2021 -0400 + + Trace Tests: Add option for ASAN builds. + + ASAN builds can detect OOB memory accesses. This is very useful for + diagnosing some kinds of flaky OOB crashes. + + Removes a test that was calling BufferSubData with a null data + argument. This behaviour is undefined and we shouldn't be testing it. + + Also includes some minor refactorings and script changes. + + Bug: angleproject:5133 + Change-Id: I5a7d9a5500c50a51f6369e944a5f0a533709f00d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3002510 + Reviewed-by: Jamie Madill + Reviewed-by: Gert Wollny + Commit-Queue: Jamie Madill + +commit f7c3c5b6ffca8be7d25f1fcc59d4c266ffd9688e +Author: angle-autoroll +Date: Thu Jul 8 10:01:00 2021 +0000 + + Roll SwiftShader from 3c89f07b349b to 9534228df856 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/3c89f07b349b..9534228df856 + + 2021-07-07 capn@google.com Eliminate Subzero sandboxing support + 2021-07-07 capn@google.com Assume Microsoft ABI on Windows + 2021-07-07 capn@google.com Eliminate support for the PNaCl ABI + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Ifd9886fd875daf9ddd5d323d2ef6356b37e31f56 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3012943 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e9f0daa16a164da49aa858de6acf603e7f3a9d77 +Author: angle-autoroll +Date: Thu Jul 8 10:01:19 2021 +0000 + + Roll vulkan-deps from cda66075b3f4 to 015a6f8b338d (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/cda66075b3f4..015a6f8b338d + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/ae2a562936..9e707294f1 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/697cc6c387..8b86fbac17 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/394157ab51..f2912cd0f6 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: Iebd455a306a409d2d9e05906aeafc1ffee822183 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3013456 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2c22e0804b63b8c241391eb70eca3265da05afd8 +Author: Gert Wollny +Date: Mon Jun 28 10:43:47 2021 +0200 + + Capture/Replay: Enable SRGBFramebufferTest.Validation/* + + The test passes now. + + Bug: None + Change-Id: I789f8fac225c42414bc8cc342138e1fd70a7f745 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988684 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 5fb5f63b71334c027c6eeb2d0d94726cb5c01c54 +Author: Gert Wollny +Date: Tue Jun 29 09:56:43 2021 +0200 + + Capture: Write captured context for empty frames + + When a frame is empty, still write the captured context for that + frame because the index file will contain the frame file, and the + replay will execute the according swapbuffer so that the replay will + query the context serialization when testing trace correctness. + + With that enable RobustResourceInitTest.SurfaceInitializedAfterSwap/* + for capture/replay. + + Bug: angleproject:5939 + Change-Id: Ib280d55f739cc2bb8d2da0919e98c37a2cd576ba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987991 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 08946bee7deb5de30cd4c937ca4bac2c5a5ce361 +Author: angle-autoroll +Date: Thu Jul 8 07:00:20 2021 +0000 + + Roll Chromium from 7c193479c917 to 8b6aa9a9bcc2 (411 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/7c193479c917..8b6aa9a9bcc2 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/04f716686d..27e956c028 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/fd3f3c1998..2500c1d8f3 + * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/8fa8794677..79a2e924d9 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/d87a06daa9..cb34896ebd + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/57a831388b..7a41b10cc1 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/173d8869cf..3a5a816917 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..096f6b42b5 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/00ade15d94..199485df6c + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/ccc7ba229a..293314acab + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/116022c2e3..c3d86f5268 + Clang version changed llvmorg-13-init-14634-gf814cd74:llvmorg-13-init-14732-g8a7b5ebf + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/ccc7ba229ab7e050d8276a442cf1f9ad25c846cc..293314acabd2beeb271e67c1cdd11664db9c2881/scripts/update.py + + Bug: angleproject:5505 + Tbr: timvp@google.com + Change-Id: I9d067fac37b5b64d150f646166f357ec9b11b429 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3013455 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5718b0c97788604dc69c830d1e877366f38dffcb +Author: angle-autoroll +Date: Wed Jul 7 16:19:19 2021 +0000 + + Roll vulkan-deps from 6dda7d6b86d6 to cda66075b3f4 (43 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/6dda7d6b86d6..cda66075b3f4 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/9cdeefb5e3..1ae2b58f19 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/f95c3b3761..ddf3230c14 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/8cc8b6562b..c26baf4c93 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/37164a5726..0193e158bc + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/8926213dd0..697cc6c387 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/c09be02a36..394157ab51 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,ynovikov@google.com + Change-Id: Ia0c6220963851caa505ad871b08afbe0639880c5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010682 + Bot-Commit: angle-autoroll + Commit-Queue: Yuly Novikov + +commit 4964513a254dac942dd7ba5043e346aefd412480 +Author: Gert Wollny +Date: Mon Jun 28 20:07:46 2021 +0200 + + ANGLETest: When on WebGL compatibility then use index buffers + + WebGL actually requires the use of index buffers, otherwise the + call is invalid, therefore explicitely request index buffers in + the according VertexAttributeOORTest tests. + + In addition, assert on the indices when the glDrawElements call is + captured. + + With that we can enable VertexAttributeOORTest.* + + Bug: angleproject:6125 + Change-Id: Id3855c78d4c5fcab5599f19dd74ce745d059fb1c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2999523 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 2c8391b1a4d2a15584f11279eff7317976ba2ab1 +Author: Gert Wollny +Date: Mon Jun 28 17:53:10 2021 +0200 + + Capture/Replay: Enable passing tests, disable flaky + + Tests now passing: + UnpackAlignmentTest.* + UnpackRowLengthTest.* + VertexAttributeCachingTest.* + ViewportTest.* + + These tests start to fail when run in the new batch layout + triggered by the new passing tests: + + WebGLCompatibilityTest. + DrawElementsBufferOutOfBoundsInIndexBuffer/ + DrawElementsBufferOutOfBoundsInVertexBuffer/ + ES2_Vulkan_SwiftShader + + Bug: None + Change-Id: I4902f2eca864ca8b371d915c89487943af54bc89 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987989 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 68d9f433667febcf031a6b75e4aa169e78567944 +Author: Gert Wollny +Date: Mon Jun 28 15:39:04 2021 +0200 + + Capture/Replay: capture param of glGetQueryiv + + Enable TimerQueriesTest.* with that. + + Add flaky test + + WebGLCompatibilityTest. + DrawElementsBufferOutOfBoundsInVertexBuffer/ + ES2_Vulkan_SwiftShader + + that start to fail because the batches have changed. + + Bug: angleproject:6114 + Bug: angleproject:6136 + Change-Id: I91617255a8e3e8783c8e70c17dedd32be421fd66 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993092 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 4b464dd46527263710663dce2e3a64ba7b12c04b +Author: Gert Wollny +Date: Mon Jun 28 14:50:22 2021 +0200 + + tests: Skip WebGL/EnableProgramBinaryExtension with no formats + + If the extensions is exposed, but the backend doesn't support binary + formats, then the part of the tests loading and storing a binary shader + are skipped. With that also Capture/Replay of the test is fixed. + + Bug: angleproject:6112 + Change-Id: Iaa25860a9be69207e4dbd6213cf77e75fd87a766 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993090 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit b3e920e24febd08334c29602d01c07aedb241242 +Author: Gert Wollny +Date: Mon Jun 28 14:32:13 2021 +0200 + + Capture/Replay: don't capture DrawElements with count zero + + Usually Context::noopDraw would reject calls that doen't draw, + but FrameCapture::maybeCaptureDrawElementsClientData seems to be + called before Context::noopDraw, and since in ComputeTypedIndexRange + we would obtain the illegal range [0,0) (which is actually prohibited + by an ssertion "count > 0"), we have to exit early. + + With that the test can be enabled. + + Bug: angleproject:6111 + Change-Id: I4c242712bd90602f84ad6072b02c3a13a26840f7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993089 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 5d314b59e133f05e755d2f0b1a05be91f60923a9 +Author: Trevor David Black +Date: Tue Jun 1 03:03:22 2021 +0000 + + Fix undefined behavior associated with Runescape Mobile + + Bug: b/184287970 + Change-Id: I5d3baf5e7a8a20c30e1b787b69597110226521d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929352 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 37c5d36fef783406c30a8ed8b8b4455f35374834 +Author: Geoff Lang +Date: Wed Jul 7 13:15:13 2021 -0400 + + GL: Use glClear for robust init on Android. + + The allowClearForRobustResourceInit was used to work around driver + bugs on other Windows and Linux and has a lot of CPU overhead. + + Re-enable it on Android (except some older Adreno). + + Bug: chromium:983167 + Change-Id: Ibfb4eb4fcdc7310fb6181c57f5c8d7a645ffad9d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011420 + Reviewed-by: Peng Huang + Commit-Queue: Geoff Lang + +commit 396518e015f33d23a1b816fad01689434518508b +Author: Yuly Novikov +Date: Wed Jul 7 15:34:43 2021 -0400 + + Skip SamplerMetadataUpdateOnSetProgram on Mac Metal + + Blocking vulkan-deps roll. + + Bug: chromium:1227129 + Change-Id: Iaa7f4d18e80b8353dc0be001e1d2e229196f3186 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010469 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 9f256d10c827a5b615401d15ae4e42b3ba311b4c +Author: SeongHwan Park +Date: Wed Jul 7 02:14:13 2021 +0900 + + D3D11: Fix incorrect bounds checking in Blit11 + + This could lead to blitting depthStencil buffer incorrectly. + + Bug: angleproject:6140 + Change-Id: I2c5786c0375f8e2fefe862da68929340844ce9ae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3009736 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit daa19c0a1f695105c864e5d00c49acff15cccbd9 +Author: Alexis Hetu +Date: Tue Jul 6 16:19:57 2021 -0400 + + Fix alpha setting of WebGL contexts with SwANGLE on MacOS + + The emulation of the "alpha: false" setting was done with an + RGBA format under the hood, which caused some unexpected + results, which included non constant alpha values. Replacing + GL_BGRA8_EXT with GL_BGRX8_ANGLEX solves this issue. + + This was discovered while debugging the following test: + conformance/context/context-no-alpha-fbo-with-alpha.html + but it may fix many other tests (I will update the + expectations file after this fix rolls into Chromium) + + Bug: chromium:1099960 + Change-Id: Ib7b2d352a8e920983d3398de28a8c1dde3b97130 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010579 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Alexis Hétu + +commit 19ea3d11b0691c69595c7460b459e8fdc158635e +Author: angle-autoroll +Date: Wed Jul 7 10:01:00 2021 +0000 + + Roll SwiftShader from 6f1260556b10 to 3c89f07b349b (5 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/6f1260556b10..3c89f07b349b + + 2021-07-06 srisser@google.com Replace curl command with git-hooks submodule + 2021-07-06 capn@google.com Clarify contributing documentation for Windows users + 2021-07-06 capn@google.com Fix -Wundefined-var-template warnings for ARM32 and MIPS32 + 2021-07-06 capn@google.com Define constant static template members as constexpr + 2021-07-06 capn@google.com Make Subzero opcode pointer constant + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I82b48672e7476512422fe79466e7a273e50ca902 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010757 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 55746d130dfa40cdc17e330d5edad0aa5249e200 +Author: angle-autoroll +Date: Wed Jul 7 08:09:02 2021 +0000 + + Roll Chromium from 1d5cc5e25281 to 7c193479c917 (278 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/1d5cc5e25281..7c193479c917 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/92f8e1efea..04f716686d + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/ae0481e55f..d87a06daa9 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7ec8dcae8b..57a831388b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..096f6b42b5 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/081034a4ff..ccc7ba229a + * tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:6808332cfd84a07aeefa906674273fc762510c8c + * tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:6808332cfd84a07aeefa906674273fc762510c8c + * tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:6808332cfd84a07aeefa906674273fc762510c8c + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/02ac209364..95d98b6900 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2904cc4e6d..116022c2e3 + * tools/skia_goldctl/linux: CyXSNty61zPEJfx8gghQIiNd-4sZL4u-Py3wKKiSThcC..gyVsF3sYTmaXRfH5ZxgrkitNlEIMmcqWZBcixfrfJ30C + * tools/skia_goldctl/mac: 4ighzAwClyw2f7qzLc7vNBeEyyur8GGNNt7d1d32IvQC..b-Qs2BgADASerBkyWLb2sUtPJBkhTpZQJNAwASkgrmcC + * tools/skia_goldctl/win: 9c1KMLUktX61ANQhF4IrBQchPmmj73ZqzJi74TiKn_sC..qrVPZODzWaMfj0T74i2cbqiMzFoqTbUk01Xft2ZTSRMC + Clang version changed llvmorg-13-init-14563-gbcaf57ca:llvmorg-13-init-14634-gf814cd74 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/081034a4ff0462c46b9261be81de77562d19936e..ccc7ba229ab7e050d8276a442cf1f9ad25c846cc/scripts/update.py + + Bug: None + Tbr: timvp@google.com + Change-Id: I76274f4412baf19a183d894ba4a6390ebfbd738b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010680 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 51937ab386224053531b478e73ddf97a46d9fa8e +Author: Jamie Madill +Date: Fri Jun 25 09:10:42 2021 -0400 + + Re-land "Add SearchType to OpenSharedLibraryWithExtension." + + This fixes a bug in SystemInfo_vulkan where we were using the + System search path for the Vulkan loader when we prefer using the + custom ANGLE loader. + + Re-land fixes a bug where we would try to load the custom + libVulkan on Android and other platforms where we should be using + the system version. + + Bug: chromium:1219969 + Change-Id: I34b592fb87cbddfd02c837a17942cac54c85d9d1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007265 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit cfaaf2abf862aff5fb11ae704eb01e8147bf6aff +Author: Shahbaz Youssefi +Date: Wed Jun 30 17:23:55 2021 -0400 + + Vulkan: SPIR-V Gen: Fixes to std430 block definition + + Bug: angleproject:4889 + Change-Id: I18feff0916f348c8514cc97ba438d42fc00d0cba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2999023 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit d91af7b8d9f4090099d01b4c48d776f69af4f3d4 +Author: Takuto Ikuta +Date: Tue Jul 6 12:17:33 2021 +0900 + + infra/config: remove unused isolated property + + angle is migrated to RBE-CAS from isolate. + + Bug: chromium:1224266 + Change-Id: Id2ca778edf6b34f5241da0fbfcd86b43941f83b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007600 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 7455507ebcdac1dcb189c6040b555d00fee1cc05 +Author: angle-autoroll +Date: Tue Jul 6 10:01:00 2021 +0000 + + Roll SwiftShader from 69deca60e70d to 6f1260556b10 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/69deca60e70d..6f1260556b10 + + 2021-07-05 capn@google.com Fix -Wundefined-var-template warnings + 2021-07-05 capn@google.com Regres: Increase MaxProcMemory to 6 GiB + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I3b7d0c7922b5b7cf5ec55765185b5e3a1be48b47 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007076 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b6f0faa81e962ff34bf99e72ee261124ed3bd3ec +Author: angle-autoroll +Date: Tue Jul 6 07:01:02 2021 +0000 + + Roll Chromium from 38c67803c283 to 1d5cc5e25281 (194 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/38c67803c283..1d5cc5e25281 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/6f773f2fd2..92f8e1efea + * buildtools/linux64: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062 + * buildtools/mac: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062 + * buildtools/win: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/537028df55..7ec8dcae8b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..de5768d311 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/e1e56a5807..081034a4ff + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8eae38b597..2904cc4e6d + Clang version changed llvmorg-13-init-14086-ge1b8fde1:llvmorg-13-init-14563-gbcaf57ca + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/e1e56a58075d9d3ee55a86be0ed2e87be317968a..081034a4ff0462c46b9261be81de77562d19936e/scripts/update.py + + Bug: None + Tbr: timvp@google.com + Change-Id: I7f8f56e0672cf2bc5973d983ffef0309e9b96d4c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007567 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 3b0fcf6a913fe2610e4776286dbc9472d2a4ed7b +Author: Shahbaz Youssefi +Date: Wed Jun 30 15:14:48 2021 -0400 + + Vulkan: SPIR-V Gen: Support type casts in constructors + + GLSL basic, vector and matrix constructors can convert between types. + This was already done for constants used in constructors. This change + implements the cast for non-constant expressions. + + Bug: angleproject:4889 + Change-Id: I0a8c1a6e97ffced0d1652032a41fb87c70be16ca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2999022 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 0fa2e7f9aa786e59ed23c3106441b078267097cd +Author: angle-autoroll +Date: Tue Jul 6 02:09:20 2021 +0000 + + Roll vulkan-deps from e0136f0880da to 6dda7d6b86d6 (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/e0136f0880da..6dda7d6b86d6 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/e065c482c6..8cc8b6562b + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/16266c3883..c09be02a36 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC timvp@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,ynovikov@google.com + Change-Id: I8e1e0ec1d35000dffa33c8bb59835f8b6911458a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3006477 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f8d5d5ed62cc831419db59b789ea15fc5c0f746e +Author: Yuly Novikov +Date: Mon Jul 5 21:11:23 2021 +0000 + + Revert "Add SearchType to OpenSharedLibraryWithExtension." + + This reverts commit 18e99f4a2b37468b103da4a56c5b0fff25458062. + + Reason for revert: breaks Mac, e.g. + https://ci.chromium.org/ui/p/chromium/builders/ci/mac-arm64-rel-tests/2197/overview + + Original change's description: + > Add SearchType to OpenSharedLibraryWithExtension. + > + > This fixes a bug in SystemInfo_vulkan where we were using the + > System search path for the Vulkan loader when we prefer using the + > custom ANGLE loader. + > + > Bug: chromium:1219969 + > Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Jamie Madill + + Bug: chromium:1219969, chromium:1225040, chromium:1226675 + Change-Id: I7a7e329181b69b0fb546e5245d8842723077126f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3006320 + Bot-Commit: Rubber Stamper + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 0beafe862b4c21299d40b5ffcf98816828254a2a +Author: Yuly Novikov +Date: Mon Jul 5 16:12:10 2021 -0400 + + Ignore VUID-VkSpecializationMapEntry-constantID-00776 + + New check added in + https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/2903 + Blocks VVL rolls. + + Bug: chromium:1226682 + Change-Id: Iaf12187c33a0c3736acae6e772277dbe6aa4c402 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007137 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 0461d8d45814980da90b34fe0580ea96de681df9 +Author: Shahbaz Youssefi +Date: Wed Jun 23 23:20:33 2021 -0400 + + Vulkan: SPIR-V Gen: texture and image built-ins + + GLSL contains a large number of built-in texture* and image* functions, + but these map to only a handful of SPIR-V instructions. The bulk of the + work to map these is to extract the arguments from the built-ins based + on their ordinal position. + + Bug: angleproject:4889 + Change-Id: I760d986bd9171ddde35f9f046c549ca53252df17 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992980 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit d665593b836b64da08dd6955dcc699a6e1a5e2ba +Author: Jamie Madill +Date: Mon Jul 5 15:02:11 2021 -0400 + + Update TextureState::getEnabledLevelCount. + + Instead of simply returning a count of all non-empty texture + desc levels, we iterate the levels from the base level and return + the count of levels that make a consistent mip chain. This will + fix edge cases where Textures are defined sequentially with + inconsistent mip levels, but valid rendering states. + + Bug: angleproject:4780 + Change-Id: Id3ebf2d7ad706070896cb5cdf2a311dba2c88949 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007135 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 955b4620db389ff8a44059853cc28991f2114339 +Author: Shahbaz Youssefi +Date: Thu Jul 1 22:55:59 2021 -0400 + + Fix angle_commit.h dependency when git packs refs + + If there are too many files in .git/refs/heads/, git packs them in + .git/packed-refs. This breaks the build as gen/angle/angle_commit.h + depends on .git/refs/heads/. + + With this change, when gn is run and the dependency to this file is set + up, it's unpacked from .git/packed-refs if it's missing from + .git/refs/heads/. + + One corner case not solved by this change is if a commit is amended with + no changes and git packs the refs (and so the + .git/refs/heads/ file goes away), ninja doesn't rerun gn as + it doesn't believe there to be any changes, yet fails the build as the + dependency is now missing. Running `gn gen` manually fixes the issue. + The issue is automatically fixed when switching branches. + + Bug: angleproject:6131 + Change-Id: Ie2404e874a5cb3374a652b93faa143acb68eaa19 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3001906 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Shahbaz Youssefi + +commit 73792a63a958b088d9ef905818f616dd52298569 +Author: angle-autoroll +Date: Mon Jul 5 09:38:02 2021 +0000 + + Roll Chromium from 3406cb648bea to 38c67803c283 (515 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3406cb648bea..38c67803c283 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/765bbc94ea..6f773f2fd2 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/aa6d8cbd3e..537028df55 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..de5768d311 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/5633839bd5..e1e56a5807 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/43c036ca86..02ac209364 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/1e130552d4..8eae38b597 + * tools/skia_goldctl/linux: yGEFrRQrT0GK0GqIKxNRbT092eKdKLQsfsDEAeHNUz0C..CyXSNty61zPEJfx8gghQIiNd-4sZL4u-Py3wKKiSThcC + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ia86ec18356af1df6d62e1af39eb65ce1a48de888 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3005676 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 236fe4ad1cb0304a3199ac9a030fc5f562f20870 +Author: angle-autoroll +Date: Mon Jul 5 10:01:00 2021 +0000 + + Roll SwiftShader from 314508f788b2 to 69deca60e70d (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/314508f788b2..69deca60e70d + + 2021-07-02 jerumble@gmail.com Fix gcc < 9 builds + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I7f4fa82dd6ddc347472553d6cc26d8d00f931ce6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3005639 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1bffabe8800efb4741c589a1849790bd96f5266e +Author: Peter Kasting +Date: Tue Jun 29 18:13:39 2021 -0700 + + Fix -Wunreachable-code-aggressive. + + Bug: chromium:1066980 + Change-Id: I1fa08a40dbf223d60a10681af33ca8a29b12bf8b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991094 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 16c993c3f313f278693fdf073bf4985d48a3dcb6 +Author: Gert Wollny +Date: Thu Jun 24 12:03:03 2021 +0200 + + Capture/Replay: Only capture initialized renderbuffer content + + Enable the DepthStencilTest.* that was failing before. + + Bug: angleproject:6094 + Change-Id: I8c69de4927c0e70143cd632e97f0abdb740a013f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982550 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit e78b1bf18c42cccf1b6635b7aebab04772716a37 +Author: angle-autoroll +Date: Fri Jul 2 10:19:48 2021 +0000 + + Roll VK-GL-CTS from 5e375439542a to 875c981f4c59 (9 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/5e375439542a..875c981f4c59 + + 2021-07-01 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-07-01 michal.jakubek@mobica.com Handle vkGetDeviceAccelerationStructureCompabilityKHR function. + 2021-07-01 gleese@broadcom.com Drop subgroup size requirement for uniform control + 2021-07-01 siglesias@igalia.com Check support for triangle fan primitive topology on rasterization tests + 2021-07-01 boris.zanin@mobica.com Revert initial layout for depth/stencil attachment in makeRenderPass + 2021-07-01 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-07-01 piotr.byszewski@mobica.com Fix compilation issue in float_controls + 2021-07-01 jari.komppa@siru.fi Add sample decorator to interpolation tests + 2021-06-30 jajones@nvidia.com Add VK_EXT_device_drm_properties tests + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC geofflang@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com,angle-bots+autoroll-info@google.com + Change-Id: I2cc99b941a040358a98a0ad3e2eefef4ad2b55b7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3003322 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5d8f7a02bcf5b7de4d08c9d6f795c7fe4ae8ce0f +Author: angle-autoroll +Date: Fri Jul 2 10:01:00 2021 +0000 + + Roll SwiftShader from 1231b445b902 to 314508f788b2 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/1231b445b902..314508f788b2 + + 2021-07-01 capn@google.com Work around MemorySanitizer false-positive + 2021-07-01 cwallez@google.com Increase max workgroup size for WebGPU + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: Id3965897c2cccf191cb5f9ec8cf3a7da468c1442 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3003065 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 91d048f9ef2176b21732f527077e9a80e779c0c4 +Author: angle-autoroll +Date: Fri Jul 2 07:01:33 2021 +0000 + + Roll Chromium from 69ddea72a93b to 3406cb648bea (368 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/69ddea72a93b..3406cb648bea + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/fde1df76f6..765bbc94ea + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/d46361bc7b..ae0481e55f + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/a0672af08c..aa6d8cbd3e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..36f311b034 + * tools/luci-go: git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3..git_revision:40f945205c8670537d14901c310374774f589254 + * tools/luci-go: git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3..git_revision:40f945205c8670537d14901c310374774f589254 + * tools/luci-go: git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3..git_revision:40f945205c8670537d14901c310374774f589254 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4a2cc422b8..43c036ca86 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/84ad259424..7235d59a2b + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/15547a6864..1e130552d4 + * tools/skia_goldctl/mac: X-Gty06U_OR4SINwPASbahacEQPOSfbsvTEOGR3R5mUC..4ighzAwClyw2f7qzLc7vNBeEyyur8GGNNt7d1d32IvQC + * tools/skia_goldctl/win: hbz09RIw2GLrYnSdrOxyXjIwJxp5hXG2qxyaEPT1D-YC..9c1KMLUktX61ANQhF4IrBQchPmmj73ZqzJi74TiKn_sC + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: Iffe56c66b6bf28c8f0fbc7dfbdecece355214815 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3002942 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 4a3fc4b56681a90b2af95b6b1781f113aaae9459 +Author: angle-autoroll +Date: Thu Jul 1 10:01:00 2021 +0000 + + Roll SwiftShader from 9c5d0d73e2f3 to 1231b445b902 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/9c5d0d73e2f3..1231b445b902 + + 2021-06-30 capn@google.com Disable the legacy OpenGL ES targets for Android + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ida7b22caf5bf122b11e5ff27afda96936dd0b50a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3000014 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9f99de9df88bedfcf9243f6378113a838ed151d8 +Author: angle-autoroll +Date: Thu Jul 1 07:04:02 2021 +0000 + + Roll Chromium from 20cc6c3bb504 to 69ddea72a93b (424 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/20cc6c3bb504..69ddea72a93b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/28cc786905..fde1df76f6 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e6d9961216..a0672af08c + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/a38974fc98..173d8869cf + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/5764d6acf7..329436118b + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..949bca87e0 + * tools/luci-go: git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef..git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3 + * tools/luci-go: git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef..git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3 + * tools/luci-go: git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef..git_revision:e20098f56b10587e3cc0bc9ccac4934a13158de3 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/709694a7a0..4a2cc422b8 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9361ecc481..15547a6864 + No update to Clang. + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ic9ee180399ae53ad526c588d928ce25613c39119 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2999409 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit dba2e1361d2da0604d1c2aa47e129f21d935aba0 +Author: Gert Wollny +Date: Thu May 13 20:33:46 2021 +0200 + + Capture/Replay: Emit InitializeReplay() late + + Only emit InitializeReplay() after all captured frames have been run, + so that the readBufferSize and the maxClientArraySize are really + sufficiently large for all frames. + + To achieve this a layer of indirection is added, that is because + InitializeReplay() has to be called from SetupFrame() which is still + emitted with the first frame, a new function InitReplay() is added. + The call to this function is emitted with the first frame, buts its + body is emitted after the last frame has been captured. + + Bug: angleproject:5965 + Change-Id: Ic38791b4c02989594ec87d1ba3f031fd81471314 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940841 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 824e56f26839c081555eb00d92333efb50402b8f +Author: Matthias Lederhofer +Date: Wed Jun 30 17:12:19 2021 +0100 + + Fix markdown link + + Bug: None + Change-Id: Id6ebeb0c768d494f19d6619d68cdaf5ee18e981d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997303 + Reviewed-by: Cody Northrop + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Cody Northrop + +commit e9757dd6923da4a3b1962ef94364169c40ab18bc +Author: angle-autoroll +Date: Wed Jun 30 12:58:15 2021 +0000 + + Roll VK-GL-CTS from 9fa02d6ab07f to 5e375439542a (4 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/9fa02d6ab07f..5e375439542a + + 2021-06-30 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-06-30 alexander.galazin@arm.com Merge vk-gl-cts/opengl-cts-4.6.1 into vk-gl-cts/master + 2021-06-30 gleese@broadcom.com Add uniform control flow extension to allowed list + 2021-06-29 rgarcia@igalia.com Add VK_EXT_multi_draw tests + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC geofflang@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com,angle-bots+autoroll-info@google.com + Change-Id: I68376eaedfd7c4b246073005241b834273ddc6f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993641 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d6202fce219b1c9dbffa4b1ed0c275d8379ba5e1 +Author: Shahbaz Youssefi +Date: Mon Jun 28 16:53:45 2021 -0400 + + Vulkan: Disable GL_KHR_texture_compression_astc_sliced_3d + + 3D ASTC formats are not supported in Vulkan, sliced or not. The + non-sliced extension is already disabled, and this change disables the + sliced version. + + Bug: angleproject:6038 + Change-Id: I055838345ccb8ad77fe4c05e65dd8b10a8a4d36b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993459 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 790004dbcaeff519464f9e2322a2b42ef5a9f674 +Author: angle-autoroll +Date: Wed Jun 30 10:01:13 2021 +0000 + + Roll SwiftShader from a3726e06b4f1 to 9c5d0d73e2f3 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/a3726e06b4f1..9c5d0d73e2f3 + + 2021-06-29 capn@google.com Fix Android Vulkan build + 2021-06-29 capn@google.com Implement Pragma() for Reactor MemorySanitizer instrumentation + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ia32974617f216ce50bb520efb0643c73fbf0f1bf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2996342 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ceb92d21fbc56c3b5bf6700bd2e5424d05b83c6b +Author: angle-autoroll +Date: Wed Jun 30 07:01:11 2021 +0000 + + Roll Chromium from 1078c63704e4 to 20cc6c3bb504 (842 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/1078c63704e4..20cc6c3bb504 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9211e71997..28cc786905 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/82a4d60220..fd3f3c1998 + * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/79a2e924d9..8fa8794677 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/bf260ac892..d46361bc7b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/dffb539454..e6d9961216 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/dc7751ee11..a38974fc98 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/ba4a77b238..5764d6acf7 + * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/fdaa5e5b9f..b291e88d8e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2bc697bc64 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/2a6dffaf4b..a806594b95 + * third_party/jinja2: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/6906af9d94..7c54c1f227 + * third_party/markupsafe: https://chromium.googlesource.com/chromium/src/third_party/markupsafe/+log/0944e71f4b..1b882ef637 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6274a5523a..5633839bd5 + * tools/luci-go: git_revision:8ed83b4afa51020c8900d121bb57624b35882dec..git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef + * tools/luci-go: git_revision:8ed83b4afa51020c8900d121bb57624b35882dec..git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef + * tools/luci-go: git_revision:8ed83b4afa51020c8900d121bb57624b35882dec..git_revision:ede472114f4e51eaa068cd84cadcf470773f19ef + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/200428d9fe..709694a7a0 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b08c62ecda..9361ecc481 + * tools/skia_goldctl/linux: UdQNElAXaCXfe2mgtDvG-3qVDSF8BDcA3wN2gDEFUjgC..yGEFrRQrT0GK0GqIKxNRbT092eKdKLQsfsDEAeHNUz0C + * tools/skia_goldctl/mac: dukW3C-pL5BBIPLAczaYnnXruUL-y4BAWG28KyiLl-0C..X-Gty06U_OR4SINwPASbahacEQPOSfbsvTEOGR3R5mUC + * tools/skia_goldctl/win: lgJKP9M_eCaX9oj-mmbEPdV27wkXYV_GtjD9My6G5TkC..hbz09RIw2GLrYnSdrOxyXjIwJxp5hXG2qxyaEPT1D-YC + Clang version changed llvmorg-13-init-13925-g0f24ffcd:llvmorg-13-init-14086-ge1b8fde1 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/6274a5523af83afe7762ab96d383f50109376fe7..5633839bd5ef2dd9a19e8fc547447d04f832c698/scripts/update.py + + Bug: None + Tbr: geofflang@google.com + Change-Id: Iff927524aff04aa541ef24872bd69d27093c871a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2995721 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a8959a9b56b491fbf9a818b8f5e6ff447bd6cc47 +Author: Cody Northrop +Date: Tue Jun 29 21:23:21 2021 -0600 + + Tests: Add Toon Blast trace + + Test: angle_project --gtest_filter="*toon_blast*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/192408760 + Bug: angleproject:6121 + Change-Id: Id301c48921a24164d4dccd7d53c1a4e51a0795ce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993753 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit dc59772e2a76ada456f4e9590e6951f030115719 +Author: Shahbaz Youssefi +Date: Tue Jun 22 22:37:26 2021 -0400 + + Vulkan: SPIR-V Gen: Support switch + + With the infrastructure to support this in place, switch is simply + implemented as a conditional with multiple blocks. Each block either + ends with a branch to the merge block or the next block, implementing + fallthrough. + + Bug: angleproject:4889 + Change-Id: I5831531d918ac06648cced7707d1d48ffeb6b1b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2983559 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit a8c9cecf8765a3cc394c4382c6e6a5b701ed1c9a +Author: Shahbaz Youssefi +Date: Sat Jun 12 00:12:34 2021 -0400 + + Vulkan: SPIR-V Gen: Support break and continue + + This is simply done by issuing a branch to the merge or continue blocks + respectively. + + Bug: angleproject:4889 + Change-Id: I3e96a3b0f1a0533aa4eac519ab64a87600c0983b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957810 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit e45682b4373ecf081dfdf49c4f7d0e43f024615b +Author: Cody Northrop +Date: Tue Jun 29 17:55:36 2021 -0600 + + Tests: Add Township trace + + Test: angle_perftests --gtest_filter="*township*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/192402770 + Bug: angleproject:6120 + Change-Id: I3ef0bb6e896a081c17a07f18037805be5494af2e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993882 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 1c39335af1c34fa30edeb9130556b1e602c0fc17 +Author: Cody Northrop +Date: Tue Jun 29 16:40:43 2021 -0600 + + Tests: Add Farm Heroes Saga trace + + Test: angle_perftests --gtest_filter="*farm_heroes_saga*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/192395241 + Bug: angleproject:6119 + Change-Id: Iebec311e37e5f84ad85e5a77aa36b3cffb55d2e4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2995383 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit a09052ea8a844dc0e1f4fd2702d5f1ff7f4193dd +Author: Tim Van Patten +Date: Tue Jun 29 16:18:15 2021 -0600 + + generate_android_bp.py: Don't include buildtools/third_party/libc++/ + + The buildtools/ directory is not included in the AOSP version of ANGLE + and is unnecessary, so update generate_android_bp.py to filter out that + include directory. + + Bug: b/187342779 + Change-Id: I3a2d0506ac53f7d369597c797fffb211ffde41f1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2995382 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit ec8cdd5d4d9af4d63a03707e1ecfdd63109dcb97 +Author: Jamie Madill +Date: Mon Jun 28 15:59:38 2021 -0400 + + infra: Add perf tests to Android/Linux/Mac. + + These use the same config as the previous perf bots. + + Bug: angleproject:6090 + Change-Id: I0ed4bc32cdc5b27f1fbd00fded1fa8d2ccbe45d9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993458 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 69c2d8202f2bee4683bfd8c01dd29a78e31efb24 +Author: Jamie Madill +Date: Tue Jun 29 11:58:41 2021 -0400 + + Perf Tests: Register trace tests programatically. + + Using testing::RegisterTests lets us filter out the disabled configs. + This helps sharding the tests because some shards were getting a very + uneven distribution of real tests vs skipped tests. A couple shards + were running 20 minutes, while most were about 6 minutes. More work + might be needed to even that out. + + Bug: angleproject:6090 + Change-Id: Ibdf35677cfea86dfc374a2b18bb57cd9f289ddee + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2994726 + Reviewed-by: Tim Van Patten + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit dcfde515b28eda2a8bd5debcfac216395eda5517 +Author: Lubosz Sarnecki +Date: Thu Jun 24 15:59:04 2021 +0200 + + gl.xml: Add GL_FRAMEBUFFER_SRGB_EXT to EnableCap group. + + Add GL_EXT_sRGB_write_control in registry_xml.py. + This makes FrameCapture write a GL_FRAMEBUFFER_SRGB_EXT + enum instead of it's hex value in glEnable/Disable calls. + + Bug: angleproject:5857 + Change-Id: Ifa01118c2958275c7623c6bfe29f015fa8875fce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988356 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Lubosz Sarnecki + +commit d2816b4e6912c16e5119c91676e5dfc988dbfbe4 +Author: Peter Kasting +Date: Fri Jun 25 14:52:02 2021 -0700 + + Fix a -Wdeprecated-copy warning. + + Bug: chromium:1221591 + Change-Id: Idbbb4aa16e58a9f4e7e25590667cf15706233de4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989632 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Geoff Lang + +commit 04f775a8185b67c46f8e4cb14f621067d6de0c3f +Author: angle-autoroll +Date: Tue Jun 29 11:51:16 2021 +0000 + + Roll VK-GL-CTS from 7329723d8103 to 9fa02d6ab07f (21 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7329723d8103..9fa02d6ab07f + + 2021-06-29 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-06-29 alexander.galazin@arm.com Update extension dependencies + 2021-06-29 siglesias@igalia.com Improve existing cull distance tests + 2021-06-29 siglesias@igalia.com Add tests checking Input and Resolve attachments can be the same attachment in a subpass + 2021-06-29 rgarcia@igalia.com Fix 64-bit atomics mandatory feature checks + 2021-06-29 jason.ekstrand@intel.com Fix tessellation SPIR-V tests use of Restrict + 2021-06-29 gleese@broadcom.com Fix buffer copy extents in blit tests + 2021-06-29 alexander.galazin@arm.com Allow the use of the standard types + 2021-06-29 slawomir.cygan@intel.com Allocate memory for reference buffer + 2021-06-29 gleese@broadcom.com Fix YCbCr linear filtering support check + 2021-06-29 gleese@broadcom.com Don't run _concurrent sync tests on 1 queue devices + 2021-06-29 gleese@broadcom.com Fix stage flags for INPUT_ATTACHMENT descriptors + 2021-06-29 gleese@broadcom.com Remove spurious feature dependencies in 1.2 tests + 2021-06-29 gleese@broadcom.com Fix feature dependency in vulkan1.2 test + 2021-06-29 gleese@broadcom.com Fix image aspect handling in fragdepth tests + 2021-06-29 gleese@broadcom.com Fix output components limit in fragment input tests + 2021-06-28 alexander.galazin@arm.com Update Vulkan headers + 2021-06-21 alexander.galazin@arm.com Update Vulkan headers + 2021-06-18 rgarcia@igalia.com Check shader image atomic mandatory features + 2021-06-18 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-06-18 siglesias@igalia.com Add timestamp query test variants with availability bit + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC geofflang@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com,angle-bots+autoroll-info@google.com + Change-Id: If61a0d74e30a5292d8ac95751fa7a9095b2b30f6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2994440 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 72c8d46dfcfee9b222111271c1d2098f904d3aec +Author: Jamie Madill +Date: Tue Jun 29 08:05:11 2021 -0400 + + infra: Build traces on perf bots. + + This is necessary to ensure they run the trace tests in perf. + + Bug: angleproject:6090 + Change-Id: Ib96418c4371f700dbbd54933241b1b88912f9938 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991903 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit afe4a8249edd9a1ffca738c54658eb81569d4f75 +Author: angle-autoroll +Date: Tue Jun 29 10:01:13 2021 +0000 + + Roll SwiftShader from e4fea30bb438 to a3726e06b4f1 (7 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/e4fea30bb438..a3726e06b4f1 + + 2021-06-29 cwallez@google.com Increase limits to support base WebGPU. + 2021-06-28 bclayton@google.com SpirvShader: Consider OpEntryPoint interface IDs + 2021-06-28 capn@google.com Determine MSan instrumentation for Reactor at run-time + 2021-06-28 stha09@googlemail.com GCC: readd visibility attributes for EGL/GLESv2 + 2021-06-28 capn@google.com Fix -warn-stack-size command line option for LLVM 12 + 2021-06-28 sugoi@google.com Only perform LOD computation when it is necessary + 2021-06-28 swiftshader.regress@gmail.com Regres: Update test lists @ e4fea30b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I992e37df1bbd0be9fef2a998bf2584adf2459480 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2990981 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c14e6b5f0e8dcfa63b82683dbc65cb8f2c67a4f4 +Author: Gert Wollny +Date: Mon Jun 28 15:22:44 2021 +0200 + + Capture/Replay: enable some more passing tests + + Test: + PixmapTest.Clearing/* + StateChangeRenderTest.GenerateMipmap/ + SyncQueriesTest.Basic/ES2_Vulkan + SyncQueriesTest.Validation/ES2_Vulkan + TextureLimitsTest.MaxCombinedTextures/ + + Bug: None + Change-Id: I3d3f36551b42ae24332d441c49f8a66f4df7d9a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993091 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 130d198750fff783e0e639c04126617f923ffb47 +Author: Gert Wollny +Date: Mon Jun 28 14:24:15 2021 +0200 + + Capture/Replay: enable passing WebGLCompatibilityTest tests + + Bug: None + Change-Id: I9b894e49766c8b840fc58470bd42f466bc138796 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988688 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 65a9412851c68cfc92448bcccb4f9a209fb94fc9 +Author: Gert Wollny +Date: Fri May 21 15:18:39 2021 +0200 + + Capture/Replay: enable IndexBufferOffsetTest.* tests + + With robustResourceInit in place we can enable the the tests. + + Bug: angleproject:5974 + Change-Id: I53911ebf9aed1ef537ebf4c539eca7b284a17e98 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912676 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit e793a0272e69c807e42f87bfd12202a7749d0276 +Author: Gert Wollny +Date: Mon Jun 28 11:17:01 2021 +0200 + + Capture/Replay: Capture TexSubImage2DRobustAngle, enable tests + + The tests RobustClientMemoryTest.* now all pass. + + Bug: angleproject:6108 + Change-Id: I980c1fd9e065cb5c4ed575770f86e09faeb19d4c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988685 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 433e3921f6a03d3dd57f1f551943571980266cab +Author: Gert Wollny +Date: Mon Jun 28 10:39:41 2021 +0200 + + Capture/Replay: enable passing UniformTest.Sampler/* + + Bug: None + Change-Id: Ib32e27ea7c767e1251f18f6e8e7fb80289110e9f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988683 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit e70c21f4cb16456759cef6df098e53ae06029970 +Author: Cody Northrop +Date: Mon Jun 28 09:27:36 2021 -0600 + + Tests: Add Beach Buggy Racing trace + + Test: angle_perftests --gtest_filter="*beach_buggy_racing*" + Tbr: timvp@google.com, jmadill@google.com + Bug: b/192237726 + Bug: angleproject:6113 + Change-Id: I16fa42bd1af632daf90f857c453e70218225b4f0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992574 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 0b5f268aa5d3c1f4647baa8128341d017b4b1455 +Author: Tim Van Patten +Date: Mon Jun 28 13:03:46 2021 -0600 + + Fixes and updates to roll_aosp.sh + + 1.) Remove unused zlib contrib/ directories + - There are missing licenses in third_party/zlib/contrib/, so remove the + unused directories from the AOSP checkin. + + 2.) `git add` all third_party/ changes + - All of the unused third_party/ changes have been manually merged, so + we can now automatically add any changes to third_party/. + + Bug: b/191882454 + Bug: b/187342779 + Change-Id: If209ff3bb34ad53c08f431a06a2f84d153181e45 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992578 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit a25f0f2c741a79328099d320afcef47c162e0187 +Author: Jamie Madill +Date: Mon Jun 28 14:56:26 2021 -0400 + + Suppress flaky TSAN TLS false positive. + + Introduces "ANGLE_NO_SANITIZE_THREAD" which works the same way as + "ANGLE_NO_SANITIZE_MEMORY". + + Bug: chromium:1223970 + Change-Id: I9409771f7c4748bbc186da3fc38031d3b1d1e4d8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987875 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 8513e538aa2e46f95c885dcd248f299e10e39872 +Author: Gert Wollny +Date: Mon Jun 28 10:38:03 2021 +0200 + + Capture/Replay: enable passing DrawBuffersTest.* + + Bug: None + Change-Id: Ib857194d701372322ebf458bf00ac9aa681c079a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988682 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 3fa51867140264820c1b961e82b59835629ca988 +Author: Cody Northrop +Date: Mon Jun 28 07:44:45 2021 -0600 + + Capture/Replay: Disable GL_OES_depth32 during capture + + Depth32 is not a renderable format on native mobile GLES drivers. + Disabling GL_OES_depth32 during capture provides a more portable trace. + Apps fall back to Depth24, i.e.: + + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32, 760, 360); + + Becomes: + + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, 760, 360); + + Test: Beach Buggy Racing MEC + Bug: b/192237726 + Bug: angleproject:6113 + Change-Id: Id188ca0186c67d2584f8ad7070cdc8c9baaf2aaa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992573 + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 5a2bd6fdcaea65f4f84740e8a42e081e6170e874 +Author: Peng Huang +Date: Mon May 3 14:43:35 2021 +0000 + + Disable shader cache for PowerVR Rogue GPUs. + + We disable shader cache for Validating decoder in chrome, so port this + workaround into ANGLE to see if it can fix crbug.com/1203652. + + Bug: chromium:1203652,chromium:480992 + Change-Id: I08611c148217abc9c32d11fefe8a7d15873f3b30 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2867269 + Commit-Queue: Peng Huang + Reviewed-by: Geoff Lang + +commit e2881e250c26059a510c970bb467ccb352e28f62 +Author: Mohan Maiya +Date: Sun Jun 27 10:45:41 2021 -0700 + + Vulkan: Handle incompatible pipeline layouts + + It is necessary that a pipeline layout be compatible with active + textures. Make sure to recreate the pipeline layout otherwise. + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Test: ImageTest.SourceAHBTarget2DExternalCycleThroughRgbAndYuvTargets*Vulkan + Change-Id: Iab371a9035b6cd143585e5000e2e68c7302ef447 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992056 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 5f869b74ebc678f84bafddcb8751ba46f1a7d509 +Author: Jamie Madill +Date: Mon Jun 28 18:02:42 2021 +0000 + + Revert "Vulkan: Load custom Vk Loader." + + This reverts commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4. + + Reason for revert: Seems to be flaking on linux-clang-rel: + https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/22602/overview + + Original change's description: + > Vulkan: Load custom Vk Loader. + > + > Uses a GN copy rule to duplicate the loader. Also updates volk to + > load using the new custom loader. Once both are in place we can + > go back and remove the copy. + > + > Bug: chromium:1219969 + > Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 + > Commit-Queue: Jamie Madill + > Reviewed-by: Geoff Lang + > Reviewed-by: Jonah Ryan-Davis + + Bug: chromium:1219969 + Change-Id: Ib29014e728c1ce63c5e5bf7136ce19de7692964d + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987874 + Bot-Commit: Rubber Stamper + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 3d8d1b779db5099e1ed4c2317f3afdd8663065fc +Author: Gert Wollny +Date: Mon Jun 28 10:35:42 2021 +0200 + + Capture/Replay: enable passing OcclusionQueriesTest.* + + Bug: None + Change-Id: I445ff7a25a7e91663a61e1cd4d32861497140055 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988681 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit aec47ff6ea62c6480fad98774b168e4f9971fc95 +Author: Cody Northrop +Date: Tue Jun 22 15:47:43 2021 -0600 + + Capture/Replay: Update CopyImageSubData params + + The parameters to glCopyImageSubData are flexible and + can take a TextureID or a RenderbufferID as a GLuint. + + Our replay needs to remap those values, so we'll convert the GLuint + based on the target. This leads to a change like the following. + + Before: + + glCopyImageSubData(138, 0x0DE1, 0, 0, 0, 0, + 642, 0x0DE1, 1, 0, 0, 0, + 256, 256, 1); + + After: + + glCopyImageSubData(gTextureMap[138], 0x0DE1, 0, 0, 0, 0, + gTextureMap[642], 0x0DE1, 1, 0, 0, 0, + 256, 256, 1); + + Test: PUBG Mobile MEC + Bug: angleproject:6087 + Bug: angleproject:6104 + Change-Id: I5cd422e41ffbb4f08c8909e520bdce63e3008c5a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981464 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 5fb6baefe890b9c6a101f995e8c190377d746ab9 +Author: Gert Wollny +Date: Mon Jun 28 10:33:28 2021 +0200 + + Capture/Replay: enable passing IndexedPointsTest* tests + + Bug: None + Change-Id: Ie4f5c50985c5c3e403e0be8e806e461572b04e42 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988680 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit dbc7cb5a7dd63dac891b7c2ca06a91bbf7dd086d +Author: Gert Wollny +Date: Fri Jun 11 14:38:42 2021 +0200 + + Capture/Replay: capture GetMaterialfv parameters + + Enable according tests + + Bug: angleproject:6052 + Change-Id: I67bc4d74c997afecf9ed16c7af217de273557587 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954265 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 153240b2233db40a58bdb475d5338c55c03b908e +Author: Shahbaz Youssefi +Date: Fri Jun 11 16:36:32 2021 -0400 + + Vulkan: SPIR-V Gen: Support loops + + Loops are similar to if-else in that they generate a number of blocks + where the first block specifies divergence (OpLoopMerge) and the merge + block. Differently from if-else, there is a block where the condition + is evaluated and a block which `continue;` leads to (this last block is + the only one allowed to back-jump to the beginning of the loop). + + Bug: angleproject:4889 + Change-Id: Ic59f4bf3e05fbf93cb5af85acd3bc4b0da8412af + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957809 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 8cf6d8cc573d4afb0912ebfbbd18f5eba5e3c501 +Author: Gert Wollny +Date: Mon Jun 28 10:00:54 2021 +0200 + + Capture/Replay: Handle Gen/Delete Semaphores and fix map emit + + Add capturing of the handles used in GenSemaphores and + DeleteSemaphore, fix the emission of the gSemaphoreMap. and + enable capture/replay tests. + + Change-Id: Iabb88bd1d6c22c08271d0883607efb72de9d3d0c + Bug: angleproject:6107 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988679 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4 +Author: Jamie Madill +Date: Wed Jun 23 08:25:58 2021 -0400 + + Vulkan: Load custom Vk Loader. + + Uses a GN copy rule to duplicate the loader. Also updates volk to + load using the new custom loader. Once both are in place we can + go back and remove the copy. + + Bug: chromium:1219969 + Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Jonah Ryan-Davis + +commit 18e99f4a2b37468b103da4a56c5b0fff25458062 +Author: Jamie Madill +Date: Fri Jun 25 09:10:42 2021 -0400 + + Add SearchType to OpenSharedLibraryWithExtension. + + This fixes a bug in SystemInfo_vulkan where we were using the + System search path for the Vulkan loader when we prefer using the + custom ANGLE loader. + + Bug: chromium:1219969 + Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 971ba359fb2464f918bca95ab37c46bb47e82433 +Author: Shahbaz Youssefi +Date: Wed Jun 23 16:45:33 2021 -0400 + + Add angle::BitMask for creating bit masks + + angle::BitMask(n) implements the common pattern of angle::Bit(n)-1. + + Bug: angleproject:6048 + Change-Id: Icd56ef1504804add59d0804a7249b3035c96f9c2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2984099 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 27e9883b3b608e01edc2b92384aecac24d5d9f0f +Author: Gert Wollny +Date: Tue Jun 22 12:20:08 2021 +0200 + + Capture/Replay: Limit number of compile processes based on load + + When replaying, for each batch a limited number of compile processes + is launched, but no all-over limit is set, so that on computers with + a low processor count and/or limited working memory the machine may + become un-responsive. Therefore, tell ninja to not spawn new processes + when the load is larger than the number of available processors. + + Bug: angleproject:6078 + Change-Id: I9982a139ef2346d0cf25fbd510c7aff038e48071 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976658 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Gert Wollny + +commit da523f6b461771dac44e981c6e6fb4eca9cc36e7 +Author: Jamie Madill +Date: Fri Jun 25 17:25:24 2021 -0400 + + Trace Tests: Use hermetic depot_tools. + + We no longer need to use the depot_tools in the system path. + + Bug: angleproject:6102 + Change-Id: I6772ceeb4c61e686d15b2638fb4348e93179e321 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989671 + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit b13cb48d63d18602a347c6f09d729557742f92bc +Author: angle-autoroll +Date: Mon Jun 28 10:01:38 2021 +0000 + + Roll SwiftShader from 8f075627d16b to e4fea30bb438 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/8f075627d16b..e4fea30bb438 + + 2021-06-25 pkasting@chromium.org Fix -Wloop-analysis warnings in llvm-subzero. + 2021-06-25 capn@google.com Enable the -Wdeprecated-copy compiler warning + 2021-06-25 capn@google.com Prevent changing Reference<> address + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: Ifdf575c73d1c13cac92efe7d302ec792faa120b3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992690 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f8d2c429ef742b70da409c8c3d44fedde5014cd0 +Author: Gert Wollny +Date: Thu Jun 24 11:22:59 2021 +0200 + + Capture/Replay: Add test to capture an uninitialized buffer + + Handle the serialization in case the buffer is not yet set up. + + Bug: angleproject:6093 + Change-Id: I06a8e15d181c4ec514a334f952ce29a4026970a6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982549 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit e72bdb4fb17b50e6be506bb1919e1078b24bd952 +Author: angle-autoroll +Date: Mon Jun 28 07:01:45 2021 +0000 + + Roll Chromium from 94cea2515faf to 1078c63704e4 (468 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/94cea2515faf..1078c63704e4 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/710d444030..9211e71997 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/46bcd59544..82a4d60220 + * buildtools/linux64: git_revision:d924640c25f9d90386716116a53957f24d709042..git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943 + * buildtools/mac: git_revision:d924640c25f9d90386716116a53957f24d709042..git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943 + * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/8fa8794677..79a2e924d9 + * buildtools/win: git_revision:d924640c25f9d90386716116a53957f24d709042..git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/30b38aa65f..dffb539454 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/33e2b30b78..ba4a77b238 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..11a2ddfb3e + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6f0df68e8b..2a6dffaf4b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/8415fd8519..6274a5523a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ff3ba154c1..200428d9fe + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f8baec67b7..b08c62ecda + Clang version changed llvmorg-13-init-13689-g93938943:llvmorg-13-init-13925-g0f24ffcd + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/8415fd8519d19a25ef5d5df132d9a3722409c36d..6274a5523af83afe7762ab96d383f50109376fe7/scripts/update.py + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ie93aab2b5ebb5000fd7d44a2e09b76b8b0685756 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992012 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e833128d11ad0a4d249663272e3a9b8bfb3ad619 +Author: Gert Wollny +Date: Thu Jun 24 11:20:53 2021 +0200 + + Capture/Replay: Enable BufferDataTests.* + + With the robustResourceInit in place these tests now pass. + + Bug: angleproject:5973 + Change-Id: I7b5fd991b86ede8cf85cc298d61a60d86ef07bc9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982548 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 52c47e9408d77a079f0fec856843715010dad110 +Author: Gert Wollny +Date: Thu Jun 24 11:02:59 2021 +0200 + + Capture/Replay: SimpleOperationTest.* pass now + + With robustResourceInit and the hadling of the serialization + of uninitialized attachments these tests pass now. + + Bug: None + Change-Id: I86af69f7e928d32570fde90b106e34d21617f0f8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982547 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 8767ec1549a713ef4578e415e65b28ec3e76f9b5 +Author: Cody Northrop +Date: Sun Jun 27 19:28:28 2021 -0600 + + Tests: Add Bricks Breaker Quest trace + + Test: angle_perftests --gtest_filter="*bricks_breaker_quest*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/192195614 + Bug: angleproject:6106 + Change-Id: I5301256c34d2552f1107e5718acb2faa09576fc2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991680 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit a84ec2cff725c5ccc1387b156b1a3f2eeb2cd7eb +Author: Cody Northrop +Date: Fri Jun 25 16:06:13 2021 -0600 + + Tests: Add Mario Kart Tour trace + + Test: angle_perftests --gtest_filter="*mario_kart_tour*" + Tbr: jmadill@google.com, timvp@google.com + Bug: b/192102888 + Bug: angleproject:6103 + Change-Id: I7b96d96144391873c6fa5a7b4b795030d9daeefd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988362 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit c3c934a3e8324f979b7aaf053785b8f88e80de7f +Author: Shahbaz Youssefi +Date: Fri Jun 25 01:40:54 2021 -0400 + + Translator: Better group ES100 texture builtins + + The ES100 texture built-ins are now (similarly to ES300 ones) grouped + based on whether they include a Bias, or Lod. + + Bug: angleproject:4889 + Change-Id: I495af48644c68286b1b0cc2a5580566fdd22cfc9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987859 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 8b24e2a4f7be6f7d7c7615dabd8909e19d93a3ce +Author: Jamie Madill +Date: Fri Jun 25 13:51:19 2021 -0400 + + infra: Add perf mb configs. + + This will set up the GN args for the perf builders. + + Bug: angleproject:6090 + Change-Id: I3c00a5b78932ae41199953a46c525b435b566d12 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989669 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 5fc3fa9af62fe7147a282062beb0e20246422dce +Author: Peter Kasting +Date: Fri Jun 25 10:18:06 2021 -0700 + + Fix -Wimplicit-int-float-conversions. + + Bug: chromium:989932 + Change-Id: Id7a49a4bd925508ea0362d1e6b9d853bf860ddb9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987733 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 8b4f6e6db03582bea044bd4101fcda0c0d5d5630 +Author: Jamie Madill +Date: Wed Jun 23 09:06:59 2021 -0400 + + infra: Add perf configs. + + Adds Win/Linux/Android configs. + + Bug: angleproject:6090 + Change-Id: Ie80a12a16997aab08e9dbba0cc0a9b14414fc8f2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988793 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit da17d56184fad5ab7c143f3ef3d579370281321b +Author: Jamie Madill +Date: Wed Jun 23 13:50:15 2021 -0400 + + Trace Tests: Use xvfb consistently on Linux. + + Previously there were two places where we missed the xvfb script. + This was causing the replay to fail. + + Bug: angleproject:6085 + Change-Id: I833916fa0cdacc163ec2bdd08831249807f319c5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979353 + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit bd797f75ffa55dc6c55b30efe47d92b0066429b5 +Author: Jamie Madill +Date: Mon Jun 14 11:27:27 2021 -0400 + + D3D11: Fix OOB write in Blit11. + + This could happen for specific values of the 'dest' target. + + Bug: chromium:1219082 + Change-Id: Ic19a5dc4a95531f9513403ad9c97a4b4c5dc5a6f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961070 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit cc280ff33e21b7095fdcb80f6af76986d5041c65 +Author: Yuly Novikov +Date: Fri Jun 25 11:07:45 2021 -0400 + + Remove obsolete Android bots from CQ + + android-angle-chromium-try + android-angle-try replace + android_angle_deqp_rel_ng + android_angle_rel_ng + + Bug: angleproject:4483 + Change-Id: I96d51ee610ca7b025e1976d0076409c4990836c3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988792 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit ed087384f3a2792a3222c60338314293d86d25de +Author: angle-autoroll +Date: Fri Jun 25 07:00:02 2021 +0000 + + Roll Chromium from fa6954ae7bb5 to 94cea2515faf (470 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/fa6954ae7bb5..94cea2515faf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9dc129790d..710d444030 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4c41e64344..30b38aa65f + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f2dc2be575..33e2b30b78 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..11a2ddfb3e + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/cf60c0af45..6f0df68e8b + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/098695c686..8415fd8519 + * tools/luci-go: git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9..git_revision:8ed83b4afa51020c8900d121bb57624b35882dec + * tools/luci-go: git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9..git_revision:8ed83b4afa51020c8900d121bb57624b35882dec + * tools/luci-go: git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9..git_revision:8ed83b4afa51020c8900d121bb57624b35882dec + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/2d9fa8c6ba..ff3ba154c1 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ab23859d5c..f8baec67b7 + * tools/skia_goldctl/linux: SB2wGV5iqWiiLLc3ZLU2sn1CcUnFefPLkUKPCgQ9swkC..UdQNElAXaCXfe2mgtDvG-3qVDSF8BDcA3wN2gDEFUjgC + * tools/skia_goldctl/mac: 3aDI3FukPbExUrKO2_xiMcP1_2EEcWDoL1X9tb3N1ucC..dukW3C-pL5BBIPLAczaYnnXruUL-y4BAWG28KyiLl-0C + * tools/skia_goldctl/win: C5XvIOVnzzsQevJZRD08B1C_6mhdpxvY9vPiHf4iZJ0C..lgJKP9M_eCaX9oj-mmbEPdV27wkXYV_GtjD9My6G5TkC + Clang version changed llvmorg-13-init-13305-g1605fce6:llvmorg-13-init-13689-g93938943 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/098695c6868be4091d217747bf206da0e293bd4b..8415fd8519d19a25ef5d5df132d9a3722409c36d/scripts/update.py + + Bug: None + Tbr: jonahr@google.com + Change-Id: If69fb22f8aff7d455c927480f9adf86410c47c83 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987609 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c75a1d6f4b2b43efa3be602e0c5ed058e37e822e +Author: Shahbaz Youssefi +Date: Fri Jun 11 23:27:33 2021 -0400 + + Vulkan: SPIR-V Gen: Support the ternary operator + + Bug: angleproject:4889 + Change-Id: I3ac193e08fc74cc784b688cc049fb786ab68657d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957808 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 7d023dac27408bb0234b6ef032dbb2d497ac7bc7 +Author: Shahbaz Youssefi +Date: Thu Jun 10 00:13:41 2021 -0400 + + Vulkan: SPIR-V Gen: Basic support for fragment shaders + + Fragment shader built-ins are implemented in this change and direct + SPIR-V generation for fragment shaders is enabled. + + Bug: angleproject:4889 + Change-Id: I6f92a5585f242122a81c97a9b1aa2763009161a0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951625 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit c24494415a1af65660de4c2bf8de7774b60b060f +Author: Gert Wollny +Date: Thu Jun 24 13:06:08 2021 +0200 + + Capture/Replay: Make sure EGLImageKHR is a parsable number + + For some reason on win-trace-rel the pointer value us written + as a hex number but without the leading "0x", so the number gets + interpreted as octal, and compilation fails. + + Fixes: cb4f8a79a4def3dd8fd9f941d6674939e1731860 + Capture: Add a specialization for TGLeglImageOES + + Bug: angleproject:6036 + Change-Id: I949ace542a0ad257b47fbe539893a56c1c32b0b3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982551 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 71439efca7ff212dbf4b140db82887611e54a1f2 +Author: angle-autoroll +Date: Thu Jun 24 10:01:37 2021 +0000 + + Roll SwiftShader from f0a9f88dd5cb to 8f075627d16b (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/f0a9f88dd5cb..8f075627d16b + + 2021-06-23 capn@google.com Make UpdateAfterBind descriptor limits equal to base limits + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ic15e191946b07f52f62922e2b950aca96749519e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2984877 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 256e3f4dbe4d3539cdab162e60357800303f74cb +Author: angle-autoroll +Date: Thu Jun 24 10:01:48 2021 +0000 + + Roll vulkan-deps from 5fbfa253f282 to e0136f0880da (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/5fbfa253f282..e0136f0880da + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/b38100f6bc..ae2a562936 + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/07f259e68a..f95c3b3761 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/0c21e50922..e065c482c6 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/dbd221b2bc..8926213dd0 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/71916f15bc..16266c3883 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ib778902b4f6f0801f452381e8eda18afeda78641 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2984457 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit e5276ca37ccb036363b1c02ac8b76a49c6cb2b1f +Author: Gert Wollny +Date: Sat Jun 12 17:25:12 2021 +0200 + + Capture: Add capturing of framebuffer and renderbuffer IDs + + Also enable the FramebufferObjectTest/* tests + + Bug: angleproject:6058 + Change-Id: Ia82c935e614ccc4ad2c69ccc08544ce2d302fbca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957954 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit c8677c730c2975f4a5cb212ba79f252ba8ae07d8 +Author: Gert Wollny +Date: Sat Jun 12 17:23:42 2021 +0200 + + Capture: Add a specialization for const GLuint * + + Bug: angleproject:6058 + Change-Id: I31cad1dd23d313aae625874e140c406747e0f4c4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957953 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 78437770a1e90f5f24068d33e8c39dc3f0bb7422 +Author: Gert Wollny +Date: Sat Jun 12 15:48:26 2021 +0200 + + Capture: read four values for GL_TEXTURE_CROP_RECT_OES + + This texture parameter describes a cropping region x,y, width, height. + + Bug: angleproject:6057 + Change-Id: I2c71f6aec1e536f42e06c19cb025889094b57a35 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956510 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 79d3a5a12e1dbc8f7f530cbee6723d67525c798f +Author: Gert Wollny +Date: Sat Jun 12 15:27:42 2021 +0200 + + Capture/Replay: Capture (Get)TexParameterxv + + Bug: angleproject:6056 + Change-Id: I094d80e5d6a981c01f572e0fba9b578269200bde + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957952 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit f20d2b95783dde7aaebb7f740713544d164280a3 +Author: Gert Wollny +Date: Sat Jun 12 15:19:42 2021 +0200 + + Capture/Replay: Capture params of (Get)TexEnv calls + + Bug: angleproject:6055 + Change-Id: I44a7bd4b339d7834f9306a0de7baa400c640dda4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957951 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 11489df092c031ef4334fe0d087d0d5e3c163855 +Author: Gert Wollny +Date: Sat Jun 12 15:07:25 2021 +0200 + + Capture/Replay: implement CapturePointParameterfv_params + + Enable tests that are now passing + + Bug: angleproject:6064 + Change-Id: I22d7a41b3e11556c929e4701e0c6c339e3aa7b6b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957950 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 228af3ecb04324c5a81ecb8c6736cda3fc5bfdba +Author: Gert Wollny +Date: Sat Jun 12 14:56:45 2021 +0200 + + Capture/Replay: Enable MatrixModeTest.InitialState + + It simply passes + + Bug: None + Change-Id: Id2388c99993aeb48d36ed96817b501c3d7bb1f36 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957949 + Reviewed-by: Jamie Madill + +commit 55fe508b461f520ce86fcfd613fada7c06f3976f +Author: angle-autoroll +Date: Thu Jun 24 07:00:21 2021 +0000 + + Roll Chromium from bbc918ca9021 to fa6954ae7bb5 (441 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/bbc918ca9021..fa6954ae7bb5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e589a8307b..9dc129790d + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9c143ace75..46bcd59544 + * buildtools/linux64: git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192..git_revision:d924640c25f9d90386716116a53957f24d709042 + * buildtools/mac: git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192..git_revision:d924640c25f9d90386716116a53957f24d709042 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/f4328ad7c0..bf260ac892 + * buildtools/win: git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192..git_revision:d924640c25f9d90386716116a53957f24d709042 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/eaddc52d2a..4c41e64344 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/1478deef28..dc7751ee11 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/d4f10da1b8..f2dc2be575 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a2a4ced865 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/2dd15401da..cf60c0af45 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/8dd9dda226..098695c686 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/573b694c3e..2d9fa8c6ba + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/cf75b77f7f..ab23859d5c + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ib4e4b674bd3442d1a33ed67393665d8c1a34ac3b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2984453 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fb42cbabb34d93e4e7ee5fe2d967eecc10695511 +Author: Gert Wollny +Date: Fri Jun 11 14:30:49 2021 +0200 + + Capture/Replay: Capture glGetLightfv parameter + + Enable the according capture/replay tests. + + Bug: angleproject:6051 + Change-Id: I916e6d10756bc24bb3e0644c2b290f55b2066fd0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954264 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit b82da851291379eea4a454fa2fc4494120aadd3e +Author: Gert Wollny +Date: Fri Jun 11 13:57:47 2021 +0200 + + Capture/Replay: Add capture for Fogfv parameters + + Enable FogTest* tests for capture/replay. + + Bug: angleproject:6050 + Change-Id: Ic183ef550f57a790a3d113f20f67946487006166 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954263 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit d42df5c7b782c095ed9482dbd7e00ea753a10a1e +Author: Gert Wollny +Date: Tue Jun 8 11:42:50 2021 +0200 + + Capture: Only capture texels of initialized textures + + If a texture is not yet initialized then it may contain random + pixels, and since it doesn't make sense to capture this random + data, skip its serialization and only mark the data as not + initialized in the capture. + + This also avoid the texture syncronization that would lead to a crash + for incomplete cube maps. + + Bug: angleproject:6034 + Change-Id: I0cb30a03a29aecd605f3c61b6df4cd897e1f9093 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944954 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit e543ad9417469a40eb24c5d9d87fb7f9685825e9 +Author: Gert Wollny +Date: Tue Jun 8 10:42:01 2021 +0200 + + Capture/Relplay: Enable most of ImageTest.* + + Keep *External/* disabled, because capturing of external + textures is not supported. + + Bug: angleproject:6034 + Bug: angleproject:6035 + Bug: angleproject:6036 + Bug: angleproject:6041 + Change-Id: Id5eb9dc7c651240d0ba094be964d8bd141d08ff9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944957 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 22716d31f9f3254d1ba33208dca2700dee8c96bb +Author: Gert Wollny +Date: Fri Jun 11 13:51:41 2021 +0200 + + Capture: Add specialization for ParamType::TGLubyte + + Also enable "CurrentColorTest.Set/*" tests. + + Bug: angleproject:6049 + Change-Id: I65e62b6c0805687ad6744a12217e0c08bc97ca1a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954262 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 90f9ddd92d84b78bdc80838addc6cedabb06c711 +Author: Gert Wollny +Date: Thu Jun 10 14:35:13 2021 +0200 + + Capture: Add support for capturing (Get)ClipPlanef equation + + In addition, correctly handle "const GLfloat *" when replaying, + and enable the according capture/replay tests + + Bug: angleproject:6047 + Change-Id: I5dd7510d1b621d4c941490c9d0261559a96dd681 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951133 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 4375d6c732efb5aa16cb454608b0018d66cc2ca9 +Author: Shahbaz Youssefi +Date: Fri Jun 18 23:51:23 2021 -0400 + + Vulkan: Support multiview queries + + When using queries with multiview, Vulkan specifies that N queries are + actually produced (N being the number of views) which must be summed by + the application. + + Bug: angleproject:6048 + Change-Id: I5ea615536f1a357806b7ea8093280b9122f1d66a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971562 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 977a28f3a2c2e45fcb49731344f549615ee7023c +Author: Shahbaz Youssefi +Date: Tue Jun 22 12:30:07 2021 -0400 + + No-op glGenerateMipmap on zero-sized textures + + The spec says: + + > Otherwise, ... if any dimension is zero, all mipmap levels are left + > unchanged. This is not an error. + + Bug: chromium:1220250 + Change-Id: I45e007c1f8e9b80f405d3d096eb896a7246f7c8e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979853 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit 5b3142683b42436d8b26ed2222fab43513dbbbba +Author: Shahbaz Youssefi +Date: Tue Jun 15 17:37:45 2021 -0400 + + Vulkan: Support OVR_multiview and OVR_multiview2 + + Multiview is supported in Vulkan simply by specifying the number of + views in the render pass, and creating the appropriate image views. A + number of changes to the way image views and render targets are stored + are made to support those that don't cover the entire range of layers. + + One particular detail that is not implemented in this change is the use + of queries in combination with multiview. Vulkan specifies that N + queries are actually produced (N being the number of views) which must + be summed by the application, but this is not currently done. + + Bug: angleproject:6048 + Change-Id: I1d4a9894c232d3a93d7a97c9fa0eedc334e57469 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967625 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 9bad7a19ee21494ddc9d06f08425185d47a923c7 +Author: Shahbaz Youssefi +Date: Tue Jun 15 23:39:52 2021 -0400 + + Vulkan: Unpack RenderPassDesc + + Upcoming multiview support needs to add 2~3 more bits to this struct, + but this struct is already fully packed. As the combination with + emulated multisampled render to texture is not planned, some bits used + for MSRTT can be aliased with multiview. However, that makes the + packing of this struct even more unwieldy. + + Since only tens of render passes are expected per frame, increasing the + size of the render pass cache key should not have a dramatic effect. + + Bug: angleproject:6048 + Change-Id: I5c9a0d155f23a37e2787b38525d3ce721b54ec1e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2966218 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + +commit b6009f64aa5b0857cbfc15a7b08eaa5ad563ad7f +Author: Gert Wollny +Date: Thu Jun 17 14:53:03 2021 +0200 + + Capture/Replay: Add feature for robust resource init + + Query the feature when creating the display and the context, and + pass the flag to the created context and also to durfaces. + + With that we create surfaces that will be marked "MayNeedInit" and + are initialized if the resource is cleared or invalidated. + + Bug: angleproject:6041 + Change-Id: I292f2e3f931736a18db93695441407e17d2265b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976656 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 13ac4dfba8bd091d67dc8666b2838aa2d047f0ff +Author: Gert Wollny +Date: Wed Jun 23 12:19:40 2021 +0200 + + gl_tests:DrawArraysThenDrawElements: glFinish instead of swap + + Later in the test we read from the backbuffer to confirm that the + triangles were drawn correctly, but without EGL_BUFFER_PRESERVED + the content of the backbuffer is undefined. + + Since glReadBuffer is not supported in GLES2 don't swap, instead to + a glFinish to force the drawing in each iteration. + + Bug: angleproject:6088 + Change-Id: Iac485cc6ec92626a74a4428bcdb32cc535a2691f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982112 + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 15623ada6083f92c280333df810a8fc98d9bdede +Author: Jamie Madill +Date: Wed Jun 23 08:46:21 2021 -0400 + + Test Runner: Omit results files when too many failures. + + This will cause the test shards to be re-tried due to an invalid + result. The goal is to retry flaky configs where whole shards fail. + + Bug: angleproject:6075 + Change-Id: I76d0f08da29ffc4bcad7f282f7be38618c384bce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982500 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 41f86f357b9b21b999fb27d893f4367671bdeea1 +Author: Gert Wollny +Date: Tue Jun 22 11:02:08 2021 +0200 + + Capture: Serialize only the content of initialized attachments + + If a resource is marked MayNeedInit, then we don't serialize it but + mark the data as not initialized. + + Bug: angleproject:6041 + Change-Id: If3d3431a58848f7835692fe10b30fab68c901d8a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976657 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit ac795859c9346a1a73fd91ca98050f2897d8cc44 +Author: Jamie Madill +Date: Wed Jun 23 11:17:36 2021 -0400 + + Disable warning on invalid feature name. + + Because we don't have a centralized feature list, we would fire + this warning every time we use a feature override. Disable it + until we have a centralized list we can check. + + Bug: angleproject:6085 + Change-Id: Ia5c3f2ae8337141e963e67e1d71243a3d0a01c9a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982505 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit 1b104dd945aeffef110b5dd0aefad89444813017 +Author: Jamie Madill +Date: Wed May 26 14:29:01 2021 -0400 + + Finish switch to angle_version.h. + + Bug: b/168736059 + Change-Id: I1232c8284f37aadb374840aca8f40e4569382c7b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920490 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit b59db4486f0931e5bde5d029c9158ebf4713bfa6 +Author: angle-autoroll +Date: Wed Jun 23 10:01:48 2021 +0000 + + Roll vulkan-deps from 85e758a22b7a to 5fbfa253f282 (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/85e758a22b7a..5fbfa253f282 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f8eafd4d83..0c21e50922 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f12691a7fc..71916f15bc + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I18951d42d671c30a68ad1107780829fdd733f8c1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981695 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 95603a5e736cf6cecd29c5525ac1d696768c9852 +Author: angle-autoroll +Date: Wed Jun 23 07:00:58 2021 +0000 + + Roll Chromium from 685eab2b2e45 to bbc918ca9021 (471 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/685eab2b2e45..bbc918ca9021 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/38ed2cb517..e589a8307b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2150962daf..eaddc52d2a + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a2a4ced865 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b714c17658..2dd15401da + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2d4e9fd266..8dd9dda226 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/c98879461d..573b694c3e + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e2f6c49548..cf75b77f7f + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: If4160acefe414e040b73abf01f9661fb5852d1c3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981691 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b6adeb2f32edfaf1b6271ef28f65fb9405ad4922 +Author: Shahbaz Youssefi +Date: Mon Jun 21 11:11:30 2021 -0400 + + Vulkan: Use pipeline statistics query to emulate primitives generated + + The VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT query produces + the same result as the GL primitives generated query. One caveat is + that in combination with rasterizer discard this query may not work. + This is emulated by disabling rasterizer discard when this query is + active and applying an empty scissor instead. + + When VK_EXT_primitives_generated_query is released and supported, a + similar issue with rasterizer discard persists so this change will + facilitate using that extension as well. + + Bug: angleproject:5430 + Change-Id: Id45b6f058c5cb6837e04aa64b1efde28c104e4cf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976181 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 09bd55786427eccd7f9cf5620e092907d412b947 +Author: Shahbaz Youssefi +Date: Mon Jun 21 23:47:15 2021 -0400 + + Test runner: Capture test stderr + + With this change, stderr is also output when a test fails, including + logs such as those originating from UNIMPLEMENTED(). + + Bug: angleproject:6077 + Change-Id: Ice1e1f9aff26acfb630aef99865503643f0a9658 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976184 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 72d2bd0c87da6e2aea5b43f9172f3359e0d2ae68 +Author: Shahbaz Youssefi +Date: Mon Jun 21 09:59:21 2021 -0400 + + Allow capturing process stdout and stderr interleaved + + The test utils are enhanced to allow redirecting stderr to stdout. This + is in preparation for a change that makes the test runner capture stderr + together with stdout. Currently, on failure logs originating from + UNIMPLEMENTED() and other such macros are not captured. + + Bug: angleproject:6077 + Change-Id: I7a3c6c4732a59dac3ff0cc20a7835d5ed6f0f22e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976183 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit dbfc119a4ff940f6c3494506641579c3224038e2 +Author: Alexey Knyazev +Date: Tue Jun 22 08:56:33 2021 +0400 + + Fix overflow in gl::ValidateES2TexImageParametersBase + + Bug: chromium:1222516 + Change-Id: I532dc6e1c80c442af2c35d1facc262c48222def3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2978251 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Alexey Knyazev + +commit 64ce506d055af3befd68701a75fb8d7b3688f546 +Author: Shahbaz Youssefi +Date: Fri Jun 18 14:48:29 2021 -0400 + + Vulkan: SPIR-V Gen: Support most non-texture/image built-ins + + Most GLSL built-ins map directly to some SPIR-V operation. texture*() + and image*() built-ins are not implemented as well as a handful of other + built-ins that require special-handling. + + Bug: angleproject:4889 + Change-Id: I72abfb4692c3d66a3c8be43ce44ba6808efe6255 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971646 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit b80f1377eb898a66e5fc9dc2060fffda7fd56c1d +Author: Jamie Madill +Date: Tue Jun 22 14:42:00 2021 -0400 + + Trace Tests: Print serialization diff on failure. + + Instead of only printing this with the "verbose" flag, print the + diff of the serialization as an "info" message. This will make the + diff show up on the bots. + + Bug: angleproject:5715 + Change-Id: Ic9684b43cdf2d6ae248b5beab4317b0e939567c1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979854 + Commit-Queue: Jamie Madill + Reviewed-by: Cody Northrop + +commit 4194d400970672fa38c1d0c04c066ad1532e979f +Author: Jamie Madill +Date: Mon Jun 21 13:08:56 2021 -0400 + + Test Runner: Add maximum failure count. + + This will make the test runner early exit after a certain count + of failures. This will prevent the bots from running tens of + thousands of tests when the whole test run is corrupt. + + Bug: angleproject:6075 + Change-Id: I8f5c19ea694a5ad3a5d5df1429d2ba4b1fe868e3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976179 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jonah Ryan-Davis + +commit 3f99e4d3c71b955b76701510bd09594fe213c3a8 +Author: Jamie Madill +Date: Fri Jun 18 15:21:45 2021 -0400 + + Better stack traces on Linux. + + Checks the memory information for the process to compute a more + accurate address for each function. + + Bug: angleproject:6070 + Change-Id: I57f927f3641298af7921522da0ece683f8fd8faf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971838 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Commit-Queue: Jamie Madill + +commit 3d37a374da70b1d67dce7c87993f356f85a09885 +Author: Shahbaz Youssefi +Date: Tue Jun 22 00:37:22 2021 -0400 + + Add regression test for GL bug w.r.t cached programs + + Bug: angleproject:6073 + Change-Id: I22ffabea8a686e2ae615e99607cb557324c23c78 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976185 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit db3b4ee672beb176535f5b5881987a73773cb6bb +Author: Jamie Madill +Date: Tue Jun 22 10:23:05 2021 -0400 + + Add simple UBSAN ignorelist. + + Bug: angleproject:5795 + Change-Id: Ic2aa1124ac88a5d0fe87df3d524a10fe62b00732 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2977174 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 96dd515aa4244332c8426bac586b286a114f8357 +Author: Xiaoxuan Liu +Date: Wed Mar 31 14:21:16 2021 +0800 + + Update glColorspace(EGL_KHR_gl_colorspace) enable logic + + 1. Enable glColorspace if VK_EXT_swapchain_colorspace is + supported, remove dependency on VK_KHR_image_format_list. + 2. Enable VK_KHR_image_format_list support on Mali GPU. + 3. Fix PbufferTest.ClearAndBindTexImageSrgbSkipDecode + test tolerance issue. + + Bug: angleproject:2514 + Bug: angleproject:5281 + Change-Id: I2ed54a14afc7c3aee5a5980bd300ab052ebab3d1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2793852 + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 9adf692c37e9a678808fa3e2997063e3fa53da01 +Author: angle-autoroll +Date: Tue Jun 22 10:01:36 2021 +0000 + + Roll vulkan-deps from 6cbd7212ad42 to 85e758a22b7a (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/6cbd7212ad42..85e758a22b7a + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/2e1b5fb39e..9cdeefb5e3 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/5dd2f76918..f8eafd4d83 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/a680671d95..dbd221b2bc + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/16db450293..f12691a7fc + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: I0a66f3693fdbf795b1ca8a346671f91978f1f055 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2978754 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit eb69362b1f96a681a0645e13b71fd4124ecd4195 +Author: angle-autoroll +Date: Tue Jun 22 10:01:57 2021 +0000 + + Roll SwiftShader from 4a304244dd86 to f0a9f88dd5cb (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/4a304244dd86..f0a9f88dd5cb + + 2021-06-21 swiftshader.regress@gmail.com Regres: Update test lists @ 4a304244 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jonahr@google.com + Change-Id: Ie8c19418ee314ddcf4bb87651598024d37c91c31 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2978753 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 4c7e159c5e4b94730dbfc924faed9c12fd8527fe +Author: angle-autoroll +Date: Tue Jun 22 07:13:13 2021 +0000 + + Roll Chromium from 637b4cdf0c64 to 685eab2b2e45 (109 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/637b4cdf0c64..685eab2b2e45 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e4e59f8437..38ed2cb517 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/466954eda3..9c143ace75 + * buildtools/linux64: git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0..git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192 + * buildtools/mac: git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0..git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192 + * buildtools/win: git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0..git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/05f219c87f..2150962daf + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ada99637c0 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/70dcfe26e2..b714c17658 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b4326be4ac..e2f6c49548 + No update to Clang. + + Bug: None + Tbr: jonahr@google.com + Change-Id: I7377d246831b15d8572fd086be00a39811639586 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2978451 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 7df7fc7ff82ba7c862d06f0beb046f5f807e7435 +Author: Shahbaz Youssefi +Date: Sun Jun 20 00:05:28 2021 -0400 + + Tests: Add support for --renderdoc + + This change adds support for a new flag namely `--renderdoc` to end2end + and deqp tests. With this flag, each test automatically starts and ends + a frame capture in renderdoc, working around an issue where renderdoc + refuses to capture a test frame that doesn't start or end with a swap. + + With end2end tests, the capture starts before test set up, and ends + after test tear down. With deqp tests, it starts before init, ends and + restarts after each test iteration and ends after deinit. + + Bug: angleproject:6072 + Change-Id: Ib41b816aff121bf922d9147044cc363c33a62181 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971835 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 9412ac9c7c849d4e23acad9595e4129a2f892433 +Author: angle-autoroll +Date: Mon Jun 21 23:43:17 2021 +0000 + + Roll Chromium from 414f62ab7363 to 637b4cdf0c64 (416 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/414f62ab7363..637b4cdf0c64 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jonahr@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/d6115b16f5..e4e59f8437 + * buildtools/linux64: git_revision:7d803996740ccd587c54062750cbe04dfbc3c423..git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0 + * buildtools/mac: git_revision:7d803996740ccd587c54062750cbe04dfbc3c423..git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0 + * buildtools/win: git_revision:7d803996740ccd587c54062750cbe04dfbc3c423..git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/eda471dbf5..05f219c87f + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..986f4bb45c + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/473499ba26..70dcfe26e2 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/0e774456f5..2d4e9fd266 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f76c710738..c98879461d + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/02d48e7535..b4326be4ac + Clang version changed llvmorg-13-init-12881-g4017d033:llvmorg-13-init-13305-g1605fce6 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/0e774456f51950adbd2309ebc176eb5e0d74ed41..2d4e9fd266c166d0a29769bbbce71fdd5cdc6fb5/scripts/update.py + + Bug: None + Tbr: jonahr@google.com,ynovikov@google.com + Change-Id: Ide59a0c30d9ba58a55a0e2abea2c0051aa7c79f3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2977578 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 44a5c913bd1e8126272c871970370aecf0a7fa62 +Author: John Plate +Date: Thu Jun 17 09:29:29 2021 +0100 + + CL: Make CL front end and back end thread-safe + + Add locking to all mutable variables of the CL objects in the + front end and pass-through back end to make them thread-safe. + This fixes a crash in a multi-threaded CTS test. + + Bug: angleproject:6015 + Change-Id: I1d6471c851217639411c434c82acd32d14035291 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967468 + Commit-Queue: John Plate + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 7753c8378754eba8a0119cca8563c00692b00797 +Author: Tim Van Patten +Date: Fri Jun 18 14:25:40 2021 -0600 + + Fix roll_aosp.sh 'gn gen' failure + + The 'gn gen' step in roll_aosp.sh is failing due to trying to access + third_party/rapidjson/BUILD.gn, which isn't in AOSP. The rapidJSON + library is required to build the ANGLE libraries with frame capture + enabled, which isn't necessary for AOSP builds. + + This CL adds the GN arg 'angle_has_rapidjson' which roll_aosp.sh will + set to 'false' to prevent 'gn gen' from attempting to access + third_party/rapidjson/BUILD.gn. + + Bug: b/187342779 + Change-Id: I6fcc0e94b6325be7523e35f966b8e4dbc708e3b0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2973338 + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 1891af05fd2dbad3f4bb516ef0b6b1dba9f24be7 +Author: John Plate +Date: Wed Jun 16 10:20:32 2021 +0100 + + CL: Refactor TRY macro and fix more conformance bugs + + Bug: angleproject:6015 + Change-Id: Id54be19822fec2ac5584ffe1d1cf5bb8f00c9094 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967467 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit b239790f3de0a0c83a4e80a6c80c8e68ae73686c +Author: angle-autoroll +Date: Mon Jun 21 10:01:36 2021 +0000 + + Roll vulkan-deps from 65149e19efd9 to 6cbd7212ad42 (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/65149e19efd9..6cbd7212ad42 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/bcef913745..5dd2f76918 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9d10a96f2d..37164a5726 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie09f3b90e8b9c3221c0d227c558d10d80d2090df + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2975479 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit f0d8cd4094ef38c3ace0c82173a1c606c0868216 +Author: angle-autoroll +Date: Sat Jun 19 00:31:17 2021 +0000 + + Roll Chromium from 4c77f83b612d to 414f62ab7363 (319 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/4c77f83b612d..414f62ab7363 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/11f1e3d2cd..d6115b16f5 + * buildtools/linux64: git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34..git_revision:7d803996740ccd587c54062750cbe04dfbc3c423 + * buildtools/mac: git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34..git_revision:7d803996740ccd587c54062750cbe04dfbc3c423 + * buildtools/win: git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34..git_revision:7d803996740ccd587c54062750cbe04dfbc3c423 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/965c815e32..eda471dbf5 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/8f8817d6f6..1478deef28 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/9f92effa4e..d4f10da1b8 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..893c99ae71 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/59140d436a..473499ba26 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/27f119ee39..f76c710738 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/a61c45df6b..02d48e7535 + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I7f3b1fce35f2053d9008517a7459829acd862daa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2973636 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 3706f9ebb517b6bccd609a338bfec6b36abad804 +Author: Ian Elliott +Date: Thu Jun 10 18:45:15 2021 -0600 + + Vulkan: Fix AGI hierarchy crash for noop'd clears/queries + + The ASSERT in ContextVk::endEventLogForClearOrQuery() was wrong. + Certain glClear*, glBeginQuery*, and glEndQuery* commands may exit + early (e.g. noop). When this happens, mQueryEventType will be set to + NotInQueryCmd. In such cases, return without trying to finish a + non-started debug-util-marker hierarchy. + + Bug: b/191489405 + Change-Id: If40ed00fdc6e420ae6a11c2aeaced19e5aa45a5f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2973342 + Reviewed-by: Trevor David Black + Reviewed-by: Mark Lobodzinski + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit c51c59c775abd902c3de0e515d906e559fed0f76 +Author: Shahbaz Youssefi +Date: Tue Jun 15 13:43:50 2021 -0400 + + Test for missing index dirty bit bug + + Bug fixed in + https://chromium-review.googlesource.com/c/angle/angle/+/2961690 + triggers only in the following situation: + + - Context 1: draw indexed -> clears index dirty bit + - Context 1: change state in such a way that closing the render pass is + deferred to dirty bit handling (for example, change FBO) + - Context 1: issue a non-indexed draw call. This closes the render pass + and starts a new one -> bug was that the index dirty bit + was not set + - Context 2: flush the command buffer, which submits the previous render + pass of context 1 (which contained vkCmdBindIndexBuffer). + The primary command buffer is now reset. + - Context 1: issue an indexed draw call. Since the index dirty bit was + not set, this was missing the vkCmdBindIndexBuffer call. + + This change implements a regression test based on the above scenario. + + Bug: chromium:1183068 + Bug: chromium:1190493 + Change-Id: I729bd48cd6df2621ca763f6231023a52ac08b0fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2963836 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Charlie Lao + Commit-Queue: Shahbaz Youssefi + +commit ce22ad1042cb98ba055fe6dc6f4eba65eba51da5 +Author: Jamie Madill +Date: Fri Jun 18 15:23:11 2021 -0400 + + infra: Add symbol_level=1 in Release. + + This should enable better crash file/line information. + + Bug: angleproject:6070 + Change-Id: I54280461160f2ac6404dbd4b88abdcfd31f3814e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971956 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Jamie Madill + +commit 851fbedbfd210099026520c1800c719cb8f6afca +Author: Cody Northrop +Date: Thu Jun 10 21:27:01 2021 -0600 + + Vulkan: Switch viewport and scissor to dynamic state + + Heavily based on http://crrev/c/1316888 + + Some apps are creating a large number of viewport combinations and + are running out of graphics memory. This CL drops their graphics + pipeline use from tens of thousands to tens. + + Performance testing shows little impact to application traces. + + Bug: b/190026813 + Bug: angleproject:3143 + Change-Id: Ib7415be1128f8fedae4a7ca72e067b2815201223 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954925 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 4e1fd371cfe0001acdf4557ac432390a5c1c28b9 +Author: Doug Horn +Date: Thu Jun 17 10:26:26 2021 -0700 + + Ensure GLES1 state is cleared on context switch. + + GLES1 support in multi-context D3D mode is broken prior to this + change as state in the GLES1Renderer is not being properly + dirtied on context switch. The immediate result is a crash on + draw commands due to a null program. + + Introduce a new dirty bit to specify that the program is dirty + and should be re-initialized. + + Test: GLES1 applications work with the D3D11 backend in multi-context + mode. + + Bug: b/191158936 + Change-Id: Ib53c1471514ff2cf36ef9fc0d6bfb99a8bb7cf66 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2969789 + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Doug Horn + +commit d5e86bb097ffd05b395699b50ce9f2cab26ffa16 +Author: angle-autoroll +Date: Fri Jun 18 10:01:57 2021 +0000 + + Roll SwiftShader from 84bc198202e5 to 4a304244dd86 (4 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/84bc198202e5..4a304244dd86 + + 2021-06-18 mikko.tiusanen@siru.fi Skip wait on already signalled timeline semaphore + 2021-06-18 jari.komppa@siru.fi Remove assert to enable indexless access chains + 2021-06-17 sugoi@google.com Increase maximum framebuffer size + 2021-06-17 pkasting@chromium.org Fix -Wdeprecated-copy. + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Id4f71546f99ca3633a7f9a6c02354a25d6cb148d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2970673 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 910fce1a6b7ae34fca1d300ed96d4a7da891b866 +Author: angle-autoroll +Date: Fri Jun 18 10:01:36 2021 +0000 + + Roll vulkan-deps from 7304bd043edc to 65149e19efd9 (8 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/7304bd043edc..65149e19efd9 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/71612a7e5d..b38100f6bc + * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/bcf55210f1..07f259e68a + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/4d22f58a81..bcef913745 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/ec76459d6f..a680671d95 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ae3d0c3217..16db450293 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Idae09b2ee1e3a631391cdcf813cccc131fc54d60 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2970618 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f6efb0138759c379165f88953baeaabc41b5bfcb +Author: angle-autoroll +Date: Fri Jun 18 07:00:23 2021 +0000 + + Roll Chromium from 681ec5b77d1d to 4c77f83b612d (360 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/681ec5b77d1d..4c77f83b612d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8a2885963d..11f1e3d2cd + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b97bee9f24..965c815e32 + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/816daa2545..ea5c2c2838 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2573cff725 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/74ef838a40..59140d436a + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/66b4484319..0e774456f5 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/657824459c..a61c45df6b + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ic1e6b2b37b1fa47508d8623e276bdeb3395602a8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2970925 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 24155b13671f09fe66ab8ebc5944b1c19a34549c +Author: Shahbaz Youssefi +Date: Thu Jun 17 18:09:29 2021 -0400 + + Vulkan: Free DynamicBuffer buffers after dip in allocation size + + In a pattern like this: + + - allocate 100 bytes + - allocate 200 bytes + - allocate 50 bytes + - allocate 100000000 bytes + - allocate 100 bytes + - allocate 200 bytes + - allocate 50 bytes + + The DynamicBuffer class switches to making 100MB allocations even if + that allocation was a one-off. A small future allocation would then tie + up 100MB in memory for future allocations. Another 100MB is also left + tied up in the free list. + + With this change, if an allocation is made that's less than a quarter of + the DynamicBuffer's current allocation size, it's taken as a sign that + the previous large allocation was a one-off and the size is moved back + to the DynamicBuffer's original initial size. + + Bug: b/187757166 + Change-Id: I0c6f00eec7c81298f9dc41a41cc308510ce76623 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971004 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 695625461e632515a0fa307e1d5fc70f09ee3b83 +Author: John Plate +Date: Fri Jun 11 19:12:11 2021 +0100 + + CL: Refactor info structs and fix conformance bug + + - Remove variable name prefix from Info structs to be more consistent + with other ANGLE structs. + - Fix CL object validation check with magics, since the Mesa solution + doesn't work without RTTI. + - Add support for some extensions required by OpenCL 1.1 and for some + optional extensions. + - Fix more conformance bugs. + + Bug: angleproject:6015 + Change-Id: I41b1c45d95059a9994f5dc78bf9b74476cc6f2d4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956349 + Commit-Queue: John Plate + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit dc334829d87fc04c26ff4e2ac4f8aaf061b9cf36 +Author: Geoff Lang +Date: Thu Jun 17 10:37:56 2021 -0400 + + Disable ANGLE's VK backend on official Chrome Android builds. + + ANGLE's VK backend induces a memory and binary size regression due to + global initializers in glslang/spirvtools. Disable it on Android Chrome + official builds. + + Bug: chromium:1172451 + Change-Id: I08d77cf11e20b393c0faf7c85d08c92061e5a09b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2969385 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Geoff Lang + +commit 97fca0c679fc37d94e6423d957d02f9a7738a112 +Author: angle-autoroll +Date: Thu Jun 17 10:01:36 2021 +0000 + + Roll vulkan-deps from 734228fd0093 to 7304bd043edc (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/734228fd0093..7304bd043edc + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/a23e143636..71612a7e5d + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/f1f5bdbd1b..ec76459d6f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/adb3eb0e78..ae3d0c3217 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I2f4effc6a35486f3eaa7440486ba0ee4ea08bc51 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967886 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit cc0dabfd16e2e79b8a1598f86d7d7055b230365e +Author: angle-autoroll +Date: Thu Jun 17 10:01:56 2021 +0000 + + Roll SwiftShader from 72e6254a135d to 84bc198202e5 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/72e6254a135d..84bc198202e5 + + 2021-06-16 capn@google.com Disable -warn-stack-size for LLVM older than version 12 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ia9f7162c121a6e6aa9698c4a24c9423f9d280de3 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2968203 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 82038dc48f3af18e6a31ecf1049326d8b6c9a8af +Author: angle-autoroll +Date: Thu Jun 17 09:16:13 2021 +0000 + + Roll Chromium from 3b095d2c5438 to 681ec5b77d1d (186 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3b095d2c5438..681ec5b77d1d + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/9ccd2d2400..8a2885963d + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/be7dcbc361..466954eda3 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/701dca6ebd..b97bee9f24 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a21dc91204 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/592d5ec077..74ef838a40 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/71b29b465c..27f119ee39 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9a55c7fe60..657824459c + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: If172aad9f25a34b034312b0c03dbf8f2adefe264 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967885 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit f89f244d52599a6e1deaf986fda73f2174707bcf +Author: Ian Elliott +Date: Wed Jun 16 13:03:20 2021 -0600 + + Doc: Add component info for filing Chromium bugs + + Bug: None + Change-Id: I7b8517e2312174a2e2b9221b7c99425978406024 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2966011 + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit be74156984636a5bd4af6cd19270cc7f0fbf6d04 +Author: angle-autoroll +Date: Wed Jun 16 21:53:12 2021 +0000 + + Roll Chromium from b136d87fc6ad to 3b095d2c5438 (90 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b136d87fc6ad..3b095d2c5438 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/94441aacf6..9ccd2d2400 + * buildtools/linux64: git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40..git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34 + * buildtools/mac: git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40..git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34 + * buildtools/win: git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40..git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/cbc508d9f5..701dca6ebd + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..70bf08ecdb + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/73cc951f87..9a55c7fe60 + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I24a6d338b014c61d5b872af2d7a7a889759d8128 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965335 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ecf27c717f478fc0dfc880a982793fb120284431 +Author: Ian Elliott +Date: Wed Jun 16 13:13:31 2021 -0600 + + GL: Fix bug with: Skip redundant flushes. + + The ANGLE-into-Skia autoroller is blocked because of the following CL: + https://chromium-review.googlesource.com/c/angle/angle/+/2956453 + + Michael Ludwig, a Skia engineer, found that this change fixes the + problem and will unblock the auto-roller. + + Bug: chromium:1181068 + Change-Id: I514b2762f6643e25b36aab0290a57af4abf3c660 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965615 + Reviewed-by: Geoff Lang + Commit-Queue: Ian Elliott + +commit b77a6c25d92c3364dc78a0c7301472f03decac9d +Author: Mohan Maiya +Date: Wed Jun 16 11:01:14 2021 -0700 + + Vulkan: Avoid using VK_WHOLE_SIZE when using dynamic offsets + + Binding descriptor sets that use VK_WHOLE_SIZE with a dynamic offset + results in the VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979 + validation error. + Updated the updateDefaultUniformsDescriptorSet function to use the + uniform's size instead of using VK_WHOLE_SIZE. + + Bug: angleproject:5924 + Tests: dEQP-GLES31.functional.shaders.multisample_interpolation.* + SimpleStateChangeTest.UniformUpdateTest*Vulkan + UniformTestES3.MatrixUniformUpload*Vulkan + Change-Id: Ie4633af61d59a9401f599d336a5b9040cdf18004 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950309 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 33b5ff4c4a1998b6af7f03b7a7937f8ebbb3cccf +Author: angle-autoroll +Date: Wed Jun 16 18:59:22 2021 +0000 + + Roll Chromium from 2d9121fa2280 to b136d87fc6ad (70 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/2d9121fa2280..b136d87fc6ad + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/1c1a1626e9..cbc508d9f5 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..70bf08ecdb + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e319aba2ba..592d5ec077 + * third_party/r8: o1uegxayAMktc600LZ1gX5ZzkC_qhU-frNcWJfmBg98C..gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/4d45e0aeb2..66b4484319 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/b6e0ed244f..71b29b465c + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/1337efa12c..73cc951f87 + Clang version changed llvmorg-13-init-12576-g643b6407:llvmorg-13-init-12881-g4017d033 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/4d45e0aeb2eb02a24c60048b11de5d65b87d0c73..66b4484319f05867883d6f59f86fbf5cb07b0099/scripts/update.py + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I1dc772e81192999b7c3776d20cf080a3aa722c3c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965334 + Bot-Commit: angle-autoroll + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 3707b01f8cc06e7466ec6ae2ad7d2741ce9c19f2 +Author: Tim Van Patten +Date: Wed Jun 16 09:43:39 2021 -0600 + + Be more specific when deleting unused third_party/ dirs + + The command to delete unused third_party/ directories needs to be more + specific to delete unused third_party/vulkan-deps/ directories. + + Additionally, use the flag '-path', since that's more portable than + '-wholename' which is GNU-specific. + + Bug: b/187342779 + Change-Id: Ie8b02360d0d86f9b42141212aaa6c2aa27a063c1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965605 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 99a98963115f02b036bdca3064ff7f00088cbc74 +Author: Shahbaz Youssefi +Date: Thu Jun 10 16:11:13 2021 -0400 + + Vulkan: SPIR-V Gen: Support discard + + This is simply done with OpKill. If-else blocks now check if the block + is already terminated (through return, discard, continue or break) + before adding the branch to merge block. + + Bug: angleproject:4889 + Change-Id: I713286cf38e40f9048486d2914a4355ddbc686ac + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953369 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 1529a30c148d50cf4aa05ca9b89935d7df4754f0 +Author: angle-autoroll +Date: Wed Jun 16 16:37:52 2021 +0000 + + Roll VK-GL-CTS from 7f2ec8531b64 to 7329723d8103 (10 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7f2ec8531b64..7329723d8103 + + 2021-06-16 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-06-16 antto.makinen@siru.fi Add a GraphicsFuzz test + 2021-06-16 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-06-16 rgarcia@igalia.com Skip unsupported allocations in invariance test + 2021-06-15 jbolz@nvidia.com Subgroup and workgroup reconvergence tests. + 2021-06-15 alanbaker@google.com Tests for VK_KHR_shader_subgroup_uniform_control_flow + 2021-06-15 alexander.galazin@arm.com Update glslang, SPIR-V Tools and headers + 2021-06-14 antto.makinen@siru.fi Shared memory layout tests + 2021-06-11 siglesias@igalia.com Add VK_FORMAT_B10G11R11_UFLOAT_PACK32 vertex input tests + 2021-06-11 rgarcia@igalia.com Test null fragment shading rate attachment pointers + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ianelliott@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com,angle-bots+autoroll-info@google.com + Change-Id: I3bc22f404b4822410248fa9c9a63e35d1a8ff900 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2966861 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 350ca026affb418d2c5dabee40cdb1a8ff5995b8 +Author: angle-autoroll +Date: Wed Jun 16 15:18:18 2021 +0000 + + Roll Chromium from a47f97f33178 to 2d9121fa2280 (292 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/a47f97f33178..2d9121fa2280 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/bc2162111e..94441aacf6 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/6c2969375e..f4328ad7c0 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2dac35d518..1c1a1626e9 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/bd17c406ba..8f8817d6f6 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6434229377 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ecdc362593..e319aba2ba + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c6949cb1f9..4d45e0aeb2 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f463e5ab39..b6e0ed244f + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f059cd2376..1337efa12c + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Ibb6ea3b03d3459b67468a21a304a1504508df0e0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2964191 + Bot-Commit: angle-autoroll + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 9c5009519cbd61ebca30912818e3a13769fb6274 +Author: Shahbaz Youssefi +Date: Thu Jun 10 15:48:57 2021 -0400 + + Vulkan: SPIR-V Gen: Fix user-defined blocks + + The _u prefix was missing from blocks and their fields. + + Bug: angleproject:4889 + Change-Id: I31f3b393bc81352c8cf7a433dd652692833fc3f7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953368 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 5a737833c18518aa4851541c70dac4c957896fcb +Author: Shahbaz Youssefi +Date: Thu Jun 10 15:19:59 2021 -0400 + + Vulkan: SPIR-V Gen: Fix row-major matrices + + Prior to this change, row-major and column-major matrices generated + different types. That is not correct. With this change, the same type + is generated for both. Row-major only comes into account when + calculating the alignment and offset of fields in a block. + + Bug: angleproject:4889 + Change-Id: Ifa03e1799a2510b90323d9d4fc2f681a3184069b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953367 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 74c6c1444c2075748eba43b870160260569a4e04 +Author: angle-autoroll +Date: Wed Jun 16 10:01:57 2021 +0000 + + Roll SwiftShader from 9559e5836cc1 to 72e6254a135d (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/9559e5836cc1..72e6254a135d + + 2021-06-15 capn@google.com Regres: Fix testing external contributions if reviewed by Googler + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: Idfa3c5889ed8df3f1fb98d54f4839e8f9280f5f8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2963848 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit b27c596b107a11b77978c9adc0f3aca52753d234 +Author: angle-autoroll +Date: Wed Jun 16 10:01:36 2021 +0000 + + Roll vulkan-deps from f43437ab3f52 to 734228fd0093 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/f43437ab3f52..734228fd0093 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/b848fd6a94..a23e143636 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/ecdd9a3e6b..4d22f58a81 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/7501ad708e..f1f5bdbd1b + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/dafb955601..adb3eb0e78 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I859d7377d0e5ed650e315b9f9963555ba4d19b94 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965287 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit e48f22102b88ee4aa84644bbe98f381e1450a753 +Author: Shahbaz Youssefi +Date: Thu Jun 10 13:23:34 2021 -0400 + + Vulkan: SPIR-V Gen: Support short-circuiting && and || + + When short-circuiting is necessary (because the right-hand side has side + effects), the following code is generated in SPIR-V: + + // For left && right: + result = left + if (left) + result = right + + // For left || right: + result = left + if (!left) + result = right + + Bug: angleproject:4889 + Change-Id: Id87b56dc4a1463ed781852a23d2ba6eb2015d700 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953366 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit a76f224f4a17b53c2bdd9629082bb2cfc8e1c0f5 +Author: Shahbaz Youssefi +Date: Wed Jun 16 00:43:55 2021 -0400 + + Fix build + + Two CLs went in at the same time, causing a build breakage. + + Bug: angleproject:4889 + Change-Id: I0dacda7263959014fb4ad9bd83733f58a5e98fe6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965319 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: John Plate + +commit 9b92aa568397e1adb57d487a5c85becb4f44343b +Author: angle-autoroll +Date: Wed Jun 16 03:42:27 2021 +0000 + + Roll Chromium from a4467e2bcd67 to a47f97f33178 (736 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/a4467e2bcd67..a47f97f33178 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ianelliott@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b59724c60a..bc2162111e + * buildtools/linux64: git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c..git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40 + * buildtools/mac: git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c..git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/e5f25a39b9..6c2969375e + * buildtools/win: git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c..git_revision:72d5a6e15d868abc8451fe0a3b6596e86a2ffc40 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/3c85e0a05c..2dac35d518 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/fa47598982..9f92effa4e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..1f843f3975 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ef579a1192..ecdc362593 + * third_party/ijar: https://chromium.googlesource.com/chromium/src/third_party/ijar/+log/174c500478..cb29a121b4 + * third_party/r8: gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC..o1uegxayAMktc600LZ1gX5ZzkC_qhU-frNcWJfmBg98C + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/aee8160f9a..c6949cb1f9 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4c1cd5039e..f463e5ab39 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3205ddf75e..f059cd2376 + No update to Clang. + + Bug: None + Tbr: ianelliott@google.com,ynovikov@google.com + Change-Id: If34b372383f4415cfbf635cf05c5cfddb089d4c9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965789 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 8b869a955d76378571891fad48b14ac8b94eb893 +Author: Shahbaz Youssefi +Date: Sun Jun 13 01:09:27 2021 -0400 + + Translator: Generate Ops for all built-in functions + + EOpCallBuiltInFunction is removed in this change, as well as the + "op": "auto" property in builtin_function_declarations.txt. Instead, + gen_builtin_symbols.py automatically generates Ops for every built-in + function and generates the TOperator enum accordingly. + + This simplifies SPIR-V code generation by allowing switches to be used + on operators instead of string comparisons. + + Bug: angleproject:4589 + Bug: angleproject:4889 + Change-Id: Ia351524400b0e12a10a5572e27e9b88c6ec2e61c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2958869 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Tim Van Patten + +commit 64ca25f1f3ac60df186d36188a47c43fb2571f03 +Author: Shahbaz Youssefi +Date: Tue Jun 8 17:15:49 2021 -0400 + + Vulkan: SPIR-V Gen: Unary operators + + The line raster emulation coded uses round() which was previously not + translated. This change implements all operations supported by + TIntermUnary nodes. Bresenham line emulation is now allowed. + + Bug: angleproject:4889 + Change-Id: I1ffbe3f9bf0299f7efa2c6d1e8f011fefdbb2ddb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951624 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 0297779ca4867364ee7e442c86ca874374831024 +Author: Shahbaz Youssefi +Date: Tue Jun 8 01:06:21 2021 -0400 + + Vulkan: SPIR-V Gen: Handle invariant variables + + The Invariant decoration is applied to variable declarations and block + members as necessary. When invariant is applied to a gl_PerVertex + built-in, it's applied to the appropriate member in + DeclarePerVertexBlocks. + + Bug: angleproject:4889 + Change-Id: Idaa8d4ab92f975381a0237d372f0a4044ff983e0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946116 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit f33a41be6394023eebc0d327d68bf194c93a1f9f +Author: Peter Kasting +Date: Tue Jun 15 16:59:57 2021 -0700 + + Another fix for -Wc++11-narrowing. + + Bug: chromium:1216696 + Change-Id: I65955fe818917a1909c3d1af391718aaa82652bb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965535 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 3f9dcb00a4986d8b1b871e61f51fd04497ae75cc +Author: Shahbaz Youssefi +Date: Sat Jun 12 01:37:32 2021 -0400 + + Translator: Prune trivial dead code + + Code after discard, return, break and continue is discarded with this + change. This simplifies SPIR-V generation as no code is allowed after a + branch instruction and no special handling is necessary after this + change. + + Bug: angleproject:4889 + Change-Id: Ife9c8de8a6d0db9d682561daf44366aad9b1cf61 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957811 + Reviewed-by: Tim Van Patten + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit 3824f2ade44fada91e5be34cda0d1635536d152e +Author: Dirk Pranke +Date: Tue Jun 15 10:47:47 2021 -0700 + + Set gclient arg to not generate location tags. + + This updates ANGLE to handle a Chromium //DEPS change + from https://crrev.com/c/2957335; there is a way + to generate component and file location metadata using + `dirmd` in chromium test isolates, but we don't currently + want to use this in ANGLE. This change updates the ANGLE + DEPS file to propagate the right gclient variable into + the gclient_gn_args_file so that the build continues to + work. + + Bug: chromium:1218056 + Change-Id: I0b27e08d3b7b35a17ba7dca6b6e032175637e8ae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2963837 + Reviewed-by: Ian Elliott + Reviewed-by: Dirk Pranke + Commit-Queue: Dirk Pranke + +commit e62195c937413ba787abc14e6db7602f16c678b4 +Author: Peter Kasting +Date: Tue Jun 15 10:48:49 2021 -0700 + + Fix another -Wc++11-narrowing issue. + + Bug: chromium:1216696 + Change-Id: I18ceae2d6bdd689830fafbfd12b1185c680f2e33 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965192 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit a1d439714dec355f51c6d144bfd82ab2fc122d91 +Author: Shahbaz Youssefi +Date: Sat Jun 12 23:11:48 2021 -0400 + + Translator: Pack TSymbol and TFunction fields + + Shaves ~45KB off of binary size in an ANGLE build on Linux, coming from + the built-in TVariable and TFunction variables. + + Bug: angleproject:4889 + Change-Id: I5466c9e26b069a07bf52d00fc2a9c5d49f3c0feb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2958868 + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 18ddd131c53959245352805c5017532eb873864c +Author: Shahbaz Youssefi +Date: Mon Jun 7 14:59:43 2021 -0400 + + Vulkan: SPIR-V Gen: Support mediump/lowp + + The mediump and lowp precisions translate to a RelaxedPrecision + decoration in SPIR-V. This change implements this decoration and + enables SPIR-V generation when emulating Bresenham lines. Prior to this + change, Bresenham line emulation resulted in a validation error due to + the vertex shader output being without RelaxedPrecision but the fragment + shader input (translated by glslang) with it. + + The function that produces a new id is given a list of decorations to + apply, which itself is automatically deriven from the TType where + applicable, to minimize the risk of any id missing this decoration. + + Bug: angleproject:4889 + Change-Id: I30cc5a278634c5d83d63cd65b057336f9f573baa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946113 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 33aa7ef06956c36e299599a4cbc452157b873e43 +Author: angle-autoroll +Date: Tue Jun 15 10:01:36 2021 +0000 + + Roll vulkan-deps from 0edfab1c0897 to f43437ab3f52 (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/0edfab1c0897..f43437ab3f52 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/fe15158676..b848fd6a94 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/53231a96c0..7501ad708e + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b82d4bc692..dafb955601 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I2101dc30e15183595ad879029509a3173557d1ba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2962280 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit af1eed2ef4cffe17aa17c50a01b9a0d5a63326ab +Author: Shahbaz Youssefi +Date: Thu Jun 10 01:55:59 2021 -0400 + + Vulkan: Generate gl_FragColor/Data declarations in AST + + gl_FragColor and gl_FragData are not available in Vulkan. Prior to this + change, their declaration as webgl_FragColor and webgl_FragData was done + in text. This change implements an AST transformation that declares a + normal fragment output variable and replaces all references to these + built-ins with those variables. + + Bug: angleproject:4889 + Change-Id: If224e089dec25e4aa580beb135e1be2890de7887 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953042 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 4fbb6f436f5b5a1c59c31f7e6b03f6e47fc2cd17 +Author: Alexis Hetu +Date: Mon Jun 14 18:20:06 2021 -0400 + + Vulkan: Fix accessing index buffer with uninitialized memory + + This was discovered by Clusterfuzz on MacOS. The issue was + that is index buffer of a draw indexed call was missing, + causing SwiftShader to access uninitialized memory, leading + to the ASAN crash. The missing index buffer was caused by + DIRTY_BIT_INDEX_BUFFER not being set. This was in turn + caused by ContextVk::flushDirtyGraphicsRenderPass() not + setting dirty bits not included in the dirtyBitMask, + despite needing to be set for future processing. + + Bug: chromium:1183068 + Bug: chromium:1190493 + Change-Id: I65b398d8737b3df5fd51a03a2c8074a774a94a81 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961690 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 8333d061441efdf2b7f350e4f12981dd6eb0de24 +Author: Geoff Lang +Date: Mon Jun 14 11:01:35 2021 -0400 + + GL: Respect TexSubImage upload limits for robust init + + The chunked_texture_upload splits texture uploads for glTexSubImage + calls but ANGLE uses glTexSubImage internally for robust resource + initialization. Also chunk those uploads. + + Bug: chromium:1181068 + Change-Id: Ia6eaac8117173946630f420b396cbc54c163b7ce + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961230 + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + +commit c40262dc844b9a85b7ac579fbfeea3728843138a +Author: Tim Van Patten +Date: Thu Jun 10 17:27:45 2021 -0600 + + Remove unused third_party/ deps from Android checkin + + Remove unused third_party/ deps from the Android checkins to reduce + the license burden from unused libraries. + + Bug: b/187342779 + Change-Id: I87358377d0dbbc644cb85555464f4afad9d5c333 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954924 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 7b14e506fd098cd02782fe0c96d4dc834eef989e +Author: Tim Van Patten +Date: Thu Jun 10 14:13:41 2021 -0600 + + Rename ANGLE APK label to: com.android.angle + + Rename the ANGLE APK to com.android.angle, since ANGLE is a headless + APK. + + Bug: b/184757175 + Change-Id: I8aae318a1882ee1b55e495b053374c9ebdecb94b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953509 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 2c8d9a9a006c328976a4d786c488899e011eca87 +Author: John Plate +Date: Wed Jun 9 16:09:35 2021 +0100 + + CL: Remaining functions for OpenCL 1.2 + + Add support for the remaining functions for OpenCL 1.2 for the + front end and pass-through back end. + Also fix several bugs discovered by the conformance tests. + + Bug: angleproject:6015 + Change-Id: I1dca1c3f4c1d9aea7f0501094c171116ea01381f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954259 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit 88631e5061aa590e4485bb82d36c276d1dbc9451 +Author: angle-autoroll +Date: Mon Jun 14 10:01:36 2021 +0000 + + Roll vulkan-deps from 7e098c965711 to 0edfab1c0897 (3 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/7e098c965711..0edfab1c0897 + + Changed dependencies: + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/07c4a37bcf..9d10a96f2d + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/1021540dc2..53231a96c0 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ianelliott@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ianelliott@google.com + Change-Id: I654e9265e8050316c8565fe27993e8c5966d6bf9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2959019 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 3aea00c8045aaa05e2c06bffd1301edd13ca6425 +Author: angle-autoroll +Date: Mon Jun 14 07:00:53 2021 +0000 + + Roll Chromium from 5aaab2e1ec76 to a4467e2bcd67 (434 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5aaab2e1ec76..a4467e2bcd67 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/eb4ebdf32c..b59724c60a + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/c1cef4e23c..be7dcbc361 + * buildtools/linux64: git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa..git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c + * buildtools/mac: git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa..git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c + * buildtools/win: git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa..git_revision:e0c476ffc83dc10897cb90b45c03ae2539352c5c + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2438adcd35..3c85e0a05c + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2f46970950 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e5d455cca7..ef579a1192 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/fd14318cc9..aee8160f9a + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/de888be9c5..4c1cd5039e + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/cd44a3b1ea..3205ddf75e + Clang version changed llvmorg-13-init-12491-g055770d5:llvmorg-13-init-12576-g643b6407 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/fd14318cc948b67e5ec8a0f2f7563142ccd6dac2..aee8160f9ac4d833283a35f1088f94c17d523a16/scripts/update.py + + Bug: angleproject:4841 + Tbr: syoussefi@google.com + Change-Id: If2031c2773a3bc6a0c5d52f0177329397b18191e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2959016 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 222a81cfaaf0be64e64fe1e8ec04753e287532fe +Author: Geoff Lang +Date: Fri Jun 11 14:34:52 2021 -0400 + + Reland: GL: Skip redundant flushes. + + Skip flushes when there is no work submitted since the last + flush. + + Bug: chromium:1181068 + Change-Id: Iab31f8949f7eb07dffb7b0930069cbb3ca69ef57 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956453 + Reviewed-by: Kenneth Russell + Commit-Queue: Geoff Lang + +commit ebf756983dd87bb84e690aba63893a759ba3af79 +Author: Ian Elliott +Date: Thu Jun 10 18:55:04 2021 -0600 + + Vulkan: Fix AGI clear hierarchy bug for clear commands + + This approach properly handles outside-render-pass clears. + + Bug: b/190622922 + Change-Id: Ia4a9d6ec13d7da8c4a445af1127e82c03f37e8b2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951960 + Reviewed-by: Mark Lobodzinski + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Ian Elliott + +commit bc913c7040e97028316591ae7d2c02519161b4cf +Author: angle-autoroll +Date: Fri Jun 11 10:01:36 2021 +0000 + + Roll vulkan-deps from d19e20ee6d7d to 7e098c965711 (1 revision) + + https://chromium.googlesource.com/vulkan-deps.git/+log/d19e20ee6d7d..7e098c965711 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/bbc660edab..ecdd9a3e6b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I6fe973a3d143e05ddfece8d845627ed7c1c4c7bd + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954709 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a4fa7a66cadaf7297ced7a076a7770f173e68b93 +Author: angle-autoroll +Date: Fri Jun 11 10:01:57 2021 +0000 + + Roll SwiftShader from 81ba5f47b66c to 9559e5836cc1 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/81ba5f47b66c..9559e5836cc1 + + 2021-06-10 nicolascapens@google.com Revert "Remove git submodules before rolling into Android" + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I0752c72acb33ef73bbd4162dff753f35d23fbd12 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2955222 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 55df3ec11c0b3f93ad0f4935423a4417661bf2ee +Author: John Plate +Date: Tue Jun 8 18:57:15 2021 +0100 + + CL: Add remaining enqueue commands + + Add support for remaining OpenCL 1.2 enqueue commands to front end + and pass-through back end. + + Bug: angleproject:6015 + Change-Id: Iab650e42d51e2105dc826088d3606c56d5cd0fd5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944966 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit 5e5d17cdbc479f2d2979bfe290a01a004f76cc11 +Author: angle-autoroll +Date: Fri Jun 11 07:00:39 2021 +0000 + + Roll Chromium from 399855f4bba6 to 5aaab2e1ec76 (226 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/399855f4bba6..5aaab2e1ec76 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/2192a63c23..eb4ebdf32c + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9d8449e380..c1cef4e23c + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/2c53623d59..e5f25a39b9 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/ab567bcc84..2438adcd35 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2f46970950 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6d099d543d..e5d455cca7 + * tools/luci-go: git_revision:725192cc79f07ea946e10a64baac06625c206968..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9 + * tools/luci-go: git_revision:725192cc79f07ea946e10a64baac06625c206968..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9 + * tools/luci-go: git_revision:725192cc79f07ea946e10a64baac06625c206968..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/12c8fa872b..de888be9c5 + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2e6477d751..cd44a3b1ea + No update to Clang. + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I692a13429e5eda59471aa2197beb185cdf1f9113 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2955399 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c7c3cac090223d8cdef3e7403115f38f07750c23 +Author: Yuly Novikov +Date: Wed Jun 9 15:05:17 2021 -0400 + + Add Android chromium.angle bots to CQ + + Bug: angleproject:4483 + Change-Id: I5a2d76bb9f5183752cbcd6f9381c4aef83edecd7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950267 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 1fcbf77c7397aa50d87f2ffed21188a07fa91714 +Author: Ian Elliott +Date: Thu Jun 10 16:02:31 2021 -0600 + + Vulkan: Fix AGI hierarchy for query commands + + Treat glBeginQuery* and glEndQuery* commands the same as glDraw* + commands, generating a hierarchy. This results in vkCmdBeginQuery and + vkCmdEndQuery commands being nested under gl*Query*, instead of being + a peer of glDraw* commands. + + This change necessitated plumbing some of the existing "end" path to + return angle::Result. + + Bug: b/190512191 + Change-Id: I898d3fdd9b4b7d86e76dfae2ffc5d6f7316a55ef + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950926 + Reviewed-by: Mark Lobodzinski + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Ian Elliott + +commit 29227eef65f8f4be569a73b41c178f58b6282920 +Author: Shahbaz Youssefi +Date: Sat Jun 5 22:25:01 2021 -0400 + + Vulkan: SPIR-V Gen: Specialization constants + + With specialization constant qualifier and ids set in the node types, + the SPIR-V generation for these variables are trivially handled. + + This is in preparation for enabling line raster emulation as well as + fragment shaders in general. + + Bug: angleproject:4889 + Change-Id: Ie4d4e47b222ac66d1e0eee29f55ac09990313580 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939337 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 166dd0c75cbf82c8565904693efe1aee56767e44 +Author: Yuly Novikov +Date: Thu Jun 10 16:09:01 2021 -0400 + + Roll chromium_revision 6c5859c895..399855f4bb (890175:891326) + + Manual changes: + 1. Fix generate_test_spec_json.py to correctly handle ADDITIONAL_MIXINS + Needed after angle_skia_gold_test mixin removed from Chromium in + crrev.com/890333 + 2. Copy third_party/logdog from Chromium + Needed after crrev.com/890539 in order to create isolates on Android + and for tools/perf/process_perf_results.py + + Change log: https://chromium.googlesource.com/chromium/src/+log/6c5859c895..399855f4bb + Full diff: https://chromium.googlesource.com/chromium/src/+/6c5859c895..399855f4bb + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/8870cb4120..2192a63c23 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/c793cca886..9d8449e380 + * buildtools/linux64: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa + * buildtools/mac: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/7e3b76855b..2c53623d59 + * buildtools/win: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:393dab000d704a4364d085fa4c01ec7af176c8fa + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/a62f8260df..ab567bcc84 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/7949d87093..bd17c406ba + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/887e8d9009..fa47598982 + * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/1cfc90728e..816daa2545 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..17cf72ca75 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b508ecd932..6d099d543d + * third_party/nasm: https://chromium.googlesource.com/chromium/deps/nasm.git/+log/19f3fad68d..e9be5fd6d7 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/82f8803671..f4241bd0f2 + * third_party/turbine: _iPtB_ThhxlMOt2TsYqVppwriEEn0mp-NUNRwDwYLUAC..Om6yIEXgJxuqghErK29h9RcMH6VaymMbxwScwXmcN6EC + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/09481f56be..fd14318cc9 + * tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:725192cc79f07ea946e10a64baac06625c206968 + * tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:725192cc79f07ea946e10a64baac06625c206968 + * tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:725192cc79f07ea946e10a64baac06625c206968 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/94630dfc19..12c8fa872b + * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/5c84710692..2e6477d751 + DEPS diff: https://chromium.googlesource.com/chromium/src/+/6c5859c895..399855f4bb/DEPS + + Clang version changed llvmorg-13-init-11999-g50c0aaed:llvmorg-13-init-12491-g055770d5 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/09481f56be7b1bbaf5a466be5d81691902825fcf..fd14318cc948b67e5ec8a0f2f7563142ccd6dac2/scripts/update.py + + Bug: angleproject:4483, angleproject:6037 + Change-Id: I9035126bce55642d4dfce54eeace85093bdd1782 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954241 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit ac704c8003142b97f62ab28bc1f4b042ec0021f7 +Author: Shahbaz Youssefi +Date: Thu Jun 10 17:51:07 2021 -0400 + + Roll VK-GL-CTS from d17a353c6cd4 to 7f2ec8531b64 (15 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/d17a353c6cd4..7f2ec8531b64 + + 2021-06-10 siglesias@igalia.com Check resource limits properly + 2021-06-10 rgarcia@igalia.com Capture early errors on instance creation + 2021-06-10 ilkka.saarelainen@siru.fi Add depth execution mode tests + 2021-06-10 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + 2021-06-09 rgarcia@igalia.com Test instance matrix update after command recording + 2021-06-09 rgarcia@igalia.com Test null miss shader group handles work + 2021-06-09 rgarcia@igalia.com Test tracing rays from inside AABBs + 2021-06-09 siglesias@igalia.com Fix wait semaphore count value + 2021-06-09 marcin.kantoch@amd.com Fix internal error for fragment stage in RT tests + 2021-06-09 alexander.galazin@arm.com Add GL_ARB_separate_shader_objects requirement + 2021-06-09 alexander.galazin@arm.com Raise glsl version to 420 for compute shaders + 2021-06-09 alexander.galazin@arm.com Raise glsl version to 410 core for shaders with GL_ARB_shader_atomic_counters + 2021-06-09 alexander.galazin@arm.com Remove shaders.switch from the Khronos mustpasses + 2021-06-07 zzyiwei@google.com Add a test for VK_EXT_global_priority_query + 2021-06-07 alexander.galazin@arm.com Update Vulkan headers + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC syoussefi@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com,angle-bots+autoroll-info@google.com + Change-Id: Iac5faae807430cb114617f77543768ea6047f3a2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953060 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 31641b8e7269b5afc8cac86e2607909df61a99d7 +Author: Shahbaz Youssefi +Date: Sat Jun 5 02:17:47 2021 -0400 + + Declare specialization constants in the AST + + A new qualifier (EvqSpecConst) is added so that specialization constants + can be declared in tree. + + This enables TVariable references to specialization constants to be + validated, which were in fact invalid as every reference declared a new + variable. That is fixed. + + Bug: angleproject:4889 + Change-Id: I1711e41cbc5a1260843d2d004d3568bdae11e963 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941451 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 82654e5d51b3b4e7f56a5edd68892ba63ed576e5 +Author: John Plate +Date: Sun Jun 6 15:46:53 2021 +0100 + + CL: Add program build commands + + Add program build commands to front end and pass-through back end. + + Bug: angleproject:6015 + Change-Id: I1175646d35ff050796b718d7f0e269520292b319 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940839 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 5fd72bd3e4e67a66f0fdf45245852c40fd6ef986 +Author: Jamie Madill +Date: Thu Jun 10 11:22:26 2021 -0400 + + Use Chromium mirror of tools/perf. + + This will keep ANGLE in sync with Chromium changes and reduce the + maintenance burden. + + Bug: angleproject:6037 + Change-Id: Ibed4031d8cb3468e6be6501bda21404c42fb2be6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953043 + Reviewed-by: Yuly Novikov + +commit 2e772e045bcd43652da96cac333c0465ca329fdf +Author: John Plate +Date: Fri Jun 4 14:01:42 2021 +0100 + + CL: Add image enqueue commands + + Add image enqueue commands to front end and pass-through back end. + + Bug: angleproject:6015 + Change-Id: I133e84020975679fafd29432c965cd19f086d2b4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940837 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: John Plate + +commit c670917ce0460217c214de7ae01c90eb59664d17 +Author: Sergey Ulanov +Date: Wed Jun 2 14:43:03 2021 -0700 + + [Fuchsia] Cleanup vulkan_fuchsia_ext.h + + Removed defintions of fuchsia-specific vulkan types from + vulkan_fuchsia_ext.h . Instead, the types provided by vulkan_fuchsia.h + are used now. + Also re-enabled vulkan validation on Fuchsia. + + Bug: chromium:1215736 + Change-Id: I795347b7fb61d90033749533cefd42cf180730fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934718 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit 9b142b646d91de571268c07805570539ced96bc1 +Author: angle-autoroll +Date: Thu Jun 10 10:01:36 2021 +0000 + + Roll vulkan-deps from 4d0e65d25f37 to d19e20ee6d7d (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/4d0e65d25f37..d19e20ee6d7d + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/3d935ea224..fe15158676 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d07505c761..bbc660edab + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: Ic216efdfdd40d3bafd3f74c3494400592aa3abb5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950831 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 2a42e86939a6f0d635e88c5137862e5400d566fd +Author: angle-autoroll +Date: Thu Jun 10 10:01:56 2021 +0000 + + Roll SwiftShader from 5ecc95a00e2b to 81ba5f47b66c (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/5ecc95a00e2b..81ba5f47b66c + + 2021-06-10 srisser@google.com Prevent BC6h decoder from using global constructor + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: Ie5c73bca485ecc3809c0b1f9a7d73082f400b86f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2952621 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit eb88204087d33c7c82d26d5743f6628a390bb6f2 +Author: Gert Wollny +Date: Tue Jun 8 11:17:59 2021 +0200 + + test/ImageTest: Clear back buffer when test cleanup + + Many tests don't actually use the back buffer, so uninitialized data + is used when capturing leading to failure. Hence, clear the back buffer + when the test ends and before swap is called triggering the capture. + + Bug: angleproject:6035 + Change-Id: I0a500ae9f5203feaf0b492dc18e84c5a92ee1497 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944953 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit d769742c30c2234f65f42f2060c708a82b8079db +Author: Shahbaz Youssefi +Date: Thu Jun 3 19:43:58 2021 -0400 + + Vulkan: SPIR-V Gen: Default uniforms + + Default uniforms are gathered in a uniform block, so treat them like + other nameless uniform block fields. + + Bug: angleproject:4889 + Change-Id: If340040ab4c59f3243c40de7daba530b2289e147 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939333 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit 7108e06992cae41aaf87eb79ed8ef8a53dc8a1c6 +Author: angle-autoroll +Date: Tue Jun 8 09:55:11 2021 +0000 + + Roll Chromium from 3bcc8fd7c291 to 6c5859c895f5 (510 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3bcc8fd7c291..6c5859c895f5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e353b02625..8870cb4120 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/0b443d31ef..c793cca886 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/a45949a818..a62f8260df + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/42884eb2ac..887e8d9009 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..d598390f02 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a5b6b2f8b7..b508ecd932 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/9523daa51d..82f8803671 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/0c64e8349d..09481f56be + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/d5d794a9f5..94630dfc19 + * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/71214b910d..84ad259424 + No update to Clang. + + Manually added tools/android/modularization/convenience/lookup_dep.py + from crrev.com/889754 + And updated .gn to use python3 in GN build by default + + Bug: angleproject:6042 + Tbr: syoussefi@google.com + Change-Id: I00384f4d38d14b54778d334aec9c633f54d619bb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946825 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit cb4f8a79a4def3dd8fd9f941d6674939e1731860 +Author: Gert Wollny +Date: Tue Jun 8 10:39:47 2021 +0200 + + Capture: Add a specialization for TGLeglImageOES + + When writing out the parameter TGLeglImageOES an additional cast is + needed. + + Bug: angleproject:6036 + Change-Id: I7470a58a6ae17b0185d0c2e3fe1184b698f3efaf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944952 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 19209666904aa5afbf48c15b90ca7250509276df +Author: Peter Kasting +Date: Wed Jun 9 07:55:04 2021 -0700 + + Fix -Wc++11-narrowing in ANGLE. + + This adds a few explicit casts where necessary and changes some double + constants to floats to avoid truncation. + + Bug: chromium:1216696 + Change-Id: Ie1a3ad94284185fb20a6feff75290cabb7ee09e8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950320 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 87b8d32adeef784b7b88e3d900a6a595e9136da6 +Author: angle-autoroll +Date: Wed Jun 9 10:01:36 2021 +0000 + + Roll vulkan-deps from 11d5b8e51262 to 4d0e65d25f37 (13 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/11d5b8e51262..4d0e65d25f37 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/1fa21491bc..3d935ea224 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/87a2867976..d07505c761 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/3ae088978f..1021540dc2 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/46de0cdb74..b82d4bc692 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I96591b5d42b648f807d185d07ae4d1da825d3fea + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2948447 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 69f2fb0066e835463020500ff0b2dd1c6fc551c6 +Author: Brandon Schade +Date: Mon Mar 8 10:49:31 2021 -0800 + + Vulkan: Expose OES_geometry_shader extension + + Modify the symbol table generation script to accept a list + of supported extensions. This allows for the EXT and + OES versions of the geometry shader extension to be exposed. + + Test: angle_deqp_khr_gles31_tests --deqp-case=*geometry_shader* + Bug: angleproject:3571 + Change-Id: Ia7127a03dbd3fce78957f0505d3ce0c9bab6cb15 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765011 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit c778f93f7ed21acd3db2083f35a0f0e5e9b99fd2 +Author: Jamie Madill +Date: Mon Jun 7 13:10:15 2021 -0400 + + infra: Reduce sharding on GLES3 GL/Metal tests. + + Bug: None + Change-Id: I56593374d027db20a5ed0ebf09ca2210e219f244 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2945431 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit ac2fc259d09e0dc48c53811451b7ad56cf255a57 +Author: Shahbaz Youssefi +Date: Thu Jun 3 17:11:14 2021 -0400 + + Vulkan: SPIR-V Gen: Support function forward declaration + + The generation of function-related ids is moved to + visitFunctionPrototype to support forward declarations. The + DeferGlobalInitializers AST transformation produces such code. + + Bug: angleproject:4889 + Change-Id: Iefee534575092ca25ff86e416e35703d7022bc07 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939332 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 013613ea9bed29040fe6b6cdb215daa6d1715d10 +Author: Shahbaz Youssefi +Date: Tue Jun 8 01:33:30 2021 -0400 + + Translator: Allow invariant on I/O block members + + The GLSL ES 3.2 spec says: + + > Only variables output from a shader can be candidates for invariance. + + And: + + > All uses of invariant must be at global scope or on block members, and + > before any use of the variables being declared as invariant. + + As a result, it's possible to specify `invariant` on a member of an + output I/O block. + + Bug: angleproject:4889 + Change-Id: I8822ed214813db8424d6a67dfef7f069a448b19d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946115 + Reviewed-by: Ian Elliott + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit 4bafc5032ef49e9d9585e035bc368eeebdfccc7a +Author: Mark Lobodzinski +Date: Tue Jun 1 10:59:17 2021 -0600 + + Vulkan: Fix AGI hierarchy for clear commands + + Treat mid-render-pass glClear* commands the same as glDraw* + commands, generating a hierarchy. This results in + vkCmdClearAttachment commands being nested under glClear, instead of + being a peer of glDraw* commands. + + Bug: b/183547523 + Change-Id: Ibc6900b0485fd174d79c8fe6c94ea17dbefa520b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941364 + Reviewed-by: Mark Lobodzinski + Reviewed-by: Mike Schuchardt + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 7c253fca72fcff1b94f6c0286c0ea3a1deb06d6b +Author: Michael Yu +Date: Wed Jun 2 13:18:44 2021 -0700 + + D3D11 additional context-loss logging + + This makes logging more consistent when we encounter context loss. + + In Renderer11::testDeviceLost, note DXGI_ERROR_INVALID_CALL is a + valid GetDeviceRemovedReason, but was not detected prior. + + SwapChain11::resize and SwapChain11::reset added more logging, + likewise with Context11::handleResult. + + This covers everywhere d3d11::isDeviceLostError is invoked, though that + might not be exhaustive of all cases we detect device loss. + + Bug: b/188291915 + Test: Manually trigger conditions to test logging. + Change-Id: Idd57363101b53bc2d3c4c306ee78a42012a1a320 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935696 + Reviewed-by: Jamie Madill + Reviewed-by: Doug Horn + Commit-Queue: Michael Yu + +commit df977aafc3ede500d0990bc8acdd83256724b794 +Author: Shahbaz Youssefi +Date: Tue Jun 8 01:04:32 2021 -0400 + + Translator: Validate global qualifier declaration's symbol + + Global qualifier declarations (invariant, precise) apply to + already-declared variables. This is now validated. + + Bug: angleproject:4889 + Change-Id: I9889f2d68dcd6a2fc0de2b20a1291899397982d0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946114 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit 1b2000f5235d284771615b70555892968d2b039b +Author: Mark Lobodzinski +Date: Mon Jun 7 17:29:22 2021 -0600 + + Docs: Update CONTRIBUTORS with LunarG info + + Add LunarG, Inc. and Mark Lobodzinski to the CONTRIBUTORS file + and LunarG, Inc. to the AUTHORS file. + + Bug: None + Change-Id: Id3f9ff2075498532280d4a652a5fffa85dd77f45 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2945696 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Ian Elliott + +commit 0c26ff116342d4eef1427c3efbd6cd5168beed43 +Author: Shahbaz Youssefi +Date: Thu Jun 3 17:09:22 2021 -0400 + + Vulkan: SPIR-V Gen: Support initializers in declarations + + If the initializer is a constant, it's specified directly in the + OpVariable instruction. Otherwise an OpStore is generated where the + declaration is visited. + + Bug: angleproject:4889 + Change-Id: I79291552ecc50c0878f921aff9f6d8618be34116 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939331 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit c3e397c61b51fc5fc31b607a989d260708eb8fcf +Author: Shahbaz Youssefi +Date: Mon Jun 7 17:25:59 2021 -0400 + + Use float clamp unconditionally for indirect index clamping + + Suspecting a Qualcomm driver bug with integer clamp affecting WebGL2 + tests. + + Bug: chromium:1217167 + Change-Id: I6b323a9de5828b3a11cbe2650d66c7627b90a9f4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946111 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Shahbaz Youssefi + +commit d6f344c2fe84a54baa59ba69fc1cad3336b3b900 +Author: angle-autoroll +Date: Tue Jun 8 12:43:57 2021 +0000 + + Roll SwiftShader from 3da42a3a2cd6 to 5ecc95a00e2b (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/3da42a3a2cd6..5ecc95a00e2b + + 2021-06-08 swiftshader.regress@gmail.com Regres: Update test lists @ 3da42a3a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I8f127154cac665383aa2d776709b801c20b3b22e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946992 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6746e5ddbab8e76fe95cc0a21b8a424e63a61b23 +Author: Shahbaz Youssefi +Date: Tue Jun 1 22:48:14 2021 -0400 + + Vulkan: SPIR-V Gen: Basic support for compute shaders + + This change enables direct SPIR-V generation for compute shaders and + enables a few tests. A handful of built-in functions are translated to + support said tests. + + Bug: angleproject:4889 + Change-Id: I8fd6dc50ff31559a738ba680a993fb197e29fcf9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939330 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 1ab6d214182b56a446b11c4658c24ceb4c8974ea +Author: Gert Wollny +Date: Mon Jun 7 08:49:09 2021 +0200 + + Capture: Create group variable for BlockMemberInfo + + Also declare GroupScope as NO_DISCARD. + + Bug: angleproject:6016 + Change-Id: I738f137727d52a0930cd8c400fbc05f1cc8cfdad + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2943927 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit ee4a5266d3c51f4c4e8e25dd804383ba5b3cbd9e +Author: Shahbaz Youssefi +Date: Tue Jun 1 14:57:24 2021 -0400 + + Vulkan: SPIR-V Gen: Function calls + + This change implements function calls. As a result, transform feedback + tests are enabled as well as support for transform feedback emulation + (which contains functions and if blocks). + + `const` and opaque uniform function arguments take intermediate values, + while the rest take memory objects. If the argument being passed is an + unindexed lvalue, it can be directly given to the function. Otherwise a + temporary variable is made which is initialized by the parameter if + necessary (in and inout parameters) and later overwrites the parameter + if necessary (out and inout parameters). + + Bug: angleproject:4889 + Change-Id: I8976cdd17870c35d5a2daeed3c38de57ada931d9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930363 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit c1932fb505e88ee1db7dd3513a869a13b120bc64 +Author: Gert Wollny +Date: Mon Jun 7 12:25:47 2021 +0200 + + Serializer: Print FBO attachment name instead of a number + + Bug: None + Change-Id: I419a0ca6d1c2e3c47dc84b106baf40dc0abb85cb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2943930 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + +commit 3bc28a2723ab9216aa5db3a4bc8a21733e47d767 +Author: Jamie Madill +Date: Mon Jun 7 13:03:39 2021 -0400 + + infra: Add flaky retries to Metal GLES 3 tests. + + These have been somewhat flaky on the waterfall. + + Bug: angleproject:6019 + Change-Id: I4d76411ab54ad5fbfb9c49775c44a12b99def846 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2945430 + Commit-Queue: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Yuly Novikov + +commit d99864c0fa1756d62228abe9b85339506ba3418e +Author: Jamie Madill +Date: Mon Jun 7 12:48:01 2021 -0400 + + Gold Tests: Fix flaky test handling. + + Indead of just retrying the batch, retry individual tests. + This should correctly handle the Intel flake pattern. + + Bug: angleproject:5415 + Change-Id: I029c2514ff8e7a45184c5c105bf2d0350171da29 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940049 + Commit-Queue: Jamie Madill + Reviewed-by: Jonah Ryan-Davis + Reviewed-by: Yuly Novikov + +commit f03f7bdb729ff37a4032f99f869802b79b3e620a +Author: Jamie Madill +Date: Mon Jun 7 12:30:29 2021 -0400 + + infra: Don't run trace tests in perf smoke tests. + + These test were already being run more safely in the gold tests step. + + Bug: angleproject:5977 + Change-Id: I4fb1062926fcda19384835723555d0fab0b42aae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939469 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 2917ab347b95293316482de05ac069cde2a44798 +Author: Jamie Madill +Date: Mon Jun 7 11:41:54 2021 -0400 + + infra: Override Gold mixin. + + This mixin is being removed from the Chromium version of the mixins. + Therefore we have to move it into the additional mixins option of the + generator. + + Bug: angleproject:6037 + Change-Id: I605b7cbf35d6282754bf5fb26246e32b2edcea10 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939466 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 0a6c6c00ad2f9fcad6e86505b77fd56dde135179 +Author: Mark Lobodzinski +Date: Tue Jun 1 10:59:17 2021 -0600 + + Vulkan: Submit Dispatch commands outside renderpass + + Compute dispatch commands must be submitted outside a renderpass, + but their associated debug event markers were being submitted + on the renderpass commandbuffer. The dispatch debug event markers are + now handled separately from those for draw calls and are now submitted + on the correct commandbuffer. + + Failure manifested in malformed AGI traces for Ragnarok M: + Eternal Love + + Bug: b/181611786 + Change-Id: I768eeccd76be38818fc99d6d56f5899290c8fc5b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930818 + Reviewed-by: Ian Elliott + Reviewed-by: Cody Northrop + Commit-Queue: Ian Elliott + +commit 052713da94b8cfbbdfcd09c53cbb2becdcce57aa +Author: Jamie Madill +Date: Mon Jun 7 12:25:53 2021 -0400 + + Lift OpenGL Win/Intel test expectation. + + This was fixed in a prior patch. + + Bug: angleproject:5444 + Change-Id: I6df4b71b8dabd66eb151d94d757f89d88a864dab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939468 + Commit-Queue: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit 7231c705d83ee227a5369c7f64380abbea0e0f14 +Author: Cody Northrop +Date: Mon Jun 7 14:03:45 2021 -0600 + + Tests: Skip genshin_impact on Intel Linux + + Bug: angleproject:6029 + Change-Id: I2f25dcedf36d9f341d134baeb9752fb3e3aada6b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944621 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit bb6e12a389871059e8bbfcb7a0cec952f87dcd7c +Author: angle-autoroll +Date: Mon Jun 7 15:58:07 2021 +0000 + + Roll vulkan-deps from 95b967c506f6 to 11d5b8e51262 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/95b967c506f6..11d5b8e51262 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/6d5c5677e1..87a2867976 + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/7fe877c90a..07c4a37bcf + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/34ee418b3a..46de0cdb74 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: Ib38948aad433ec022a3d551bfc85f5d4c89dd5d6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944220 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b20581b967305350ef96c5bee3dd774a3ddf4767 +Author: angle-autoroll +Date: Mon Jun 7 14:19:08 2021 +0000 + + Roll vulkan-deps from 7fd6569e6ad3 to 95b967c506f6 (3 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/7fd6569e6ad3..95b967c506f6 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/6bdcb4be34..1fa21491bc + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: syoussefi@google.com + Change-Id: I75895dc7986e207cd69522e8a0fb182a5e9db66a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2942471 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2d72c99f6a23968a01170fa1c4c8540312eb5c6e +Author: angle-autoroll +Date: Mon Jun 7 12:58:50 2021 +0000 + + Roll SwiftShader from efe254de5d88 to 3da42a3a2cd6 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/efe254de5d88..3da42a3a2cd6 + + 2021-06-07 swiftshader.regress@gmail.com Regres: Update test lists @ efe254de + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC geofflang@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: geofflang@google.com + Change-Id: I9bf9af0182722b3b065222f55eaf410bb44ff8ed + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944667 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a5b302d38fc7f5bb49b65da2b9272b9f52aa347c +Author: angle-autoroll +Date: Mon Jun 7 07:01:22 2021 +0000 + + Roll Chromium from 5c4073be350e to 3bcc8fd7c291 (49 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5c4073be350e..3bcc8fd7c291 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/eb65cc3594..0b443d31ef + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8dc98b062a..a45949a818 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8bf7a0b3c8 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/30cbc5cd01..0c64e8349d + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I9ad3a0d25fc5d8a09f90be71f5347366e97496b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2943659 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit b4b27e45f80558a77c7ba95e02186ce3026de40c +Author: angle-autoroll +Date: Sun Jun 6 18:44:24 2021 +0000 + + Roll Chromium from fed1a144db8a to 5c4073be350e (25 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/fed1a144db8a..5c4073be350e + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2c2106e1f4..8dc98b062a + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8bf7a0b3c8 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/d9e38c7cd4..d5d794a9f5 + No update to Clang. + + Bug: angleproject:5941 + Tbr: ynovikov@google.com + Change-Id: I2c59786a5a190770f475b3027bcb4f3668403e00 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941371 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 77831a6dbb9470016b5b484d333f2270a4af20af +Author: Shahbaz Youssefi +Date: Mon May 31 22:41:58 2021 -0400 + + Vulkan: SPIR-V Gen: If-else blocks + + This change implements if-else blocks as well as a few simple binary + operations (equality, less-than etc). It builds on prior work to + generate the function in separate blocks and introduces a "conditionals" + stack to support nesting of if-else blocks, switches and loops. + + Bug: angleproject:4889 + Change-Id: If7694000487811837ed5946753568b41d67199f0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929660 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 934fc56ee41a2a1f2e795b4369392879c42f39e4 +Author: angle-autoroll +Date: Sun Jun 6 01:09:35 2021 +0000 + + Roll Chromium from 5ffd2ab3bece to fed1a144db8a (423 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/5ffd2ab3bece..fed1a144db8a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com,syoussefi@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/bf4ecd926c..e353b02625 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f39abc2692..2c2106e1f4 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/baaf1482ba..42884eb2ac + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..092e09c1f7 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9705687c25..a5b6b2f8b7 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/af7a363dfe..30cbc5cd01 + * tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418 + * tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418 + * tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/42ddcb0299..d9e38c7cd4 + * tools/skia_goldctl/linux: fVbmAq5SyEKlNV_cPvOrlJbBRmDAWApv309sIMdbgq8C..SB2wGV5iqWiiLLc3ZLU2sn1CcUnFefPLkUKPCgQ9swkC + * tools/skia_goldctl/mac: SGAjTHEDDOpAgPQYJcSEmMh4E6afvlKQKzBjwSTf5dwC..3aDI3FukPbExUrKO2_xiMcP1_2EEcWDoL1X9tb3N1ucC + * tools/skia_goldctl/win: hySBvc3hf9NRFmfS2oG52F9ZzLpvX9bFuyybtZ92CNAC..C5XvIOVnzzsQevJZRD08B1C_6mhdpxvY9vPiHf4iZJ0C + Clang version changed llvmorg-13-init-11649-g4d788fb8:llvmorg-13-init-11999-g50c0aaed + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/af7a363dfec994581ed076c5023f110e079459f9..30cbc5cd01393d596002061be5cfe50ab66efef1/scripts/update.py + + Bug: None + Tbr: ynovikov@google.com,syoussefi@google.com + Change-Id: Iabfa6247c45eaff47a4664e5b08bbdabbb5f1155 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2942218 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1b680b772850bc830e20a05db0e5da9cb6069d37 +Author: Shahbaz Youssefi +Date: Wed Jun 2 22:04:45 2021 -0400 + + Reland "Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation" + + This is a reland of a474fd7de769ae817db83490d410510cdbed75b2 + + The integer clamp used in this transformation is not available in es100 + shaders, and float clamp is used instead. + + Original change's description: + > Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation + > + > This translator flag adds a clamp to non-literal indices to arrays. Two + > strategies were provisioned, using the clamp intrinsic or a hand-written + > function. The latter is ununsed in angle, chromium, firefox and + > webkit, so this change removes this option and uses the clamp intrinsic + > unconditionally. + > + > The clamp itself was added at output generation time with special flags + > set on the index node. This is changed such that a proper AST + > transformation is done and no-special handling would be necessary. + > + > Bug: angleproject:4361 + > Bug: angleproject:4889 + > Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 + > Reviewed-by: Jonah Ryan-Davis + > Commit-Queue: Shahbaz Youssefi + + Bug: angleproject:4361 + Bug: angleproject:4889 + Change-Id: I9397ec7e6bdfb706c2a891b33fd3b2b79e883ccc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940902 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jonah Ryan-Davis + +commit 26a54260780773a8b5dc3998822d2ab2e27653e1 +Author: Mohan Maiya +Date: Wed May 26 16:53:29 2021 -0500 + + Reland "Vulkan: Handle immutable sampler state change in TextureVk" + + This is a reland of 349c08300e08bc809c448d62e0ad969ecb17c047 + Skip YUV tests on Pixel2 + + Original change's description: + > Vulkan: Handle immutable sampler state change in TextureVk + > + > Transitioning between sources in RGB and YUV colorspace or between + > YUV formats with different layout should force the recreation of + > pipeline layout and the invalidation of texture's sampler. + > + > Only textures that are EGLImage targets are handled for now. + > + > Bug: b/155487768 + > Bug: angleproject:5033 + > Bug: angleproject:5773 + > Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan + > Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Mohan Maiya + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Change-Id: Ie3791bc6f6e9b53eb0db23759a14fdc038c8f5b6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939354 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Shahbaz Youssefi + +commit 03d8e7c9ea514f2b24525194ccfc7969afe94e42 +Author: Sunny Sachanandani +Date: Fri Jun 4 21:22:52 2021 +0000 + + Revert "Vulkan: Handle immutable sampler state change in TextureVk" + + This reverts commit 349c08300e08bc809c448d62e0ad969ecb17c047. + + Reason for revert: anglebug.com/6028 + + Original change's description: + > Vulkan: Handle immutable sampler state change in TextureVk + > + > Transitioning between sources in RGB and YUV colorspace or between + > YUV formats with different layout should force the recreation of + > pipeline layout and the invalidation of texture's sampler. + > + > Only textures that are EGLImage targets are handled for now. + > + > Bug: b/155487768 + > Bug: angleproject:5033 + > Bug: angleproject:5773 + > Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan + > Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Mohan Maiya + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Bug: angleproject:6028 + Change-Id: Ib8b3b54ff61f26910df2af4a6b894b3d2d5906bb + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941547 + Bot-Commit: Rubber Stamper + Commit-Queue: Sunny Sachanandani + +commit 046f70a324c2ce65f91e27c4e66aca93da9ec20d +Author: Jamie Madill +Date: Fri Jun 4 15:40:16 2021 +0000 + + Revert "Remove unused code from ValidateES2CopyTexImageParameters" + + This reverts commit fcd7affb6bfd9e17d6c12e836158f8f0fc634b14. + + Reason for revert: Differences in format checks make the validation + logic trip a newly added ASSERT. + + Bug: chromium:1216276 + + Original change's description: + > Remove unused code from ValidateES2CopyTexImageParameters + > + > Compressed formats are rejected earlier with + > ValidateCopyTexImageParametersBase + > + > Bug: angleproject:5731 + > Change-Id: I7809140af84f2c565008e211adf0f998a0e57e91 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2741580 + > Commit-Queue: Alexey Knyazev + > Reviewed-by: Jamie Madill + > Reviewed-by: Geoff Lang + + Bug: angleproject:5731 + Change-Id: I7734d9bce538e5679c8ee672f547941f5f693261 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940904 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit f4a99172acd7aaeb7e6805f4d4b9c3114f32fbc8 +Author: angle-autoroll +Date: Fri Jun 4 12:58:12 2021 +0000 + + Roll VK-GL-CTS from c25238228ea4 to d17a353c6cd4 (2 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c25238228ea4..d17a353c6cd4 + + 2021-06-04 ilkka.saarelainen@siru.fi Fix validation errors in ASTC decode mode tests + 2021-06-03 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com + Change-Id: I984dfddbe70364dcf5f29de4400d433dcc5f0e04 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939489 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 8664fbc0fb4608f7d034b3fb0eeecd8c34516c43 +Author: angle-autoroll +Date: Fri Jun 4 10:01:50 2021 +0000 + + Roll SwiftShader from c1e4abc1bcfe to efe254de5d88 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c1e4abc1bcfe..efe254de5d88 + + 2021-06-03 capn@google.com Remove git submodules before rolling into Android + 2021-06-03 capn@google.com Value-initialize all vk::GraphicsState members + 2021-06-03 capn@google.com Explicitly initialize VkSpecializationInfo fields + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I61ff709fb9b6af056fbb6d9360dfff0f7746fd71 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939587 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 397b078b568661b0961a809861f878fcba3bb727 +Author: angle-autoroll +Date: Fri Jun 4 10:01:07 2021 +0000 + + Roll vulkan-deps from c245c9a0bac1 to 7fd6569e6ad3 (7 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/c245c9a0bac1..7fd6569e6ad3 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/585fc6f3cb..2e1b5fb39e + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/26cdce984f..6d5c5677e1 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/6149e30699..3ae088978f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/779c8f1048..34ee418b3a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ia9b060ffd57c55a7e3166885080ce3e867832c10 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939488 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a14a806c7672753e79a43718d39b4817af2dcc98 +Author: angle-autoroll +Date: Fri Jun 4 07:00:43 2021 +0000 + + Roll Chromium from b078d3ef5de8 to 5ffd2ab3bece (403 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b078d3ef5de8..5ffd2ab3bece + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/20ee3d5c60..bf4ecd926c + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/cd7b8c0c22..eb65cc3594 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b97a23bcf3..f39abc2692 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/bb99706b87..baaf1482ba + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..712eb08096 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/c8f63d390c..9705687c25 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/19eadef5e7..af7a363dfe + * tools/luci-go: git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e..git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0 + * tools/luci-go: git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e..git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0 + * tools/luci-go: git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e..git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0 + * tools/skia_goldctl/linux: SIbSqtgKfmhBASeojfVyHGkIx2ZItagJYLeJt9yef1oC..fVbmAq5SyEKlNV_cPvOrlJbBRmDAWApv309sIMdbgq8C + * tools/skia_goldctl/mac: WB42GE3e_7-dR5RnBBCICQtMkfpOoJvlT9tMG_6Fj1UC..SGAjTHEDDOpAgPQYJcSEmMh4E6afvlKQKzBjwSTf5dwC + * tools/skia_goldctl/win: BL1QYX6LBgah6_XEB3KHs9jZiFQtq2z8PUZRswCFvN8C..hySBvc3hf9NRFmfS2oG52F9ZzLpvX9bFuyybtZ92CNAC + Clang version changed llvmorg-13-init-10392-gd3676d4b:llvmorg-13-init-11649-g4d788fb8 + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/19eadef5e7825c6a90cb19c601ca26f889502856..af7a363dfec994581ed076c5023f110e079459f9/scripts/update.py + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I21b2bbea54c6f43c1c7c7ab540af8eee345d7c41 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939486 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit fafd64a62e5bf33e4ac4e85e71d3896527f8e957 +Author: Shahbaz Youssefi +Date: Tue Jun 1 17:08:07 2021 -0400 + + Vulkan: SPIR-V Gen: Matrix decorations + + Matrices in blocks require MatrixStride and one of ColMajor or RowMajor + decorations. + + Bug: angleproject:4889 + Change-Id: I14ddb32fd3dbc977bf41703b016dc6d1c0722475 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930368 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 349c08300e08bc809c448d62e0ad969ecb17c047 +Author: Mohan Maiya +Date: Wed May 26 16:53:29 2021 -0500 + + Vulkan: Handle immutable sampler state change in TextureVk + + Transitioning between sources in RGB and YUV colorspace or between + YUV formats with different layout should force the recreation of + pipeline layout and the invalidation of texture's sampler. + + Only textures that are EGLImage targets are handled for now. + + Bug: b/155487768 + Bug: angleproject:5033 + Bug: angleproject:5773 + Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan + Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Mohan Maiya + +commit 135d14838a47b9a54d47fe5bc90949685a0a752e +Author: Cody Northrop +Date: Thu Jun 3 13:24:16 2021 -0600 + + Tests: Skip flaky capture_replay_tests + + Several VulkanExternalImageTest* tests are timing out locally, + but not consistently. + + Bug: angleproject:5721 + Change-Id: Iffb6d319bb31206af3287a70259a47857b64f434 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937736 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 683064b72855f75fc71dbf4ea0b81f49aceac004 +Author: Shahbaz Youssefi +Date: Wed Jun 2 02:59:55 2021 -0400 + + Vulkan: Fix missing operand list in OpExecutionMode parser & builder + + Bug: angleproject:4889 + Change-Id: Ie864031caeddfcf5202044b0f9c197b3883ceaf7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934782 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 16b10a540d63441f8eebf4286a0370bf30cd2526 +Author: Jamie Madill +Date: Fri May 21 15:35:00 2021 +0000 + + Revert "Capture/Replay: Emit SetupReplay() late" + + This reverts commit 54ba6f0135715737a55f2dc4fc1cb86874fb98f9. + + Reason for revert: breaks MEC. + + Bug: angleproject:5999 + + Original change's description: + > Capture/Replay: Emit SetupReplay() late + > + > Only emit SetupReplay() after all captured frames have been run, + > so that InitializeReplay() is called with values of + > readBufferSize and the maxClientArraySize that are sufficiently + > large for all frames. + > + > Bug: angleproject:5965 + > Bug: angleproject:5895 + > Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486 + > Commit-Queue: Gert Wollny + > Reviewed-by: Jamie Madill + > Reviewed-by: Cody Northrop + + Bug: angleproject:5965 + Bug: angleproject:5895 + Change-Id: Ia901183b2052fa2b4552ad2e09818a2894fbdf6b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911878 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + Commit-Queue: Cody Northrop + +commit 9ba86e0657eb085f2a67a6890bcf05774b2ba62c +Author: Cody Northrop +Date: Thu Jun 3 13:41:39 2021 -0600 + + Revert "FrameCapture: Write the frame cpp file even if frame is empty" + + This reverts commit 6619c464e5f6237d7465ec945d24164372aa4196. + + Reason for revert: breaks MEC. + + Bug: angleproject:5999 + + Original change's description: + > FrameCapture: Write the frame cpp file even if frame is empty + > + > The index file will add a reference to this file, and the replay will + > also expect that the frame execution function and the context function + > exist, so write the file even if the frame is empty + > + > Bug: angleproject:5939 + > Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581 + > Commit-Queue: Gert Wollny + > Reviewed-by: Cody Northrop + > Reviewed-by: Jamie Madill + + Bug: angleproject:5939 + Change-Id: I759d44ba847c69faf1caf97a9818836d1be3b058 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937737 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit cf853b30a5091ce984d08149b852d069af787d20 +Author: Jamie Madill +Date: Thu Jun 3 13:54:44 2021 -0400 + + Add missing buffer validation to BeginTransformFeedback. + + A change to Vulkan exposed this missing validation. In the Vulkan + back-end we do some caching on BeginXFB, which would perform an + invalid memory access. Adding the missing validation correctly + traps the error before we reach the back-end. + + Bug: chromium:1171685 + Bug: angleproject:4622 + Change-Id: I5c92575a07149e431c4f260a4555ff196822c64e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937022 + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 05d5e0d3a32bd33dcdaa67862cdebf37205a1960 +Author: angle-autoroll +Date: Thu Jun 3 09:34:12 2021 +0000 + + Roll VK-GL-CTS from 2e0ecf9812ba to c25238228ea4 (11 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/2e0ecf9812ba..c25238228ea4 + + 2021-06-03 jari.komppa@siru.fi Static code analysis fix for bounding box test + 2021-06-03 jari.komppa@siru.fi Add timer query handle reuse test for opengl es + 2021-06-03 boris.zanin@mobica.com Invalid VkPipelineRasterizationLineStateCreateInfoEXT chained + 2021-06-03 mika.vainola@siru.fi Fix vertex count calculation in XFB query tests + 2021-06-03 pdaniell@nvidia.com Set the recursion depth for chit and miss cases + 2021-06-03 siglesias@igalia.com Add depth-stencil tests that do vkCmdCopyImage() with both image aspects + 2021-06-03 marcin.zajac@mobica.com Test for fragment shading rate in FragCoord.zw + 2021-06-03 siglesias@igalia.com Add tests for vkCmdCopyQueryPoolResults and pipeline statistics + 2021-06-02 alexander.galazin@arm.com Update glslang, SPIR-V Tools/Headers + 2021-06-02 zzyiwei@chromium.org Check return code for vkGetAndroidHardwareBufferPropertiesANDROID + 2021-06-02 venni.ihanakangas@siru.fi Add script for comparing dEQP SwiftShader runs + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com + Change-Id: I664cd69b0e4a594077d193fa4f81c47b8812f2c6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934721 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit c2ad5824e3fd4baa55ac0eb34d181bda07f852ab +Author: Shahbaz Youssefi +Date: Mon May 31 12:20:27 2021 -0400 + + Vulkan: SPIR-V Gen: Code blocks + + This change lays the foundation for implementing branches and loops. In + SPIR-V, every block starts with an OpLabel (which identifies the block + and serves as the branch target to that block), and ends in a branch. + An `if` for example implies the existence of four blocks, the header + including code leading up to the if, the true and false blocks and the + "merge" block, including the code following the if-else blocks. + + This change includes support code for generating function code split in + blocks, even though only one block is currently used. + + Bug: angleproject:4889 + Change-Id: I10f96b78b6f00c20bc7f9c81e854ab5543bf8fde + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929659 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit bc9d5223048e937048e4137d0e976d1de0eff9d9 +Author: Jamie Madill +Date: Wed Jun 2 18:19:08 2021 +0000 + + Experimental fix for stdout freopen race. + + Bug: chromium:1213184 + Change-Id: I2e2741f4100b2a5516210f2250dc82511fafd05b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2933602 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit 10f15011da42241e7053bd8a9d95d3a876faf75d +Author: Yuly Novikov +Date: Thu Jun 3 19:22:53 2021 +0000 + + Revert "Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation" + + This reverts commit a474fd7de769ae817db83490d410510cdbed75b2. + + Reason for revert: breaks GLES2ConformTest, see roll into Chromium: + https://chromium-review.googlesource.com/c/chromium/src/+/2935093 + + Original change's description: + > Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation + > + > This translator flag adds a clamp to non-literal indices to arrays. Two + > strategies were provisioned, using the clamp intrinsic or a hand-written + > function. The latter is ununsed in angle, chromium, firefox and + > webkit, so this change removes this option and uses the clamp intrinsic + > unconditionally. + > + > The clamp itself was added at output generation time with special flags + > set on the index node. This is changed such that a proper AST + > transformation is done and no-special handling would be necessary. + > + > Bug: angleproject:4361 + > Bug: angleproject:4889 + > Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 + > Reviewed-by: Jonah Ryan-Davis + > Commit-Queue: Shahbaz Youssefi + + Bug: angleproject:4361 + Bug: angleproject:4889 + Change-Id: I911cfe0199b04dbc3d6d4265775b6c2de00a9777 + No-Presubmit: true + No-Tree-Checks: true + No-Try: true + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937024 + Bot-Commit: Rubber Stamper + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 9193a909d377e3eb8c5555984cde5b65ffcc8ce9 +Author: Cody Northrop +Date: Wed May 26 15:07:54 2021 -0600 + + Tests: Add Genshin Impact trace + + Test: angle_perftests --gtest_filter="*genshin_impact*" + Bug: b/181794064 + Bug: angleproject:6023 + Bug: angleproject:6024 + Change-Id: Ic0debb1e284d672b8ab179ac24cd711c9e5d7e9d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921069 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten + +commit a474fd7de769ae817db83490d410510cdbed75b2 +Author: Shahbaz Youssefi +Date: Wed Jun 2 22:04:45 2021 -0400 + + Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation + + This translator flag adds a clamp to non-literal indices to arrays. Two + strategies were provisioned, using the clamp intrinsic or a hand-written + function. The latter is ununsed in angle, chromium, firefox and + webkit, so this change removes this option and uses the clamp intrinsic + unconditionally. + + The clamp itself was added at output generation time with special flags + set on the index node. This is changed such that a proper AST + transformation is done and no-special handling would be necessary. + + Bug: angleproject:4361 + Bug: angleproject:4889 + Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Shahbaz Youssefi + +commit 8c51ac2b5fdf5f4b7868d06550973853479841c4 +Author: Jamie Madill +Date: Wed Jun 2 19:50:46 2021 +0000 + + Gold Tests: Fix sharding + batching. + + Clearing the GTEST args from the env vars will run the proper subset + of tests instead of applying sharding arguments twice. This should + fix the tests on the bots running a small subset of the tests. + + Also updates logging control for the script. + + Bug: angleproject:5966 + Change-Id: Ic8a21e6aacfed17eff836d4301a6a50464b2cb92 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935196 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit fec39fa1fc5985d07d6ae5fb39121b695d553488 +Author: angle-autoroll +Date: Thu Jun 3 10:01:50 2021 +0000 + + Roll SwiftShader from 90c0551ca547 to c1e4abc1bcfe (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/90c0551ca547..c1e4abc1bcfe + + 2021-06-02 srisser@google.com Make clang-format-all.sh only look at source files + 2021-06-02 srisser@google.com Pass unclamped fragcoord.z to shader + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I9e2c4bf7686d18532dce06cc73b6904e8da2160e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935069 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9bee108553ca53fff1142671457c2b5f16db9413 +Author: angle-autoroll +Date: Thu Jun 3 10:01:08 2021 +0000 + + Roll vulkan-deps from 682cfc04ad59 to c245c9a0bac1 (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/682cfc04ad59..c245c9a0bac1 + + Changed dependencies: + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/a6ce49ca24..585fc6f3cb + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/8b3dc6bbed..26cdce984f + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/5d97074c3a..779c8f1048 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie22f11af37aa2d96cb090a66c5fcb81996b0c127 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2936327 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit d28d2b0e3f63dbdfc6794a48c150f6a9c27889d3 +Author: angle-autoroll +Date: Thu Jun 3 07:00:04 2021 +0000 + + Roll Chromium from 1413aecd34bf to b078d3ef5de8 (417 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/1413aecd34bf..b078d3ef5de8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/e49989e141..20ee3d5c60 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/da3e6cbc62..7e3b76855b + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f19fe5f36c..b97a23bcf3 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/c422ce7b84..bb99706b87 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ec690bb8de + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/cd3696cf7e..c8f63d390c + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/d663c27435..19eadef5e7 + * tools/luci-go: git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f..git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e + * tools/luci-go: git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f..git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e + * tools/luci-go: git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f..git_revision:3e796d36914b6ddf5311374284e3ffa06c24fc7e + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/26afa3ac97..42ddcb0299 + * tools/skia_goldctl/linux: 8A8GVNDvQNly-61PpEBfFpqpG9cscGA9DrHNNoc8tSQC..SIbSqtgKfmhBASeojfVyHGkIx2ZItagJYLeJt9yef1oC + * tools/skia_goldctl/mac: iqXjvpHQMsiYHTsmCxuGGRSb6zp776WuTrwp1k9p_A4C..WB42GE3e_7-dR5RnBBCICQtMkfpOoJvlT9tMG_6Fj1UC + * tools/skia_goldctl/win: SufM9WryJm4lk56xFxO5xa0VKBqk-rQ7kcVCJl111ecC..BL1QYX6LBgah6_XEB3KHs9jZiFQtq2z8PUZRswCFvN8C + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I8abd7b3e0004b3410920b641a45e4aa1945bf422 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934720 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit be873929d707de54dd3d0fae31acdeea6ec8c8c2 +Author: Shahbaz Youssefi +Date: Wed May 26 21:55:50 2021 -0400 + + Vulkan: SPIR-V Gen: Handle constants and constructors + + This change translates constants and constructors (minus type + casting). With this change, shaders such as + + gl_Position = vec4(aposition, 0, 1); + + are translated correctly. + + Bug: angleproject:4889 + Change-Id: I4463717cf880c6d05db179b98691d5cabc1a2d7c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920192 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit c39e2a189a9de48e9f67cfec81b09082ba25cc6b +Author: Yuly Novikov +Date: Wed Jun 2 22:58:30 2021 -0400 + + Skip flaky end2end tests on Mac AMD OpenGL + + IndexBufferOffsetTestES3.UseAsUBOThenUpdateThenUInt8Index + IndexBufferOffsetTestES3.UseAsUBOThenUpdateThenUInt8IndexSmallUpdates + + Bug: angleproject:6025 + Change-Id: Ie1038b9a33d7870c8c1f03c5a88196463615c535 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935597 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit aa2626f966b37cbfb82ca8e9ec343c1933d671ba +Author: Shahbaz Youssefi +Date: Fri May 21 15:24:55 2021 -0400 + + Vulkan: SPIR-V Gen: Handle load/store access chain + + This change implements a key instruction of SPIR-V, OpAccessChain. + Inspired by glslang's implementation, a class is added (AccessChain) + that tracks "indices" into a base value. These indices could select a + field of a block, an element of an array, a column of a matrix, or a + component of a vector. Nuances (such as multi-component swizzle as an + lvalue not representable in SPIR-V) and optimizations (such as + all-literal indices to an rvalue) that are implemented in glslang have + also been implemented in this change. As a result, this change + implements all manners of loads and stores (with the exception of this + gotcha: https://github.com/KhronosGroup/glslang/issues/2637). + + The change uses this feature to translate the basic shader which does + `gl_Position = positionAttr;` (by implementing EOpAssign), and enables a + test that uses this shader. + + Bug: angleproject:4889 + Change-Id: I22dbe5b169ce499eaac657902164aca3b0ebc193 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911880 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 152450f821462018d595df2c5e8d1ee9a9e446d2 +Author: Ian Elliott +Date: Wed Jun 2 15:38:35 2021 -0600 + + Fix ContextVk::handleNoopDrawEvent() for when no cmd buffer + + ContextVk::handleNoopDrawEvent() was created to handle no-op + glDraw*'s. However, it assumed/assert'd a valid + mRenderPassCommandBuffer. That is not always the case. + + Fix this by having handleDirtyEventLogImpl() check for a valid command + buffer. + + Bug: b/189967673 + Bug: b/184888395 + Change-Id: Ice7c5da842a6f41f27c24af8e858147d01be86bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935756 + Reviewed-by: Ian Elliott + Reviewed-by: Cody Northrop + Commit-Queue: Ian Elliott + +commit bcb678a5ed444d752eb2fb520891f0d59ce1a676 +Author: Shahbaz Youssefi +Date: Thu May 27 16:50:55 2021 -0400 + + Vulkan: Fix deferred clears vs 3D textures + + Two bugs are fixed in this change. + + One is that framebuffer attachments to 3D textures should not attempt to + defer clears. The clear staged for the 3D texture applies to all + slices, not just the slice the framebuffer is attached to (and that + would get cleared through deferred clears). + + Secondly, when clearing an attachment to a 3D texture, the clear must be + applied immediately through a render pass loadOp to affect only the + slice that's attached. This was already handled for layered + framebuffers where the clear was applied immediately if the 3D texture + render target had more layers than the framebuffer. The condition for + this is generalized to check whether the 3D texture has more slices + (regardless of whether the render target is layered or not). + + Test is based on one written by Austin Eng + + Bug: angleproject:5967 + Change-Id: I43cf5fc24673323eda8390021641e2238be6e375 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923785 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 778a4ed9767093b32abb70c37bbcfa478e6e10a2 +Author: Shahbaz Youssefi +Date: Tue Jun 1 22:51:24 2021 -0400 + + Re-enable atomic counter tests on Vulkan/Windows + + Since --bot-mode, the situation that prevented these tests from working + is no longer possible. + + Bug: angleproject:3738 + Change-Id: I9ef8af8ebd204cb490e3907ca621eb30bb829532 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2931757 + Reviewed-by: Yuly Novikov + Commit-Queue: Shahbaz Youssefi + +commit 6207b871a05b271447d00604cdea94ebce539aa2 +Author: Yuly Novikov +Date: Wed Jun 2 16:10:52 2021 -0400 + + Mark a dEQP.GLES31 test slow + + dEQP.GLES31/functional_ssbo_layout_random_all_shared_buffer_36 + + Bug: angleproject:6021 + Change-Id: Ic8c7a30c16ca8250abc964ea33268055f62ba1c4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935296 + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 71584e36365bfe007f26ddc88e941bf4c9c1bbeb +Author: Cody Northrop +Date: Thu May 27 11:50:47 2021 -0600 + + Tests: Disable trace compilation for MSVC and GCC + + New traces are hitting string literal limits with MSVC. Since we + don't use MSVC or GCC for trace development or testing, this CL + disables trace compilation for non-clang setups. + + Bug: b/181794064 + Bug: angleproject:6009 + Change-Id: I0377792a049153a5505ecda4346a3cec57c12e9e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922682 + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit d0dc22fd07e40beb5a771840a8a0d43134aa20c4 +Author: Jamie Madill +Date: Wed Jun 2 18:00:53 2021 +0000 + + Add support for triggering gold tests. + + This requires a specific service account and luci config. Also + includes a few other minor improvements to trigger.py. + + Bug: angleproject:5966 + Change-Id: I8f60b57cd7136fb4ffd4d6243fda9134ba5961fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2933600 + Reviewed-by: Brian Sheedy + Commit-Queue: Jamie Madill + +commit 41b817f3113091783fe66b965504c49c77a053b7 +Author: John Plate +Date: Mon May 31 17:38:43 2021 +0100 + + CL: Add buffer enqueue commands + + Add buffer enqueue commands to front end and pass-through back end. + + Bug: angleproject:6015 + Change-Id: I936530d31903e395550e4540339ebec2e6702e65 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928425 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit daf185949382c2e4c9d31449bbcc27e6b55f6248 +Author: John Plate +Date: Mon May 31 12:04:42 2021 +0100 + + CL: Refactor front end entry functions + + Move all front end functions that are only called from the OpenCL + entry points to a separate section at the top of the front end + object class bodies, which improves readability. + + Bug: angleproject:6001 + Change-Id: Id360adbf0c439e4068c379aa4ea1da25e99f7b53 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928419 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 3c1b02b5bfc022c0d43c49360edde7e695f03921 +Author: Cody Northrop +Date: Tue Jun 1 16:22:47 2021 -0600 + + Tests: Turn lineage_m on for Nvidia Linux + + The test is no longer failing. + + Test: angle_perftests --gtest_filter="*lineage_m*" + Bug: angleproject:5748 + Change-Id: Ic25471c1628d99b6e305c6b4ce6fa4b1e3558514 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930820 + Reviewed-by: Charlie Lao + Commit-Queue: Cody Northrop + +commit f7843da2cbfaae39c15e5678c3ba4e4c6a62b6ee +Author: Ian Elliott +Date: Thu May 27 16:41:51 2021 -0600 + + Create tests for GL_EXT_shader_framebuffer_fetch extension + + This CL refactors most of the existing tests for the + GL_EXT_shader_framebuffer_fetch_non_coherent extension, sharing shader + and test code with new tests for the coherent extension. + + Bug: b/188095445 + Change-Id: I23eac5dae9055f1c8f9eeb9c33429fd1091e68fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923323 + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Ian Elliott + +commit baca10b7f211ade4e3cb2131615e8fd76e1b061e +Author: John Plate +Date: Sat May 29 16:26:57 2021 +0100 + + CL: Remove object cache and fix multi-threading + + All CL front end objects used to be cached to be able to determine + if an object has been created by the front end to check its validity. + The validity is now checked with the existence of an intrinsic value + (the dispatch table pointer), which is consistent with the patterns + found in Mesa and clvk (though clvk uses a magic value). + This allows the removal of all cached objects. + + The cached objects were stored with std::unique_ptr. These are now + gone and all remaining pointers are now custom intrinsic reference + count pointers. + + Also remove global lock which causes deadlocks, e.g. when CL API + is called from a separate thread to unlock a blocking call with + a user event. Most of the front end is constant and already + thread-safe. The ref count is also thread-safe now (atomic). + A few remaining locks will follow. + Without the global lock it was now possible to make the API + reentrant, and to remove the workaround with the Khronos ICD + loader to skip ANGLE's OpenCL library. + + Bug: angleproject:6001 + Change-Id: I7d3b52db9011a02cb7ea9ebdeb6e22c4c702ef5b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927395 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 076974a96a32406fbc0124378ee424d1abe5a1a7 +Author: John Plate +Date: Fri May 28 11:44:54 2021 +0100 + + CL: event creation for front end & passthrough + + Add event object to back end and implement creation and info query. + + Bug: angleproject:6001 + Change-Id: Id4951b726b66afa289fafe1a716a7cfdb6f5826d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925477 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit d7aa0130910c611bc52c38044aa61b6f38deef91 +Author: Kyle Piddington +Date: Mon Apr 26 16:56:15 2021 -0700 + + Upstream Apple's direct-to-Metal backend: compile translator. + + This change is meant to merge the translator changes from Apple's + direct-to-Metal backend. Taken from Kyle Piddington's CL: + https://chromium-review.googlesource.com/c/angle/angle/+/2857366/ + The goal of this CL is to merge the translator code in a state that + compiles, but not to switch the Metal backend over to use this + translator backend yet. + + Bug: angleproject:5505 + Change-Id: I68a6354604498cd5fd1eb96c13fc56f3b38f2bd0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897536 + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jonah Ryan-Davis + +commit 9459456b09abc2e75c0c9a67e4b653273087e1eb +Author: John Plate +Date: Thu May 27 13:43:41 2021 +0100 + + CL: kernel creation for front end & passthrough + + Add kernel object to back end and implement creation and info query. + + Bug: angleproject:6001 + Change-Id: I6e3fdd2b35d7e73ed56144dc938bf21436d3559f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922150 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 4a697276eae0a99389cc2f163617f2952b0f3c05 +Author: angle-autoroll +Date: Wed Jun 2 10:01:07 2021 +0000 + + Roll vulkan-deps from 6be0134d13be to 682cfc04ad59 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/6be0134d13be..682cfc04ad59 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9646c733e9..8b3dc6bbed + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1dfbd17905..5d97074c3a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I8012bc0be17eec6d6452a8d37c237b2be144322c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2931783 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 51ab3dc34e72fa41290a65716ccd39555dc0f171 +Author: John Plate +Date: Tue May 25 16:54:11 2021 +0100 + + CL: Improve validation readablity + + Improve validation readablity by introducing a bit field class + and by changing how the CL error code is returned. + + Bug: angleproject:6001 + Change-Id: I51deb745454e5281de725481edef85eb30be28c7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919690 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit 4796e452812d7940df370c543f422ada67e48b87 +Author: angle-autoroll +Date: Wed Jun 2 07:20:22 2021 +0000 + + Roll Chromium from 9fc71f2e66f4 to 1413aecd34bf (475 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9fc71f2e66f4..1413aecd34bf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/2b0e673533..e49989e141 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/fba2905150..cd7b8c0c22 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/345bb3dfa9..f19fe5f36c + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..053e386fd4 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/0694fa65f8..cd3696cf7e + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/d0e636edaa..00ade15d94 + * tools/luci-go: git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab..git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f + * tools/luci-go: git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab..git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f + * tools/luci-go: git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab..git_revision:d8815e36ea7b66a4b8c9d69fcc2322012d25715f + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/0679044e60..26afa3ac97 + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie9b3751bc6417dbc067011175cdc36d57c170a27 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2932656 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c12f594a19b18231e5cdc5ccea09a52cdf52500c +Author: Geoff Lang +Date: Mon May 31 10:48:20 2021 -0400 + + GL: Chunk uploads of texture data >120kb on Mac. + + Mac drivers are hanging and crashing after large glTexSubImage uploads. + Chunk those uploads to avoid this problematic path in the driver. + + Bug: chromium:1181068 + Change-Id: I7dca0b8e49420f015ff7830283c14283a0515826 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928098 + Reviewed-by: Kenneth Russell + Reviewed-by: Geoff Lang + Commit-Queue: Geoff Lang + +commit 1e832ad69a72623afea692c17cdb918b7507c09e +Author: Cody Northrop +Date: Tue Jun 1 13:47:53 2021 -0600 + + Tests: Require cube_map_array for cookie_run_kingdom + + Tbr: jmadill@google.com + Bug: angleproject:6018 + Change-Id: Ie27b82b4716aaf5164c65e890cd2d6fad3f2b836 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930817 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit d40dd0bec8650be1695910f33e295bbf862f5bd8 +Author: angle-autoroll +Date: Tue Jun 1 18:25:50 2021 +0000 + + Roll SwiftShader from b46b97c10c10 to 90c0551ca547 (8 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/b46b97c10c10..90c0551ca547 + + 2021-05-31 capn@google.com Regres: Roll dEQP to 1.2.6-master revision 8010f59 + 2021-05-29 swiftshader.regress@gmail.com Regres: Update test lists @ 21f81124 + 2021-05-29 capn@google.com Regres: Use 'default' dEQP target and skip GLES daily tests + 2021-05-27 srisser@google.com Update git-hooks to latest revision + 2021-05-27 capn@google.com Marl: Suppress MemorySanitizer false-positive + 2021-05-27 srisser@google.com Bring git-hooks in as a submodule + 2021-05-27 capn@google.com Regres: Recursively load chunked mustpass lists + 2021-05-26 chonggu@google.com Update references for ANGLE submodule + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ie1d2d2873bb7e68697e622cd8c4cf0da71fb6e59 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929585 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6b8371096d87975a1afd39899db012a614244f49 +Author: Cody Northrop +Date: Mon May 31 22:23:08 2021 -0600 + + Tests: Add Subway Princess Runner trace + + Test: angle_perftests --gtest_filter="*subway_princess_runner*" + Tbr: jmadill@google.com,timvp@google.com + Bug: b/189794097 + Change-Id: I79ed00da91e0f304bf3899a0ab9ebfd2c1426739 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929460 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit c072daec5ffb06580e4bf45500a8b2d802d09ee2 +Author: Shahbaz Youssefi +Date: Wed May 26 14:26:28 2021 -0400 + + Add FastVector constructor with begin/end iterators + + Useful to construct a FastVector out of a subrange of another container. + + Bug: angleproject:4889 + Change-Id: I0e62b601c7d171167343d526d198fa21ba52f0f9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920191 + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit eeeeed394f84f96b0644cd10f484567884d604e1 +Author: Cody Northrop +Date: Mon May 31 20:48:29 2021 -0600 + + Tests: Add Cookie Run: Kingdom trace + + Test: angle_perftests --gtest_filter="*cookie_run_kingdom*" + Tbr: jmadill@google.com,timvp@google.com + Bug: b/189788024 + Bug: angleproject:6017 + Change-Id: I5cd9912d099d1749b5677cf43e25fe73ee38d17c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927509 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 6c328417207e7081af29536c1286e95bd5b108b0 +Author: angle-autoroll +Date: Tue Jun 1 10:01:15 2021 +0000 + + Roll vulkan-deps from f7463350a894 to 6be0134d13be (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/f7463350a894..6be0134d13be + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/ec1bc3e2e5..9646c733e9 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/daa3490ea4..6149e30699 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/4ce9838c23..1dfbd17905 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ic055298fe3c54f731a1711da04ef59455f19cf6e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929938 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 0aa58ecfd9bfb38e56f9ae006ccdf85adff1b215 +Author: angle-autoroll +Date: Tue Jun 1 07:00:54 2021 +0000 + + Roll Chromium from b1a19ff2a440 to 9fc71f2e66f4 (193 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b1a19ff2a440..9fc71f2e66f4 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/068753b025..2b0e673533 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/73587aa74e..345bb3dfa9 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..12d96cda9c + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ib61adfbbc6a5fc0cf840577c70fb86b70ec86533 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928905 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a44b16d39075af2ba64ac48457bd6f8f3b3aafeb +Author: Cody Northrop +Date: Wed May 26 09:35:56 2021 -0600 + + Capture/Replay: Force validation on when capturing + + Genshin Impact is using EGL_KHR_create_context_no_error to create a + context that exposes GL_KHR_no_error. If it successfully creates + the context, it sends down call sequences that check query + results available immediately after genning query objects: + + glGenQueries(1, reinterpret_cast(gReadBuffer)); + UpdateQueryID(415, 0); + glGetQueryObjectuiv(gQueryMap[415], GL_QUERY_RESULT_AVAILABLE, ...); + + This throws errors on every platform I have access to, with either + native or ANGLE as the driver. The spec is ambiguous as to whether + this should cause an error, but practically we can't allow this if we + want error free playback of traces. + + To support this, we will force validation on in the context when + FrameCapture is enabled. When the app submits invalid calls, they + will be dropped by FrameCapture. + + Test: Genshin Impact MEC + Bug: b/181794064 + Change-Id: If882d27d74661cd95bc23687eff3056a0f64e3cc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921068 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit fe93fcdd1b484ee460e6fcdd0e8dbb6624bbc751 +Author: Jonah Ryan-Davis +Date: Thu May 27 13:28:18 2021 -0400 + + Workaround Mesa 20 Intel driver bug with GLX_OML_sync_control + + Disable the use of this extension on Mesa 20/intel, it's causing GPU + hangs. + + Bug: chromium:1187475 + Change-Id: Ic7029b1f72bd0b0f4a2c11a7fceb0a59f51be8aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920811 + Reviewed-by: Jamie Madill + Commit-Queue: Jonah Ryan-Davis + +commit 96ab6566490495f472cd239997701b201c7a48ac +Author: angle-autoroll +Date: Mon May 31 10:01:15 2021 +0000 + + Roll vulkan-deps from 8ea5e4dc6455 to f7463350a894 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/8ea5e4dc6455..f7463350a894 + + Changed dependencies: + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/4e4619ae69..daa3490ea4 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8a22bcf6bf..4ce9838c23 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com + Change-Id: Ia8778eafd1e559e675a5c63a250b3fea82f0fc11 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927391 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit fa903c2c7b8aa182d077d080d3094befdcc813d2 +Author: angle-autoroll +Date: Mon May 31 10:33:13 2021 +0000 + + Roll VK-GL-CTS from a318ef0ca26e to 2e0ecf9812ba (1 revision) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/a318ef0ca26e..2e0ecf9812ba + + 2021-05-31 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC angle-bots+autoroll-info@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: angle-bots+autoroll-info@google.com,ynovikov@google.com + Change-Id: I45c8d8e40236690a0c94ee1c7e5b01aeca6cee5c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927393 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 0a26ff06bf7b0556da14cc64931688173ebba9fa +Author: angle-autoroll +Date: Mon May 31 08:54:54 2021 +0000 + + Roll Chromium from ed36a7408427 to b1a19ff2a440 (199 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/ed36a7408427..b1a19ff2a440 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/862b91b57a..068753b025 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0f50062689..73587aa74e + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..edf4e0e88f + No update to Clang. + + Bug: None + Tbr: ynovikov@google.com + Change-Id: I53f50543ea22403143f1f7c8a853f352a13303cb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927388 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 363d9cb6536886ca4e2e75bef58a32af2bc9bb0a +Author: angle-autoroll +Date: Mon May 31 07:30:13 2021 +0000 + + Roll VK-GL-CTS from dd333551c971 to a318ef0ca26e (1 revision) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/dd333551c971..a318ef0ca26e + + 2021-05-31 alexander.galazin@arm.com Merge pull request #258 from asimiklit/fix/arrayed-tests + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com + Change-Id: Id138f3c4f7a9d0c97bac4c27e99902a9bf41d65a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927387 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a9f26cc1ec7522ca959df592a35b3219f378aa43 +Author: angle-autoroll +Date: Sun May 30 09:59:13 2021 +0000 + + Roll VK-GL-CTS from ea6189a7a67e to dd333551c971 (11 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/ea6189a7a67e..dd333551c971 + + 2021-05-29 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-05-28 alexander.galazin@arm.com Update OpenGL mustpass + 2021-05-28 alexander.galazin@arm.com Add AOSP tests to the GL4.5 mustpass + 2021-05-28 rgarcia@igalia.com Check supportedAlpha is never zero + 2021-05-28 siglesias@igalia.com Do not clamp ambiguous snorms values on vkCmdCopy*() functions + 2021-05-28 juha.heiskanen@siru.fi Add writing to invalid multisample indices tests + 2021-05-27 lexa.knyazev@gmail.com Add GL_EXT_texture_sRGB_RG8 support + 2021-05-27 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-05-27 venni.ihanakangas@siru.fi Add permutations of different cases on existing test + 2021-05-27 siglesias@igalia.com Add multiple statistics query tests + 2021-05-27 rgarcia@igalia.com Use arrays of pointers with non-identity matrices + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC angle-bots+autoroll-info@google.com,jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: angle-bots+autoroll-info@google.com,jmadill@google.com + Change-Id: Id1c5be98d90c0d6013fb18955dd9c333f93055b4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2926637 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1429130ba31a3675978d7226744cc04729e31b89 +Author: Yuly Novikov +Date: Fri May 28 14:02:58 2021 -0400 + + Gold Tests: Fix batch result reporting + + Previously artifacts were not reset for a new trace in a batch + + Bug: angleproject:5966 + Change-Id: Ia6ed8c070eaaeca7e6cea887419666f630648df8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925218 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 45e1596c4efad5f11407a00c735848487069435b +Author: angle-autoroll +Date: Fri May 28 10:01:15 2021 +0000 + + Roll vulkan-deps from 012f2ef00731 to 8ea5e4dc6455 (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/012f2ef00731..8ea5e4dc6455 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/6fe560f74f..6bdcb4be34 + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/ff61890722..a6ce49ca24 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I49582b8058df2eed78cc73c3fc6a739ad0ad1772 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925140 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c14ffb981d47a38220a8883823ab4ebc91fb62a5 +Author: angle-autoroll +Date: Fri May 28 07:59:54 2021 +0000 + + Roll Chromium from 9e607ee51d46 to ed36a7408427 (195 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9e607ee51d46..ed36a7408427 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b5063cfbea..862b91b57a + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b014545e6c..0f50062689 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..dca1c9711a + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6fc394f93d..0694fa65f8 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4dfe812639..0679044e60 + No update to Clang. + + Bug: None + Tbr: jmadill@google.com + Change-Id: Id6add386fb8c1189bdb6e97cbc508af6dda1c623 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925139 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit ce7d80bd43eba819b9b895a80327cb5cade28b8a +Author: Yuly Novikov +Date: Thu May 27 18:16:07 2021 -0400 + + Gold Tests: Fix batch uploading + + Uploading to Gold used to stop after the first failure in the batch + + Bug: angleproject:5966 + Change-Id: Iff89c106b18a9aab5a43742a6085c5f9a3c9a188 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923784 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit b6bd039ccd64385d9e2a1daacd12b1248c6294db +Author: Charlie Lao +Date: Tue Oct 6 13:34:53 2020 -0700 + + Vulkan: Fine-grained depth stencil layout transition barrier + + Gfxbench Manhattan uses depth attachment as texture in the same render + pass, which creates a feedback loop. The layout we are using for this + has kAllShadersPipelineStageFlags even though it only used by fragment + shader. This creates an unnecessary vertex/fragment dependency that + hurts performance on some mobile GPUs. This CL split + DepthStencilReadOnly to DSAttachmentReadAndFragmentShaderRead, + DSAttachmentReadAndAllShadersRead, and DepthStencilAttachmentReadOnly, + so that if it is used by fragment shader, we only barrier against + fragment stage. If not used by any shader, we don't block any shader + stages. To make names consistent, this CL also renames + DepthStencilAttachmentAndFragmentShaderRead to + DSAttachmentWriteAndFragmentShaderRead, renames + DepthStencilAttachmentAndAllShadersRead to + DSAttachmentWriteAndAllShadersRead. + + Bug: b/169891513 + Change-Id: Iede497e8af028861f9166a32d122f26dc7aa864a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453599 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 5e631c5ff62a1c43081e9d49be916962b9dbdbb0 +Author: Charlie Lao +Date: Thu May 20 11:21:18 2021 -0700 + + Vulkan: Disable shadowBuffers feature + + For PixelUnpack, if the feature is enabled, it always create a shadow + CPU mapped memory. Then when mapBuffer is called, it let user write to + the shadow memory. At unmapBuffer time, it memcpy the shadow buffer data + to context's staging buffer and then issue a vkCmdCopyBuffer from + context staging buffer to the PixelUnpack buffer. This involves too + many data copies. The proper way to do it is simply make sure to create + the buffer as CPU map-able and let user directly write to it. If we find + cases that CPU waiting for GPU to finish is causing performance issues, + there are two ways to improve/fix it: 1)Add event at end of each + renderpass or FBO so that we know if GPU access is finished or not + without have to wait for entire frame to finish rendering. 2) Create + multiple buffers and ping-pong between them, at least there will be no + VkCmdCopyBuffer call involved like shadow buffers do. But we will leave + that to future time when we find such need. + + Bug: angleproject:5986 + Change-Id: Ib8300e46e779d20533c1f7f81624de0ce003788b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909758 + Commit-Queue: Charlie Lao + Reviewed-by: Tim Van Patten + Reviewed-by: Shahbaz Youssefi + +commit 05baaa37afda9086148b472ea33db6b21438a640 +Author: angle-autoroll +Date: Thu May 27 19:31:44 2021 +0000 + + Roll Chromium from b6af002ef64a to 9e607ee51d46 (637 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b6af002ef64a..9e607ee51d46 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com,ynovikov@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/74f9de2dfa..b5063cfbea + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/256e043811..b014545e6c + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/4c713c1163..7949d87093 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/46f611a284..c422ce7b84 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e83a92e7b8 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/72bc20ef29..6fc394f93d + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/e4c7c48174..d0e636edaa + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/31bd71668d..4dfe812639 + No update to Clang. + + Bug: None + Tbr: jmadill@google.com,ynovikov@google.com + Change-Id: I0008f18e7c0a0e2240947db223e3961ae6218a47 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923322 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 84c42d1bc317faa872c191f3784cfa26b92d4d73 +Author: Alexis Hetu +Date: Wed May 26 12:30:10 2021 -0400 + + Mute MSAN false positive + + MSAN currently detects false positives on global/static + thread_local variables which are created at library load + time. This CL mutes the false positive in order to unblock + running blink_web_tests with SwANGLE on MSAN bots. + + Bug: chromium:1211047 + Change-Id: I7cd103d470177d783df7f73ca6ceeedc0774b163 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920486 + Commit-Queue: Alexis Hétu + Reviewed-by: Geoff Lang + +commit de7f559eacf2caf7a36794ab4c3daef1d1af72ca +Author: Yuly Novikov +Date: Thu May 27 16:33:13 2021 -0400 + + Suppress new KHR-GLES32 test on Pixel 2 + + Added in crrev.com/c/2921449 + + Bug: angleproject:6008, chromium:1214047 + Change-Id: Icb42e438fc87271d1c5abbe2201d6c2bf597a4e4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923782 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit d151af7b0b7d4fa3e9d45f614ea177d8c174020e +Author: Charlie Lao +Date: Thu May 20 10:52:46 2021 -0700 + + Vulkan: Improve generateMipmapsWithBlit barrier usage + + ImageHelper::generateMipmapsWithBlit() implements glGenerateMipmap using + vkCmdBlitImage. For each level it changes layout to + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL and issue a blit. In order to keep + all mipmap levels' layout consistent, it issues a vkCmdPipelineBarrier + call for the the very last mipmap level to change it to + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL as well. This creates an + unnecessary barrier for the next operation, that now it sees a barrier + against transfer stage. This CL changes all levels to + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL so that the whole image will + have consistent layout. After glGenerateMipmap call, the next reasonable + usage is use it in fragment shader, so the barrier is not wasted. + + Bug: angleproject:5986 + Change-Id: I3690ae8417d97bc504fcf036d016f289e6370526 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909757 + Commit-Queue: Charlie Lao + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + +commit 2622c7b049cd394eca9b12edddfb0bbe8c110475 +Author: Jamie Madill +Date: Wed May 26 20:11:13 2021 +0000 + + Roll VK-GL-CTS from 8010f59c7034 to ea6189a7a67e (4 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/8010f59c7034..ea6189a7a67e + + 2021-05-26 mikko.tiusanen@siru.fi Remove empty subtest + 2021-05-26 mikko.tiusanen@siru.fi Lower vector constructor test shader version + 2021-05-26 mikko.tiusanen@siru.fi Test framebuffer completeness when layered rendering + 2021-05-26 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC jmadill@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: angleproject:6008 + Change-Id: I580ddda1ac7fa4614fcf00b834f51b9dc725392c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921449 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit a29a64a64e5e86af6346c8d7b85e635ebc39b298 +Author: Cody Northrop +Date: Wed May 26 09:34:52 2021 -0600 + + Capture/Replay: Skip GLGetActiveUniformsiv + + Test: Genshin Impact MEC + Bug: b/181794064 + Change-Id: Ib0edfa8d1c063d43c34a65be0144bc5efc4cf19b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921067 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 5ee4a0cb7cdbc35699ef8ac4e81aa47dc890c14f +Author: Cody Northrop +Date: Tue May 25 14:15:14 2021 -0600 + + Capture/Replay: Support GetUniformIndices + + Test: Genshin Impact MEC + Bug: b/181794064 + Change-Id: I69e2c78678b8e279478ae946131b7e1730070cb0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921066 + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit fd262fdc19e2a1032e774629114ec47dfa36a41a +Author: Cody Northrop +Date: Wed May 26 18:10:29 2021 -0600 + + Tests: Update capture_replay_test expectations + + Bug: angleproject:6006 + Change-Id: I56d21a9d9df343fbf805c10307265cab929914c0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920087 + Commit-Queue: Jamie Madill + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit b184c64f8ae09a8b0da748925f1bec1d9bc57df9 +Author: angle-autoroll +Date: Thu May 27 10:01:16 2021 +0000 + + Roll vulkan-deps from 89ab6280369d to 012f2ef00731 (4 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/89ab6280369d..012f2ef00731 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/00ce2bb474..ec1bc3e2e5 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/5274701761..8a22bcf6bf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I5b6edf04e95609beefe3aa8e9b632c307bf00180 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920090 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 163f6ac055f4840a66696aaee70b4f02f9886d0e +Author: Jamie Madill +Date: Wed May 26 10:57:18 2021 -0400 + + Gold Tests: Add batching. + + This should speed up test runs on Android, which are currently much + slower than the other platforms. + + Bug: angleproject:5966 + Change-Id: I57890522b64d1d195ea0be56b4f68b6d54192d64 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919888 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 565bba3d7c34958940488aab14e98d54bf9cd65d +Author: Kenneth Russell +Date: Wed May 26 17:58:18 2021 +0000 + + Revert "GL: Skip redundant flushes." + + This reverts commit 7a38f3f50f3bb2f747ad3731d307f6af4c0552d2. + + Reason for revert: caused numerous test failures on FYI waterfall per http://crbug.com/1213507 . + + Original change's description: + > GL: Skip redundant flushes. + > + > Skip flushes when there is no work submitted since the last + > flush. + > + > Clone of geofflang's: + > https://chromium-review.googlesource.com/2911879 + > + > Bug: chromium:1181068 + > Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675 + > Commit-Queue: Geoff Lang + > Reviewed-by: Geoff Lang + + Bug: chromium:1181068 + Bug: chromium:1213507 + No-Try: True + Change-Id: Icd1662e4ea541375b44bddaa839a5241cdad5302 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919503 + Commit-Queue: Kenneth Russell + Bot-Commit: Rubber Stamper + Reviewed-by: Geoff Lang + +commit 17c45b65356d8ca109d87976ecc340305ecf266c +Author: Jamie Madill +Date: Tue May 25 10:06:47 2021 -0400 + + infra: Shard restricted_trace_gold_tests. + + Reduces shard time from 50+ min to <10 min per shard. + + Bug: angleproject:5966 + Change-Id: Ia230d71a66ac9a273a10e0389cc04d8c5737bc4a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915566 + Commit-Queue: Jamie Madill + Reviewed-by: Yuly Novikov + +commit 814dc2994c137154237a663d9ed1424fb23399eb +Author: Jonah Ryan-Davis +Date: Tue May 25 12:38:47 2021 -0400 + + Add nullptr check for pfnGetPhysicalDeviceProperties + + This function may be called without checking the pointer. + Speculative fix for a crash in GetSystemInfoVulkan. + + Bug: chromium:1211839 + Change-Id: Ia7fa55fc328d02bdcd6d48e9b93f552aaea2b284 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917353 + Reviewed-by: Geoff Lang + Commit-Queue: Jonah Ryan-Davis + +commit f410e81a550f847c67d9069f743ebd696401f8cb +Author: Geoff Lang +Date: Tue Apr 20 14:26:54 2021 -0400 + + GL: Implement multisampled_render_to_texture + + Bug: angleproject:2894, angleproject:5988 + Change-Id: I17b55f0655d32d9f41cb55a0467b93a00fba751b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2841084 + Commit-Queue: Geoff Lang + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit f97b81938bf9f15d2f568141aa8269e89e94b919 +Author: Geoff Lang +Date: Wed May 12 12:28:57 2021 -0400 + + Make ANGLE's program hash key deterministic. + + ANGLE's program hash iterates over hash maps which do not guarantee + a determinisitic iteration order. Copy these maps to std::map before + iteration. + + It's unclear what must change to make these maps iterate differently, + EGLBlobCacheTest.Functional does cover this path but doesn't trigger + any issues. + + Bug: angleproject:5913 + Change-Id: Ib5f2c0a0a4e05cbaeeec5d9c889718d53c5fcf1c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892254 + Reviewed-by: Sunny Sun + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Commit-Queue: Geoff Lang + +commit cf24370562389fc1ce1ec95f2498c68b6496472c +Author: Jamie Madill +Date: Tue May 25 09:40:39 2021 -0400 + + infra: Remove Pixel 2 (android_vk) tests from CQ. + + These tests are now fully running on the Pixel 4. + + Bug: angleproject:5941 + Change-Id: Ic0bb094c917226867c3b34ede19986e95ce69b7f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915565 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 1aa883985396f096bdde61f8c0ab5ca9ef8cabe5 +Author: John Plate +Date: Mon May 24 14:19:05 2021 +0100 + + CL: program object creation for front end and pass-through + + Add program object to back end and implement creation and info query. + + Bug: angleproject:6001 + Change-Id: If94db8ab8b491e1ac21c767347cabb6f4f3b3cba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912465 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit a8d98fcf224e1fad173c8145e4d3d3a5d927e3e2 +Author: angle-autoroll +Date: Wed May 26 10:01:15 2021 +0000 + + Roll vulkan-deps from cca33b4d0510 to 89ab6280369d (2 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/cca33b4d0510..89ab6280369d + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/91931ffcd2..00ce2bb474 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I3fecbbff87b8b7af249bff39f38c8f6d6afffb7f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919169 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 91885151cf74aa2baddb4bd840243de877008baf +Author: angle-autoroll +Date: Wed May 26 09:11:54 2021 +0000 + + Roll Chromium from 594a967a8bf8 to b6af002ef64a (448 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/594a967a8bf8..b6af002ef64a + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/195185a687..74f9de2dfa + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/8b015a7982..da3e6cbc62 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0519f53328..256e043811 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6d73014a65 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/7fc02e848a..72bc20ef29 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/2865d44621..e4c7c48174 + * tools/luci-go: git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed..git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab + * tools/luci-go: git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed..git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab + * tools/luci-go: git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed..git_revision:03ab00ce4982877f2d4a0b0db48cd355e5ca65ab + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/fd0742eeef..31bd71668d + No update to Clang. + + Bug: None + Tbr: jmadill@google.com + Change-Id: I99660d59703eb5917ebc5a8288c2274d7c6de3b5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919168 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit a280c671f178daf73da447d1030773b58b534998 +Author: Charlie Lao +Date: Mon May 24 19:05:44 2021 -0700 + + Vulkan: Move framebuffer dirty bits handling after texture + + When texture changes, it notify the observer. Framebuffer object is one + of the observer and is able to respond to the changes in texture object. + In this specific case, when texture called TextureVk::releaseImage and + requires framebuffer object to syncState and call + TextureVk::initRenderTargets. The problem right now is that framebuffer + object's dirty bits are processed before texture, which means if the + texture is being used by currently bound framebuffer object, it will not + trigger the FBO's dirty bit handling. This CL moves container object + dirty bit (DIRTY_OBJECT_DRAW_FRAMEBUFFER and + DIRTY_OBJECT_READ_FRAMEBUFFER) after texture/image object's dirty bits. + + Bug: chromium:1212206 + Bug: chromium:1197431 + Change-Id: I95723da1ce5b8936d66692242f2e25e7a73bafe6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915764 + Commit-Queue: Charlie Lao + Reviewed-by: Ian Elliott + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit ecf2956d93a06b45495fcf0409fc9b4477ff97aa +Author: Charlie Lao +Date: Mon May 24 10:57:40 2021 -0700 + + Vulkan: Convert web_gl.fuzz545ImmutableTexRenderFeedback to gl_test + + Bug: chromium:1212206 + Change-Id: I4b87906a9e877da12d64e39bfe54b9b7cec409a9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912928 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Charlie Lao + +commit e3dd7161644b8397ed77f5b45f9b667ad9eaf195 +Author: John Plate +Date: Mon May 24 12:47:38 2021 +0100 + + CL: sampler object creation for front end and pass-through + + Add sampler object to back end and implement creation and info query. + + Bug: angleproject:6001 + Change-Id: If5b7d09564d773d6aeda7612728e19bfec7f6155 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912806 + Commit-Queue: John Plate + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 7761ed1d5513279080d37c0f87d92fe132dd7fb8 +Author: Shahbaz Youssefi +Date: Tue May 11 22:55:15 2021 -0400 + + Add test for Vulkan crash with texture MAX_LEVEL change + + Bug: chromium:1197431 + Change-Id: I05fba78b32a7c5d5f1da0435084f96c510b15ed5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889600 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Kenneth Russell + Reviewed-by: Jamie Madill + +commit 2a0ca0fe9a06f7dd3a2d77a1d57dd00f169f25eb +Author: Brandon Schade +Date: Tue May 25 10:53:52 2021 -0700 + + Vulkan: Clean up GS deqp expectations + + Bug: angleproject:5579 + Test: KHR-GLES32.core.geometry_shader.layered_rendering.layered_rendering + Change-Id: I84a2487a80334b51e7200833ec05fe7d3b773c90 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917815 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit a6210a8fb1e156c25889f0bd96d59d1ad13ba032 +Author: John Plate +Date: Sun May 23 19:02:46 2021 +0100 + + CL: image object creation for front end and pass-through + + Add image object to front end and implement creation and info query. + Cache more Device info for Image validation. + + Bug: angleproject:5956 + Change-Id: I38374f4c2c85287109c464ac90eb1bf49b07fa0a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912805 + Commit-Queue: John Plate + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 4df2e8ce19cf735b6277b6e763b2540e482a7b66 +Author: Tim Van Patten +Date: Mon May 24 13:15:45 2021 -0600 + + Reduce ANGLE APK size + + Add some flags to generate_android_bp.py to make the AOSP match the + ANGLE build flags, which makes the CQ testing more relevant and reduces + the ANGLE APK size. Additionally, disable various GN args that are no + longer required (GL, ESSL, HSSL). Together, this reduces the ANGLE APK + size in AOSP from 22.2MB to 16.7MB. + + This CL also makes some fixes to roll_aosp.sh that are suggested by + "Shell Scipt". + + Bug: b/189125396 + Test: manual verification + Change-Id: Iea33de799a00ffff182cf028a6998e1ef01a00e1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912933 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 51feebb448730734372c164f78209488342f9423 +Author: Tim Van Patten +Date: Fri May 21 16:23:39 2021 -0600 + + Add LOCAL_LICENSE_KINDS to generate_android_bp.py + + Upstread the AOSP license changes that keep getting reverted: + https://android-review.googlesource.com/c/platform/external/angle/+/1704346 + + Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to: + third_party/android_ndk/sources/android/cpufeatures/Android.mk + + Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD + SPDX-license-identifier-GPL SPDX-license-identifier-GPL-2.0 + SPDX-license-identifier-GPL-3.0 SPDX-license-identifier-LGPL + SPDX-license-identifier-MIT SPDX-license-identifier-Zlib + legacy_unencumbered + to: + Android.bp via generate_android_bp.py + + Bug: b/186906888 + Change-Id: I86081cfe2858702ed350ce8c72afaaa8eb5566b8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912918 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit 7a38f3f50f3bb2f747ad3731d307f6af4c0552d2 +Author: Geoff Lang +Date: Fri May 21 15:07:44 2021 -0400 + + GL: Skip redundant flushes. + + Skip flushes when there is no work submitted since the last + flush. + + Clone of geofflang's: + https://chromium-review.googlesource.com/2911879 + + Bug: chromium:1181068 + Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675 + Commit-Queue: Geoff Lang + Reviewed-by: Geoff Lang + +commit efd8da4dfa6581f2394cc4e040c6c52b591be1ef +Author: John Plate +Date: Fri May 21 15:39:11 2021 +0100 + + CL: buffer object creation for front end and pass-through + + Add Buffer object to front end and Memory object to back end. + Implement creation of buffer and sub-buffer objects. + Make cl::Object destructor virtual to support destruction of Buffer. + Cache more Device info for Buffer validation. Add missing and move + existing version checks into validation. + + Bug: angleproject:5956 + Change-Id: Iea7665be5f6bdd8469e81f5fe4935a9fb0e03436 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912677 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit 63f062e491bdfab709036b4b1902a6df9203eac3 +Author: angle-autoroll +Date: Tue May 25 10:01:15 2021 +0000 + + Roll vulkan-deps from 1e60587ea42c to cca33b4d0510 (6 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/1e60587ea42c..cca33b4d0510 + + Changed dependencies: + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/0afe1f2b3f..91931ffcd2 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/a132dee142..3bdb32d29f + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/72c2d5f0b0..4e4619ae69 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/00cc43d564..5274701761 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: jmadill@google.com + Change-Id: I71a5deb44fdce08c157fa2041fea2311d08f713f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2916573 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 75b9ac3084a94c85d465da78735a4f9b18f430b6 +Author: angle-autoroll +Date: Tue May 25 08:00:54 2021 +0000 + + Roll Chromium from 8023f14612cf to 594a967a8bf8 (310 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/8023f14612cf..594a967a8bf8 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC jmadill@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/3a2af0ac45..195185a687 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/882b1ad904..0519f53328 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..53102de187 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6097a92db0..7fc02e848a + * third_party/jinja2: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/11b6b3e597..6906af9d94 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/5b8d433953..2865d44621 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/b02b99e45d..d663c27435 + * tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed + * tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed + * tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/67fb767044..fd0742eeef + * tools/skia_goldctl/linux: TV3JKpzwWXfG-NTkaeTjpVEsf8EtzcmW29vd8Rjhy8cC..8A8GVNDvQNly-61PpEBfFpqpG9cscGA9DrHNNoc8tSQC + * tools/skia_goldctl/mac: pc3O9jtat8gz4ljL5-dxH01Ocnr0jrR5TgAicVO43_oC..iqXjvpHQMsiYHTsmCxuGGRSb6zp776WuTrwp1k9p_A4C + * tools/skia_goldctl/win: 0hsVmGWo4dqGIAWMqMjUS_uehrpjItSxcoAW_DYPdycC..SufM9WryJm4lk56xFxO5xa0VKBqk-rQ7kcVCJl111ecC + No update to Clang. + + Bug: None + Tbr: jmadill@google.com + Change-Id: I4156196e4c2c28a575f7f38fed903a55a8b615fb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2914202 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 91e693afce9b4671fc46d562847f674e71074a01 +Author: angle-autoroll +Date: Mon May 24 10:01:37 2021 +0000 + + Roll SwiftShader from 024bf32587e5 to b46b97c10c10 (3 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/024bf32587e5..b46b97c10c10 + + 2021-05-22 swiftshader.regress@gmail.com Regres: Update test lists @ cbfa971a + 2021-05-21 johnstiles@google.com Revert "Fix error in mat4x2(scalar) construction." + 2021-05-21 capn@google.com Update llvm::ConstantVector::getSplat() usage to take ElementCount + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I527202ebc7dfd02bd129e85d5bdb50b6e24a3499 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2914993 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit e611c2929bbdcb3ce5c32136ae0e5f30970a7d4c +Author: angle-autoroll +Date: Mon May 24 10:01:15 2021 +0000 + + Roll vulkan-deps from 15fd0774bd48 to 1e60587ea42c (13 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/15fd0774bd48..1e60587ea42c + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/e71278cc92..6fe560f74f + * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/418542eaef..ff61890722 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f0d110e305..0afe1f2b3f + * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9af411e83f..7fe877c90a + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/9c5f59d177..00cc43d564 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I3c85ede6be21757e64cb9d5189fae9c4b54eb7cf + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912923 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 9503977d484912f32c8046f23dacb139b152d72c +Author: angle-autoroll +Date: Mon May 24 07:00:19 2021 +0000 + + Roll Chromium from dbbe4e524711 to 8023f14612cf (453 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/dbbe4e524711..8023f14612cf + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/44de92e1f7..3a2af0ac45 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/84f26a6592..fba2905150 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d30afb40a0..882b1ad904 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..cde766ee8a + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/5a7d2e4879..6097a92db0 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/336763d37a..b02b99e45d + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/06e92a9dc6..67fb767044 + * tools/md_browser: https://chromium.googlesource.com/chromium/src/tools/md_browser/+log/60141af360..9772d4c05b + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I531674e854f109f38fde98000974ac0a28e7361b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2914539 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit c229ccfeea64ffd3682976f6075d1593d992998f +Author: Shahbaz Youssefi +Date: Tue May 18 15:51:12 2021 -0400 + + Vulkan: SPIR-V Gen: Handle gl_PerVertex + + If not declared by the shader, default gl_PerVertex is now explicitly + declared in AST prior to SPIR-V generation. The SPIR-V generation code + then doesn't need to declare them magically. + + Bug: angleproject:4889 + Change-Id: Icc593bc1ccc3162487bdbae7f66bc775d098778d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2905952 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 81db1a4694d9de183422423b3d1de3b1dd17391b +Author: Mohan Maiya +Date: Thu May 20 13:45:26 2021 -0700 + + Vulkan: TextureVk inherits a few attributes from ImageHelper + + Cache VkImageCreateFlags in ImageHelper. This allows texture target + siblings to inherit a few VkImage create attributes thus avoiding + image respecification in certain code paths. + + Bug: angleproject:2514 + Bug: angleproject:5281 + Test: PbufferTest.ClearAndBindTexImageSrgbSkipDecode*Vulkan + Change-Id: Ic7397fabdce185264e06488355ca47f809338519 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2910473 + Commit-Queue: Mohan Maiya + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit fad9053f8140f3a387eaa9f9b33495d25dd49163 +Author: Jamie Madill +Date: Thu May 20 15:52:38 2021 -0400 + + infra: Add isolated script tests to Pixel 4. + + This includes angle_perftests and angle_restricted_trace_gold_tests. + + Bug: angleproject:5941 + Change-Id: I6f24d2c2752086ae6f7abba26880070c4a4f0472 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911034 + Commit-Queue: Yuly Novikov + Reviewed-by: Yuly Novikov + Reviewed-by: Cody Northrop + +commit 0a08637532e820595ed9f2ab94965e15df7303e9 +Author: Cody Northrop +Date: Thu May 20 13:13:49 2021 -0600 + + Tests: Skip pokemon_go on Intel Windows Vulkan + + Timing out periodically. See the bug for examples. + + Bug: angleproject:5994 + Change-Id: I717e6c66746a611bb7996c838fa0575b5210aae4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909759 + Reviewed-by: Cody Northrop + Reviewed-by: Yuly Novikov + Commit-Queue: Cody Northrop + +commit c84770779704f209ae68357c5b75b4b7c58394c3 +Author: angle-autoroll +Date: Fri May 21 19:32:13 2021 +0000 + + Roll VK-GL-CTS from 535dfe49fc49 to 8010f59c7034 (14 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/535dfe49fc49..8010f59c7034 + + 2021-05-21 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-05-21 fred.jin@arm.com Fix precision issue in ShaderMatrixTest + 2021-05-21 boris.zanin@mobica.com Remove unused check + 2021-05-20 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-05-20 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master + 2021-05-20 mika.vainola@siru.fi Add XFB tests for VK_EXT_provoking_vertex + 2021-05-20 mika.vainola@siru.fi Add tests for VK_EXT_provoking_vertex + 2021-05-20 jari.komppa@siru.fi Static code analysis fixes for GL cts + 2021-05-20 ari.suonpaa@siru.fi Add tests for multidimensional atomic counter array + 2021-05-20 rgarcia@igalia.com Add missing vertex pipeline stores check with ray queries + 2021-05-20 siglesias@igalia.com Add vkCmdCopyQueryPoolResults() tests with dstOffset != 0 + 2021-05-20 rgarcia@igalia.com VK_VALVE_mutable_descriptor_type tests + 2021-05-20 ilkka.saarelainen@siru.fi Add new multi-planar format tests + 2021-05-14 alexander.galazin@arm.com Update Vulkan headers + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC cnorthrop@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com,angle-bots+autoroll-info@google.com + Change-Id: Ibd2fbc2bbe5c4c96722fc14c7998abf841c64cb7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912142 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit e697e3790cdb950da4041ad115fd2c39ba72e7aa +Author: Mohan Maiya +Date: Wed Mar 10 23:59:45 2021 -0800 + + Vulkan: Allow certain usecases to have non-zero stride + + When glVertexAttribPointer is called with a type parameter that doesn't + match the vertex attribute binding's type in shader, the vulkan backend + used to force the stride to 0. This is acceptable since this usecase is + unspecified in spec. + + To allow for better app compatibility, introduce a new extension that + requires normal glVertexAttribPointer functionality to be maintained if + the mismatched vertex attribute type is a mismatched integer type sign. + + This change also modifies the VkFormat used when a mismatch in + signedness occurs to use a VkFormat with the same component width as + the type parameter. + + Bug: angleproject:5762 + Test: VertexAttributeTestES3.DrawWithRelaxedVertexAttributeType* + Test: VertexAttributeTestES3.DrawWithMismatchedComponentCount* + Change-Id: I7e5281500afc3d77f0775821447cabfad3ff2d66 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765012 + Commit-Queue: Mohan Maiya + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 1f1e0e6c1020027b63f930361870af86a1e32f5c +Author: Kyle Griffiths +Date: Thu May 13 12:35:43 2021 +0100 + + Remove linear filtering requirement on depth textures + + Linear filtering depth is an odd operation that doesn't yield + particularly useful information. + In the primary instance where it'd be used, the GLES3.1 spec + (8.17) specifically denies its use, and enforcing the capability + can lead to issues with hardware designed without support in + mind. + We think the check isn't necessary as a result. + + Bug: angleproject:5964 + Change-Id: I69f243f7cc078cd5383de2cc4bf1cfc3b6f2bc3b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894424 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Geoff Lang + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Shahbaz Youssefi + +commit dd312cc612bb35f3ce83124f15872a90cf056112 +Author: Mohan Maiya +Date: Fri May 21 08:49:48 2021 -0700 + + Reland "Vulkan: Add support for EXT_texture_border_clamp" + + This is a reland of 4b92e089c01e94730fe26c4c743d76d6c935088d + Initializes mPadding to 0 in SamplerDesc::update + + Original change's description: + > Vulkan: Add support for EXT_texture_border_clamp + > Add support for GL_EXT_texture_border_clamp. This is implemented by + > using VK_EXT_custom_border_color. + > + > Bug: angleproject:3577 + > Test: dEQP-GLES31.functional.texture.border_clamp* + > Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Mohan Maiya + + Bug: angleproject:3577 + Change-Id: I8684242c4bce6e1a006dbe926defaa495fcc2282 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911571 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Mohan Maiya + +commit 7dfabc44231b4c63130d2c525efb798abe5c7382 +Author: angle-autoroll +Date: Fri May 21 09:54:56 2021 +0000 + + Roll Chromium from b625560cb068 to dbbe4e524711 (537 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/b625560cb068..dbbe4e524711 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/cdb2b715f2..44de92e1f7 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/b9af93e79f..84f26a6592 + * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/767de317f9..8b015a7982 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/ce8e75c6c9..d30afb40a0 + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/c65e9394fd..46f611a284 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..88390a179e + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/51e3708841..5a7d2e4879 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/a38f01b956..336763d37a + * tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860 + * tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860 + * tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1d4cccac25..06e92a9dc6 + * tools/skia_goldctl/linux: AJ9SYsqcbrqN3hRhpu5dbSabnZlGmfoscnWe8Au0heEC..TV3JKpzwWXfG-NTkaeTjpVEsf8EtzcmW29vd8Rjhy8cC + * tools/skia_goldctl/mac: 1nOFxZHuuQxDk2FZuVtemcgPk5pGjO91pPQigw8U1u0C..pc3O9jtat8gz4ljL5-dxH01Ocnr0jrR5TgAicVO43_oC + * tools/skia_goldctl/win: FtPuWP_6LNjMR6_ANas5hzv6aNPdqt9zJ7BEqef3uI8C..0hsVmGWo4dqGIAWMqMjUS_uehrpjItSxcoAW_DYPdycC + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I690dc358ee1300e66e9adb30dec64d0052062e7b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909566 + Bot-Commit: angle-autoroll + Commit-Queue: Cody Northrop + +commit a4ccd684027c44662035fea1b9177345dc83d8c4 +Author: Gert Wollny +Date: Mon May 17 10:28:38 2021 +0200 + + Capture/Replay: Write some bytes when serializing blobs + + Seeing a few bytes of the buffers might help to get an understanding + of what goes wrong when blob check sums don't match. + + Bug: None + Change-Id: I482af2b3d885afca39057d0841923449ec65d611 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900218 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit ce45bd1cc9eefacf788ae39300deda0484ce0c6e +Author: angle-autoroll +Date: Fri May 21 11:45:36 2021 +0000 + + Roll SwiftShader from 3b9a1a795f1e to 024bf32587e5 (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/3b9a1a795f1e..024bf32587e5 + + 2021-05-21 srisser@google.com Make fragDepth clamping conditional + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Idbb24778fc65f08f6996f71254d592bb12a3ead6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2910508 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 44fabb7b88648e0b9ad8f12db47ecdd6d56039cf +Author: Yuly Novikov +Date: Fri May 21 00:51:06 2021 +0000 + + Revert "Vulkan: Add support for EXT_texture_border_clamp" + + This reverts commit 4b92e089c01e94730fe26c4c743d76d6c935088d. + + Reason for revert: breaks "Linux MSan Tests" bot + https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Tests/28489/overview + + Original change's description: + > Vulkan: Add support for EXT_texture_border_clamp + > + > Add support for GL_EXT_texture_border_clamp. This is implemented by + > using VK_EXT_custom_border_color. + > + > Bug: angleproject:3577 + > Test: dEQP-GLES31.functional.texture.border_clamp* + > Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192 + > Reviewed-by: Jamie Madill + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Mohan Maiya + + Bug: angleproject:3577, angleproject:5996 + Change-Id: I6b62f1a4a43fcfe2d0df2c73de24db83606ce430 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911533 + Reviewed-by: Yuly Novikov + Commit-Queue: Yuly Novikov + +commit 2add8d9f97e35c4bbee296b76b8a0669cd6aec5c +Author: Yuly Novikov +Date: Wed May 19 18:47:40 2021 -0400 + + Don't use VK_EXT_debug_utils with non-Android Vulkan < 1.1.91 + + Due to a bug in Vulkan Loader < 1.1.91 + https://github.com/KhronosGroup/Vulkan-Loader/pull/95 + + Bug: chromium:1205999 + Change-Id: Icdedc2e80abe3c5578e811759f66ddbb71abb2ec + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2907095 + Reviewed-by: Ian Elliott + Reviewed-by: Jamie Madill + Commit-Queue: Yuly Novikov + +commit 2697358464cf20576701987f60300b6c4086c11e +Author: Jamie Madill +Date: Thu May 20 12:22:46 2021 -0400 + + D3D11: Fix respecifying 3D textures. + + The missing check for the "Depth" dimension could lead to a bug + where we would not recreate a texture when the dimension changed. + + Bug: chromium:1210414 + Change-Id: Id59097ad14ae77ff80d27081f61786dad17a77ea + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911032 + Reviewed-by: Geoff Lang + Commit-Queue: Jamie Madill + +commit 89ac8a440cde63e8c0d6b8a75fe8121c3312830b +Author: Tim Van Patten +Date: Wed May 19 10:48:40 2021 -0600 + + Fix Loading ANGLE.apk in Android + + The recent CL to remove the Settings GUI from the Android-built APK went + a little too far removing Java code and emptying the + AndroidManifest.xml. This resulted in ANGLE being unable to be loaded + from the APK, since ANGLE was not able to respond to the intent + android.app.action.ANGLE_FOR_ANDROID which indicates it contains ANGLE + libraries. + + The AndroidManifest.xml requires various flags like + android:forceQueryable="true" so the APK can be accessed by the + framework. + + The assets/ directory was removed, which contains 'a4a_rules.json' and + is required by GraphicsEnvironment. This is added back. + + Bug: b/187342779 + Change-Id: Ic7b758c92ed12750972c7e313729276a13f76032 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906632 + Reviewed-by: Geoff Lang + Commit-Queue: Tim Van Patten + +commit e2fc818ac15ffcf534fb69a24441183990a44959 +Author: Jonah Ryan-Davis +Date: Wed May 5 11:51:00 2021 -0400 + + Reland Change to module directory when loading swiftshader ICD. + + This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b. + + Extra changes: + Be explicit about calling GetModuleHandleA + Do not use the general GetModuleHandle, which may use wide strings + Refactored ConcatenatePath and add tests + + GetModuleDirectory should return the full path, not relative. + ANGLE wasn't able to locate the vulkan ICD file because it was + searching down an invalid relative path. This can be fixed by + ensuring the module directory is always the full path. + on some platforms. + + Original change's description: + > When loading vulkan, we can be running from any directory. We need + > to change to the module directory to ensure the swiftshader ICD is + > loaded properly. For example, in some Chrome releases, libGLESv2.dll + > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe + > + > Bug: chromium:1198567 + > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452 + > Commit-Queue: Jonah Ryan-Davis + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + + Bug: chromium:1198567 + Bug: angleproject:5949 + Change-Id: I63fbe93f8492b7f23566f8193b1b8fe784a34f71 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904586 + Reviewed-by: Jamie Madill + Commit-Queue: Jonah Ryan-Davis + +commit 85acc55aae5da2f610f6560e01ef3ad3e1a02a9e +Author: Rupert Shuttleworth +Date: Tue May 18 22:39:32 2021 -0400 + + Remove .find_ignore files + + Remove .find_ignore files so that the Soong Finder searches the whole + tree again (needed for Bazel support) + + Test: TH + Bug: b/188491905 + Change-Id: I6df2cecebf3f82120bb90353aeb08f6b40cf30be + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906252 + Reviewed-by: Cody Northrop + Commit-Queue: Geoff Lang + +commit c71fbc162edad7600998cc985ff45dbd1d0fd650 +Author: Jamie Madill +Date: Wed May 19 12:47:30 2021 -0400 + + infra: Add dEQP tests to the Pixel 4. + + Also updates expectations. For simplicity we use SKIP everywhere and + specify each skipped test individually instead of using wildcards. + + Bug: angleproject:5941 + Change-Id: If2cb85b06ecd250222dbf1376d99392ad10b71aa + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896172 + Reviewed-by: Geoff Lang + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit 6619c464e5f6237d7465ec945d24164372aa4196 +Author: Gert Wollny +Date: Mon May 10 13:00:48 2021 +0200 + + FrameCapture: Write the frame cpp file even if frame is empty + + The index file will add a reference to this file, and the replay will + also expect that the frame execution function and the context function + exist, so write the file even if the frame is empty + + Bug: angleproject:5939 + Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581 + Commit-Queue: Gert Wollny + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + +commit 447b730c357dfa099376850e1cba111853de54a4 +Author: Cody Northrop +Date: Thu May 20 10:00:15 2021 -0600 + + Add MultisampledRenderToTexture Pixel4 expectations + + Flakes noticed with GLES backend in CI, setting the following to FAIL: + + MultisampledRenderToTextureES3Test.BlitFramebufferTest/* + MultisampledRenderToTextureES3Test.ClearThenMaskedClearFramebufferTest/* + MultisampledRenderToTextureES3Test.RenderbufferBlitFramebufferTest/* + + Bug: angleproject:5995 + Change-Id: I159c186d712ef3e8a1c44cdc8959f876fc2d6b8a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909755 + Commit-Queue: Cody Northrop + Commit-Queue: Jamie Madill + Reviewed-by: Jamie Madill + +commit c37b1ef8ecf0e1f6700972c5562b4b0b95fa056e +Author: Mark Lobodzinski +Date: Thu May 13 14:31:59 2021 -0600 + + Balance debuglabel begin/end pairs for skipped drawcalls + + Some drawcalls may be no-op'd due to shader issues or having + zero instance or element counts. In these cases, the ANGLE markers + used for AGI will become imbalanced as it is the drawcalls that + trigger the 'begin' marker. This patch ensures that the dirty-bit + draw event handler is called for no-op'd drawcalls to keep the + AGI commandTree in balance. + + Bug: b/184888395 + Change-Id: I1041d2f06fb313934365340c35e458bc5a66ba64 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895330 + Reviewed-by: Cody Northrop + Reviewed-by: Ian Elliott + Commit-Queue: Ian Elliott + +commit 019eda5c9478b008a8f5f58e9b40e814d2dff5d9 +Author: angle-autoroll +Date: Thu May 20 10:01:37 2021 +0000 + + Roll SwiftShader from 0ca03fb2907c to 3b9a1a795f1e (4 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/0ca03fb2907c..3b9a1a795f1e + + 2021-05-20 swiftshader.regress@gmail.com Regres: Update test lists @ bbe1b996 + 2021-05-19 johnstiles@google.com Fix error in mat4x2(scalar) construction. + 2021-05-19 srisser@google.com Remove assert on unrestricted depth range + 2021-05-19 srisser@google.com Fix EmitImageWrite using wrong active lane mask + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Ib45c09c919d6cfd50b08397381ed5d551e08fdb9 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909556 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 6acd1713a48a9d6d2f8486df45844c4bb8c82297 +Author: angle-autoroll +Date: Thu May 20 10:01:15 2021 +0000 + + Roll vulkan-deps from baa6900ec346 to 15fd0774bd48 (5 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/baa6900ec346..15fd0774bd48 + + Changed dependencies: + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/f89f72e105..72c2d5f0b0 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/cfd1a09358..9c5f59d177 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: Iea3b319ea1b31bcc4d6b016cc533bb333716e53c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2910372 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 10a8182cd875935b7c7d7eb5492d8be1479ca45d +Author: John Plate +Date: Wed May 19 21:00:05 2021 +0100 + + CL: Fix querying default device if non exists + + Bug: angleproject:5992 + Change-Id: Ie43f905fbb9cf41b0f6f88b2db27ebe9de9c37e8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906993 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 54ba6f0135715737a55f2dc4fc1cb86874fb98f9 +Author: Gert Wollny +Date: Thu May 13 20:33:46 2021 +0200 + + Capture/Replay: Emit SetupReplay() late + + Only emit SetupReplay() after all captured frames have been run, + so that InitializeReplay() is called with values of + readBufferSize and the maxClientArraySize that are sufficiently + large for all frames. + + Bug: angleproject:5965 + Bug: angleproject:5895 + Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 45ee87e223b9a96d3d0c636186951464f08f75ef +Author: Gert Wollny +Date: Mon May 17 13:45:25 2021 +0200 + + Capture/Replay: Don't try to serialize blob without data + + The construct std::vector v; &v[0] doesn't go well with + a checked STL, because the element 0 doesn't exists in an + empty vector, and obviously it doesn't know that whether the + pointer gets de-referenced later. + + Bug: angleproject:5980 + Change-Id: I690c99bd12d74112fe1081ea3134b6ffb11ad23b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900226 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Gert Wollny + +commit 6622d2b4204ea64c2bee50bf336cedd6c505d237 +Author: John Plate +Date: Tue May 18 21:26:39 2021 +0100 + + CL: command queues for front end and pass-through + + Bug: angleproject:5956 + Change-Id: I6d9d4e4e7dfc5402408e3b002e66e4eae752967d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903091 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: John Plate + +commit 937b29abebf341b637175fd78bbce7d07c59afd9 +Author: angle-autoroll +Date: Thu May 20 07:00:06 2021 +0000 + + Roll Chromium from 2b00cebcd5b5 to b625560cb068 (1025 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/2b00cebcd5b5..b625560cb068 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/d23e13a4cf..cdb2b715f2 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/20b1d0fc13..b9af93e79f + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d7dc6149dd..ce8e75c6c9 + * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/371f2bea4f..4c713c1163 + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7da48e9f87 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/fe7d709f05..51e3708841 + * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/66e0a5d62b..9523daa51d + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/209b045b46..a38f01b956 + * tools/luci-go: git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2..git_revision:9cd9603def7a649cd3e29517180d6622be2fa898 + * tools/luci-go: git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2..git_revision:9cd9603def7a649cd3e29517180d6622be2fa898 + * tools/luci-go: git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2..git_revision:9cd9603def7a649cd3e29517180d6622be2fa898 + * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/971099ba3c..1d4cccac25 + * tools/protoc_wrapper: https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper/+log/4d4e1824fc..57697a9873 + * tools/skia_goldctl/linux: BLHYEUi0wOYe5D_InWXtD8US7l_PMOrKHLuKt16L46QC..AJ9SYsqcbrqN3hRhpu5dbSabnZlGmfoscnWe8Au0heEC + * tools/skia_goldctl/mac: qofjOtuSqFXnMKjZ9c7c-oVh9HeWjGW4h4F3y-vrfEkC..1nOFxZHuuQxDk2FZuVtemcgPk5pGjO91pPQigw8U1u0C + * tools/skia_goldctl/win: P9wyIW02W7EqtyT9cZJj6g0HOcjRHAhN5KECwmhgRjUC..FtPuWP_6LNjMR6_ANas5hzv6aNPdqt9zJ7BEqef3uI8C + No update to Clang. + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I7da55a833be39f84c68bcaea0a1a35c9281bfaea + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909374 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 2b8ceb281a0876ec83515c8b849d32b7ae5dbef4 +Author: Cody Northrop +Date: Wed May 19 14:08:03 2021 -0600 + + Update skip list for Texture2DTest.TextureSize + + It is also failing on Linux+Vulkan+TSAN. + + Bug: angleproject:5982 + Change-Id: I742a65ef6076e4f00cc8030cfea46619effaa4d6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906815 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit dee8dad40e848a7bc5753db98fa3ea69f4094553 +Author: Brandon Schade +Date: Tue Apr 20 23:26:55 2021 -0700 + + Vulkan: Fix geometry shader qualifier validation + + Added missing validation to handle in/out + qualifier for geometry shaders + + Test: KHR-GLES32.core.geometry_shader.nonarray_input.* + Bug: angleproject:5579 + Change-Id: I9ee0853526ce296df1f56fb7783f9847b31e49bc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901256 + Commit-Queue: Mohan Maiya + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 9bc837f64b0779e6e47e32cd080563407e95bfac +Author: Shahbaz Youssefi +Date: Wed Apr 7 15:24:12 2021 -0400 + + Vulkan: Generate SPIR-V directly from the translator; Part 1 + + This is the first change in a series to generate SPIR-V directly from + the translator's AST, instead of the generating text GLSL and feeding it + to glslang. + + This change implements the majority of the work needed to map AST types + to SPIR-V types, and declare types and interface variables in SPIR-V. + Additionally, it lays the infrastructure to conditionally enabling this + path in end2end tests. + + No tests are currently enabled as the change doesn't actually generate + code for function bodies yet. + + Bug: angleproject:4889 + Change-Id: Iacb28b6907fd48c50e4cc5a0e7ad72f6eed241d4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889603 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 3e453559ab2a32ff8c3e8523f3a898ab2f20cd40 +Author: Tim Van Patten +Date: Wed May 19 09:52:54 2021 -0600 + + Add angle.iml to .gitignore + + When developing in the Android source tree, 'aidegen' can be used to + create an Intellij workspace. This also creates the file angle.iml in + the specified module directories, though, so this CL adds angle.iml to + ANGLE's .gitignore. + + Bug: None + Change-Id: Id73380fa7750c591967aa81ec7a8c991e074a303 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906104 + Reviewed-by: Jamie Madill + Commit-Queue: Tim Van Patten + +commit 6f5c67bc2712a656bca1c0cdef1d089418d2ef3d +Author: Jamie Madill +Date: Wed May 19 08:54:51 2021 -0400 + + Use the same url for 'requests' as chromium. + + Otherwise this breaks the auto-roll script. + + Bug: angleproject:5941 + Change-Id: I9b1d850822732c41b8a73de33060ceb50b8a49ab + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2905194 + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +commit 88156d2686c8df127d1e5ba675221573a8a13b4c +Author: Geoff Lang +Date: Tue May 18 23:55:32 2021 +0000 + + Revert "[Vulkan] Add DisplayVkNull" + + This reverts commit cbbaf76b758fb6a37175795b1f424549d535fbdc. + + Reason for revert: Suspecting this breaks the fuchsia_x64 bot WebGL + tests. + + Ex: + https://chromium-review.googlesource.com/c/chromium/src/+/2904812 + + Original change's description: + > [Vulkan] Add DisplayVkNull + > + > Currently all DisplayVk implementations depend on VK_KHR_swapchain and + > VK_KHR_surface extensions. When running Chromium on Fuchsia these + > extensions are never used (content is shown on the screen using + > ImagePipe API without dependency on swapchain). ANGLE still depended + > on these extensions for DisplayVkFuchsia. + > This CL adds DisplayVkNull, which allows to run ANGLE without dependency + > on swapchain. It's usable only offscreen and cannot present content on + > a surface. + > + > Bug: chromium:1203879 + > Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313 + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + > Commit-Queue: Jamie Madill + + Bug: chromium:1203879 + Change-Id: I6701ffff48fcb925f387e63b356d2d5cf360ea7e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904183 + Reviewed-by: Geoff Lang + Bot-Commit: Rubber Stamper + Commit-Queue: Jamie Madill + +commit 9a9392aaeebde6740c19c0761d2e479101cf3af6 +Author: angle-autoroll +Date: Wed May 19 10:01:15 2021 +0000 + + Roll vulkan-deps from 3d799e0e9b08 to baa6900ec346 (3 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/3d799e0e9b08..baa6900ec346 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/202c8abae0..e71278cc92 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1d86b3235b..cfd1a09358 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: If95c7f11ffe6a41dd200e7613d9ad4e037e2db0e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901404 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit eaa6961d64d1f450038a460d916f72036ab12447 +Author: Shahbaz Youssefi +Date: Mon May 17 18:56:53 2021 +0000 + + Revert "Vulkan: Disable BufferVk suballocation" + + This reverts commit 76181384075c6eb0a5788bf1b732a1e05f6d73bc. + + Reason for revert: Bug exposed by this is fixed in https://chromium-review.googlesource.com/c/angle/angle/+/2896168 + + Original change's description: + > Vulkan: Disable BufferVk suballocation + > + > There are still unresolved bugs. + > + > Bug: angleproject:5719 + > Bug: chromium:1209197 + > Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545 + > Reviewed-by: Cody Northrop + > Reviewed-by: Shahbaz Youssefi + > Commit-Queue: Tim Van Patten + + Bug: angleproject:5719 + Bug: chromium:1209197 + Change-Id: I5c24b5f6476eab98ed5a7b90b3d1796ffc7ca106 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896169 + Bot-Commit: Rubber Stamper + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 421c665c4387b90d918c6fbd3de065a03d83d5c4 +Author: Gert Wollny +Date: Thu May 13 21:17:16 2021 +0200 + + Capture: Make writeCppReplayIndexFiles a method of FrameCapture + + This is useful to not pass a large amount of parameters around. + + Bug: angleproject:5965 + Change-Id: I3890a0ca852729bbf74725fb9e5f4062e20e9158 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894485 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 328a5c89d97710ff676621a8e4756ee36627de4f +Author: Jamie Madill +Date: Tue May 18 12:13:23 2021 -0400 + + infra: Add tests to Android Pixel 4 bot. + + Only angle_end2end_tests and angle_unittests to start. + Also adds test expectations for the Pixel 4 end2end_tests. + + Patch Series: + + 1. http://crrev.com/c/2885381 + 2. http://crrev.com/c/2885346 + 3. http://crrev.com/c/2885383 + 4. This CL + + Bug: angleproject:5941 + Bug: angleproject:5946 + Bug: angleproject:5947 + Bug: angleproject:5981 + Change-Id: Iaaea0b427513804575d0ad7773a81379ea932eb5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2885384 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Yuly Novikov + +commit cc9d0f7530d7fe510d1e69cb1f5b5cd96eb9d268 +Author: Jamie Madill +Date: Tue May 18 10:46:07 2021 -0400 + + Improve test expectations overlap check. + + Uses the conditions for the expectation to determine if there's a bug. + Necessary for the new loading mechanism which defers filtering. + + Bug: angleproject:5951 + Change-Id: Ic0c65438f7f155caff72b3ceeb4e65f8184c8efc + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902666 + Reviewed-by: Yuly Novikov + Reviewed-by: Jonah Ryan-Davis + Commit-Queue: Jamie Madill + +commit ffb71dc28f9987650d79769f4f52fcefa42afd48 +Author: Jonah Ryan-Davis +Date: Tue May 18 15:10:58 2021 +0000 + + Revert "Reland Change to module directory when loading swiftshader ICD." + + This reverts commit c8c414b084fa3b6550b10dff48cf429719e04579. + + Reason for revert: Breaking fuchsia_x64 and ANGLE autoroller + + Original change's description: + > Reland Change to module directory when loading swiftshader ICD. + > + > This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b. + > + > Extra changes: + > Be explicit about calling GetModuleHandleA + > Do not use the general GetModuleHandle, which may use wide strings + > + > GetModuleDirectory should return the full path, not relative. + > ANGLE wasn't able to locate the vulkan ICD file because it was + > searching down an invalid relative path. This can be fixed by + > ensuring the module directory is always the full path. + > on some platforms. + > + > Original change's description: + > > When loading vulkan, we can be running from any directory. We need + > > to change to the module directory to ensure the swiftshader ICD is + > > loaded properly. For example, in some Chrome releases, libGLESv2.dll + > > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe + > > + > > Bug: chromium:1198567 + > > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948 + > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452 + > > Commit-Queue: Jonah Ryan-Davis + > > Reviewed-by: Shahbaz Youssefi + > > Reviewed-by: Jamie Madill + > + > Bug: chromium:1198567 + > Bug: angleproject:5949 + > Change-Id: Ib34067002c788f00b5ae2fa11d1e465f57bd7be8 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893503 + > Reviewed-by: Jamie Madill + > Reviewed-by: Cody Northrop + > Commit-Queue: Jonah Ryan-Davis + + Bug: chromium:1198567 + Bug: angleproject:5949 + Change-Id: Ic0be8949cc27b231be4f982ea6e22beed590d24d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903786 + Reviewed-by: Jamie Madill + +commit 4b92e089c01e94730fe26c4c743d76d6c935088d +Author: Mohan Maiya +Date: Wed May 12 09:20:24 2021 -0700 + + Vulkan: Add support for EXT_texture_border_clamp + + Add support for GL_EXT_texture_border_clamp. This is implemented by + using VK_EXT_custom_border_color. + + Bug: angleproject:3577 + Test: dEQP-GLES31.functional.texture.border_clamp* + Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192 + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Mohan Maiya + +commit 3b97452ac856ea466317abb4d7e7897d966e32f0 +Author: Cody Northrop +Date: Tue May 18 09:29:29 2021 -0600 + + Tests: Skip pokemon_go on Intel Linux Vulkan + + Crashing on teardown. + + Bug: angleproject:5989 + Change-Id: Ie5560f4e1dee310f5f08a7bca83a0506c20f6920 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904126 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 8d16e15e43f8c98097871d4b4d9d083d2aef0dbf +Author: Cody Northrop +Date: Mon May 17 23:16:59 2021 -0600 + + Tests: Add SAKURA School Simulator trace + + Test: angle_perftests --gtest_filter="*sakura_school_simulator*" + Tbr: timvp@google.com,jmadill@chromium.org + Bug: b/188488065 + Bug: angleproject:5987 + Change-Id: Idf9966c32de8c2720edf1b7575722052c5cd294a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902443 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 40f11af89e89b1aa0e11f02ed993a08442a21c82 +Author: Cody Northrop +Date: Mon May 17 23:05:16 2021 -0600 + + Capture/Replay: Ignore delete of non-genned buffers + + Instead of asserting that the app is calling glDeleteBuffers + on buffers we've seen created, ignore buffer names that we + haven't seen. This is allowed by the spec: + + Buffer objects are deleted by calling + void DeleteBuffers(sizei n, const uint *buffers); + Unused names in buffers are silently ignored, as is the value zero. + + Test: SAKURA School Simulator MEC + Bug: b/188488065 + Bug: angleproject:5987 + Change-Id: Id4704e544f644dbe3edf6efdf70b5c3ef9ccaba7 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902442 + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + Commit-Queue: Cody Northrop + +commit 47e008c24225b265a5bda5c6005c1eda42c556ce +Author: angle-autoroll +Date: Tue May 18 10:01:36 2021 +0000 + + Roll SwiftShader from af907708adb3 to 0ca03fb2907c (1 revision) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/af907708adb3..0ca03fb2907c + + 2021-05-17 capn@google.com Update Android build files with license info + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I7d006bf382efebae6853979f6ee4daffd3d67aae + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901755 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 7107a0f30aa55814839b843936e6d7db38577bde +Author: John Plate +Date: Sun May 16 15:37:44 2021 +0100 + + CL: Load OpenCL without search path modification + + Make it possible to load libGLESv2 and OpenCL_ANGLE without adding + ANGLE's binary directory to the search path. + + Bug: angleproject:5904 + Change-Id: Ie810466b39e1101e4da5b9fd199d26683b129281 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897250 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit c2fd33882267e2a6dcaf095a8f5971f2ed27b464 +Author: John Plate +Date: Sat May 15 22:28:27 2021 +0100 + + CL: Add front end object references to back end objects + + Add front end object references to back end objects, which requires + a significant amount of refactoring, because the back end objects + have to be constructed during the construction of the front end + objects, so that the references can be passed to the back end objects, + which then can be passed to the front end member initialization. + That would have been easier with inheritance than with PImpl. + + Bug: angleproject:5904 + Change-Id: Ib58e6a698e76987bdd63cd8088f923424d6c622b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897249 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit a7ae63e479b16df53fc289ccd862e73dad13730c +Author: John Plate +Date: Fri May 14 21:55:52 2021 +0100 + + CL: Move object cast from entry points to stubs and front end + + Move the OpenCl object cast from the generated entry points to the + stubs and front end, to make it possible to properly use static_cast. + This removes the limitation that the front end objects have to be + standard layout (and makes it possible to use virtual functions), + which is consistent with other front end objects. + + Move the back end initialization from the stubs to the entry point + functions, which fixes a bug where the back ends were not initialized + during validation. + + Move more code from the stubs to the front end, to keep the stubs + light. + + Remove unused function `default_return_value` from + `generate_entry_points.py`. + + Bug: angleproject:5904 + Change-Id: Id999ad6c537888017bf3252c6f6e088b7d4c7984 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897245 + Commit-Queue: John Plate + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit b16ee2802686e256aa629deb09e6d82c78a7c3a7 +Author: angle-autoroll +Date: Tue May 18 09:40:54 2021 +0000 + + Roll Chromium from 9b886afc6e79 to 2b00cebcd5b5 (497 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/9b886afc6e79..2b00cebcd5b5 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC cnorthrop@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/c81ea93291..d23e13a4cf + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/31a90015dd..d7dc6149dd + * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/2000d0a880..c65e9394fd + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c1e1d559b4 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/cd152033d0..fe7d709f05 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/5ce08a7f2e..5b8d433953 + * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/f6e0cbe7b7..209b045b46 + Clang version changed llvmorg-13-init-9302-g897d7bce:llvmorg-13-init-10392-gd3676d4b + Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/f6e0cbe7b7efe0ba94157937d701077aeaab2d5b..209b045b46c0cb8893cc9ab9ac3ff54f14a8f359/scripts/update.py + + Bug: None + Tbr: cnorthrop@google.com + Change-Id: I14a9983956f53069b990589281c3fc2c312caf84 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902751 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 835bcb1e27f12cd55bbbdfb0cca2479f7f4b51de +Author: Alexey Knyazev +Date: Sat May 8 13:24:58 2021 +0400 + + Vulkan: Support GL_EXT_texture_sRGB_RG8 + + For completeness, added mappings of R8_SRGB and R8G8_SRGB + to OpenGL and Metal. + + Bug: angleproject:4932 + Change-Id: Ic8e44e3a94c114e985f6965fcd43fbcb8071432d + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880661 + Commit-Queue: Alexey Knyazev + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + +commit ac42dbf98772965abedf90634a3b3e9b3de3eae3 +Author: angle-autoroll +Date: Tue May 18 01:51:16 2021 +0000 + + Roll vulkan-deps from 055e71b2a367 to 3d799e0e9b08 (25 revisions) + + https://chromium.googlesource.com/vulkan-deps.git/+log/055e71b2a367..3d799e0e9b08 + + Changed dependencies: + * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/9431c53c84..202c8abae0 + * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/1020e394cb..f0d110e305 + * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/039cea5353..a132dee142 + * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/4ee5f2a8be..f89f72e105 + * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/0aca21bce7..1d86b3235b + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vulkan-deps-angle-autoroll + Please CC cnorthrop@google.com,timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: cnorthrop@google.com,timvp@google.com + Change-Id: I548c56653d348997e000ef8bc5e644948db95889 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901247 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit cf3af29acbdc6a4d68eeea0ba77ba26d280d7c8f +Author: Shahbaz Youssefi +Date: Fri May 14 16:49:36 2021 -0400 + + Vulkan: Optimize respecifying an image + + When recreating a texture image to change a usage flag or the base/max + levels, this change directly places the levels of the previous image as + updates to the new image. This is instead of copying the image to a + temp one and staging that. + + Bug: angleproject:4835 + Change-Id: Ibc210b9ff0e8d11cba10b1cd9ab262c8f706cea5 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898417 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 8bd3d7d55fbb51fac35aef581c9c7ca816d6ae6a +Author: Shahbaz Youssefi +Date: Mon May 17 13:45:33 2021 -0400 + + Vulkan: Fix a bug releasing DynamicBuffer-owned buffer + + There was one instance of BufferVk releasing a buffer it had allocated + from a DynamicBuffer. This shouldn't have happened as the DynamicBuffer + owns the buffers. + + Bug: angleproject:5720 + Change-Id: I435512f4bb099130126bf3efb48a238fcd9f3ddb + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896168 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Mohan Maiya + Reviewed-by: Jamie Madill + +commit 848d8ddc343eec71f341eb8066e9022a6aedd323 +Author: Cody Northrop +Date: Thu May 13 15:52:14 2021 -0600 + + Tests: Add Pokemon Go trace + + Test: angle_perftest --gtest_filter="*pokemon_go*" + Tbr: jmadill@chromium.org,timvp@google.com + Bug: b/188091629 + Bug: angleproject:5968 + Change-Id: I3f48957a3063fbe5a443c235b6cabf87319b17c1 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895329 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 4b07188098a1e022101d3625b0f0e21ad0f550aa +Author: Cody Northrop +Date: Thu May 13 16:20:05 2021 -0600 + + Capture/Replay: Add const to string pointer + + Traces that have shader compiles in the middle of the run are reusing + the string pointers on each go through. On some (multiple) platforms, + the string pointer is no good on the second run through. This may + only happen for large strings. + + Adding a const qualifier on the pointer itself, not just the string, + avoids the issue. This has the effect of changing strings from this: + + const char *glShaderSource_string_0[] = { + const char *glShaderSource_string_1[] = { + + to this: + + const char* const glShaderSource_string_0[] = { + const char* const glShaderSource_string_1[] = { + + Test: Pokemon Go MEC + Bug: b/188091629 + Bug: angleproject:5968 + Change-Id: Id6a05c955adb3e1c43d2723450be6b5278d99fba + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895328 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit 83d22b6605fc5f8b14f111172e25a6ac3b2867b8 +Author: Cody Northrop +Date: Thu May 13 16:10:54 2021 -0600 + + Capture/Replay: Skip glGetActiveUniform + + Apps are querying GL_ACTIVE_UNIFORMS and then walking through them all + numerically, calling glGetActiveUniform on each one. Before this CL, + our trace would also walk through them all, exactly as the app. + + But, the active uniform count can vary on different platforms + depending on how aggressive the underlying compiler is. We have at + least one that does cross stage optimizations eliminating more active + uniforms than others. + + Rather than check each call against the actual number of active + uniforms, we can just drop the calls to glGetActiveUniform. We don't + actually use any of the results from the call. For example, this is + what we generate before this CL: + + glGetActiveUniform(gShaderProgramMap[144], 31, 1024, + reinterpret_cast(gReadBuffer), + reinterpret_cast(gReadBuffer), + reinterpret_cast(gReadBuffer), + glGetActiveUniform_name_30); + + This has the downside of moving away from reflecting what the app + actually sent down. The alternatives are too intrusive though, and + we want to stay as close to speed of light as we can. + + Test: Pokemon Go MEC + Bug: b/188091629 + Bug: angleproject:5968 + Change-Id: I1263f2256c6a964dac54d9997a1c1c2dceac711b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895327 + Commit-Queue: Cody Northrop + Reviewed-by: Jamie Madill + Reviewed-by: Tim Van Patten + +commit 8ea11eb7f2c940caffc5c82e7928ee859c0eb1cb +Author: Cody Northrop +Date: Thu May 13 15:54:41 2021 -0600 + + Capture/Replay: Reset programs on loop + + Apps that create new programs during the run need to have them + deleted on loop. This CL handles that. It does not handle programs + that have been deleted and need to be recreated, or that have been + modified otherwise. An assert has been included to catch that for + future needs. + + With this CL, entries like this will show up in ResetReplay: + + ... + glDeleteProgram(gShaderProgramMap[120]); + glDeleteProgram(gShaderProgramMap[121]); + ... + + Test: Pokemon Go MEC + Bug: b/188091629 + Bug: angleproject:5968 + Change-Id: I78c425e8fe95792fc626484641d067613dfae971 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895326 + Commit-Queue: Cody Northrop + Reviewed-by: Tim Van Patten + Reviewed-by: Jamie Madill + +commit a1a418e24f35cc520f77d58dea8797720549502d +Author: Cody Northrop +Date: Mon May 17 16:08:15 2021 -0600 + + Skip Texture2DTest.TextureSize on Linux+GL+TSAN + + Bug: angleproject:5982 + Change-Id: I228c5549d7c83d5fb3eb12a097dd4bcc20f56955 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900929 + Reviewed-by: Cody Northrop + Commit-Queue: Cody Northrop + +commit 49ad51fb9cf8637d0e8e4c0848066949c0bbdb9f +Author: Jamie Madill +Date: Mon May 17 16:39:17 2021 -0400 + + ANGLETest: Skip test setup/teardown on major error. + + If something goes wrong in ANGLETestSetup, we can skip the test- + specific setup and teardown code to prevent further errors and + crashes. This is necessary for the new test expectation skips. + + Bug: angleproject:5951 + Change-Id: Ica7b9fed18cec20e7d0e340c39dbbb44f1f8958e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896173 + Reviewed-by: Yuly Novikov + Commit-Queue: Jamie Madill + +commit f9ca452c1255c723b36a17935553ec151af32873 +Author: Jonah Ryan-Davis +Date: Mon May 17 15:14:18 2021 -0400 + + Fix out_of_range error in System_utils_posix + + This now handles the case where dladdr doesn't return any information + about the filename. This was causing issues on Fuschia. + + Bug: chromium:1198567 + Change-Id: I892106282fc930d4d26e3eecd720a11e05b8dcd8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896171 + Reviewed-by: Jamie Madill + Commit-Queue: Jonah Ryan-Davis + +commit 9c262ad0f1fb0e36ce7590fcfa93ca285e647cc9 +Author: Shahbaz Youssefi +Date: Fri May 14 12:26:48 2021 -0400 + + Vulkan: Cleanup texture image respecify + + Prior to this change, respecifying a texture image due to usage, base or + max level changes incurred a copy of every level and layer to a + temporary buffer which was then staged as an update to the new image. + This code was somewhat messy (for example with respect to depth/stencil + images), error prone (e.g. previously had bugs with compressed textures) + and disallowed further optimizations such as in anglebug.com/4835. + + This change does the following: + + - ImageHelper::SubresourceUpdate now takes ref-counted images, instead + of image pointers. This allows the same image to be staged for + multiple updates. + - Respecifying an image is still done through a copy, but to an + identical (temp) image instead of buffer, and each level of the image + is staged as an update. + * Further optimization is to stage the old image itself directly as + updates to the new image + + Bug: angleproject:4835 + Change-Id: I4a3ef2d616c9ab459ff65f918b0fb6d9a2161b73 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897537 + Commit-Queue: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Reviewed-by: Charlie Lao + +commit 9e8fea5bff1a81e9f0cd495639c185465f03a750 +Author: Shahbaz Youssefi +Date: Thu May 13 07:04:05 2021 -0400 + + Vulkan: Fix desc set cache bug with xfb offset + + Prior to this change, the transform feedback buffer offset was not + stored in the descriptor set key, so if the offset changed, stale + descriptor sets could be used. + + Bug: angleproject:5963 + Change-Id: I3dec4ab9fa82092a65e9a75bdd19c5f2cf49521c + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894513 + Reviewed-by: Charlie Lao + Reviewed-by: Jamie Madill + Commit-Queue: Shahbaz Youssefi + +commit 3ff08c44cac71cf8a1c3cf42e9ba1179649f04af +Author: Jamie Madill +Date: Fri May 14 15:41:50 2021 -0400 + + Gold Tests: Implement flaky retries and sharding. + + This CL implements two features: first off we can now split the tests + into several shards which we can run independently on different + machines. + + Second it implements a simple retry mechanism that will retry a failed + test a number of times and count any first passing test as a pass. + + Bug: angleproject:5875 + Bug: angleproject:5966 + Change-Id: Ieef4ea0e4eebdb286a32de3b1e3fef4f2eda0600 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897546 + Reviewed-by: Yuly Novikov + Reviewed-by: Cody Northrop + Commit-Queue: Jamie Madill + +commit 8328743a2ec313644e2105ff05a7914177db64e4 +Author: angle-autoroll +Date: Mon May 17 10:01:40 2021 +0000 + + Roll SwiftShader from c4d054c6ad41 to af907708adb3 (2 revisions) + + https://swiftshader.googlesource.com/SwiftShader.git/+log/c4d054c6ad41..af907708adb3 + + 2021-05-14 capn@google.com Unpoison Reactor Call() arguments when MSan instrumentation is disabled + 2021-05-14 capn@google.com Update Vulkan headers to version 1.2.178 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/swiftshader-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: timvp@google.com + Change-Id: I4efbca5bd495ad3e56de915032e84a1790a4662e + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900022 + Bot-Commit: angle-autoroll + Commit-Queue: angle-autoroll + +commit 48640e2e5059885ac1a47cb98615faecc8de375f +Author: angle-autoroll +Date: Mon May 17 07:01:00 2021 +0000 + + Roll Chromium from 3b747dab7bb3 to 9b886afc6e79 (485 revisions) + + https://chromium.googlesource.com/chromium/src.git/+log/3b747dab7bb3..9b886afc6e79 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/chromium-angle-autoroll + Please CC timvp@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Changed dependencies + * build: https://chromium.googlesource.com/chromium/src/build.git/+log/00d8280637..c81ea93291 + * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/b0912f9572..20b1d0fc13 + * testing: https://chromium.googlesource.com/chromium/src/testing/+log/32fdfcc5af..31a90015dd + * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a532699d20 + * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/5ab2f3314c..cd152033d0 + * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/2b99b37874..5ce08a7f2e + * tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2 + * tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2 + * tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2 + * tools/skia_goldctl/linux: 6gOkUwwapS1GyCkAQb7-gPiKnvzdUOyDzkT4NzmnYJEC..BLHYEUi0wOYe5D_InWXtD8US7l_PMOrKHLuKt16L46QC + * tools/skia_goldctl/mac: 43qoaMWgldhQiaXzcCNggSSWDmZQTNrK0cGEt5yysgsC..qofjOtuSqFXnMKjZ9c7c-oVh9HeWjGW4h4F3y-vrfEkC + * tools/skia_goldctl/win: oodEEBUIHfKw18_-31PAsu3SFiLqvtsFDgbn6ohK5R4C..P9wyIW02W7EqtyT9cZJj6g0HOcjRHAhN5KECwmhgRjUC + No update to Clang. + + Bug: None + Tbr: timvp@google.com + Change-Id: Iedbaff423759a2752c3c341a3abb6b08424515e0 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2899842 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 1af7caa4f9c17995d9f0a9da2426832c19237654 +Author: Gert Wollny +Date: Fri May 14 11:46:54 2021 +0200 + + Capture/Replay: Add suffix to label for test file search + + When tests are run with a wildcard filter on the backend, e.g. + "TEST/ES2_Vulkan*" the same tests from different backends may + end up in the same trace file directory, e.g. TEST_ES2_Vulkan + and TEST_ES2_Vulkan_SwiftShader. So far, when searching for the + ES2_Vulkan trace files the check for trace files would them also + pick up all the _SwiftShader files, and the skript would assume + that the file count is wrong and skip the replay. + + By adding "_capture" the start of the commonly used suffix, this + is avoided and replays are no longer skipped because mis-counting + capture files. + + Bug: angleproject:5972 + Change-Id: I7af54aaf51ee7070333ffe81974d866bd89dbd6f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897236 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 022401f9ddc2d277e34b4d7ad3f860cdbba4a49c +Author: Gert Wollny +Date: Wed May 12 09:21:04 2021 +0200 + + Capture/Replay: Print context diff also with frame gaps + + The capture/replay context differences may not be in each frame, + so if the test signals that comparisons fail, don't bail if the + context JSON files are not found for one frame, but continue the + search until all possibly captured frames have been checked + + Bug: angleproject:5953 + Change-Id: I8af34cc0fe4de5615fc43ef6c45915055546f507 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891772 + Commit-Queue: Gert Wollny + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + +commit 31cd0e986dbcc1a790c63a0d6eef0df5a6f74175 +Author: Gert Wollny +Date: Mon May 10 10:37:54 2021 +0200 + + Capture/Replay: track robustResourceInit + + Bug: angleproject:5938 + Change-Id: I7c9ab9bebd1ec2dc572a071844a860f99d0befe6 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882580 + Reviewed-by: Cody Northrop + Reviewed-by: Jamie Madill + Commit-Queue: Cody Northrop + +commit 3d082a102d72afca94f97370f06da54a564ebcfb +Author: Charlie Lao +Date: Mon Apr 12 19:16:25 2021 -0700 + + Vulkan: Add webgl conformance/texture-size test + + This converts + webgl_conformance_vulkan_passthrough_tests/texture-size.html to an + end2end test for ease of debugging. + + Bug: chromium:1197905 + Change-Id: If77dc30e81450b277c6a02d66c076b088d069498 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821944 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + Reviewed-by: Shahbaz Youssefi + +commit ce7bc0c80da1c1e5e895a0a8c567bf63c9377446 +Author: Ian Elliott +Date: Fri May 14 17:00:46 2021 -0600 + + Vulkan: Fix AGI hierarchy + + The GLES hierarchy of debug-util markers given to AGI was wrong for + several games. The problem is that glDrawBuffer* was treated as a + draw call, instead of as the state-setting call that it is. + + Bug: b/184888395 + Change-Id: I6911bd3aae42b5f29b3f40466a615c614651ca8a + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898472 + Reviewed-by: Cody Northrop + Commit-Queue: Ian Elliott + +commit 65946f88b03ca3c8b7e43568122c2bc7d800b467 +Author: Charlie Lao +Date: Wed May 12 18:19:52 2021 -0700 + + Skip Texture2DArrayIntegerTestES3.NonZeroBaseLevel on OSX+OpenGL + + This test is failing just because another test is been added. The theory + is that there is a OpenGL driver bug here. + + Bug: angleproject:5959 + Change-Id: I8405a512de28b10528c14be79f76815877a5771f + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893499 + Commit-Queue: Charlie Lao + Reviewed-by: Jamie Madill + +commit 76181384075c6eb0a5788bf1b732a1e05f6d73bc +Author: Shahbaz Youssefi +Date: Fri May 14 15:31:24 2021 -0400 + + Vulkan: Disable BufferVk suballocation + + There are still unresolved bugs. + + Bug: angleproject:5719 + Bug: chromium:1209197 + Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545 + Reviewed-by: Cody Northrop + Reviewed-by: Shahbaz Youssefi + Commit-Queue: Tim Van Patten + +commit bf4aa6c468db926896065940ab49f609ae460839 +Author: angle-autoroll +Date: Fri May 14 21:48:14 2021 +0000 + + Roll VK-GL-CTS from 1c4a387382ea to 535dfe49fc49 (1 revision) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/1c4a387382ea..535dfe49fc49 + + 2021-05-14 piotr.byszewski@mobica.com Portability: handle vertex input stride + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC timvp@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,angle-bots+autoroll-info@google.com + Change-Id: Iaaaee35aa8c61e25c80ceb2c373e2333defab426 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896770 + Commit-Queue: angle-autoroll + Bot-Commit: angle-autoroll + +commit 5a0925def4f2a888afaed1e5ac2565825a06601e +Author: Geoff Lang +Date: Fri May 14 15:25:07 2021 -0400 + + GL: Recreate textures on eglReleaseTexImage. + + Texture data should be reset on eglReleaseTexImage but ANGLE sometimes + skipped this because it generated GL errors on Mac. Instead, delete + and recreate the native texture to make sure ANGLE doesn't hold any + references. + + Bug: chromium:1181068 + Change-Id: I1252b0900361852f66f73b8c9d20a29c53897ee4 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897544 + Commit-Queue: Geoff Lang + Reviewed-by: Kenneth Russell + +commit 35f5911882909e6484d609d5b6f180127adcc648 +Author: Mohan Maiya +Date: Wed May 12 09:19:49 2021 -0700 + + Bug fix in glTexParameter and glGetTexParameter validation + + It is invalid to pass in GL_TEXTURE_BUFFER to either + glTexParameter or glGetTexParameter. Return GL_INVALID_ENUM + for such usecases. + + Bug: angleproject:3573 + Bug: angleproject:3577 + Test: dEQP.KHR_GLES31/core_texture_border_clamp_texparameteri_errors + Change-Id: Ia0573c24d38c6be9d1b79a83a05e2ffbc62c8918 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892023 + Commit-Queue: Mohan Maiya + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + +commit 07ae297067c4bfdccd0ace5cc743a295877a3f3f +Author: Charlie Lao +Date: Wed May 12 11:15:01 2021 -0700 + + Fix IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface on OSX+OpenGL + + For BGRX, the alpha value is undefined. It wont write back to client + memory, so don't compare alpha to expected result. + + Bug: angleproject:5958 + Change-Id: I289f14f7c6a6ee63e74351d6abdd44fff8bf106b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891926 + Reviewed-by: Jamie Madill + Reviewed-by: Geoff Lang + Commit-Queue: Charlie Lao + +commit dd686e48f04363d190dede59eb31fe2c2989f44e +Author: Jamie Madill +Date: Tue May 11 19:08:01 2021 -0400 + + Test Runner: Add test expectations parser. + + Moves the test expectations from dEQP into the test runner. + Also updates angle_end2end_tests to take an expectations file. + Includes some very simple angle_end2end_tests expectations. + Note that the expectations in the file are less expressive than the + skips we use in the cpp. + + Bug: angleproject:5951 + Change-Id: Ib92235575bc3ea5f3a977ce416b0e78fe806e39b + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892274 + Commit-Queue: Jamie Madill + Reviewed-by: Geoff Lang + Reviewed-by: Jonah Ryan-Davis + +commit c8c414b084fa3b6550b10dff48cf429719e04579 +Author: Jonah Ryan-Davis +Date: Wed May 5 11:51:00 2021 -0400 + + Reland Change to module directory when loading swiftshader ICD. + + This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b. + + Extra changes: + Be explicit about calling GetModuleHandleA + Do not use the general GetModuleHandle, which may use wide strings + + GetModuleDirectory should return the full path, not relative. + ANGLE wasn't able to locate the vulkan ICD file because it was + searching down an invalid relative path. This can be fixed by + ensuring the module directory is always the full path. + on some platforms. + + Original change's description: + > When loading vulkan, we can be running from any directory. We need + > to change to the module directory to ensure the swiftshader ICD is + > loaded properly. For example, in some Chrome releases, libGLESv2.dll + > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe + > + > Bug: chromium:1198567 + > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948 + > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452 + > Commit-Queue: Jonah Ryan-Davis + > Reviewed-by: Shahbaz Youssefi + > Reviewed-by: Jamie Madill + + Bug: chromium:1198567 + Bug: angleproject:5949 + Change-Id: Ib34067002c788f00b5ae2fa11d1e465f57bd7be8 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893503 + Reviewed-by: Jamie Madill + Reviewed-by: Cody Northrop + Commit-Queue: Jonah Ryan-Davis + +commit cbbaf76b758fb6a37175795b1f424549d535fbdc +Author: Sergey Ulanov +Date: Thu Apr 29 16:09:09 2021 -0700 + + [Vulkan] Add DisplayVkNull + + Currently all DisplayVk implementations depend on VK_KHR_swapchain and + VK_KHR_surface extensions. When running Chromium on Fuchsia these + extensions are never used (content is shown on the screen using + ImagePipe API without dependency on swapchain). ANGLE still depended + on these extensions for DisplayVkFuchsia. + This CL adds DisplayVkNull, which allows to run ANGLE without dependency + on swapchain. It's usable only offscreen and cannot present content on + a surface. + + Bug: chromium:1203879 + Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313 + Reviewed-by: Shahbaz Youssefi + Reviewed-by: Jamie Madill + Commit-Queue: Jamie Madill + +Cherries picked +================================================================================ +Merge base from: origin/chromium/4515 + +commit f871545d293f8fd55357eb2bcdaacea3cca9569f +Author: angle-autoroll +Date: Fri May 14 10:44:13 2021 +0000 + + Roll VK-GL-CTS from 6498f4042d9f to 1c4a387382ea (19 revisions) + + https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/6498f4042d9f..1c4a387382ea + + 2021-05-14 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master + 2021-05-13 juha.heiskanen@siru.fi Add test for PBO bounds + 2021-05-13 pdaniell@nvidia.com Fix Windows MSVC build regression from GitHub!261 + 2021-05-13 piotr.byszewski@mobica.com Portability: use triangle strips in amber tests + 2021-05-13 piotr.byszewski@mobica.com Portability: handle mutableComparisonSamplers + 2021-05-13 srisser@google.com Require geometry shaders for adjacency topologies + 2021-05-13 jari.komppa@siru.fi Static code analysis fixes + 2021-05-13 toni.salmivalli@siru.fi New SSBO corner case test + 2021-05-13 siglesias@igalia.com Add more spir-v tests with empty structs + 2021-05-13 alexander.galazin@arm.com Fix GL compatbility mustpass file names + 2021-05-13 ari.suonpaa@siru.fi Add dynamic indexing test using gl_VertexID + 2021-05-13 tapani.palli@intel.com Fix to GL 4.5 geometry shading provoking vertex tests + 2021-05-13 alexander.galazin@arm.com Support GL 4.5 in the Linkage Tests + 2021-05-13 alexander.galazin@arm.com Support GL 4.5 in the Arrays of Arrays Tests + 2021-05-13 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests + 2021-05-13 ilkka.saarelainen@siru.fi Update Amber + 2021-05-13 lars-ivar.simonsen@arm.com Fix use of binary semaphore in signaled state + 2021-05-13 slawomir.cygan@intel.com Fix condition for checking support of XFB streams other than 0 + 2021-05-13 siglesias@igalia.com Make sure minImportedHostPointerAlignment in a power of 2 + + If this roll has caused a breakage, revert this CL and stop the roller + using the controls here: + https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll + Please CC timvp@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human + is aware of the problem. + + To report a problem with the AutoRoller itself, please file a bug: + https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug + + Documentation for the AutoRoller is here: + https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md + + Bug: None + Tbr: timvp@google.com,angle-bots+autoroll-info@google.com + Change-Id: I12e13ac730ce2ac1989feeb382a70e99d5a2f447 + Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895922 + Reviewed-by: Tim Van Patten + Commit-Queue: Tim Van Patten diff --git a/gfx/angle/moz.yaml b/gfx/angle/moz.yaml --- a/gfx/angle/moz.yaml +++ b/gfx/angle/moz.yaml @@ -13,12 +13,12 @@ # Note that while the vendoring information here, including revision, # release, and upstream repo locations refer to the third party upstream, # Angle is vendored from a mozilla git repository that pulls from # upstream and mainntains local patches there. - release: commit 018f85dea11fd5e41725750c6958695a6b8e8409 Thu Sep 9 20:40:49 2021 +0000 - revision: 018f85dea11fd5e41725750c6958695a6b8e8409 + release: commit f871545d293f8fd55357eb2bcdaacea3cca9569f Fri May 14 19:58:19 2021 +0000 + revision: f871545d293f8fd55357eb2bcdaacea3cca9569f license: BSD-3-Clause updatebot: maintainer-phab: jgilbert diff --git a/gfx/angle/targets/angle_common/moz.build b/gfx/angle/targets/angle_common/moz.build --- a/gfx/angle/targets/angle_common/moz.build +++ b/gfx/angle/targets/angle_common/moz.build @@ -2,11 +2,11 @@ include("../../moz.build.common") # DEFINES["ANGLE_IS_WIN"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -16,81 +16,79 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", - "../../checkout/out/gen/angle/", "../../checkout/src/", "../../checkout/src/common/third_party/base/", ] # CXXFLAGS += [ # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -98,70 +96,29 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -231,12 +188,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("angle_common") diff --git a/gfx/angle/targets/angle_gpu_info_util/moz.build b/gfx/angle/targets/angle_gpu_info_util/moz.build --- a/gfx/angle/targets/angle_gpu_info_util/moz.build +++ b/gfx/angle/targets/angle_gpu_info_util/moz.build @@ -3,14 +3,14 @@ include("../../moz.build.common") DEFINES["ANGLE_ENABLE_D3D11"] = True DEFINES["ANGLE_ENABLE_D3D11_COMPOSITOR_NATIVE_WINDOW"] = True DEFINES["ANGLE_ENABLE_D3D9"] = True -# DEFINES["ANGLE_HAS_VULKAN_SYSTEM_INFO"] = True # DEFINES["ANGLE_IS_WIN"] = True +# Unrecognized: DEFINES["ANGLE_USE_CUSTOM_LIBVULKAN"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -21,86 +21,84 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/", "../../checkout/include/", "../../checkout/out/gen/", - "../../checkout/out/gen/angle/", "../../checkout/src/", "../../checkout/src/common/third_party/base/", "../../checkout/third_party/vulkan-deps/vulkan-headers/src/include/", ] # CXXFLAGS += [ # "-add-plugin", # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-plugin-arg-find-bad-constructs", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -108,70 +106,29 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -180,15 +137,16 @@ # "/WX", # "/Z7", # "/Zc:inline", # "/Zc:sizedDealloc-", # "/Zc:twoPhase", -# "checked-ptr-as-trivial-member", # "find-bad-constructs", +# "raw-ptr-template-as-trivial-member", # ] SOURCES += [ + "../../checkout/src/common/vulkan/libvulkan_loader.cpp", "../../checkout/src/gpu_info_util/SystemInfo.cpp", "../../checkout/src/gpu_info_util/SystemInfo_vulkan.cpp", ] if CONFIG["OS_ARCH"] == "WINNT": @@ -220,12 +178,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("angle_gpu_info_util") diff --git a/gfx/angle/targets/angle_image_util/moz.build b/gfx/angle/targets/angle_image_util/moz.build --- a/gfx/angle/targets/angle_image_util/moz.build +++ b/gfx/angle/targets/angle_image_util/moz.build @@ -2,11 +2,11 @@ include("../../moz.build.common") # DEFINES["ANGLE_IS_WIN"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -16,81 +16,79 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", - "../../checkout/out/gen/angle/", "../../checkout/src/", "../../checkout/src/common/third_party/base/", ] # CXXFLAGS += [ # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -98,70 +96,29 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -177,10 +134,11 @@ SOURCES += [ "../../checkout/src/image_util/copyimage.cpp", "../../checkout/src/image_util/imageformats.cpp", "../../checkout/src/image_util/loadimage.cpp", "../../checkout/src/image_util/loadimage_etc.cpp", + "../../checkout/src/image_util/loadtextureborder.cpp", ] USE_LIBS += [ "angle_common", ] @@ -199,12 +157,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("angle_image_util") diff --git a/gfx/angle/targets/compression_utils_portable/moz.build b/gfx/angle/targets/compression_utils_portable/moz.build --- a/gfx/angle/targets/compression_utils_portable/moz.build +++ b/gfx/angle/targets/compression_utils_portable/moz.build @@ -1,11 +1,11 @@ # Generated by update-angle.py include("../../moz.build.common") # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -15,19 +15,21 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/", "../../checkout/out/gen/", @@ -37,115 +39,70 @@ # CXXFLAGS += [ # "-add-plugin", # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-plugin-arg-find-bad-constructs", +# "-Wenum-compare-conditional", # "-Wextra-semi", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", +# "-Wloop-analysis", # "-Wmax-tokens", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wstring-conversion", # "-Wtautological-overlap-compare", # "-Wthread-safety", -# "-Wunreachable-code", +# "-Wunreachable-code-aggressive", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/WX", # "/Z7", # "/Zc:inline", # "/Zc:sizedDealloc-", # "/Zc:twoPhase", -# "checked-ptr-as-trivial-member", # "find-bad-constructs", +# "raw-ptr-template-as-trivial-member", # ] SOURCES += [ "../../checkout/third_party/zlib/google/compression_utils_portable.cc", ] @@ -164,12 +121,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("compression_utils_portable") diff --git a/gfx/angle/targets/libEGL/moz.build b/gfx/angle/targets/libEGL/moz.build --- a/gfx/angle/targets/libEGL/moz.build +++ b/gfx/angle/targets/libEGL/moz.build @@ -5,11 +5,11 @@ # DEFINES["ANGLE_EGL_LIBRARY_NAME"] = '"libEGL"' DEFINES["ANGLE_GLESV2_LIBRARY_NAME"] = '"libGLESv2"' # DEFINES["ANGLE_IS_WIN"] = True DEFINES["ANGLE_USE_EGL_LOADER"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" DEFINES["EGLAPI"] = "" DEFINES["EGL_EGLEXT_PROTOTYPES"] = True DEFINES["EGL_EGL_PROTOTYPES"] = "1" DEFINES["GL_GLES_PROTOTYPES"] = "1" @@ -25,19 +25,21 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", "../../checkout/out/gen/angle/", @@ -47,59 +49,56 @@ # CXXFLAGS += [ # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -107,70 +106,29 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -239,14 +197,14 @@ # "/NXCOMPAT", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", # "/SUBSYSTEM:CONSOLE,5.02", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] DEFFILE = "../../checkout/src/libEGL/libEGL_autogen.def" RCFILE = "../../checkout/src/libEGL/libEGL.rc" diff --git a/gfx/angle/targets/libGLESv2/moz.build b/gfx/angle/targets/libGLESv2/moz.build --- a/gfx/angle/targets/libGLESv2/moz.build +++ b/gfx/angle/targets/libGLESv2/moz.build @@ -7,11 +7,11 @@ DEFINES["ANGLE_ENABLE_D3D11_COMPOSITOR_NATIVE_WINDOW"] = True DEFINES["ANGLE_ENABLE_D3D9"] = True # DEFINES["ANGLE_IS_WIN"] = True # DEFINES["ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES"] = "{ "d3dcompiler_47.dll", "d3dcompiler_46.dll", "d3dcompiler_43.dll" }" # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" DEFINES["EGL_EGLEXT_PROTOTYPES"] = True DEFINES["EGL_EGL_PROTOTYPES"] = "1" DEFINES["GL_API"] = "" DEFINES["GL_APICALL"] = "" @@ -29,19 +29,21 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", "../../checkout/out/gen/angle/", @@ -54,60 +56,57 @@ # CXXFLAGS += [ # "-add-plugin", # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-plugin-arg-find-bad-constructs", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -115,71 +114,30 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", # "/wd4530", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -188,15 +146,16 @@ # "/WX", # "/Z7", # "/Zc:inline", # "/Zc:sizedDealloc-", # "/Zc:twoPhase", -# "checked-ptr-as-trivial-member", # "find-bad-constructs", +# "raw-ptr-template-as-trivial-member", # ] SOURCES += [ + "../../checkout/src/common/angle_version_info.cpp", "../../checkout/src/libANGLE/angletypes.cpp", "../../checkout/src/libANGLE/AttributeMap.cpp", "../../checkout/src/libANGLE/BlobCache.cpp", "../../checkout/src/libANGLE/Buffer.cpp", "../../checkout/src/libANGLE/Caps.cpp", @@ -219,10 +178,11 @@ "../../checkout/src/libANGLE/formatutils.cpp", "../../checkout/src/libANGLE/Framebuffer.cpp", "../../checkout/src/libANGLE/FramebufferAttachment.cpp", "../../checkout/src/libANGLE/GLES1Renderer.cpp", "../../checkout/src/libANGLE/GLES1State.cpp", + "../../checkout/src/libANGLE/gles_extensions_autogen.cpp", "../../checkout/src/libANGLE/HandleAllocator.cpp", "../../checkout/src/libANGLE/Image.cpp", "../../checkout/src/libANGLE/ImageIndex.cpp", "../../checkout/src/libANGLE/IndexRangeCache.cpp", "../../checkout/src/libANGLE/LoggingAnnotator.cpp", @@ -332,10 +292,11 @@ "../../checkout/src/libANGLE/renderer/dxgi_support_table_autogen.cpp", "../../checkout/src/libANGLE/renderer/EGLReusableSync.cpp", "../../checkout/src/libANGLE/renderer/EGLSyncImpl.cpp", "../../checkout/src/libANGLE/renderer/Format_table_autogen.cpp", "../../checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp", + "../../checkout/src/libANGLE/renderer/load_texture_border_functions_table_autogen.cpp", "../../checkout/src/libANGLE/renderer/ProgramPipelineImpl.cpp", "../../checkout/src/libANGLE/renderer/QueryImpl.cpp", "../../checkout/src/libANGLE/renderer/renderer_utils.cpp", "../../checkout/src/libANGLE/renderer/ShaderImpl.cpp", "../../checkout/src/libANGLE/renderer/SurfaceImpl.cpp", @@ -445,14 +406,14 @@ # "/NXCOMPAT", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", # "/SUBSYSTEM:CONSOLE,5.02", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] DEFFILE = "../../checkout/src/libGLESv2/libGLESv2_autogen.def" RCFILE = "../../checkout/src/libGLESv2/libGLESv2.rc" diff --git a/gfx/angle/targets/preprocessor/moz.build b/gfx/angle/targets/preprocessor/moz.build --- a/gfx/angle/targets/preprocessor/moz.build +++ b/gfx/angle/targets/preprocessor/moz.build @@ -2,11 +2,11 @@ include("../../moz.build.common") # DEFINES["ANGLE_IS_WIN"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -16,81 +16,80 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", - "../../checkout/out/gen/angle/", "../../checkout/src/", "../../checkout/src/common/third_party/base/", ] # CXXFLAGS += [ # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", +# "-Wno-unreachable-code-break", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -98,70 +97,29 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -206,12 +164,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("preprocessor") diff --git a/gfx/angle/targets/translator/moz.build b/gfx/angle/targets/translator/moz.build --- a/gfx/angle/targets/translator/moz.build +++ b/gfx/angle/targets/translator/moz.build @@ -5,11 +5,11 @@ DEFINES["ANGLE_ENABLE_ESSL"] = True DEFINES["ANGLE_ENABLE_GLSL"] = True DEFINES["ANGLE_ENABLE_HLSL"] = True # DEFINES["ANGLE_IS_WIN"] = True # DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True -DEFINES["CR_CLANG_REVISION"] = '"llvmorg-13-init-3462-gfe5c2c3c-2"' +DEFINES["CR_CLANG_REVISION"] = '"llvmorg-14-init-8033-gabb2a91b-1"' DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" # DEFINES["NDEBUG"] = True DEFINES["NOMINMAX"] = True # DEFINES["NTDDI_VERSION"] = "NTDDI_WIN10_VB" # DEFINES["NVALGRIND"] = True @@ -19,81 +19,79 @@ # DEFINES["WIN32"] = True # DEFINES["WIN32_LEAN_AND_MEAN"] = True # DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP" DEFINES["WINVER"] = "0x0A00" DEFINES["_ATL_NO_OPENGL"] = True +DEFINES["_CRT_NONSTDC_NO_WARNINGS"] = True DEFINES["_CRT_RAND_S"] = True DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True DEFINES["_HAS_EXCEPTIONS"] = "0" # DEFINES["_HAS_NODISCARD"] = True DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True DEFINES["_SECURE_ATL"] = True DEFINES["_UNICODE"] = True # DEFINES["_WIN32_WINNT"] = "0x0A00" # DEFINES["_WINDOWS"] = True +# Unrecognized: DEFINES["_WINSOCK_DEPRECATED_NO_WARNINGS"] = True # DEFINES["__STD_C"] = True LOCAL_INCLUDES += [ "../../checkout/include/", - "../../checkout/out/gen/angle/", "../../checkout/src/", "../../checkout/src/common/third_party/base/", ] # CXXFLAGS += [ # "-D__DATE__=", # "-D__TIME__=", # "-D__TIMESTAMP__=", -# "-debug-info-kind=constructor", # "-fcolor-diagnostics", # "-fcomplete-member-pointers", # "-fcrash-diagnostics-dir=../tools/clang/crashreports", -# "-fdebug-compilation-dir", +# "-ffile-compilation-dir=.", # "-fmerge-all-constants", # "-fmsc-version=1916", # "-fno-delete-null-pointer-checks", # "-fno-ident", # "-ftrivial-auto-var-init=pattern", +# "-fuse-ctor-homing", # "-gcodeview-ghash", # "-instcombine-lower-dbg-declare=0", # "-m64", # "-mllvm", # "-msse3", # "-no-canonical-prefixes", # "-Wbad-function-cast", # "-Wconditional-uninitialized", +# "-Wenum-compare-conditional", # "-Wexit-time-destructors", # "-Wextra-semi", # "-Wextra-semi-stmt", # "-Wfloat-conversion", # "-Wglobal-constructors", # "-Wheader-hygiene", # "-Wimplicit-fallthrough", # "-Winconsistent-missing-destructor-override", +# "-Wloop-analysis", # "-Wmax-tokens", # "-Wmissing-field-initializers", # "-Wnewline-eof", -# "-Wno-builtin-assume-aligned-alignment", # "-Wno-builtin-macro-redefined", -# "-Wno-c++11-narrowing", -# "-Wno-deprecated-copy", -# "-Wno-final-dtor-non-final-class", # "-Wno-ignored-pragma-optimize", -# "-Wno-implicit-int-float-conversion", # "-Wno-missing-field-initializers", -# "-Wno-non-c-typedef-for-linkage", # "-Wno-nonportable-include-path", +# "-Wno-null-pointer-subtraction", # "-Wno-psabi", # "-Wno-trigraphs", -# "-Wno-undefined-var-template", # "-Wno-unneeded-internal-declaration", # "-Wno-unused-parameter", # "-Wnon-virtual-dtor", # "-Wparentheses", # "-Wrange-loop-analysis", # "-Wredundant-parens", # "-Wreturn-std-move", +# "-Wshadow", # "-Wshadow-field", # "-Wshorten-64-to-32", # "-Wstrict-prototypes", # "-Wstring-conversion", # "-Wsuggest-destructor-override", @@ -101,71 +99,30 @@ # "-Wtautological-overlap-compare", # "-Wtautological-type-limit-compare", # "-Wthread-safety", # "-Wundefined-reinterpret-cast", # "-Wunneeded-internal-declaration", -# "-Wunreachable-code", -# "-Wweak-template-vtables", +# "-Wunreachable-code-aggressive", +# "-Wunused-but-set-variable", # "-Xclang", -# ".", # "/bigobj", # "/Brepro", # "/D__WRL_ENABLE_FUNCTION_STATICS__", # "/FS", # "/GR-", -# "/guard:cf,nochecks", +# "/guard:cf", # "/Gw", # "/Gy", # "/MT", # "/O1", # "/Ob2", # "/Oi", # "/Oy-", # "/TP", # "/utf-8", # "/W4", -# "/wd4091", -# "/wd4100", -# "/wd4121", -# "/wd4127", -# "/wd4200", -# "/wd4201", -# "/wd4204", -# "/wd4221", -# "/wd4244", -# "/wd4245", -# "/wd4251", -# "/wd4267", -# "/wd4275", -# "/wd4305", -# "/wd4312", -# "/wd4324", -# "/wd4351", -# "/wd4355", -# "/wd4389", -# "/wd4456", -# "/wd4457", -# "/wd4458", -# "/wd4459", -# "/wd4503", -# "/wd4505", -# "/wd4510", -# "/wd4512", -# "/wd4577", -# "/wd4589", -# "/wd4610", -# "/wd4611", -# "/wd4661", -# "/wd4701", -# "/wd4702", -# "/wd4703", -# "/wd4706", -# "/wd4715", # "/wd4718", -# "/wd4838", -# "/wd4995", -# "/wd4996", # "/we4244", # "/we4312", # "/we4456", # "/we4458", # "/we4715", @@ -202,11 +159,10 @@ "../../checkout/src/compiler/translator/FunctionLookup.cpp", "../../checkout/src/compiler/translator/glslang_lex_autogen.cpp", "../../checkout/src/compiler/translator/glslang_tab_autogen.cpp", "../../checkout/src/compiler/translator/HashNames.cpp", "../../checkout/src/compiler/translator/ImageFunctionHLSL.cpp", - "../../checkout/src/compiler/translator/ImmutableString_autogen.cpp", "../../checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp", "../../checkout/src/compiler/translator/ImmutableStringBuilder.cpp", "../../checkout/src/compiler/translator/InfoSink.cpp", "../../checkout/src/compiler/translator/Initialize.cpp", "../../checkout/src/compiler/translator/InitializeDll.cpp", @@ -227,18 +183,19 @@ "../../checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp", "../../checkout/src/compiler/translator/ShaderVars.cpp", "../../checkout/src/compiler/translator/StructureHLSL.cpp", "../../checkout/src/compiler/translator/Symbol.cpp", "../../checkout/src/compiler/translator/SymbolTable.cpp", - "../../checkout/src/compiler/translator/SymbolTable_autogen.cpp", "../../checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp", "../../checkout/src/compiler/translator/SymbolUniqueId.cpp", "../../checkout/src/compiler/translator/TextureFunctionHLSL.cpp", "../../checkout/src/compiler/translator/TranslatorESSL.cpp", "../../checkout/src/compiler/translator/TranslatorGLSL.cpp", "../../checkout/src/compiler/translator/TranslatorHLSL.cpp", + "../../checkout/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp", "../../checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp", + "../../checkout/src/compiler/translator/tree_ops/ConvertUnsupportedConstructorsToFunctionCalls.cpp", "../../checkout/src/compiler/translator/tree_ops/d3d/AddDefaultReturnStatements.cpp", "../../checkout/src/compiler/translator/tree_ops/d3d/ArrayReturnValueToOutParameter.cpp", "../../checkout/src/compiler/translator/tree_ops/d3d/BreakVariableAliasingInInnerLoops.cpp", "../../checkout/src/compiler/translator/tree_ops/d3d/ExpandIntegerPowExpressions.cpp", "../../checkout/src/compiler/translator/tree_ops/d3d/RecordUniformBlocksWithLargeArrayMember.cpp", @@ -254,42 +211,47 @@ "../../checkout/src/compiler/translator/tree_ops/d3d/WrapSwitchStatementsInBlocks.cpp", "../../checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp", "../../checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp", "../../checkout/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.cpp", "../../checkout/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.cpp", - "../../checkout/src/compiler/translator/tree_ops/EmulatePrecision.cpp", "../../checkout/src/compiler/translator/tree_ops/FoldExpressions.cpp", "../../checkout/src/compiler/translator/tree_ops/ForcePrecisionQualifier.cpp", "../../checkout/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/RecordConstantPrecision.cpp", "../../checkout/src/compiler/translator/tree_ops/gl/RegenerateStructNames.cpp", "../../checkout/src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.cpp", "../../checkout/src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.cpp", - "../../checkout/src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.cpp", "../../checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp", + "../../checkout/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp", + "../../checkout/src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp", "../../checkout/src/compiler/translator/tree_ops/PruneEmptyCases.cpp", "../../checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp", + "../../checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp", "../../checkout/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp", + "../../checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp", "../../checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp", + "../../checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp", "../../checkout/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp", "../../checkout/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.cpp", + "../../checkout/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp", + "../../checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp", + "../../checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp", + "../../checkout/src/compiler/translator/tree_ops/RewriteDfdy.cpp", + "../../checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp", "../../checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp", "../../checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp", "../../checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp", + "../../checkout/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp", "../../checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp", "../../checkout/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp", "../../checkout/src/compiler/translator/tree_util/DriverUniform.cpp", "../../checkout/src/compiler/translator/tree_util/FindFunction.cpp", "../../checkout/src/compiler/translator/tree_util/FindMain.cpp", + "../../checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp", "../../checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp", "../../checkout/src/compiler/translator/tree_util/IntermNode_util.cpp", "../../checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp", + "../../checkout/src/compiler/translator/tree_util/IntermRebuild.cpp", "../../checkout/src/compiler/translator/tree_util/IntermTraverse.cpp", "../../checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp", "../../checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp", "../../checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp", "../../checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp", @@ -306,14 +268,14 @@ "../../checkout/src/compiler/translator/ValidateGlobalInitializer.cpp", "../../checkout/src/compiler/translator/ValidateLimitations.cpp", "../../checkout/src/compiler/translator/ValidateMaxParameters.cpp", "../../checkout/src/compiler/translator/ValidateOutputs.cpp", "../../checkout/src/compiler/translator/ValidateSwitch.cpp", + "../../checkout/src/compiler/translator/ValidateTypeSizeLimitations.cpp", "../../checkout/src/compiler/translator/ValidateVaryingLocations.cpp", "../../checkout/src/compiler/translator/VariablePacker.cpp", "../../checkout/src/compiler/translator/VersionGLSL.cpp", - "../../checkout/src/third_party/compiler/ArrayBoundsClamper.cpp", ] USE_LIBS += [ "angle_common", "preprocessor", @@ -334,12 +296,12 @@ # "/lldignoreenv", # "/OPT:ICF", # "/OPT:NOLLDTAILMERGE", # "/OPT:REF", # "/pdbaltpath:%_PDB%", -# "/PDBSourcePath:C:/dev/angle/out", +# "/PDBSourcePath:z:/task_163778990893753/fetches/angle/out", # "/PROFILE", -# "/TIMESTAMP:1615093200", +# "/TIMESTAMP:1633237200", # "/WX", # ] Library("translator")